From c648546b61baa33decadc59696db9b5fa4f15109 Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Thu, 13 Nov 2025 15:10:54 +0100 Subject: [PATCH] Added support for 15 minute price resolution (#1031) * 15min prices WIP * WIP more changes for 15min prices * More work on 15min pricing * Fixed some errors * Some changes after testing * Graphical changes for 15min pricing * Adjustments on MQTT handlers after switching to 15min prices * Reverted some MQTT changes * Adapted HA integration for 15min pricing * Adapted JSON payload for 15min * Adjustments during testing * Set default price interval * Fixed refresh of price graph when data changes * Bugfixes * Fixed some issues with raw payload * Adjustments for meter timestamp from Kamstrup * Updated readme * Added detailed breakdown of payloads coming from Norwegian meters * Minor changes relating to price * Fixed byte alignment on price config * Changes to support RC upgraders --- .github/workflows/prerelease.yml | 1 + .github/workflows/release-deploy-env.yml | 12 +- .github/workflows/release.yml | 1 + README.md | 7 +- doc/Norway/Norwegian_payload_breakdown.docx | Bin 0 -> 8680 bytes images/dashboard.png | Bin 176834 -> 203908 bytes .../include/AmsConfiguration.h | 14 +- lib/AmsConfiguration/src/AmsConfiguration.cpp | 7 +- .../include/AmsFirmwareUpdater.h | 2 +- .../src/EthernetConnectionHandler.cpp | 4 + .../include/EnergyAccounting.h | 6 +- lib/EnergyAccounting/src/EnergyAccounting.cpp | 144 ++++---- .../include/HomeAssistantMqttHandler.h | 2 +- .../include/HomeAssistantStatic.h | 117 ++++--- .../src/HomeAssistantMqttHandler.cpp | 196 +++++++---- lib/JsonMqttHandler/include/JsonMqttHandler.h | 1 + lib/JsonMqttHandler/src/JsonMqttHandler.cpp | 92 ++++-- lib/MeterCommunicators/include/IEC6205675.h | 7 +- lib/MeterCommunicators/src/IEC6205675.cpp | 50 +-- .../src/PassiveMeterCommunicator.cpp | 2 +- lib/PriceService/include/EntsoeA44Parser.h | 13 +- lib/PriceService/include/PriceService.h | 37 ++- lib/PriceService/include/PricesContainer.h | 36 +- lib/PriceService/src/EntsoeA44Parser.cpp | 66 ++-- lib/PriceService/src/PriceService.cpp | 307 ++++++++++++------ lib/PriceService/src/PricesContainer.cpp | 67 ++++ lib/RawMqttHandler/include/RawMqttHandler.h | 1 + lib/RawMqttHandler/src/RawMqttHandler.cpp | 50 ++- lib/SvelteUi/app/dist/index.js | 12 +- lib/SvelteUi/app/src/App.svelte | 15 +- lib/SvelteUi/app/src/lib/BarChart.svelte | 8 +- .../app/src/lib/ConfigurationPanel.svelte | 18 +- lib/SvelteUi/app/src/lib/Dashboard.svelte | 18 +- lib/SvelteUi/app/src/lib/DataStores.js | 52 ++- lib/SvelteUi/app/src/lib/Helpers.js | 5 + lib/SvelteUi/app/src/lib/PricePlot.svelte | 204 ++++++------ lib/SvelteUi/app/src/lib/RealtimePlot.svelte | 9 - .../app/src/lib/TariffPeakChart.svelte | 2 - lib/SvelteUi/app/translations.json | 2 + lib/SvelteUi/app/vite.config.js | 2 + lib/SvelteUi/include/AmsWebServer.h | 5 +- lib/SvelteUi/json/conf_price.json | 3 +- lib/SvelteUi/src/AmsWebServer.cpp | 92 +++++- src/AmsToMqttBridge.cpp | 21 +- 44 files changed, 1073 insertions(+), 637 deletions(-) create mode 100644 doc/Norway/Norwegian_payload_breakdown.docx create mode 100644 lib/PriceService/src/PricesContainer.cpp diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 570a99b6..9efee2e9 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -82,3 +82,4 @@ jobs: version: ${{ needs.prepare.outputs.version }} upload_url: ${{ needs.prepare.outputs.upload_url }} subfolder: /rc + is_esp32: false diff --git a/.github/workflows/release-deploy-env.yml b/.github/workflows/release-deploy-env.yml index 95839b97..6e362fd1 100644 --- a/.github/workflows/release-deploy-env.yml +++ b/.github/workflows/release-deploy-env.yml @@ -20,6 +20,11 @@ on: required: false type: string default: '' + is_esp32: + description: 'Whether the build is for ESP32 based firmware' + required: false + type: boolean + default: true jobs: build-and-deploy: @@ -79,11 +84,11 @@ jobs: CI: false - name: PlatformIO lib install - env: - GITHUB_TAG: v${{ inputs.version }} run: pio lib install - name: Build firmware + env: + GITHUB_TAG: v${{ inputs.version }} run: pio run -e ${{ inputs.env }} - name: Create zip file @@ -119,10 +124,13 @@ jobs: run: aws s3 cp firmware.md5 s3://${{ secrets.AWS_S3_BUCKET }}/firmware${{ inputs.subfolder }}/ams2mqtt-${{ inputs.env }}-${{ inputs.version }}.md5 - name: Upload bootloader to S3 + if: ${{ inputs.is_esp32 }} run: aws s3 cp .pio/build/${{ inputs.env }}/bootloader.bin s3://${{ secrets.AWS_S3_BUCKET }}/firmware${{ inputs.subfolder }}/ams2mqtt-${{ inputs.env }}-${{ inputs.version }}-bootloader.bin - name: Upload partition table to S3 + if: ${{ inputs.is_esp32 }} run: aws s3 cp .pio/build/${{ inputs.env }}/partitions.bin s3://${{ secrets.AWS_S3_BUCKET }}/firmware${{ inputs.subfolder }}/ams2mqtt-${{ inputs.env }}-${{ inputs.version }}-partitions.bin - name: Upload app0 to S3 + if: ${{ inputs.is_esp32 }} run: aws s3 cp ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin s3://${{ secrets.AWS_S3_BUCKET }}/firmware${{ inputs.subfolder }}/ams2mqtt-${{ inputs.env }}-${{ inputs.version }}-app0.bin diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 17e83d81..9b6da79a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -76,3 +76,4 @@ jobs: env: esp8266 version: ${{ needs.prepare.outputs.version }} upload_url: ${{ needs.prepare.outputs.upload_url }} + is_esp32: false diff --git a/README.md b/README.md index edb30159..e4c482fb 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,15 @@ # AMS Reader This code is designed to decode data from electric smart meters installed in many countries in Europe these days. The data is presented in a graphical web interface and can also send the data to a MQTT broker which makes it suitable for home automation project. Originally it was only designed to work with Norwegian meters, but has since been adapter to read any IEC-62056-7-5 or IEC-62056-21 compliant meters. -Later development have added Energy usage graph for both day and month, as well as future energy price. The code can run on any ESP8266 or ESP32 hardware which you can read more about in the [WiKi](https://github.com/UtilitechAS/amsreader-firmware/wiki). If you don't have the knowledge to set up a ESP device yourself, or you would like to support our work, please have a look at our shop at [amsleser.no](https://amsleser.no/). +Later development have added Energy usage graph for both day and month, as well as future energy price. The code can run on any ESP8266 or ESP32 hardware which you can read more about in the [WiKi](https://github.com/UtilitechAS/amsreader-firmware/wiki). If you don't have the knowledge to set up a ESP device yourself, or you would like to support our work, please have a look at our shop at [amsleser.no](https://www.amsleser.no/). -Go to the [WiKi](https://github.com/UtilitechAS/amsreader-firmware/wiki) for information on how to get your own device! And find the latest prebuilt firmware file at the [release section](https://github.com/UtilitechAS/amsreader-firmware/releases). +## Installing pre-built firmware +If you have a device already running this firmware and you for some reason need to upgrade via USB port, you can use a [this web-based tool](https://www.amsleser.cloud/flasher) + +If you are using a development board and want to flash a pre-built firmware manually, get the necessary files from the [release](https://github.com/UtilitechAS/amsreader-firmware/releases) section and visit the [WiKi](https://github.com/UtilitechAS/amsreader-firmware/wiki) and have a look at the [Flashing](https://github.com/UtilitechAS/amsreader-firmware/wiki/flashinghttps://github.com/UtilitechAS/amsreader-firmware/wiki/flashing) section ## Building this project with PlatformIO To build this project, you need [PlatformIO](https://platformio.org/) installed. diff --git a/doc/Norway/Norwegian_payload_breakdown.docx b/doc/Norway/Norwegian_payload_breakdown.docx new file mode 100644 index 0000000000000000000000000000000000000000..b1d7979e76ba7f2417e2969dc93a9eef36e7fdbd GIT binary patch literal 8680 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 WD!@MlF%%Ta)2sU_P_W6LKm8XrRX?2o literal 0 HcmV?d00001 diff --git a/images/dashboard.png b/images/dashboard.png index 66083b8703e8d82cd860e33d62113e0c97fecd79..017fbd3b786c8f3dfe13ec9852f84a2960e23f13 100644 GIT binary patch literal 203908 zcmbrlbyyrt^DayX!GgQHySoGl?(XjHF2NmwySux)1YO*NdvIA?zs+;bd*0`F{yW#l zwbb^`^laTzT~pg#U3Y|noH#rz4lEcL7`&u}s1g|17aPz&A2cNBNM6|b7U&JaSy)m9 z8uaG_Z4wUpjP3GW!$sNN%*EZ%$rQ}o&feCP-r3m6)YQ(|!rtZbbFToX6XV}bB2K1; zE|&IoL@JiHreH4i3`8uf3`F+UE}#Yz3pltOpF{6A3dCQ&mFVk1FvpN{v6|1|fw|y|&GZR*NT= zm1_L1mCbg^`qe8WDq52C3ab%ShLWSgc=(NjCJoaj_-0>w1sf7#$dF*3{d7{7$(^^H z{RJKXCMnBZM{n3Ai0wNh!qCLQNdFNv+;P_YpZ;|q7-^EM4*fr;K^?=1g~7G|-2sc_ z|GC3Jqad$0;#UfQF)UBqEY&RBQr3SV1S9Qs><@)Dm!~C^z@0Fr+`T*x-V$@_oK3{` z6L7M~)#q(}{x{^IR>c}`LQ~n?hf^M3tB7rWI*kFXe*^pz<{0_K1M%y{vgf=7n9YJdoa*I5~lSqT=QU; zPEhZjgI*rEQmH38?g#4}%SOZJpSTQqcBK#p@;$NbK8;jpe@J{3RJEvUyO$CzOW|gb zMe$3N+_!2AA1Fqbg*@Xw9~l6~mNSXEGjB-N^6>QktJ3GC39{M!-D8|Ql~a8oqnyqX z%;Kw)Hmx1+h5Mh}_Sd~hR&~DA!YRR9PyO;bd@?;{3gF|VxYOaRt_}ZA+tR!x22%q2 zB{@ouEhA%(`eLhtO11GOP`a)AnrvDyS-$;^W?J%mGTJ<)ZkRPnU(l-Sc?9!6{yC(| zNih{y#>H>Edm9}A98@wZB$^NwQe*$3i9u)DVn38tec@w5a{YC%E@_pku{HQD^9ItE z&hY?zu)7^NqTI%A$v4xx-OOHR3-5LLdW~lHH0@}+Oo)pq(R~MQ`pY$lt+7& z>(KyFAUK+VyTZFFH@5ctYDaZsXb)zbUTcyfG8sQtx+lNBkcgzv*Wuzh`bdx2pO)aWu+N&REVE%w zqP+1Rq-Sgq&L%T`VMOtrT;$E#Q}{*TOG)EX4oLVxK)=GV zd$l9jYX-(yL^4 z?Z<&_sEE+V5_=tBLa-SZ!K~UT2{E+Y`xC?-go76K-sva?-TP`lJ%hL4_qvqs*UVAI zwD|cdj&u4-^F}=tqSd`BZcv074l&N~^}Lx)VD%?E)e%!!fb9%`szf{>LE>m(Ak0wSUdZN3OJ&XJrALV5~#hz%xd{ z3c5}oZ>sRsk8D3#l{FjVf(zo5Wf+mzs}48kh~=_{F11WH*Y0d82=v*YAlDH_oQTFXCK0bkI1 zPs@t4Lle%@@$TVD53S*?vxDV$#vd*oquY>h*^kWXtWT8?&@8-q&KFGSdM@SZ9yI!Z z{#g<2Vff9+;!oEbAw}Jt8K2S5Q=w!e3}xpOjRtg8%;`2Lf_l^#$&j4Fcl2m$o2c!>DBX>v_3v zxGrAg$*rW@`-Dt8zKlKL2(}0B=}|P<4L>V4#y3LIIoA2~e5&0^?^uT>!lPH)16Ilu zLOSQ0j`8<+R3{GxT|Z zS*MrWTYQwg)BT%w4t`rrKl5OeRZWcI47SnfcEr7EfZ*CnNflg`zxL9z9O^Yz2pqWX%= z^B+puvVbO3I=NAb0p9Rf#rQeF%*$%2u)Ru8!^Eh^%hxE?ui`f^@&oNS>D2-ngT9Qi zg+!GZg8XhB=QnFh(WWw41k$TtKyd*Sx{W_d_~sr`94@8j+ko*AKCdUMl{{wV>drDh zUi31=o;OiIXPZJAsz(|@-t@TG2=b6><0*aC`^aHDExs8Ds(zypH~e9G^b)W4$NhM_ z*5>=BFX8C~PLjR9mvUOrOF9^Y>_NYrwJhU`)_jh?Hx?G*?Bu6~zS<=3kxHcPlN@=H ziu<|%ytyKe_kb&&EpIt$PZbK>Rd^dJgGs7;lHt^3+=az1()lFMyn7LR_6Fvb5K%sh zROmmzuT=6>Xfr-G!k}VVXabAwm;q_W@*d%^XRdg@ZiJV1jk_w=X-?B{32M1XTKwlxb2ClVeW7?RR~(90t2{eW`%V>17_{JTJ5k=qB##3qu26)bp-Dm1M1 zKPuT2C`dyExkHT>dPqVQVz6=;@i%r9P}4kMUpiKqt2#I%SFrGfyuKvmn9m30)&p(A zoH&|8N6SeS4t<5>6i*@6RkHZvEYCfR3RUp{t)E~64`plwHqr2TTH%#j&`b4Z37lwE zME%Xd>uFdCyKT?dtL`Er%-&M4Ma8Z2T4DoHpU!+p6BD286s%$56y^=e1{T~LIMG9C zs(OS(#ml%fPb_*F39=*xWc&kt^4B%wLbNt=T4~X!y3x3JT0S{;)@w1)AAilj77>ol zWSwpW7*at)n=P^yQh9P`lZI65uX!u7=3SB5Xu?Tu!Bf!9eAbp^x4b;6d#J0HE~eY;0X*+O zpiowPayU$v@Z-ufwOihsK6zn1I^B50S76x?WSt z0lm?_dBhluRN%j!v#`G|m2yZ`c?bzy+Pn}J#N9(tlIZyLEpH%o9rf!)4R=FhyQcicYk&MQ99s^Eb*^FmH>a zbTE8Il1i3Vf9Qr#@Y@Jfl^Wyr!M+3zzs(TYh4JdT%ka~)LQ>ARo7i+LD`diNrp z>@fDa20IbMUyi55jn*o3))=iXPbROtWN~o^lY|@E=Ft|Gh^b zLP6P1BJAmFPTWqrEX(j;O%IemnFwS`n%T2M`T5cLvOwm_%QfCPEOTxOG#Wo%=0g7b z7e;sKGV4PumqEn2DW?+`DNq(rUNuz-*)i3l429W#N*o7uBdm~cm14B{+TxM z((bw*R@ryL-xVVCrRhsMnEU%<2?M{q;EOp!YYoKBiU_B>N5Sq5 z`@j~67r-gzL)2+-J6FYe(v~!y&~j?G>h{=I(vXE?16@>Xcz!L_o^3lR=O~6L=M&$H z13e9j0~2ut_TJ_l=DQmuyxuYDn&>bNTa@F?Oy+A;r08&r)aA?;_kc4T7dFS&6-2MG znVyfc3RO@sWFOt3kllp!&Lk0P?jGFpP>wG^;FF#x_t^C1u1vLH6hZb>2d1jV1;3OS zHH2)0fmn2A5@)PIQ(Jz&n4w>(Nd-F|`;xBHW^5!+l^c72qE^z1ff3xPewK`fA2QU| zV<2p6=qNU+v9_W{%P6TZO1388^pSe7VJ2ih$En&{fG8={_49R8lGG8;%^`@IC+TMs$?JQR#kMrs4lJ|}Db#y{4+ zKh5gAH&ABsWI_eB{%Wu~pb|58ttq?zCg=^v`nh8Dc~2)2AE!hBd3x?r1-Pjn<|na2 zDDWxD)8xeH@Hytk*Iz|g9M=P>o?Hwq7x`o?R_wiLTv3vG3g+x}2LLgSl$Lda!6s30 z^6Ty3a?whf)r4onvwFmal#O+N3#gFTL*w9>59G@c&-#PLt;YHrn)l5!C$vv=8FyrH z76=ah;|Q?2KQ8g~+HKMIyZREvSP_2gIPx`Ym(sak7`*kHM91Er3LIw+Ga}d?cm$#H zi8tQ2CE2{%$dqxlB4xr7*jB-4+^DWr$7_oh8S1Yx0Ux&C`o7Z z`rRDcD#x0G>UmP;!~qL`O3OPbv0!u*WF^`9-oynh@=u1}Eh>$uEa8ze+4j*N9oEuV z#PF^Q8^$D8(tuRbDAbNiEJqiJ>03#C!|G~=@B(8Ui`trM{)l5ow$ZW7itT%0T|Z~> z8bYSl$LS7aHeY)^0Ctq5q4VSx2-!W^uFi%ZhheJ*<;EuswpH52`^|{EmJ2GV4u%x= zZvp`%rHSFe)m8H2C4b&L0IKmt1WHPp6_$b;_Rg0{sum*SGiu+J);HGdsw19YO!v>< z3EEG5=`N1tEa48Xt__mBL`vc1n%)<=Xann8x^j3c1Iur@gvweItDdLq;hrh|46%%N zUppX5p*RkjRToc!*a7;iDNokJEg|V&G#865>32Zk_+_IcuasGP<4M9Mb^BIoB=~TK z)7KuRwK`%~KCU^e8MLzgEo>yc8X_II&g|%Sc3BMm*wEDtjcaH6g6K@8=)vlF9z&;T zUbydWcJlnHd8w3Rm`|rq80_2|AlPg3%SkB0Pnap9lCp7~H}U+1k?`?eVn=cX5D(}g z&B7(&A60i@^)um`P=CpHxkag~;49<3|B|^ycY4#lrM&m)NXEw7(V!RQefnij<4Pa3 zth`}XA-o!Mgnib9dJV>S2nMRiyrT2W(~yBhZPKvpn~*hTm9^*F(7eRZ~Ou;1`Us4-$d+1U_4DC zLG6Ue_V+{>Zf4N_fO*{R-KLKj;LiNWk`>+!cUZUDvLN|}6VJjJgT+2nP|tgMe*08@ z;6cRl@x{FBaqa%SUR<6F`uS}%<&<5$lOfa0d|G5gQo!c(_|ugp`i^}xrDJ4hwC*I( zNlnGk&0YXI8`HwNSYf*u+}s$*30Ixv1_kd1Jy)SX%@(cCo^w^u*mYlcdx-G`jCXt| zNL0(etsHI!nV{gCB%0tRM>ew}EZ&pq{u%4fS3N&xF4%21Wk0UOhg^GItf|qQZg#%+ zDF}>74x@F|u&MP7ZOFH*zcnXP~A)|Wb9KYD4$r3wST>ftUy0cNU({_!N=X-}y zWIs9|wv4gDMGvnZ6Gr4mN$|N5e!-A5j_EYqH=C&@7##WO1cUzm%W^l2!20MIvg5Fw zU{CLD7p`(ab;*;Lr~M?h9d0W$_ctB!-;Jx2U%z;rYCKL@@Nt#`%RebtroHyb6fCv3 z8}N-Ramp?nf0pQCj2tsgZj(XB^JL5g4D^@x-NAh|+j(XlidEY!cS!&qVz=bFp|)7? zNvA&Lt8-Cr=1!F6swf}jJ%tpN+S+DZW}>_Qneq1gG4TCY1WV*KIgeOS$(@&ft(_n8 ztOxT`4X#AiK}czJ%JhfX{x&l%LvqH7H)Xv+2PO{rj0x$70ej1=pJ38GUM`a3@#gP#MCaI-FbVwA4NF z2#fno`IePzZA-c4hpXzX*s}FZd`rZgmp82Bdb30_;Q6|{)9!!}DY1*+B9Z~}(PwMQ zye9r6%I36(8W&+UH4RQ803L#f9QpBfBPARyRBB4qX8k(SJ*H_kNT;KPMIZkGm3tMu zydueoq6oz6aSw9pP(;tcBxyrk()f3?i@2OVm2*2-d^v?^10xBD1;Rs(a|JlC66!pA)~ra0$e&)8IA^FXZ!;64Mo=WY9q4tA;g5h^(~H z;6w%T(7hKIk#Hu2TDFUNj3`)Enh7_-180eF?!L?5ABgWYjGd%;)y)Y%oLFcc^)Dnb6EaadSIVfWjUMrp~3Xc?2T2k+e--0{JjncV>;b=X^q zCX%$C0s|#KVnhcQu#>bcM|#iq5K9P53Rv~Acf=0eU&QL@vUOp(I7A!PMD-L@4`OW* zd{Cgp)MDp48*gcJ<)C)tXrHn2>Nd&+Wo1uWem5D1SObj=7E>WIziDd+EE($@r&W7d z$1}|^=d-8b#}=OnubDn{vsK&nH!i`hf6lyF>7|ZicATUyEZDsT`&@BS+>t@*Z`-X$ zKfC~mqVBa*7|5foFL>&jr-0hY1MAxn(Cahz93_j{f*Rrz8Tz5e8H>x3DG2ly3uU>4 zLYB!sjEWnVo4S;1xTB-`46gaC1Ma+GM|1BpwPf3T{;5{D-ytRuz}d*W?Va~#>>eqqn?j9A=8LujC*Mvyl+B1WPDK~XhZ0UnAH42(q#4g-NZ(*<u`X(Qc7 zb%&yE3f>A`%5?%PMoq4#EitP%gyn#jnXEeIXeR{u%;y!1@VxTU`B$-@57myws&iRI z_es-IUl-3!s%$uKF{dUdC>dhhHrU@uoR%`gvoC2(L z*)FytE9{4dMUPj0yP}yK(fIvBX;M3zFOyzg{8|^!T1+!6T0VO$5)m_A$TaxL3SCdj zfn&k=Rh`(I!xM$eku1V}2-qj#aUq_5PJD+{2s7hg=+854TQRpgLoh==Vlb%BG*P2jAnOKm%JA5-N(})w-QLY2VjHvXrqr&Fk~|Eaak)?* zZE!p{=4fCZvInp4bm4$%@GX2UsqyLKKzSGJis&kqx+=@scndi4G`BM{kUR2of7Ad- z$#FZe>$S4vFxDE80R~@mboCr+m1US;Zb(RcA4p=TUwhvYE zQ-WBVkVBb}J0lrU#wdq8yW2D85yIQZPcXSUEc+3FH-hMgBQwT(+~v9wJDr8wb_%se z#cY(1|sAwRi5?77v-l_IcyV9U`F&g;{M1caX=g3Wi z2SuBU5)sYeG^waB-@(Y^nFV)as2v|a$AJHdWQT@Ik)xhDTNWQqYr#b|VV|`Umf zHBwfeBlAGEtIsij77`;vPx*)hazZJ^Yau<5JZ9ER+CNn{mf~8Bi|vKfT(!xsK|2DV z&|ho2wREzZgCTaxD}QUeuz(A|hmCo@(X0(Z77+d3LA|NJR@`i)tH=H;+R&wql3Pyy zkRR#$pH&}@UTrbSYA7k4w%hHhs_pq4EfTJ?{Y%aODG`O#7=l0M;waXr9Ql zQKt#h{R9@bI0b5QdlBE^(Q>H{=VOkjEZ<57rDeCPs0e=J3AOjjjC;46VBA;Z3qP(P zqxtDg_P+PpC<(kry2ttDsuQlu3(0LYw#N3`h8)w}q8*o360XpwMC&u5Wd8zSi@XdL z@KyiBlZKd24Q|*IRdinaTn&C^hsWTc)?|!!{GVEYH13YhSZw#9pEG3!k@n~x>x=7@ zYRlV@%{Yv|ie;^FBLR56gMhJYpd6I7!Fd~cR`I8fluvq-eH4n zYNrjuw1N<${ClcHr=>$vQ{o>7XR1Z|s0K|uE)|@nlf#8A$MzFqZ+!C>lLmAB3Ew+O zf{@rXPlHVfk}Y0&F{#P=W*eR~qhldA>|$Eo(@kqb8k3#Xt` zSjK9~DKXrsO<2a}cYv=4%WSAJ-$NU+GHKo<@s9dejfVvj*yUW3(x=e8*SvsiZ7qzP zwRG`e_12r-IB_P^u206l6=dXi%0aod4W9u&bh$GsR`Ht}hjyjbsDuS68Z$4){1%vX zH$Z7+JJTv=_i%9g2rY*p^OB=sJfl#LjzHb{khu?&;sr~>gGN1fUy2jL-nvBr3I9{W zGi-$oIswFF_7JKwWwVX}C2&=x#a#|v1;;L}Jl`lRAS;0)FJa+rXPtclG52ke-~Od3 zUs+;vN>xpEN)xvcM`vYyn@4>zHKZ^NuY9;sMf^;IH@%l#S#b*jlGQR4$xL=>H+}gU zu_mG;%jrhiMd5VlJ8DW6Y$Sd>1fw&D^28cTEDU zlCpTbOB6!xysm!_i^^lP&cuuJA(9yB$dt{lMk-@{lT5}9+2wF>AZ;9cm=d)kEzH-n zZ?{*-NDpM*6w3}B22i~da>YXl-y>a_w+OLCG_0XEdsyITCGj}R2~o~BA+ z(ph-cPlCyQG*P~|lH8tY=fCUeqGU~K>~RQN`EJirK6h#Hq=*kw)>k$-MMW& z1p^G9!lm5sBnyY&J!B68EGN=bvH@?UlcHN~DNuLkFE3$LyM(mbddC}PEm`ae2WluK zbNN;hdy9#k<+$Ckl%!ccK4)K)7NR^2Z+udYN^iuDmvy-Lb%NBD>AA~~BC^>!|1CpTt)PEowA#<%#iD2P$^hx7JSo z&J!Mvkv5LhDS_$vNN%~uvv+Jh+e$NognqrQ&t$v`G6 z2Q-!TTCYJ|ayTNb{}agW^J+CkzNSTMU$}ewR#kWIDdT(P0NRO_{@)>4poEaH*Xurk z<7+i~bM=U&ZTd`oLR&NY-<>;BKf@Jth!%oJK&+9W&S!DGs!4vb$i{umTc8^4H~McPj8wdHjum=l46OX{4ArQ!lqR@l~O9JOUfru${l z?D?kb1@FWJ$HP{53pCm{f9dOS8aw_t4-Qyf-Y-OaFul!!#&|yq6~GMj^(#oa6mUQl z^fnfF{zhNIXPsKt0^Bu5FZo;A(y426rq%WwP%RLS?d;<5{g211gUs@IBWVNz-L6SF zc(Pi^+_M4#zT_bv~tUe&Q{=BEyLd{Zx%9ASVo09F)UQwy=%0*}SF7`ZJS z$F=h?($vgQF-&;uV?K9#GsGzGJLdXkP9vIz*1ITM+x}A6TcOfsV;ZZWV+8}-;FWLa zdazzKueL5T77s%ct%K_u2;)&Fj)2+SgW?}K;M&cw-2`|~2sk`uPR(~{1eH*}NR@}j z4raLn7EYW{U9JpCr0gDdH)YC@rcLN1e)H@$e-wZ>M>OLkHej7U}XvGCaz0_H0B z2Au7xC}`DM33;}9O16UfWS2XYc0OGYb`yRw-qJdLY=h6I%`(fE7yxl!`^jrx8kjwEZZ?uTgq;N9?Ey z{9`e2c;6?!_->y%___GxWPOX@x?tCVIK5St*sUQ0z>nXnd`D#S9WJ86NWkM255pHM z;1+pd1QGfZwYunhX}U6z zmT_23*=0p`( zLfy-mN0W&(9d@9XvI;%h$^y+m?Q4b;JQ5JGAD=38q~yTm2zy4a4^p0}0X(fg7HCYJ zuU3olhhgNTAs{F8Qs}A*EIuBn>MfX5&P;z9;V$h}QXk*!Xi6#`lF^h98ajq2FeVI^ zTY_7WNYF|eUMJYxw8#~VB1l!kAAFH*t(`k}o>54`l^cw<67vw&)=iy{tGabCBPTGm zngyS$;@Gw07P9z`w?>=P4b^gDRU$`SNI@C8F3plfa2Okt7K|D_s?mQb|ESBOkBGas z>x8W+5YV*#h3~E}utk=X!uBYCh=}9WlERDubrUtf=-fL!~t+A%7QT}zwfcjJ)wPthJ242RS^(QmEX-f*M zwsfi+BK~nun0xz08keBU-@>M6ZOFxncGay4)1UX9Spk}?KiA{sZ+fW48r>X8*vj49?ehV1>Yv=8VpBx> zo)$foSST9bQ^fAi&g#d{arPOhGddbn3q%Vt8X`;RC z9-WFl+94>$kW9!<+%s1!_!znjEYY9Ko>k5CFA%3QhJy>Im*9}`jZZL&mq(wfRU=@@ zy#&8tO6hC}_Jq=2E4EYB5(2Jj{B;m88A4EEN;(y0;V-0fxfm9B>xzzUj<)tWYxf^r zow@2&7o464S;^e>l9dh?fi3S=o>`qXZge5ZS?{)xmf7m1Dz19NrHzMgP?pUj7p}+T zMP|1U@F}RtDl1^xX4&T`#J20KREv_yCa)Ug?|VK;6fG?QPz z>$$`Yk0Xggai&@2Bx818P&xA=7c*XBw+%CBRZlRJvetBwnP@0U=~F`=pCrzIe2hJe zDSEPfSq>RON=aSv15;<_6_7V|9570$%rimKO4pIowPZoO;Qs;ZurfKR+IZ`*RZiNr zsxK{>ACMroMODVvf!FcG<;FT9Tb|T5$E1fhxqvH+K00??ue%g^cZzINGr7Xc4U0O49{2$Irx5HvM4-aG3{eTt-bgn;kEr`$D@Xg0Sp5!Kabgff;3N)11-c1d$-diM^7cE`gRbeGu0M4Yyt zIf3SJtlrXIRdkDpOrvMMGJ%s*v=0qY)5BzS89oMklD|10oaOr;-aJXNf{L>K7Tr3ES*#fu z_p!s<*4o+SEg^Lhq1C?fx!JI^FfuIBd>&?OOU^v}g6uLAt+cU@k{`1%9)I+p^d5k# zEEX1)xDkW;MNjL?cp3E48x79lDsVrmy6}?%Bt-nuCr$TYN)c5`s3wyTGYA*I1t{77^?-3?u zSl6Ap>jM}l<;!pqj?0O|B`6$uHapA~y;gXKu5qg#KFsgC{vk@Qu@SJi9G2T>EYBah2AI)Ysh2dB2L2d>JcnD&Ub*YSYtFT?PvBCYs= zTPh_Lw4*g4f6CHjZfs1vb>V3?=q`F4!O5RGxdiAEpw*GZ%!#6ghmf|Ju8OPUD^7F( zh?}aZNKSk_} z3g)XO;5i;OZ9n<@NNRRR)J=%963XRY5GmzKqnwNp zxY;>TauP)h3ll9U^OgeN_{86Rvw{if4^!h}_P5Ky@$&1*+=Zw4&L6(|FHdZiOn6$cJ2N*7FMqE#@A<>z zrpnjr&)oAwm;#~aL6bk>>Xp^Wnzo;sOWM9h``B>&(b3Cn)sPC5aXam0D|){(*R@BL zhQrl6d#yAh|6ZC3TsW>daxI2!pj%&%{(c%D>&YKlm|7W(KblsZ+{&-Ijo<=!qyHMQ zv4rxQW4bT{v?xvk&GyzD=}kHA?Z@pi2SF3M9IXcPZ^qzx*QPg0jFBG+k`?vyloOx{ z9W@_JCVuq04mLMF=DXV(^92*@>Cr45^-G}dOEqZSbd`=ZHRt+i;e3p&7E))J%dOgj*|s)nq&sNG2zbvvMOE<}1K;Jrkl;O&Gtrx~73;$k~a zo`aEoMfWra#09wlRm-n)k?vSTN}o3x~%EL8@(aN$&suUPo8A@sdGuzf36F0jQF5o(xz#Pc}$^@3K%+o;v? zCRwEGGUHdph`lK?m|c}QaK-DMF9ZXM`x1ZGHy1)pu;-^|Tu|eZn5QE*wq^Aqt(}av z;2yU(pS2%b`knOeBNaaqMCI?&35LwT**)>?^5ZJ6o`cdoJKU0Pb7uStd4sQiOI8cT zEj%1pBpHYEl-rokrOXFIflU}#oJH9O&AD6}cQgC<*FPZlJnylz?a4SxvPV{t5=NhM z0Y@JMkn64{U2oWz@7)zouR3lr*asSyIit_Zzo)Amj;Q?}LIbi=rk6WB=RMDs3l&nd zr~#w<&HC8fmVeL;RY02M5e$5pa@GiKySp=KeW&r7I9k;lct<@Ss4oAO)x{)N%?gY7 zadY!3t#*v9EXft@R0Y6KTWEZoYV!3o-08?&FGW2i={MfR>FoO_4Q^h>7#~*xVZJ&T zGpi*$*&&EWR~Ks$Jj#UcZ%#5lQk^AbG1b3K?jA~w;YDxS{Nlu7iBSpMj;_3&?4$X{8ulimY$b7! z;nI;zz>)Q<%63I9`FZxCJ-PQ92az3b`sG1hJ8h(D?e|?69WL|3c~0Q5yx1-_24KB8 zKS@PRA;AxQz&3`n{z1;nunPyzO=@nksK=71u?PmuN{kVIM0iU$l6Cs};Bfl7hc|<; ziya|G58g9`tkU?&yV$_iGXb`+0C&KJWi8fRDOv6Uc=V&@gLkJZ^1iMraa42!O zj0SkfMEUrU&c|d*V+h-)D=Bpk*^BkrjFuq=`HpkmEyM^;sKFJd%-~~P`QK&tL**cz zy=|^?<-y?<8Ab@?jpfMO20I=n8PM_S!vWZwc1iBlbNMYIPMzvqgSyGpqrdm(ui>T* zQL-9SXR;rO!pbzRc9b;cqynELZDg#Dfong1g#tdCtQjh$*4OeUD@9bm;MqB3!~r|Q zVq0xyx9fO?%7>(3LRNV_uJ34;sJ;kjmIh!qJ zbT6I9v}^Ob`ro8$S5F995lv*I(_=uP2n)5;{*=_4eb{DEM`(?}rWvw*BWAIpbghJu z?~W9UcPVw|r3Cpd=x{>kPEARl^QYPILE|Pge&UBUUZFDXW5bM>WSS*!=Ja7|HeH)L zi~MU-F-~nk#zL=IgRj4|qna$c_ZFSe4kCra2fkJ4X|e_=#k>)tru4AVb`-HXq=l!F zHEwzuN~_;lw0E@alqmQ$Cw-`C^f0%%9d^>jyXWVw*SA8$o40Ga+Q|I=AouaY>S&!OV3S*{2@>rSbUrS;Y1ZZVqD z{&L=LdE&`;e#$)W*^5^vE7|W3O5Gy78%W7l--o#uuyHoUkpTQo?R$Z=C_kvQ2X)l< z*PK{4yO^QO{*xh79+AwE<;~p|8&uJ7$)%i! zE4g*SC)c#Jp#N(9T;l?Qa-kE$Ty4q$;y|?n<2CZS&j&_ob8NpB@!nU_k2W;LP}dMP z+Q;qotJ`(&H*mX0?-dhX>>16QT5CgP3-94y-5$8%RHr?$%X|;F?}%D3NtclByvd;j z(YQ42=mw9SC!cfS!k5mZXU4(>&b|4wwm8pyAS(o0KYP)ZLGGaEjeS?0#l+)xNfOZ{ zXM+HZ~x<)1ZXCjSYpl-0fu03gIZ>L!XiL#Jm0#|nfjjfhdDOkk>{(O z#&qAB==008>YDpBOdK6s;}(KxEi+>`C5VxCO&Ji8$Bgp(Rq2SFvAqK_&r%r3p_%X) zdkcVQ`h?BHiTWR|)X9gCdha^|o8He{1h9yQo7@Dgoe_+3sqo`%M;US;UZ7cOYrzd!qj41BI`h1GtW(dbvF`Ny~ZLuuW@ znYQW4{*xK_xSZQSOm-cDn@n#3QbOYfb~PNU&?(_Dloi@k85O1 ziZy?Tou|$z%zsIrpq2$iK=uEj5&vZcBLB}ThmeT>e|MNI?OTeltvmV`pkSmeuD40G z7qk_v%t$CU?0=tn0;kVybN{Xlpw+!j~ zn0!a!F`*3g{-q6?__3V|vqfgj3b+6W#~8WrCbox~cO0ChmBS z=_N6AI5cA(7ZM)bYIqh^l$`iX9s5v9Qu!#%}}!5CM4`EniL?7SYKHr0G-@3F@rxL zRk$l2ZBkmAiHtKuf~GuOc!l7vp!h3t&_*X9cx++}R16_pyy$tl`EhtHdR+TEwaZsYU#+ko+r-WPwV_{PyK5le?YlW&xi*1#2c?piF6wNfRsSBmhzVqWGf38dAsqSIGX;lAN62vg0u$c&uRw z91qvC&$WR^6BeC2Jr^=%JHSEu*k1tMMNw$cf$6^2m@KhU%7P5BP269R_*cj)S(}~V zw}>UP1T>9XBpF@_7a_%DLnhBE5z&7{1nn0im6J$%T5d`>DTgOf{?~|UiUwlFl&WzjIXr0Bw3_@tn%Ockt2N!%B)zaVl%4~jiS{(|^N|Gz*KSX0!y zu4E*t9v{p8p({t)Jr^BgSEX~`h9F}Mk+6*zlm5AmM$#-fi8gRA0TLYlw8&b_P)?Je zQ#zBenQ>wqr<`bmB`B<9+A+ukX6~dN>oO!k#jeVtVu=Qm(P+hkYNngBH}hq57{WzF(y`^yOWfg+O@N6> z>l7C2@s?7Lh3u^CXDfAq8<~Fcr)JQ|%8(W5PwO{MCex6Rh<_6Q_}VaY zcDmb5T*&q+*UH^-#$Hoges^hk+%%!#&|{TOb~rk#*Okd;64Sh26&K<1GhlVE^a zp$2ogT#xl#Q*(T|alE(FO{cNVyuG91sMZo*qSI75xD%yF0O2*csEaw9WjA8GyTws0 ziPcMnS5qQpK}n`wjuuNcg(MEYXDs*BELCH_(7Q8RmERiCXtkcVfA!sgUTri5JxJ>G z+I_##za}=tAswq_dBPwWzCXFKJMUy!u6LhImJ<5?tdhkf5s?naNdNiC*W2N)3KN9S z`5+o|ZHeA|W&53)cgr|9IQ*X1eg3|@6CLmVgZI7rW$aRlSARUZ7R`@^5SkT1v2;~dlUcT=lneWx zdcuzqUfT3mkQhTv=Y^**gL@{mD|`GED3fIEH4BrD)eAZ9;PUySr2=ZXDtHvq@Cb@v z%pQ={j@C#fqzD$lqlnxfM;Ga5U$c~oY$%r&P5Rcr2Ro(@BN0rM?YH>U8}Iw-p6LO# z#%vNxrljrW=Hpx4ORC(s{f|#iE(7F#o@0{F1#&WtDI_;*^wY2F#^TBlB4sHc3(~6# z)wKLb6nibw8HvQsN>*#X{(Gq93;)e?%olhfK6UK)>~@bbC2LNWa$q(%yd2zipQzLZ zh;q_A&8=s%+{>DyUv!iELQS-v;Pm+oj+pMw+W#oal=_=yE=(|9EW9!AQ)9PxP#s82 z*xg^#?QWE=_{+pCMWC2(e>N4JCnE-pn_IvuHRlh)pFjIQS>0QRBUiHPx9XWQ!CY%pH7*hfWytEo558$jsd>V-1!-0 zLuH#px-mErpj%W*Zau@Lkv9HD?P}Wd!6-7C>y1cW06SAa zqS2q*6B(#Uv#!pN+34<+w?AL4{qj^^Tv-u#EBaV|-xV|tdobmj;Vfa@D*_wq9qEbO zbrJXxP3_%74?gEb(Un-u*;(re3`DW&7O3AMhwyLHmR4voqzmGA2KZA*kmwTFqXxu zqD&x5$b>l6?KQ!ltbX}rdTrO08l{(LMM=Evf-#{ZnMQ=hbAu-)wikJvf_;gPVnwk? zCY!$3Rp!})zhE_AD^EGC^mN=h+L2mR^2|59BLA3S+aElLm0~I#d(A(0gKoTBF|~Qd zLoiy1@_wGL_R{Oxh0*Q62#ojU;*{bPQ`2C{;{ZBNGIMsKmwLQG*tEYdM!M{e|2iQm zP|xMi<9p8lYyIYAOU=q}h@x;^+lEb}{J91B8XQx#-OHl*IxWKXo?f?v&kB4Iq((y^5sL%$zJ{Q_A6e+TpNQ;yLoN>7ly{F+YCDJMEpN)wp9u_oYa5FMpgWhclx*ttnl+$yF}YCL4&A^GGgr z=&*<`Qt$6oD|Wr!HIO7L2%<-|HwhZ7R^M_Wk*G)_kIl z8#0!stPh5fTBS9~6D?F843d}DF>vEE|?cSZ`xCR z^62T)bhT=Xp6iz#LCaHRG!xdd%ZsUkxoY)1{Pm9dUCBPT7mJwubrq)Vf4@L#UNMOH z+GQT`*d-FzUnmtxOW-nHMn74TL}s=bfAbwK2j`8{!gQhhLQ zv@)(UTMz#+&7M!Iw<{TCYYHyBa=v2t9a>nKNt^0@ldG0%p^kf_dYvJ=UubfPh0n#7 z{pIzwLaib9ZwI4Da5DC@H}sg8m`Cf4FKEb7peBY~JY4e4vgq5R1y6q4>j`RWCu+cN z23@Kw11G{)KJ_oRCdOe!h9+JLv{Ak(n*EkBcGx~H+o;=hoU-w^rTne;LS28^!i3#@ zaqkgWMn%pSvcZI`KO0=_%AHm?st%@$gY~5Y;Us*Y2JeN5u1?-$O5qyKz9OZ%Zj{)p z7t3}kL~Nk!gw;paju7OVvrm(Y&JXaebp`ph#|$@;eRd}sQ)Zm+W$b2HGud+DV0WRB z)Vh)53!AOsF$GlfB4{z&gxH@P_uXZ01S^o!LUU3tDbq(n8A9_R^ ztU%d})BPd8QrMIPCqY+zI&aAAH=jyEi~j33Z=|yn#W~hf4@K?wbA!WsBV~Rj$8^ah zFRcqY=cv`Ao}atf)tF=(Ua?rtmBwr|d3kU-yyi&?9c+s43pbiqE>aKe&-YHXDQ1M} z4jf+wJYSGbN$1luZn{NTZ1xMo1Cz#BDrWV3&V4jr#|POj^k^O~fc&e`^r`WTb<(t< zO>y?c@1?|g+W_#}@m^%{QI1~FS%TA>wSFve-}dMj5#6G+TWL4zD$DUlY7@H!a}`PM z7o@h^yC~aZMIWYy-`2YEAHN*XxoJ>uHbQq!q6;a|4e$|eRX*=%-OP7iRYZw7Q~uv4-JBR8UN7n-1gQ16?7 z;mp8tqrnF}E>(+D_IiBv4N~grctIP38D`-^h^a3_qr{4}(#5S5)#b%>d*yX+2yt`V zK}a zXY3*lxq7Tv*Tki(s4q4G?s8IO=7MlhUk=oBUeS9148WtA)t#Lv{iCe!-M*uh?v-Qe@9GRT|M~jP4>q;iI(`d7gAI$e++!M?D`V+>d%pXFhFs^5>?{~ zp|{)U3DBCK^|)R_Q_hpeef7#T7!z~TAxp}G!SS-MHb}y{cipOfYqSW*N{c(2SEhC?De(F~c%2X4?bV}r+#ktsXl8$&|A!ZXCNsIS$l8(&+b^qA?&sUeLZT11#tP6{IIjLNwasmoJ^fWMn^tw%f z#?6HRr78ZDQPB07`_MOj86LQy2lmAum%d)Pp3lnF=Ar7hjvi<MtTuVj{`{6acx3Sg$=Id-BYf&Xdf~pp`ioxB(+Qj4z_YzY;?c_N)-$MO;2PeVA!xoA7ewL$~NiHiJ z$|V|CyaS2>gmUoq3n*o@y?`~+DRjLR2@DF4q3z3lpFS#W^b?xZ*qDrZCT+iCrByv^ zp#xyN;a*9leD2tK7QWH!Xj^NeIN7KLyIczY#t|0jv+s|JwCh`LKZX|@Ul|f4Y+*Go zZh?vez%9K-V&VR|`$03Ba-s4UM&cRUs~*QExPOWZA`)?PDZ%b3RJ2gjG0=#XtCLPk zJYDta;0wj>q&-A$;T70c52w^33IyP@HwO;{@0gR~$7tVKAJco>-Ntdig3Iow?3KDC z0N^NOB*nnMKwUoI*BR!CH`s%v!~h5IY+zWy#K0T6waiG~)C& z@KvRzz;%QH?B28Vv`y1mdT(b#t_A7J76w}%%b)0Rdhi8cAd@iHuk6?EL)B`p>Ksl# z4Gk}FyWhV=zB!jKdL-WG9bwKDR&hrVI*ieUm$Uc&y{HF^TqxZqe7{weVxwezMak9Wu#_@QGNCAyVw9->r&B0IPFM$w}Rz6~q6J8;K(|DqqB_m$Yemg)Nm+)s# z2B58SXSe}R1^e75gR6q8o;tyC%M9l**}ltlDW^StaX{9Y@yIW&#!w-*dQE9UwJgCz z9RA!-qYn=n(Ga_;gppY4kQtZv5er0CR+furlFsyZi-YRz47cDr>pt;u_>q0EQ{hxe zNU{#^aIu=&IVlgSCUDJx$Ioz@x2rFG~CQc%JJ63$v4JF&xAsjFjB2C%N=$o#l~O55%y783fObiK|w=6 zU9_9*h@&+7)5YW_-4~f@adO5ij@P^U^VJ?~rUkQUmK)GD);TWLo3BiQ4I0(w3s&|3 z>|~r6GJmj;K#S9RG<$*a)JvBn9Uxy~!_AvJ$cVqzV*kIH$HLA^6Pm=;A7}5a&}i{- zy3%~$-bc*!^zw0GJSX`Zwr>FUgEDHmd^*)r@u1Z6`+xF)dHR^-N&-i2mVa9-0B4Q}WL-RX8w{}>E`qkF{w zENFV%M~ZjX&3wB4Mf$^smQr0$N|9N^{J5i#k`O3z)Vo^if&?-R(P5M5p$Z9uIF1%P zgEwq^(xP*nZESikL>iTT1t?6ly7^_StsM)F56zdOJb3V>K)YH)!)s;TYMzuM5OB%A z=}@#Ho#x!WHRO^{SCW)ocX4(~5nwjTXDP$3&$p3&18_CjbOUjOsu+b{$(9uBHmVLx zGu>FBdna?rgtwvqV4#0~demdA?yb|*`8Qne&^o2a;b1gctyqta^z>T^3T)%8elR48 zXZ=`YHEV6Pd$9L@aX4zH=lIszH3!T{uzRhnPMt_t+W=ZblU zoR57g@X&2r1nwfw)+Q$uwhvD};w+S|m! zxNSG(Akp-CA47Mi5adWd-uryWi1c?PXPe+vyjNrWaG|{xfJTp=J~y2%xU!sV@R8lq zQY!VpXVk4DfM)*s8+SP_SlwqKwty6BlKC4H6>FS#3t%pI(-||Jc%WSxWM6)ouqgO3$V#jQ% z0Q2tJp-nb@>F*F05s%wfFs7MMF*##b7ZSG!J@&meZq?j z!pkZ-%9wZ|KgPz`qvDeVGP)A{rjUAbw0duuTiX{VCKBzp|Ma%Y$1#bO&K8e2NXWbO z^nST>Q+%zb3weS=4`k1?E0b#?K-`l$8L-Gf6lYjjJA@V|?-7M)We=r=3E;YY@hs7R z+(a&OURVrOkX1reQPMHp-QC?B%m?R@{qT8M*4K=LG9rUDS$)L^ho$C0C9in480&&ySszdQYY%dmW`fkkQ9L57rDYkX&LWTw$MMDRXTA^?f|O*KU%U73`LkMG^RUS(x1mq-h-P8;crM->Wa>({y%omKU?K8 zo~BLID0OVwpm?Nv6fO77w({c-Eo3Y*U;pbz{;B9Au2OJ!Dr8dXmfmF}ICU$Wm8K6d zVSW8p>*Uw~$l3p-?W)CfHnx%~QzbLgWndoJE z{9gx@TuC9@5qbD$M0%sc_%s)IOw%e$uo{^B|MNdAU!f+i$4~RWID386aKZ>D;Y6+^aO)!R$qK){SjHaRveoX_PHB> zdQ)-%J>lPKv^zIPGN5)7@xtQCNJAdHFH~ig#JbKN>77UgzvuVpq2%i>*@t*W3rzg)*3j#FVSKRhBEO+%Nx!$(_j*?t>dwi1-o%WJ?P!DbDXzgd7`6M|ROP2JA z0Ual9FP^dmPH5=)w{PEH;^H!2nO)@q=lD~4kVqcU&jck^AG z86mLK!AQuOcY)F7FRw@jou2~8V)A7*yh@$k15G|+Kz6r5J>O~R<9=G}wrAsHbseIz zQ>70y0@Dc$hi!Ih^f2Xr7W^kRUputJk*c5CjR_2e3FIQ*qiNPlDp?18Xp<`O!3Apr z^Gq|V@`X?a>w+AqTxAc=l=Gqg*l|%3A2%rLK!<<<&PT6P8h@V50NMOog_1vRwLTq^ zfLKy(-fknMR&>S-0Q>(G)YBCb5_*8glS8Uib+805X0EgT{~jKt{NUAIOmNGY!MLjy z4N<4s@A*>Vnw(Pp&uH45C%4ZuYfIHpGl$GH9|V`!AaFHttwgqKqQPy?=?TWJAwc^sG>`74vPK>_qbW z*~;A?kqy^U2@D$Q6isZo;v0+X=1)A};^sm6HL`W+eWj@J>II&Ed4%~KxEy9vsn7S< zcFHW~aDm|Zr-waZb10L4BkaK7Ds8H!hAVp!^IwR-zi+WA3@e4PV4%g`y5ZU1vg7v( z$Df{4rqoiXJqq_=vGgkh>p=R;j{r~zhIT5==bn*$b1?$D1Ptb+m~0AzQ8H6Mf_TGY zKEYrL6G4pvwaIR9cpFf=Hmt+QSQSpUVP3T^q^VSRo74h zLww%|e=Qmu4kv71HunBOmrci{*SJ2uSFe4!^WHBs`R6@|>e{~|_-&HR6yztUww+S}w%~GaTi%00dfObEaY#a=F zKEERcG%NFisjs4EJ0)Ht82NX=s?1jIHnf~9i|7)N>t0@#9v~`;q*VxZFLl`ePZT8_ z`?)7EwZ`Jxv)-E@9W=qt@pJ27$iqB{hwIFRK5^ljEX(nRh*~pJLO_L(&sTYf;`aj6 zKpIgYMA8zuT%&1NH;&IX!)$vK5{TU~N_HYEk+ZdSW$P29Fb9WE)6OR~Zg)2M zcY=3^$iM((g^-b@T29v`0ISr18E^FTjZ24jjMef?_LG%~(0 z@#^!RKIEvtKV6@P@YY~FAeAs&o&&tnyw?!{|C0sy@}!a$iGtR?h(N*MO>2&5(f|lK zY{mUQp@Y+Sa}i%j;~s%t7OCe}btx}DfcMe{6$-J@k$m`Xa3_OstFBG8P*uXT&_6~r zJse!I|5KF1t<8uM?PW{&6yo57jnLltmUGG`rE&Bj!t3*%$36k#%N)C zoeX84V5vqk>s;L2$BRowdGRZJN3N3kipw=zppHIGjKHRP2AC0>m2y}-tRq*MB)wR4sVNm;h#~M^H5=l5kqdV^9YC35FXld}7R{ZG z7gK=Dj&eV?P(xB=PFx6`Af?*)3lah6H+rG3^J2VY)obF_zG&vfc*y1oF{v9&h&jgvKSybK_5#-0Le!;TvzXh=4{Vn-MVO#&!#E}p zgKYBdhf(?yBH?d=F%Nk1A`dgAgSnPUJCAZ=|8VgjpV3h=$_}3>X0B$^YN}@SVpa`n z(EXGIZuFQ*to!a`vSFGiT8j@H{8T+L8c~usJ5^ai){Tr7uk*R`a%SR5#9U48v~f<@ z)A<5CNIdH|t-|)$8S3+vt=%n)NlmqkT%VKAyqbZw!-Ct7%qa;)U~ZY%@ha;iH0 z2?t>!Hc&pRFgUxRxqIZuX@GZ%(S7KPi5;wk8=RSgM;uTf5A?yUj|mUp-G>)jtIrUOgr=Lm0{s}`7@j~*ytDW993Uo}QCS{78kpHNc z9cZQ1yAj5ze(@bf-$is*6Hpauc0>Cvjl}QxubG!j`kC|h&0^B76TF?Y_5f`g*AS6* zg?VHn`WXT&?N=*z3ittuAGxn@jDy$CR$S3lw7W28s$d05A3Fo~;F+|NKSa7DM7Q>{ zj4VzXGJq}vcC+EsAAjYAgj$E|@KrytxPXAw?E8<8W+HLf?ZH3*AukyOH||7l!hlQl z`S`cgUVT!Pt$?yFJBoIHzF9t(S7kR*=5ZW zz5ks^(zMWp5bUtO*LeWw6MAHD(-TG0J^I+l*0zL-nc3ejESY(2rk2m;60cITe^w)c z8dMTm97N3GDkvKHFSwaMu*F#Ty*7~R9FJFny&j#P;aP{i#4w;6b#D5`TS# z>De^{5#KEpq`5#{CMGob9gpP&36~I7Se+_y6^I9@og;4o1^mQIQ!)m_YIC|f0*7vb zZYN6?PdLOP>hD$sV$TD5M#f<{0^N|84y*jbFMy6!Qzrcjnz~>Coeff9wm|qfS!agT z_}1*&`|ur*&%}yHmZmaEAt0wjdsDd3FkX2JI0mwd}DBB#L4&-a)UZ+@NOMK0n`yYt@Su3lR`j(~r@GO8!8 zf6fddOw!3mKF9D%P}VzTlK-UzsCDulx<4ms(JeNWhtGpECFawjZl-9hilSW_=rMje z2~2D~+1TXqevk?ce=^)pROQyF3iimdp&f^uF%CY1WCYN$oCoSnj(iat1nA1y+Ho%d zIY$D!QrODuLBJquD>`axYwKi_yWqz_Y-#5EnHp#KgZq0X8lAjLt*)0egCK9BufIBq z0z@B5_o{+-RlJ`2N?dFSYA>C3E^vqVHrnme2Q0qu_%DakEC%B|?#4J)FTC$H##dp{>#I)JmZT-x-4OoN8D_RqJ`;u;SgeBj~{ zozI->=)i}^6dTPs0T;W%eCQjnU`7g+v^XrMP-3k)#?z(ToA3nDKbMp+H-r*p+ux`r z^4JTkJtxOONToojHDDv)_BR=L;d~!5}{88Fb3mim1D2hOZlGGqiF(07APZkdmh^K+uXfz@ z^!-spHqFeX^78I(d$5Gw%NH;H{29WUJaA;|j0$U1HxeU#7vXo z?PljBTzw#I_Z!3=Hs@`qvj-AQFVXJIfwa>Rgwp~N2_U1D=@`_B&8YnOske^7(6As_ zD=&cQN*~Xgw5>v$S~_C8b1xv0znK9`?W8_*oj72$~%X1jgpG;TFJkW);B z%nT+FPbKstkT|)VZrRE=nAQQYvvqP>2I_W(+n6MFUrHG8`3?HNTiuqL7(IdOVG8+Q za_8y5#@A$bOxpFCzpr39@E0av`t-{MEdG#Sx?#q9_RZH93!A8Q=kt5rrYDOk?_UD} zgqMQ$egV?x8)^#&pGiTy$uYO5D&e;>!Y*p`~6!V$O-T8p5d`Bi7O%a zNwEwFQX*^@c` zV~Rjs7#sLb-172lgE}- zX~W7ScCbpK%?&o-iWr`A8$GMazH~3EssfFkN_)S_3X8`dpCqi0(}8f1V>6Q>z&6sC z$5_TUAnsCrUY(-24?z$WLbX~$*JwCf0=oBY9~kgh9w-SUp?Z%Tiu)>bf9_AQ;NXYC zp%Q5Es~s<`cCd$D8LW$tytNx$c`kV0S{$@qV%)DN!0gNy5Nx{8LIG51tm32{_4;Kh zlR>>;5SD>i!*_ZdNAnbXflh;r2v%M@S{%-7qpQyN5fXV@l*dZV8|B5)>G~J$#47-MP}C1cpu;e8!c)joBlh_6IT&^K*Ny zBe8DKe_E(giDXns+~Kr7+VUf1cE4X96`)5fx()^)H)XDOffAH09QH+Zr+3T@>38y- zAE-C-!FR|=K8CxjZo8xEdUQ>fkR1*y)48m@fN9QcFNn_dvrtDtg9MYl`*3_9_>NYI z!TBV@%fi!5kbS;V>y?`q%*ft3B_DHLABejh_f0(i%m)i*bGB#IvAY58_2(_#fj!;} zYP~Auf|;A^E4q`;fg5ugM+;S>)shdu=0-RGrMuPacp(Ash8ZO?h zNe;ltyshE+vn9;${g)Ot?M*s=iKK51heUu)v55ax3g_WEv z2X`w6Yo8Y3OM)Kg2{syFAcRSo6jLn6929a1`f-CCtoVnr&Y~Ek?dyB)1<}=DPyO{v z-|NZ|=VD(_AIz!>i}^=lXe0ehV3B?pr)LDz{Us5$G=Tl``N}{D;b6cJ{*Q#nVmhFU z2)U^C6Dmycv2f&dg?U0i7@3$E9o3FW)1OLig`l70int5x5rsVGsXEp7cp=QdBBoKy zf&9m19*oz&30`-Jc1>qUYAo%iC{)ewj^NE^(d6QK^N_iJgfIpnHT@7Im0eF5iDD0% z^*p_l=&Nc!nFgR4>fpvZe^WHum!lJ*!}dZj8lAUcA;ayDP{)gbY+CDhp< zT*LnFg}}=Ge$sVO0_$bmpT7yS$qqF>4klGR`29~P5y`^E!)~8OpK+;{;~a-K`L9q7 z9if+aW$UT$ZKV7x0 z6#<1H6yKj^e1bXCMl;>0cFAYjxps!&OMqRpdm}mqK^PE*2*iWak^VX9jqTDhj%;EX z3EojxybMV9$1ixtb!E~`Yz?QPBXXIJ8v@2Z0OrdOYZM({EW1E{g4;{7@wvt0V;O9x zIJ@EW>H1laK7@^c-AR)jWwuPbH)Eab4Pn9#0!^~aHdLaX zU?VS~3Ttw%6@C=Kd;EkW>1=GLa&xx=KW|0VG+XA#)kmopc2NF|81+6AvRwS~UL zv3v-CO=#_&G5R25xHIuUwHFBqxjX*t)0pD zr~k0Z3DV)gLeuThoy2uWUR&1!yOHt)`qr@pOy#^GGg!aQQWymLKlME4`AgsOv4NtLxfn zi~2?hiW!*TDPETkWMREEP zU)c$((#CVl7wWk0P{X7hX1P;?!OQ)+tFSG6|@FTz7%%B!(mT?jjx9~HmVjc&7A36UL~Z@Hg9$Pr10F* zyO;onxyMmKa31QktLx}1dG=)3$i=bqY_2EW{a$sZ_EWj((*3*#s~MWNoXTFwLt!Qp>V9tHjz88dT zPh3)X#Fko7()|9@|BJ9Y{8duI*=y~#$<*Wo1D$y%W@RfjHKL>JWlv6*py$Q)opaE^ zoSA9<&Z=VFhbwSCeD6K%`szaj{%E0Xq<@v89|iArF1Hw zs}q3P3@2%aqy6hS74q-v+1O$Yj4Vt7ew@&w1jRxH1G^39RE=tup0c&B1>@}>I@)|B zu3<^DDBAM5uUqk^HcVV63!vuP6||ihA9x{ue$FKq6k+gr9@08ukjG6)`&o(B45?e_ zN!kQ~Dhn9p-yH|DN{*AAs866Vqfs}32JU^`?9p*UAz*sVsdo%|CvH7=Fw)bc!ytc~ zZJa~zT_xiTmnH$tQYB{08tO`N2|1I(1)Q$zBj|cj7+q&5khfBefefW-_ z>nBoH5>@2-vp#aw9HCYh^HK28f8B@YcTSTIDpu7I8bfPJ&%4TV*lAH!`=w^QaJW1V z8Slg<*7id-X6uMR5Wq4?rq3XMY&vrXViD)Q z@hzf0^_e($rFzFnS1}FP?2}1Vv(;<0C#P~XuG-A280#Os_Z(by@F-?+eNuNgxR%{V zyysgi_r9UnG~a$Q%hj(?v#@ol`(4L!HXFVQpyuYr!r z|8K1;O=^H6aI)~y6~iLryYoEZgU|U;j;vrpnbfaWfc^kWFGkNx$GB3itBL_1IHa0| z#DJU`00`Gp2lT;r7c(|FV>!e?5Kz5I;;QkLYr6c7MKzeFn$KNh&w%!vcm)7X#ns7w zM)#_FR>@n5tr8ils%e9SbxvZb!I*wD6hCoODBRU)~34a1ZQS#Wwj21W2bH%MFgA~~CI#&^_3+7J|YHzq4>Ho58 z9y{BNe0jB`y&L8I)NmG;Mbr~Cd+-SnT)zDTk_2pFwk;Jb)fH#wm8>f^#CM zBmnJw;OMhzxMj)g6Y1Bv#`0A&6tDichJ$JCAIY&kV(_Uqddy<#@5S}e?8Ngy#ydQ& zQ>8j*YblU}j6BofbsYxHR`bMsKRJ?aG#tl~5Ed1XOtvQq%_|!uGmr6}VS+#5em=K~ z$9nNX+Q_V15|}M$BMm|9Y8Cgg9}9 ze383htmk8xk#(3@qvmLlL1+Y3Hh1V5 z%$$vYh`3-zskO1>3^tbkv5+8Z1qf~#v}##zw8rU;55}VqdZpk%a^5Hl(0OkUvP+EG zo;X=+w;Vpdrn_<6oBYlIjRws-ilA=`B+6HZyYGnR>cc^E5zV{hpy$6v%%ivtE)Iy( zJ%Qh4I97(D%~P8K9E(itxSu_BRy)y3g_0<1R}}$z%r5U!xMrw-iUAyNCSQ#UqL-DL zy17F5nM!9MO6zrJ#LtirCn~ow5EX&Q8@SCX>s~eov!2f*iw>#ixI^Ey#{HJ_EDXYO=A9zXa;o|bQ8rOJXP(Y`R2m=HV_AFr$7#sj+YJiH31#b zF^zrKDlTv9-=}u-eRu_KFFsXkxu%E%bb0N05FU}-p}_=wRjr`==WlA)dx)Epl^p1; z+k&@rIUHI_%#8QDcwbUOj%(M}meRXQWjPTNd$Qn#a3)A+wBiAw59Bw1?(Od_`3>o6 zZnEiKtyA_o+Neuzs8k0bXUVK^%z+fP0YVjsy(Tst)I*Xcu5#X=U)eDB{uB9#Mx;=+ z9JXc%^x%)cK7O`4p%nMhV7i^@ui2;vw-?V6Dl&*p{*vjw2e8RyksBrbn_)kX}dX{JJu2%>*C#?H6}$S&R1$#og;y*S73n*50gRTnGm8PY{D zN~ixXhpIGGwtB>@=4|3!BGF39_fNlh=i=aZk*mC~$wa>YG$F3qDnzEwGWf`Zm=)(0nn2Aa{+s%iA&0;L-X-v`aK_eXU*SwO?1Ee)en1NB-dz<2& z2{Lr0ol`ZAudFm zRG@|Q2sQ(;;r8Ipxz^(h6~w`Zif$kXE%l5xONnqw;(xLLx$E1bd7VElu35}GpEn3v zVkga1XML!s&1geM1yP#McE*x4y`YD;-xteWA)lgNUlQASqjRBJamfs%lN90|C$qAL zD&x#QSy_|@SIEc>&q$ympjgINYT{JTK{HadQ*Sw4m5_@iiu?kX#M*I~6HqDv5`kDU zQqK=tdFWSmt-&H)2o=0G4#ZJb`wTqsq5ImPv>ZN$w2+b2m<*EaG!4yA&+CGi2g3KF z!mwTfO_$M(x1m5s16{4hcr(%T`=KBlvODkm=(Ar~ihPc~mvLju3+prY7h}^QGdXJ6 zs8eMosX&!3m@2{f{9oyO9lR3glYba5 zt1SRAVy?in>h=wNV(;o1oWj1N8Sn0D=2m8>B{U(&UzA8gpKt+wAM( z2kz@I_4KyPkX?tzt^?GMiF&flUn zGsHU3FhJinf8W|7-1R4d z_Z0-lLm41B4*}9M%EYb)%=YieZmrEvy|%#vU%QnO(CDX8I8$Ow1@>|U>%*x$SBfXN zeS;tb1wn+;K=$3A-TIV+(gD9%d~z+HlUlK=>ey!SuN=42GTUC=nOarph#3fXkV(Dr z>e~0zP2_QZ@EJ6uuP7Ab0!KqEf9zlI-kmt;%n^i>S5BvbfW6>z@`{PBS#58c&GhO3 zS~xA=AjI#WS&toe-iM3x=b*DeBSO8_nw5m1-u8ACKbrm$*WKOo>kS8Vxg`;$`EQvp z=`}h@+>=6_Tn4%1Spw2Tufffdad2@O2<8QH8q`y`>7;okndwkCue7}H2>Id z{#?&kPi~A(x9RoCm^ZKZ!op_l4?G8JxwzWg2R#SXlNP2>K3twd-$bA84=Dr!OMzXra0W!H zB$ac9V%@)dfZW!5gq%LG`S3E#{;isu)O4Um)z{aLzP^5wC7y~@pw8vf54|@Y+Le%w z-ZMB-Tta%jNt7SBBtk`oW9&&Q7Efmn+TVIv>NA_1?2U#$m>4qm^ z;ts)1DSi9cilUjv#x+j+5Q_WVUKUcl>$|J4ii7pNdg(-gFre+(S{~q*nN%8{w;D@y zYSubYfSy$2j`)zzPA|o4S>7ILG;3_sxI_iY+}E4U*Ld}4D-&>)w5i4Gzw|g^!|Hk# zaUM`N(7FK<0rAJ|1g!dhsFRyry05GG_nq-gt_N?*+mNt6fzZvq~7Kx=Vify^xBhYjeQJPJ1nddRnzDLKVKA5-)}E* z&f-0+8ENc~zP`?Qnw#v&!ongFEo(wUySzM{@vOC<_rhN-m&5Aw6Mg*#c-_Q^ChEfTP9VS?iEg}x$dk&-e%hKQY=&3KXBOi?#!h6lgPaI z%~GtazVN2|A-dsg-@G$TTfxoLin%g#WOLM&jcuNw!DA#d8wY+2^p(}PlgmOqN$z4r zA_1qsEjVHK_x_nH=PQE1R}6o0418P;nZGHSGQPmV3hJhkBa2N)z&yK_`8v75sNLE9 z?s*(TpZQz^=8V(c%6ZcJRtj<&fZ8$6owOxBeQ147PM%)E%qbVXgZq%oQ~V6SYRlNE zP%={}Rs6=cRJY0PBk1DJ-1}RS9UK3tb#|7%+g>(VK(6%SsSft(pRO(Y7>Dx%UR!L! zoy66$QrWl<-hQ!@>TFx9J`u6TbYSTqzOMJ|9h0IY-*$?MD&k{(@b?dH?F0)5(Kp@8 zv4`aKicx3fuvBR@Uj_a1?_X%Ey*IFR=!YA0H1M*rtiruf2DZ*66J&VhN5GhzFS-z z-i>VdxUe`bc)QRh@A6tKyli*t#TeDUxD;_GxY+cD|ss`JXOZ!eEyQucsudnAm)Y`TQ8h%vOigT|FG zpESbhTO{W%H8s#7|5cljijVx~7h$oJH_|sZux3H{(gE3>*+Lx+Si9vzHdIi~%LgR~ ziwc1_jK5QL2p@alwFcJ)af4R6G|$~>`yU{o$854Joy$PZ5*T61wETmLGfWt3pbzKa zhs)P0tT|h$L_)i~ALB<0WkRnj^I`YPD!{zXhIWl}t(K;5P+GOz`AT_CHX5@xSDJVB zuoHG$LEBR9yiK=vKc+Me1gRAbrQ7pXSQ&QOfFS_13tg5x^9^MEN3aB8`AR*n| zhzJ4_lF~>wNOveL-Q6Y9-3^=WZt3o36W`4_&-1?5cU`~tpL6~YHhZmguQ|sYW6U`X zo`(<#Ca+9IXztA5;Ta4EM&N=-!szB~tM_H;0A;rR9JdV=dehCiV3G>D9PCGX*Y^DB zi=D{=2_Wcx$y2zpScKLE-$QJ-hku!=6vlCxYno{M^YFKPMx%G$8L2fJGLUFUws-0ip!FgdUU4j^t>@K52$z%+5r5K2N=oDbkYD|~cQr&U+ zdxT*AP)NOyB~{G`#YR}(j4?r(JNtqzlr5L80L?vTYErRK!?(9QZ)GWe8Yjuj^m%{gNV}?~h5+&J{XgFcfH@J2Jpx6V%_5x%QjzmoWA#!Q`-Qw0(kDq# zSxTn=N{1ZeTpV5(xSfxnU8TU0}ntvc>4<~=d7pil2 zxU#eFm>*su+)b2!c8Mue9a?C43;Fei!BgF$MRlpL;$R&A#bv`Ss~H3W3YHvGzex~I zdv7~wOUuf#?1OtjO5>ns{GW>#5`zQxIC}Rub030NDLPIzA$-$xrRMy*hYtCtd++Yb z$5PU#DrGv!;~X|%)5F(4eoGb3Tf)a7sF>P7Y6*SCmB9ddAC9qBBHdfc3Cbv%9v zqft-bV=B=ZK?M(GbjSMNw-x-?8;k(KsJaorlwHE~N|hh0A294A$uc~4)|6MKh~2&$ zKn5?h{Fta6H^_>w!ezyYY&e;apWE031=*&40WXU%;NoUV^pV^=4nLMxEjZn;yd#|B zklEIL{-2ok7CG#+012LChh06`hzPP#EYg<`2?M@l^H8o<1jQVWjWCEXyXH7i1^nd>XHEky* zxCr=T4fXlh7Z{^KszaDNxTvV3&L9C~v5Jb~TG?5xjL!t}?6-yzja6uC0K>Bw=-s}y zc`w6py+6(k9hg9=ZWuJXSn3?xWCS^hOihV)UOn0AHAX^0EXlvA)$hXver)yHn50#Lf(TFJnjoa7>4e?)FCtU9v{0 zS!k0yIqfkq77=<&S1Mmv&(#%s+KB7P`HQRC*9gm}0(Z3tU&w?R@E*iDHp1 zd;0FMR?n_4>-`w8$QcZWhw+yk}4_d zZL=oUG8k0Lu#rZDhqut;`Jg?t(*f{~wJSJ2xsIi6XGB~{_?zhWN8W{wL$A*QXf(x1 zoOJtHHpF(*$1O7enaHM4O3#nmvfL5+uj6CWt2_=%D z``mWGNI`K=w$I7QxjIw6=~%r*es^tIX1|rDsjO-+X-q3$$HmW6t-F_{V!O{C2SqcH zU(AmhWIm?BdO_^7vV1^MsYtikvo7xv-Y1yzOqLGBPVyhl&Gi+Kb}9VG^g_<|i)VmOqShATDh zpOe%f(-at8`?M=K`1o!l(oK4u%y(u4`FhZv0?e*=;apA;zgCZ#rDGnTRyUFai7%`q zF`%WAd?D%-?bBP$R@M}_pI#y?t2Mgh{%y-P?N6%q&dzteb`cXaUIN*ftHKmM7u_P$ zqnH75JDG#~+)yeigqf9feK!712LmdT18k&xC@!MYV}=kqt;Qc919pe=<3nl-Y{OxUb?5@C(|X-I|J@ka=pyXlb%OCo?w&4+DIg;E2?dpN~MybGHI+R*)HD!0R$ z7+xBF`}Q^h)K;$1zUQWL**~!%7f#k=zulz>2=^er)fXd0&rL}qdrB%w(q!)vUel{X zJV|}{j1-zFR2GL$jFg)Z6=_UXxu#85xf(;|w9rQOYw=nhxM^M#^+=~q~t zkYgcHOP7+)a)GjY3Rfo6nf zPFGu-B&Brt&x2Vm6}n2R9i`YN!3+CT@wR z&zq)&#+J9%bF*PX15bwquyBjzmH|qGaNBI8DTn_|;%@M&9fOK<62Prla|7UA1|)V3#>}Pm|7x^ft+K_ulXrmkqB`n9Rbw2&xU!fPJ*UCS;s6F)fPF~JfoL40 ziZ;jOdPcq>iBD@mirmJ?AYwX=hl{Hd#k?AdyZs_dF3;Zy#!%=-;)-M=kE!PzM*zzF z1qY9A%t{{wp$C7ws-J18{}cE4Y#fmadCynehlP_b60y-`>$TO0e7$!nELHCq0n%CR zJ{~jEJY|eDp!*AKfvC8{kq*zEmTxfL9h4&9^we8O%~o6dOw4Bme9v2trUo|CDUCli zNpq9Fe6{9zO0@)|k7+DNy?vhTI=qv*>s^tD?*SqAuz|0+Z{41Up z0a=QHhH^Q-s->4EXks@*n-=mWe$xY^A+z(YOPFWfSFgz^*Gi|*$~CP zv|kJtp`Bf?S|;PxEJ-vNKD+sdRh$(jq}z`wf~Iy=hgU_-^HhmAveL80B_Sk_-2`>G z8HnMyYb$o|{!=*_Qw8c9u;AjKo?Sl&rG@rM&GKvdwI8Gm=<@QI#%|FIF!Yh%?)1R@ z<{fK@A{vsI042kg`}r`)e|0zyZ`21*I8z><_V?51JxC6G|NmN&-^$m%Fk!e(_wb`G zw4*~JJMz8SbIzUfM1-#7`tP`uU3_{~Ou2TaqGofIp>qyTP(uB)K=r~kJ!iGf`g~2~ zqo}sF#eHKe19F?p+fE76ty8j<41y0gSh=}@p#fcr|3Nq;=9T6%ae#!+{L(Sf{1qEK zLb*C?_+EwMjh*wkQL9~!E7{3%gb;KmkfK+C$;6n;goGV+Zy|cjknv_I*ZU1@VPd*!Md=6yF7jc z608~JO}+7wACDrh_}HfSKCwv=eAGEzK&CKJ2!UWba58-FKBT_eK7+jt0nUm$140Pb z_bY_L1gA*wwiPI;fCg0V{3%QEibHVE#)=IM8Pw|}Y%A>F988+mKbGz(?*grN_I#r1 zzYDz_ZG24|kXGD7TS-I#^R~n+meZ!1T6((w@4avGiH?595Q3i6_?^4Zk2EVBJnz5d z7B;^w$zuDg>?<}G?~te$ze+rJ!+`!EZ1TLg^a69&M$%!BJb~?mb2S`ZYbLDT7*UGI z@UB56i3GT-f;mah#I`*P8)Cz44m*iqOp*rZliTWsV3D2&%(kK1#~;q81%@&qhFDCZ zS3O_=gcHWaSs?Qz@X(e5GjxS1S?deoIA#ZCpz=tbO>4NIj~43ULnV`_E5V7fI@uE; zI9c1UGHQ#j1@M(PYdS+WhXU%%-FIPUyAt|7i$hnJY-g%SdWPj)&*n~0r5*Y`E~nI= z($hSH;2qg&CBYwg|Balp%OeRAeRA)T6gn!YNZLlIwNb^j&eZmHHGHDS@*efm6$ zLbx4O&$;;|Um(CO_x&~DJN%E#jzYtNIwQzpyTY)vzrToHpkik_@UI^UHM@e)i(7}*^eDMMA7y=C9C$edN(<5%IJ*t)jb)O7 z##>Yz7McO*TV!f#{zk)Rf`X-6aWRW@JUNzU>#{eXC>yPJK`JOy#vpnn-n~kh#OIb$ zk~?G@LaSN>VWkLeBayLKSy^!e^GPV;UxQa**~s#fQ?cB*`HfnJxEjd85Wv2*&z#0$ z?0MXiu50;Ii)h^wK7E8-SG5y)vOd?Wl;m~Ah7a0%vo1_MHrN9x9c#GHxvXyH9WIGq z;dX*Fk0LUMJ0l?WeV$;Hu+_f9{`s7=; zXNt0_DwtLF3LwY`Jz~tR+s=B2XQEPZ_YO2DA~(x`o8`*lDM2deLgE$ovq=DqTzo8>`pw7 zDGB7jq6pB?5X5_SU!>Fmo(CItmx!zKEL_6P)F5tR_Y5dkgC6+)v(6}eR#6HgCm+F@=u6DyR>J^vSd zUv;imRcarc9jkLUhSHm2%NHvtCf_}v;(In9vgAlz;SV$Xvfb}@57}R6t3vB59nin) z6tGBwaRoXooH!wvX#|6xQ({aO1}}r)#ZPzU!`IK~=;@6ni+F!=`3yFJ38$}c&OCuA z0@zHFObW^NdJ8n;hpf`}tEKVURH@0IRcuh})N`}rrSpkZ)v9lJcP@4$SK7#zUPN+@ z)=tTHpb#wuWRr0{usrmu)C4`ozzSK7yoJTVm`)o?Ou&vCq93N|aPJQweZ~G%l*<43 z)i;LXjueZ9|9PNtQ;dojLRhKx;sW4#1>p(!Pdgl5H9ml&TPQ%eV`rPOUww#xfsO5# zY|a1xk4fc0rG8&dvUXz1XJS{t2?{MySOwx^{lhnys<63We3D5@mq^}lTyxOf$dW}6 zbnXXH9D>8I?JF(r4eu9Pu6=5+XU+Y9&mMKpUk@5hYKjkvzrZ=<4H^SR@OF|hTfwJ} zhx5XxIQL5j^TSefz=2Ig^{VFIE}z;1Bz|%m1DpPS$|fZA{8nVn(5j*%!l%$wgTMz1RrXWB3<0|W zMls;RXl7oO5F;VgA09l&ic!hR7WZs!oGdVVXW`=Gzk*3SOqxqd(oJ%gt*)$fd;NWh zh)yU~yAxak03<7AsI+}*JJRJlfa-!CvXW*fnv)fZ{)$u;%=X|c+L@L;3^V5ud;r4H zo}le(;71wcN3yc+7tX^F5u6MCaC}^cPRuI;2<9H5`hV(tL8V`Mac6~9R9SaqXVJ9I za4$<9m?rWS(p++@9&sfguD&I+!Z^E3N3sO0Ym+?P{4f?Qbql4YL$1n+rv~>nZ%Z}k z)R^{juiwW^KBNSM_vq`y6h40TEvZ?7jrBvTaB@}s4A;|{>=`@a#`d*1tF30wk8YXLi5BalJ97u6X@^jahUB- zzD7%Yw+B1HQj7RJjwABQ-@J1UdKhd(5JV*b$7_0etz(b_TahLPI1E?{7XEetrZ6%{ z(56@U0O={KVQVaQZ5*FFd24HET(e^*cIaLB=*g1&KT&BJXehuLlrd%iPO?mDBcwtG z-t8uy3(!A^X9uEv==@GEZ~f)o{bJE;Iqbpn63rBf>CY&`;5!9G7Ody;xnuzA7YtIKXElT*ZqHZxuezO zddH{1h(Iw#^{h{%McbX|a5&|Fd`R_{t@sZ2KCzpfgM(C_f(+2{GB0<{&FJ2|(a9+g z;C8)z?elys*Cg8-0uDds(!d-XXyu|2#buStG!c29Sc1|(+z$>?x31x5*rZf*{!mNW zx4H|w{@=^+)Cw&cCQFrwi4<0FiacoB}EJ>+&nJx!PDz{l3o}8J@1MQb?s?zOb(<&=80vm?g{erUj;+DC&__i-kr%x0HDv^9h=-X=#4EK#z)??U$75N$&IQTjB~K z7SZY>{ihH+GTj3H4B$puxtW2NBsj$$+hhRMiyDMZwd%2mdI{1}IYsEQl@U(;C6P|% z5b3R3EVJo}QQP8>cZ2&Wy0%OztF_TXMFYVy=JIklDk1le_()N!<0}h`rN$u;=pp9Y zKNh`wPt_80_LfRhr1w>sOxkQA646v29yB$Y>X*PRHeghS_KRmSv9U$n%yl1M zmvdqaX*#U;{3M{+;2OOp89tt-WXi-O7FqOfsOyxBW1$q9TODR{KEqGgI_3ldp&rP~ z=ECcRW2W1xEt8brLetZn^1^U5Aj(jS@ zeqz-@RK%aug!1p#hOmdTrAfnu4TMl-nUq@39#(9zIZIt#>MwsxGD-#93Z1LBvdRwu zMS(JV537@41ZyjRtyP~&DeEoJKq6-wC1TUe;v>BIT~d5AG36rMh2QEZ@qiE58yWEjmVCkVSjI{eDOT1o@=&KUF*SHclo3(XGLz>y)Tlpo5TV>36)7tdHZYJ-8N!fD3@rCzQ}PU?e1d$W<~0;C14{hsi94V| z+uZ15R2g4ixqdk!)6rR6F|v$JL)=61^_}e*41dTI-~DFU)v&$F9ELw!c$rEdXvZ+K z%FNCV_m-6O_@+8d!>F}=0nHPbkgb6p^MOckd1Up=ABFMBlit`VpTz1z3Kzbm-7zfN ze-1UspI3Iuaf#*bV;p`7ky&UwG zKkmtOW%DlR5a;(`*!FRh!Y4ty{ zm85==j@A?P(ss|VzHb8d*=(*P>BbIYu|KOk0`w6+Ddlnd9u_Zf`w#0PNekw+$| zaXt5~(5SU%HDNbvKN^XQV>PG4?O4tFdGs0fcx%NAm25yT4+>%#?WmXjdFSiv8%3vy z6D={YZG&xhfkr%!4Y;w5yZRMBa#MO%wJ$lgRx7Kk+>v73-Y+cX>xA7MIM-NkvHDzI zl^ni=d|5e zYE+%bnjKH=HPa3WFJ+E2><7ISvjytq;Sa%hzuYj&t^8gbJo?&k1&w3I?e8`SpE<9= zrvayFM&{Dra(7m6V&VP*s+XDB((cWxQ0GGWPghjrQNMprt=ZUI-&+Q~Mcz&ko6d;< z6)yngBgKZ;W;QCjdw|4wUTaps?Yc(}V3fput-1N*Hw1zpol5CJKJ0`>41dgEhE1S5xZKefPVerj$dk7R~$Omf#g{7oOM1?+RlU_9AK z4G=*`F$1(7D~p_*R4sK0G2BdFv@C^y4Dm^%&=B|bhECe!qOZ?Abwr+x7RsyPRqgcu zJ{|*OWRXt|$@!+byOBM4FMn19-d`WCoKz-8QETvxxIdQQ;2GMbK=>V&S)@apy3Mqu zcQ=Bkt4xU>3r4`r04Ejors6N!L+m_B$&Y$bgLGCxFWvd6%eLaehC$H_%mfU;pw)Fx zxcl#12j6d|k&$3Z@~e|86f&sf2zT!HAGbI-V3XbON!TyXHOqGq*=PkQaBXXnX|H0cfMRtRGa)e_K zqiI4EV*)+7L7@*T@@~LTgS*nxJkFu_UIxgo+mjB+Aelu99Nj(n3(?FDv^i+g2geIC zE3OC%nAZOOC{9bAtW^LaKT*KXsZWl2(BwJ%q_4Bd+`RG(rp0bBdqQm_C~~~f#U`}TP{FqkN~)ofQGRF z>Z183msHO?KMajp4raqajV!Rg0BoTV%XKqsao?Hz1BDjOHD8SWH=e$9M<&Y*qFP3iA?#=vyx-lSS?)-vobOb{`qA^|OQ%Hwu>4WX5-m(24m)aslnkYy3v!nG=w2qJMY5HCG%xYMbOe8We=e+#APS=$9`1 z3fu3)vAM%yW?N;Yx8VKS4@qcO@%0sXXwcz9t)w|NbC^C7?WH?5e@s{Vi^? z{iWPUu3#+0M6X-lq~ZmC?_#r|$rsbL?nuy9f!sFrS>`Z)lDixTE8BEbkx@W#1(!=J zHERo7Db?!h?|+?77sK}qb$F5)QyJ(6OwNhUHo-3M8*v+9!4k9i~{6+4et`p%tZ*Ck51@ebq zy;}u0CqmAW*TWF2{6|@ON+DMiYhy^#Ra9f>zJ0p#@>|3vLjr$559^!nD`&M)c#DQ; zK-h_^E|pAdq>{RsGIY{NnyxT-^^SHt+Q8VL&!n@zCzD!^Ne~c=gGtRDKtIU7!|HWn z`7Of<%&}ItYuunV@RiHUk_in#-N~pnJcv!21+Xjt@Il=vxa|FB~}Q z&TfQr7iM~hn(aPQtCTVvE>ef}trN^w{_ye(-R)odCkc_&#*v!(0+;P6z+n=0n_1DllNr8Mldycf?zK!DR{u-*)e{21B9{)X|G zPf0Yy!o3SsGocVbNyPoqv&JRWg4tYGFhsx2dKTz_Ga*%Hujrg6`_sBsSM>#;mzQ(H zfEt?aJ9bVPQq(S+!kgSPu6-OPA@%Dn#Jmj$PD$lO|B}|A*d9VxlV8aWDW&!ISyd^|5C>@^N-xI^Iey7b@0xV&S0B9+i{UF z@J(g2Gwto0;WB3t+gH_sIRp`cpMuCPlArubAGd%YgyMD*bu4e-@tAx-2K}%j5fAR8 zS9dlFwG=}nAkQ&g+C?;{)+-9#({P8A&U`*ulR^$GlG5G1tAs@LDMky3+_x?Kd6{lW zRC+Y4aC=ys`*oQFm5PT&s6a5pPW$H+pEIG!KzbJ(4~!xzIkYzYsT+FrU6EC9FyxMA zaKLN<6pQe)<0r%O1GA9MSc(JZF4+geasAOD#+L1H(xY4rDG7*$K=LReZK zGKjwnEk&YTDzT*R@$r?tY3*)_qh7~eb?_jJ=2$oE9B{gocjiGnLG7<+L5ao68BJxc z#DWz>gW?dB?>yeRm|_y>|R(Htc71zHGLRiu>UxIs_<^I!oIO z8F;{eZ5OgPYR`agN)vsm7aw})aLMobUF&4CukT8{JgZ8|oi|UtHPB3@G7#c4RoHVc z+?8dG3=Ej%55uxxfd}s;K?iVbgK0%~W`fT;yG#KBe+@)!x68Okd_uCoszkyX@TroE zk*1liJFxkqCQG=re~c9l8=7e2)SC%)hcIKN-}mI5zR{#8bB@vX6GUOV+SW2)f85Ps zUTE>%*;~H=w4o(m=36~WA`zt0J*b(5k5;DGMFf??;g(ez_wE7RJGocVqVQxHs~AN! z8nbnL!5Xu}58aj@yBeW~_dI{r^8(XvR~L#BE*8P>aJ`H;V(um$7^QkH-^aM@n%|XV zHzx~8ClcOGzq|dH--q>Dz zB)!L3;dB+c3YaKR3RqBcd;IqJu5aWX=~oz>2asR5?7rh;%OI3E9_UF*v53RKd?9Ej zCR~z0Me==PUDg#>YBO5qb(-hqB~q1(!(+<>X@zOTAh|2liZ%Q5hn%c%cmGb08QM`&MR zt+5M_c*kc=*T|7;=ZA*+;N#%o*9*<-9Gnl& zo~X8FBKO2EX863ne5fhcLW%#7MAR~V@|h~4F{)x{Vl+8}TcY#~YL+KeC|ge79XpF2 z3@KqN8yz%jgjv1YjEbW6LXl^t3toYj{;xZt;iR;pmA1KHUC z+2n$XM6Mf}Q)ZCC=d>3yK{j7l3{~=8d?usq-T2c#%lo<6G^n?r_)8tX#HGiIx#n${ zNBQ{U_#S68oDgAm8PI(tS5RP20ZMV7Ens~BjXF8zu}y$?%N9;FfB<9FPr!~2*KQJ{ z0*E#&kTF-5$9dZHB~%hVQFb0~e)H~q=Rl6+aPQ73fPzMw>BC?uXy$6g{?5x8+zkj2K z1z3_e0D5AxFK+Dqlzre4Fb|6-Yu&#cD^S z@JAY34-`!s7v?#kygm}tprR_E(ae`+D!hn2dE7Yi3=7YCyTQJZTBseasV4_Yp# zuMDld5FCYz<{@%O_A^#WAMp)-zz;t7Olh>YbQ{bNB;v!I6kXOqeqOlutWy{2 zPEGGPB_)vGoe}4dFx9aT$?|*b0z!Gzp8Lqain?lr^o&10;2ba4-P?uux zc1PfmjQAxohB9530JJ6@6O-N&*;&BF&N+-VSn&f7#RtcaoI6fevEeD$imOg!~$umqh6mf`E>Pv1fbCsUBP@-KZoHuc}CzexIJl2Ej79z zrx;RBD}VpZ1b@1omf2Fblk|sH&p0_I$f>yomA^o1+@qd$EH5BEe+5*Z1ji|%bbsMO zrN@>)u%FFN$1$3r6twA3`-G!S?T!Hbw#%&wfhd&?l zl!K#Z70eQrKGyNs=Kp^6wG%uCeOxvVPdY=oKUhU+(t2&Vav>Y(xC!-dAirO1w57Sd z-D#vgW%~$pzX?1xli)@AXYV5WUS7|p3PVwSjrqM1#+^CZ?LmbJcpT-~BCUG7A+3fL zAie=Br)+U%JQrAZ$Z@^_)&$9ovR4wt;G+f< zeI}|g-CNMy3A-2k@y8uZM9uv~&Ct|g!q6Lf)OB1H1v_{OT*;%_$}c7lOu97zro1^Z zT5YSGFM5o1fZLy!W}`?b_D+f_zML+ymp)@8W5MPglx^$!pjUoD(+jV(Li6hpuz zfywc0pah*|rx{Cg>SC)!7rMfd`j7fmLhkXS8JH+Q#XVt+f8x-lx|UYRKig#5{PEJQ zD3nrLCT}FoE(7*xZCuEZ&wwFNDb&>sUI3TWOeN=b1R^L9OUVAd&wxF0%(59LhOor) zqf?nH$EX5QxBY(!rro_%J{!15Lx!-bB`8!bEy`ls`vp+K?l0NDU)*LRn5SOQBX9rs zzl5&;Q_u3WbqClQde5&+!x)JJa5uOaEufLdVpO8+zg_@t$F&a5U`EaCmF3JYeDe!j zE<&)5Z=KeU+kAX=^i9*1Og)Akn^6WetjMHZp8aT;re*qyAvi?1h)eGNML{&oBjS?z zi?DB0V$J2}iIRceexW1Jm!uhDw-*M$EGOKm)IR{jKLp)J3mGnPmjb>o>O#3B0t4TTtMU0BUl&?j z_p<82%ai5Zw_!av@&<2Ig3IOkW!%*1PD>x|+O$Oxp#X{5Y;2c))P*5kuk4RwZ1!J+ zsVeu;iOqf>j@r-`L#b^vorx{Hx(}3PBebI#G6x1Afvo$5M+-LC}7uQ+TMP%4Xb>9qFQ6YJ|A4 zVPI^h@<>Og0pf1I8h96Muj?|jjT92E{fS3j} zFpT&0FIRzeG8@CfqG%B8$`I?BhW`{oNyW)*yvJlfuiOh}jz{e2cDHB}@H%ZIMpX8_ zk&K*tsQG`Zg7AR;39n*IL4Mm}i6-#bKz_1(?dv5i@`sb|pj9DyVX$KMr(PilePw&I zJvuu!Ghx^$pA0acvxI$h{k37=8$B*w>Rl*6QH+Wj(H-%8`Lu=(x$i!bKL6*k zZyOKFz}02yT1`Ifu{+4WL9hDb>-GxdqevsP?N*nNpH&`n5o$ube!Nub*NfE%_^!wK z@Cz;x)iqEg#l4-d_6}d6PSID>B%(KCnSb9#?QppZ4*%ra2q7@HPt^4BJDN+mK@eR; ztT;DSOt>QNdjbNRa5zCW*O?<{=`qSzXGv;scIgVMqRry1M~z&ZEPPCfUF=HxyLvW$ z;NZHdhhKve7`F9|4G%4z#g$Iof{JsT+kVqaYTU}~LwN(?H0ItAzP{}r4f*0WVXpBr z#Mn7+=K4_@YrQhWx4GgB_l0!X&G8~@5w>>PJt{x*g>qRk zn;^cRc0nMbLFFWOuX8KFznkijS*I{W2Lu%pCro*Mv29-RW(KAJdM$gSXa<3Vxdn5f zOsL!+1U{w z^#7`^lw6uu-TbMvl+vk4k4x|L`V8LDuP6c&4mzS0XNuvr5((oy^M*@52^ zC1@aF=z!K!y_eU|g~SMP*}_<3P%|0Bwf96=f*SpW^4~(%qEkpuozXohI$lp4%y%au zg=_bVlzhpUjkFFF&Y6yquT=FCxPKsx?K|TrrEn$mLcNJEnWz@&f&fg_2I@szZVMXx zDpz#^-L~K9-k(0Q*u`ADx&wZ~H2<-|d)H$Y0#MTpYK#jc>;r|oJ?zW-`kJ1|lFbUU zonT zr}SUhumb}*YNX+0X1?oNgwOpnEId2+By`jEk<6QBDR;z$1*y7s zT9te^aF0GGK%MElHl)lx{S=iD6m4a1>~goDzjr3^*@D%DsQFsir6|wTrRX8Gu^!!W z=k^KLz0~OVQ`LqqM(ORosF%$13k$erThn3b?fRYB?RMSYae>|Kg@bQ>eUx1A-Mtu! zH%(>McY&cXB?xE6cAPG$J7&G(0XvGhqGh^HRM1NGaIek8-y0BK%@o$tf|Ee>LPF$fay8 zS}(fz1!H{`MF4wWmHWQQe3K*j=oH9blDfSy3`E8r)r00bLHPEI$3Cy>jI-7Np zndcAR8;Zphz3R zXvqNZ{-AH@o3p;{UE#svvT`seok-BlH$RZom~XykJ2AOlw&BO)=*uQHk*1!ZIxL%7 zTN7el4hGIfhd34+qI&y7!>Js>cz%64W4@J3UzquqmmwjC#lFu_P+EI>0)lWyZB}Eh zpBQ~DULqI1v6Y279iL!HOIvAioy&K5p!mMn`CLl66nBoqsK7)FxRnge(-2hRJ6>Lg zhrWUy=pE<;TJ0{CFTEeoGc-hM0ZUqg1Mkh}q4B5K)VNk6D_vkTLfgI9r~btkV3HOh zu_fcYx(2Xe2_#nSubf2hHn^TAu)GVD%TZt+6s3EM8~wEyzQ4%%^#@m{2s7V8_CXE= zU1GIh(Zs)8yPTGs^rL5ke>%%+ZPydFtMbcPVGj;$vm)dIN^6O?s8`#c_*k$7csMT58<$IX{QHbaIqYG)Jl|OVqy)HLEN2Ic z20Svxwtr6*=#~+Of-|CR?v6his^US%L66~Zu*EReB+@rk;=J$%8iMowkeG-0sv5H_DCVAVqujiz@mR_|z?lknKp#Ak!C#>=H7mDn?JOa_uTwj2@M&wXL_(L(Ib&A$ zW4!h(pdzGr*Hz1@^=c87U|c3xS?2|IM@HliSF;(94eSNa|C-pPR!K*nIf?q~C(tZf zXBkU$H&g%MmLDLCnR6nQ_vbaWninAX-+jJ+ocqUaV{N@=*ODkU$LeB$5JZm|lFauR ziVBS{1{)Gr5}#!|n&X7S|SU_?99Be!C>oVGn)fXXSf7S*{v6+9nKleSCYbAf_{W_y2ZSbix&DU+Hh zo@fDx4BT1jmZyBk~;yY)QS zS&Utb89rowy$k_OTZ2)XH&Pz*IeM}{zwreYJc`b0O7XlpO`(Y`4#=FHe%dm0Xlzg7=vq@%IWJd&q!MQ0DiMpKc%bKk7q1 z6_$F?c_t4!;=liK{807ER5$M&I@jx8iZ0tZLP<4Pzga-~@LBi3jx^+Rp`XGsboGx> zLxzG1%SsK)Q+)X?M=Ztij#LHX=C#oLx1+10sx^Ztso;^oAQ| z2rb}&m7ht#PRnHcr+Ef-K9t>J0_*K;6-w#8j2Y`Kw9IjahUV*4%pEbCNilE}a+kTV zn#Yu;JA)M&VCwmD&)6m;h?w0Q#Dy%4K8pS$t(N5aOH6u7HT+$5+zCAF8B9`Y+nYM< z7L>j{tWi^JMWPW;j0EXf=Rbq}}rV!8F@P59)DpmUx*ESE#`+;mHPiXu;M`0{?8saiy@gWVXy4&ywPNL$5LL_r4M3`SbRXksoPqSMhg5&rKfXoTTKW zVWWzmc)f}W;~I}SGZ~E90xvYy{$24> z1K2kDJdVYkOL4dIL*__{c^6S#g=LTBYEB%q(V4I%T{pLTBbr;peYyxXhGYvx`R==0 zv_-@v^!xak@&dYy?r}fF_pAMuk{(j9RY=;sBOcc-x)4YB>il=1%i)pNpDcf6wj9lJ zY;e))`j@kkh6w!Pq8x3hB@eL~d%BS62vu2!zcE_b`{kb*NIKZV_FW)>t6F`y@QO(~ z=hEtlPT(qpai50g z#(cvEc^~wIZ-rq!p^<$v@;!G&<`qjGc@_TA;MEuOX zOZRPNXf5ZEf3Y+~5Gfi-uqzl72Xjm2sjJV+4eBKJgMACuZB$=#j^8R$78VwN%^ZLc zkHv%;wiG;&d8WZevap=kws!?;!eAW0XWH6<3kE`dVCIXdG4A}+=_uI zk=G%9A7}&Ipl?LOe7ujpN_Q#(otKOdti&unVR9%7x;d)TFm5AGwvSO zJ&9?(c;*VI7Tq27*xaDux8|{L?aUX6We8fyfcZ6iwDzOiei5ZBoKPf3hTwQ;vvU^b zEP=Z}yoh9OIf3@If!A$}XJZ|!&AGzq=8$Qf*8$C#(|a3w7*t*!?sJykHy%4BkV zmVDe~#lobjthc)h958X9X1KdI%K=``29wb?G6^h^6{Z3&?PVs_@17exYMQ$jF(>jT zjJyw}PxDl(de*-wo34L73JD>ek25^WNmHTe+1=N1%Yo*#+ zJ!50!Z^7kQdGqs-wLSKjM4~XvxbM6?(@}kcj3=wpqBs&Hmc&FvL`FBES?2z@irqG$ zLSbjmZ9qgDxbC0|qqyPWBI~dTC6_bf<_53+cp%>UFj=#kSMDgIS!t{uu97=uUA#xE z+&$%oV1{*i`nuz=#85?T-riWqfzwp!avR4DiRrMs|J;bBJUi*L1;f?}Q;YiQuIS-j z?&qb-Gh-)vDf{j|DN-8=K_LPx*9T7;iqCPu_xIa>XVs6brZULE zpO1Tu+_ho!w*?H8&Y_W zG;++!#LUV`IYu__4dqWtSb}(PUaz8%=!Rq}(Vg@q1%iv&2L+7fxI8r=P7UBGf5S$% zdZ}8gglR+JxrE||Cz0(+mRsnOw2x_n>yD9Y0r=U_OZNLkLcX+ITDjN&o+HmkAU-mP zZ@l^3M#>XAx0y98G&G1Ig&@>s@&3VFH5FW8y~iqq-D~ohxWpYPqw=5MtV2$Q6szX} z0S50kw^y%3$#QK)lgKe`#<{q@KnGg%y@cy3%+cQF=Uh;nvKHC$du=+89bJr4yEB!wI=Q6rWk5SSR-KHj|<=tQ{O+5h(R)h!@uhf2jAu_-mzmAq`V|B z6mn_vk1v8R#s`6R+?I(>+7*pA-X+J!qNc$=$vrgD4mITy`YtjpX&&W@4@rQ2&?`p% z^8lMqBF59PjN0E<#gJJ|`xszyp`h(Efy+$@p>ffo%A)!60_ZT{(|TAGTb$=Lova~! z?@1J{l-}aiMOpVS9sY^e!*nrA2n`MGuF-(I{*nZu3mtzElERWeJmYaZ^vh46wn=}J z4Ebd6@cp6yZvxvIdO1NA$z0VdO3G-Q{HabTV`yxpP~1yCgIl}%^|7?6OnN)yTej9% zIjVOYPAc1Rw;5%MnZ2G%JndZYmycfD?UQfD2|~M(_caCFh1eUx}RU5H{#9m?re-Lz$yYEi?H` zq(Iq9q4UDf*gRMq>s~6{=HpI%*(Xp?n$%}}+l8_NGOl2UPa@Ywmz%qlL@;d&KYZoCMOwN2(TjDSf4$jv8S`NN z+#~|57-)YoGlP~SVBgU_Ui2A0TdLPDSdC)C{^;TTm`uS{NqPCuVx?{)d#|6Q3@0~k zu;bF%&)oBQJU8nDLZV>tT95g_cOm?&G>f(WxQ@fXtJEk;%RtDa_JCA~^gc4qK=)30 z1m2>JokO~6Wl#=|5WR<5Ea*=!)9saNsZp3gX&xCb)ZlCd46DQY=h4hsNYCBe9t557 zQ!O-re(GtEgVT}l@^s*sOfv5j&uhm%8OR^iyRgAI$6sCA^`22A^-wmWj#tr01}FC& zz2(u29|3?V0kk0pQaql+^ipf>Zfx(y6C}g4xwjQ5)2yrugG1rAE6SGR|LghTD@m+l z-#R%o$<^9u(O7N-dVO*us&b_hf26uPZnOn9-Z@!tA82u};r!%ol`DI&6$ zR~d1Sa!W=})?O3!ItKM?RSanrMm1?wFI)TM&laK5545aCGn$Fq-rgs4lTV^)KPELh z9e!93Ssk7=p88=fT&&;xKQ{_|&dV1^!#+x#igmZBkC&BK%7*y|;Z@FVmM0n#=>X)d z%pS?8pw@};n|NlWJ<@-k4?N^5d*nL1Me7Zo;SI6zj3-)whhyP8>$ldO<=rsz(0|85 zv@ePQUd!A%7@~fGvdkQzlvi?-8d&lEzaQ|$2xQbis?xphWUQP;;OF0Kx_gjb)wMR> z!Pcj;R0VPMakwmlHz-w54^zsM#4I;2^ysSj--}BoL{{n&6^*>vYVQnAE-b7NFG-75 zDB#>i9Yy;;=I4}wUl^y&IA*bJXluboQ26;PC#ppt3EK4kdw-E~Ww;h_6@1#Z!e1JA zczGm8xCmx`t4z<#YVw8hjF=WSSNi|IF5IY_{{hYt6M`+}H&7w_2BfzV5^mDDnA8Z3 z7--`(={BM7Q!(;1)Oxqn2%4_LuZ3WMs@PCK%N|cT4G>X!# z755b-$G}T;BIYtgjZxc@>h}>MMy&n%2LFzddbsK!VTsEi#Sq!OKVUwbcAuZ9TvgdO ztf4++zPY}o_QQU7q#a;vc=nbh*X_Dgek;gDm1qciAKGP$5hfjM~ftrMw=)-sk6ypGbW z3Vp_&ea(MoW`S6Q^(jcSVmSAzL^TRN=1(x3rpkZ-e(g5(xy;Qt+bi`D{~Td+K&S6p zs^_bEd9K)EO@F1lbpUl5UFwv4p@PH}f0mA21IEDQLPjGvl_Kr!HYL^NUyxE|f~sCb zy$r7W-yvE_;lqId=0%9DR}9hyET7%4mBtr#!R4aE>4sWoyF}FuBs61#To1)n5OfJ{ z93{KGUU;mwQI6#B0*^sKz>xg5Pao);ERL8|;GfeTQG@mmHbbOeBo?NiiC+xY{GHJh z%;p84fU+sg?(lDK&P_AtQ&|o8AVr^>U*H!XHn{9D?Tit2qm!-qFQyqoqf6_uWw!r^ z3t*wy_!Ia5P`;lOK|Jw`dO1s7YSM}u0$x1@zm^s_2WFWNJqLF?Bo{_orcPgO{_i3$ zVWO5xp`zr7HjC+3X7O5-yd@L%L~2pvb%(6oVgfK2;7158AiM9?X<)neBnh-ev+hFK zLw{?cj<35P0b4-okz!gD-)v$F8w)Lib`5XCq_W$3TfNhMVw}@{&G~9uQm&jhE14zw zzoYq*_+=ZwfKBJhSiKm}w*HPp3Ami1fQte3_V#FvGvHV%1onc?iHQVap~ae9xz2gN zez@(W%jf$R6A)nanlXa^xY-Pf4Upz=g0}W#bc-p64BML7S=-Zs9_Uo4@Z1oXG)BUWDw z6Iu&sajS8AgaZe#ipM7AW+2W0IF>HwSG3LYXU4$14YGdREAH)H`vD-*0Ga=?J8%tQ z&^W=1X`+_~?lf@fX*#sfyj^70O8f+1sF`z&u)y=gDdiXL#MUd)x!fV&*23 zeAT(En$Go%moEv8cCh~wH5C7vZ~&mE1LaXn@vzz9mTAEiJ;YXLi_9y`_BMYCZro~~ zDS{1VQ?@$1Drm9v0(mT}2ENDsGn|Rk66eCC8+_Wn9jU_xHO)eELqft4F77RHP^I3= z3OG6BYC*VopAl3=>!Md0{(=4< zbm*TwAwV?xG`6UWCZ7%#$N>-(EB9KiEng?prn!}IKiDiZt*rDz3PF{)1wr0grTaMvDqz^I-R_l`Qg7lWq_>V`y^CdU zA7;uTK~#uu+8qA%?CszmoS6nAOd{2xT$i=FoRj2PPU9ANVai+9|7=&jl6S@x)LwP2MT=!i%^Ux}RC9Qine zVHpBMWaQ^*TDe>n^JP9QE!DAn#Q*a?KeW&xSLrgOXv|STOD_uH6&4-dyS1|t0JU<$ z(8*m-E1UGOoh+R17!>*Hj zi^X&O)eSm9I{*-8Dvg^>mrCAwXq1`>$`VbcU!o`TxIIt^-k?Uz{9{IsA>yuQPrD(t z6+I(3re9E{i`+Gd_^mV8%VtLlIc@qV@FAOzfUV3*Pmj>Ta-23NuCPJ`Lxi$=6o{+1 z^{K}eTm=IRONiP`vbY)mqVclr+qLa+rFU~*jH;^{AryEn@*|B2Bn;ev9IjjTf-OO;Av<;zp zSN^cXRUT}DpvVeL)pFfZ-6kAmsBm;4&S|$xMY-_q*v!H3%^Y zv3jFD8og?9kXw&85S@+V70@`dZ*(}#*#?P5U;6ORZryx74{xvB zo6i5ChqHc?Nj#SCCIRpQHr;6+rcVtaYOw?3c^ZCHUNY&1-6=+5`Ve4P41_s{!F^|| zo5P>GlAvj-fy^wEMQaVm5z3XPKwD7UamjU;m#r*WT5yz0;0HFVBw}I)rHWALB~8eX zE2Sj`ZHRbgr>dooRCbv?-N>j(1*p8iLg&?YZ2C_>X|aBc{V|XSg&TvaBcP!VFwqcY zg^P~7| zeI3Ye$|Uf{fl2}Rc>l@07T9ykO!vb=`*-+tpMl=9Z0-Io4pVia7^%)E>S2?y>}vRM zk&ch$KOEGrr^KOmx5AK3W({Dr&G{O~!dx}K<07$Iy~ctQ(%yYHl))P%3qL1AFgjBI z__Zq(A7gC|hK5&>xW)6hvS_=WhgS%L8@ANs$Z)^t%BlJoSM+IZG{zj(rG{3RxZ13n zVCqhY?zB0W)YF!o4-Aha?wT~Lh*^PgkrNlI4?e+;6T-n~Ew#NuU|ko9W1;+rS8K{sNhek|8ZzEG^opX@iogez{IdI0kDR$J=1)1M?XwYG zF2;jxm3!4P)z{Ik1J)Ph$Hhz}R|053fTjIi zz8JA=CRaQNsAPBt4=0}N1V`NLv-f1fi=exZ4s>+NR@{LQ6A=C7GWKIc^#MQPTcG62 zd)%C9u~>!t%}-iQF<0F1kIG#v2^sc9$5#8|V%YLB#@GSa2eRZga5rjNs^1ySeg7`f z^OK2jN_dtu5tN!;@7bb-@rKsDB;?``q&GIZg7Jzo8kT?=IvbcjRQG~Odo1($L z_jO1p$+Y4|T4R>gK*64qA}xJ|+D$n~O;v7>zWTdo;6DkwQd3anFY(%K{I|0lq<~;P zXK@Dt=%=Nyw}@?ch$>mN4xNWk{*{!Mw~mcOj~{9k!K*CO`Qeq`hi zZDJN(axESHOUhBtCx6(i_h4dh8&<$8XfjsJ({w#{wy*b!2rtR-ann5TSE?HybzK-u zu>4|0Y1qY0U-GQw+1YvP?c#tzeWRDv-0TdCz9Qq{lKZ{s2X%Q38ZiY;K5uy(+?)@m zO_?@_TFAb|fp;%_Sn!G_I)rEvfR0rk#eYt1?wg%UuISV`pI~n4Kk+AC*_; zlyWTHF3B<^)9-3(>qH43EoWX5^O*^~cDmm@I4599Qhe{VvM0d1mK-eUX=uKY*8i8y zhE7t|B0jiS`U~3}^lZFOpq8v>ICQei=^m#JjoIJnkR$Nd+Ob$AA{xrpVdb=N{5Dqx z@h#V9s=7l~2Y&39A;m$m=H8Iwtmsv6>`x*$mCTSA1IrxuZRryG2ivQ8Uq92x{jCdH z5s~&Rb$Z{D-<@`z#_P+e5E`AFXVQ1~GG5c@WaEic07u3~DleqR9=Hrrj^j zaB|sBornhs7794COjzB7A;>f_M{6LuVt=b*6bfSxjCen=rV|y`+T(aWvJt&moQ%?XP2o#P!!HLKO>u<(vGEYDY8z* zJe4o3ou)=1V*(Um!}UB^1cDqCa(PZReGry$2Dz^ARSsQnW4sir4Dp;1Bk#Qs()R0l zmc%-CmZHF|gVNNO6OOK(`62w=N?N(903Ix%0Oe@#KPq7X?CaV9^=C_5<>2lzRZRu| zcxB{8W;_52+-xwEn1+Z~E(ZlXYo;`Z&E{}YOT1old}rP%(-5)5S9eCr^PcLo|BbXfvqFEYaq z38GMF>r(dR1a$Y`Lx69Y4`@FK5om&7cmN?+Rl{zl(?~6VP zE%dG?1XdDNi3QnQZGZ426$sjC4yPzL?s~RG8Tt7lR%fh6OApPWk#tY}(q3--K;c_v z{od7GF03+QN?enb9ujK8PJith()m8T*PE$NhXu$!nJ&ZgV$xDQ4r;bWf8sG+dL$-gh<=k z*vgDcA2@u5v$66^LoAVCr{h2U0kQ+;1 zIEb&EJgLV;SIk)^z4`GKQ7Z;6QKD35_Ka4@UHi$lVw%b}Yg&MFA)$iqTWf`kJ72pT zkO=T4r=%_Gf;L!SPUQRJ2WHX8^7{5Ssq9sdM5#zo0muc^1HpgjSz80!U|EH)hgnuV5~u-Yefi)p6f!vCp=C0%;!mSRVZU#6_qPaSBX`r; zBsyEYy`@pc_?NdRz;5crTc8FL54eBwDMIbs{@g1ogu9%3J%w{l8eCp{(yDhNmy=n zU{rN5k7cSOr$Yu33(*-m)PX7x9^%e-Mn?-T-$M5HEp{gJP(ha4InfE9EH}K_?8K^f zY5~w^l(+s|gEWBjCJeowz&8FnEZ75%ESiqnm`6u`N$gm1#ZxPV%(4i#4I^PT@>?DK zx$mNX@5@G!1^=zKI%mX07%Uo!(B|%qU?$-!TpWM7@;*f<55KX1={29##$@&u>!uT< z2{-eB)e8RMJ5vAI-`J&2f+Y22Li`U67>4L`12f9(x<;G`Tw3z2YzcV_T+Mm@2mBMi zwz5?!_fdd=^F-P{7sUKS?<1vX_2R^QhUvPF=v`=+j66b`CjM{ z`Q36}eRnVygTg3vk5@S$S_ZsXb!uMYH=jNsRULJxmK2Wja8u>qu#}Cd)}hc78MbnH z7~%aG$nT9|myZ|HwJr!xn1-J#^_nzTYqKMsafvFcv=!ATA*szmlW<(n-y1zE6~dKl zg&L$PmB=avhlx?K(C{b*Ri%zrt77Uhcg{K^BBOVUXG=}O_Y^dOa1YDMU>VGC9N0z) z?XQ1e9%NcKu0*sZc$ep&-Hm8H;78mw>WvxObW&Su-pKqxRN=7H@hp4Ih&=qfg(^l6 zY{#sYZ`U=pC{D7kzB5ubnB3BOn8Vp4XMEmK?2swu#weQ5HBJ;5ywCpM%OOhBeOg2g zKbMo4n;fvHk1OVHpSA27qsF;6R@rFIL{H#9)h#Q6i*D_YsYv)#;|hHd<$ALN3%)(8PZ$j8>^&ldZ=55SKh<;xu|am z3u+bDE@i4Aedm8t8}PvDQmvyJ&R_R%jL{ak>3^u2{KNuqY7YF?*RNHEJ@dczug;$A zZ6$wz5(lgHhZIN}M4BdYSsAtL#*@j6GepPuXb0PB;ru65M zDd!lWDdjq3X$)s@>}ia1Y!2sj&#(xeAlE!iEaa|lbQ$60Vh;L*$6vC+_q^&8_gt0f ziUt>>K;kxU;BOCAcr6xO%eA_iiQMx-_~il#f%2DRQhgd#t*z-M4t1j8|9#Vlm@%*G zt!%zbF_v3u(=&wI?)wXxp<6W$wH8ig5>q!>NJ&%w#0JR#m?+_;N8P#5LVy_u(gPS- zagE>{;r~32NC5UxIm7gK8(d>a6ZL4ZIr#%EWL@=C#t1en2!KvTW^us*0<`A+-#1UL z)G!P?{AcJYNCs$(K$UMNpU@oDr8lm`Pw#k~=qJLH;PEAgr7iyz?UVc;m0P-YmDUuK-q|lPfG^^j%7C!Q zlr$|3Tp$OkV6p%+%3Z%KiTKjE-KvUKVPCpbl7!j(;M>@kZ0ZHVVf+gBto__bt2d(; zV~$vq>kA$w@&bjn%{>nrq1*2V{N(9+zMG!k77xZ;bLsw>(sCIEqU!ORQN}Y;&9hhK z<>iLD&166ZC4I&b9HZ~L&`d*sK?o=Fdrz>8e=pRK02NUxKre^f zjhE8{#Wq=}!N1GDja^xsZqiK3J2HlV&6XlORls0`SQrUsz<6ieH^vNDn|!46l%8X1 z1pRlY_0aurjxKg(1iorZx%@Ce(D#X&Sbd-``S@9}i+%edgmjUNTP@CntQ=qiSI)+U zEhRSCblNdO_x@PKFZ&{ebJA2Lir9I0`Idz}1oEdWjR5v>BCJj>8g$u-Z2{L7p50a= zL=*(Mx%5o9VnX+tEl~{Z+UkWN+b@9nO@)9D1jP?h=@o+^OgMJqFc-F7h}Ic z^A>>JAX&0&-hdf_rOXf)99=#(e`W13G1W1vOPp zb7oL0t-%$+#O?d{)DTdZA4tkulQ95>vOHerWELuaz6@(qrrMj1{aw3-o|EzYn1Zv; zAc-5}<_A)pYoG`N*?+iv^;tt8llXSm0W#;fueZA0s(1)6qW6ioq1(Wls#`7zh&lQK z(Qwv9>o)*N184MKq4H}hL#OcUSLXMs0O6ufk)ZR%QC8>kj@}5Sn+7I}JQ)em&o^o- zO7X0QT`A?2bZTmb$~>l?yi09qs@5r6>XOS*%x4k+1yc(*)#3r5C$?mNI~%ICUBTzx z&&1uXP5C3f za>D1C9(y^?Mtv=SFhr|zY(C}zs{qv^$9)m$F)sRC_{Z1JuiPk47|5M}IlWp@910Qi z0KL>%Hr?Fy+z>EV`oY;QBb485@nr)WFg-O~lf3=UaU2u>ifgn9SUCV@;=8c}6|16x z&uodH>{)8F7j{LQ0m__boj3p>*NLL)nyF%|=W_A${UN4RF|lLc@B$@LIOAn2U=(J~ zTLH)g)N)~mXCF{W-{>0T=dheZO)ZulIhu-qb(Vn+6N7wJyRTEOjuxNfQaUx$$Oft|_VWN}@;B19z zqltA%ZA9{y6QJV`@dYZC$1DdVMQ0gVv>bs8X{dCrnVdt?8*hV?vcALX{aOI+@_R%#pA6 zo0dj*rPCHa_W1pfHZwuSI&Qugv6ATp1BntiU1UN^i$B%(0=O5SUq5XI3W`F@hbeS@ zw^=7&x#>3#`JH`7uyRT*9_;(#7zx5(gFXnWrfm>fSNO*g2CF{)3%SR-1$N|&n8=n} za1t^C2|KoYF1RePx$B&m*YnrwZn+3f^Ud)0VBeQ~142>=;JX8m5Ug9Fs>5knZyHspN4r6U8x;K3 z4f?58-M59RXPdHVrp;=&@~7)iLx6_BAj^W0^L;E4MDvM18c*d?@55nJ;Ap&vexJ44SJxX0JIW3Gd9k}Ut`v6LeSFU#A#wQoUH;AI0(Cs%y7@ox<7XL?+BLB z+@$rQTq;~U0p~eh(@@lzGP)w-9`ypFa3HqD>xM+je1P0L7RF_dT~q8_Ab^tW3p6xP zo*Wq6$#SkfnqM1FI7{NQO95Jvoji_9-tT$%c}H*k9)s`IRu34=OK(%Qn>UTAQDl8B0FRC9PnS_ zU(UUST0SBds`i7XG1=Qhu7bfskH@vv_U`=!uYlM=LdrQ%ZW0x#G*JqN7ACT}X4qtW zFE7VxZ6!D1h`{4PLqgMAn@k?K^1x1fe4wsX#=$LFOZB2vtK-oqcg|4FHyvxheB2jA z#1}5H7|Xzf{D-ig^TZNpow=OuYh*!f6tDk34&L!X&m0^bGeBYc%gI2;Eb1IZClBZ| z5k@ENJYSNCm|-{g9K=cnn$%?x?V$YRwWtnaK>HbQU9^iaZ5`r&{(m ztINwRs~aQ5OoF=G>VKxJL92(s>Na`KL1n($X7Pm<91x^<3Iu1w@}h-t{4geWTH7V| z7t4Y`$oqPK_ei5w_w1k!%Ifj0(tU%EE|z&PX95|PJAoI(rgdk!lWKlV=g&?5IQu2< zJx1>~XzvL*OY9vFY_`$e;u8>M&}RdSTL5j!Qf3HV2LL-&Z&;=`G?*8 z-J0SN>;j8Gqtw-Brt0CnxE=IPjO(#70Co$|VDzQ?ugY&H4%e-Z z$~}9d|G%6!GJk|(rE_YZf5^sN|E0Z&?qJ;B7yOsBHY*x>yR!H4ZTORHk#IP%4)cj` zPhh;@Y(QSaDN)Re7jz(YvAZ2Dy&VQByNr{!FpMX`GqYE#;)$UYuHnqxPDIz;)tGLT z2EGT~|8N1+NA}ByFOq0QrDBza69k*A!^53aZ_dfAN{M|XrEG^}cp5+ZS2uAG?4N1! z#n5OY&kjo0Yw`SW``Mk&MdufqtsJy&d8ItGGX?ikX98mEz=v#%oiLQPq11!>-9m@* z+Q7qoh$HQ7I!n_Hc8-Y8$pG!xn}7CyB^JN}!M%}xqpgW<#%)DrS?V}&40pbF(YR9; z8j1=E&=6qd;Um_s8pSC8Vr+^GIc_Y=v+xTq0*Gx)?4D$ut=fCEK&0$-*Odkz2{_|W zNGX-Tiu9tCfDvGLR5bx3irM9a1v`EMU7*wTmYjI~~KtraM)0=cCKT7w_!eAwXTY=s{<;@M*M#v1O?8_=8$cI;utT$&H9ssY2}49yWJ zyO&Ra%`>(hbX_qz*yQ_CvplzvJgJ{Z`m11LaquTGKp2HHS^SMwP908>sAdE)`qfEm z5u#k@EShwbAn1Y(WZ4HWZ8W*ryG%ib?1!{2maPQ0yt}J!wpgs1Z{y(5IypJbJlorg zITbLW979J{RKx^y+MenHj3_@pxO4UQ1eXjx?>DYNB2N+Gxt?npgZ^$_C{K`YH%MsS z85#gdksXtzKQ^OVYmw(RbnaR~Gf@(N#4LSdZyFD7;2#uLZ((;JMF44uco71W96?Ra z^|d~%cMtTn2!d@Z^J8wx`rtjzfhJcN2UESgDySp@ABVHwQx&g~;K4z_Jjq}@Pch*s z5Y+qaIY=p-Q-hmE9dZ-%PZeM8-r6n60G0_3KBBR@sy|Zl{`l=&le<}OoBjJ!I)j?r z5%-3m*CZvR&dCb!v%99+!3-%kTEG=Y-y2?OOuRa3GyD;jB-yC>@dXmv3g~MzDrNpu z*9XMUO-W8}h)4z31Rg28sZ>7D0g@k`h`v+WR`4@sF9hF8u&@C6Nn!j-! ztj5DPy|%e4^;Y*42;Sf}x>O4{N1}3nTUto2t;l_qL5&do%J60-M^r;*Z|xwy6xc&3qk7PB(^vdG2lG}40B<#RQd6Bj4 zc9h>$&TE+4?Q6Ni3VG347sr4U77fk{Uma|^dPgGgia%qL7Lj|@ae(^(I{E}#Q&d?= zp6-E$^VUyG%gfm>F3gwyyr?u+$$1w%WV8l)Ma}QHS0hIOy7qH{p9pB-25|lWSwhua zWdQJaC^z0S`!jAjlsTzlec@7 zAsm{F;VA-C%b_P&9pEJDa=uPW82aX&&6A}DSbA`d=l!{u8)uUR|L@)fKE;Cwi+c^T zeu1e@hq`npEB%&)&!h-H7rPId=x)2g894e(xLii;yVwYf1*WuL_9Z`#WK+ zC%ew)>v=mbyScrsVV7B1>DoF2M+5`LNu-`gUf>$A$i2|yxQ46o+GxS62Y~6-hw}zE zSrJLXH|Rb$7t7-_XEs426?&F1yd5<383Cqmg~jBn-mqL?@OkHUj0mXK>jSmO4C-Z( zpdVV45cswLjBY_y*WT$BVTYd&4AP(|gq}-M*}e znY_Ro+X99%=yeTEhJkyPt$wFwTvUIPWXn9?p9tv~ouevv>y z7IZZ)ar}upwanf}YX3F$tI2)dP0Y)&elLM&M!{+VyZ%y(KVbn$N+o0M0=UJkyOfqLG(4#u; zUmkG=rCDzH(=NhHpzr{CE}wpjG3WZZmrv{-(@y>2pTXGR;o|}2h}`TkjMd=3OvC8= zW?z4>Gm^2M)#HqW5ox({P0hh4G=*{3o6kGo(km1U-SfHGo44N@+BFZ%T@JM;=z7#F-J4S!P6yTI62>N0;eW}stk%V0~Xb2*1Mpy;(Z&|$UKf0kj>P}W1fzba*KgHpelyiV$)<+d?dd9B zA};IaufT2tm?TIofDnFs?F6t#b*&hbSv>LK1ntpFe-;K}W0o1{N6n$zO4Y}uzZ7_34i`I`v7 zz-Hszv&ve1C_u-HEqEqfmfh$olxxA!{;O`kPO#}n*5`(>d%F=933{mTbZ3g2mmPG* z23I@&gJo(DS?uqas&&bj;9rZVymP0lUK8`uj@8AGE4q)Qkd$Y_>ta3Z=LmvQv_2YP zz2@4ZZMNmiS*u2E*eAOfN7wI@NF1 z?FJPI+Z`OXpcObU?zgltb%=I8QG8a4tc8t(fpK^go>0r)jzYz`d+U;-ZFDGjId5lt zeMry*e*csc<{gtQ_Wb~#EsdKP8MkGc)=r@mkTr8Rl*^}P`Cb0BW=*40ax0TGHjJ0=@5OhqP%K}`59_W7R`?R6rC{CXU= zcR$#N!(S&xa1J>%_t+<|t*T_w->S`=#8P~E%Ox*Hp+Jop zh%CqvZtQaGK>Q=+V4i>?pBtnq!bs}Tm#gdQB0cMsv(8He~M z7ory3F0}QWu>UR9mQI>(M#bGU+7`C|l;N;GXb`;gN2MiVEtg}602ubcFsb+aOhV$K z(WGUDZY){N2b1_LQv#ob?IA9ZN`2epq$=jSTvar`~ z+_2}EZZxc%3~fiVOf+b&CxX`3e|S*^wfxn7*~Yp*SBj?GjXss&oH|Yc2UsL5hBMHi7d=c*r%+u zce4PD0_jZq&F;KTLBMO*yAe1a3Awfyb5F$Z08xcw!2#`xCrkPUEAx%z;@3&MWd`|k zw);??5a9Zidx|9~{K6wn*1QX$>x%gPgX<&J4f{Y@ym?Ih&CL@j%OP*Whw_vCv)3Vw zf635d{S<`MKDuKyuXNR$Zy(H{6{4xUS08^KQozHhJu4kO8DBz0LDBchDCdnjhZ`Fj z@rh^@*TV76m~ja4C_3cWZ4S4_^#DQB;SQPe&&PK_r4J7B`r(=kh#N*F3_j3OMt?(V zu){;6Nz3(0YozU3D>d%v1&!_MmGV{ZJf=(XwI=;h2uip+sBUsvhPvjRe zZ36;m92giGO2A02563J-lRKRLLY&V@wVPSW=qjncUZVClZiN z`HfNq!$FYn=n$uH_Wu4^)7hRifAz3C`67nyxA?)~qSG@=KK@KuW8;pF4hRH|>`bJS zPZC-jvSOyIHWD?a0fP6~P-*-D0t z;2{B_p?=A-htKvt19{l}vyDz2zD>@ek89lXD2Q#wm15E{LoPbvF;W}Zmoo(nrFLUd z#AgCN_x|CzSA^_R`b&mmv)#WH;*AwMOZ_6KC=4hf9p>wct#!?R;raB1c2-W|edStz z_Fcrf?V?Mjf_cC>o6JXVR4f1t3nSpG;YEO@ZMEhIX&G>lwy|HrjsF!7f!J;gz|l)1 z$0sJNny;&=+!nt4^8K51T(PlHIqg#qcBJ9`H(3PjCgoYkn3x{a$ad`RD7U_Y{7^s< zl#6GvBu%P!>grsM!?E39r7l^!g?zF z2vI3gK%2U^qH;d`{hMazVk6%Zc&t0}eIn2HE6@ln)h|V!w3>b+2p`Rv&kBrfgBPEQ zo5fu6IHSPtpXpu3PLxztwE@Z$Mxo^R-b);uQ1VP_gWDUNnq@m#1061U`UbDZcUv~r zOO5{7*=7|c*KAZLoODP4WqM5MA7BXtvwY}#5$(yFRh)gskIJvG%jm+4bx6&DaN{@u zBho|IVfThSr{VA~EZ(wBk)Al}lIpJ={l{BM8j9=u!68>+cNCw51k|EYzUkU>di)aUPijMHT;`0kcn}uMDeZ=x zZ(H`xT`V-JQ9w2riEA^#4TcRB5k+pyj>NNqD4%G*jn+TY8G4QB8bj!NQN3YKg%IxCIbP*B^hD`UNfi6abb&6AO4^b2=L{3u73<-sXr&FA*`9Hdh&qM1Wo;OpC2im2 zlV|qQ2OA2iHx_{b0c-)KrI=0bBgF3rNHM{jlz#RMA=7U7VH66?Fjv9Rk_C7iET)ix zfYwsNI)>rAWhKs?$QG~rtf$P#k-jMvKY51nRfdjtx;LD@zCH%lQ(_>blOH?eJ!j+u zX~~sO&Cc2bK>ts6|H`h?Dy~|NoCZZ|5#LumYF&ZXP*gUJ)%^8<3`B4Goo%Y>803{b zFXS_A&Z#HAAG8bs@GWi7w3?i#s^9YWgvVBdliFjlplf@foF1rlC#=_USuFU0s18e# z1Hxj%djvfWDa7x_@Kj@Q5pT~mGToCk<$%t9MHg4NPxtZepw>VtFXsJ^5ZSY5CYqA_ z^%k0EE)Hnr#i8B4bauMtv3L?>N1a`1UT~1meXR_;kh ziG%orU#rqJP=jNi+l#jERQW8nlET1KkkFjVqJ4VhDchesQBhIX{^@B%)}^KoM+;o_ zfJ}>FioKCLtfOo6hHS%YVu~yS@oq*eB?~kiB7&;g6EO251%_eT<~b@aAg8?IgEG94 zP>B&>qub#b+*xqlUje-rG{FX2_lL(%m-T^if;Z-r=Jc`5KB$k3KOk^>TnCbqyb|)Z z?+SN6W?#yu`hnwH@YiH+RQS^^_*Y~ELPpb&_2I zlw4Y=bU4{I1QXL9%9PUuIv(J}`e8n>O-!g1F^5X^1078xFLfQM<@YJf z)7+TV4xWJqHqAeoJ55r~4;z7#E;K&Ji>g5^U}cI%zx&+iiTwQ5ee{;X52+29DDNo_ z0^95rM+FvALC+uoN3P@A-RG(FO*9IxbnfWD^!4POoGHM-$tE0n6j-O?yPHwdoTq*B z2H^(+!sx@}Jv#zt{ztJEAOMsggcclI+&cIzjdHjgI1j69XfEFcHcr>f;#}i=;2!k? zo~Awq@7(sCoT45GxVDcd!`ZpHeUAJL)a&(y4ne@-(oS+_w09+{wCS?Je1r&Z%#5GAiFC@z3R?;y5N9|E)Z`czy%-vZ2I?$Xo5$044d7D#kZY zf+U0?0U3~Yta2JEcNKjpf@6e|=jF)AsPK^A6zCYwCdQte)~LAM`*dXE|chVnMA%&gZ{`VmT(CxZSYp6`m9UB|jJ`kL_Px6r5PxR{yV zG)`LhO#?AG7k|2`ARX_%$prY^rAxdUF%AmAGW?mHHe69w(X#WJztr@W6iD9SGet?P zNsB&1KudfT!^*+Z0syDK`Adim&euqXL~3o8<@_k9D8~|8Roj~aJhH_x=l#{hM|$H2 zo#?_;BIAzWVsdje&pa1}qP8VsKYP5v%$9RKPw2g7O8m4m(Ec;KTNyu|TAM4g6WlNt z-&<%WHvF1d3zvD`fK{a2Wm_YL*&Sle2(Q9u77og@`^1ZL>2sp_kSO7Mg~>F*f%5gC zbzIY6oMv*GQ;fFI#oXK4)yo8mXNcbgZdAthdfbLki1cnHavgb`+~qS2fqL|hvTW%u z3c=fIRS(T#CNmZ9eod$q$$XGWWT6<`eVvi2Je@my<#r6H?X!@rup{qKSu2^uO7+YE zody1tJ3o5o6Q!oe6Cm3TPzc0iH3lsdJ+N)>4%nn77ZuW0*PFOdf2B#SB zDbphqGtB$G)9IPFKeHF^k$`-QO5rD=o$sRO{q=`V$f24JvR@xT>4I~SjMqlWK(2Be zV{J8S1WWj7!oaH?5fB1Iqm3eOn50EbUk_qc<%aKz_ViC(l~-@RPBd=x_&Pa9T_`W% zN@1>Q0E=T2p83xbWDvk|h;LpO7I3}8{^oA`81eqW|4&Tcnz;&g1GBbYe?zwO56}GS&n4Q(&p0nk3|;NXPGL;)Sw3r@VH> zm7KidMb9!br3eTD7Fx~3o%G|a)zj0W{jszkiAnh<)19wpdy7&7Xv#Y$+)-K?n936) zT)T-O_{)jOhaa1~c#dTC@GWC!3W4h(1%(uu@Ni88N<_|!xt!2lSSr0C755foqBhi5 zo|>xit`=9zO(o@(?}|O!$%81w(GSq4YL!QF%Gn`lT3e1a1Q@=wOvsAUBX9;1C~Xyi zud`~cepT$`DC#U|PL!AoVJ9h4egPh|-k{*Cza5_kD}TXK%E!7PkwWo8lff{YY4SeR8d#1Ha%gr3QJf(fjwTv`PtKA_$Y!=4!v9BxTVrB z8+a~ zfaklagW8qVLeo>-N zCpqI;9GK9^F55tgtdOCO32bA`^uNQRH0TTlANA+}F>Z zEw(N`mB=1xZ7$p9*I=uEVM@n$wN;m5E$>;hH{z7(5A7d6laP>DTaK#?xH_g)o{KPx zeLL6W)!NqfB!$^&?PG^eRygLxZLDW9(}8a40w(w3r;ftnE$=MbT~|-R&ONpFIEj3; zLQG&%NvqanzYm7x-~SJJfBjeWx4Z$v8;}yDK{};FLb^LdN4N`)Dbn~qJdCu{i^L?Jb;J)_{zFx9p#e3GQnQN|@sgb##;2rwaaB)xIWgH1H zveGn5Dx7PZlqgXPV@NZNN5(l5)H$ph^y`8Q<&Gw?jhjP zfr7`n9~8Y|zB(3T0SrhsYt162-`}fh+UN1n9FBtM0Z}vfmr@+ZyDmzIFR&8Xd3Yq^ zG3->zJm`fyu1PlszIIfj(u|e?=qbEB`;Z0&UaCfv92lXUCsFYXy19?Qg_Nx!5}EpB z`SUMw>@%SFP|$9|mdHQn*l{K*?%7YQHe!OOW3&rx5von#HbcMP-3~(&nPKp@po?fT1R~ykp<3yVU7!eBDPcQrlZOy62EkvQD9Ha*qYYgHX{u`V zfS>bi#8=fF)L=|0)a+QVe~kq`SgO|=ZAs#7UU`BDd$JNLi>NQ^Y|s{m7HhK+i6Dd! zB>Q3rX3^j~r9#HCZCQu=^*BXgpZ)LlKL~V@<~VEctu`LNYx^-vSjj;0)9;lzFa6X3 z)g$Gw6)FKH0uL48s^l2!bV!O%RDJ6qOheXsm0ss+>yN3vRfW`y7q?WOqaPmWp?tE; zYkeIojZo+Ho7=cW8t#g#ksI}-HOKv1ubtP$lcV};fvV(hR6{tm!uLDA!Z(o+2q^g& z2=G==s*^`Rme732It=Kg^^xU|j!Vk-Z{HQ&7@+SjNHR@aU1%P)x{%P&4@S*go$_az z7_%EYysax$F)LbW@r(q-2*>d?^o*b62J6uYoy4;Nwu-@x8tC}nnR6S+48pP6T`4x(5upKqkMRW}`wn)opkJXDhd9IKn98_cn6KWlXr z(0SZp^#`gt(_5t9I=ml&ct!P@GN@LwZ#CZ2$AOa(`(?twqRDY>oO`lh^K^jD7BLYW ze*B#gFO-t&N4X0zSJ#NEu&Dn_t?`4GY~Z@PYl3;&%oeUz8$?h|vKen#lSJrxpw-d7#JdxV6J3gmKyqEJT(hE=04J@nWCe=hXD0!5f;! zUN!{>BB6?|Bz3D?v?L@XNJVCyo}Ag>64spqeuJRLaNLR)L2$a~UJ|43gLpzUW zsz{_7ZOAv>?Q`OVva96)hLFn=1?g(LDZCl4yFY6tgiXWlG>tAiumUM@%wIc)7Q};s zgXPQb?N?g$%{?j{jz;UiL*U z9UWh_C(ZrN^>m;^(K{up+;mf;d!M@Oh( z;bCLhM*6@{m9a=|zo6(SP(Tc~1HC$BEO(Ftn%oi5&`zo?1#%D)6$67!0y|D7`Ms`i zFd*z)-0jDoxGGLpT=?9(xY|u@_%zy2`Ag-~Om^BtfM&kEmsOGu+)W5WP7_9YuNUl~~>lf-X? zL+D{LMx8n6_Aq90dzjAQPJWC7K(%s!Ou_7QV57i8SO$m6Z(ErY^u)ofT zP~@Ee@RE{N`Mc`)>J-U7M)=%g8l{Wuv2dA++4B*w_*T5$T6J9|o82Dy3`ECd!dlCD z?=Es0LJ6wL-+p&yb3G6avJS;x&tSB(qVbeNhE1r{B{o~>qiO<#D%s%PR-?4v$Y zP5>uq9_E!Po}uUp>XJ+r-;)4@ZhU^*;}g#R8UzgaRWNUWy(q1ud60aQu4b3S$`SH8trLjya1oc7{ zp7!J?vF9IL_fX0t4}!lk{(J+0(`t$mjK5b7Rr^r^AxFM`Hap#Z_hAh-s>?QRzK0dGt7POSt zPNP%#pw3T;r(>R5t5fNMMq5_6TKjiD)4`G6C(I}5w zK7;nGtH4kN$mBFbI+v`gt&461utzGa77k+d4wS9#2ZQTe?}MgeX=R0Z0QGP>agxcf zCtEc^^z})r$4rEs132urP@xLbyksGhnFPXa;ShrB8QyxI`r(0t3nvG0N17yx@Yqo~0-N zk{Iv$6S)(DZkuW33~Kq54g8oLpCgUrYoROOHjell@SO4@<7-oo1i*PYu?|PV@c8rC z?Lb6KO6nOr{Kwa)M5@;XDy1)`+0rqcoT>)jDHOT@u)T`QOQprdrNIT<#F0H6A!fhW^5Jpv4BM;I+^znaWJA!f?S7nN#i4|_ zb+MjD>sh8 zWNscpMshC=ehOE(wV=SNaz1g?%^|)o3v51IA+PO6A1(W?(_otDp?LP+dRTxfjsW5QAb9QL4V{Pg>(?<-7f)TCefOFQz|BGUYW~)bUOCNVO3lN# z_Wh?y!o{+u=EJ%nqBpl6f$04TW2JOS&(X%Qn|xZ3hGR76vsba-dM0qu-PM%=ER)@4 zV1bSA<>y%oJaHYF^HX3>18>;+ z2w!C1Mj#wy85sBT+&-PtspOZ(w0bli@p_;~NE;|WkRwh7vgl=;ozZ~@h?cxq9|Z&e zcz+N`%E@{A@}2BhjR}cj0*`W0>44UqGls3&Q~aEyWmf)8`H7F8l~+~9QDIlQ(Ufsm z3OfRb8Nfk&&d88@{m&g(-atC>oF+ez3I%pVApY6;!-Y;E_=JOlV`nB$P;dK{Wan3X z=QJAN=t{~c_neQB%1CPx!N&F&@!x`-=e{QkI}2@5LF3W#X04@zYNbR>m3Sb z9+w%kc9)C$WC7iSP9{t%{agEm#bev|oBjafBwhg37W{2y?s6C<^6FUHh6W56qC`RM zB(&&$ZHuaoAfNls0Jo`t&Ui!GK$8@Qty@}{B?tM zu=BiI_%t=}QcK_5}Yj3Cj)tzvVH5)YZO>P1#F?CRl2g^2EYMb)B{C8|1S-~Y1|DE;t1dkxkkwi%WS#Gp#b?>B z)*=IWBa*9&lH?=6fgbbpy~pT~i;?aHfs_Go1XPL~J#QP$P0V>|U)7bqDdM1TZ=RoW z5Zvh{8zKXS3^1WAR~m@k>5BwkyVw}-w(fB@YR3)(3nAQ5UP`nIBtsb=)^ej93xC|W z`K}NOX)Jw%rd;N9BvekutZzZj56?{X7SzC%X^@tY=@=YDcdg}dKiUbFnQH`g>@?l? z;SbB7y?qn4k7Ye_s)Y&`eJ%-+G1A5Mw!(Alu%nOZ=`cw}{It=&zC=^C;Na|vKXPdD zxWRyh!wxcijFJVlG9&AdS3HAqn3vc+=lQ~agP5M|`Tm?Uc?`JI!%Yu}>?!I7bwgP9 zzJ7bhx`goATY4m|wJqsv0rv3{moQUKA|RyQL%x(R01d!~*S7b|)r2arp1evgGp)_8 zP|Wj~@UgIo0C#3H-KM4x-|@a<6YskjXwJBEWbqc5-#InUg{UPyu!bC`11H!zw%|<* zI)I+DA7wQFuRX){$rYsLPZm;^0~PY=FJ97(+`%5-R?oJvc5*0kWP29<2#(@3e6SDl zg}_GmH-wv2#|+HclD82cUhS-erdDDN%B^@w*a&Cf8d$)Bc_5`Lyvf71!uj5LU)TZf ziH>W}K)gM>YnK>6&M@!4!*jSEv!wRvK={0m(R*I0vJTD^YDKbueW;Os0zRkGA>kmHq!p&riIh$SG`Ie;P|v`o{|AfS(R zbyieu-#M*s2{I`%v$8nUISM)Hwn$7l*BVFYLwqTJ;L`Fty|LM^s_FX#YID&!q@chZ zpY(XWYuRIP^}-yy-M>>0qug110$0#-tvy5_P{?{ zm0+?gD~aR^v`);|t6(W+VXf|;DcH=eaSa7(pOD9u$y|wisD5*b1>`)Ww|cd!cUyYo z0Qv3cAIEVbC=~<03@#azr_j=G8dWlUK5LvzS}e$reD!ZE5u}2j6!7~g0gfHZq^(EX zo`?e~mrv9$-HdCfyA_80YSlo3fM&ADNJyOF+)0o&k+Q!i01afvh& z&qNOgdsmc;>vgJ6)b;?ga)-2(%zD3z&+J^kY)fF1J0q*RiA~I2So0SY36&074W#`_2pa@}&%w1ZFnU-o<+!o-KHHLxAJ(VTK4 zJ3%EA2QEs6z75cW>@i@2q=;5LCDCf6_GywWVB930EC?3#w!q$Z!-(m{=msX}Ds-0# zlJO>5;z*zxArb-Vu(?n5bI>T9A8peKv$w0ua5M;YXRZW6iF_Vz`yiFWWjfO|^+f3i zS|UB(tN7mUp+t;yu^A40bJeF0*VUD0XVFQ_|AgUfgBKYv(5+Z3FN#i1FxvpJgu~+6 zosf`F49^c74sfr;$0i{EM7^)F;wnmkk*d+f&##dTnT z!??Zs{JDIx$8iM_R#i_s1(NaM*I%W(TrWz4D0rsb0G*CYwf&N!j`|&R2l=N8Ny&p} z@>affi9+GLB`~rdC89h2${NHabo9ROz^}GhLg!30Zz$K^_y917Pq1n@ON}bw(Hs1g zx+XuPy!+lMpY)tnSnrZ5rqx5(PBd2JSDK)C9C1=cvdEyVyTsn*;4KT6TH#YN8tTmI ziHAdSSbv|Shh-XVx8pPYqh@3nM$zo)+WnQxlO1$%7ji$v1B%7Wbt32s>{ib9@h)0W z+dgNWxh?k|P%8OdimGUa>%PraIQcGm)nolR-(qf6RnH9)tKiGB^v_LFtyCs1)3^_} zztGG-%Su^Kkvzy_u$8BBp6F>Ar|l`E-oTDm2r7%~lOM8cE>6=1mO5Y>pYx~cny1e% z`<8%34Qz+x)k6x(w{PU@Au%{l%cprpTxf|Wi#}z3BBMfS+qB_5TI-ZOJ($BUTCB|g zTqjGF?{p0htZxa=$K&>P_HOB?i&sK`3acY?N4C@D5sz%KYINAQ*I??f+mry#5D7>L z=?Ih00z&n;#XDSrhxsLpt#sgtv1&3)4{R73^H(Hj%*-!I1wN>?T+X$LfcB8sS#-mX zATZ9G&%@Lc@B5AD-eIIpI^}x_Yg!G8{;74*|CSY2dx?f zki0_t3d<{Eh*)ZpQr*K52cQjhgiMi)Hb~RhzHNm+(brmEi^;Q`FDD13R0E)&BQ|!c zut@nGAKzU&%jP^bb67egxIW!y8sa9wCoAD7k@M1Ej{6LpnaipRQ8i>8c~znQWnbrzZdh%y%#qLqJ(Gb#-EV!p?R^vGD~Ur`||lP(tA`#EOdJs{j*Y z@kG&)4d9H-d+3z8W5^`#A2MlPxyk2aTk+u6D>{hO2h>{Q;OWQe?^_@Pr(DFVJgC zbpxdbrdNU5hWH{@(aBG|^137p1U-nU0bJSmy)>}wf+LK09us6D_9n=)L4NY)1%@Ss z%}w-B9bH?^E^K#q5uHFFy+R{~hAU~XT+-oM7}hK!BLirqqTz@6utvr?12b!!_Kb89 zME)NedD=uNRT|)C>cq(g6J973(sQS8f~bf}sk8k4Y(8LiwqO<8g$Db2;k<+MWq6E5 zNkPoY3kVGuxtM?TC znIm}E^!=13>GH8gvlckJ6z7Rj*TGP_==lK~GuIR;kSb>$(8rwqzzI_K(PT}AQ9;dibq`vDEiIEen7+84<+6i`BV zn1f|cgPkKR-U6R7E$0q*>;v3Y&NLl81^q(2_`(bSdA1%pRV2f7`D`E9(Dbl{(ep!d z{T1g6Vo?14D8!cjI^>p7cQA+P`K3ViiJU{6m^E|fV~j$HRw1rx-d8U;~WofFLAE9lA6suHSjr3@wz zX!QRx0f9tyg;10rcqzzObhOoq8nuM8X||AoG~B$K_WDH{1h#Zq@_5K2{XG{>uzr&N zUBCQ!;-B^Lwl1M<_3+>R85$xyJOswJq^3wnQGL#!6h|yhMMXtWNRX7XbG3}(W3^kW zUZdNKu$P(DaqfDL`*}msN4=ioo7>{#aKpCbGkDhC#;{3#nX!;Kp?`!jUE8g0rH_4# z>L3m0PrbmLexn)tzO}FcF~}c99FOvGhzH>#F?G`rjR#3AZtorPp_ivws<#qFh`4~m zBLq5&sxM~;P)da0=Xb{)GpO1fH8PMfTb2$|c8TMefq6*fxamopM7~muT@M9d{ zdm^||^zIt?{kZkily4RY@Z-b_z4N3Dih@2dpzdnr;{cqDgiar4n$zAm>x$|l+l#-mrz=m%vJuc;KpD;b3eTL#Z6L( zoO#PvBi;~_fGc&yLRSdES3k^VDQ60pI`8)>l&)@L$W8Y>r3^l8EJ1&9rL0j0k0ov8 z+{EdcLH@Eo0artxiZUOuHp5j0s1b>AZnhl$M!YOEJep5nU9{maodFZ}bl57>oe#O< z9J5$*__|c;<;hbsGs!)$LNig|ID@Rk3t3pZQz2G@lO$Owd|D+`g`Ml$k-^^2sIwth za10HMoBmK0G&!s9m30|~l8^0Gu}#KP=rfrJz6pGFl#fktj(90f6c6vq2jK*w)7Jqs z!$UdH49c*hsw{J!*x&H;kq(0Yzel!ET$N|EZLJj$tW`I_31oDOl@#(Frktdi?$HJ_k#s+|94KgWO)p^{=C z*HSfgmL5_p;~ZnAg~n+cELVlRO`@)Zoz13 zIYjX&%y2EFlH)ubP3T|&}9D$P|DN**{E7zACR1!%Xa(0MfX14ur^S92%rwV{l zRHLI=S1X|dg7JSBq6(#>{D|ipG9f4W6QB98j^SMo16@@7;Y^B{Ry1D3(>5Kg%zMnS z$Y(^Yt!livuCl89$Wcsh5Xst^A{iM|VwStR#O2w%lZFk zy{sEW%ZO6MSQ=YIvlMIPaLTuvuhrlAbJn0iGO1?~cdgak4A$RD+{PEu1bL$i4aa>(^tsK!&@zY9CK&vO_#KWjx1k4Ma3Q8U>`c=|#n` zb&1;xv##-a&2E_p<4;feW9#saQlaLzt{gnO+ui>oXd@TBIh+D5RU_*5A8YJ5ROgwW zxM?vLB#>$KKQ6NPGBwYP5=Edi;mC?=M}2LyyYIc;tJg#rZLcn*K+O;mN-X$|`0?|? zetN=qmF^sw&%}o*Y9FhU2kWxa<$Jnv*316?9b|Pqrl-GRmWzJB?#_t{6M0>Nq0ynq zR7Ox;XxFc>L8;(ofQQXe!?i}$Db-3IuB7OwrN*U#565_xtAaM|9%t2^^WiyDSK~Ko zYtoUrXKL~jb?SIV;36RZ-y6pIz*9Q5TQcxNWgV0O1}=GI0t5p5M>!?8w3BuX8-x;x*o7>rJX0Wq-49rR6u+#+_dDN*sdv{bHm23*A!Qnr_<9EG%C`gQc*`Acts6ppMPJ$ zDqC;xIVXPPYk@Gt(^{>*0#IHhV08cBhgf>(uK z%klA$nS4UVw+4;Pto$BtDp(jGsL9EaTJZmy3qTk1&Ap-n&M6%|qmb_1zN(A{6FtD-DS zV6Th`dLh0sX_VJANk~e{UhtSulbFGJo1Uh>27DY@<&>UdX*O7#P=GrXhh?SEg9b)D znZ-s}1D#rni&;2K#SW|AiTwLHVAICu|EPht&a%sSN-S+wSZ{;hC|v`enUO?Hh3#=N z+cDY(+55g9kp5r?@}BfFuHf^Wi)kDCE+v@z!TiRZojb7P(+>lk2m?eV4&56ofM&zP@dSFw!b4kkaeQ zYGh^=E%Njq66`q0BQL6Ew$elIEK!g8HxOA^n4OxGCJ)^d>?QqBD4wu6-STYkt zrOed@A_jO!?BHXEiYdDDKl?zs3z7!B}ka(>c5KnWyr5DV-c8c3Th zx8?v<%?n&az!yP~I}ngvV3A*;+A?WCSHQJ1fd!Kdw?8a4?Faij9gzS$Ox$K97w#gh zPp=MA_xP3UX)t%txhcUir$9w91V}6kTRKJuAc;U6eqJ&rBqnA8 zii$-6I2YfD4E95oT?lwyjM=MkNtgNDJ^DIfe_zF zicSb*fM8GzR4awWYnPimJ_G)O5vWB8@x`R*1n?6|<2kv6tu2c{wT&OaE8=H+UI6l5 z0|5^}2Fb4(0mLZKR#{w85&fK;FT~4ZpB>N-P(Y%Xfkm@wtJ0IfBmn}5N`VBCtxnaW z?hw8XK=T5-1ANVRO1IJ!9hYf`LjTW^>4wRT$ROs%0Z4AA*HtmY=Pm$h%MBwzqM@My z`FD{(V9P;LK|*pe?H(~GE`$iF^O|}JaTuDRfH~}$_1>w(m$z4F5V>@1u%R#lEPxN- zA$mvkNDu~nP}*AL^}i1owStX5^-ST9=ALwNaaLrTeD5f)s{G6E5K1=b(1@i!!pzOy zpolz(5Q<0aPlLb{+i*&2KZ5x0A3VokpKYO7m(79njO&~4m&&Y`-`^}Ay1iM zOvx`oE5Joh5b5O}g#zZIky2fh6*|-vXVRd+HyV16F=Oj#7n)0jY)^lzRvA zM=K=XVR?^(Zizv#h~m4*PJz7?AtyLMtXp;3g52*cVt|u2$u!fvcL-8#x(G3cj+1i}Kgzq`|K=>J}-1ik;ZD5_0N+oMA>mg3n1qZpP{P$omV z4i%ykH7Lr4QIf&lAN6nF_QfAGhNS$*6-*O7zr4vU>SIzPDywV$F!zq@H7z!{2*hdXOz#URQ>{o z&u^RRITkrKDg*_+0Sy9E&YH<__3sgCJl;KjdnP$IPCE*e7~XRol+dpwGE}|rgj}|e zB<=!CaV&@3W0#T!)5@Rp%YUy8h9|+9)OSow@4Y3OQdqK|1`0%IdZt!BTLDM{?DLcP znuws{O~;us=O+t;U#=sZOuA=g)E0uc#> z!ipXk0?q)O&qW(xfq?ehDPHQ9Re=tLYH%*r0_`gN*6LV>AndKFNx;s_HIdJ}KVbo5 zgMl!arL7O(nZ0cZ$a4HRpCIJQpqCpauS&AvwBm$SQQ^2VR)YXIzX7k~9_O#A6Dg;C z+F^P7&C5!WToBJjYfzS4P}l0Q|0w2hwk6;(fJFNB*8 z<8$cZ(w=d+xR->8VB7N&%N?y{yBUv|v^^bga=QW!0LI<$hde_r4e4T_A#j3gjy|8rR$y zgaH^dG8r12Z9j%=zNATxqlFl5CWT*~vl3M0Msx>^Jx~e=5ZkZx=e>N>Xhb3s_(?w0 zz94zK0p}|Lfy2QVBG7<-1;Kr8)#?X;`EiX&_Su5!`DlUu%NHQ&6cO#Ga=8}>oxm;^ z1w3Z|GhJ8XzScbm#A5iZ{|u3RER!mpcBN@M$fSk^*~7xZMq6CC^cvPf51{w$V6J@) zffL){d~)K1lT1d}0(!-2rZH7TR$5-pZ~CU6C$OI6(peFp%{4U-k5U%P-#suR)rioD zcEaD(b$KPr41D<*^TN0h?V=O`abE~_CghE_u7yOe(7tjl+Mk=KsELgQ9sAa{erMo4Cp8Dz1jJK?Z6}lU&elYK*Gfyv z@qD>v zvwy!515tJV>O*Sb_WwcV{z*3d*YEyc@b8}_>wkT799I#R;rFlCF6w{J=kyV7?Y{>D ziGBY64;xM@>6vYjW~uMp!8;gL0RYY!R#^?>A~1yCbHEy;eYAu6pDLXN3YF*o-XK6D zw^mCn=LQj?5NR$@p^{C#Yy}Ah5l>H6Kzw0o$d>1(FcpZz+5qdwlW@pM)d&60F1BW> z)7w^Ae3vOr;Xm3vc?yH1pRZvbhnR7KJW&#WEyL*GuzWQ@DVK=YpHnTA8k4&Cukl0B zU+cDm>K!1EKsQ~QfC&i-2?=z1zy{Rak69muK{^0i+}#leItWHf1A7&ZB}%j%`u*cU zZmsrzrXiZ59$C)K#Vzjc{wTMOMJhbduHyY~y1`Tqasq-acFul((5g55cnur7oL$+A z;_vWdWeiiO3$7)}?UR#upk0>)2#`DIR}cVZkL7eexrAsyJIE`}YN}5p0s@A!B>Q*B zQ)Y#;SQHTNqT%7uG)ZO%!IH)RDWcQhkMu43WFtcv`V?aa5T zg|f3BfKdX-d!wMK4y5hSF1d4f7zs2u>77H1#|CkK)GQ<#dvaYENfgArs3_U_#{PTT zsoUpk6Hp-3QYa8mhaQ66ZwE1q6ZXuEgHdFlADpG5J0gN2f_v)vswzMRz&~~^EPfcv zph*aVOt1|G-NcN(-2BxAARq$6>mhLP5U~J=c$CH4xP@4v`4{s4b)KT%G0M;8eo%Py zcP-QkB>#Kh5O7aYUdP!#>Tdny{;4u4;n^E;5DGN3u=z+oB4HRKNdIf{@(H+>4<$u2 zY}5Pa9JkFv^!z^z1bv2Gij#4B5Fk{;_o{G+@1`0|#P^lb-?O3??6ST3kngx zf&x_HsUk#>N!{drMjU~0p08O$4I*qEAeC38#9A8GK{PTw@HV}Qp z)SMF&3=B+E98?kAClf#kVHFbw}i@QiPHg>F*CWn_LPnCsY zPDx4X)>qA~p|s(EimbXfDvBx&Sj_Qk&vsgU(~Lt--e4_o{DKeoXdlByu{EZsJclySP=kZsLrq#W1q` z8u0C0%gC)w3*M0RG&AfTM?~)%{%I`E@yC$^xR9S$S1Ah%Z#YLsXQgzL6aBC|`Fy@b zF)$;n8L6wEn`PwGgn#|2Nidk&e#w!==Ti|i8l|GiqA%v`jAynPhu+s`dN63^?Cd%= zIk`V9X5`3-(Fh*J(`YOTS$Qk|#NC3ybgqwS%ivKYCA>4sX!-&k%XF!pgu;7j>29-Z zI{FHSWkp*ak{TCsqWsdFs;W@%?JsfBGU7(4sDB(;4A_%FXs^)b7on*6vxz*V?9vv$ z^K*=^tVz8`M*MnpZ=@8R@m@Y1qJ8lqw!e^ACY-RRcsIt%`rWshnsDh8bB=d|a>HrQ zDXE3RHeYVx5)p}eNaJ?~nsQlesn5>~TE2T{bWm)iNXVNM`l{TjQdTej1j5*|kQSstqqtlWG{p-0L>-8q5csX6h-E$R* zWj)Ne!2>JSu1Gk2L4yE3$dYsz?dO=4$YTc2U32E_>|ANw=M}hR`u z2M2bIshTh%?v%s{Ax2Qd_v%jBNQII&tmCNpUOZYf+pnTzXF*zkdbFP= zGx!+#h^#?o1bICC_%B~TUnh^MYfg3}me=%=dHwxum7h#4a-Ay5>)s;ugcJ3J72p;W z*}vdokH_wO&j(h)?uHbYL}Zx*Hue)a5eg=zN%xm4DQTG`B6f2FPfz4m21E>0?Cic8 zxki_kBqdF7x$<5aj|Wu5#%iv#lWuo%)=1(W)oWqM39i4;dQba_A)@E&s7hA(g{Q-_yj9^LZZ9jZ# z4$aK6iHLSMIN43+pV283!W0zSMN7OG&_Py=GDvOo2te()0JYOi%{l%$9Q_#~?59x= zpk-;U%m|W|P3O%~QCNjS=gmF2=0K@v3;FPv$UNCz`~*)u1bt53@uThNn>mu#c{3Vf zcfcbOqM-2L-0G$;DJ)zFA~yzL7@p)fKX)1gD@Je>5%S{v`pl7-3U_!enp+NHcBY_o z(9i>z29wbtx+GqrUtEGxGZy7HNL>)|A>1`8chfeG#0GD)I9>n+Mh;F6<~)>GxN#&O z+kmJ}{i0q)MX`Je>cz?KaPeo@xABHg-yEs<;PuoD^!n^=ukW4PKN_e11(%^~dIn|T z?b!;pWOHMrGLnwYyrtFeJrRSuneR83rWxh=c%P?yN}waZT3eR#fV#GLZlme$Ou>x6 zL*invl-IK_61uq5+YiPFBkMb5Bww=lBNT|q-KeYx#9>#ECoZnlw^te#@@7IT5o$!G_ z31PDdBjZjXir*2@d?0JO2|%BP7T+(-Kou$$$iN?Q6NSdUKNxs}@@AxU4+csXsJ~~R zI@c}~MGrFil@I5KB6Hr2$`AK@3(#V8ub2Zal?Srwo6Fy=nip0lE6~g=#zC zEBAY2&@W&!hIqi{9kiNX{E2}(JizU)lynHQfyD$N2=br~X2?>H%XE+R@RGUtDPZ z(;@v{a0dKk5jub4Lh%6Go7h;5)ze)OD@OU{J2&40le3ks0Qa&3t~Jhvk(u3A=u)rG zL-XRnYjw5dGT821@mTnLbWMMma(CvE-adTKndnq-aKb%&uhud=mp%ur&G!4pV7-91s@O-ng;2+?kVsaY-p79O4)coP-1$8)zwN;U?(>;8ri zVpY)h)6~qcO59Kk0>%LMDFPNgzBu?KHuf4M`x!kL!>{vQuaO(<_rPrhiN;<7-vA$i z6H_yW2j6-0h_8GutR^?n<_RX(G%+q2qL{IS5bO;^L}HsEMS5XjMBmXUtoN0iL808! z#1t0A++BJ$<{y|6iF#Z>rEAX8mtHK83XUEfNl8hFoboFwdalkoHoqPn+@Ts7S!tpf z+Qm0E)(T%7_4j$;Nqcl+aB;)-aE$cgf5@4X^vU<=kilWt@(9BAh>ji(3!7X9%zsQZ zy2piMhM15LBIc?ouv@@rKm_gxtfw>25fXQ&b%xNpdXk8Oc*;U6ro*c7!2S=`5EIFT zedjbR=4KhZj7R-PFUk0N=r7uYhrO64e)p4>w(p1U(!1V+a-ecM2F0ASE2e*TxpN`F z&D!$NATXLQLph_c>`SKx#av|sh^$~MDnTclp=BGsTt-3V;fjh@(3DBiLc&=jVxO_T z4~?m=Hm$4*I}8^)X?RAP0H!ldY*aec@4IB)Yh*^*H|Uui?U(<IAL;Dx9-Y^( z!_Wg7xeT|2$KKeeWYkX=qmNG%qX)PT`MIa_Mdu^wVSygkd=5Lvy5#j=`pzVK^?Zl?Ujjn@ewO{FRrh zILC#|4UT-dp0i9kVI&ZhZ}}$r?O57uX*;#`-$1xVk`NARKxOuWVc(HKu5B^3%!|R3 zMYKh(5jPC?15c~zmTjnhag**0EzOV#Mjh8G*GVxyy9!b$JTo9pB`vTGs1jt$x;Y(cg6(=+ z5(1F%E#K|I#*~8%L1durnGvkgZqoRXaqdi4ZHC~O5#a6`lppx9X6!MtZ-)Ke?2+gD zJpAT8S#LV@lMrr>)9JeYo)^ZN&{k>djK#q4x-M#C`}4TplhXhZE4^Qi@Hd z5mA*3)IW&`Ef=1<KG!T!c=;iwVPqaoiox5mz_hwEX# z_6Fq;EhOViFd;5v&haIivs47f1AcJAgu9`bc>8G{A{XsOcQ^LFE)=$JV%x2 zZE>RH7;C%%>hm<+!+ZE1sbTwq7a2+PrqTIgSMcU!0@`vgmtH?T2|f#MwyM2kCrVDv z4&jLwwCfy`|M^WV?Dj~n$X`TO1v4GHAhzwc3N zq5i+`i!Ct-3)r23M`a$ZYh6$6|D-=KN0RAIH&P@EJ27279J{3mo$@@~->h)hpN9>6 zQ2YzV{Cqy-_TKPjkJsSmkFgjQ-S43fmt~@V*10foaml3R@ZV7z1 z4ZJ@_u3WE#k#K$aCRuqW;(Gft(f+3L?_8w39a_$mXEA_h@Ux(5(R;vK#OF}-a^xXS z7Ai?|_9Ptm44E0_U3ZJufig@*g+x3rEJl0(^Ywci=pMoXFj&5_CMvs{3y`=j{`l6} zd)fH*F5swK#or&^%FgcWgSU+?32@aviqQR)ndA5!U5eS-n(wdmUk{j!G)ZWCAS&Nq zatjCuzG-k5aXAYQ`25*ZSd>~QrM9+KoZ_FVN&krI)yvb8mCo9x%rDDn24y4so~fX- zkczgpw2~{5Ya?0SguJcd3&y_S6k(s}l!JGzk^cd6Z)vZmMU8G+A5J2>q+}gW+Ls`< zOLbqt{Fl9MpvzaQxG75X$|7F8yH<=s7hMP`d@f&2=#?<96JV0>;D-Y$Nm4@OrNq_$ zISD_~U+1%a#nP?5DI?SkT#5Y6*YbVFDD)N4CcML12U49Lk8NGK2r?GgQ{J7Yi9(K~ zqTa{iz!j92m8BnPITdJqc(_OKMct4&`E{bqZa(SI-_KnC=Ny^e>7ax5zgAoyE2sNq zrdK>*;?tkTD)``xWP%HmZ(ZX`%{Lnkx;Ru)ICd}TM+q?4@@_abnkKjYaLhtTT>JHV z863SG=gKN7N-^5*&h%!>=k&H_s_)THlyBKEY^DD`#{0#6zJ&c*zoD%^xMkCQOuhq1 zJn<_&%YkIbes6C^SY62PmoaQx&piKIJD|G4mt%`T#G&cc97ih;VqSX}<@kSfNj;A3 z%7$m30b|5yP{4LErtOx`HM!8|fWYfJ`0u2PLq}9|q@pfgQ;N}R?G0poJH@R$XhXM0 z%z<+g8~b%)etNjQd4Z7E^%;oeP_uF;>M!tM5#vZW$`d(RyfQfp=~ma68l7D1Nc&Ba zDB?o>IWmQkN+hCLkQbW_Umidm6M2fJOTTg^d0&i=j&{|)vPtCi6!;uTO3%sp<*xDj zmjtZdE3{9Fq@qbrY_vw_=Vk2lg-NE_EY_N|LCWjbwl>JSI&WlP>!t9!`Hj(huJE|C zZfNw(FDx}WJC=s|&sE!KJHL0=wh$T#zohnoEL1{)XQ6h<)5e`L01*KQiWzXZ@d)C^ zmzUeaZ(P|w{A7yt;_pKFQ!apdqg^kpJ9l+#9w?OSba8gN-%ZR;cWx$@rc6q&%FGW!{VbrX|16_qaF zRK967=N}qk1%N=g#~l*@nfk^y@=%^USzBGU119+Ub1%4!o-or17v|mlo$Q9(2$!O- zmG14fO6mNVvvpPvN|l`Bd@fr;G=Wcy_IkMaQk9sPinJ?CMFt2)HjKrw$;eU{-#a|* z{JiCG`;!O&YI7A=0`R18v0t^yE$>-0+4SY)tq@D>>_}&;;!sUwod5wr?e&-0W;+A` z*W$&+asZTQy7-Nvh70SfA=drn7Qe&^x<8xI8^8&vblWyJ&IGvKo55;E+`4yXoB-p> zx3@F}Gl79#ow7<;MA*ak!n*PbLBL&?po<_G3Upz%w6VzpaNL>A*D5dvr4)gezBIlh z=f5dwSU*iz03>c=Nis(kX*l(H#sV(_zYNko4~ZGR28+I>X-0lsEDtk6Rv5bJ8zPkR zVKHfG{2|s7y;djO*K|ZgatdJ#72iLtT1A!Jt$_0utbAC7n1SgCCeerXEGk(Lvzc9;~?{BMZLGSAA zet$PS)TKj|U~8IDF*ev1I0f6xvWPSQ;iVvW)_#e#G&Ss~Q?=Fm{^h(D!`gZeND)!! z*2vb+0w+FF*LREGKZaGSgK4(qV@u9e8gUB?H>+z-m0QnAz(5>ui~!u?G|;{T!V}I z;>05BZduZm3ku!5?WP7`(7<)gfR&Y1PHm}Q_?~7ZKtf?h&OwD8xokyAM*+uT_{=N= zH2Wz0)q)OsGr{F4BL!j(neX-de|US(fTotHZ8V623c^u52+~wUZ1moO9TgBOMXFLF z0@6DnpdunoK&1)61}f48qy|9(5J9@r*e_wya&7RpaYi8E0 z^{i*j6b`suu`p>~s9gkv5V<8p;Nr(sSMS*&p6~_>gFB+Nt1Bx4V)t zsp^_1XNGf70KePp_+h)r;dwibqz^F1!!_6?!?yAcRi!!|lsx1@ImI@F2W(J9-i3G< zKqkUqu8?589j;>(J|W>h%31(nmnV_8{Vf@89==h`Y+H#oG=U46{Uh=v$sQ{?Kc2@knmHl={*e zx*u|!73Hlc{+5BBFUJpClXM?P4>4*_9nu%5c~p4pjvTE5geySr4^sd`!>wky_k!+) z(Wa7c7UJ4GWz^c_?7dT7B(H{B*PEX}+5{JKf9a*1|)%0MF@z zM=qS>I8a>^fp)Ij&4Rx5^+h7}o2UCqQ`HpGUFyZzT|v5sLAr0}&5G>=_4S)UA(qlA z;3lx0{Clf|D|*jgkf&AvdXw);yr|xUo-J+HHBrPUXI#SK?TTH8DpPFIGhElEeb4cT zRlnHb;6hdZ@cyIS$j>du%@w1$_Jog*Pb;j?9lEtvP0q z5cg2D{75$zoSQ(V3Z4hV7p4dnu%Urr!TXycx!-0a2@2TTq?Ps7S55v6AXRT%#>k?fI1yQ15myukl9swNitJSW1C=5QPuriM?=+X1_3l#A}us z#Cp>v;6oX(`5!m0lE-ozud8SrdmtjZ?%m4h{CtCV2Vk$v+NY?_gg=a?xP4o5?IXtTHnp4iJ+ib6{<{gZqdA(1PnWY(6u z4{gZ(1O13Tg|uT9mJ))sOcMv%&;j&WE23mw23=9nk4DOgdb#gF^)zyuAx*Hku5lXo z<{Y;|nL%_b`h|?mM0Lr_vdibay;W4i#;1^{-Q~NB>_xniQ}UmDEi*WGbGrt#htb^@ zx#8f6O@Seq#$DNYj+VzlFUtXkERB91Y>hYIo6cZ*d3s&B0eG3UUDXH?!?iu!9)QX@ z;R3o3%IcLflUNZFHWbNimQQyyC48Cy`9z1y(Vagh1~<+k`2xxad!s2sb8Tqp45r0v zdY{X>S6!4cc%mDoYA2ZbdXG^#C}zrCh#}8z&_|5$kE4o8qhr{-Y4-CJB-}W;U-j^h zX{FrIO5O{uJLRp2Tap9wh#Egej zF9mk-M{d&(b(lN0zkU1pbq@WRQR`1XU%-tgk)~Ru2A{B$wqYWgV-iMPOi20O(m1km z-8+}!{-FTJ?q4j|KQ>L6M3RQ5b6&lQS$mYuR%USfRJkiv#ZTBZd#7sI*9o^>yM*;F zU;YdBldfD?nNJ|DmQfs!&_V3q|Md$340)H!e|e_@47xYq-YxDRr1U39NPZ>&$fIT+BOXjvII#Yvp9y|F_o zt1fxP%galUr6>?dw`X3;mn9+pf{>R&1@DG7nNmwH(#+xzS+@xwoS zm|HV7A!5k><7dxZ&Ehv)K|MWwrKP2=B`(hLJ9g+JJ{J~VGr4ivUq=!FUQ5u9__l4z zLZAac=^!Aqc@jSD4q0buX?5Im7#~-( zutXVk206^+cig-dPPAj>x_cM9n(uAa&M2uhb1)*^?CsSk&(=NtCaSKZwy9D@ zrNRWkaW7QWgoj^N;fIo1hb;5an+|s;w{GW=$2!=hwSJM#%Bs7mp`KOPk*wxk!fP@q z^l9q0T~$Q~hof>b-P6Z5jcAsc7z|#aH-~Ia`19bXmPD#}W}BSd#8b3=}#=BeAZ zX}#Z1hmmg46`0-=B zu%n1tS;(<@^T70S6WkQn+gx5;l<453*l`!F?H@=oyUTOksFUnb(lqsRrmzFRB(vhl z9(6Dz*rLnnO~E|T<=(WVz3x?NbHaC~?x^JGiYq6JWa#wM3DArkk@}lCIsLN=yPF(Q zp@}qpjC)$gIxf$DR0%M)LeI^r5tw6LGXNc_{peQV{DhmGSZ)X+2*1yCt{QP0bSrh~ zc{zHsS?$L?i}<2SwZH!QYe0!}Z*oLV?_jF$sPLRg=9s1{fz6$TRF?AJ06{y)P~P9E+FaP7veLxnkhMeq;bu-DKstj; ziZ{J+IFE@G+0mf3k!3SdVkd;PAJ0~Hk^vGMJK;^( zM?^hU8z`n5cfNZgGuxp(roq|M=bk3RURC9u_J#;^O;K^@Zh>JX&ZMT!AA_Lx$5`u4 z<4p?E!IKay?ZETvmP+pjf70R%GR2T%lDJrV(*dU@YfQ7BOZA-r@XB50&YihVbVNC= zIrwfg#o8kNg|d6r`dCmw=eV$WB@v&*4mw}5K7*b>dcfWsoJ~n(Ls?`JZf0#vd8mC= zniF>M7K`3+_*96YO(e5}xIR%#b(v}d#BG@lck_BH=+2ga*q%u7uUuNT%;Z~}MFQ42 z+mz{iuxe*eTep7$rA@Y~slX0Y?M*s$6I8Xa5F6;8W(yeOaG_x)vsB|&s5jGdFmI3I zS|7Xb^p&k~I+z-Ec;N{Ty$ckAVJXKGqHhZ=N>eWEWVvrARdPQW(xy$q*z*=V-1 zc!7jgZ<@MoQ>9ifJU4@@5MA#~l0myyX|NNu(C%qDbYqxIoC^~;CC@KS8~$p5e@hbW zIsx(nYj}J@ZlQOoz>uVN*%F3o8h6QowCK&Nc$pR2k_s#}@FbDw$si-zR|=)gx|t2@ z9~cdjyIW~M3r7#ksVSp>F}vg^(~VBr%Dq*Qvf2!|c^OmdGSfeBYK@xA!a&;#jr(XP z0KQBmW)wCTGXck^@_=RFwmkcgy_v0yc#krVq&6LO?2jh!M^ydkl;FJqEu0L}BF$55s+8M{K$>d9B!k4LowLZU(y?O7 zgQ>mala%?Jne^pi&sGN{#}|VC@w#aRBq}BP3wFxw)}l|PXY?Ip_f&}?wkUASNLN=# zztEH7U_3HkvEeikAN4P0RL^@=z%^o<@oB_Fx!nOA<`Wji|WL{!tQ!sR0}zSCc=0 zLGHTIp9WoP%u`+(Ik*MxlP7~Igph}u7we7@=33}td5%QsmK0pQfu-L<>>tIlD!W8Q zDa$2~=Ul*f{1auik@XU;Dx~ohv5}};;9ov%iclp`KYaRhKvILf zj2P86aZveC(zD?+aO2kbOWwt#KOkagaCc4vEqA?xv&cY`cJ$S&SCnYX`WjdHN*sdj%}vI9^h-_Q<+{XvwS>fH;j{)Ezl4y-fcHdi~#CII2d7_6E@KQFpw2AP}1CZ)cQX02SC5~N9v_O|crijQM?^=tr-_t4Qyya2m4z_o=sJy;kM5x4`DSaswsbhUjA!lRd z3IGtbrnBg8k8i1IE_PJ_IOR_MWm4p5+#G$cud%lJ_T8yTU&=fku&QlLS{AKA&tPOV zL-Zh!@4$D+0~#Bpd>Qfg^Y-i4Z!C_l7Z;!x)i>rcXpf`AM@Gg(_bZ4;o(_%90|E=B zV(1(&{th3>9O&n{E#_hpc4bSZlSXjL^+Vt}KXxpm;rpsiLua~0$rL#4p1(5vVwWlzla4(JO*L zb|i;|QVz(H;{Gvb~%R| z*qT=^8&_wkOxuwtSpgd(JHZWFUCkuO+E)u8S618)83;SrRNWf_0w#5~zj_DV%LOo- zq$JZ7Rvn#9RpT)=K9e#2Te-MKh9}$|N##+d&RsPn;UVA*%~fCH&2^hNCC+Ygj)Q#L z8gA85oa#J26lF@icGK`AYuGeBBu!O54Kf+?BC&D1d?pe@FX-xzHj3j}7&NUf5DfGk zu(TJd%vB29r~LW@XRWJiYJ6r^@q)?+lL&1f}>S~z0$3od8RcVtMFAPsaQV zFYwIB&tbSUj-|*{YJMkgDJYq3NxlQj%P*f_mN{$GL#)G>IYijDb?ZQe46@<<&YG3s zMVUk`>+QTmx_D`6SqVVrQk>oe7@A?FYQVFos7rwxlL~sNvM*@b8!us(Sy*}CZB^W> z=3g0vE>m^~pi5XqVJ>cuC<}lsU*Et-?3H_#AyyIUqQKs(oHf!RM0MG?y%X?kP3AEB zr<;{ewJX=zx)UcDD-E11g)u&V&8)bm{)CCI#PfC~&5Z#O$KKB`n2UJt^B467-l4<} zX-S31;M7|HS^Y9b6#@ce8gS|8v*lqB(SfZM3q+)92N}(lxmVo*Yqdr|Elc5?tqcK% zAVfY&*3+j-0z2)Hs|?u|3rX0T6F%R_TPB5)SQE^o^o}&fZ|w9V zo(6I^epXz)r@ktE%FwM>zY{1|=REaA47B}tg*v6ic%3VCZr+ub(Omzlp&<;SG;qhF z44EP(^7do;i-jjgMJs8BEP!5xv>KE!e%NAl{tX1^=T_r&09)jzk$ej@*uB@s5&m9| zpO`=EwkgtM)6h@x&_vgg<%$UI1 z!_&pkb>HT#eHdRgTvdfx0nRD!d*r%x4K>%v|AFEV4<3AqKdWC#n6S{XQf1hawc@Wjz;w zMp?DWg%(tGW9){&3rn@K1mUf{0u1g*76a9twF!WVhI#Ei$~X(eTVEJ8%ZlHYz;Q7$#Q~*^&`p~^6 zf&UCaH}Wh02yVti3UAnxC&TSx+I3H-^^nYktz2Wx=_T);1E@|Z_0(pK8O*w> zdn)p*I4yExTG#GU^0yiq@tlDHF9;Pj=}SD*-F2^Wq9Ax#Cu8CN;z(Q*cZ5*$kOdLN z2jQKG3_ABXg^ z%a;xU9eyx{7vSN??da^G7Z1uCJG0Qlu~vE( zWieHUc3~*I2H!`__&SL!rg>rq(yG|#&M4F#FemyZTQOx#6b09EI7CEmiG_2jx%N2I zTxq1{sV^gsv|g53d4hA_n?pZ72K&eraw{4vp&HEkyvWtq2=1j>oZpUbq8R+Obiqml&e z7R>_s7kbYBHq8K>{bTI&hD`IjOQa_kk7ll|&0;E6r7wgT(k=}CFv6Pvho9CTDDG(p z5dSP^>beR(lUbC!-Z_cH1_UNRu*n$)Xr7%)5{LN6KZIRAVd18Ug0b#GPc0R(zUD-C zLz-{b8~Q)oACf&Fp4G6S)vLPHF4xnN{xsw4KL0t0`YC0O{ynkb~tW$Un31zQTcg%~LXH)VJ8rfDR_eJYSjkp=p69n|_n?oH_8 ze1@gGbrNu!Su?nts>dwQ&ZHZoFsPQ+E}s$>_{VTm0&iuGY>-_to8x#xBArSiHV8Y5x2ZM?ZzGVQod@;VyeO5 z`vUtFV?K+vp8CqGsF?n;yeGGNZuRAAYcZO)_txox3Cd*p`?nEubFx=s`Rwo9c?;p; zx8Hm~3Wue#(%uxr?N>|u@=|*HlZ!x=*biir^mIGeAkIII7FSn~U0ApXc`fxV7lFF$ z@+$2yB9*i6sQmqJ-+b;mOxZ(_KuIDjH}~?BCl@Cs zW^Biw9xqidJ1i|F3DNrD;mwm%EE{T{+7UP~#pU9~?-SFLx9?oy2l?&hkKYBP?z?w) zMMmoX`qdGa@Rz~$>zi$DpF=GBX5qx>H~I)H;9ap=&KCr^$- z9z?@;J#pE6PZ#&F@QZ`s1p==C9Ez~WutU<)k3N26g^e4|8%U_CJ`Ue<7NYz41@d>C zXVX5F$Bw^0ziSuy{f7^4AYJD3FPl@RPai&h^y`F&+(F5>mKN!Y7aPMOwn`p35?or! z0Xz7G3zrURYDSRB@?f;GEO*L11@>FF-o8BuWSuik=4d9j4T|iRD7baoekrFk?(3}` z{g;4U#uJ(toCZWjj>Z#5Po6x(}%G_(K)H}{E4UWb64^6bTq*kJNiNJ8QE@Pve} zb7y=6z*t*XxP0>xDkG5%B@=Qs74lxvi=w_gR0W%zF8}m-a5KcyR1=n#g5@vk15*uH z@S8c31h;Y@RB(UF{r251;a%Tq@81U6NOyO9GMnUSw|wc8;8+MX`yg7cb`~ zvV}hQ^y#Gh)1*`9@5ln}V8AUVPT@R9Y}{5Z70CFh`SGfoB+I`4ZTcY^;e@Zm%#0nd zSETuU?9!gY&Ojcz4djz_po(-DDzKjneu=w$-pXp93A=4t=?fTQNCn!;vuzaAm9qQj zYV(PU@~>{~XHk+IS~PLMZaJt~t-x;LL0h_d-Rz>V@!<~;t$r*ie|Lb}Siw1$8~FH; zp!PToM6PfZCj6WHk4ay;?%cMvhFpeM?`k#Jc|spJMsuIh(Sh_dT`-j))DFo7e7p9Z z0t%LNyxig^?lb4kJ$)u%0FmMyJ5mJ?zbPy8uR;@2g1EEBl6h!a1a3q>-QpV84JBYYe?MVp zryfkzq7_`;l@e4YahNDd+gaBO zB}}yQj}1DCf&@yBb#ZUyIp(^%H*9mGm9)aOS(R~kZg!5g+5*2}kKtf=i!lY?zbmQr zCzaVSm&cJU{T7b`vM6!--Uhs9Yu{Nauz!7P{u*}VVh9cheqm6CT2AOo>FY~9@DgLL z7Xy7=-erOkcQ&W(!XSc(O5?^ zYIH{zX1%GraSCVTN-HsbNK6Ul`F^x=h%%H2(0<8P6sDh;Q6?YzDwu0q?iR9#I^_AO zPS?pCn3|c{QZ?uj#O0S#0ei!=mxgo(S4LwPWJlN)wDwMIHj7_2L*?-8kyd}rb!V%_ zS;&cmlng*sK^u3?3Ql(V@|ylhV_yAw;dA6cJd(3aY5;({sXu`^pWI&IF2~OP`O(7S z1OLK;C8OQ0K~p{Sch>)b>xG2?t@;Dcer)E-vndDgWsC7D!+$a9K$q!1O6@FBS9LL) zh@Y$Y6Fg@ObZz?rsJs8GKj84yuX(-y7v2rH?jI2QjojYs<~Pj_?l=C${oV8nrv3w& z^LQl>UBo?{4f%u5In0TV`s2T6vbX=Y7b1?G`>*r3kXLR=_EO{jC5p?_n+M$fQ`M7#?rF1ReBmD=iV+hiYh>#jkC_1) zbeTu1=EjUArm^9)^P)3z&6HmzVJOg%+Vo+V*+_C-_|eOt&tmZ9-3roEf8e;mU9G`c zmTKLJjJ3!;s|0OESi2By;VT{+M{hJbf9c{r$gE(2kKX;v$F@^mt`x@Ez_p)oh(8&~ z;jB*7^wcDReXhz=P7eh=HwO6cb18fnWx%n}o7$I5f!H*w*0ST@4$IIi}x9j#r zx2q^#HM!B8`%3MM@ zrdHm13y-5DAOj@kvcc*yX+vdWY?iqrsC4Zd*i{v&dv=OmGBxc@`y*ztVqL={Ez-4C z=r|v+u(1)(Sjb@pgKLvqezPo z+BhIYBa&Ccf3hgi5p71v^!N-x$q|@ z3gGx2_w~)Nflp7%*h*wx@eKJffmxhcivJ36yT@W_{O*M z)`*p684EIwStElGfLIT_0NxBcqO2%O5^4Zy@20uBV+L{9`0$!rk}wAF2~o@d4?_8q z`AK-Wk-vG%Ky8ND0eHFou?yHR4TQ##kPJ}-E5~ZS*=@a9aI({0ctehL@rvx{4hX;AK6m`pzKB^(D29Wh`@VP}9~ z5XVh5qu~(@7Ejd>Z$E3qj$8;+73N`;2Miich=TMG-x8oJiU#@5eqjyoqhXs(K%t+H zAKoBKAXrJwP)fzj*=}Iq9u#A_=m-om(`a=Jrz9`yw!#t)3#3D^h{{k`Q-bog0VZm; zWytX(Q#A_LlG5HJ>y;n%?lSe=U)|oZ<}vx_wrY3NB>brnhsjreO6`7~|L&~+wj=qC zFY*Wp%Z!aLjeQ!)wj8Ht$A*GS#!?q6NbY0)v*ojRZ@8ANt#0A#!WP7EW1LX3(zBE6 z7Ms%ES#$q-Pu+~TR=4A;-42P<9GHB&yy#%Lnl-i`x%YNBc3g%NEVfmR@6WL+coZw; zz|UA`m87z1pxwxi^@27Q&Hc%O%CVRp&7O8!jV|C*S%Ky* z?_2kUnx1Hx2?Tlbw+zgvz?j^b56v?;{HK(ZPZ_kyUm(YVr8wmumU93LeRmZ_owclz1K}y?pluyA`9J z36FQZJR%N}->y%u%9Yn{Anta)f6~17A{=3c5LnZOHXSy)bex|H%E0-Jo6;7BMxaOb zq&0hl#YDRxNTxbuJ0h2y)qVV>!nUBF61vc{pChY92oKCFEhr@+CdEgW+n( z+wkWC2Tp{APxjyNrIE&Gn+GC0C3EjiXd<@r*M~Rn{mxwTU{BKzKLlUDo_Td=&;(zo zb-^R@)X?duX{wy8+hs9ClH&VF`1X2FJDY$?00JsXe4wyXKp+T;zmcIc*G4|MJ09MVN5!%-9RKL+WiFuf`i#?cv>Dp3%~4SN4&QzQ-_E8dw+3Q4ez51 z)W>KERaPS5yLwnv;h?)WjRtE3LcUBL7Fqb!_ z`SSTwKg`r4b0UjS*tE10_eHuog}_ zx`4ny6LQOR_gIC5yNRsAEvo&FDqZtkc3AuJ0vC>f7wA&8f@n1N_2Xkr$RTop0g^7@ zVv8M(%r%LtM+OGkG$w6>BcuUhWDw7ta_&@FnbCN zM0BW$s^3%5@^;(@;uPo+pHbM-sOh#(FD=~ zw=)K9wpv^)&MeYemPIrMp%H9@+0|8kh z+%4&yE$rj#YbS=PowqlV^q!*qK$Kcc zB&8nb-p3Lu55<`PZM-IRlG^a}4E00uKIoJ)%*oh#B$d$%74q3)Z5I=@Yf>@Cp6MQ< zYfk^K{4FM7F10XB>ryeK1hrtAa5w%r1`6kh(=|=H73eD~E8oT}b*T0|KT^??YWakf zo%dFun-)S&1Y{xhVghESd+b%;KVx}Rqaa#=sa{~P-=Aud=cDXgx{!mSPK?&$-if*o zTSiZ_l!wTw$`xwjEr>|v}iZhixM=kxS4U3nhjW$xW+GAkQ#!BEy z^)~3@6Mi1Hs?s|zj?tg_H7U?l7o8_!qZk^fUB~#Lqgu>Lay>3ApRl`lI!*(c^z5HG zb=m3!nKf5nk>RTzpQLo-Q!%J=J2Cd`>9zxj(*+))Ty{N+&L#5OSnEi0vL5G*lZ$-! zs)bdE2&&N+x&td@(Jo?W-4^B{;h*j-f22+;IF*Yt*H&Y-lC|g&ZZ={@8=f}UyqdlR zXO4fSS5mw1YH{K}3&lc*3Th=$L8_z&t3}r|gSn*XfB}izpdTBtpu5{)Hy7dzw>e<$ zb>pwlGp`YWJHF1Sk5v=UwzNdZb8Lx`aF=~_%SwO)R9Bqb;lB{@oVDqZ2)sc68nb@h z&O=bq3bx#vsygwZ#}gkk49xPLfYT?S#L&pdmM-l~jRJ!QrAlVA_V)YR9lF-&tGAL4 z#ay{!e4IZ39q>3T62MOmF)`=z;}&Pm>g?QuB9Eak;C2)au^GuwB`A)xASHlk`8SI z27XICbmhtwA77KXdFuW{%8wEfj5|w8XOpKF$up5guif?M%D=QIeO)9^g~#-jsAJ<3 z0FN6o8=I_jHZv2x(yHR0-7+RISh6u7`Ed8GPseds?>oBde52glJ`~npk>lrKdS4zRS&!;U z@uzo7YDEQmyhL9WU{{GpQ(QJ~P%ki7X_suoIt9)n>3wZ-F1oY6v}+p`A@dYvj-Sm0 zEgJecdLy}8@_8XH^!Bl*eE##D7R`$0mSvqvaiwSty85hVKhj|}1+(%TK14r6yf zUjE5&-}k*mrQ^RjW_?E6O+Lo7U7b$Vs+9hNUP-o+E2ntwp$Po_o3J=sd0Vbx_W%9x zq{8oa&ivfMmGlR1GFJM|j^D(~7?0{7+<*Lc>FWX_UP-J^;oofM7|z%~n-P0SfY-%j z@vD}?zu1lMz7KzZM)1PTT_^tqrw*cX1?nm&)go{1|0aR<>2Tw*oN?QKC-A$GatA`f zd~?cN@$dhrjJAWzBEhb&f>QV2@+!w4?RoU#%wPYup@hcW#?|&C_78$8?d2AkAA5g) z;s7nRcFynVRN>LzNyPQ*HC0m<-h)wBzy8M4C_?<@K0!HZ>3_CZ`?$}o1m1fl3i>Ud z!0^t?GX5r}?To4kZS>7|d-wUy@8aJc1b03tf9N#HRkX1Y*z{5}NyHMZn{sGIZH0C# z9jAOiYV9{^mi)DfYlzK)Z-4uiUcW+YH7spkuJ{GQhqj0m#W+Wkf(7F+ou98UzhMDs z{?l7}cmK_Eq$=i(q*<|yS^2lbg0aI_RSy>GhyP0*^vO-IuzGKmd>od1wt3lT-poxO zRlx`Mul9ca_npU_>@wWfw)EPBn14BAWtE06`k!Ffwg0>me(S63Rr3zL;;U#oRLe_= zw^qpG{QlQiT2aG@hlhbyZBO}kvg~w4$)Q=Z^!@ccj@|+5BCdc_3H*vL_jOb7T48n- zGZFsO^+f*lKT6EYm$RlYt3-}j$;Hli%XbSye|N2R>s&udrsVM z<0~B){bFO2Au4$jcNppMXd*77_~$*p@v^#{y4kDsf zeYvzB%vT>&MlYEUsdV>Je(EsWI#(*%@$=C;zRB*ONWea{Nh-Cl!C`RF{-@VRt|DE2 ziKH&O|HB2)(+v;odl8*3I<~NC!-3mECimU*KWXL|Th{MlStBba@}O#c>K7$>&Q)ve znG4Bu0#og!&&OTU8gDVgzmzV%PL`@CT(V-??Q`!%hK=am_XfzBiJxARkEwLpC`rOMy9dOkTx z&dRt-?}404%|=FnT-to{QsrJ89Qaic9sFxJVK;V18>YUc~A(ce;_LYhf_lncj15xNvZxYQAA7ss>yD|KJ9a9W6 z-*_;j(%^MXfE{6h4cK?{sX||nh!S7S0mPP@2#`nWa zK0;7|!}Sh9MYy}TaT!G(|B8Sclsm2IG3c^89bYUyiaOK0v5P*nZuYIq%+GL=s>E79 z$H4mUka`!qX?wrErO#!FLvI?Q`X z`MdM4`+Ms;8P$Fz5aP3h`ZILKc(R?;+-*?vjEU*hK(1bu?(x1nr;nnibBaGJ1rBEh zEU)f`X8%29>fVqnSv*x4DJDhpsX&+3C4IzSRlXq9U0`e5TK<7iH055|TbT;ixRYl_ zMoKYFbIf@nb(!(SUHn=dZ_Vus=1VuEFK84xXg1(8;}`IR-c_IFt9K1^$fYvx`rI^@ zEE2s+D^`y8Dreix@|v1ZM~^?*Ej?Z;lcimAB>rv1*-Q(#rI*U(hV%_Os$)+R$%N?onvJi5yIL#g7V*q4%K)HX;J7l zLt`KO$^#$NxeN@v`aHgdx!Ir-F6XgyFnYGRJ+pI;MzbCrZk=A4G@VqmCw#^6Dy$do zgdxW9ioBc6eDm}D*rv<-FcuukvlDqz?>fmdNqnUb4Uqao2Sf4>p{~$PTNZpBg;Z|u zyV80^(Xln=c_#Aqx2J)-Wek^!#8^Yo_U@Yh(Pzi>b2e(;lNf4nC$Hd-G7SW5Uz!Up zJ3qEN4Ej|l-JK8kC~DAs&`D1~>G3h6?4NUqQA^V*&yE^gPqSUD3tIQTxg53~?vZ-D z|IMM+_km8Sn4%j{qU4~{!`)2;Mk3$pQbCrYV}Edt_xkzqmkq<;6GhG=i~FQ2jM5_w zn}yoeYk8Vp;t~u+{QnZ#gP;B|6r`~zcnQiYIT?qlwc&?GsMwon1eb}#;`lu<)rOv1 zm}?f1!U!(kCA^~o(;H?MD);dAlvtZ8JN8$HPE8loK8j8}72@`e?M~;UeI6*#s_^}MK1)mR>)%O;>S?q>E0Lm+jv^Og+dRU2d}~^sV^7g^Z9huX^lFq_W}Qe z4|p*}aL%lppth|tDUjAy;d7K?s&FWhTvI4y-~YMN!SrIzS#P+L{r2cHIbl_whp*3` zLKv@fxWP5mXW<<861U}}r*#a-v!`_?Iy1R&)BTOpD*d-X2^H9^(tmw0i3DG2bzy2& z0O|Fes5wKw*)DnXYM~nh(0odw9zOVaru>_y|hL7w_n?8j#w7$ zCNbx@*x^ol(&DYKo-4{FWpxIL`f#HNimvS|Z~21)Db1-d{aL_g)iDAl+40_m z^WDRg@1RNgEvTuP2`cXW2apyOyTfbUbdW4vl!EG2%pmBdm;m?bvrlOZ9=*mLAE=L2 zd~zUUd;Uh7%vNr07bhGacJP@lCE^(}T=Ff}KK6%J;w{sC803b!PXcJk{4u&zQ?gvJ zC5ANhMMg#^D#c}{%$doSk7`Vsel`#GSX-$zZ=HV9*;!E;x5*}xq@uv!=nkjh5lTv| zX8O(N7dF@6^UVAm)4U0Om z`)ZIjRV>Z5@lv@mS`;oHp{^9_T)6omRsvkl(YY9FMf>(J5{)vJrIH>8V;*vPyUXw$ z#?(x8tuCCM5p^KsbgW~hSz_$cr1ndGg4a;P_ve7&-ni)<5Z2HBs4d4^Ws|(kc@Mqj z$r}mk?rb|uJ%*>8F>e9#?ti6#mi5HUtFh)lkqqvuEO#gMnML@vzniepXgc$?T}?+o z!IaLSXrVerh_3yL9w)qcCbUQ@Rx{h>Jljq0>91`w>TTur>>o9+3`V^idT{9Q;inBl zq4GAr4#KK8BNe}n>TDOoh`P-9kJrlqN}X(@;fF0R%Qh?dJ}8bC(E6+mtMOE&W{Iyu z_ff?67lGX2x8@q^2)^m&d*o3(cGS(T@toHf)J>U1Mj{I;e9Xd`5$< z9;?EO5mTS+p;djY873r4Hh3)|eZA3nPQVk1^d<)8yGh8~%%KRC>qkakygi)Ur{&IH z-u(LAG4tZ7_P{4-I`3b5_IMj1YbKVx=tbz&9qm)aHj6K0_=p*xV>_R9jxBohwg{`c zHCfY%E3gs9DlaMMUmZ%_4M*5FRv)V<&2?s4DmwHg0=$|YRctUwTU=gF5EbuV zx4D#`1&d=~vfUwoHbg*tGQ|l7Y4bAlTZFsgH0|&$<}Z265LFZ{%u{X4pM&PRrur5! ztZmht#BAEr>$Nc2d+bg}eP!L1?xV{S-Oh(OH;_$Nr|6Evc_pbNC75BB-m}(tqp~l7 zTCwXG(P26^a3r8>OSSj`)p^2^1?011t#aUh7?bFK1?5z(rv`Bg)<6GVn76?dxa!1v zR@caS^3xX9o_x#t5c}l}L!|&T`iocdVy9eoNGL!)hZ~Am`$)_iyc(z(IGW>DBQ*u6 zM!ihQPDQN_e~%tI-ZHyeAIB&PE%z0@IHVBZqGk5>FLU)m)JoTfFpBO(VZvp&)pH6n zfFV}IzrhzPzE^drXl_%^gikP3gr>D9ZD#Hq zT?t1(D;?>6`3h!^l5=MWkNMid`PS+P(Ys6~N1Dk`gi*G|a>A?OOS5sbOK^ROu_{V_ z=uk7csT*^xN$LV9KNXAdACDl0QC6w#J*4o`!nt^MDbYPFkgM?mcJOD80*a~c_MZun zz1tDDaXZVwbp(vZov!QZrbU?ApMPhv`h~U>Ih&GX5UZvN{27adt!*u03-LK-`uQ`* zjAnX=$kRACzlnUUgyg5wArf$@^z@oK0985HErQ4=+b2poM7gXbM`mku8eT~0#?nO8 zyzWnT7aa1%(s>2i6u0q4&wX(^IImUWH?vnRFAu_zqTAA#Df-onPRY_rl#uq#)bS12 zMWaMDPG$?MZ7p*NtJ+-q`hWb~ILF>qhjc4Uv$;+@R;$0#`q!a<2v|nsxqLCF_VH9FaOybr0fctoz{WCoLvpbjsb*h%T9-Xx z)8G%caNZ^nP|^O$A|&5dbZEIGtP`Q(jXZwERoVLTzQLWHagLDn;B8p#NT$FhmPx2d5Vy;WO`ei$DaV$?=pjAFtMb8EX zl`RNf$|+8ESHKQleNAwoox50a@KxD7m|4TrzVE2{w_xjjDLdxSRk`&2FIW(4E3^Os zu(iacl{YXe)7malD|EUmwGX%ZXadReALY;Q6%6(ZF*5r}a%6IGK8l1D?S&ofnF`6` z>!W5<#Nn&&_rdCUb!YG|$76f0R0Qf~tKK&`9~|(KF}7qrOT!Q&N}Th*tsxORcXryh zy*@H?Q%ip;N((`ccoX2e=raB7Lem%3Q`<*tZs&o<(s|MJb-3mE19ps9WqigQ)?=k! z?k2L6=&7Nuo)jC+Zw-o56z7MwAxTdvI^jPZv5pIn`c8a4x7<rL-;wZ0GRKkuV$V_u0zwlzg@o_` zwIrze$+pVLMIY#{FuUqKQaOg zpsvbAQ^XVgZG&C&7|OkjE$0~)+b(C=DcKo_G&cE$8<*ZLbRa!*3-8m~=H74%pJT&2 z-j>orD1PTp`YP&ha8ki+E#{ZMt=p2I^!oV(-K%b+O(y6^x*7LI3cl1w_C3GvR4pcu zi8RLl3{fyC3*@sz)7f(>f5u@0yPGEz##X?`FeWAGHf9LT)BD$#{7a5GAiF(ON{?(~ z_#=?B)uyHCjxYdv+}4)5Z7jpxykYTF6i#b__MI#x z;=GLli51Z|iaa0coXPdXcSZ;=Y_GxVy$Vd(yPM}o8rGF|zM58o;}v^HYBXP+p;b7p z1!%CZd05w^%K$5aJf6q5G|`=i4cv%?Ib%2ZaL}>q^VyKcWye35xiP+JvxI?aNget% zQ2^J0#1_X_aCTv`avd_LjHSj|2)~{Qx7#78c$-`Su9-zO?fZhQZk|=g!O~^HZ!I~v z#V%SEDKxHG%FVlEY*&zIiU!<`!j5S^>deeQ#v3Gb#rMPNv7C zAu>F?uipGf*P*3#1Dw1cnfp-0-ZSUFGK4i;V=dMnvCq{IaB_}KHfywrb6**&E2Cv% ziOS%~dR&W@^=PuG;})sPKU)BqLu6vRgSpY_^xDFSN4%4b>4nGO{6^vR&%GvM6q8Xxa0SvdGR#?GU ztOZt&lKrlOwyot^3|z@2Ys+u}pDRT!rx{^2uQ9vpucyKA_$h1$EX`)5qxS``#UHeD zC|%yK3t?EU6z?#&6L##Ue`g{$S$%zN3si#VBjI*@yLZ=D7aPs}KYYD)Se487KD+@H z2|+-*1PN)7Zj}-#5h>~J?k;I*r9(ivyV-Q7#70`WyYn5+=cwoX{_)$_C9>gR&-2X8 zTC>)D-)rW4ybX6cqOM5(u;c9fTw9H=Q|Ho?Oh@^!J5$#tcv^)afs;ycV9T}UTqtaN zIhSL|p!)IySb_ywXZ%6rl?yyxAPAX*rvoA=9aylM+S(wJBTY?>(c$Z7oLnY9OeX%q zqi=c`eSdl&v@|u6lmvQdP2?2~m<=Eov^zahzk&tEu;Tm$9#xi=O{8i`P`>qc{soY} zV{t0AD%ku7ihsYlvYDUEYAQ9zB!$4tm$meFuiGvLW=Y9s%?pU#U(^_AW{@&BD*j@= zIhsW!RC0!PQ>ODAt>f`R8!NP7CJloO_kas$yR_(O174u`M_nSzcV` zT`3Cqi*#FCa3RMRT4!FPjFjWPe$;Bq_})`%A@?g!80$>viy0h2W~t7S0S2U=jM*Jx z=0~trXEx)=Jul4i1=Be;E0?7+Mtt+BC}>OEp8MyTN9WK1la{J7 z+s9T6o6P%F-)XsR5Ies;IriD2*OI9)exMaqQnJ%Ml(tkSM8$I4csnFsa}HKannCa% zUILu+R)SX0puUkG%d?t4DUm69^+i#vU`&?SuENVEvp|JmT*v1ZOY8V`yzWjfd2A?r z{$gdGp=quDtn>KikTVbY>_43saj6#B+u%HqWmgo*L*2%+nSBzUuT@l1i)%i^W#LkX ztG(S>BlUxQINuG(fD%+s~lA>+qcercna8xe{k#{oCaUn8Y|c7%Xx|}mg}*Y zrC=Km3%?>yo8%0{=dCvqd1H7~>ny`p;a3*Y`EgIOY@ut$<0%p8DXt>a91jjtk8Jzp zv5H<ba`K7CG#?ovm2{zX-7NiGBTy3eG8bQtF+=)%*;*;goI%CYK|B8nrNx12X z3fc9y=`h+9Mfg`o;{7&_H9{9rVOL7i3hc}wZ7Af`MV|9!MFl*@4WZuoE*UW8H9KrK zwJ7(+-ogQS^O-8=XkDo)@)CX6A3J%&V?dE?yTOe+-r#6bZPr}zC4Vzsv#`6|Z*lJI zXT?r0nP;a+CnjHb`Wq8GKR2U$Rq|+Ctma8-`>J0#0wBlX{-Yo`KoG>jEkw#yAR|qz#QC@AWzA53{O0+Vmjm~6O9kJ)f9kOFg4R6tF|9sEm z&j1Pk2u{e>sLd>?EqFd(|3JyLWc*E<(xwt}v%ItvUmZ>&tLdXKlV~UU5KRIqze8Gs z(7ceEm42Sg=~_kKe&OYhtldnDVgDtw`g9G_oE79}P|8oH26%EYpzpj*#t=@m&Ac-n zKb4Ibo!XY=+m-xK&dyA<$q^eWky5j}^RZ^U=EiKH^R4w?8t9F4c(rrf+FLa)184`6 z=VPdML103YAoIQ~n;p9C1X}jg)Op$j~-e*iO;-&Ll86MLxK_LcieJ z;?&LrYjFMeq~56Lh$p!6L}-CXLjJ$CbQlmizxDwy#m3+nSd@a^=zinqNZw{WubLzm`naInO zH@tfT2Y^R_{r4vc2n<)Avuf0BH}bzpWLLNpJR!)BknA4kZBE_4<)Ulw)1SD3>Gj9Q zfx|)zHNqrE>;ah2lhLaf0Co!)vH!g%GzlAs;IhCuo}c{1AbY=RL+CwV(Hr(zgUVew zBL-Mz=w0(Nso_^uqY5QrK@^h;3lV8mGn{u?#TTycG;X-L6 zr3l8!KxzSUoc-C2iu}3q<;+XlgOri(WdDW^7q4+$WK%)60zdzV$Twn9$0|7N1z2!@j*y|1zqw(Kv zxy$FdLFg8}Qu$~06w^`?qn!zTBG6a zw(IOei;V@mjryCRMR0fQDVqhX-EMBhj?U<|r57Zpfv!%ZubjlF)!PEpAWfm0J%tK=A*&bDV2h- zl9^i9B6g3nX`MYoVkhmG^nP`O&*i>p!V2fKjJZ0{hF)D?|Hy9$T7G+I8+Bo%{-FVf zqJ!yxcz-Q!_fHQ|Li*x3LLC&`n}Ufa_kMMz94sr=J(u0m z@_V!;WobzjHW%dn+<|dLl2D@K^Q*S@ILUZ{Fu*;$1n)i*vV;RT6%#;JpujWm!g#-Q z@5CD)sP}xasAX7;TWpbWXV|Xb+`4^l8tSZe=9o+Mk*L1E6nKD^VktM+y3T5F zzT>a4c51D-LhpE)8M=RR&@nehTHOW!c-5&CvysG=?OJP)D?_%f7n%G%yN0|%aHdo) zZqOSb$kUoM=q50)nE2#Ye!Ey{UvNk_Qj%tdiAZU%9yAtfbwX1U5h2StEohNEeeVI) zjcCvI`C${;+b>0NnP&F8S41GqQc`q_UAnHZ)?WpuN`v8>wVvvos~A357p;z8;gW`zt}+mCD7yr}fcIQa-9e=s3oxF^3g>tW z=w%>WLtV|}bJ;7cJGhL=-f(e}!=}g3FEqK&0=k@v8-lw!xfHnJv?T(t`+P%&_^5+q6iZRV0O%Y;kmN^opk*lDYAy9e%v4AK ziUyzEonUr$_TD|+H>1Mqk(74;DFjSU-Jd<^s;3P#y7zY(+VQ#B*fCU!Y22ZJEF(^NLS$O%{M> z2WwOz!i>eoL>pU+9{}cL1xyV9{QF0hQSR89JDzmxoSIH?p{r5t$bpauB6hNU_x)XV z2+}*tJ7fWt1J~4~sDAfjKJ^kJ&6MQ&*~-t?g1hsbNrZQlf`EVk>bZtR<4kR+S&IAJ zwQnoK%v3mZ8qDwoJsJXmB%EAgMHABV#rX@TenSULBVTV$W=d)QgfCY>cGyl8FeS0v zdZ^Iti^Ph&*-WRX2ZfiB8(1$_SEows$ELP!oe&dX1xpnyLVNrBT7#!56Xo_9n`iKO zz6`&$0NsmzR^VnyXg*G)7j3Hu_Mb>`glJ50e?T_(9;PeGxr?nPUK>CB#h$L-Cd z6psUvyU_v<1q8)E#zbSJx0MfPRj#ftIYE2=n`cYOhz@Z0FW#kp#BRJeL2PMZgx~v6 z(Ub4!LgL~v5p-NoL$AW-kDFqF^0KVsSm}5G-u?Q7_2jnRM|!YAdcOo@@-bj@ryt+U z`*oojzcU=|)3-&8t|ji+cMnunpg~nb^csNnXE#}Ms!=pBkBj?YnOTI*xO9JIMFbrS z$P_$}o8ziZD|B3%wh9xByQ$VB;4+pYT;iXjkb#-*f06|_j4PKLcu1HceQ%FEDffw> z*au7)O;9ka8mqFPQdu$($V2u zPwP+BHttP~@w#t+ycF~^;))h(V&Oksp{oQ`hgE;^%yBCdK)^;Hg%+!nx?)2vZ+Tw& zmS)IJSAn6{?Z)h@%Y%WVuDZHCq**LF?g8?w`y^>DvUx5AQ2UFEi%Ev#`d}`w=ubdS zZjU+Vwk{%YWH`ycYr5aD6RjdB!{1*KSDM}iq2MwOS8JK!^d$?AP4At=$N6>F{mPez zJx{jW@*yHRaVk(jal0OIc@Xn04bK5m6zly{QaS}U;c@ynqaWWmuzSB|-i!=lgp(nd zedJgU6GSgIT{dP$U0C3QDh^hdHLs;!bK70e=LufiBek#q8<+%J|LAj!EG_r8)c4F<`RVu00JFl%6Xuf+XlLkysi zvGBsZOhQG{~=Fv5mqT88@qdcGqT&z>uh8V+xIWt!J1V5P5G z>MOy-gmTA`fM|rTva_RO_P|1oH@G&>loW8&tJPq=1C&EU1_$QF<~&*BMCFK1rR7^- z11~sjkpL5lb$w~8bDgCzzqtrlLuD>f`{oLbcIymo>#cj9ojlcmwWvRq=81W2Im3o2 zSs0R{w`n!Za;d+ntJ;a(X|CmGwi;^2Z|+gOvw~c?nAKY_4QJAjfM&vO`*3}As<`0i%Zc{j zqqS+T$S`bbjpXU2-pj|VEA+ZI3A=mmc2r%<^ca9vUw&L8UNKm{B&Bp|v=NH21dH2Mkp()aKk*ekHYqtw z*oB)YJC%Vg*2+*KIu>rT3adh;N5+{PQ7gYB`+E%f*PQewP;-KF#V50T98BjhL79lU zv))5ci6L91Uj)ncKg=vK@9&iGeXERSoH}liC?_k-o-9g&!N0?Ci)C<7A9jT=(N7V^ z-LAYBaCTq;K(*X76L8;*s`dApgwU7CIXcuWD+@2e0RzHf)WIj6$R`5Y#6K}6ji&dw zjlPVe7`ch@0@zV=>BIf{#TX$=Qx?ff_D<$STxf%Mdk_C|iT!qZJ88{vV?x!QXB#e! zi9%5ekm#sR4PLtl3^#%viU8C93P?obOi@+u_|P)r>|w+)ilJnYrB>n|WFX6In%^29`+G37T65ug;wYGH{cOq=2R z6<;;3Y0@UHi__0rTq=jcL=XyCZ5%1%48-*nvqZ&lSlx3vSbAHD&UvY%uCC5$C;i)X zN7n0f%9Pq)>vI$+Hy?MsK_lYp`@Vh%x%4ehgh~;wo-sH%2#HE*?-P#HxSk^eN^9$C zQb5b{s15%!$z%%9`%r7l`r~mL;gA+ibu9tTaiB%n)^rZJsp5NPU8`8wo%9F*$pCzp z=rk{?-nrE5clJZu>JOKVf;eU>3xRs8^ueYG60^|)`4F*SCaW2Dlbp}sZb2P&R`M549ArIwxA0p0==xWuB+*!dFIrV=b_ zr}DN|l1ms zH^O<}Pn)xg3+CHnr2K1LR>7+)Lgg0*D@SolDgK1~(Pi7t{jAq->oxApl=K&XVrcTgcb_3T-?W2MdR zlgpWc)4cB4)$Q$mzy+#dkr?zT#~P-9q~@(Xe!zo%UdQR1tpt-3^-h2-g0SFnTMjFdo3M5OU z=G(gE07o7Tj<$ZxZjSfL3y$QJl-rre6Gk1fkTPO$eq7aXwKrk`Iokf|3kaZ0+io#A z*UxwPTze&x(Yq?DeuA;(Y3Sao8BrR5=r+0zbj|{dp3f_+@zmlES@;dk%@$?jB>bU1ee4`59MA@YXwZFVLF@W(r0-(J)6JPI$)CO2K z;hHL5?jJbZSyIviI}`X~3UlmD4paTnPwVCGnMg@I<;_zpBHZNU=P2(Rc(ln425uxO zXuozP@luP0CCz7P*i%pL7C6kdc1|UL)!bQZSnux78}nYd)YYXkvnHr}ivjKLmaf z#3wdqYgRxHqPg)2y>?CM{d?zpRqismixSNITegh#h2M_t;OV(ztAT6% zuQHdJkUDy;q%leD1f4uSLVzYsqi&+XJzeYf8 z1{Mw<^=tpTdr2*%GY6%e{kD$+pBasm(uBbbH);c5GbfTG5BichLgNl` zSZ@0rx{~OqZxi1pETd3`l1Td7GZ@Ym_L?zJG5o$WYr$$F9Q~9JCItI*L-G5YlariO zv09t;v~ip6FbcIAV&$@XBaO!+_jJ3O09K+@rNug;&+rtu*|i@z{OUL;n}XNg%7-{} z)g>;5+ZX+|?v2ENa=q(PBZd6_Se5_|hWJwRRs-7cKeGyf!CjyreZ|=OS9SwcqJc>Y zXm7+;gQvNeRQIK2G`&OFZR7yo$14oUktGo7eK)Eb%l)uWxVB& zC_v|Bv+blyLsIxmD4tI&fP4SAJ$~b0sqmlD24VBgjA9gXR-;F-_D;J-f80ypXHwh=TCVd>8mfK^iut)aZytcK?w2r!*+=`B|=i-{Y!2 zX>8mV$OnJeY24*#W{buru2A3h!z>KEaI%V-zjTqf!+W*jq$*1qvM>evYvuDBf`0<| z>pfNxWL(`Jv1IiEr&1rwcY|VLd=)Q`B}YYvTgbo+i5@cyem;P z0;0UWHY1z$iEZq+Ph4VST_U z09p4vZyynh{d#>Li&*iy@5`C>-U@as0NK(M zP_MlOm`v$no?7|Ngb!vrsXic zW~EU)@Jm!qu8S8H%4`<2I#dmzX8jLfCqT}X@$#m=a4PHxL)(5-*8jc5C#Kg|u1?j4 zT8+2+xMABMNBRULjARs8z`VH^?5&vZ6jEOJHnX}w zvk6erF#gLM-LvW($Y_zA&z&GqVX=~LB%chh`uUZNM_i3gb&Rf;GcxrYW{l7Lj}}v> zxs|KjS$h@S!*TvQJrq9!hZzR}Wp0}B4<1krm_dNdezpwlw_^zim>y*G^@Y>aglKAO z;+<^d*(8*`PSF3a(EiQFe@lWQr5*Ji_6UqSwOU@8QA~6T3i;_00ze4~)H*MN+#P6* z#ae6GLCxHX>x9V0xNBr5-IwJsC|V?q&SQpnj;G)}dl2Siy2eG`Z6J^}cq8E`+}2-l zxOzP!o$7sV(U??9nX|uiJtnRD;ZB{EEmubSwI}8maBGn)I*~d za|^aN9blCr3>UO8MDuQnwr)3{g0O_m=v{&*s(T`z zUHlKq;KL;>Y%ZYfgtfGS()ecwtNl8+?$}*opgtWivEb(K8w<+&9_W#Po4=uw>v)-L zt{T<^@sPf;@w3(=Nq7GG_D%%}VDyh{1v1U>PTY=b&wW8OtiHV=EFxkhutjcX{2@cT z=Ewe^OxgG36q`?CsxlYnfuU4=+fK7F3x}?x66e9x#C)DTmx%-a3FRF&5NiI+MGwff?B-u|^8os{aosll!os;&RGN*pV5I-*C zbK_VUrEpyX+rDSe)5XeZOg-n3k(8ZazB(FbBm6zs{_V`U{p*8~;(-|>>UnpgEIlkS z>FUGnt)HjVz^n{ai>N?yaJAUQAW!#oaWt+B?7BBnFRoUqiwqPTi%Y!;30b)ca;aT5p2U_d)JZTfml9tPDd-kDF$q&d`z{p6K`BgYQ2W3jc z0&kP2f97ah(tu6(xIKQsv*#&hzK-iWTP#A*MMh2&_xY&XH9xqIMg3f^^qxHJSAbHN z0fKMOc9CbPJ1GiaR*`}l=Em}QlDbQFjOvXWCs#yIx#Tk09Fu1zksi)3<*1ls%`#Ms ze7SNWeH*j=1nnGbSxQ1J;+@$JBM2n1UjU1#LW%^k;gu73_zkx8S zKUI93VkfuTT@kD7XMe6qW5V@@KIdhySbe}LMtWeN?2u01~7!i38iV&{S8*=@vc`chAGw0EcY*XCk;_2b^yD^KJdHxa)3rcA|gWsgoF z{)$fy-NgY{S$v^ShJCYDVl!;-fd=d8Me=I19g&g(P8Yla z)OV+$q3cACOd0b69rdN%ho>mjMz}7OyCQ?3s7I!#2rfihqD=Jy#LgUk{3;jW(pffx z+x?ob6%ySOiJ>wUqUmJ6nHdxYEME%ziJ70ljf{lOFZ{fSN$hou_`$usI&j;CrY~)QZXCN0BY#)@O!l$*hr)EjMoZ3EJ zP?|Uof}aZf)*XjnQxv!j{hE5hk=mUjd@71ypB0KUz?Y4HY+s+>`j+$C&yeOR%=S<< zo`o5+p(OYEOJ2gtjBf++$a*sOETGzOh9PlYN_ zZOwK?XutXy;}<*gZ@E+cJ-Y}rAkf@JOFukCjF>SXPc~}WsleZYoscKye_A1! zIJp34b5#fE8xNgw6c?O6UGiZOW+mXbHRt^HCP0@~%VFK|w7^{VG#9)X9*Yw-R^)7n zLw1Y~PD-%u)zj5ko7>jRnnEZV^o$76f~}~3XEk~*P8?^8>;|UR_bAIP`Ue-6nuf@x zbSQLrX+>4Ihz_Kmbj9Bse;;nB!jg(4l^j!=^gb@p2Ag zEAOTAv$zb$*~K}6;7v<~nJ#Nw3u4YQL0LjMX-O*`=ZN5b-k`2bGp@Lg8nm`t)P*wC zd_FBSIjeOFD0fJnzwI(YLgcA>HRFM!-(@z$Yq#Yj*8XX<9gnGQ;#3>2a8uh)H4Fh! zLFdv!&#(b&XleADfgLK1lxVseW4Sx_ln33jgj~@$ev*S|g{@hwZ>hJhN1Hm5V|wSg ztje`On>_Z7x-A2KkNZF9%=xiBXqgH4o|jt7GwYsC*f7JG7H51^zx`A>g@{Mpj>ur| z?0Bfe^k!n*W=2QJN2hAP@oUlx!m&7g)5e%H`&8|HKJ-wt=E_n$yfrbNBySy+H(7Gv zdw)H>`3aobI&^J^RY;#H{5afwUe1%Jbs8jmq>^MKl&xJIzmA`S3xzlmyf!Dg^jU?t z)jCCal3r6q`E5>6y9@_PyBPGvggU8f)roWtq%|jC`tHo z)^2<~M@TKzc5cv?r6KZcZ+Ez+3omNspQ_J4!+A2S2a^Q zZ;~bucy$K{XNGyfc9ymhBHiQ0Ca%H5c_Ux9;!ZcDq@K`aiB9QrI#d2Z5nsyWd^kvF z|LdqUFG7bOJf88EyyWq>6cvjfm8NbVLSD+XG+HSe%oopjBYqYC6)aj!)=qZ$BWcaS z9*G(Y4&sBm8AyeNP8|eFQF*aMnAf*>6kZkCQN7nyb9{gA@~NlJdd#iMj%6+8zS}@+ zYEmjK;Y~)3f8o`Wv6vDchn7wu%z~=c0IEQAYM#J~8G6XeuXev`dnd1bYF@XPksB>v z5d7%*#D2_OCrc*N#AQ>-yfZVptEHdrg(wpp<(H4coC-k{ck|FB!oVPYzby62M?em* zjJmE+cr4MeWijRz8Ml{TxMPwnRSJ`WxUg^*Uu$UUD;$|b_?Izd*u*6gzAOkQ?prXl(p#gAxO$j~foPY2b4_@a68K);`658xZ-BhuvZNrifOS{jNnF z!au*1)4R1eS>Y$XyB6)&zb$}fLX2vO{kDv}tnh2lOIy|%c`EjaC53INtRbwM9v%g$ z%rqzx5?{YPB~Od$wA*UJ12fi19Vr)_dRVBoSC!veYVDmzMxItewIHt()c6i>L}#~+ zicc;rC_tJ>8gxNY>f|x@yH6g;#yWNzr%3ekUT7MOl;)BO3_$P}^r7UTyz90#)XW~gT^j{B#Y7B@ zB*xqjoHyZaDRU{a?^}!qRF`|sJS~)DbYz^>kbs~Fo?!In8^Z`%@KTX#asZD_EwjGO94lom@L7*Zn(yRx!$#dUD0Lo5t4`F_n6y+g z!Qb$4A9R@6r}$>=1$zd(k&NJCu%;@VK~%3RRw-Ec)P4K8x# zV-DvOG{@eT=WtDtQJz_=;=a3cTPkFuiR%d|F!L>hkYqt$h7Q4ZpPjX)NAYmH%|kKVNk2 zSp>fP_ifgFFy(mcEfY84BNe^DM}-pq?elWk#qw0?1gg*LRt{gl@TTc>{uwNu0^wtV zUx)l0;Bv#Q1^)k;$v;-t@$l|hf4@R75{v(C-b(N+$QpfW_x768ayjMp=g_X&CHnmI zeY$?cJ zIO(?k%p0CZz6Eca9^E`RQ`f_NB2V`Uph&j4C0kF@-rH#=q9BT2zeJ);2 zTCjn6AcPeWpc$Bo?q9L)_DVIvTF+E71o9 zN`=I-TX5I9I0wrz{_|8xI~1D6XZ$VU-^YA8XAs|h023-HD8AyHdF<2fVe+cB*=_pJ zV`PwSF`6>S^&PCSv2P%$NR14=sKMW@vBht^MW1WykV-n6vY7rnz+izMe0ikde$UT* zo^bAZHo(aox=l5zpt#s=ppJKP_LDVBM+4?QeLOhVSsu#4cQ`F^Hd$r<>cv+Av-N+5 z(KbGca#=U#rLf2Xmx5*ZYV+YVmIi8)tnekK!QM588k8t<$zxR(okYRloQw=xfAq9C ziC>2RqIuoXUww29`(|JcabC-Ic9>S@ zz)b7mU?Q5bg5|A;pl4puHBqKr`9daP5h)AezoVU$+_Po1*7Ww53@;=9PrV=bl3*Rh+olLHBq)wH55=e!IbW3s)p?O4pan{m8@7jU6)2ROraW;b7iwp?= zC+d2IDA%XAS-nUD*SR>H7QoN~nIRm+A$;-ZC;KA5buz$w-$SK%Qi* z)sg(q38js6WDmv{H6FM*4rcUP9#^CwLVy51wKNT0rLqA9@|;OR^Q3S6>?#Ior+N-` zI1J&MnDLpqS?`2+j?+X9Rop_TO#%Zt!iyCHaoi%9Gv{_%obzd=UIDLRqn1_7HQO3~ zXC%_E(vyp4igU2$u2<$3qDZ00GW>_+jmO7K3n5kG+S?Z)5YIA$B;TaE6HV9-f9uUm zTc#*mXkMoT^cX4y4>5Hy;JrCW_wW+DS!dXqf%z7x-zr}%#DsmWG$kjeeIXV2(tC+i zGt7095SVQS4;2A3D|6x0Py2=7R95d*o;~ExUn#`TGFa~>&?`}XtxJEH;v(2`3P0s? zv~zzMdh=vfwE->V_6MhbvPImq>nLs@T+=}Yiq#n6TyQ&G(UX;1Se=KTFrQxn^cXuf z(~COU73cP>HRYch0BfnQyipVgt>;!5r~}PSRMwHxMrIvXRe!m$!aZF)(Fv=p6uuLv z4X@`u=frf~i;#ERi-@@GJEp$9Njd9=-mc1q%^itV95q)|5URUTD z&Vxb|gtw`jB47z5i2K#fETuyKd7ls0V&YaUEyysR;JE**elj~Yae*8Jg1xL43ydT; zj}`(ckc($=>0o;kd2fV`8GIv&Cx`|ant12`lQokJ6Df>#u=?WT7s`e3@6*&z;&WdU zUp=r^j!ey=)#a{=B^&X~TuF|4`btjzx%JLq{1aub%-kV12IjEb=h=n1M13!;lU@1c z<+0z%w{yxgl88j4=EPf&NXcWoIBMdkK!!cL%+H2kq(Yc~D2Wqo}8638jDp(V`q0<~l2p zh)*yH!7zxY(S)ymd;li#VY;ZxN3>rjlypPoEfQ7Y;9@7^UINX9~8dejuwR*Jt!m=ww!-a7L?_dBeMrP1uo{*iyl700 z^Qi9`I4(OMkB0;+WUyo2YNyM|j}&%4X+-pQ!?T}*tr z8;uWND483FSFiaN*G_G28elwnKORnrARImkH@MngL1G!4=#?XhrH<&DK^Ef*rFlWy z)8kq-(%SiGgxNc+)xSe%-#sh0wEo+EF+GMqPyAtKYc!ol=;JTc1dpB(Ji1%~1DV_N z(7&%`BcgpVH8VFr_h~!N>g)uYQS*}4 zog^{Y$O+a#y+JUNB=k%2UOoWxAMDCv7aqd`r#h!ok zB_cp1Qzrd-6&Zy@oRk>{DFG&E>_XQu217Hu=cn}&WXm}va%)=b>yX#d`7i~&vC2| z^~c8R7q)GPGEYRD*rY@bKkbJv&AX4m##&Ighf)qn~LN|I2n%rrEJ|is>B5x@2k^J-PU+1QQ+Z_vZ7`S@~h z5Q9fMOg+6=5YJvlWp5Fb6`XKt+P=eNoj%qCC(#rGRmQ=#^n*9|my|!gOFqNvDw|h2 zP^Im%c}3>b6WYUiqjVsNwPeKiV$i9EFY=S)G=O|>s-?deNW(dWstXD^#albsN@0ci zXF3^b&=YmCneF)`&0FO+HgY)f37fxXF@(ygs4(5B?uWkz1-lSuft!9#1zF#ub}oZn;Hd#M>W6 z7@w;>UClGMZ9Bom!6o*Tpz|QAH;pehQ(IeZap-%xA(2UT9)9gwn*~vn-@%&q{yU)w zHXB^&d!PM*^B1yVO0$xbXQxda%II5dE+2DP{&U0RA*DP2is^N{)Or04 zObmJShRi*_s?45SJ_kdO_{|vnA*PW&jZdpFt3%dF9@0BFd{T>toq}SfxLrvaYK_+T z`YTmM>pqLF+Lo8Kw)i;ej*ZOdpPUx%FL7HihuMBe#uw?adA}JE${@oczHDbk5`Jm( z6v=Z{Jp2I^VT|y~A}uX#jY*Y0c{Qy$*()>LaoP3+>KXgdpP)=0uc~$xP7;|(Solyw zzq6va@)o1qm&vbC)NQeJ0K$RB=XZ<5CBWyV?WbG zWH66aTO=-jFVWJ(o+R&0r6HTEE}scz=w2NrQK7l=4odEmzJtQpYbC2uc_WKjqxjhT z25>sewp@?_7S1>?yZj+p!8B)w zeVG#Ho|1W;0y%(#>PQLY2ERSCrg@@#7$Wfzv4r9JMP>&h)_5gn1Bv+QQ!2kzq{T|q z`heK?KE`EIc&7@xKCw^Y!-^G_2^SqX#!m#j$A^A+ZaYH=BW2S0OW|`(&pI;l%}vFj zpK@6C@$8?LJ=!cm4r-~}e>}X_743&Vd5I7v1qLgya*fhUXJY(FVlANH6Ge5jmWMM+ zZPIouQOz5rsi|&7tv49|2YQ>sgV_{k?kXB0G5OM{jz8f*y&^Ch#$H%tuER~rSsli} zCQbMkcKfI;0eXY~oIqDxNa&5L2JF}^?_HLRNF2*7XUCyx{n+i(k9`@;_dBVg6FM$# zsKJPn@uBsSCP;>;Q>l(OZkccOJFvCKZHa+isM(GFRxOUBM+=upM6HZ5IPRJ060ST}5g_7Xj zy~$Qw#1sw6l-5yCn{IUzbbGzomnyb3miYFRbDu)!JNyT+JIpp*9$-7O(uU~2`r<#v zkFNdJk>&NrIEyda`Xz<8Eaf8JgGC$}$*)}I&&S~ElicqUmwau}n@CXi|1uJSgt31v zZ*YqeU}Bfe;k_C_<&R5F#3gq0e6poCh(qki?|QD@f7>W~wFwS_$76Bw^i`yFS&{!h zh7D`^mcZ`}ge_?Kwt13yC$PXLz%YOQ5Au`5M$0BS*6tCv;>=h%F&L8#0@0}8KUui# zd+~RvGz(L;k1>*H9BuyQ#~@W#{5N^V_S*hVCiDRL><5d?Vn0`4fT3>T=1Xhj;IHQy z16h>zU;jzAv)^Psmv}6j`-vq9;L!eR0BZo*1-qU(R_+ic9xQNG+Lguj{lBnG$2}Os z)_crud1*^Z;dGt5=$y~-W#*^$$4SDzp_|FQbOV8*A9Tv$!(CGZ!+(CP)y`h}7gx~% zNrPdBcT+W^felhF2)Bpdn?3?Ea4)ONnE}iXLc+Ei|2};PzEuVqM*r<#H}RmTV)WfJ zX9ZbTAY~Gqy3Ja@pRl+?gVrpY9a{g1&;QB0(jxzM9momrn*ZPopx^#4dhrLK08je= z#u`SW)WF6P|GbiTh^D+Z*1fDEA3f#z3~-L7KTUXV@-S};YbGx04(BrY6bgT`N+^@T z&0_9`akzhfyO zB{8y5+LlT@CFe>14S%gY!6~7|cx9(KZSKVW+=fdUrQ@2CND&6m5ta-&%D7IgkwVnsl(a-i*K&R;JuN+hg1xCsdiXDi+<+Lo^3|vRchlkaplgFU<0< z4#S$*r0%W^jqPN%o!+ZT=@cuxXe#a;OyWn-I6JC1yWE`%G!Zz5tr?m$8x&nm81_<; zr(xRgBWmRl>2qM5E!GTlGlD?{ueC3$JZPwN>O<&FE`ed#>5Y^v@pgp!zo1v};}#Pj zBt%w&4Nt+)A% zuD1t^sc-Yh~&oYV@DR^Lva%EW-n#Q*FATf~Qrc=>`tt8aWXxa(V%Ft%*CtcI3} zGR|Gwbh94#3ebxuI1I7=q&H_IkfuYXYn} z>Qq7@#Vz=k78ayw5tb$Y9ZJ?94lNYO9m2?4H5aGB}co0_}EfH0TjU>vRn zLLDDKNSqdERIT^5RV%e=?w|_N+r6)6%dKHycd*ahi{P0lH9}`4@&y?%zL}hKsl6;t z*nBVN^yfkKQ(4#L;FONuqI$nDwNsIaP@lTn-Rtavf)0;a8|sZsarq>j zr0&*(r0M$h@FmOJ|1F1UEL~p~hsLsZ50wodmT#3FgLPrW8I8|z55WGbP9$v@Y&h6@ zf0%_1syigRxhl$1EvrjIN?MrueE}{RWNSZx$tVR zi2jeoW`vnqFBNntqG-BGQAgM`r_f4&(t}(yH|I?jtEJlM*N8l922@wsZ{hx3 zi=SG^su_dopj_JrfQK&_;S4K$B_Fpc*_&=eK(Sj~V)T7~h?mVTAQX#YeaOq(68em| z)yg~VVP|WqTM`8c`r&2mxBbTuHW7Z?t6ybva1e1cfkIxsFmR!S(52!pcd^KC&;1$v zHKEVCt(&Zp*p7C6La|1@FEdEo&&bwdxWeusmC`@Eo#}2_tZh9hN*6#Qr7sHKmZ6c8H#B67FXscn*tjj*nw-rw0gq@$ z@xCRrp#r4w;Y*(GPIv_9DBNf<@Rdc=+y;A2Sdiy$ZxUJ8xUK?DFWy`xz3ymz)|m-k z$u#UNa76U!l2|#?*9k2|>V@tTdm_f(1$Sb`y?Sw)?;7uSu5Hh14>w^EIwKD^ohBMJ zMvI!=YO6KWy;i0Clj)Y~#Sgk!U1uJV@?M8w*-A36B3)M4&2#z_bKXDQjO`#D@ubJq zBI1=gcrubL$a@*XdqXl;v+oRPsy`fPo)N5lB!R0Aft*do2>8@_*b)K&L&%L`=VsXK ztW8YdA>=HWjyQ zB$wIAlK1g39Y&b;M;DWqQ0rshec`TybX0}RETONdqUq~34GqXX4g%mDd!p#-mE=2U zrer)98w>3QEI&?e_?;rFb@E#3a?mHCHxzBx1e4NsR#41+E}ls$#1jb^JAJjL^s8%Q zB1O__H+e+`q6*b#1u5r;D^JRk2b1smNp+$qwXsuVQ423n7`2o_C_+yQO3*o`^-;`3 z6ACsH61+{>T>#rAEMDFD&bwiVolcyRzBxwp2(y?ApVCmZbT{`X`Ttn^%DAY$?_CTG zQc$Ep1w^`2LPdm;7U>cJX^?J^Ht6n_9>4*H9+VF07+`>rj-g>d7+~%hzxe(AfA`+c zeRcN>bk5m(?O5xqz1Op!eU9mSzg;xX${}TO@mqZvdR)E$3G4@ZI_kba=42AbWo|#|N?$@dVXB@2``EH?oMr-FvFl9z0S!e6u&hAdyr1|j*HC-n& zD8P8NMFJQAfr0f~%iUawVE`uefU^tGF0AaD8O+16mqKd3w%=Y7KBk!q&F>LW@vXD6 zE*Tn{1t2(BMsd&H2j6zG$Z%&m--8n!$07U{*a}KV6npyJ_tNpgdxz$SfT)YM;v~18A#YeC5bAZnFF*8LTf9{>g}86mbqKY1F7n&&AJao2v6d@ zu+JYb(T6fN`7Rs1&)`*oWdO~icb#3V$zXY{q48^raV8|vPqaq5>7?g~xGZxQ?}Hy^ zj;nSJay6K21TMCJG{Mf#uZF_ZJP zJvd%4-#v`~*f}`PKPjSe?n6b844A&__rv&-f-^L+1W%rSOHIv(G2#BJ|&Ud*;8% ztSDXb0G?TU3oN(pKrE}$t;KFGE$QPiNrQIx{`$b^)@{ zLL_G|6*7s|Ps$Y?y`XY)@8`hMaR;bhUGbHN0pi!G=a!ZDK(7x&lphfuIR%BR-yA^y zq9i^f5)AIA#F3HypQsf{W9M*(KL9i}-6<}`{6S2Vnt~#Jo5}gSb*c4PQ$BdyFi4lo zqaOmk!oyU`tZJ=%y92!Gb5$vO|JIn5HxQ)#NSO^CqS3h~6Mo#GqfCy9Rmqlw(52X% zbbJLf*mO63jOgmg=8%wc1Rxj;7;N#0`!09u<15Xf?6ej)`fhcAw|(f)%S6lv4u1eJ z+wImQavcKoa10=ghW46fHWwg`d@o$#9|qUvxA-WQc9AmH%G+M0)fVC0x4ByZz+;D* zG(5X9*nt+4@vM6Gvtw?zNJroop(aujM+*S8Xc6gm70^avfB%An_$=_dG6KMbtei8; zoo;N)nUpn;tEr)!mvb|kiO-?|`dgmMEyOU7iPZ+bv8~q#D%zR! z?OXQ@Uc27!Up}%46$&GQ9PH6jA3@p2H>@>ad=cg*wpb<$VlLu|vg;N1j|HcgII?;| z?Dc!rI}#2Ql4x#68XExm5O3gRdqafCIJpAl@cY1wu@`ynY~?^t8~g3X(z?6xG@wmh zKIcmho&tyuAntm&G029_o!oXv;c{mMcr9^|Oz$S>Jy+}b!CmLa2tF~#==apK$}j?% z&sp4p22?d=+kApF=1lqU6gt_^`W=i!EB(kMrwz3-`OLf3 zmvNnsrSX>W4~HaxjRrq@q|4NMd7xa=obdygVud|F3nRs_wo|g9ER?a5J!RFpxO3Tf z8nD&C{2(>^&z%+3O_A9{N#V6>+qCMxk2MHrW13&+x#J7UN`%;gBqI+$@RhPw(tCl4 z0V}8YW0(IwfjE22pmJQUW-N&*xutZ$o(^mOLTt&nP#b0=7HSRvBc!$u-rbg80rK>ya zqq@$Zq)lvxe@;``N*#XZXV@U{@;hb8f2lO&g=&vgzkX@XDiuJ}#XOn~vh8A*Nfwmi zwX12m8$-^Uyy3B<`ui#`5QgdhTZka5D`m%{7bMe1gTDkpx0GE54(5iiV^$P(B&jMI zcy){({T#7(1F%}sNNsO7v{*^NlN;vPfb-b=2>)g3j z{$y#rfd6v%>9Yw^eLcDZ6gq0z2=c4&?h z2NYiTgM-mH<;#D0BY)HQrzR0HUJWuTxGQ>vdH@n=t?%k z7I7Q;TJW@$`l29!8w0AOATIw8CyXXNM|ooQ6kPsme0%!+qdLxoeA?z9xS=-@&-qCr zF0{F>H1guKhO#g7OXxYquoSc4I9>&NKfc=k$$=iWiT15SjPIiz)@Jl6~I*1_GcJo=%L`shoia2^I4Pk?^yE5zO8 z&SzJQ0?ovvKD66(7vF*^R5kwPH5hzv11DRqFU zCr-TwB2QrzHU{WVQD*o@*rO}8CsPAJ?89MKzkBjFPD!@I>p#4|aAkmSceJrdv%9Nh z+I2Bpcj{Ivl0zESUcAZbG^Bj<+&uu@OV30Y+OP9P&PaG$d2I;j+dz`oS* zi{I&-%KNpw_V!1qpTquciU7|9Ai3FjL;mP|W5xY=48GGAcr+K;>~R?-Vkc$w_AVX? z!^Tr)a)v`~2?iOfAOwTWU*cD0Mg7|E9fE)8ra9_qZ32%04lI%r-t41Mlr+S|E7yvslK^no3-;kiN?pn!AU|UG%(LI^W85-QjQOL^B39%j6bc8F4MP? z{^KHsK4oWgE#d}5)a{U{akmG+z$mfXE6r_^*rVqE0`tfvn|ywk@OV?y_#C}BMVm|c zho?e+*~3oUfH0^DV-5uTwE$M`Z%N}0*!pgy^lA4e&eVw81-u_uU%xY5_~;(*?{Iw) z{C%j#8s!PY%S;)1r*?Erc%}4!g+bXBHw?X)%{CmT~%~?29Q+E?;2jPdVyzHP@MH3;fC|O zIiMimYciw5Deff3kv>uLz>?y;OU^4=GzAp9YmW`uMtWbtd-DT-W$xT-yN#vy?qxif zPb;MZw#n_;$ZH&p?(Asx)4=JH5Z;GKgR@K1e%t95>HOUy1D`MN={qf9c-{JK3O`@Q zd!*1t7Wv{5UVVNxXY_|`z$bKsh{v&z<1s&i1VEl&o>RSncZ**Mxbl&8-rwWx(2WG1 zCV3o80%_kTi#%TZ^xP3G|3r}d?lPM~8($f0ye6YH(fTmVvaqCNw=dSHY-*hyi1kjE zsWnx)q=8^{7vPZeR65TEt5OKPm&_Cb1A*9Fl#XgMcbXeF4jply!~b}Uwtip7jQ7og zYUxvLh0#-wyGPJlONq_R+Z@?Bys>eG?}Prw5p zPB-rtt5nVSNQn7bWc4OPTQC5c0E%K3t1xovmm*xCS--Zw3In)CB)O%W+`iH)n6H=> zHB)>uvzq|%XFU}-tL04mg(pQz6$sRYZ=3*8Yko05ugW9Sw?hFQs&e`Rt%;~cr*}D} zij7SiFW=)TfIvhSqfcDgPAqAVAE-yBu3*eku1z8GZ(!of%>g|v0D7XMi}l~0c9-00 zK2io)ZM)&bwbuM228L_G6Z{KIw)1|MdcgC6rc@p#pAe%Gt-!7^J?4Pa}xP?WT zKXusS6oX0B_!Lw~_<8hch?Z~2B)!v*5Hr(y>)R)kMC~h`Po22Xl48wUzHU`zMQO5? zHYvAwOpa^gqtLPa?#MIz4;)+dG(@}d!M@nj2poWw<_Us}5 zc6sl4h4YYim;^&e2p4=>tg>yv_`xMm%$uYTUKO1O5df{~_8%za3nkAJQ5%w8fnnde z?CiUMdfn*=SB|#N0gjHGj}P(s^+*=kv*MDHA37sb-urYgeW9`V0N06c(M z>4sO@40*TZMt?`siS3Dc2cbtKzJ2@P%O>jAZv&9^t{;_@-8D12bVfcZU~`6}v+Z^* z?BwnTwch76%Je;i6NTn0MWBngA0HQNUmR zB+Hb<*L3C8rLz?2BmLJJ2>|Eqh(p}H^wGN3xkUd?pMW-SCY9cn%m0iZSP}4(1zEmA zqhkaZjRg5DC{&zRMf6U~uq-9P{vs;bYpZktF)ODnEfh}y*n5);|CBE4^#cwOWkC@k z5K%_ZiBKN6$I4Hljl{AN(d}s+pe9bTqiy&v$7 z^&w^ocb`x$cEbg#!T3v`-2Jy#3M-71!ike6;%LjUNJ;7MVB|SF@E-I451dthv)T2= z``(8<<;PhP!1ubT6pp*@Fw^N&V|3OgSJsB}P~CmEBRB?(D546I^7iV5N%17yqww4_ zu3GLyBAR|+AF{K1-wt~APy#L^9_yd;XwZc?!K@W(OBF(*lMwy#>wQv&M)8P1oAH2r zOH~bg;5=&?iouORLrv9OsZ;c9dipZ4;YxD3WV0Z!j~zF>PPs#rVW& z^}+M%9 zI)DeXZLMoZK&!5jE#%DSECx`ZPPZ)^u5WAeVGcP^c@=zh1h&x>gNsr2 z&BMy1;@30eylhzRfY1hRK9dF$*5yDPO>W%mnty&3bZtFc2X=P(1F?@vPKSkToz#yb zp-ZIJCk!3TPGl_ryQG;;Bv5IMm2Xn}veHdJyvdQV!XbWDu+|fX#`k`C=xOWC9}z!M zs~-&?Y`}p%)-KU209vzx;K7?n@g}=jO-A8aY2Pg2?p|_qN%1Dn3wf@i%|w8);`&Ri zDmbxK^}+eJi#cBE$UwGG72W4jpax6&wuZwJ3qk`xV8(%XUZb5NQQy9g(oJ$Gv(fX{ zWiP@fw-7u}T2B0pvO$?&0Ll@9r?c|geKb`*l|mMW8q(J+{gREmRB*&9iz-WNjS*V| zZF&(UpO7o{;*Wt#a=HW8A$mhA8!bVD_$|Io>E8IpLjE*9#rDm30Nsmem2mSzzGa0i zA$0Q@TnI2$XYngK30Wv{x=w!-$RCp)75gOBo9*@F!KM~~1<^?0ah2k4G;>Zs1-!8= z3cN&DA~x??e>w^*&Us?Ouq^h}Q;idcTd5<|-}%-%0!11wY0n|@hs@E$!W{Xk0!OwO_M;me
?a807*)$ zwpmz?j`Y$!TepSH4Gs%pp3tk4Zq1d_P53?&!S9@4+wM2;5HaQ7qjC#H3NR6&z-o@l zoen+437k|!?((|X?1`p?2lI|4**8O!$!XQ=%rsb9-DbXSFgWLDbdIi?0hnHm5pdFA z!rZ`g+^ z^E{6Bwhv~hr9A}}%F9wkm7lU>;06es^6$JHsRU7$7B0w;)mwa37_*Eh2iPL?hm1qy zy4--}jnZfj;+y24Z%k2&mh;IerMZee!f zb7q-Gl!uK(0w+iZ8S1VU=K+>y#@IGKYClNUpg2)}Hrco8c4+*}A_Hf=6A7op53DGP z(ZWcV>v#Z881`w-<74p{tbDDdqaG#)oFBakkTy0Gm+}UaJ!rU=+f_|*mdD}dJ9Za# zl`4$dQqt{f&9AI|65R)1g3dfe&b%J+s@W?aZBpXdD3(2I62HyY)L&zSgB_9OgE++X zQ)H4{z|~$Q<1^scY^c@~U^G$O3kSy5C-_w%JpPx+9 zn8PwB5*~NYSO#0J2Cm6{X1}*dDM4zj-rT}$dtZ@j4#Csg_eOmk4v^0Rh23W*hCP)5 zAUDpNWaQlMaO*KF{N#M$H%5?iJKl^{d7jzy*}Ypg{IA})b;B$Y!e&-;=l3NunMtk& ze1ba!abuUwC?A!C-MZlwlz!8cht*ZWOmBE*o0M2#+?i7ky6-8)@X5u^$Y;yRZFucq z7mnnZHWC)gnZL>i_kvq%>`R3AAw}kPb>VyIjaFl~;3N)_i7W~VH1A3>t%F{sGtD#b zbPtPEpKoi`^~cm=`prG6Dt3iz<11?*8^;cjS|v4V(jK#8RB#w%G7b2hYo41><6FGz z(Jb%YI9`2vuf{Ewecv_QuhG=Pas<;;L;A`OzFOO<5aVm%uEqp$(~8Jt-rC(u0iR^g zQH1v*CYdcHEY(`r`M1-WUl#UbnfZWO&&0bx^EPOWt99p zP1_9$5S1Wl;pTGiK53Nk#5_Z}?!e2w8pCMgO1EG2@P~;U9K`T}qE1jgw7!1kkeWYi zCzo>CDtBMzLG4UmcBfRPid_wl;LPwaji-&S=5xKsPNvAtkz-NANN*Sv`Xi9mdaA1Q z<60N=oUIoU)A5bjqsfqs!#C|-c_&9Ng;zRRB)HAtlyb9sK|W@{ya$qc6Utw!%u&_! zZC?9R2BHkisgR%SjqHwTl*+_DodB_F>SYcjw(Q23GCwv<@HRBEz>9j0nOs44L*DX) ziyM-a7pxW*wMCznD`X~5?GkJ)XgiQMWxQoTL^O^Ybi>#7kDqli?Itiw8@{vfV-_=% zGMccK>=tHyY)IBi-np9$OH#<4{W3e+ucX=Hq`uy%09izPsOuICm_KyKUN0zxo`(Hi z$y{_eRU9Gm0<(%5CSZl4R^9QHDoCOO7|Db|vlX2&qwHM!-lZ?#A$ggPGc+ShH?*z8 z(hfbF_CkDKd_6rj%Rd)eMIS#He@Zu>ClJxO5N}4>{|S4(cj8UvV6tSQ(=FZ1+-;tc zy)WNlEi@8_Ii^k{=>s_$Q2wq^u2=4j@pc$U=aX`qFReWD;GA4}^KwOoZN4#MNBjp- zTBM0DNvEhAE9R%-Tzx-;Ga2TdImx%D@V>D{nlRP~-rgYmDQ)khk)S~k^u961sHP3L zP+zuxY&se1=bKDlPom=6_%p8THnaU__`~STR#4gP7&@MEc;eL2!*Z?9l`1)9sSnDO z-s;13x+DGl9wQ7XM{uyOSxW|QE5*DjBh%K*fqUL-e%&8R;JxDf(5PTQZ~-=+o6pJ8 zNFo9rg^46fsprRJb_O8DZqxI$d)b98#P=NO;~%ESx40>D%+;~++OkA49Xk=iLT)!V zzdD}1lk{@uT;)I)cnRyQwdhH8#?(>%Ynao?tJ<>4JHIn%_Zu0`bho>zL5=W)%jGU3 z{AP(wSKv+WQpz&bBV(1rjK5Uz#fV(`P{q+jbH^>&@|am=x;?dB&?hE&ihAH(C9C~a zJRm)xB7n-%asW()RWw20k9G41`H2pQ;+bh*{G2@SL8A$A$vg>M#;nM!H(#o5 zAIe9wN|RX87t=B6s1y7uCIAe#(hRir5g)mN%jYbBYy64NrSHoQ6Z#+ok)xvOw~_~2 zjw5@Pz9S`TiiEgaQJ1C@Xe?W)ptv7Ek5>j;?^?=`>fuR74;*v}`hXD036sQ=e{M!m z;p^oQOWIsIcrHAWAH95#w>gfv>n0=o=PvV$A9wKvS12Bb^ejF4*f71|WbMO&uZM^C z!Bj*HAJ18`qXPd=M!XLU0Rg}(wg04pTe#l*Nm-$9h;Z4Zz8|=&Td(Z9I6TB%7Z1c` ze!}?cbq3UxE~#oJa#oD3UBJhX8e}J7qLa_rtH{Ox}3swv!y0ChOK?8>3Ub` zCZlQa1y|T7XboNbBrpbQEtE1Eqk$x*&Tg2rB{7@aU*NV!3+2(3w3UwDQv#G5rxiXG z<*11Fgy)S;az7qkPMmJ8;Ha3GaVl{JV>R#)sK2-n*(DF(a%6cl;Q`k4L7u)6c^5QW z+H7swvV@xXQqOi9XpqgCendbUvBXTQoLkl#LZAyKR5!QSUKUUT!!92)_Z|<=faiyZ zIIfdGdg7K73ba*^s=P*4O3(VG?Pf$NcmFj&;g7-q#uv35FuWhQ!W4pO?6I=Lu1KNg zN9yl}T@$<^kJHxViE$#J?zq96xNJ7Lw^+5(W-vPs*7Cn*735PBvWw+aj@1EYqMz1}ARcHJ zom;Z|wGaTc9Nhd}qu33sFx7wH!NTMa zE!t(L;;UnN(g;FmClqlS84d?P23Cf6J0o7YW@|4QFq^R$0AsxN1L(IW+sHv-rhQ!4 zoqiMAO5d%ag2x2FQ;>xawJpoDb+kRxSf^odt7B0ZbLrJs2I-&1=UqdJ6ZfaYRn6p# z*DN}D#y~mHn#GwWrY*u!9;0ss3ne%ld^x5wyR+%g0}SyM1{%FNc^)|Hjv}B7e4Qc5 zXPn9sUfIBw+LxFRu(>r-upZ#lKbSPcRQ+a-+`wUz>%{o!LE@J^$kY0{6a_)E&dqAq zP0tyRZRvwy4lGKQ2oMFLS)?ncGk2I?GOUy(q%l(WH_1vnoUYx}ZA7yVJ|V8zj(P8s zzzN>-&Av2gLJrkKoHjAD^=2ei(Bt7rlABCie$w&vP$b~y;?nXekBH&dL_;6-N)j^v>`sHS6j(=C!ON?jdnslX z&zRF^$Cr$+=1U`UWk`~~vc<9%)fV!8r2-@ZN+3ipKBd2OPl-Lf;n4u!J>%5iE#T97 zsTMf#-rB(l+(y(X8O`s%5w#9}>@gETgVO!aEZ=v!ZYbbRZLh)lsAY8MMNF-qufQX!z{LgjJUS!2-SKw}xMTrg)h=l9v$QWR-+jGMO(Gd1AAG;o zuSeFrjJcMWxVDVq(ejwQ2O2(3)Xz;zv+46iTb}I=UU8nIfR}vzDr8J_z!2vAXKHMs z`(sIB!(@wJJdjqIfe`?avo%1rIE`0Gu*uk@T3HmGM$-O2>h_wr{Pe#ItNmv}XnDj& zYYmEFQ3zq~uBPB8TqN5JQd~ z%_>>SI=u`uAR?sl^d`y}mkW;^C?_R@st7HDzSi(($oL|c_NKV*hqckecIKgn(~ zoO6=MYu;6dcFBS*KHAiz4=D9&LX*NSZvBMC_T8P)u9pySg4xSDV*csin+T7-yOW#3 z)CmF(4W&wunma5ra#`QD$ptfE6|R6XL5U z$-ZtMgjSjQ<$&1F#2UlHjzvVux`Wb^x2;Zo+{nFLv2L-SaQ23gDC37xp&n_eixx`0 zB>T(Y*j&D2jQEn1_S5RP#adlRUZXB`c>5=(eGk(CezV{DpAeHM(|zV<;oZg3*b$)d zBR;kj~%KBM0(^c^_au6(UIg2y*O7kgE7rXb)5URx?y^>IhRO7oz9ddIF|DyJVw~;Pv4BQ; zGU0VX{3+zk<4sbL8{C;h_VY(B#mI7rI@FTQ%el&;H@R^w4jO9VuTxLO6_15p#T->* z>6WACKqE&b8|;%aMQN?VU4<&=Fkylcv#%&j{93GIikWq{!bCqujZK0Alo@W!0KX>o zs*Xfq|ET1(6t3yfBad>$cEx_0S9kGlKv<~RhEb)_P1T~daAUU2azZOp<|YzC?`Fq> zy|bREIR#gelK58jB&bsofr$KCqi{DknhQ{lxu;o1c&U(ic$(5uw-E{-u$VcY z^pm5KMfk%azh2JswTGPUvt6sP(ZEaUs$#m;2pRiG^6N0MvhU zr48W*o2K7BGvA!Fd76di=u8jo;S~y+SX7rIvwBaq$^8zO&jggxtMIe zFRzW^BMKNBR9w)+x)rOPg=Q2oJuWBRoom%1v(aWc)LkSO%@WVoqO^%T9kX}t57z2g z*nQ5`fR6MVL~i*h0;>RiBBm>o7eb$O9;^p!)}v|P_Di3ywwiShs}D4d_EG;^r<19; zzcUA|;1hG~GBf=dNeg@n=;TlOuPhu|;GrH3>t`cgTd)#usZ6QNBc*GV zf1)K|c3%vOfqY9~)`6JHLpWtZIPq6Nuhc9pJIMb`RX~Q>QfR$yjA>UCvkt#0)%m*h zd&7!n*1d|KFPib;5VuhMlb(>0J(|!puAE|^y|{wstZ51sa+TElvp)Zm>3}Mt?aP|U zp9l)LkRI!qE(8e$QydTSGgC(!IR2gg>ECEW!dwFx+t?bW$hqP;*Q@`j1aI)>IgNGN zGwTT(8Dn72p86b1EPFUu%?!XF=bRU%vm*D8y`!sjWzK0z!=5M!$8e3Ze`e7M;RJ#0 z+)f1k22)aHW1EL?Yc82@UXw4z-`Rem)sDGe4Tbj149cqj%jQ2x-hW^vwjo;$3vByPrgp@wlD>)#GcR( zUC6m7a2dZ(Rcr+N9da71+FB71c&Dr4PI3ITO!HvLUINY1! zURdV!gbZ2GE)NoUr2iDKf*4 zXlb6(*fKIhdJ>*N8e4Tuy=y-_j1|tLnLLTq+b?u8SczYfXItI(CR@lIUjFMDD1m~8 z{=VR=r|w)r+D_Fip)$Nv84Of)_ew);S0jx5MMM1X6If)RPbP(Gb1F_Ri|H8O&NdB$ z&fS^ns0@eZgGp5d!1yvj-~Cc<`Ioim{cx_dn}lvsq8eOuR`#=5YWR`{CT z#40pq@grwCjlZXDR)Ni%)1Y6qRsQT{Q=Z5WHw-aqkCqBE{<(Dh8bgRJ=U>UsfAm;e zgy~@Aui9!1b)8owkkuo!etEno^eb(7Ayg5zdWoz>?#cV#)+PSB_F4C64cCb8ddkQm zRSS?%i1qt8#7t<(LhO5@hbX{@|lzGHl3r-r^V*K01 zJ8YvoGBet(FYer!y;2I+wr+bgel6tLjd=B3FZjzJ4A2*ClD!W?UQ`e%yx8G3_iqRf zKIywwKOLeK3@&s8Q|ucf1TJLV+b^w^RAVYBp2OG0I#)zkRT0PCqCwwl)JE7ny2@58 zzkWkcVX>t!2YjE2*DjEv7M)Bc>}qSVIQ8py%@FFd*!2rRo&l@tW~1r#cQ($Zgz=ua zy9jEl6HDD!)eC<#4ke_jc|-fCC&cc_L#9#-4xJEc8ut66iQ`1HZ{askUbIx2_r1T* ztoHqZeSoJRqxa+3rLm9tG#k_F+r2b}AFgd*x?8DDD|P3YbGz_HzDdZlg-IIY8gjx2 zOY398+Wb=00X?iicS{aSQP*(u-GAEjqnxVx%lstVm=TQc%O zOOZZ0_8j<}G}tuQPCg-i^K}A;o@=ON6YY(Q4*7%)pwz7uDs}ZF_%AO^u;*ygnn+xg zrLYN{v1DmI0KOvmvd2*@E;bR~o_bLP&nIxkSSx}_C4pviY939h`33~RZ&>YMi2Qz6 zvIJ~_Vl?>?(;Gh`YkASpC&(qorQe~M#Kb(b4d%A0VF6&~-n*+gD4q#^qJN!t+Ke&j zG!G{)@U%BD)81(sjp3BxH|?$X5K6Vl}`vOPhA}ZEDs0U-vG5 zPuqm}j_vKRkGHJlgMLvFByjeA7P0tS!#xV&V{5Q+HTpt3m$A#f;$zrY&z$RCk*) z1eO3Xd1wtl4ecVB*C2!g))1+i2&vSC~`Yu?(HN1v(;h*A&%OG z?g;8Su}K;Yu~Mg}oFL)uipv@kgST#yQRsun@DXoAeTHm`YLUQkxZPSP$Um_{pppkioZ_Z&7w6dr7`Wj+;88!ZRYsB2h zmww1@V8(4s`rI{j+2<@hLi9YWP?Ra86Wez&WP|DycNS4o9NdG2WUU$ol^~D0x|qC$ zNGW}az+UJ5O}|*?v$b`FvEkty45O!hdE>6@>hVHn#JCw{+Si<%XJg}Iy$ieYF^35A zkba5H=S$1Wt0;Tl!C)~4vL9)OFsb3m9;iCG+#_8JLnq*#0 zR(iiYTz6pScCdGS(=u+@C6y_U4*zW7C9^Ktk`TB;4`t2G9R!|CN z$lTMs|9bt&@ID${BfWZ*XjlSydgWlT^{CBzivm8I$FuB1D}?0{G5D%bUaw~4hY38) z;4|o?cPV6E1HOqjhO&oofIR2AuM0gGtUN3!ZyqW4bMjq1u0fuCuxrL#ioZj-R@Awr zl>NrK3j!RquRdolZCN5%m7>lIQPC6;!*{Y!veuGP%G4 z*>p6h$;2@>I8g|!AfFRbat&<{h{-glWES5K?5(ocRXN#4*{=0rl`(=)AVE3_`X;{jVt9==ik(8@k+=w?Ai?(p#28HfGq z6bZ{58k*FD$wVX62GZz0NPK-K(0SgWdGy!bQ_qzd(t`p$Y;lTG_01!YrR6sU*bxtn zROvI})NICOp7BY_)29Gn#Hydj%yl+r0vZN}I;S(!Q%Vq?7&l&pYWnK9cYs4h2R^6sbsM7BrbF!U0pMUM%>UB5rp5tkFjH`8VNY0ToHL z1{H+PfCScPOhm9S`x_{x+1&$ewqpGwhY<~Y1s7Ej=$G9yCxh<2ofArPL(8BEB+X?| z#sfRiRDY;4Jj(WXH4T|jT7o@TsYMYGXf9K7>e5k&XqVFK8|Je;wkrqxa23odmwBzG z;QS@7Ncn)MO3mpm>COH96K~JcqLu2AMUePfP;ONbRM~BMKPy6N{@36k?6@B@Wxq_c z$!nSOj=@>cf-cJ473pHGlnx0zM{lnzp*^cT`|9%$7ZF!p&&qx`YM;f%MCThSCEqMW zoD=G{m0Ym?bDtY$=4<_WW$|R|)QESfH%)L=o@~}7TD5jqHSNwXbl)Z+3BHvgIOS4i zi!!5i7~#WiyfL5tPTwic3;EIHHcjPux+uW24k?vVQo6w(oa8W zAY?f%nSE;CC?w}KkW_Z%5TVD@bdvvqh>>PUK!}2*z%Q{>w^Gxu>F9p4|9yr(KEJeV zXs$B@KzsFS&emR@?NwYEZ8jk0xCV&^8&E*tE* z;s5xx?yEdxhF7u#LnNfqK>TcR;ou~7+p2#$GS+T;sv6}oqvZBTgjLSS?^JrTw$(Kz z&xqbDh$eMfe7<%Bz=y{prFll$SJI0DkC1XI5@(rt4lLLYgQyZ=`I!7ohXIU%5Fbs36KSVWFDvzjzG8SHE@OVXv-Djhqq$oDB{N(%lt?P3P&~{b{ zQD6!wAUxj|nX;R|3QU^4{7PnKVzw{W01TGXqSau_~f3zp}K~ zpKW2(Ki?i*bS(j(_GABVPS;6R3*t*OOTKk;fliFiAArtt>f+oPJBE`lM(=w93fnIs z%bNcFHR2#xYrR7n36|SxFkq!~3S!0@)zutrd?{bYP1*J;XYq!9PS7o%oy=^rM17Ay zhT0X)v9U3Z$B3_h4|pAOa1_b_uf*0HadC02Yw6~Mo*&1Jml_l-acHhBnKMKiQ;E<2 z7N~l=WYx4cZL;Ut56KacNO z5g`r(f~8t{p9RCsjof9iUIpNadOIJDpDShBbuX0cY7VDNQe3Bf^?>=FT||Vnsgar7@xE`rRpo*s_wkud*@C zx{UU}{U6)GULX{yN;t}!HF%o#ng>rU8x(;KdoHxIKHI-Wyiv}|2$So~@YejPZCj_8 zo%&P5wor3vC%dP&Pt7D&?{-IIG&A_-X~_K{sW6sVD7OKOf9ap?8N3Nd5EkFh>zkFq zoS!Xrh}8%;lYTj#W|8I^%V-wmw>p<*@Og!GKjtZD5qX)|@&ZpO3Ir+$5S|6pU`n^%<7=|F+=@UEQYK_OZFW;QY2^E_n&k%N<*;)p zXC`4#F`Z_%q$@&JA+db4tH&7EL}rkEzpqgZ(x;ihYkpD{ky_TE2&@KB1Ab>-KYhps z7F3$DXv^xJV^2B_P7X2n;`32w)plpsnhw@eK}W`%yU>f}^y)q*hpKP&#z-3hA%fiCfz^8B? zuyLKyCm)#2%u@30n%AssOUrI@83FUYkQxI^;lE1rR*R@{d?DvZ+#h9k#1G>$8ZxAWDTl#LRF7;hs+I^5`*Qwj{ zAFe-F)nZPA5$ehk58ooT{X`w37EtAl@@O>iiTA9?F6nb3!1o5=w#2&pE1iG;XdaZy z^exh}!|D}w+UNLCDK!4|!zZvq7fp_i#wWc1K={M|_T|mXG7qkHzN*M;86M_Vs$o(V z+ojSV;*Mn|rq#_(_ELtsh|FXIYx5f1E*szj*9%)ohb51sbM&@9&a_@c#(4D#1}@dj z>R_{~@F&*Q;nt|k$+A$}oifwxrEKMT$zC9oa0Zr_J&?Swy_&0liyfDVJk!IWu|1zU zyX-30n#-HMBDOv6jTBu3ichrtrk?bT#e_ZCtoD)C^CLz4ddA_sdbJhHEW^&uw$^|8 z7Ze;Q1Q*>LH4Ojw%(f!dR&PZ|2Kv#Q#+Eef4RR`Dy!~$zJ!7AQkKNc-r(HQT=Cc#O zd)MFU0wlw8epS(L^+>00Ea5%dMF54=@6+MqjjK%} zMiolX{3o?zLn=B_E^~B`qQtos>}DAXLUb+le6|oVo~8ok zsUcQ^|*DWNzLn(kBabsNHK&ItIN}s)QL8H@^ zF0_t!a#ha!N~wX?*B)bv?6qAJx!$Pk%tY`#{eFWAME-X9R;@OP|s>5nHC{Fe%=Anl1h$Hf32M*6Wd-i@oK&*pU%9mp1scNdDmWz9}y^Az>k_g^utPDHjNI#)u>&V{YPBEEz&b0=MjDebb-nXdrVsj0ezvi3k7i$Qi*$0XX`2N1E^O4EJ>Sf* zN^5c*iKF*)N`u&aQICO&%Fa-lzfbl(_1K>;-D(l-uBx5cWG@dPlG$87E}#SDUc&Q? zIBZr!sntKMV`%DLduJx@Z^|F_CKAay!(q^n3*Q*$TE9A2NS~ieA$B7k zQeIPH6`_9CctykXsK~`ovta(p~LD#S$q8ut^s3{~?Gl8>dKVq^N6TG}-2> zg9vNPV_|!eT&b-YYp?O%d;vg?3tP>id@KLYUR1qWGsHXHcgZ*wE50~nP*0hwh&hpNac}lQRa&Mp!qiEm>d=ZYM`&xxCXg~=gfNH z`kiAxgI|tLFRB5hK`~~!x($t*ORZntLhVcKi6x<&Mb4^*HH$a#y6FBExNV+b&}V1g zCgBz+SH~CfTwByWJ>qxYAp~K|PODjH@Gd+~pm){)moFZSLts*dkz6Fo=*!AXJ#x1hnD;1Jv)I0SchcXtbJ0fM`G zaCdhI?(Q&s@{{-f&diK{^~ot-s?iPu5i_-Hb2KG;20deYSc6bBnaTX;YlM+Rk~H^DgtXI# zH2paQ$t0BmjceQjWUUv9*gYsvBLp}`?avS`CypjiEoLohafmS@Vdc1%B@;`BO2^o3 zUp1L-Ou>mxymR!(t5`&yXlvt;Y-_SW2JFRN)$^l!i996G?rUMu`LE(J)G7=lDhY%F z2|gDj1wX5qbl?0@#Zkt2d-A#Lid*xG1|0F#R<102RI8Jf?DfG|AiKbYeG}0bLf{a+ zzliz{=MFd;AYSuNy+E0P;3&kuE^g?*YYRl168;DGx!z|7E@oFnB7=33!tPBmmNJ^meZv!jwCdSwM@tz(<_EZN~Wo>TR^oxiwllqY+ zob{Do)0HyzO_HZ&7KubF7aJ6S2DK*y5~2dZzLXYNlvu)flV5P^On`XOj6EihU3+Gh zKOhXWOf6>X!dL+cpPRo7VknAKKbaiE;a)ZMbL>0Dl8QQNeO9ZPKDHRf0BW%N2Ix9o zd=?hR42k?Gbi68+Ro1pR@W*5l25B92O}m=&?v=LC1d;8v@2Q_|#w{=JV^>X^j0LWW z;PXw+SPzKdT7mDhCwR3n0xjcB{8?tKBvs1zP18arL3JrT$Qdn1ta_0z=c)@gqrk-8 zcg4k^Rf)QEruwOFf5Z+L11~)9KQh-Scy&*Ph^>T~jQ6=V0|85QvUJvr&$?D3gJQCh z|3X4uZjK2ksXP}vg}(HaW8DukHyw1aw@tKI;^ym)E>l=6s`N^XX=$;mA`f%RVysj| zhKSiV(#wOmhnpLy0HP*b!WZ7|*NNi{x#bhJqd?JlsQSXeX+_Kr{I;T)S>64g ztC9&ijMZ0h9oRe#5?Y@1l%0Qs%8m!nCSHC>-1?k~5eNAPqfUy_OJ@a0x6^`>sT?GQ z%k@Wtc4MN8`=x^h2QfM6iGcWZN@c_W%J1@hxIInd)zXXcek-xvY>`OOPpt^N#&sxB zxtDXdr|snB=`w1q5*p2A=QGaaa`}emyS@I#^XI24;6Qn!{<;IkX7E(zy%8Uj>~+Za ztca0n8vqVB1lW_^5L3%>WO#I;>ZIl;LGGJdDB01Lm-SwIzy!@DMg;LV7SZx*QOZ&r|kgHQl#eL z+e#fc3h(lyIkZg4-Q73cbFT($?C$bI!C)9|NvH5n7J07x;6wA5J!(yEl6%!X-?$U5 zdo@Q+UR1ADn%;a-bu976K8bc_VI%Imx5z#vj+!ecRjvE)`2!GP>4 z0v6D>(CYao+3%!kYMpWxa9#FEo=&^5-I*QzN%oRl+orlbmz5(|9%bvc;6S^sHmc&k zWgbTeT4dd48YS|Lq$cFGCF*GL)R=RlHf>6+LrsCky32X7@`Sl zBeRoW1^SR0l_<8lN->}zau&8Q8h&4V&oa)Kjnh|MP9O(mo?yqelpPAITC_!5U!-V` zf^}kM;K5}SEHiV>z~Er`cjd2N3F;PctDeG^9io>lW*_j~Cgv4^1)~EHf?{9k6{Yyi zd*eE&x{0m=fy-mhN7jTTlMUW*%vG(J%i%z(njIZoW<9-%Lx&V3PV<=77dJ^Vc^J?o zVSvuT)r+1LqZANdte)>F3E+tFl!1zVdA*UiGy(x0nzcj*4=vZ<^BV9y7UriRL5=;k zo*DTu5YCPFSx{R8*1KAD?%DeAtYR@p-1eNz%+>prp5Jp4@gI~(eb4Q>S8tTt_?%Vm zbi*w;4#E)(0k_SICSLzu@2Z36wsQU`NeY4&xH126p@W3aVy};4gUGIbK z!di}NEfmPzdCH-F8?1(Yoa?tdYWQMPrrw{yvv;A?iOqDz*2cwR>Qt(q{;ph zuFC?+(?eN?P&H1SdlC|du^L!uEL3NS8miX-qvIZfw~i6RTgFW1>Xs+}CDgz&?fnxc z8OU8mRrvS?kjsUgOx>LAmvZfBN^%K+`RcsX`k@;SE-$JQD==(a8NYZc(KbOmM$>b{ z^@z(>P@yR+N1Q~ISy8fZb&7hjQg05^6^xM~L>b0e3#7;HpL zIh5(+q6R8OnbZ>36*i?vcbm$Phpqj7PM%N`AlP6`@sR!QsqBpuruWO@%QG7%Ik|<` z5t)>Xv2`?npeq@RR`i5pk!FnM1NeH688d$;Wq{H0J>tNKgYkx+wT-@hL2aoffb}z( zbXfs(2@pJnl0Uc+cT?;ZAh^wF3?Rc87yzY!yL{|sGH0!4~W zZ09=u;Xoxd`=P`9kwa1*g+Ks+9U)*zUx(*roNZ+|xatU~VJ^=|W_HJbaX}QJTD~R^qbIv2V0KJx zSk4UUIQ|4oWJV;M9E_JUd%@K6tZwW^#o%Y_&On#DaZ4ua9YSo5LItg1jqz)aY7+5; z4-SEc4r&8;m;sUpYUl;pnK{ePSOq$0zKcirI|he4G@nMshQnhg&)9(2D;wr3rfD3xk|388C?(3!Z*cix({xtg{@eI8oe7NlN%0oMa|d@2sJ4?8T)p~i%^C~xmZmPf!vrJ zKh$APc;tyG14U!uYBIcWC>eIyg{K>ob zq~VP2iD?_X^BjDsA#B!WENJLm!Sd?wTReTN1IUA_%;`qH@3J+SOQmAonMtL-iN5<# zzN)!kTc^?Zab&FCn#`Ukg2o`Vf}3)rD;+yu&vsMd3*pFGy)|4T{YV%dNPTCv~j04@sb=RI-D&aF*ysUND`;Egixzt~HD28v-`jPJA%U$5tU+v<_LuNJSo2G?a>SkEM#uB4@q zDj>Bi7239vY5DnUZZ15_{#Ib?Y?wfAmoqmfD^?SkyOaXVCVNQG_EeiKwcq8-Ss+Fzn`#id#5zK~J6_z!?LRomE zE`RHqxA@k?CZuDXR};!uY`XDLC-v9+4T(2h^w}F`DS2#I!@av-Q|%bU26|LuURZ_y z#QXQXEPkLmtpdE9BPzhxEZIoN!cM8P1PpBW$ob-v6fHS%CHFjeh+5ds86unEPzo{3 zOp^sagd_)ThG&Z^7t@lYUZoJ`*9g9=M2_oBm@Z(;*J9UDnMYc-?QV+s0VSRKQ{x6F zcQEonTCj;{sjaQ`#jZxv>6A)zq8@j^Zg08DZlW~O!Q?6CDI5!TgMKi_hZL-Khr3X&ruX(vOgQkj~n?D}g_Lyts4Ol;2&XwRhDkp>PQAF~IL}KP&Ai1c1;<+vnd%d+6(soh? zyi|SOi@j_&gM&4K$4kaubqHVy#M=!xTm!?As~4Vao3%5GqqH&t=HklvFqz2Nf80;) z(9;>li!0zy&UV{lAFInj<~Yg^0`Lc4Q+bH;7x|NVu-jmS~W?;gt&DqxG1b z3|JfWVs+ZDqmDX=xPa~n0tCVJ27!WfmqR%8cl3?h*C0ioQ~cwRKTRxb)zB|WujtmZ z6q}DNY}qd-k$HXo2VCI&Ac@w8r_z5d1}cp<_5Td7%~h3DSKVK%+6;}(+$E}GAx6G^itrNQ!4{N{sH zq17IW?s;;r#$f1x9X#NR7qSLt`F<0ttVjJir3EkYd+S!}i@k^#=$_8yA9Rx!neUHR z3Vz=O_MgUq#&i<&3o`9x08uD1P%CL3NeJ8K{pZDYgMO9}W(LDqiTvn4-eYZR)E?8n z-u#?ffDT}fy2AlGb-J-B$1?d*won2p^g#;m?+)fLX(tGECShZ0MHBdD(3nv>YAZ4EV&->lej0 zd$GMh{sTKWUcc7c&sFodF=5r+oKFLLfbCKYkL)Q`6_J!VS(aM*2?(HZ6!_iBslSku z)eHEjcFVdj2g8Qj`81K~Kxan@BQdI}aUu`cVH?XIX%s3ZC+;zM(Fg}S)(14?>2ZWt z-&NR0EJa8r0eRELhHXlov5)2$Cyjp$hs=yB9(;}8V`@~0P|2nrNdoW)^O$M=F(`&8b^>x7LBn#@ZVlLytZIgfaV?N}BtcAH+e z;6a1Dru66Ge^)mEV2O(vA-=InEf@O{J5U|&+9=(Cm0q3t-!|{TO_^JhwDhk2R`iyc z)mfpYQ8Pv_DPe}TO!4kCyM7c4urn!puO@LZTGD3JT_B%FfX$Bxo0`>1G? zfJ)=#=Vm+y(tn*w7p*rTUt=}-I}NsdS^QPYh=R6rjj%Vz@StvQ=~_l)gVMjK6Zf&>@{rx_Mv_*|_^i zw6|MJ%G~Uo(_s(KwXA9!SR4NW^-kF6`FtCTjO^rCnX^$s8GIv z_s-UHo6QMN;BvQN!yzH&I|M5-8YF+S)uss^& za-@2+E4`;VWfc5^+gZw>H>)k1oEyRSHlzeC$O6iAebBlo%33@yi%~UG{3ZET$6*Bm zgO6Yq;VLlBTeE*c2ssB+Oip5J$+9J?0O)o@#*y5FOSXo zlrjRp@1Z?z?4uR}<|5_=&w_8)g|U;q9@HhaTrcU47ZH&S6M7YvzQk5;gpP8-IeZiq zT$_E(j}TXhp{JzHHD`qJoSni&6{!S>USxH?wrIq1y# zwB0Qyult ze@08(l$R~je{aHsFvzOCn5T?(sOpL2Y1Z!^a=tXqiTZYnN=T0=yEmqc3)0)dTCTS| z)J&IBZW!ZG)zCUJxPiy^16L%W%cZ(AX9}kaOn}=XlR?SJ8;x4jssQsq*$h`c-NacF z0`ftxPrZkbAZU?$f_3%eIBR^0M9gwh8|E$k7OQ)!N_+NoH*Ahpb#ASOwJ-Q2snP;v zb^Dpqw$@*yzVtRDJ8~QbenO3pup!j^(rC5V=ytVX?kBj-V@-px?eBR_x}LU2BU@#S ziF6{>KD+6dXrKU`d&iG<^Zok+V{gX=X12&^d|lP00u34RlEPY}bfCp>6_$lX`Z=2M5|iLm|4A%ob#Ct@O-_oVD(+s{Mv zr(6NMpc?oCI-A~= zYyZLvd`|F56*p)^!X9xP->sP?KD<_yhtaX+tuV#Hk+_u#Au4DF6jLU zzRF7OV>;M&yS-;WS18a$k$r=9!__k>54HX82+jjF`?6S9s=^ypj&;9= zHG;i2Q!?#G*~~Pp<+6YOHnCXk6o7W#t=9Ym0mCsudb>W zDqpa^Ge7J#Gmif{AUK;n(-PDVkJ7uF*Ol;5% znlEtf!_9)8b+L(wB}1JZ)4zWaj4WdYQbB!chuXw&^i$1gzsbPs+PYm@TsrY=+&_a- zKJ8o*a55FMg${7t+}KO`%4A&DwHF-plO)6y?;YlGxY}%$Y>CH57o<|eB=z=(Xrv(;uXNQ%aK9Eg9{upe`hl8!upJQfKwvBGSv$lcXB;KF-9q!lgK<@u zRhy+I3P|Ro{^_N4=U^v}c1IWYDMe04N^COWo*OpOQL}n-bbq(GnmzWSQrgJPeJ*3c zuA+OE{oT;IUfAKCyslx?h~w0IOlhq9It%IxUT;XK3UJ8ZFd+ z_Rws=%tt=yT0jex$+gLa9JD`~z)O_E?YlS$uJ;*Cs0H-h5|eXp*>a1**ugp8-aP{ifu}kd8HBO$yUaf#po4?^WZ&O#2`B3M@RRmpbb10yxLvV^6Eud@vY>D6 zcrF$=eOE}wHiR0oBcg!^7t#T%xzOT>dsKXy?^(_YO}W_>`9`_jJf)ygf#s9q`K5{) z@tly@x7SNt3b3$ekWsF=;#SW1Bp6oR14k+BbSXjyl^;W73Y;q#fb(6sQ-yKAmAhXV zt4Bz8r-$!Y>q!%V7cu2h$udeHX#KcP?BwZt2UtBuE9~f=CmVLKK=GGW1O85gd%w&N&Zk4`P%*dD+SI>e zlxj%za!#skEIxh8IeCy?Kjfjv#flI5AOT2zDd~?*U}83NHABRiuoq4t3Y&%VKGuLW z+25@>N7bp1i_+8hjO&TyLqI^uK%_NaFGgRVmhNrQ0;9bgF#Mg>7LI5za1p!1Vmo35 zq9z5hYUW1pVkG`_x?Y2Be;DM&7n_`|`m{u)G2`Zrxg)*QeyO;8I$isj&5`=mqEbdQ z1IKs{X-N6kA=;bBpg!4;3JiLNyCs7QX2eYC18!SxPt3b#J+ZfjoQQ0#$(tC%VtjHfBmnxi2#4(??7{OL!%(G-HSi7O3wQoOYO_`uoR-S)WVIpRP zU(wXO8&E2low$F=7*+E_AI4svH&oRbnO$AL?xY2lhwofg^4G zE%OekN{j?!s7#AtKRIVk(I0LXZsB7pMm%^S61g<%di_O5P3Z*^_;k zb3x^t-IAiH(ObZGGBvSvW8LH}&?hD8m0!B}KJ}Yg0{7C?xEp+?ZlKA|RQ-pb$;E8(3~khpM_;d5lE?7PY07H|5_YQH0JqUZsVpN56>K zf)DdmHU!GG89)>iUUK~?tZpU*i(++V^DW(`0xjq4iPd(j-d=h4>NSX0@GEQtE|0z` zG*DNvcUwOxPl)Uhn)=JtJM~Y+IEf5xtrmssTyi-8>(cualSiQlKjiF*1qAw581Fl; z*U>%6TA^#swQ~34)%DZ;rxDzy2t%!ch@6MF_%fW_wBP($WZ>^kY;1+Ije4xD)28Ub z$BUEbTzDOga6iy{OvxbNF5wr=KKYDy2CU7Na7M+)BWmGWR+~?Mpqef2&GjRJ_3@(E z6xJS@4Lwt@Gekwj3z_D5`4;Jbg38U*km)D9M+MZkZ%iYW0}_?n?|-+9C;)WnzozA{ z|EJZYKia7f@<)U=M$)}r0Wk_{G_>G2q`&CXnvayAA8aVYi-NMCP=#|l3pepQr~riC z>foHS>r7?q>!nxCjBX!*(P4wlkiZUKen8q#wSl`w#tQ)2q&+w~7;Sfj{Tcx;K&{S# zXN?slnhI49@^yr%Pos2V;J8uGG2%}7Mrhl4`~|Sk_@udCG+#dr`OcO9{%R}){@QMk?wZz8Ml#n^t@IvzruWaZz4n(5MzZxNSQZ$1LQvIR{l}!mMD|yHem;8c4Je=J5 z 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›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 literal 176834 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

9`$s@&dIkCgdw})fH!z}}%du+rQ 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 diff --git a/lib/AmsConfiguration/include/AmsConfiguration.h b/lib/AmsConfiguration/include/AmsConfiguration.h index 6d427654..aa450d4b 100644 --- a/lib/AmsConfiguration/include/AmsConfiguration.h +++ b/lib/AmsConfiguration/include/AmsConfiguration.h @@ -207,10 +207,12 @@ struct PriceServiceConfig { char entsoeToken[37]; char area[17]; char currency[4]; - uint32_t unused1; - bool enabled; + uint8_t resolutionInMinutes; uint16_t unused2; -}; // 64 + uint16_t unused3; + bool enabled; + uint16_t unused6; +}; struct EnergyAccountingConfig { uint16_t thresholds[10]; @@ -237,14 +239,14 @@ struct UiConfig { }; // 15 struct UpgradeInformation { - char fromVersion[8]; - char toVersion[8]; + char fromVersion[16]; + char toVersion[16]; uint32_t size; uint16_t block_position; uint8_t retry_count; uint8_t reboot_count; int8_t errorCode; -}; // 25 +}; // 41+3 struct CloudConfig { bool enabled; diff --git a/lib/AmsConfiguration/src/AmsConfiguration.cpp b/lib/AmsConfiguration/src/AmsConfiguration.cpp index 1996bff8..1eb9afb6 100644 --- a/lib/AmsConfiguration/src/AmsConfiguration.cpp +++ b/lib/AmsConfiguration/src/AmsConfiguration.cpp @@ -655,6 +655,9 @@ bool AmsConfiguration::getPriceServiceConfig(PriceServiceConfig& config) { clearPriceServiceConfig(config); return false; } + if(config.resolutionInMinutes != 15 && config.resolutionInMinutes != 60) { + config.resolutionInMinutes = 60; + } return true; } else { clearPriceServiceConfig(config); @@ -669,6 +672,7 @@ bool AmsConfiguration::setPriceServiceConfig(PriceServiceConfig& config) { priceChanged |= strcmp(config.area, existing.area) != 0; priceChanged |= strcmp(config.currency, existing.currency) != 0; priceChanged |= config.enabled != existing.enabled; + priceChanged |= config.resolutionInMinutes != existing.resolutionInMinutes; } else { priceChanged = true; } @@ -688,9 +692,8 @@ void AmsConfiguration::clearPriceServiceConfig(PriceServiceConfig& config) { memset(config.entsoeToken, 0, 37); memset(config.area, 0, 17); memset(config.currency, 0, 4); - config.unused1 = 1000; config.enabled = false; - config.unused2 = 0; + config.resolutionInMinutes = 60; } bool AmsConfiguration::isPriceServiceChanged() { diff --git a/lib/AmsFirmwareUpdater/include/AmsFirmwareUpdater.h b/lib/AmsFirmwareUpdater/include/AmsFirmwareUpdater.h index 5b4c8e90..18501fcf 100644 --- a/lib/AmsFirmwareUpdater/include/AmsFirmwareUpdater.h +++ b/lib/AmsFirmwareUpdater/include/AmsFirmwareUpdater.h @@ -97,7 +97,7 @@ private: uint32_t lastVersionCheck = 0; uint8_t firmwareVariant; bool autoUpgrade; - char nextVersion[10]; + char nextVersion[17]; bool fetchNextVersion(); diff --git a/lib/ConnectionHandler/src/EthernetConnectionHandler.cpp b/lib/ConnectionHandler/src/EthernetConnectionHandler.cpp index 5d899e99..eb084999 100644 --- a/lib/ConnectionHandler/src/EthernetConnectionHandler.cpp +++ b/lib/ConnectionHandler/src/EthernetConnectionHandler.cpp @@ -114,6 +114,7 @@ bool EthernetConnectionHandler::connect(NetworkConfig config, SystemConfig sys) debugger->printf_P(PSTR("Static IP configuration is invalid, not using\n")); } } + this->config = config; } else { #if defined(AMS_REMOTE_DEBUG) if (debugger->isActive(RemoteDebug::ERROR)) @@ -147,6 +148,9 @@ void EthernetConnectionHandler::eventHandler(WiFiEvent_t event, WiFiEventInfo_t { debugger->printf_P(PSTR("Successfully connected to Ethernet!\n")); } + if(config.ipv6 && !ETH.enableIpV6()) { + debugger->printf_P(PSTR("Unable to enable IPv6\n")); + } break; case ARDUINO_EVENT_ETH_GOT_IP: #if defined(AMS_REMOTE_DEBUG) diff --git a/lib/EnergyAccounting/include/EnergyAccounting.h b/lib/EnergyAccounting/include/EnergyAccounting.h index 072e68e9..9ec37e11 100644 --- a/lib/EnergyAccounting/include/EnergyAccounting.h +++ b/lib/EnergyAccounting/include/EnergyAccounting.h @@ -26,9 +26,11 @@ struct EnergyAccountingPeak6 { struct EnergyAccountingData { uint8_t version; uint8_t month; + int32_t costToday; int32_t costYesterday; int32_t costThisMonth; int32_t costLastMonth; + int32_t incomeToday; int32_t incomeYesterday; int32_t incomeThisMonth; int32_t incomeLastMonth; @@ -36,6 +38,7 @@ struct EnergyAccountingData { uint32_t lastMonthExport; uint8_t lastMonthAccuracy; EnergyAccountingPeak peaks[5]; + time_t lastUpdated; }; struct EnergyAccountingData6 { @@ -115,7 +118,6 @@ public: void setData(EnergyAccountingData&); void setCurrency(String currency); - float getPriceForHour(uint8_t d, uint8_t h); private: #if defined(AMS_REMOTE_DEBUG) @@ -128,7 +130,7 @@ private: PriceService *ps = NULL; EnergyAccountingConfig *config = NULL; Timezone *tz = NULL; - EnergyAccountingData data = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + EnergyAccountingData data = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; EnergyAccountingRealtimeData* realtimeData = NULL; String currency = ""; diff --git a/lib/EnergyAccounting/src/EnergyAccounting.cpp b/lib/EnergyAccounting/src/EnergyAccounting.cpp index 9bbf1a89..6fc1f365 100644 --- a/lib/EnergyAccounting/src/EnergyAccounting.cpp +++ b/lib/EnergyAccounting/src/EnergyAccounting.cpp @@ -30,7 +30,7 @@ EnergyAccounting::EnergyAccounting(Stream* Stream, EnergyAccountingRealtimeData* rtd->lastImportUpdateMillis = 0; rtd->lastExportUpdateMillis = 0; } - this->realtimeData = rtd; + realtimeData = rtd; } void EnergyAccounting::setup(AmsDataStorage *ds, EnergyAccountingConfig *config) { @@ -67,14 +67,14 @@ bool EnergyAccounting::update(AmsData* amsData) { breakTime(tz->toLocal(now), local); if(!init) { - this->realtimeData->lastImportUpdateMillis = 0; - this->realtimeData->lastExportUpdateMillis = 0; - this->realtimeData->currentHour = local.Hour; - this->realtimeData->currentDay = local.Day; + realtimeData->lastImportUpdateMillis = 0; + realtimeData->lastExportUpdateMillis = 0; + realtimeData->currentHour = local.Hour; + realtimeData->currentDay = local.Day; if(!load()) { data = { 7, local.Month, - 0, 0, 0, // Cost - 0, 0, 0, // Income + 0, 0, 0, 0, // Cost + 0, 0, 0, 0, // Income 0, 0, 0, // Last month import, export and accuracy 0, 0, 0, // Peak 1 0, 0, 0, // Peak 2 @@ -86,12 +86,11 @@ bool EnergyAccounting::update(AmsData* amsData) { init = true; } - float importPrice = getPriceForHour(PRICE_DIRECTION_IMPORT, 0); - if(!initPrice && importPrice != PRICE_NO_VALUE) { + if(!initPrice && ps != NULL && ps->hasPrice()) { calcDayCost(); } - if(local.Hour != this->realtimeData->currentHour && (amsData->getListType() >= 3 || local.Minute == 1)) { + if(local.Hour != realtimeData->currentHour && (amsData->getListType() >= 3 || local.Minute == 1)) { tmElements_t oneHrAgo, oneHrAgoLocal; breakTime(now-3600, oneHrAgo); uint16_t val = round(ds->getHourImport(oneHrAgo.Hour) / 10.0); @@ -99,27 +98,24 @@ bool EnergyAccounting::update(AmsData* amsData) { breakTime(tz->toLocal(now-3600), oneHrAgoLocal); ret |= updateMax(val, oneHrAgoLocal.Day, oneHrAgoLocal.Hour); - this->realtimeData->currentHour = local.Hour; // Need to be defined here so that day cost is correctly calculated - if(local.Hour > 0) { - calcDayCost(); - } + realtimeData->currentHour = local.Hour; // Need to be defined here so that day cost is correctly calculated - this->realtimeData->use = 0; - this->realtimeData->produce = 0; - this->realtimeData->costHour = 0; - this->realtimeData->incomeHour = 0; + realtimeData->use = 0; + realtimeData->produce = 0; + realtimeData->costHour = 0; + realtimeData->incomeHour = 0; - uint8_t prevDay = this->realtimeData->currentDay; - if(local.Day != this->realtimeData->currentDay) { - data.costYesterday = this->realtimeData->costDay * 100; - data.costThisMonth += this->realtimeData->costDay * 100; - this->realtimeData->costDay = 0; + uint8_t prevDay = realtimeData->currentDay; + if(local.Day != realtimeData->currentDay) { + data.costYesterday = realtimeData->costDay * 100; + data.costThisMonth += realtimeData->costDay * 100; + realtimeData->costDay = 0; - data.incomeYesterday = this->realtimeData->incomeDay * 100; - data.incomeThisMonth += this->realtimeData->incomeDay * 100; - this->realtimeData->incomeDay = 0; + data.incomeYesterday = realtimeData->incomeDay * 100; + data.incomeThisMonth += realtimeData->incomeDay * 100; + realtimeData->incomeDay = 0; - this->realtimeData->currentDay = local.Day; + realtimeData->currentDay = local.Day; ret = true; } @@ -149,42 +145,49 @@ bool EnergyAccounting::update(AmsData* amsData) { data.lastMonthAccuracy = accuracy; data.month = local.Month; - this->realtimeData->currentThresholdIdx = 0; + realtimeData->currentThresholdIdx = 0; ret = true; } + + if(ret) { + data.costToday = realtimeData->costDay * 100; + data.incomeToday = realtimeData->incomeDay * 100; + data.lastUpdated = now; + } } - if(this->realtimeData->lastImportUpdateMillis < amsData->getLastUpdateMillis()) { - unsigned long ms = amsData->getLastUpdateMillis() - this->realtimeData->lastImportUpdateMillis; + if(realtimeData->lastImportUpdateMillis < amsData->getLastUpdateMillis()) { + unsigned long ms = amsData->getLastUpdateMillis() - realtimeData->lastImportUpdateMillis; float kwhi = (amsData->getActiveImportPower() * (((float) ms) / 3600000.0)) / 1000.0; if(kwhi > 0) { - this->realtimeData->use += kwhi; + realtimeData->use += kwhi; + float importPrice = ps == NULL ? PRICE_NO_VALUE : ps->getCurrentPrice(PRICE_DIRECTION_IMPORT); if(importPrice != PRICE_NO_VALUE) { float cost = importPrice * kwhi; - this->realtimeData->costHour += cost; - this->realtimeData->costDay += cost; + realtimeData->costHour += cost; + realtimeData->costDay += cost; } } - this->realtimeData->lastImportUpdateMillis = amsData->getLastUpdateMillis(); + realtimeData->lastImportUpdateMillis = amsData->getLastUpdateMillis(); } - if(amsData->getListType() > 1 && this->realtimeData->lastExportUpdateMillis < amsData->getLastUpdateMillis()) { - unsigned long ms = amsData->getLastUpdateMillis() - this->realtimeData->lastExportUpdateMillis; + if(amsData->getListType() > 1 && realtimeData->lastExportUpdateMillis < amsData->getLastUpdateMillis()) { + unsigned long ms = amsData->getLastUpdateMillis() - realtimeData->lastExportUpdateMillis; float kwhe = (amsData->getActiveExportPower() * (((float) ms) / 3600000.0)) / 1000.0; if(kwhe > 0) { - this->realtimeData->produce += kwhe; - float exportPrice = getPriceForHour(PRICE_DIRECTION_EXPORT, 0); + realtimeData->produce += kwhe; + float exportPrice = ps == NULL ? PRICE_NO_VALUE : ps->getCurrentPrice(PRICE_DIRECTION_EXPORT); if(exportPrice != PRICE_NO_VALUE) { float income = exportPrice * kwhe; - this->realtimeData->incomeHour += income; - this->realtimeData->incomeDay += income; + realtimeData->incomeHour += income; + realtimeData->incomeDay += income; } } - this->realtimeData->lastExportUpdateMillis = amsData->getLastUpdateMillis(); + realtimeData->lastExportUpdateMillis = amsData->getLastUpdateMillis(); } if(config != NULL) { - while(getMonthMax() > config->thresholds[this->realtimeData->currentThresholdIdx] && this->realtimeData->currentThresholdIdx < 10) this->realtimeData->currentThresholdIdx++; + while(getMonthMax() > config->thresholds[realtimeData->currentThresholdIdx] && realtimeData->currentThresholdIdx < 10) realtimeData->currentThresholdIdx++; } return ret; @@ -192,28 +195,36 @@ bool EnergyAccounting::update(AmsData* amsData) { void EnergyAccounting::calcDayCost() { time_t now = time(nullptr); - tmElements_t local, utc; + tmElements_t local, utc, lastUpdateUtc; if(tz == NULL) return; breakTime(tz->toLocal(now), local); + if(ps == NULL) return; - if(getPriceForHour(PRICE_DIRECTION_IMPORT, 0) != PRICE_NO_VALUE) { - if(initPrice) { - this->realtimeData->costDay = 0; - this->realtimeData->incomeDay = 0; + if(ps->hasPrice()) { + breakTime(data.lastUpdated, lastUpdateUtc); + uint8_t calcFromHour = 0; + if(lastUpdateUtc.Day != local.Day || lastUpdateUtc.Month != local.Month || lastUpdateUtc.Year != local.Year) { + realtimeData->costDay = 0; + realtimeData->incomeDay = 0; + calcFromHour = 0; + } else { + realtimeData->costDay = data.costToday / 100.0; + realtimeData->incomeDay = data.incomeToday / 100.0; + calcFromHour = lastUpdateUtc.Hour; } - for(uint8_t i = 0; i < this->realtimeData->currentHour; i++) { + for(uint8_t i = calcFromHour; i < realtimeData->currentHour; i++) { breakTime(now - ((local.Hour - i) * 3600), utc); - float priceIn = getPriceForHour(PRICE_DIRECTION_IMPORT, i - local.Hour); + float priceIn = ps->getPriceForRelativeHour(PRICE_DIRECTION_IMPORT, i - local.Hour); if(priceIn != PRICE_NO_VALUE) { int16_t wh = ds->getHourImport(utc.Hour); - this->realtimeData->costDay += priceIn * (wh / 1000.0); + realtimeData->costDay += priceIn * (wh / 1000.0); } - float priceOut = getPriceForHour(PRICE_DIRECTION_EXPORT, i - local.Hour); + float priceOut = ps->getPriceForRelativeHour(PRICE_DIRECTION_EXPORT, i - local.Hour); if(priceOut != PRICE_NO_VALUE) { int16_t wh = ds->getHourExport(utc.Hour); - this->realtimeData->incomeDay += priceOut * (wh / 1000.0); + realtimeData->incomeDay += priceOut * (wh / 1000.0); } } initPrice = true; @@ -221,7 +232,7 @@ void EnergyAccounting::calcDayCost() { } float EnergyAccounting::getUseThisHour() { - return this->realtimeData->use; + return realtimeData->use; } float EnergyAccounting::getUseToday() { @@ -231,7 +242,7 @@ float EnergyAccounting::getUseToday() { if(now < FirmwareVersion::BuildEpoch) return 0.0; tmElements_t utc, local; breakTime(tz->toLocal(now), local); - for(uint8_t i = 0; i < this->realtimeData->currentHour; i++) { + for(uint8_t i = 0; i < realtimeData->currentHour; i++) { breakTime(now - ((local.Hour - i) * 3600), utc); ret += ds->getHourImport(utc.Hour) / 1000.0; } @@ -242,7 +253,7 @@ float EnergyAccounting::getUseThisMonth() { time_t now = time(nullptr); if(now < FirmwareVersion::BuildEpoch) return 0.0; float ret = 0; - for(uint8_t i = 1; i < this->realtimeData->currentDay; i++) { + for(uint8_t i = 1; i < realtimeData->currentDay; i++) { ret += ds->getDayImport(i) / 1000.0; } return ret + getUseToday(); @@ -253,7 +264,7 @@ float EnergyAccounting::getUseLastMonth() { } float EnergyAccounting::getProducedThisHour() { - return this->realtimeData->produce; + return realtimeData->produce; } float EnergyAccounting::getProducedToday() { @@ -263,7 +274,7 @@ float EnergyAccounting::getProducedToday() { if(now < FirmwareVersion::BuildEpoch) return 0.0; tmElements_t utc, local; breakTime(tz->toLocal(now), local); - for(uint8_t i = 0; i < this->realtimeData->currentHour; i++) { + for(uint8_t i = 0; i < realtimeData->currentHour; i++) { breakTime(now - ((local.Hour - i) * 3600), utc); ret += ds->getHourExport(utc.Hour) / 1000.0; } @@ -274,7 +285,7 @@ float EnergyAccounting::getProducedThisMonth() { time_t now = time(nullptr); if(now < FirmwareVersion::BuildEpoch) return 0.0; float ret = 0; - for(uint8_t i = 1; i < this->realtimeData->currentDay; i++) { + for(uint8_t i = 1; i < realtimeData->currentDay; i++) { ret += ds->getDayExport(i) / 1000.0; } return ret + getProducedToday(); @@ -285,11 +296,11 @@ float EnergyAccounting::getProducedLastMonth() { } float EnergyAccounting::getCostThisHour() { - return this->realtimeData->costHour; + return realtimeData->costHour; } float EnergyAccounting::getCostToday() { - return this->realtimeData->costDay; + return realtimeData->costDay; } float EnergyAccounting::getCostYesterday() { @@ -305,11 +316,11 @@ float EnergyAccounting::getCostLastMonth() { } float EnergyAccounting::getIncomeThisHour() { - return this->realtimeData->incomeHour; + return realtimeData->incomeHour; } float EnergyAccounting::getIncomeToday() { - return this->realtimeData->incomeDay; + return realtimeData->incomeDay; } float EnergyAccounting::getIncomeYesterday() { @@ -327,7 +338,7 @@ float EnergyAccounting::getIncomeLastMonth() { uint8_t EnergyAccounting::getCurrentThreshold() { if(config == NULL) return 0; - return config->thresholds[this->realtimeData->currentThresholdIdx]; + return config->thresholds[realtimeData->currentThresholdIdx]; } float EnergyAccounting::getMonthMax() { @@ -414,9 +425,11 @@ bool EnergyAccounting::load() { } else if(buf[0] == 6) { EnergyAccountingData6* data = (EnergyAccountingData6*) buf; this->data = { 7, data->month, + 0, // Cost today data->costYesterday, data->costThisMonth, data->costLastMonth, + 0, // Income today data->incomeYesterday, data->incomeThisMonth, data->incomeLastMonth, @@ -495,8 +508,3 @@ bool EnergyAccounting::updateMax(uint16_t val, uint8_t day, uint8_t hour) { void EnergyAccounting::setCurrency(String currency) { this->currency = currency; } - -float EnergyAccounting::getPriceForHour(uint8_t d, uint8_t h) { - if(ps == NULL) return PRICE_NO_VALUE; - return ps->getValueForHour(d, h); -} \ No newline at end of file diff --git a/lib/HomeAssistantMqttHandler/include/HomeAssistantMqttHandler.h b/lib/HomeAssistantMqttHandler/include/HomeAssistantMqttHandler.h index cc4b9fad..909757da 100644 --- a/lib/HomeAssistantMqttHandler/include/HomeAssistantMqttHandler.h +++ b/lib/HomeAssistantMqttHandler/include/HomeAssistantMqttHandler.h @@ -53,7 +53,7 @@ private: bool l1Init, l2Init, l2eInit, l3Init, l3eInit, l4Init, l4eInit, rtInit, rteInit, pInit, sInit, rInit, fInit; bool tInit[32] = {false}; - bool prInit[38] = {false}; + uint8_t priceImportInit = 0, priceExportInit = 0; uint32_t lastThresholdPublish = 0; HwTools* hw; diff --git a/lib/HomeAssistantMqttHandler/include/HomeAssistantStatic.h b/lib/HomeAssistantMqttHandler/include/HomeAssistantStatic.h index 71de2cb8..809c03ef 100644 --- a/lib/HomeAssistantMqttHandler/include/HomeAssistantStatic.h +++ b/lib/HomeAssistantMqttHandler/include/HomeAssistantStatic.h @@ -17,113 +17,112 @@ struct HomeAssistantSensor { const char* uom; const char* devcl; const char* stacl; + const char* uid; }; const uint8_t List1SensorCount PROGMEM = 2; const HomeAssistantSensor List1Sensors[List1SensorCount] PROGMEM = { - {"Active import", "/power", "P", 30, "W", "power", "measurement"}, - {"Data timestamp", "/power", "t", 30, "", "timestamp", ""} + {"Active import", "/power", "P", 30, "W", "power", "measurement", ""}, + {"Data timestamp", "/power", "t", 30, "", "timestamp", "", ""} }; const uint8_t List2SensorCount PROGMEM = 8; const HomeAssistantSensor List2Sensors[List2SensorCount] PROGMEM = { - {"Reactive import", "/power", "Q", 30, "var", "reactive_power", "measurement"}, - {"Reactive export", "/power", "QO", 30, "var", "reactive_power", "measurement"}, - {"L1 current", "/power", "I1", 30, "A", "current", "measurement"}, - {"L2 current", "/power", "I2", 30, "A", "current", "measurement"}, - {"L3 current", "/power", "I3", 30, "A", "current", "measurement"}, - {"L1 voltage", "/power", "U1", 30, "V", "voltage", "measurement"}, - {"L2 voltage", "/power", "U2", 30, "V", "voltage", "measurement"}, - {"L3 voltage", "/power", "U3", 30, "V", "voltage", "measurement"} + {"Reactive import", "/power", "Q", 30, "var", "reactive_power", "measurement", ""}, + {"Reactive export", "/power", "QO", 30, "var", "reactive_power", "measurement", ""}, + {"L1 current", "/power", "I1", 30, "A", "current", "measurement", ""}, + {"L2 current", "/power", "I2", 30, "A", "current", "measurement", ""}, + {"L3 current", "/power", "I3", 30, "A", "current", "measurement", ""}, + {"L1 voltage", "/power", "U1", 30, "V", "voltage", "measurement", ""}, + {"L2 voltage", "/power", "U2", 30, "V", "voltage", "measurement", ""}, + {"L3 voltage", "/power", "U3", 30, "V", "voltage", "measurement", ""} }; const uint8_t List2ExportSensorCount PROGMEM = 1; const HomeAssistantSensor List2ExportSensors[List2ExportSensorCount] PROGMEM = { - {"Active export", "/power", "PO", 30, "W", "power", "measurement"} + {"Active export", "/power", "PO", 30, "W", "power", "measurement", ""} }; const uint8_t List3SensorCount PROGMEM = 4; const HomeAssistantSensor List3Sensors[List3SensorCount] PROGMEM = { - {"Accumulated active import", "/energy", "tPI", 4000, "kWh", "energy", "total_increasing"}, - {"Accumulated reactive import","/energy", "tQI", 4000, "kvarh","", "total_increasing"}, - {"Accumulated reactive export","/energy", "tQO", 4000, "kvarh","", "total_increasing"}, - {"Meter timestamp", "/energy", "rtc", 4000, "", "timestamp", ""} + {"Accumulated active import", "/energy", "tPI", 4000, "kWh", "energy", "total_increasing", ""}, + {"Accumulated reactive import","/energy", "tQI", 4000, "kvarh","", "total_increasing", ""}, + {"Accumulated reactive export","/energy", "tQO", 4000, "kvarh","", "total_increasing", ""}, + {"Meter timestamp", "/energy", "rtc", 4000, "", "timestamp", "", ""} }; const uint8_t List3ExportSensorCount PROGMEM = 1; const HomeAssistantSensor List3ExportSensors[List3ExportSensorCount] PROGMEM = { - {"Accumulated active export", "/energy", "tPO", 4000, "kWh", "energy", "total_increasing"} + {"Accumulated active export", "/energy", "tPO", 4000, "kWh", "energy", "total_increasing", ""} }; const uint8_t List4SensorCount PROGMEM = 10; const HomeAssistantSensor List4Sensors[List4SensorCount] PROGMEM = { - {"Power factor", "/power", "PF", 30, "%", "power_factor", "measurement"}, - {"L1 power factor", "/power", "PF1", 30, "%", "power_factor", "measurement"}, - {"L2 power factor", "/power", "PF2", 30, "%", "power_factor", "measurement"}, - {"L3 power factor", "/power", "PF3", 30, "%", "power_factor", "measurement"}, - {"L1 active import", "/power", "P1", 30, "W", "power", "measurement"}, - {"L2 active import", "/power", "P2", 30, "W", "power", "measurement"}, - {"L3 active import", "/power", "P3", 30, "W", "power", "measurement"}, - {"L1 accumulated active import","/power", "tPI1", 30, "kWh", "energy", "total_increasing"}, - {"L2 accumulated active import","/power", "tPI2", 30, "kWh", "energy", "total_increasing"}, - {"L3 accumulated active import","/power", "tPI3", 30, "kWh", "energy", "total_increasing"} + {"Power factor", "/power", "PF", 30, "%", "power_factor", "measurement", ""}, + {"L1 power factor", "/power", "PF1", 30, "%", "power_factor", "measurement", ""}, + {"L2 power factor", "/power", "PF2", 30, "%", "power_factor", "measurement", ""}, + {"L3 power factor", "/power", "PF3", 30, "%", "power_factor", "measurement", ""}, + {"L1 active import", "/power", "P1", 30, "W", "power", "measurement", ""}, + {"L2 active import", "/power", "P2", 30, "W", "power", "measurement", ""}, + {"L3 active import", "/power", "P3", 30, "W", "power", "measurement", ""}, + {"L1 accumulated active import","/power", "tPI1", 30, "kWh", "energy", "total_increasing", ""}, + {"L2 accumulated active import","/power", "tPI2", 30, "kWh", "energy", "total_increasing", ""}, + {"L3 accumulated active import","/power", "tPI3", 30, "kWh", "energy", "total_increasing", ""} }; const uint8_t List4ExportSensorCount PROGMEM = 6; const HomeAssistantSensor List4ExportSensors[List4ExportSensorCount] PROGMEM = { - {"L1 active export", "/power", "PO1", 30, "W", "power", "measurement"}, - {"L2 active export", "/power", "PO2", 30, "W", "power", "measurement"}, - {"L3 active export", "/power", "PO3", 30, "W", "power", "measurement"}, - {"L1 accumulated active export","/power", "tPO1", 30, "kWh", "energy", "total_increasing"}, - {"L2 accumulated active export","/power", "tPO2", 30, "kWh", "energy", "total_increasing"}, - {"L3 accumulated active export","/power", "tPO3", 30, "kWh", "energy", "total_increasing"} + {"L1 active export", "/power", "PO1", 30, "W", "power", "measurement", ""}, + {"L2 active export", "/power", "PO2", 30, "W", "power", "measurement", ""}, + {"L3 active export", "/power", "PO3", 30, "W", "power", "measurement", ""}, + {"L1 accumulated active export","/power", "tPO1", 30, "kWh", "energy", "total_increasing", ""}, + {"L2 accumulated active export","/power", "tPO2", 30, "kWh", "energy", "total_increasing", ""}, + {"L3 accumulated active export","/power", "tPO3", 30, "kWh", "energy", "total_increasing", ""} }; const uint8_t RealtimeSensorCount PROGMEM = 8; const HomeAssistantSensor RealtimeSensors[RealtimeSensorCount] PROGMEM = { - {"Month max", "/realtime","max", 120, "kWh", "energy", ""}, - {"Tariff threshold", "/realtime","threshold", 120, "kWh", "energy", ""}, - {"Current hour used", "/realtime","hour.use", 120, "kWh", "energy", "total_increasing"}, - {"Current hour cost", "/realtime","hour.cost", 120, "", "monetary", ""}, - {"Current day used", "/realtime","day.use", 120, "kWh", "energy", "total_increasing"}, - {"Current day cost", "/realtime","day.cost", 120, "", "monetary", ""}, - {"Current month used", "/realtime","month.use", 120, "kWh", "energy", "total_increasing"}, - {"Current month cost", "/realtime","month.cost", 120, "", "monetary", ""} + {"Month max", "/realtime","max", 120, "kWh", "energy", "", ""}, + {"Tariff threshold", "/realtime","threshold", 120, "kWh", "energy", "", ""}, + {"Current hour used", "/realtime","hour.use", 120, "kWh", "energy", "total_increasing", ""}, + {"Current hour cost", "/realtime","hour.cost", 120, "", "monetary", "", ""}, + {"Current day used", "/realtime","day.use", 120, "kWh", "energy", "total_increasing", ""}, + {"Current day cost", "/realtime","day.cost", 120, "", "monetary", "", ""}, + {"Current month used", "/realtime","month.use", 120, "kWh", "energy", "total_increasing", ""}, + {"Current month cost", "/realtime","month.cost", 120, "", "monetary", "", ""} }; const uint8_t RealtimeExportSensorCount PROGMEM = 6; const HomeAssistantSensor RealtimeExportSensors[RealtimeExportSensorCount] PROGMEM = { - {"Current hour produced", "/realtime","hour.produced", 120, "kWh", "energy", "total_increasing"}, - {"Current hour income", "/realtime","hour.income", 120, "", "monetary", ""}, - {"Current day produced", "/realtime","day.produced", 120, "kWh", "energy", "total_increasing"}, - {"Current day income", "/realtime","day.income", 120, "", "monetary", ""}, - {"Current month produced", "/realtime","month.produced", 120, "kWh", "energy", "total_increasing"}, - {"Current month income", "/realtime","month.income", 120, "", "monetary", ""} + {"Current hour produced", "/realtime","hour.produced", 120, "kWh", "energy", "total_increasing", ""}, + {"Current hour income", "/realtime","hour.income", 120, "", "monetary", "", ""}, + {"Current day produced", "/realtime","day.produced", 120, "kWh", "energy", "total_increasing", ""}, + {"Current day income", "/realtime","day.income", 120, "", "monetary", "", ""}, + {"Current month produced", "/realtime","month.produced", 120, "kWh", "energy", "total_increasing", ""}, + {"Current month income", "/realtime","month.income", 120, "", "monetary", "", ""} }; -const HomeAssistantSensor RealtimePeakSensor PROGMEM = {"Current month peak %d", "/realtime", "peaks[%d]", 4000, "kWh", "energy", ""}; -const HomeAssistantSensor RealtimeThresholdSensor PROGMEM = {"Tariff threshold %d", "/realtime", "thresholds[%d]", 4000, "kWh", "energy", ""}; +const HomeAssistantSensor RealtimePeakSensor PROGMEM = {"Current month peak %d", "/realtime", "peaks[%d]", 4000, "kWh", "energy", "", ""}; +const HomeAssistantSensor RealtimeThresholdSensor PROGMEM = {"Tariff threshold %d", "/realtime", "thresholds[%d]", 4000, "kWh", "energy", "", ""}; const uint8_t PriceSensorCount PROGMEM = 5; const HomeAssistantSensor PriceSensors[PriceSensorCount] PROGMEM = { - {"Minimum price ahead", "/prices", "prices.min", 4000, "", "monetary", ""}, - {"Maximum price ahead", "/prices", "prices.max", 4000, "", "monetary", ""}, - {"Cheapest 1hr period ahead", "/prices", "prices.cheapest1hr",4000, "", "timestamp", ""}, - {"Cheapest 3hr period ahead", "/prices", "prices.cheapest3hr",4000, "", "timestamp", ""}, - {"Cheapest 6hr period ahead", "/prices", "prices.cheapest6hr",4000, "", "timestamp", ""} + {"Minimum price ahead", "/prices", "prices.min", 4000, "", "monetary", "", ""}, + {"Maximum price ahead", "/prices", "prices.max", 4000, "", "monetary", "", ""}, + {"Cheapest 1hr period ahead", "/prices", "prices.cheapest1hr", 4000, "", "timestamp", "", ""}, + {"Cheapest 3hr period ahead", "/prices", "prices.cheapest3hr", 4000, "", "timestamp", "", ""}, + {"Cheapest 6hr period ahead", "/prices", "prices.cheapest6hr", 4000, "", "timestamp", "", ""} }; -const HomeAssistantSensor PriceSensor PROGMEM = {"Price in %02d %s", "/prices", "prices['%d']", 4000, "", "monetary", ""}; - const uint8_t SystemSensorCount PROGMEM = 3; const HomeAssistantSensor SystemSensors[SystemSensorCount] PROGMEM = { - {"Status", "/state", "rssi", 180, "dBm", "signal_strength", "measurement"}, - {"Supply volt", "/state", "vcc", 180, "V", "voltage", "measurement"}, - {"Uptime", "/state", "up", 180, "s", "duration", "measurement"} + {"Status", "/state", "rssi", 180, "dBm", "signal_strength", "measurement", ""}, + {"Supply volt", "/state", "vcc", 180, "V", "voltage", "measurement", ""}, + {"Uptime", "/state", "up", 180, "s", "duration", "measurement", ""} }; -const HomeAssistantSensor TemperatureSensor PROGMEM = {"Temperature sensor %s", "/temperatures", "temperatures['%s']", 900, "°C", "temperature", "measurement"}; +const HomeAssistantSensor TemperatureSensor PROGMEM = {"Temperature sensor %s", "/temperatures", "temperatures['%s']", 900, "°C", "temperature", "measurement", ""}; #endif diff --git a/lib/HomeAssistantMqttHandler/src/HomeAssistantMqttHandler.cpp b/lib/HomeAssistantMqttHandler/src/HomeAssistantMqttHandler.cpp index c89988d5..fd87724f 100644 --- a/lib/HomeAssistantMqttHandler/src/HomeAssistantMqttHandler.cpp +++ b/lib/HomeAssistantMqttHandler/src/HomeAssistantMqttHandler.cpp @@ -35,6 +35,10 @@ void HomeAssistantMqttHandler::setHomeAssistantConfig(HomeAssistantConfig config manufacturer = boardManufacturerToString(boardType); deviceUid = String(hostname); // Maybe configurable in the future? + #if defined(AMS_REMOTE_DEBUG) + if (debugger->isActive(RemoteDebug::INFO)) + #endif + debugger->printf_P(PSTR(" Hostname is [%s]\n"), hostname); if(strlen(config.discoveryHostname) > 0) { if(strncmp_P(config.discoveryHostname, PSTR("http"), 4) == 0) { @@ -348,7 +352,7 @@ bool HomeAssistantMqttHandler::publishTemperatures(AmsConfiguration* config, HwT bool HomeAssistantMqttHandler::publishPrices(PriceService* ps) { if(pubTopic.isEmpty() || !mqtt.connected()) return false; - if(ps->getValueForHour(PRICE_DIRECTION_IMPORT, 0) == PRICE_NO_VALUE) + if(!ps->hasPrice()) return false; publishPriceSensors(ps); @@ -361,7 +365,7 @@ bool HomeAssistantMqttHandler::publishPrices(PriceService* ps) { float values[38]; for(int i = 0;i < 38; i++) values[i] = PRICE_NO_VALUE; for(uint8_t i = 0; i < 38; i++) { - float val = ps->getValueForHour(PRICE_DIRECTION_IMPORT, now, i); + float val = ps->getPriceForRelativeHour(PRICE_DIRECTION_IMPORT, i); values[i] = val; if(val == PRICE_NO_VALUE) break; @@ -430,31 +434,41 @@ bool HomeAssistantMqttHandler::publishPrices(PriceService* ps) { sprintf_P(ts6hr, PSTR("%04d-%02d-%02dT%02d:00:00Z"), tm.Year+1970, tm.Month, tm.Day, tm.Hour); } - uint16_t pos = snprintf_P(json, BufferSize, PSTR("{\"id\":\"%s\",\"prices\":{"), WiFi.macAddress().c_str()); - for(uint8_t i = 0;i < 38; i++) { - if(values[i] == PRICE_NO_VALUE) { - pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"%d\":null,"), i); + uint16_t pos = snprintf_P(json, BufferSize, PSTR("{\"id\":\"%s\",\"prices\":{\"import\":["), WiFi.macAddress().c_str()); + + uint8_t currentPricePointIndex = ps->getCurrentPricePointIndex(); + uint8_t numberOfPoints = ps->getNumberOfPointsAvailable(); + for(int i = currentPricePointIndex; i < numberOfPoints; i++) { + float val = ps->getPricePoint(PRICE_DIRECTION_IMPORT, i); + if(val == PRICE_NO_VALUE) { + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("null,")); } else { - pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"%d\":%.4f,"), i, values[i]); + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("%.4f,"), val); + } + } + if(rteInit && ps->isExportPricesDifferentFromImport()) { + pos--; + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("],\"export\":[")); + for(int i = currentPricePointIndex; i < numberOfPoints; i++) { + float val = ps->getPricePoint(PRICE_DIRECTION_EXPORT, i); + if(val == PRICE_NO_VALUE) { + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("null,")); + } else { + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("%.4f,"), val); + } } } - pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"min\":%.4f,\"max\":%.4f,\"cheapest1hr\":\"%s\",\"cheapest3hr\":\"%s\",\"cheapest6hr\":\"%s\"}"), + pos--; + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("],\"min\":%.4f,\"max\":%.4f,\"cheapest1hr\":\"%s\",\"cheapest3hr\":\"%s\",\"cheapest6hr\":\"%s\"}"), min == INT16_MAX ? 0.0 : min, max == INT16_MIN ? 0.0 : max, ts1hr, ts3hr, ts6hr ); - - float val = ps->getValueForHour(PRICE_DIRECTION_EXPORT, now, 0); - if(val == PRICE_NO_VALUE) { - pos += snprintf_P(json+pos, BufferSize-pos, PSTR(",\"exportprices\":{\"0\":null}")); - } else { - pos += snprintf_P(json+pos, BufferSize-pos, PSTR(",\"exportprices\":{\"0\":%.4f}"), val); - } - - char pt[24]; + + char pt[24]; memset(pt, 0, 24); if(now > 0) { tmElements_t tm; @@ -503,11 +517,16 @@ bool HomeAssistantMqttHandler::publishSystem(HwTools* hw, PriceService* ps, Ener } void HomeAssistantMqttHandler::publishSensor(const HomeAssistantSensor sensor) { - String uid = String(sensor.path); - uid.replace(".", ""); - uid.replace("[", ""); - uid.replace("]", ""); - uid.replace("'", ""); + String uid; + if(strlen(sensor.uid) > 0) { + uid = String(sensor.uid); + } else { + uid = String(sensor.path); + uid.replace(".", ""); + uid.replace("[", ""); + uid.replace("]", ""); + uid.replace("'", ""); + } snprintf_P(json, BufferSize, HADISCOVER_JSON, sensorNamePrefix.c_str(), sensor.name, @@ -530,7 +549,7 @@ void HomeAssistantMqttHandler::publishSensor(const HomeAssistantSensor sensor) { strlen_P(sensor.stacl) > 0 ? (char *) FPSTR(sensor.stacl) : "", strlen_P(sensor.stacl) > 0 ? "\"" : "" ); - mqtt.publish(sensorTopic + "/" + deviceUid + "_" + uid.c_str() + "/config", json, true, 0); + mqtt.publish(sensorTopic + "/" + deviceUid + "_" + uid + "/config", json, true, 0); loop(); } @@ -619,7 +638,8 @@ void HomeAssistantMqttHandler::publishRealtimeSensors(EnergyAccounting* ea, Pric RealtimePeakSensor.ttl, RealtimePeakSensor.uom, RealtimePeakSensor.devcl, - RealtimePeakSensor.stacl + RealtimePeakSensor.stacl, + RealtimePeakSensor.uid }; publishSensor(sensor); } @@ -658,7 +678,8 @@ void HomeAssistantMqttHandler::publishTemperatureSensor(uint8_t index, String id TemperatureSensor.ttl, TemperatureSensor.uom, TemperatureSensor.devcl, - TemperatureSensor.stacl + TemperatureSensor.stacl, + TemperatureSensor.uid }; publishSensor(sensor); tInit[index] = true; @@ -678,45 +699,96 @@ void HomeAssistantMqttHandler::publishPriceSensors(PriceService* ps) { } pInit = true; } - for(uint8_t i = 0; i < 38; i++) { - if(prInit[i]) continue; - float val = ps->getValueForHour(PRICE_DIRECTION_IMPORT, i); - if(val == PRICE_NO_VALUE) continue; - - char name[strlen(PriceSensor.name)+2]; - snprintf(name, strlen(PriceSensor.name)+2, PriceSensor.name, i, i == 1 ? "hour" : "hours"); - char path[strlen(PriceSensor.path)+1]; - snprintf(path, strlen(PriceSensor.path)+1, PriceSensor.path, i); - HomeAssistantSensor sensor = { - i == 0 ? "Price current hour" : name, - PriceSensor.topic, - path, - PriceSensor.ttl, - uom.c_str(), - PriceSensor.devcl, - i == 0 ? "total" : PriceSensor.stacl - }; - publishSensor(sensor); - prInit[i] = true; + + uint8_t currentPricePointIndex = ps->getCurrentPricePointIndex(); + uint8_t numberOfPoints = ps->getNumberOfPointsAvailable(); + + if(priceImportInit < numberOfPoints-currentPricePointIndex) { + uint8_t importPriceSensorNo = 0; + for(int pricePointIndex = currentPricePointIndex; pricePointIndex < numberOfPoints; pricePointIndex++) { + float val = ps->getPricePoint(PRICE_DIRECTION_IMPORT, pricePointIndex); + if(val == PRICE_NO_VALUE) break; + if(importPriceSensorNo < priceImportInit) { + importPriceSensorNo++; + continue; + } + + uint8_t resolution = ps->getResolutionInMinutes(); + + char path[64]; + memset(path, 0, 64); + snprintf_P(path, 64, PSTR("prices.import[%d]"), importPriceSensorNo); + + char uid[32]; + memset(uid, 0, 32); + snprintf_P(uid, 32, PSTR("prices%d"), importPriceSensorNo); + + char name[64]; + if(resolution == 60) + snprintf_P(name, 64, PSTR("Import price in %02d hour%s"), importPriceSensorNo, importPriceSensorNo == 1 ? "" : "s"); + else + snprintf_P(name, 64, PSTR("Import price in %03d minutes"), importPriceSensorNo * resolution); + + HomeAssistantSensor sensor = { + importPriceSensorNo == 0 ? "Current import price" : name, + "/prices", + path, + resolution * 60 + 300, + uom.c_str(), + "monetary", + importPriceSensorNo == 0 ? "total" : "", + uid + }; + publishSensor(sensor); + + priceImportInit = importPriceSensorNo++; + } } - float exportPrice = ps->getValueForHour(PRICE_DIRECTION_EXPORT, 0); - if(exportPrice != PRICE_NO_VALUE) { - char path[20]; - snprintf(path, 20, "exportprices['%d']", 0); - HomeAssistantSensor sensor = { - "Export price current hour", - PriceSensor.topic, - path, - PriceSensor.ttl, - uom.c_str(), - PriceSensor.devcl, - "total" - }; - publishSensor(sensor); + if(priceExportInit < numberOfPoints-currentPricePointIndex) { + uint8_t exportPriceSensorNo = 0; + for(int pricePointIndex = currentPricePointIndex; pricePointIndex < numberOfPoints; pricePointIndex++) { + float val = ps->getPricePoint(PRICE_DIRECTION_EXPORT, pricePointIndex); + if(val == PRICE_NO_VALUE) break; + if(exportPriceSensorNo < priceExportInit) { + exportPriceSensorNo++; + continue; + } + + uint8_t resolution = ps->getResolutionInMinutes(); + + char path[64]; + memset(path, 0, 64); + snprintf_P(path, 64, PSTR("prices.export[%d]"), exportPriceSensorNo); + + char uid[32]; + memset(uid, 0, 32); + snprintf_P(uid, 32, PSTR("exportprices%d"), exportPriceSensorNo); + + char name[64]; + if(resolution == 60) + snprintf_P(name, 64, PSTR("Export price in %02d hour%s"), exportPriceSensorNo, exportPriceSensorNo == 1 ? "" : "s"); + else + snprintf_P(name, 64, PSTR("Export price in %03d minutes"), exportPriceSensorNo * resolution); + + HomeAssistantSensor sensor = { + exportPriceSensorNo == 0 ? "Current export price" : name, + "/prices", + path, + resolution * 60 + 300, + uom.c_str(), + "monetary", + exportPriceSensorNo == 0 ? "total" : "", + uid + }; + publishSensor(sensor); + + priceExportInit = exportPriceSensorNo++; + } } } + void HomeAssistantMqttHandler::publishSystemSensors() { if(sInit) return; for(uint8_t i = 0; i < SystemSensorCount; i++) { @@ -739,7 +811,8 @@ void HomeAssistantMqttHandler::publishThresholdSensors() { RealtimeThresholdSensor.ttl, RealtimeThresholdSensor.uom, RealtimeThresholdSensor.devcl, - RealtimeThresholdSensor.stacl + RealtimeThresholdSensor.stacl, + RealtimeThresholdSensor.uid }; publishSensor(sensor); } @@ -786,7 +859,8 @@ void HomeAssistantMqttHandler::onMessage(String &topic, String &payload) { debugger->printf_P(PSTR("Received online status from HA, resetting sensor status\n")); l1Init = l2Init = l2eInit = l3Init = l3eInit = l4Init = l4eInit = rtInit = rteInit = pInit = sInit = rInit = false; for(uint8_t i = 0; i < 32; i++) tInit[i] = false; - for(uint8_t i = 0; i < 38; i++) prInit[i] = false; + priceImportInit = 0; + priceExportInit = 0; } } else if(topic.equals(subTopic)) { if(payload.equals("fwupgrade")) { diff --git a/lib/JsonMqttHandler/include/JsonMqttHandler.h b/lib/JsonMqttHandler/include/JsonMqttHandler.h index d7c31a88..7042e6fb 100644 --- a/lib/JsonMqttHandler/include/JsonMqttHandler.h +++ b/lib/JsonMqttHandler/include/JsonMqttHandler.h @@ -34,6 +34,7 @@ public: private: HwTools* hw; + bool hasExport = false; AmsDataStorage* ds; uint16_t appendJsonHeader(AmsData* data); diff --git a/lib/JsonMqttHandler/src/JsonMqttHandler.cpp b/lib/JsonMqttHandler/src/JsonMqttHandler.cpp index 7154856b..17a6fbb7 100644 --- a/lib/JsonMqttHandler/src/JsonMqttHandler.cpp +++ b/lib/JsonMqttHandler/src/JsonMqttHandler.cpp @@ -56,6 +56,15 @@ bool JsonMqttHandler::publish(AmsData* update, AmsData* previousState, EnergyAcc ret = publishList4(&data, ea); mqtt.loop(); } + + if(data.getListType() >= 2 && data.getActiveExportPower() > 0.0) { + hasExport = true; + } + + if(data.getListType() >= 3 && data.getActiveExportCounter() > 0.0) { + hasExport = true; + } + loop(); return ret; } @@ -299,7 +308,7 @@ bool JsonMqttHandler::publishTemperatures(AmsConfiguration* config, HwTools* hw) bool JsonMqttHandler::publishPrices(PriceService* ps) { if(strlen(mqttConfig.publishTopic) == 0 || !mqtt.connected()) return false; - if(ps->getValueForHour(PRICE_DIRECTION_IMPORT, 0) == PRICE_NO_VALUE) + if(!ps->hasPrice()) return false; time_t now = time(nullptr); @@ -310,7 +319,7 @@ bool JsonMqttHandler::publishPrices(PriceService* ps) { float values[38]; for(int i = 0;i < 38; i++) values[i] = PRICE_NO_VALUE; for(uint8_t i = 0; i < 38; i++) { - float val = ps->getValueForHour(PRICE_DIRECTION_IMPORT, now, i); + float val = ps->getPriceForRelativeHour(PRICE_DIRECTION_IMPORT, i); values[i] = val; if(val == PRICE_NO_VALUE) break; @@ -379,38 +388,59 @@ bool JsonMqttHandler::publishPrices(PriceService* ps) { sprintf_P(ts6hr, PSTR("%04d-%02d-%02dT%02d:00:00Z"), tm.Year+1970, tm.Month, tm.Day, tm.Hour); } - char pf[4]; - uint16_t pos = snprintf_P(json, BufferSize, PSTR("{\"id\":\"%s\","), WiFi.macAddress().c_str()); - if(mqttConfig.payloadFormat != 6) { - memset(pf, 0, 4); - pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"prices\":{")); - } else { - strcpy_P(pf, PSTR("pr_")); - } + if(mqttConfig.payloadFormat == 6) { + uint16_t pos = snprintf_P(json, BufferSize, PSTR("{\"id\":\"%s\","), WiFi.macAddress().c_str()); - for(uint8_t i = 0;i < 38; i++) { - if(values[i] == PRICE_NO_VALUE) { - pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"%s%d\":null,"), pf, i); - } else { - pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"%s%d\":%.4f,"), pf, i, values[i]); + for(uint8_t i = 0;i < 38; i++) { + if(values[i] == PRICE_NO_VALUE) { + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"pr_%d\":null,"), i); + } else { + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"pr_%d\":%.4f,"), i, values[i]); + } } - } - pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"%smin\":%.4f,\"%smax\":%.4f,\"%scheapest1hr\":\"%s\",\"%scheapest3hr\":\"%s\",\"%scheapest6hr\":\"%s\"}"), - pf, - min == INT16_MAX ? 0.0 : min, - pf, - max == INT16_MIN ? 0.0 : max, - pf, - ts1hr, - pf, - ts3hr, - pf, - ts6hr - ); - if(mqttConfig.payloadFormat != 6) { - json[pos++] = '}'; - json[pos] = '\0'; + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("\"pr_min\":%.4f,\"pr_max\":%.4f,\"pr_cheapest1hr\":\"%s\",\"pr_cheapest3hr\":\"%s\",\"pr_cheapest6hr\":\"%s\"}"), + min == INT16_MAX ? 0.0 : min, + max == INT16_MIN ? 0.0 : max, + ts1hr, + ts3hr, + ts6hr + ); + } else { + uint16_t pos = snprintf_P(json, BufferSize, PSTR("{\"id\":\"%s\",\"prices\":{\"import\":["), WiFi.macAddress().c_str()); + + uint8_t currentPricePointIndex = ps->getCurrentPricePointIndex(); + uint8_t numberOfPoints = ps->getNumberOfPointsAvailable(); + for(int i = currentPricePointIndex; i < numberOfPoints; i++) { + float val = ps->getPricePoint(PRICE_DIRECTION_IMPORT, i); + if(val == PRICE_NO_VALUE) { + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("null,")); + } else { + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("%.4f,"), val); + } + } + if(hasExport && ps->isExportPricesDifferentFromImport()) { + pos--; + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("],\"export\":[")); + for(int i = currentPricePointIndex; i < numberOfPoints; i++) { + float val = ps->getPricePoint(PRICE_DIRECTION_EXPORT, i); + if(val == PRICE_NO_VALUE) { + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("null,")); + } else { + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("%.4f,"), val); + } + } + } + + pos--; + pos += snprintf_P(json+pos, BufferSize-pos, PSTR("],\"min\":%.4f,\"max\":%.4f,\"cheapest1hr\":\"%s\",\"cheapest3hr\":\"%s\",\"cheapest6hr\":\"%s\"}}"), + min == INT16_MAX ? 0.0 : min, + max == INT16_MIN ? 0.0 : max, + ts1hr, + ts3hr, + ts6hr + ); + } bool ret = false; if(mqttConfig.payloadFormat == 5) { diff --git a/lib/MeterCommunicators/include/IEC6205675.h b/lib/MeterCommunicators/include/IEC6205675.h index 3cd82b22..e6668b3f 100644 --- a/lib/MeterCommunicators/include/IEC6205675.h +++ b/lib/MeterCommunicators/include/IEC6205675.h @@ -25,9 +25,9 @@ struct AmsOctetTimestamp { class IEC6205675 : public AmsData { public: #if defined(AMS_REMOTE_DEBUG) - IEC6205675(const char* payload, uint8_t useMeterType, MeterConfig* meterConfig, DataParserContext &ctx, AmsData &state, RemoteDebug* debugger); + IEC6205675(const char* payload, Timezone* tz, uint8_t useMeterType, MeterConfig* meterConfig, DataParserContext &ctx, AmsData &state, RemoteDebug* debugger); #else - IEC6205675(const char* payload, uint8_t useMeterType, MeterConfig* meterConfig, DataParserContext &ctx, AmsData &state, Stream* debugger); + IEC6205675(const char* payload, Timezone* tz, uint8_t useMeterType, MeterConfig* meterConfig, DataParserContext &ctx, AmsData &state, Stream* debugger); #endif private: @@ -37,8 +37,9 @@ private: float getNumber(uint8_t* obis, int matchlength, const char* ptr); float getNumber(CosemData*); time_t getTimestamp(uint8_t* obis, int matchlength, const char* ptr); + time_t adjustForKnownIssues(CosemDateTime dt, Timezone* tz, uint8_t meterType); - uint8_t AMS_OBIS_UNKNOWN_1[4] = { 25, 9, 0, 255 }; + uint8_t AMS_OBIS_UNKNOWN_1[4] = { 25, 9, 0, 255 }; uint8_t AMS_OBIS_VERSION[4] = { 0, 2, 129, 255 }; uint8_t AMS_OBIS_METER_MODEL[4] = { 96, 1, 1, 255 }; diff --git a/lib/MeterCommunicators/src/IEC6205675.cpp b/lib/MeterCommunicators/src/IEC6205675.cpp index 17ccebed..da0fb439 100644 --- a/lib/MeterCommunicators/src/IEC6205675.cpp +++ b/lib/MeterCommunicators/src/IEC6205675.cpp @@ -12,18 +12,14 @@ #include "hexutils.h" #if defined(AMS_REMOTE_DEBUG) -IEC6205675::IEC6205675(const char* d, uint8_t useMeterType, MeterConfig* meterConfig, DataParserContext &ctx, AmsData &state, RemoteDebug* debugger) { +IEC6205675::IEC6205675(const char* d, Timezone* tz, uint8_t useMeterType, MeterConfig* meterConfig, DataParserContext &ctx, AmsData &state, RemoteDebug* debugger) { #else -IEC6205675::IEC6205675(const char* payload, uint8_t useMeterType, MeterConfig* meterConfig, DataParserContext &ctx, AmsData &state, Stream* debugger) { +IEC6205675::IEC6205675(const char* d, Timezone* tz, uint8_t useMeterType, MeterConfig* meterConfig, DataParserContext &ctx, AmsData &state, Stream* debugger) { #endif float val; char str[64]; - TimeChangeRule CEST = {"CEST", Last, Sun, Mar, 2, 120}; - TimeChangeRule CET = {"CET ", Last, Sun, Oct, 3, 60}; - Timezone tz(CEST, CET); - - this->packageTimestamp = ctx.timestamp == 0 ? time(nullptr) : ctx.timestamp; + this->packageTimestamp = time(nullptr); // ctx.timestamp is mostly garbage, so we use current time as package timestamp val = getNumber(AMS_OBIS_ACTIVE_IMPORT, sizeof(AMS_OBIS_ACTIVE_IMPORT), ((char *) (d))); if(val == NOVALUE) { @@ -31,13 +27,13 @@ IEC6205675::IEC6205675(const char* payload, uint8_t useMeterType, MeterConfig* m // Kaifa special case... if(useMeterType == AmsTypeKaifa && data->base.type == CosemTypeDLongUnsigned) { - this->packageTimestamp = this->packageTimestamp > 0 ? tz.toUTC(this->packageTimestamp) : 0; + this->packageTimestamp = this->packageTimestamp > 0 ? tz->toUTC(this->packageTimestamp) : 0; listType = 1; meterType = AmsTypeKaifa; activeImportPower = ntohl(data->dlu.data); lastUpdateMillis = millis64(); } else if(data->base.type == CosemTypeOctetString) { - this->packageTimestamp = this->packageTimestamp > 0 ? tz.toUTC(this->packageTimestamp) : 0; + this->packageTimestamp = this->packageTimestamp > 0 ? tz->toUTC(this->packageTimestamp) : 0; memcpy(str, data->oct.data, data->oct.length); str[data->oct.length] = 0x00; @@ -127,7 +123,7 @@ IEC6205675::IEC6205675(const char* payload, uint8_t useMeterType, MeterConfig* m if(data->oct.length == 0x0C) { AmsOctetTimestamp* amst = (AmsOctetTimestamp*) data; time_t ts = decodeCosemDateTime(amst->dt); - meterTimestamp = tz.toUTC(ts); + meterTimestamp = tz->toUTC(ts); } } } @@ -738,18 +734,7 @@ IEC6205675::IEC6205675(const char* payload, uint8_t useMeterType, MeterConfig* m CosemData* meterTs = findObis(AMS_OBIS_METER_TIMESTAMP, sizeof(AMS_OBIS_METER_TIMESTAMP), ((char *) (d))); if(meterTs != NULL) { AmsOctetTimestamp* amst = (AmsOctetTimestamp*) meterTs; - time_t ts = decodeCosemDateTime(amst->dt); - int16_t deviation = ntohs(amst->dt.deviation); - if(deviation < -720 || deviation > 720) { // Deviation not specified, adjust from localtime to UTC - meterTimestamp = tz.toUTC(ts); - if(ctx.timestamp > 0) { - this->packageTimestamp = tz.toUTC(ctx.timestamp); - } - } else if(meterType == AmsTypeAidon) { - meterTimestamp = ts - 3600; // 21.09.24, the clock is now correct - } else { - meterTimestamp = ts; - } + this->meterTimestamp = adjustForKnownIssues(amst->dt, tz, meterType == AmsTypeUnknown ? useMeterType : meterType); } val = getNumber(AMS_OBIS_POWER_FACTOR, sizeof(AMS_OBIS_POWER_FACTOR), ((char *) (d))); @@ -1125,3 +1110,24 @@ time_t IEC6205675::getTimestamp(uint8_t* obis, int matchlength, const char* ptr) } return 0; } + +time_t IEC6205675::adjustForKnownIssues(CosemDateTime dt, Timezone* tz, uint8_t meterType) { + time_t ts = decodeCosemDateTime(dt); + int16_t deviation = ntohs(dt.deviation); + if(deviation < -720 || deviation > 720) { + // Time zone not specified + if(meterType == AmsTypeAidon || meterType == AmsTypeKamstrup) { + // Special known case + // 21.09.24, the clock is now correct for Aidon + // 23.10.25, the clock is now correct for Kamstrup + ts -= 3600; + } else { + // Adjust from localtime to UTC + ts = tz->toUTC(ts); + } + } else if(meterType == AmsTypeAidon) { + // 21.09.24, the clock is now correct for Aidon + ts -= 3600; + } + return ts; +} \ No newline at end of file diff --git a/lib/MeterCommunicators/src/PassiveMeterCommunicator.cpp b/lib/MeterCommunicators/src/PassiveMeterCommunicator.cpp index d3f11228..7b242aff 100644 --- a/lib/MeterCommunicators/src/PassiveMeterCommunicator.cpp +++ b/lib/MeterCommunicators/src/PassiveMeterCommunicator.cpp @@ -278,7 +278,7 @@ AmsData* PassiveMeterCommunicator::getData(AmsData& meterState) { #endif debugger->printf_P(PSTR("DLMS\n")); // TODO: Split IEC6205675 into DataParserKaifa and DataParserObis. This way we can add other means of parsing, for those other proprietary formats - data = new IEC6205675(payload, meterState.getMeterType(), &meterConfig, ctx, meterState, debugger); + data = new IEC6205675(payload, tz, meterState.getMeterType(), &meterConfig, ctx, meterState, debugger); } } else if(ctx.type == DATA_TAG_DSMR) { data = new IEC6205621(payload, tz, &meterConfig); diff --git a/lib/PriceService/include/EntsoeA44Parser.h b/lib/PriceService/include/EntsoeA44Parser.h index 30bf0da6..cd3fec91 100644 --- a/lib/PriceService/include/EntsoeA44Parser.h +++ b/lib/PriceService/include/EntsoeA44Parser.h @@ -15,28 +15,23 @@ #define DOCPOS_MEASUREMENTUNIT 2 #define DOCPOS_POSITION 3 #define DOCPOS_AMOUNT 4 +#define DOCPOS_RESOLUTION 5 class EntsoeA44Parser: public Stream { public: - EntsoeA44Parser(); + EntsoeA44Parser(PricesContainer *container); virtual ~EntsoeA44Parser(); - char* getCurrency(); - char* getMeasurementUnit(); - float getPoint(uint8_t position); - int available(); int read(); int peek(); void flush(); size_t write(const uint8_t *buffer, size_t size); size_t write(uint8_t); - void get(PricesContainer*); private: - char currency[4]; - char measurementUnit[4]; - float points[25]; + PricesContainer *container; + float multiplier = 1.0; char buf[64]; uint8_t pos = 0; diff --git a/lib/PriceService/include/PriceService.h b/lib/PriceService/include/PriceService.h index 822eabdb..e508ac30 100644 --- a/lib/PriceService/include/PriceService.h +++ b/lib/PriceService/include/PriceService.h @@ -27,10 +27,6 @@ #define SSL_BUF_SIZE 512 -#define PRICE_DIRECTION_IMPORT 0x01 -#define PRICE_DIRECTION_EXPORT 0x02 -#define PRICE_DIRECTION_BOTH 0x03 - #define PRICE_DAY_MO 0x01 #define PRICE_DAY_TU 0x02 #define PRICE_DAY_WE 0x04 @@ -57,10 +53,13 @@ struct PriceConfig { uint8_t end_dayofmonth; }; -struct PricePart { - char name[32]; - char description[32]; - uint32_t value; +struct AmsPriceV2Header { + char currency[4]; + char measurementUnit[4]; + char source[4]; + uint8_t resolutionInMinutes; + bool differentExportPrices; + uint8_t numberOfPoints; }; class PriceService { @@ -78,17 +77,25 @@ public: char* getCurrency(); char* getArea(); char* getSource(); - float getValueForHour(uint8_t direction, int8_t hour); - float getValueForHour(uint8_t direction, time_t ts, int8_t hour); - float getEnergyPriceForHour(uint8_t direction, time_t ts, int8_t hour); + uint8_t getResolutionInMinutes(); + uint8_t getNumberOfPointsAvailable(); + uint8_t getCurrentPricePointIndex(); + + bool isExportPricesDifferentFromImport(); + + bool hasPrice() { return hasPrice(PRICE_DIRECTION_IMPORT); } + bool hasPrice(uint8_t direction) { return getCurrentPrice(direction) != PRICE_NO_VALUE; } + bool hasPricePoint(uint8_t direction, int8_t point) { return getPricePoint(direction, point) != PRICE_NO_VALUE; } + + float getCurrentPrice(uint8_t direction); + float getPricePoint(uint8_t direction, uint8_t point); + float getPriceForRelativeHour(uint8_t direction, int8_t hour); // If not 60min interval, average std::vector& getPriceConfig(); void setPriceConfig(uint8_t index, PriceConfig &priceConfig); void cropPriceConfig(uint8_t size); - PricePart getPricePart(uint8_t index); - int16_t getLastError(); bool load(); @@ -103,7 +110,7 @@ private: PriceServiceConfig* config = NULL; HTTPClient* http = NULL; - uint8_t currentDay = 0, currentHour = 0; + uint8_t currentDay = 0, currentPricePoint = 0; uint8_t tomorrowFetchMinute = 15; // How many minutes over 13:00 should it fetch prices uint8_t nextFetchDelayMinutes = 15; uint64_t lastTodayFetch = 0; @@ -132,5 +139,7 @@ private: bool retrieve(const char* url, Stream* doc); float getCurrencyMultiplier(const char* from, const char* to, time_t t); bool timeIsInPeriod(tmElements_t tm, PriceConfig pc); + float getFixedPrice(uint8_t direction, int8_t hour); + float getEnergyPricePoint(uint8_t direction, uint8_t point); }; #endif diff --git a/lib/PriceService/include/PricesContainer.h b/lib/PriceService/include/PricesContainer.h index 0bd35bde..081fab14 100644 --- a/lib/PriceService/include/PricesContainer.h +++ b/lib/PriceService/include/PricesContainer.h @@ -4,15 +4,43 @@ * */ +#include + #ifndef _PRICESCONTAINER_H #define _PRICESCONTAINER_H #define PRICE_NO_VALUE -127 +#define PRICE_DIRECTION_IMPORT 0x01 +#define PRICE_DIRECTION_EXPORT 0x02 +#define PRICE_DIRECTION_BOTH 0x03 -struct PricesContainer { - char currency[4]; - char measurementUnit[4]; - int32_t points[25]; +class PricesContainer { +public: + PricesContainer(char* source); + + void setup(uint8_t resolutionInMinutes, uint8_t numberOfPoints, bool differentExportPrices); + + char* getSource(); + void setCurrency(char* currency); + char* getCurrency(); + + bool isExportPricesDifferentFromImport() { + return differentExportPrices; + } + + uint8_t getResolutionInMinutes(); + uint8_t getNumberOfPoints(); + + void setPrice(uint8_t point, float value, uint8_t direction); + bool hasPrice(uint8_t point, uint8_t direction); + float getPrice(uint8_t point, uint8_t direction); // int32_t / 10_000 + +private: char source[4]; + char currency[4]; + uint8_t resolutionInMinutes; + bool differentExportPrices; + uint8_t numberOfPoints; + int32_t *points; }; #endif diff --git a/lib/PriceService/src/EntsoeA44Parser.cpp b/lib/PriceService/src/EntsoeA44Parser.cpp index e3096e31..ce2327c6 100644 --- a/lib/PriceService/src/EntsoeA44Parser.cpp +++ b/lib/PriceService/src/EntsoeA44Parser.cpp @@ -7,27 +7,14 @@ #include "EntsoeA44Parser.h" #include "HardwareSerial.h" -EntsoeA44Parser::EntsoeA44Parser() { - for(int i = 0; i < 25; i++) points[i] = PRICE_NO_VALUE; +EntsoeA44Parser::EntsoeA44Parser(PricesContainer *container) { + this->container = container; } EntsoeA44Parser::~EntsoeA44Parser() { } -char* EntsoeA44Parser::getCurrency() { - return currency; -} - -char* EntsoeA44Parser::getMeasurementUnit() { - return measurementUnit; -} - -float EntsoeA44Parser::getPoint(uint8_t position) { - if(position >= 25) return PRICE_NO_VALUE; - return points[position]; -} - int EntsoeA44Parser::available() { return 0; } @@ -57,7 +44,7 @@ size_t EntsoeA44Parser::write(uint8_t byte) { buf[pos++] = byte; if(pos == 3) { buf[pos++] = '\0'; - memcpy(currency, buf, pos); + container->setCurrency(buf); docPos = DOCPOS_SEEK; pos = 0; } @@ -65,7 +52,7 @@ size_t EntsoeA44Parser::write(uint8_t byte) { buf[pos++] = byte; if(pos == 3) { buf[pos++] = '\0'; - memcpy(measurementUnit, buf, pos); + if(strcmp_P(buf, PSTR("MWH"))) multiplier = 0.001; docPos = DOCPOS_SEEK; pos = 0; } @@ -73,7 +60,7 @@ size_t EntsoeA44Parser::write(uint8_t byte) { if(byte == '<') { buf[pos] = '\0'; long pn = String(buf).toInt() - 1; - if(pn < 25) { + if(pn < container->getNumberOfPoints()) { pointNum = pn; } docPos = DOCPOS_SEEK; @@ -85,8 +72,25 @@ size_t EntsoeA44Parser::write(uint8_t byte) { if(byte == '<') { buf[pos] = '\0'; float val = String(buf).toFloat(); - for(uint8_t i = pointNum; i < 25; i++) { - points[i] = val; + for(uint8_t i = pointNum; i < container->getNumberOfPoints(); i++) { + container->setPrice(i, val * multiplier, PRICE_DIRECTION_IMPORT); + } + docPos = DOCPOS_SEEK; + pos = 0; + } else { + buf[pos++] = byte; + } + } else if(docPos == DOCPOS_RESOLUTION) { + if(byte == '<') { + buf[pos] = '\0'; + + // This happens if there are two time series in the XML. We are only interrested in the first one, so we ignore the rest of the document + if(container->hasPrice(0, PRICE_DIRECTION_IMPORT)) return 1; + + if(strcmp_P(buf, PSTR("PT15M"))) { + container->setup(15, 100, false); + } else if(strcmp_P(buf, PSTR("PT60M"))) { + container->setup(60, 25, false); } docPos = DOCPOS_SEEK; pos = 0; @@ -101,15 +105,17 @@ size_t EntsoeA44Parser::write(uint8_t byte) { } else if(byte == '>') { buf[pos++] = byte; buf[pos] = '\0'; - if(strcmp(buf, "") == 0) { + if(strcmp_P(buf, PSTR("")) == 0) { docPos = DOCPOS_CURRENCY; - } else if(strcmp(buf, "") == 0) { + } else if(strcmp(buf, PSTR("")) == 0) { docPos = DOCPOS_MEASUREMENTUNIT; - } else if(strcmp(buf, "") == 0) { + } else if(strcmp(buf, PSTR("")) == 0) { docPos = DOCPOS_POSITION; pointNum = 0xFF; - } else if(strcmp(buf, "") == 0) { + } else if(strcmp(buf, PSTR("")) == 0) { docPos = DOCPOS_AMOUNT; + } else if(strcmp(buf, PSTR("")) == 0) { + docPos = DOCPOS_RESOLUTION; } pos = 0; } else { @@ -118,15 +124,3 @@ size_t EntsoeA44Parser::write(uint8_t byte) { } return 1; } - -void EntsoeA44Parser::get(PricesContainer* container) { - memset(container, 0, sizeof(*container)); - - strcpy(container->currency, currency); - strcpy(container->measurementUnit, measurementUnit); - strcpy(container->source, "EOE"); - - for(uint8_t i = 0; i < 25; i++) { - container->points[i] = points[i] == PRICE_NO_VALUE ? PRICE_NO_VALUE : points[i] * 10000; - } -} \ No newline at end of file diff --git a/lib/PriceService/src/PriceService.cpp b/lib/PriceService/src/PriceService.cpp index 81c4f3e6..16da73a2 100644 --- a/lib/PriceService/src/PriceService.cpp +++ b/lib/PriceService/src/PriceService.cpp @@ -43,6 +43,10 @@ void PriceService::setup(PriceServiceConfig& config) { this->config = new PriceServiceConfig(); } memcpy(this->config, &config, sizeof(config)); + if(this->config->resolutionInMinutes != 15 && this->config->resolutionInMinutes != 60) { + this->config->resolutionInMinutes = 60; + } + lastTodayFetch = lastTomorrowFetch = lastCurrencyFetch = 0; if(today != NULL) delete today; if(tomorrow != NULL) delete tomorrow; @@ -91,55 +95,156 @@ char* PriceService::getArea() { char* PriceService::getSource() { if(this->today != NULL && this->tomorrow != NULL) { - if(strcmp(this->today->source, this->tomorrow->source) == 0) { - return this->today->source; + if(strcmp(this->today->getSource(), this->tomorrow->getSource()) == 0) { + return this->today->getSource(); } else { return "MIX"; } } else if(today != NULL) { - return this->today->source; + return this->today->getSource(); } else if(tomorrow != NULL) { - return this->tomorrow->source; + return this->tomorrow->getSource(); } return ""; } -float PriceService::getValueForHour(uint8_t direction, int8_t hour) { - time_t cur = time(nullptr); - return getValueForHour(direction, cur, hour); +uint8_t PriceService::getResolutionInMinutes() { + return today != NULL ? today->getResolutionInMinutes() : 60; } -float PriceService::getValueForHour(uint8_t direction, time_t ts, int8_t hour) { - float ret = getEnergyPriceForHour(direction, ts, hour); - if(ret == PRICE_NO_VALUE) - return ret; +uint8_t PriceService::getNumberOfPointsAvailable() { + if(today == NULL) return getResolutionInMinutes() == 15 ? 192 : 48; + if(tomorrow != NULL) return today->getNumberOfPoints() + tomorrow->getNumberOfPoints(); + return today->getNumberOfPoints(); +} + +bool PriceService::isExportPricesDifferentFromImport() { + for (uint8_t i = 0; i < priceConfig.size(); i++) { + PriceConfig pc = priceConfig.at(i); + if(pc.direction != PRICE_DIRECTION_BOTH) { + return true; + } + } + return today != NULL && today->isExportPricesDifferentFromImport(); +} + +float PriceService::getPricePoint(uint8_t direction, uint8_t point) { + float value = getFixedPrice(direction, point * getResolutionInMinutes() / 60); + if(value == PRICE_NO_VALUE) value = getEnergyPricePoint(direction, point); + if(value == PRICE_NO_VALUE) return PRICE_NO_VALUE; tmElements_t tm; - breakTime(tz->toLocal(ts + (hour * SECS_PER_HOUR)), tm); + time_t ts = time(nullptr); + breakTime(tz->toLocal(ts), tm); + tm.Hour = tm.Minute = tm.Second = 0; + breakTime(makeTime(tm) + (point * SECS_PER_MIN * getResolutionInMinutes()), tm); for (uint8_t i = 0; i < priceConfig.size(); i++) { PriceConfig pc = priceConfig.at(i); if(pc.type == PRICE_TYPE_FIXED) continue; if((pc.direction & direction) != direction) continue; if(!timeIsInPeriod(tm, pc)) continue; + float pcVal = pc.value / 10000.0; + switch(pc.type) { case PRICE_TYPE_ADD: - ret += pc.value / 10000.0; + value += pcVal; break; case PRICE_TYPE_SUBTRACT: - ret -= pc.value / 10000.0; + value -= pcVal; break; case PRICE_TYPE_PCT: - ret += ((pc.value / 10000.0) * ret) / 100.0; + value += (pcVal * value) / 100.0; break; } } - return ret; + + return value; } -float PriceService::getEnergyPriceForHour(uint8_t direction, time_t ts, int8_t hour) { +float PriceService::getCurrentPrice(uint8_t direction) { + time_t ts = time(nullptr); tmElements_t tm; - breakTime(tz->toLocal(ts + (hour * SECS_PER_HOUR)), tm); + breakTime(tz->toLocal(ts), tm); + uint8_t pos = getCurrentPricePointIndex(); + + return getPricePoint(direction, pos); +} + +float PriceService::getEnergyPricePoint(uint8_t direction, uint8_t point) { + uint8_t pos = point; + float multiplier = 1.0; + uint8_t numberOfPointsToday = 24; + if(today != NULL) { + numberOfPointsToday = today->getNumberOfPoints(); + } + + float value = PRICE_NO_VALUE; + if(pos >= numberOfPointsToday) { + pos = pos - numberOfPointsToday; + if(tomorrow == NULL) + return PRICE_NO_VALUE; + if(pos >= tomorrow->getNumberOfPoints()) return PRICE_NO_VALUE; + if(!tomorrow->hasPrice(pos, direction)) + return PRICE_NO_VALUE; + value = tomorrow->getPrice(pos, direction); + float mult = getCurrencyMultiplier(tomorrow->getCurrency(), config->currency, time(nullptr)); + if(mult == 0) return PRICE_NO_VALUE; + multiplier *= mult; + } else if(pos >= 0) { + if(today == NULL) + return PRICE_NO_VALUE; + if(!today->hasPrice(pos, direction)) + return PRICE_NO_VALUE; + value = today->getPrice(pos, direction); + float mult = getCurrencyMultiplier(today->getCurrency(), config->currency, time(nullptr)); + if(mult == 0) return PRICE_NO_VALUE; + multiplier *= mult; + } + return value == PRICE_NO_VALUE ? PRICE_NO_VALUE : value * multiplier; +} + +float PriceService::getPriceForRelativeHour(uint8_t direction, int8_t hour) { + time_t ts = time(nullptr); + tmElements_t tm; + + breakTime(tz->toLocal(ts), tm); + int8_t targetHour = tm.Hour + hour; + tm.Hour = tm.Minute = tm.Second = 0; + time_t startOfDay = tz->toUTC(makeTime(tm)); + + if((ts + (hour * SECS_PER_HOUR)) < startOfDay) { + return PRICE_NO_VALUE; + } + + if(getResolutionInMinutes() == 60) { + return getPricePoint(direction, targetHour); + } + + float valueSum = 0.0f; + uint8_t valueCount = 0; + float indexIncrements = 60.0 / today->getResolutionInMinutes(); + uint8_t priceMapIndexStart = (uint8_t) floor(indexIncrements * targetHour); + uint8_t priceMapIndexEnd = (uint8_t) ceil(indexIncrements * (targetHour+1)); + + for(uint8_t mi = priceMapIndexStart; mi < priceMapIndexEnd; mi++) { + float val = getPricePoint(direction, mi); + if(val == PRICE_NO_VALUE) continue; + valueSum += val; + valueCount++; + } + if(valueCount == 0) return PRICE_NO_VALUE; + return valueSum / valueCount; +} + +float PriceService::getFixedPrice(uint8_t direction, int8_t hour) { + time_t ts = time(nullptr); + + tmElements_t tm; + breakTime(tz->toLocal(ts), tm); + tm.Minute = 0; + tm.Second = 0; + breakTime(makeTime(tm) + (hour * SECS_PER_HOUR), tm); float value = PRICE_NO_VALUE; for (uint8_t i = 0; i < priceConfig.size(); i++) { @@ -154,68 +259,7 @@ float PriceService::getEnergyPriceForHour(uint8_t direction, time_t ts, int8_t h value += pc.value / 10000.0; } } - if(value != PRICE_NO_VALUE) return value; - - int8_t pos = hour; - - breakTime(entsoeTz->toLocal(ts), tm); - while(tm.Hour > 0) { - ts -= 3600; - breakTime(entsoeTz->toLocal(ts), tm); - pos++; - } - uint8_t hoursToday = 0; - uint8_t todayDate = tm.Day; - while(tm.Day == todayDate) { - ts += 3600; - breakTime(entsoeTz->toLocal(ts), tm); - hoursToday++; - } - uint8_t hoursTomorrow = 0; - uint8_t tomorrowDate = tm.Day; - while(tm.Day == tomorrowDate) { - ts += 3600; - breakTime(entsoeTz->toLocal(ts), tm); - hoursTomorrow++; - } - - float multiplier = 1.0; - if(pos >= hoursToday) { - pos = pos - hoursToday; - if(pos >= hoursTomorrow) return PRICE_NO_VALUE; - if(tomorrow == NULL) - return PRICE_NO_VALUE; - if(tomorrow->points[pos] == PRICE_NO_VALUE) - return PRICE_NO_VALUE; - value = tomorrow->points[pos] / 10000.0; - if(strcmp(tomorrow->measurementUnit, "KWH") == 0) { - // Multiplier is 1 - } else if(strcmp(tomorrow->measurementUnit, "MWH") == 0) { - multiplier *= 0.001; - } else { - return PRICE_NO_VALUE; - } - float mult = getCurrencyMultiplier(tomorrow->currency, config->currency, time(nullptr)); - if(mult == 0) return PRICE_NO_VALUE; - multiplier *= mult; - } else if(pos >= 0) { - if(today == NULL) - return PRICE_NO_VALUE; - if(today->points[pos] == PRICE_NO_VALUE) - return PRICE_NO_VALUE; - value = today->points[pos] / 10000.0; - if(strcmp(today->measurementUnit, "KWH") == 0) { - // Multiplier is 1 - } else if(strcmp(today->measurementUnit, "MWH") == 0) { - multiplier *= 0.001; - } else { - return PRICE_NO_VALUE; - } - float mult = getCurrencyMultiplier(today->currency, config->currency, time(nullptr)); - if(mult == 0) return PRICE_NO_VALUE; - multiplier *= mult; - } - return value == PRICE_NO_VALUE ? PRICE_NO_VALUE : value * multiplier; + return value; } bool PriceService::loop() { @@ -223,43 +267,59 @@ bool PriceService::loop() { if(now < 10000) return false; // Grace period time_t t = time(nullptr); - if(t < FirmwareVersion::BuildEpoch) return false; - - #ifndef AMS2MQTT_PRICE_KEY - if(strlen(getToken()) == 0) { + if(t < FirmwareVersion::BuildEpoch) { return false; } - #endif - if(strlen(config->area) == 0) - return false; - if(strlen(config->currency) == 0) - return false; tmElements_t tm; breakTime(entsoeTz->toLocal(t), tm); if(currentDay == 0) { + #if defined(AMS_REMOTE_DEBUG) + if (debugger->isActive(RemoteDebug::INFO)) + #endif + debugger->printf_P(PSTR("(PriceService) Day init\n")); currentDay = tm.Day; - currentHour = tm.Hour; + currentPricePoint = getCurrentPricePointIndex(); } if(currentDay != tm.Day) { + #if defined(AMS_REMOTE_DEBUG) + if (debugger->isActive(RemoteDebug::INFO)) + #endif + debugger->printf_P(PSTR("(PriceService) Day reset\n")); if(today != NULL) delete today; if(tomorrow != NULL) { today = tomorrow; tomorrow = NULL; } currentDay = tm.Day; - currentHour = tm.Hour; + currentPricePoint = getCurrentPricePointIndex(); return today != NULL || (!config->enabled && priceConfig.capacity() != 0); // Only trigger MQTT publish if we have todays prices. - } else if(currentHour != tm.Hour) { - currentHour = tm.Hour; + } else if(currentPricePoint != getCurrentPricePointIndex()) { + #if defined(AMS_REMOTE_DEBUG) + if (debugger->isActive(RemoteDebug::INFO)) + #endif + debugger->printf_P(PSTR("(PriceService) Price point reset\n")); + currentPricePoint = getCurrentPricePointIndex(); return today != NULL || (!config->enabled && priceConfig.capacity() != 0); // Only trigger MQTT publish if we have todays prices. } if(!config->enabled) return false; + #ifndef AMS2MQTT_PRICE_KEY + if(strlen(getToken()) == 0) { + return false; + } + #endif + if(strlen(config->area) == 0){ + return false; + } + if(strlen(config->currency) == 0) { + return false; + } + bool readyToFetchForTomorrow = tomorrow == NULL && (tm.Hour > 13 || (tm.Hour == 13 && tm.Minute >= tomorrowFetchMinute)) && (lastTomorrowFetch == 0 || now - lastTomorrowFetch > (nextFetchDelayMinutes*60000)); if(today == NULL && (lastTodayFetch == 0 || now - lastTodayFetch > (nextFetchDelayMinutes*60000))) { @@ -273,6 +333,7 @@ bool PriceService::loop() { } today = NULL; } + currentPricePoint = getCurrentPricePointIndex(); return today != NULL && !readyToFetchForTomorrow; // Only trigger MQTT publish if we have todays prices and we are not immediately ready to fetch price for tomorrow. } @@ -289,6 +350,7 @@ bool PriceService::loop() { } tomorrow = NULL; } + currentPricePoint = getCurrentPricePointIndex(); return tomorrow != NULL; } @@ -434,24 +496,30 @@ PricesContainer* PriceService::fetchPrices(time_t t) { if (debugger->isActive(RemoteDebug::DEBUG)) #endif debugger->printf_P(PSTR("(PriceService) url: %s\n"), buf); - EntsoeA44Parser a44; - if(retrieve(buf, &a44) && a44.getPoint(0) != PRICE_NO_VALUE) { - PricesContainer* ret = new PricesContainer(); - a44.get(ret); + PricesContainer* ret = new PricesContainer("EOE"); + EntsoeA44Parser a44(ret); + if(retrieve(buf, &a44) && ret->hasPrice(0, PRICE_DIRECTION_IMPORT)) { return ret; } else { + delete ret; return NULL; } } else if(hub) { + #if defined(AMS_REMOTE_DEBUG) + if (debugger->isActive(RemoteDebug::DEBUG)) + #endif + debugger->printf_P(PSTR("(PriceService) Going to fetch prices from hub\n")); + tmElements_t tm; breakTime(entsoeTz->toLocal(t), tm); String data; - snprintf_P(buf, BufferSize, PSTR("http://hub.amsleser.no/hub/price/%s/%d/%d/%d?currency=%s"), + snprintf_P(buf, BufferSize, PSTR("http://hub.amsleser.no/hub/price/%s/%d/%d/%d/pt%dm?currency=%s"), config->area, tm.Year+1970, tm.Month, tm.Day, + config->resolutionInMinutes, config->currency ); #if defined(AMS_REMOTE_DEBUG) @@ -488,13 +556,37 @@ PricesContainer* PriceService::fetchPrices(time_t t) { GCMParser gcm(key, auth); int8_t gcmRet = gcm.parse(content, ctx); if(gcmRet > 0) { - PricesContainer* ret = new PricesContainer(); - for(uint8_t i = 0; i < 25; i++) { - ret->points[i] = PRICE_NO_VALUE; + AmsPriceV2Header* header = (AmsPriceV2Header*) (content+gcmRet); + + PricesContainer* ret = new PricesContainer(header->source); + #if defined(AMS_REMOTE_DEBUG) + if (debugger->isActive(RemoteDebug::DEBUG)) + #endif + debugger->printf_P(PSTR("(PriceService) Setting up price container with pt%dm, %dpts, edi: %d\n"), header->resolutionInMinutes, header->numberOfPoints, header->differentExportPrices); + + ret->setup(header->resolutionInMinutes, header->numberOfPoints, header->differentExportPrices); + ret->setCurrency(header->currency); + int32_t* points = (int32_t*) &header[1]; + + for(uint8_t i = 0; i < header->numberOfPoints; i++) { + int32_t intval = ntohl(points[i]); + float value = intval / 10000.0; + #if defined(AMS_REMOTE_DEBUG) + if (debugger->isActive(RemoteDebug::VERBOSE)) + #endif + debugger->printf_P(PSTR("(PriceService) Import price position and value received: %d :: %.2f\n"), i, value); + ret->setPrice(i, value, PRICE_DIRECTION_IMPORT); } - memcpy(ret, content+gcmRet, sizeof(*ret)); - for(uint8_t i = 0; i < 25; i++) { - ret->points[i] = ntohl(ret->points[i]); + if(header->differentExportPrices) { + for(uint8_t i = 0; i < header->numberOfPoints; i++) { + int32_t intval = ntohl(points[i]); + float value = intval / 10000.0; + #if defined(AMS_REMOTE_DEBUG) + if (debugger->isActive(RemoteDebug::VERBOSE)) + #endif + debugger->printf_P(PSTR("(PriceService) Export price position and value received: %d :: %.2f\n"), i, value); + ret->setPrice(i, value, PRICE_DIRECTION_EXPORT); + } } lastError = 0; nextFetchDelayMinutes = 1; @@ -658,4 +750,11 @@ bool PriceService::timeIsInPeriod(tmElements_t tm, PriceConfig pc) { } return makeTime(tms) <= makeTime(tm) && makeTime(tme) >= makeTime(tm); +} + +uint8_t PriceService::getCurrentPricePointIndex() { + time_t ts = time(nullptr); + tmElements_t tm; + breakTime(tz->toLocal(ts), tm); + return ((tm.Hour * 60) + tm.Minute) / getResolutionInMinutes(); } \ No newline at end of file diff --git a/lib/PriceService/src/PricesContainer.cpp b/lib/PriceService/src/PricesContainer.cpp new file mode 100644 index 00000000..60804189 --- /dev/null +++ b/lib/PriceService/src/PricesContainer.cpp @@ -0,0 +1,67 @@ +#include "PricesContainer.h" +#include + +PricesContainer::PricesContainer(char* source) { + strncpy(this->source, source, 4); +} + +void PricesContainer::setup(uint8_t resolutionInMinutes, uint8_t numberOfPoints, bool differentExportPrices) { + this->resolutionInMinutes = resolutionInMinutes; + this->differentExportPrices = differentExportPrices; + this->numberOfPoints = numberOfPoints; + this->points = new int32_t[numberOfPoints * (differentExportPrices ? 2 : 1)]; + memset(this->points, PRICE_NO_VALUE * 10000, numberOfPoints * (differentExportPrices ? 2 : 1) * sizeof(int32_t)); +} + +char* PricesContainer::getSource() { + return this->source; +} + +void PricesContainer::setCurrency(char* currency) { + strncpy(this->currency, currency, 4); +} + +char* PricesContainer::getCurrency() { + return this->currency; +} + +uint8_t PricesContainer::getResolutionInMinutes() { + return this->resolutionInMinutes; +} + +uint8_t PricesContainer::getNumberOfPoints() { + return this->numberOfPoints; +} + +void PricesContainer::setPrice(uint8_t point, float value, uint8_t direction) { + if(direction == PRICE_DIRECTION_EXPORT && !differentExportPrices) { + return; // Export prices not supported + } + if(direction != PRICE_DIRECTION_EXPORT) { + points[point] = static_cast(value * 10000); + } + if(differentExportPrices && direction != PRICE_DIRECTION_IMPORT) { + points[point + numberOfPoints] = static_cast(value * 10000); + } +} + +bool PricesContainer::hasPrice(uint8_t point, uint8_t direction) { + float val = getPrice(point, direction); + return val != PRICE_NO_VALUE; +} + +float PricesContainer::getPrice(uint8_t point, uint8_t direction) { + if(differentExportPrices && direction == PRICE_DIRECTION_EXPORT) { + if(point < numberOfPoints) { + return static_cast(points[point + numberOfPoints]) / 10000.0f; + } + } + + if(differentExportPrices && direction == PRICE_DIRECTION_BOTH) return PRICE_NO_VALUE; // Can't get a price for both directions if the export prices are different + + if(point < numberOfPoints) { + return static_cast(points[point]) / 10000.0f; + } + + return PRICE_NO_VALUE; // Invalid point +} \ No newline at end of file diff --git a/lib/RawMqttHandler/include/RawMqttHandler.h b/lib/RawMqttHandler/include/RawMqttHandler.h index d8f2bea7..24f82887 100644 --- a/lib/RawMqttHandler/include/RawMqttHandler.h +++ b/lib/RawMqttHandler/include/RawMqttHandler.h @@ -36,6 +36,7 @@ private: bool full; String topic; uint32_t lastThresholdPublish = 0; + bool hasExport = false; bool publishList1(AmsData* data, AmsData* meterState); bool publishList2(AmsData* data, AmsData* meterState); diff --git a/lib/RawMqttHandler/src/RawMqttHandler.cpp b/lib/RawMqttHandler/src/RawMqttHandler.cpp index b35dd49b..629e34ea 100644 --- a/lib/RawMqttHandler/src/RawMqttHandler.cpp +++ b/lib/RawMqttHandler/src/RawMqttHandler.cpp @@ -41,6 +41,15 @@ bool RawMqttHandler::publish(AmsData* update, AmsData* previousState, EnergyAcco publishList1(&data, previousState); loop(); } + + if(data.getListType() >= 2 && data.getActiveExportPower() > 0.0) { + hasExport = true; + } + + if(data.getListType() >= 3 && data.getActiveExportCounter() > 0.0) { + hasExport = true; + } + if(ea->isInitialized()) { publishRealtime(ea); loop(); @@ -230,7 +239,7 @@ bool RawMqttHandler::publishTemperatures(AmsConfiguration* config, HwTools* hw) bool RawMqttHandler::publishPrices(PriceService* ps) { if(topic.isEmpty() || !mqtt.connected()) return false; - if(ps->getValueForHour(PRICE_DIRECTION_IMPORT, 0) == PRICE_NO_VALUE) + if(!ps->hasPrice()) return false; time_t now = time(nullptr); @@ -241,7 +250,7 @@ bool RawMqttHandler::publishPrices(PriceService* ps) { float values[34]; for(int i = 0;i < 34; i++) values[i] = PRICE_NO_VALUE; for(uint8_t i = 0; i < 34; i++) { - float val = ps->getValueForHour(PRICE_DIRECTION_IMPORT, now, i); + float val = ps->getPriceForRelativeHour(PRICE_DIRECTION_IMPORT, i); values[i] = val; if(i > 23) continue; @@ -308,15 +317,33 @@ bool RawMqttHandler::publishPrices(PriceService* ps) { sprintf(ts6hr, "%04d-%02d-%02dT%02d:00:00Z", tm.Year+1970, tm.Month, tm.Day, tm.Hour); } - for(int i = 0; i < 34; i++) { - float val = values[i]; - if(val == PRICE_NO_VALUE) { - mqtt.publish(topic + "/price/" + String(i), "", true, 0); + mqtt.publish(topic + "/price/resolution", String(ps->getResolutionInMinutes()), true, 0); + mqtt.loop(); + + uint8_t relativeIndex = 0; + uint8_t startIndex = ps->getCurrentPricePointIndex(); + uint8_t numberOfPoints = ps->getNumberOfPointsAvailable(); + for(int i = startIndex; i < numberOfPoints; i++) { + float importVal = ps->getPricePoint(PRICE_DIRECTION_IMPORT, i); + if(importVal == PRICE_NO_VALUE) { + mqtt.publish(topic + "/price/import/" + String(relativeIndex), "", true, 0); mqtt.loop(); } else { - mqtt.publish(topic + "/price/" + String(i), String(val, 4), true, 0); + mqtt.publish(topic + "/price/import/" + String(relativeIndex), String(importVal, 4), true, 0); mqtt.loop(); } + + if(hasExport && ps->isExportPricesDifferentFromImport()) { + float exportVal = ps->getPricePoint(PRICE_DIRECTION_EXPORT, i); + if(exportVal == PRICE_NO_VALUE) { + mqtt.publish(topic + "/price/export/" + String(relativeIndex), "", true, 0); + mqtt.loop(); + } else { + mqtt.publish(topic + "/price/export/" + String(relativeIndex), String(exportVal, 4), true, 0); + mqtt.loop(); + } + } + relativeIndex++; } if(min != INT16_MAX) { mqtt.publish(topic + "/price/min", String(min, 4), true, 0); @@ -338,15 +365,6 @@ bool RawMqttHandler::publishPrices(PriceService* ps) { mqtt.publish(topic + "/price/cheapest/6hr", String(ts6hr), true, 0); mqtt.loop(); } - - float exportPrice = ps->getEnergyPriceForHour(PRICE_DIRECTION_EXPORT, now, 0); - if(exportPrice == PRICE_NO_VALUE) { - mqtt.publish(topic + "/exportprice/0", "", true, 0); - mqtt.loop(); - } else { - mqtt.publish(topic + "/exportprice/0", String(exportPrice, 4), true, 0); - mqtt.loop(); - } return true; } diff --git a/lib/SvelteUi/app/dist/index.js b/lib/SvelteUi/app/dist/index.js index 052de6d4..0ee446b2 100644 --- a/lib/SvelteUi/app/dist/index.js +++ b/lib/SvelteUi/app/dist/index.js @@ -1,7 +1,7 @@ -var Yu=Object.defineProperty;var Qu=(t,e,l)=>e in t?Yu(t,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[e]=l;var di=(t,e,l)=>(Qu(t,typeof e!="symbol"?e+"":e,l),l);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function l(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=l(i);fetch(i.href,s)}})();function We(){}function Cl(t,e){for(const l in e)t[l]=e[l];return t}function $f(t){return t()}function ds(){return Object.create(null)}function Bt(t){t.forEach($f)}function ri(t){return typeof t=="function"}function St(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let Xn;function ni(t,e){return t===e?!0:(Xn||(Xn=document.createElement("a")),Xn.href=e,t===Xn.href)}function Xu(t){return Object.keys(t).length===0}function Hi(t,...e){if(t==null){for(const n of e)n(void 0);return We}const l=t.subscribe(...e);return l.unsubscribe?()=>l.unsubscribe():l}function cn(t){let e;return Hi(t,l=>e=l)(),e}function ql(t,e,l){t.$$.on_destroy.push(Hi(e,l))}function Wi(t,e,l,n){if(t){const i=xf(t,e,l,n);return t[0](i)}}function xf(t,e,l,n){return t[1]&&n?Cl(l.ctx.slice(),t[1](n(e))):l.ctx}function Gi(t,e,l,n){if(t[2]&&n){const i=t[2](n(l));if(e.dirty===void 0)return i;if(typeof i=="object"){const s=[],a=Math.max(e.dirty.length,i.length);for(let r=0;r32){const e=[],l=t.ctx.length/32;for(let n=0;nt.removeEventListener(e,l,n)}function pn(t){return function(e){return e.preventDefault(),t.call(this,e)}}function u(t,e,l){l==null?t.removeAttribute(e):t.getAttribute(e)!==l&&t.setAttribute(e,l)}const $u=["width","height"];function Cn(t,e){const l=Object.getOwnPropertyDescriptors(t.__proto__);for(const n in e)e[n]==null?t.removeAttribute(n):n==="style"?t.style.cssText=e[n]:n==="__value"?t.value=t[n]=e[n]:l[n]&&l[n].set&&$u.indexOf(n)===-1?t[n]=e[n]:u(t,n,e[n])}function je(t){return t===""?null:+t}function xu(t){return Array.from(t.childNodes)}function q(t,e){e=""+e,t.data!==e&&(t.data=e)}function er(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function tr(t,e,l){~Ju.indexOf(l)?er(t,e):q(t,e)}function z(t,e){t.value=e??""}function wl(t,e,l,n){l==null?t.style.removeProperty(e):t.style.setProperty(e,l,n?"important":"")}function Ke(t,e,l){for(let n=0;n{a.source===n.contentWindow&&e()})):(n.src="about:blank",n.onload=()=>{s=ce(n.contentWindow,"resize",e),e()}),o(t,n),()=>{(i||s&&n.contentWindow)&&s(),N(n)}}function nr(t,e,{bubbles:l=!1,cancelable:n=!1}={}){return new CustomEvent(t,{detail:e,bubbles:l,cancelable:n})}function hs(t,e){return new t(e)}let yn;function Bn(t){yn=t}function Vn(){if(!yn)throw new Error("Function called outside component initialization");return yn}function eu(t){Vn().$$.on_mount.push(t)}function ir(t){Vn().$$.on_destroy.push(t)}function sr(){const t=Vn();return(e,l,{cancelable:n=!1}={})=>{const i=t.$$.callbacks[e];if(i){const s=nr(e,l,{cancelable:n});return i.slice().forEach(a=>{a.call(t,s)}),!s.defaultPrevented}return!0}}function jn(t,e){return Vn().$$.context.set(t,e),e}function on(t){return Vn().$$.context.get(t)}const bn=[],oi=[];let wn=[];const vs=[],tu=Promise.resolve();let Mi=!1;function lu(){Mi||(Mi=!0,tu.then(nu))}function or(){return lu(),tu}function At(t){wn.push(t)}const hi=new Set;let hn=0;function nu(){if(hn!==0)return;const t=yn;do{try{for(;hnt.indexOf(n)===-1?e.push(n):l.push(n)),l.forEach(n=>n()),wn=e}const ti=new Set;let fn;function ht(){fn={r:0,c:[],p:fn}}function vt(){fn.r||Bt(fn.c),fn=fn.p}function Z(t,e){t&&t.i&&(ti.delete(t),t.i(e))}function se(t,e,l,n){if(t&&t.o){if(ti.has(t))return;ti.add(t),fn.c.push(()=>{ti.delete(t),n&&(l&&t.d(1),n())}),t.o(e)}else n&&n()}function ut(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function Ni(t,e){const l={},n={},i={$$scope:1};let s=t.length;for(;s--;){const a=t[s],r=e[s];if(r){for(const f in a)f in r||(n[f]=1);for(const f in r)i[f]||(l[f]=r[f],i[f]=1);t[s]=r}else for(const f in a)i[f]=1}for(const a in n)a in l||(l[a]=void 0);return l}function Jn(t){return typeof t=="object"&&t!==null?t:{}}function Pe(t){t&&t.c()}function Me(t,e,l){const{fragment:n,after_update:i}=t.$$;n&&n.m(e,l),At(()=>{const s=t.$$.on_mount.map($f).filter(ri);t.$$.on_destroy?t.$$.on_destroy.push(...s):Bt(s),t.$$.on_mount=[]}),i.forEach(At)}function Ne(t,e){const l=t.$$;l.fragment!==null&&(fr(l.after_update),Bt(l.on_destroy),l.fragment&&l.fragment.d(e),l.on_destroy=l.fragment=null,l.ctx=[])}function ur(t,e){t.$$.dirty[0]===-1&&(bn.push(t),lu(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const b=h.length?h[0]:d;return c.ctx&&i(c.ctx[_],c.ctx[_]=b)&&(!c.skip_bound&&c.bound[_]&&c.bound[_](b),m&&ur(t,_)),d}):[],c.update(),m=!0,Bt(c.before_update),c.fragment=n?n(c.ctx):!1,e.target){if(e.hydrate){const _=xu(e.target);c.fragment&&c.fragment.l(_),_.forEach(N)}else c.fragment&&c.fragment.c();e.intro&&Z(t.$$.fragment),Me(t,e.target,e.anchor),nu()}Bn(f)}class qt{constructor(){di(this,"$$");di(this,"$$set")}$destroy(){Ne(this,1),this.$destroy=We}$on(e,l){if(!ri(l))return We;const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(l),()=>{const i=n.indexOf(l);i!==-1&&n.splice(i,1)}}$set(e){this.$$set&&!Xu(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const rr="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(rr);const bs=t=>typeof t>"u",iu=t=>typeof t=="function",su=t=>typeof t=="number";function cr(t){return!t.defaultPrevented&&t.button===0&&!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function ou(){let t=0;return()=>t++}function _r(){return Math.random().toString(36).substring(2)}const Ol=typeof window>"u";function au(t,e,l){return t.addEventListener(e,l),()=>t.removeEventListener(e,l)}const fu=(t,e)=>t?{}:{style:e},Pi=t=>({"aria-hidden":"true",...fu(t,"display:none;")}),vn=[];function uu(t,e){return{subscribe:ul(t,e).subscribe}}function ul(t,e=We){let l;const n=new Set;function i(r){if(St(t,r)&&(t=r,l)){const f=!vn.length;for(const c of n)c[1](),vn.push(c,t);if(f){for(let c=0;c{n.delete(c),n.size===0&&l&&(l(),l=null)}}return{set:i,update:s,subscribe:a}}function mr(t,e,l){const n=!Array.isArray(t),i=n?[t]:t;if(!i.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const s=e.length<2;return uu(l,(a,r)=>{let f=!1;const c=[];let m=0,_=We;const d=()=>{if(m)return;_();const b=e(n?c[0]:c,a,r);s?a(b):_=ri(b)?b:We},h=i.map((b,g)=>Hi(b,w=>{c[g]=w,m&=~(1<{m|=1<`@@svnav-ctx__${t}`,Ti=Kn("LOCATION"),Sn=Kn("ROUTER"),ru=Kn("ROUTE"),pr=Kn("ROUTE_PARAMS"),dr=Kn("FOCUS_ELEM"),cu=/^:(.+)/,Rn=(t,e,l)=>t.substr(e,l),qi=(t,e)=>Rn(t,0,e.length)===e,hr=t=>t==="",vr=t=>cu.test(t),_u=t=>t[0]==="*",br=t=>t.replace(/\*.*$/,""),mu=t=>t.replace(/(^\/+|\/+$)/g,"");function El(t,e=!1){const l=mu(t).split("/");return e?l.filter(Boolean):l}const vi=(t,e)=>t+(e?`?${e}`:""),Yi=t=>`/${mu(t)}`;function Yn(...t){const e=n=>El(n,!0).join("/"),l=t.map(e).join("/");return Yi(l)}const Qi=1,_i=2,mn=3,gr=4,pu=5,kr=6,du=7,wr=8,Cr=9,hu=10,vu=11,Sr={[Qi]:"Link",[_i]:"Route",[mn]:"Router",[gr]:"useFocus",[pu]:"useLocation",[kr]:"useMatch",[du]:"useNavigate",[wr]:"useParams",[Cr]:"useResolvable",[hu]:"useResolve",[vu]:"navigate"},Xi=t=>Sr[t];function Mr(t,e){let l;return t===_i?l=e.path?`path="${e.path}"`:"default":t===Qi?l=`to="${e.to}"`:t===mn&&(l=`basepath="${e.basepath||""}"`),`<${Xi(t)} ${l||""} />`}function Nr(t,e,l,n){const i=l&&Mr(n||t,l),s=i?` +var $u=Object.defineProperty;var xu=(t,e,l)=>e in t?$u(t,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[e]=l;var qi=(t,e,l)=>(xu(t,typeof e!="symbol"?e+"":e,l),l);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function l(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=l(i);fetch(i.href,o)}})();function ze(){}function Ml(t,e){for(const l in e)t[l]=e[l];return t}function nu(t){return t()}function go(){return Object.create(null)}function Wt(t){t.forEach(nu)}function Si(t){return typeof t=="function"}function Ct(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let ai;function hi(t,e){return t===e?!0:(ai||(ai=document.createElement("a")),ai.href=e,t===ai.href)}function er(t){return Object.keys(t).length===0}function to(t,...e){if(t==null){for(const n of e)n(void 0);return ze}const l=t.subscribe(...e);return l.unsubscribe?()=>l.unsubscribe():l}function rn(t){let e;return to(t,l=>e=l)(),e}function ql(t,e,l){t.$$.on_destroy.push(to(e,l))}function lo(t,e,l,n){if(t){const i=iu(t,e,l,n);return t[0](i)}}function iu(t,e,l,n){return t[1]&&n?Ml(l.ctx.slice(),t[1](n(e))):l.ctx}function no(t,e,l,n){if(t[2]&&n){const i=t[2](n(l));if(e.dirty===void 0)return i;if(typeof i=="object"){const o=[],a=Math.max(e.dirty.length,i.length);for(let r=0;r32){const e=[],l=t.ctx.length/32;for(let n=0;nt.removeEventListener(e,l,n)}function mn(t){return function(e){return e.preventDefault(),t.call(this,e)}}function u(t,e,l){l==null?t.removeAttribute(e):t.getAttribute(e)!==l&&t.setAttribute(e,l)}const nr=["width","height"];function Sn(t,e){const l=Object.getOwnPropertyDescriptors(t.__proto__);for(const n in e)e[n]==null?t.removeAttribute(n):n==="style"?t.style.cssText=e[n]:n==="__value"?t.value=t[n]=e[n]:l[n]&&l[n].set&&nr.indexOf(n)===-1?t[n]=e[n]:u(t,n,e[n])}function Be(t){return t===""?null:+t}function ir(t){return Array.from(t.childNodes)}function E(t,e){e=""+e,t.data!==e&&(t.data=e)}function or(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function sr(t,e,l){~lr.indexOf(l)?or(t,e):E(t,e)}function j(t,e){t.value=e??""}function Sl(t,e,l,n){l==null?t.style.removeProperty(e):t.style.setProperty(e,l,n?"important":"")}function ye(t,e,l){for(let n=0;n{a.source===n.contentWindow&&e()})):(n.src="about:blank",n.onload=()=>{o=re(n.contentWindow,"resize",e),e()}),s(t,n),()=>{(i||o&&n.contentWindow)&&o(),N(n)}}function fr(t,e,{bubbles:l=!1,cancelable:n=!1}={}){return new CustomEvent(t,{detail:e,bubbles:l,cancelable:n})}function ko(t,e){return new t(e)}let xn;function Zn(t){xn=t}function ni(){if(!xn)throw new Error("Function called outside component initialization");return xn}function so(t){ni().$$.on_mount.push(t)}function ur(t){ni().$$.on_destroy.push(t)}function rr(){const t=ni();return(e,l,{cancelable:n=!1}={})=>{const i=t.$$.callbacks[e];if(i){const o=fr(e,l,{cancelable:n});return i.slice().forEach(a=>{a.call(t,o)}),!o.defaultPrevented}return!0}}function Jn(t,e){return ni().$$.context.set(t,e),e}function on(t){return ni().$$.context.get(t)}const vn=[],gi=[];let wn=[];const wo=[],ou=Promise.resolve();let Bi=!1;function su(){Bi||(Bi=!0,ou.then(au))}function cr(){return su(),ou}function Et(t){wn.push(t)}const Ei=new Set;let dn=0;function au(){if(dn!==0)return;const t=xn;do{try{for(;dnt.indexOf(n)===-1?e.push(n):l.push(n)),l.forEach(n=>n()),wn=e}const pi=new Set;let an;function rt(){an={r:0,c:[],p:an}}function ct(){an.r||Wt(an.c),an=an.p}function X(t,e){t&&t.i&&(pi.delete(t),t.i(e))}function ee(t,e,l,n){if(t&&t.o){if(pi.has(t))return;pi.add(t),an.c.push(()=>{pi.delete(t),n&&(l&&t.d(1),n())}),t.o(e)}else n&&n()}function at(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function Ui(t,e){const l={},n={},i={$$scope:1};let o=t.length;for(;o--;){const a=t[o],r=e[o];if(r){for(const f in a)f in r||(n[f]=1);for(const f in r)i[f]||(l[f]=r[f],i[f]=1);t[o]=r}else for(const f in a)i[f]=1}for(const a in n)a in l||(l[a]=void 0);return l}function ui(t){return typeof t=="object"&&t!==null?t:{}}function Ne(t){t&&t.c()}function Se(t,e,l){const{fragment:n,after_update:i}=t.$$;n&&n.m(e,l),Et(()=>{const o=t.$$.on_mount.map(nu).filter(Si);t.$$.on_destroy?t.$$.on_destroy.push(...o):Wt(o),t.$$.on_mount=[]}),i.forEach(Et)}function Me(t,e){const l=t.$$;l.fragment!==null&&(mr(l.after_update),Wt(l.on_destroy),l.fragment&&l.fragment.d(e),l.on_destroy=l.fragment=null,l.ctx=[])}function pr(t,e){t.$$.dirty[0]===-1&&(vn.push(t),su(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const g=h.length?h[0]:d;return c.ctx&&i(c.ctx[_],c.ctx[_]=g)&&(!c.skip_bound&&c.bound[_]&&c.bound[_](g),m&&pr(t,_)),d}):[],c.update(),m=!0,Wt(c.before_update),c.fragment=n?n(c.ctx):!1,e.target){if(e.hydrate){const _=ir(e.target);c.fragment&&c.fragment.l(_),_.forEach(N)}else c.fragment&&c.fragment.c();e.intro&&X(t.$$.fragment),Se(t,e.target,e.anchor),au()}Zn(f)}class Tt{constructor(){qi(this,"$$");qi(this,"$$set")}$destroy(){Me(this,1),this.$destroy=ze}$on(e,l){if(!Si(l))return ze;const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(l),()=>{const i=n.indexOf(l);i!==-1&&n.splice(i,1)}}$set(e){this.$$set&&!er(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const dr="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(dr);const Co=t=>typeof t>"u",fu=t=>typeof t=="function",uu=t=>typeof t=="number";function hr(t){return!t.defaultPrevented&&t.button===0&&!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function ru(){let t=0;return()=>t++}function vr(){return Math.random().toString(36).substring(2)}const Ol=typeof window>"u";function cu(t,e,l){return t.addEventListener(e,l),()=>t.removeEventListener(e,l)}const _u=(t,e)=>t?{}:{style:e},zi=t=>({"aria-hidden":"true",..._u(t,"display:none;")}),hn=[];function mu(t,e){return{subscribe:rl(t,e).subscribe}}function rl(t,e=ze){let l;const n=new Set;function i(r){if(Ct(t,r)&&(t=r,l)){const f=!hn.length;for(const c of n)c[1](),hn.push(c,t);if(f){for(let c=0;c{n.delete(c),n.size===0&&l&&(l(),l=null)}}return{set:i,update:o,subscribe:a}}function br(t,e,l){const n=!Array.isArray(t),i=n?[t]:t;if(!i.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const o=e.length<2;return mu(l,(a,r)=>{let f=!1;const c=[];let m=0,_=ze;const d=()=>{if(m)return;_();const g=e(n?c[0]:c,a,r);o?a(g):_=Si(g)?g:ze},h=i.map((g,b)=>to(g,C=>{c[b]=C,m&=~(1<{m|=1<`@@svnav-ctx__${t}`,ji=ii("LOCATION"),Mn=ii("ROUTER"),pu=ii("ROUTE"),gr=ii("ROUTE_PARAMS"),kr=ii("FOCUS_ELEM"),du=/^:(.+)/,Qn=(t,e,l)=>t.substr(e,l),Hi=(t,e)=>Qn(t,0,e.length)===e,wr=t=>t==="",Cr=t=>du.test(t),hu=t=>t[0]==="*",Sr=t=>t.replace(/\*.*$/,""),vu=t=>t.replace(/(^\/+|\/+$)/g,"");function El(t,e=!1){const l=vu(t).split("/");return e?l.filter(Boolean):l}const Di=(t,e)=>t+(e?`?${e}`:""),ao=t=>`/${vu(t)}`;function oi(...t){const e=n=>El(n,!0).join("/"),l=t.map(e).join("/");return ao(l)}const fo=1,Ni=2,_n=3,Mr=4,bu=5,Nr=6,gu=7,Pr=8,Tr=9,ku=10,wu=11,qr={[fo]:"Link",[Ni]:"Route",[_n]:"Router",[Mr]:"useFocus",[bu]:"useLocation",[Nr]:"useMatch",[gu]:"useNavigate",[Pr]:"useParams",[Tr]:"useResolvable",[ku]:"useResolve",[wu]:"navigate"},uo=t=>qr[t];function Er(t,e){let l;return t===Ni?l=e.path?`path="${e.path}"`:"default":t===fo?l=`to="${e.to}"`:t===_n&&(l=`basepath="${e.basepath||""}"`),`<${uo(t)} ${l||""} />`}function Dr(t,e,l,n){const i=l&&Er(n||t,l),o=i?` -Occurred in: ${i}`:"",a=Xi(t),r=iu(e)?e(a):e;return`<${a}> ${r}${s}`}const bu=t=>(...e)=>t(Nr(...e)),gu=bu(t=>{throw new Error(t)}),ai=bu(console.warn),gs=4,Pr=3,Tr=2,qr=1,Er=1;function Dr(t,e){const l=t.default?0:El(t.fullPath).reduce((n,i)=>{let s=n;return s+=gs,hr(i)?s+=Er:vr(i)?s+=Tr:_u(i)?s-=gs+qr:s+=Pr,s},0);return{route:t,score:l,index:e}}function Ar(t){return t.map(Dr).sort((e,l)=>e.scorel.score?-1:e.index-l.index)}function ku(t,e){let l,n;const[i]=e.split("?"),s=El(i),a=s[0]==="",r=Ar(t);for(let f=0,c=r.length;f({...m,params:d,uri:k});if(m.default){n=h(e);continue}const b=El(m.fullPath),g=Math.max(s.length,b.length);let w=0;for(;w{c===".."?f.pop():c!=="."&&f.push(c)}),vi(`/${f.join("/")}`,n)}function ks(t,e){const{pathname:l,hash:n="",search:i="",state:s}=t,a=El(e,!0),r=El(l,!0);for(;a.length;)a[0]!==r[0]&&gu(mn,`Invalid state: All locations must begin with the basepath "${e}", found "${l}"`),a.shift(),r.shift();return{pathname:Yn(...r),hash:n,search:i,state:s}}const ws=t=>t.length===1?"":t,Zi=t=>{const e=t.indexOf("?"),l=t.indexOf("#"),n=e!==-1,i=l!==-1,s=i?ws(Rn(t,l)):"",a=i?Rn(t,0,l):t,r=n?ws(Rn(a,e)):"";return{pathname:(n?Rn(a,0,e):a)||"/",search:r,hash:s}},Or=t=>{const{pathname:e,search:l,hash:n}=t;return e+l+n};function Ir(t,e,l){return Yn(l,Lr(t,e))}function Rr(t,e){const l=Yi(br(t)),n=El(l,!0),i=El(e,!0).slice(0,n.length),s=wu({fullPath:l},Yn(...i));return s&&s.uri}const bi="POP",Fr="PUSH",Ur="REPLACE";function gi(t){return{...t.location,pathname:encodeURI(decodeURI(t.location.pathname)),state:t.history.state,_key:t.history.state&&t.history.state._key||"initial"}}function Br(t){let e=[],l=gi(t),n=bi;const i=(s=e)=>s.forEach(a=>a({location:l,action:n}));return{get location(){return l},listen(s){e.push(s);const a=()=>{l=gi(t),n=bi,i([s])};i([s]);const r=au(t,"popstate",a);return()=>{r(),e=e.filter(f=>f!==s)}},navigate(s,a){const{state:r={},replace:f=!1}=a||{};if(n=f?Ur:Fr,su(s))a&&ai(vu,"Navigation options (state or replace) are not supported, when passing a number as the first argument to navigate. They are ignored."),n=bi,t.history.go(s);else{const c={...r,_key:_r()};try{t.history[f?"replaceState":"pushState"](c,"",s)}catch{t.location[f?"replace":"assign"](s)}}l=gi(t),i()}}}function ki(t,e){return{...Zi(e),state:t}}function jr(t="/"){let e=0,l=[ki(null,t)];return{get entries(){return l},get location(){return l[e]},addEventListener(){},removeEventListener(){},history:{get state(){return l[e].state},pushState(n,i,s){e++,l=l.slice(0,e),l.push(ki(n,s))},replaceState(n,i,s){l[e]=ki(n,s)},go(n){const i=e+n;i<0||i>l.length-1||(e=i)}}}}const zr=!!(!Ol&&window.document&&window.document.createElement),yr=!Ol&&window.location.origin==="null",Cu=Br(zr&&!yr?window:jr()),{navigate:sn}=Cu;let Dl=null,Su=!0;function Hr(t,e){const l=document.querySelectorAll("[data-svnav-router]");for(let n=0;nDl.level||t.level===Dl.level&&Hr(t.routerId,Dl.routerId))&&(Dl=t)}function Gr(){Dl=null}function Vr(){Su=!1}function Cs(t){if(!t)return!1;const e="tabindex";try{if(!t.hasAttribute(e)){t.setAttribute(e,"-1");let l;l=au(t,"blur",()=>{t.removeAttribute(e),l()})}return t.focus(),document.activeElement===t}catch{return!1}}function Kr(t,e){return Number(t.dataset.svnavRouteEnd)===e}function Yr(t){return/^H[1-6]$/i.test(t.tagName)}function Ss(t,e=document){return e.querySelector(t)}function Qr(t){let l=Ss(`[data-svnav-route-start="${t}"]`).nextElementSibling;for(;!Kr(l,t);){if(Yr(l))return l;const n=Ss("h1,h2,h3,h4,h5,h6",l);if(n)return n;l=l.nextElementSibling}return null}function Xr(t){Promise.resolve(cn(t.focusElement)).then(e=>{const l=e||Qr(t.id);l||ai(mn,`Could not find an element to focus. You should always render a header for accessibility reasons, or set a custom focus element via the "useFocus" hook. If you don't want this Route or Router to manage focus, pass "primary={false}" to it.`,t,_i),!Cs(l)&&Cs(document.documentElement)})}const Zr=(t,e,l)=>(n,i)=>or().then(()=>{if(!Dl||Su){Vr();return}if(n&&Xr(Dl.route),t.announcements&&i){const{path:s,fullPath:a,meta:r,params:f,uri:c}=Dl.route,m=t.createAnnouncement({path:s,fullPath:a,meta:r,params:f,uri:c},cn(l));Promise.resolve(m).then(_=>{e.set(_)})}Gr()}),Jr="position:fixed;top:-1px;left:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;";function $r(t){let e,l,n=[{role:"status"},{"aria-atomic":"true"},{"aria-live":"polite"},{"data-svnav-announcer":""},fu(t[6],Jr)],i={};for(let s=0;s`Navigated to ${Q.uri}`,announcements:!0,...b},k=m,O=Yi(m),L=on(Ti),R=on(Sn),M=!L,I=e1(),F=h&&!(R&&!R.manageFocus),j=ul("");ql(t,j,Q=>l(0,r=Q));const V=R?R.disableInlineStyles:g,y=ul([]);ql(t,y,Q=>l(20,a=Q));const T=ul(null);ql(t,T,Q=>l(18,i=Q));let B=!1;const X=M?0:R.level+1,K=M?ul((()=>ks(Ol?Zi(_):d.location,O))()):L;ql(t,K,Q=>l(17,n=Q));const Y=ul(n);ql(t,Y,Q=>l(19,s=Q));const U=Zr(w,j,K),G=Q=>ne=>ne.filter(re=>re.id!==Q);function oe(Q){if(Ol){if(B)return;const ne=wu(Q,n.pathname);if(ne)return B=!0,ne}else y.update(ne=>{const re=G(Q.id)(ne);return re.push(Q),re})}function le(Q){y.update(G(Q))}return!M&&m!==Ms&&ai(mn,'Only top-level Routers can have a "basepath" prop. It is ignored.',{basepath:m}),M&&(eu(()=>d.listen(ne=>{const re=ks(ne.location,O);Y.set(n),K.set(re)})),jn(Ti,K)),jn(Sn,{activeRoute:T,registerRoute:oe,unregisterRoute:le,manageFocus:F,level:X,id:I,history:M?d:R.history,basepath:M?O:R.basepath,disableInlineStyles:V}),t.$$set=Q=>{"basepath"in Q&&l(11,m=Q.basepath),"url"in Q&&l(12,_=Q.url),"history"in Q&&l(13,d=Q.history),"primary"in Q&&l(14,h=Q.primary),"a11y"in Q&&l(15,b=Q.a11y),"disableInlineStyles"in Q&&l(16,g=Q.disableInlineStyles),"$$scope"in Q&&l(21,c=Q.$$scope)},t.$$.update=()=>{if(t.$$.dirty[0]&2048&&m!==k&&ai(mn,'You cannot change the "basepath" prop. It is ignored.'),t.$$.dirty[0]&1179648){const Q=ku(a,n.pathname);T.set(Q)}if(t.$$.dirty[0]&655360&&M){const Q=!!n.hash,ne=!Q&&F,re=!Q||n.pathname!==s.pathname;U(ne,re)}t.$$.dirty[0]&262144&&F&&i&&i.primary&&Wr({level:X,routerId:I,route:i})},[r,w,M,I,F,j,V,y,T,K,Y,m,_,d,h,b,g,n,i,s,a,c,f]}class l1 extends qt{constructor(e){super(),Tt(this,e,t1,xr,St,{basepath:11,url:12,history:13,primary:14,a11y:15,disableInlineStyles:16},null,[-1,-1])}}const Mu=l1;function Qn(t,e,l=Sn,n=mn){on(l)||gu(t,s=>`You cannot use ${s} outside of a ${Xi(n)}.`,e)}const n1=t=>{const{subscribe:e}=on(t);return{subscribe:e}};function Nu(){return Qn(pu),n1(Ti)}function Pu(){const{history:t}=on(Sn);return t}function Tu(){const t=on(ru);return t?mr(t,e=>e.base):ul("/")}function qu(){Qn(hu);const t=Tu(),{basepath:e}=on(Sn);return n=>Ir(n,cn(t),e)}function i1(){Qn(du);const t=qu(),{navigate:e}=Pu();return(n,i)=>{const s=su(n)?n:t(n);return e(s,i)}}const s1=t=>({params:t&16,location:t&8}),Ns=t=>({params:Ol?cn(t[10]):t[4],location:t[3],navigate:t[11]});function Ps(t){let e,l;return e=new Mu({props:{primary:t[1],$$slots:{default:[f1]},$$scope:{ctx:t}}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&2&&(s.primary=n[1]),i&528409&&(s.$$scope={dirty:i,ctx:n}),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function o1(t){let e;const l=t[18].default,n=Wi(l,t,t[19],Ns);return{c(){n&&n.c()},m(i,s){n&&n.m(i,s),e=!0},p(i,s){n&&n.p&&(!e||s&524312)&&Vi(n,l,i,i[19],e?Gi(l,i[19],s,s1):Ki(i[19]),Ns)},i(i){e||(Z(n,i),e=!0)},o(i){se(n,i),e=!1},d(i){n&&n.d(i)}}}function a1(t){let e,l,n;const i=[{location:t[3]},{navigate:t[11]},Ol?cn(t[10]):t[4],t[12]];var s=t[0];function a(r,f){let c={};for(let m=0;m{Ne(c,1)}),vt()}s?(e=hs(s,a(r,f)),Pe(e.$$.fragment),Z(e.$$.fragment,1),Me(e,l.parentNode,l)):e=null}else if(s){const c=f&7192?Ni(i,[f&8&&{location:r[3]},f&2048&&{navigate:r[11]},f&1040&&Jn(Ol?cn(r[10]):r[4]),f&4096&&Jn(r[12])]):{};e.$set(c)}},i(r){n||(e&&Z(e.$$.fragment,r),n=!0)},o(r){e&&se(e.$$.fragment,r),n=!1},d(r){r&&N(l),e&&Ne(e,r)}}}function f1(t){let e,l,n,i;const s=[a1,o1],a=[];function r(f,c){return f[0]!==null?0:1}return e=r(t),l=a[e]=s[e](t),{c(){l.c(),n=yt()},m(f,c){a[e].m(f,c),P(f,n,c),i=!0},p(f,c){let m=e;e=r(f),e===m?a[e].p(f,c):(ht(),se(a[m],1,1,()=>{a[m]=null}),vt(),l=a[e],l?l.p(f,c):(l=a[e]=s[e](f),l.c()),Z(l,1),l.m(n.parentNode,n))},i(f){i||(Z(l),i=!0)},o(f){se(l),i=!1},d(f){f&&N(n),a[e].d(f)}}}function u1(t){let e,l,n,i,s,a=[Pi(t[7]),{"data-svnav-route-start":t[5]}],r={};for(let _=0;_{f=null}),vt())},i(_){s||(Z(f),s=!0)},o(_){se(f),s=!1},d(_){_&&(N(e),N(l),N(n),N(i)),f&&f.d(_)}}}const r1=ou();function c1(t,e,l){let n;const i=["path","component","meta","primary"];let s=si(e,i),a,r,f,c,{$$slots:m={},$$scope:_}=e,{path:d=""}=e,{component:h=null}=e,{meta:b={}}=e,{primary:g=!0}=e;Qn(_i,e);const w=r1(),{registerRoute:k,unregisterRoute:O,activeRoute:L,disableInlineStyles:R}=on(Sn);ql(t,L,B=>l(16,a=B));const M=Tu();ql(t,M,B=>l(17,f=B));const I=Nu();ql(t,I,B=>l(3,r=B));const F=ul(null);let j;const V=ul(),y=ul({});ql(t,y,B=>l(4,c=B)),jn(ru,V),jn(pr,y),jn(dr,F);const T=i1();return Ol||ir(()=>O(w)),t.$$set=B=>{l(24,e=Cl(Cl({},e),ii(B))),l(12,s=si(e,i)),"path"in B&&l(13,d=B.path),"component"in B&&l(0,h=B.component),"meta"in B&&l(14,b=B.meta),"primary"in B&&l(1,g=B.primary),"$$scope"in B&&l(19,_=B.$$scope)},t.$$.update=()=>{if(t.$$.dirty&155658){const B=d==="",X=Yn(f,d),H={id:w,path:d,meta:b,default:B,fullPath:B?"":X,base:B?f:Rr(X,r.pathname),primary:g,focusElement:F};V.set(H),l(15,j=k(H))}if(t.$$.dirty&98304&&l(2,n=!!(j||a&&a.id===w)),t.$$.dirty&98308&&n){const{params:B}=j||a;y.set(B)}},e=ii(e),[h,g,n,r,c,w,L,R,M,I,y,T,s,d,b,j,a,f,m,_]}class _1 extends qt{constructor(e){super(),Tt(this,e,c1,u1,St,{path:13,component:0,meta:14,primary:1})}}const kl=_1;function m1(t){let e,l,n,i;const s=t[13].default,a=Wi(s,t,t[12],null);let r=[{href:t[0]},t[2],t[1]],f={};for(let c=0;cl(11,_=F));const L=sr(),R=qu(),{navigate:M}=Pu();function I(F){L("click",F),cr(F)&&(F.preventDefault(),M(n,{state:w,replace:a||g}))}return t.$$set=F=>{l(19,e=Cl(Cl({},e),ii(F))),l(18,m=si(e,c)),"to"in F&&l(5,b=F.to),"replace"in F&&l(6,g=F.replace),"state"in F&&l(7,w=F.state),"getProps"in F&&l(8,k=F.getProps),"$$scope"in F&&l(12,h=F.$$scope)},t.$$.update=()=>{t.$$.dirty&2080&&l(0,n=R(b,_)),t.$$.dirty&2049&&l(10,i=qi(_.pathname,n)),t.$$.dirty&2049&&l(9,s=n===_.pathname),t.$$.dirty&2049&&(a=Zi(n)===Or(_)),t.$$.dirty&512&&l(2,r=s?{"aria-current":"page"}:{}),l(1,f=(()=>{if(iu(k)){const F=k({location:_,href:n,isPartiallyCurrent:i,isCurrent:s});return{...m,...F}}return m})())},e=ii(e),[n,f,r,O,I,b,g,w,k,s,i,_,h,d]}class d1 extends qt{constructor(e){super(),Tt(this,e,p1,m1,St,{to:5,replace:6,state:7,getProps:8})}}const gl=d1;function nn(t){return t===1?"green":t===2?"yellow":t===3?"red":"gray"}function h1(t,e){return t>218&&t<242?"#23ac05":t>212&&t<248?"#b1d900":t>208&&t<252?"#a3b200":"#b20000"}function mi(t,e){let l;return t>90?l="#b20000":t>85?l="#b19601":t>80?l="#a3b200":t>75?l="#569f12":l="#23ac05",l}function Hn(t){return t>75?"#23ac05":t>50?"#77d900":t>25?"#94d900":"#569f12"}function fi(t){switch(t){case 1:return"Aidon";case 2:return"Kaifa";case 3:return"Kamstrup";case 8:return"Iskra";case 9:return"Landis+Gyr";case 10:return"Sagemcom";default:return"Unknown"}}function wt(t){for(t=t.toString();t.length<2;)t="0"+t;return t}function Qe(t,e){switch(e){case 5:switch(t){case"esp8266":return"Pow-K (GPIO12)";case"esp32s2":return"Pow-K+"}case 7:switch(t){case"esp8266":return"Pow-U (GPIO12)";case"esp32s2":return"Pow-U+"}case 6:return"Pow-P1";case 51:return"Wemos S2 mini";case 50:return"Generic ESP32-S2";case 201:return"Wemos LOLIN D32";case 202:return"Adafruit HUZZAH32";case 203:return"DevKitC";case 241:return"LilyGO T-ETH-POE";case 242:return"M5 PoESP32";case 243:return"WT32-ETH01";case 245:return"wESP32";case 200:return"Generic ESP32";case 2:return"HAN Reader 2.0 by Max Spencer";case 0:return"Custom hardware by Roar Fredriksen";case 1:return"Kamstrup module by Egil Opsahl";case 8:return"µHAN mosquito by dbeinder";case 3:return"Pow-K (UART0)";case 4:return"Pow-U (UART0)";case 101:return"Wemos D1 mini";case 100:return"Generic ESP8266";case 70:return"Generic ESP32-C3";case 71:return"ESP32-C3-DevKitM-1";case 80:return"Generic ESP32-S3"}return"Unknown"}function zn(t){switch(t){case 2:case 4:case 7:return!0}return!1}function Xt(t,e){return t==1||t==2&&e}function hl(t){return"https://github.com/UtilitechAS/amsreader-firmware/wiki/"+t}function Yt(t,e){return t==null||isNaN(t)?"-":(isNaN(e)&&(e=t<1?2:t<10?1:0),t.toFixed(e))}function Il(t,e){return t.setTime(t.getTime()+e*36e5),t}function v1(t){return t=="EOE"?"ENTSO-E":t=="HKS"?"hvakosterstrommen.no":t=="EDS"?"Energi Data Service":t=="MIX"?"Mixed sources":"Unknown ("+t+")"}function b1(t){return t=="EOE"?"https://transparency.entsoe.eu/":t=="HKS"?"https://www.hvakosterstrommen.no/":t=="EDS"?"https://www.energidataservice.dk/":"#"}let $n=0;function Wn(t,e){var l="";$n++;var n=function(){setTimeout(Wn,1e3,t,e)};if(t.net.ip&&$n%3==0){if(!t.net.ip){n();return}l="http://"+t.net.ip}else t.hostname&&$n%3==1?l="http://"+t.hostname:t.hostname&&$n%3==2?l="http://"+t.hostname+".local":l="";console&&console.log("Trying url "+l),e&&e(l);var i=new XMLHttpRequest;i.timeout=5e3,i.addEventListener("abort",n),i.addEventListener("error",n),i.addEventListener("timeout",n),i.addEventListener("load",function(s){window.location.href=l||"/"}),i.open("GET",l+"/is-alive",!0),i.send()}function tl(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Ts(t){return t.startsWith("esp32")?"esp32":t}function _l(t,e){let l=[t,e];return typeof t>"u"?(l[0]="-",l[1]=e):t>=1e9?(l[0]=(t/1e6).toFixed(t>1e10?0:1),l[1]="M"+e):t>1e4?(l[0]=(t/1e3).toFixed(t>1e6?0:t>1e5?1:2),l[1]="k"+e):(l[0]=t.toFixed(0),l[1]=e),l}function Gn(t,e){let l=[Yt(t,2),e];if(typeof t>"u")l[0]="-",l[1]=e;else if(Math.abs(t*100)<100){switch(l[0]=Yt(t*100,2),e){case"NOK":case"DKK":e="øre";break;case"SEK":e="öre";break;case"EUR":e="cent";break;case"CHF":e="rp.";break;default:e=e+"/100"}l[1]=e}return l}let _n="((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}",Rl="[\\x20-\\x7E]+",Mn="[\\x20-\\xFF]+",ui="[A-Za-z0-9_\\-]+",Eu="[0-9A-Fa-f]+",In="[0-9]+",li={},Ei=[];async function g1(t,e={}){const{timeout:l=8e3}=e,n=new AbortController,i=setTimeout(()=>n.abort(),l),s=await fetch(t,{...e,signal:n.signal});return clearTimeout(i),s}let wi;async function Du(){if(Ei.length){let t=Ei.shift();delete li[t.resource];try{let e=await g1(t.resource,t.options);for(let l in t.callbacks)t.callbacks[l](e.clone())}catch(e){console.error("Error calling "+t.resource,e);for(let l in t.callbacks)t.callbacks[l]()}}wi&&clearTimeout(wi),wi=setTimeout(Du,100)}Du();async function Sl(t,e={}){let l;return li[t]?l=li[t]:(l={resource:t,options:e,callbacks:[]},li[t]=l,Ei.push(l)),new Promise(i=>l.callbacks.push(i))}let Tl={version:"",chip:"",mac:null,apmac:null,vndcfg:null,usrcfg:null,fwconsent:null,booting:!1,upgrading:!1,ui:{},security:0,boot_reason:0,upgrade:{x:-1,e:0,f:null,t:null},trying:null,if:{eth:!1}};async function pi(){Tl=await(await Sl("sysinfo.json?t="+Math.floor(Date.now()/1e3))).json(),pl.set(Tl)}const pl=ul(Tl,t=>(pi(),function(){}));function k1(t){pl.update(e=>(e.trying=t,e))}let xn=0,qs=-127,Es=null,w1={};const C1=uu(w1,t=>{let e,l;async function n(){Sl("data.json").then(i=>i.json()).then(i=>{t(i),qs!=i.t&&(qs=i.t,setTimeout(S1,2e3)),Es==null&&i.pe&&i.p!=null&&(Es=i.p,Lu()),(!Tl||!Tl.chip||Tl.booting||xn>1&&!zn(Tl.board))&&(pi(),Al&&clearTimeout(Al),Al=setTimeout(Li,2e3),Ll&&clearTimeout(Ll),Ll=setTimeout(Ii,3e3)),i.u,Al||(Al=Li()),Ll||(Ll=Ii());let s=5e3;if(zn(Tl.board)&&i.v>2.5){let a=3.3-Math.min(3.3,i.v);a>0&&(s=Math.max(a,.1)*10*5e3)}s>5e3&&console.log("Next in "+s+"ms"),e&&clearTimeout(e),e=setTimeout(n,s),xn=0}).catch(i=>{xn++,xn>3?(t({em:3,hm:0,wm:0,mm:0}),e=setTimeout(n,15e3),l||(l=setTimeout(Wn,5e3,Tl,k1))):e=setTimeout(n,zn(Tl.board)?1e4:5e3)})}return n(),function(){clearTimeout(e)}});let Di={},Fn;const Ji=ul(Di);async function Au(){let t=!1;Ji.update(e=>{for(var l=0;l<36;l++){if(e[wt(l)]==null){t=l<12;break}e[wt(l)]=e[wt(l+1)]}return e}),t?Lu():Fn=setTimeout(Au,(60-new Date().getMinutes())*6e4)}async function Lu(){Fn&&(clearTimeout(Fn),Fn=0),Di=await(await Sl("energyprice.json")).json(),Ji.set(Di),Fn=setTimeout(Au,(60-new Date().getMinutes())*6e4)}let Ai={},Al;async function Li(){Al&&(clearTimeout(Al),Al=0),Ai=await(await Sl("dayplot.json")).json(),Ou.set(Ai),Al=setTimeout(Li,(60-new Date().getMinutes())*6e4+20)}const Ou=ul(Ai,t=>function(){});let Oi={},Ll;async function Ii(){Ll&&(clearTimeout(Ll),Ll=0),Oi=await(await Sl("monthplot.json")).json(),Iu.set(Oi),Ll=setTimeout(Ii,(24-new Date().getHours())*36e5+40)}const Iu=ul(Oi,t=>function(){});let Ri={};async function S1(){Ri=await(await Sl("temperature.json")).json(),Ru.set(Ri)}const Ru=ul(Ri,t=>function(){});let Fi={},ei;async function Fu(){ei&&(clearTimeout(ei),ei=0),Fi=await(await Sl("tariff.json")).json(),Uu.set(Fi),ei=setTimeout(Fu,(60-new Date().getMinutes())*6e4+30)}const Uu=ul(Fi,t=>function(){});let gn={c:-1,n:[]};async function M1(){let e=await(await Sl("wifiscan.json",{timeout:3e4})).json(),l=[];gn.c=0,gn.n=[];for(let n=0;n(M1(),function(){}));let Ui=!1;const Ml=ul(Ui);async function Bu(t){Ui=await(await Sl("translations.json"+(t?"?lang="+t:""))).json(),Ml.set(Ui)}Bu();function Ds(t){return"WARNING: "+t+" must be connected to an external power supply during firmware upgrade. Failure to do so may cause power-down during upload resulting in non-functioning unit."}async function ju(t){return await(await fetch("upgrade?expected_version="+t,{method:"POST"})).json()}function As(t){var f;let e=(((f=t[1].header)==null?void 0:f.uptime)??"Up")+"",l,n,i;function s(c,m){return c[2]>1?A1:c[2]>0?D1:c[3]>1?E1:c[3]>0?q1:c[4]>1?T1:c[4]>0?P1:N1}let a=s(t),r=a(t);return{c(){l=C(e),n=v(),r.c(),i=yt()},m(c,m){P(c,l,m),P(c,n,m),r.m(c,m),P(c,i,m)},p(c,m){var _;m&2&&e!==(e=(((_=c[1].header)==null?void 0:_.uptime)??"Up")+"")&&q(l,e),a===(a=s(c))&&r?r.p(c,m):(r.d(1),r=a(c),r&&(r.c(),r.m(i.parentNode,i)))},d(c){c&&(N(l),N(n),N(i)),r.d(c)}}}function N1(t){var s;let e,l,n=(((s=t[1].common)==null?void 0:s.seconds)??"s")+"",i;return{c(){e=C(t[0]),l=v(),i=C(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&1&&q(e,a[0]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.seconds)??"s")+"")&&q(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function P1(t){var s;let e,l,n=(((s=t[1].common)==null?void 0:s.minute)??"m")+"",i;return{c(){e=C(t[4]),l=v(),i=C(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&16&&q(e,a[4]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.minute)??"m")+"")&&q(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function T1(t){var s;let e,l,n=(((s=t[1].common)==null?void 0:s.minutes)??"m")+"",i;return{c(){e=C(t[4]),l=v(),i=C(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&16&&q(e,a[4]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.minutes)??"m")+"")&&q(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function q1(t){var s;let e,l,n=(((s=t[1].common)==null?void 0:s.hour)??"h")+"",i;return{c(){e=C(t[3]),l=v(),i=C(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&8&&q(e,a[3]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.hour)??"h")+"")&&q(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function E1(t){var s;let e,l,n=(((s=t[1].common)==null?void 0:s.hours)??"h")+"",i;return{c(){e=C(t[3]),l=v(),i=C(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&8&&q(e,a[3]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.hours)??"h")+"")&&q(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function D1(t){var s;let e,l,n=(((s=t[1].common)==null?void 0:s.day)??"d")+"",i;return{c(){e=C(t[2]),l=v(),i=C(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&4&&q(e,a[2]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.day)??"d")+"")&&q(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function A1(t){var s;let e,l,n=(((s=t[1].common)==null?void 0:s.days)??"d")+"",i;return{c(){e=C(t[2]),l=v(),i=C(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&4&&q(e,a[2]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.days)??"d")+"")&&q(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function L1(t){let e,l=t[0]&&As(t);return{c(){l&&l.c(),e=yt()},m(n,i){l&&l.m(n,i),P(n,e,i)},p(n,[i]){n[0]?l?l.p(n,i):(l=As(n),l.c(),l.m(e.parentNode,e)):l&&(l.d(1),l=null)},i:We,o:We,d(n){n&&N(e),l&&l.d(n)}}}function O1(t,e,l){let{epoch:n}=e,i={};Ml.subscribe(f=>{l(1,i=f)});let s=0,a=0,r=0;return t.$$set=f=>{"epoch"in f&&l(0,n=f.epoch)},t.$$.update=()=>{t.$$.dirty&1&&(l(2,s=Math.floor(n/86400)),l(3,a=Math.floor(n/3600)),l(4,r=Math.floor(n/60)))},[n,i,s,a,r]}class I1 extends qt{constructor(e){super(),Tt(this,e,O1,L1,St,{epoch:0})}}function R1(t){let e,l,n;return{c(){e=p("span"),l=C(t[2]),u(e,"title",t[1]),u(e,"class",n="bd-"+t[0])},m(i,s){P(i,e,s),o(e,l)},p(i,[s]){s&4&&q(l,i[2]),s&2&&u(e,"title",i[1]),s&1&&n!==(n="bd-"+i[0])&&u(e,"class",n)},i:We,o:We,d(i){i&&N(e)}}}function F1(t,e,l){let{color:n}=e,{title:i}=e,{text:s}=e;return t.$$set=a=>{"color"in a&&l(0,n=a.color),"title"in a&&l(1,i=a.title),"text"in a&&l(2,s=a.text)},[n,i,s]}class un extends qt{constructor(e){super(),Tt(this,e,F1,R1,St,{color:0,title:1,text:2})}}function U1(t){let e,l=`${wt(t[0].getDate())}.${wt(t[0].getMonth()+1)}.${t[0].getFullYear()} ${wt(t[0].getHours())}:${wt(t[0].getMinutes())}`,n;return{c(){e=p("span"),n=C(l),u(e,"class",t[1])},m(i,s){P(i,e,s),o(e,n)},p(i,s){s&1&&l!==(l=`${wt(i[0].getDate())}.${wt(i[0].getMonth()+1)}.${i[0].getFullYear()} ${wt(i[0].getHours())}:${wt(i[0].getMinutes())}`)&&q(n,l),s&2&&u(e,"class",i[1])},d(i){i&&N(e)}}}function B1(t){var n;let e=`${wt(t[0].getDate())}. ${t[2].months?(n=t[2].months)==null?void 0:n[t[0].getMonth()]:wt(t[0].getMonth()+1)} ${wt(t[0].getHours())}:${wt(t[0].getMinutes())}`,l;return{c(){l=C(e)},m(i,s){P(i,l,s)},p(i,s){var a;s&5&&e!==(e=`${wt(i[0].getDate())}. ${i[2].months?(a=i[2].months)==null?void 0:a[i[0].getMonth()]:wt(i[0].getMonth()+1)} ${wt(i[0].getHours())}:${wt(i[0].getMinutes())}`)&&q(l,e)},d(i){i&&N(l)}}}function j1(t){let e;function l(s,a){return s[3]?B1:U1}let n=l(t),i=n(t);return{c(){i.c(),e=yt()},m(s,a){i.m(s,a),P(s,e,a)},p(s,[a]){n===(n=l(s))&&i?i.p(s,a):(i.d(1),i=n(s),i&&(i.c(),i.m(e.parentNode,e)))},i:We,o:We,d(s){s&&N(e),i.d(s)}}}function z1(t,e,l){let n={};Ml.subscribe(f=>{l(2,n=f)});let{timestamp:i}=e,{fullTimeColor:s}=e,{offset:a}=e,r;return t.$$set=f=>{"timestamp"in f&&l(0,i=f.timestamp),"fullTimeColor"in f&&l(1,s=f.fullTimeColor),"offset"in f&&l(4,a=f.offset)},t.$$.update=()=>{t.$$.dirty&17&&(l(3,r=Math.abs(new Date().getTime()-i.getTime())<3e5),isNaN(a)||Il(i,a-(24+i.getHours()-i.getUTCHours())%24))},[i,s,n,r,a]}class zu extends qt{constructor(e){super(),Tt(this,e,z1,j1,St,{timestamp:0,fullTimeColor:1,offset:4})}}function y1(t){let e,l,n;return{c(){e=Rt("svg"),l=Rt("path"),n=Rt("path"),u(l,"stroke-linecap","round"),u(l,"stroke-linejoin","round"),u(l,"d","M10.343 3.94c.09-.542.56-.94 1.11-.94h1.093c.55 0 1.02.398 1.11.94l.149.894c.07.424.384.764.78.93.398.164.855.142 1.205-.108l.737-.527a1.125 1.125 0 011.45.12l.773.774c.39.389.44 1.002.12 1.45l-.527.737c-.25.35-.272.806-.107 1.204.165.397.505.71.93.78l.893.15c.543.09.94.56.94 1.109v1.094c0 .55-.397 1.02-.94 1.11l-.893.149c-.425.07-.765.383-.93.78-.165.398-.143.854.107 1.204l.527.738c.32.447.269 1.06-.12 1.45l-.774.773a1.125 1.125 0 01-1.449.12l-.738-.527c-.35-.25-.806-.272-1.203-.107-.397.165-.71.505-.781.929l-.149.894c-.09.542-.56.94-1.11.94h-1.094c-.55 0-1.019-.398-1.11-.94l-.148-.894c-.071-.424-.384-.764-.781-.93-.398-.164-.854-.142-1.204.108l-.738.527c-.447.32-1.06.269-1.45-.12l-.773-.774a1.125 1.125 0 01-.12-1.45l.527-.737c.25-.35.273-.806.108-1.204-.165-.397-.505-.71-.93-.78l-.894-.15c-.542-.09-.94-.56-.94-1.109v-1.094c0-.55.398-1.02.94-1.11l.894-.149c.424-.07.765-.383.93-.78.165-.398.143-.854-.107-1.204l-.527-.738a1.125 1.125 0 01.12-1.45l.773-.773a1.125 1.125 0 011.45-.12l.737.527c.35.25.807.272 1.204.107.397-.165.71-.505.78-.929l.15-.894z"),u(n,"stroke-linecap","round"),u(n,"stroke-linejoin","round"),u(n,"d","M15 12a3 3 0 11-6 0 3 3 0 016 0z"),u(e,"xmlns","http://www.w3.org/2000/svg"),u(e,"fill","none"),u(e,"viewBox","0 0 24 24"),u(e,"stroke-width","1.5"),u(e,"stroke","currentColor"),u(e,"class","w-6 h-6")},m(i,s){P(i,e,s),o(e,l),o(e,n)},p:We,i:We,o:We,d(i){i&&N(e)}}}class H1 extends qt{constructor(e){super(),Tt(this,e,null,y1,St,{})}}function W1(t){let e,l;return{c(){e=Rt("svg"),l=Rt("path"),u(l,"stroke-linecap","round"),u(l,"stroke-linejoin","round"),u(l,"d","M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"),u(e,"xmlns","http://www.w3.org/2000/svg"),u(e,"fill","none"),u(e,"viewBox","0 0 24 24"),u(e,"stroke-width","1.5"),u(e,"stroke","currentColor"),u(e,"class","w-6 h-6")},m(n,i){P(n,e,i),o(e,l)},p:We,i:We,o:We,d(n){n&&N(e)}}}class G1 extends qt{constructor(e){super(),Tt(this,e,null,W1,St,{})}}function V1(t){let e,l;return{c(){e=Rt("svg"),l=Rt("path"),u(l,"stroke-linecap","round"),u(l,"stroke-linejoin","round"),u(l,"d","M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"),u(e,"xmlns","http://www.w3.org/2000/svg"),u(e,"fill","none"),u(e,"viewBox","0 0 24 24"),u(e,"stroke-width","1.5"),u(e,"stroke","currentColor"),u(e,"class","w-6 h-6")},m(n,i){P(n,e,i),o(e,l)},p:We,i:We,o:We,d(n){n&&N(e)}}}class K1 extends qt{constructor(e){super(),Tt(this,e,null,V1,St,{})}}function Y1(t){let e,l,n=t[2].version+"",i;return{c(){e=C("AMS reader "),l=p("span"),i=C(n)},m(s,a){P(s,e,a),P(s,l,a),o(l,i)},p(s,a){a&4&&n!==(n=s[2].version+"")&&q(i,n)},d(s){s&&(N(e),N(l))}}}function Ls(t){let e,l=(t[1].t>-50?t[1].t.toFixed(1):"-")+"",n,i;return{c(){e=p("div"),n=C(l),i=C("°C"),u(e,"class","flex-none my-auto")},m(s,a){P(s,e,a),o(e,n),o(e,i)},p(s,a){a&2&&l!==(l=(s[1].t>-50?s[1].t.toFixed(1):"-")+"")&&q(n,l)},d(s){s&&N(e)}}}function Os(t){var i,s,a;let e,l=(((i=t[4].header)==null?void 0:i.han)??"HAN")+": "+(((a=(s=t[4].errors)==null?void 0:s.han)==null?void 0:a[t[1].he])??t[1].he),n;return{c(){e=p("div"),n=C(l),u(e,"class","bd-red")},m(r,f){P(r,e,f),o(e,n)},p(r,f){var c,m,_;f&18&&l!==(l=(((c=r[4].header)==null?void 0:c.han)??"HAN")+": "+(((_=(m=r[4].errors)==null?void 0:m.han)==null?void 0:_[r[1].he])??r[1].he))&&q(n,l)},d(r){r&&N(e)}}}function Is(t){var i,s,a;let e,l=(((i=t[4].header)==null?void 0:i.mqtt)??"MQTT")+": "+(((a=(s=t[4].errors)==null?void 0:s.mqtt)==null?void 0:a[t[1].me])??t[1].me),n;return{c(){e=p("div"),n=C(l),u(e,"class","bd-red")},m(r,f){P(r,e,f),o(e,n)},p(r,f){var c,m,_;f&18&&l!==(l=(((c=r[4].header)==null?void 0:c.mqtt)??"MQTT")+": "+(((_=(m=r[4].errors)==null?void 0:m.mqtt)==null?void 0:_[r[1].me])??r[1].me))&&q(n,l)},d(r){r&&N(e)}}}function Rs(t){var i,s,a;let e,l=(((i=t[4].header)==null?void 0:i.price)??"PS")+": "+(((a=(s=t[4].errors)==null?void 0:s.price)==null?void 0:a[t[1].ee])??t[1].ee),n;return{c(){e=p("div"),n=C(l),u(e,"class","bd-red")},m(r,f){P(r,e,f),o(e,n)},p(r,f){var c,m,_;f&18&&l!==(l=(((c=r[4].header)==null?void 0:c.price)??"PS")+": "+(((_=(m=r[4].errors)==null?void 0:m.price)==null?void 0:_[r[1].ee])??r[1].ee))&&q(n,l)},d(r){r&&N(e)}}}function Fs(t){let e,l,n,i,s,a,r,f;return l=new gl({props:{to:"/configuration",$$slots:{default:[Q1]},$$scope:{ctx:t}}}),a=new gl({props:{to:"/status",$$slots:{default:[X1]},$$scope:{ctx:t}}}),{c(){var c,m;e=p("div"),Pe(l.$$.fragment),i=v(),s=p("div"),Pe(a.$$.fragment),u(e,"class","flex-none px-1 mt-1"),u(e,"title",n=((c=t[4].header)==null?void 0:c.config)??""),u(s,"class","flex-none px-1 mt-1"),u(s,"title",r=((m=t[4].header)==null?void 0:m.status)??"")},m(c,m){P(c,e,m),Me(l,e,null),P(c,i,m),P(c,s,m),Me(a,s,null),f=!0},p(c,m){var h,b;const _={};m&64&&(_.$$scope={dirty:m,ctx:c}),l.$set(_),(!f||m&16&&n!==(n=((h=c[4].header)==null?void 0:h.config)??""))&&u(e,"title",n);const d={};m&64&&(d.$$scope={dirty:m,ctx:c}),a.$set(d),(!f||m&16&&r!==(r=((b=c[4].header)==null?void 0:b.status)??""))&&u(s,"title",r)},i(c){f||(Z(l.$$.fragment,c),Z(a.$$.fragment,c),f=!0)},o(c){se(l.$$.fragment,c),se(a.$$.fragment,c),f=!1},d(c){c&&(N(e),N(i),N(s)),Ne(l),Ne(a)}}}function Q1(t){let e,l;return e=new H1({}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function X1(t){let e,l;return e=new G1({}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function Z1(t){let e,l;function n(a,r){return a[2].security==0||a[1].a?x1:$1}let i=n(t),s=i(t);return{c(){var a;e=p("div"),s.c(),u(e,"class","flex-none mr-3 text-yellow-500"),u(e,"title",l=(((a=t[4].header)==null?void 0:a.new_version)??"New version")+": "+t[2].upgrade.n)},m(a,r){P(a,e,r),s.m(e,null)},p(a,r){var f;i===(i=n(a))&&s?s.p(a,r):(s.d(1),s=i(a),s&&(s.c(),s.m(e,null))),r&20&&l!==(l=(((f=a[4].header)==null?void 0:f.new_version)??"New version")+": "+a[2].upgrade.n)&&u(e,"title",l)},d(a){a&&N(e),s.d()}}}function J1(t){let e,l,n=t[2].upgrade.t+"",i,s,a=t[3].toFixed(1)+"",r,f;return{c(){e=p("div"),l=C("Upgrading to "),i=C(n),s=C(", "),r=C(a),f=C("%"),u(e,"class","flex-none mr-3 mt-1 text-yellow-300")},m(c,m){P(c,e,m),o(e,l),o(e,i),o(e,s),o(e,r),o(e,f)},p(c,m){m&4&&n!==(n=c[2].upgrade.t+"")&&q(i,n),m&8&&a!==(a=c[3].toFixed(1)+"")&&q(r,a)},d(c){c&&N(e)}}}function $1(t){var r;let e,l=(((r=t[4].header)==null?void 0:r.new_version)??"New version")+"",n,i,s=t[2].upgrade.n+"",a;return{c(){e=p("span"),n=C(l),i=C(": "),a=C(s)},m(f,c){P(f,e,c),o(e,n),o(e,i),o(e,a)},p(f,c){var m;c&16&&l!==(l=(((m=f[4].header)==null?void 0:m.new_version)??"New version")+"")&&q(n,l),c&4&&s!==(s=f[2].upgrade.n+"")&&q(a,s)},d(f){f&&N(e)}}}function x1(t){var m;let e,l,n=(((m=t[4].header)==null?void 0:m.new_version)??"New version")+"",i,s,a=t[2].upgrade.n+"",r,f,c;return{c(){e=p("button"),l=p("span"),i=C(n),s=C(": "),r=C(a),u(l,"class","mt-1"),u(e,"class","flex")},m(_,d){P(_,e,d),o(e,l),o(l,i),o(l,s),o(l,r),f||(c=ce(e,"click",t[5]),f=!0)},p(_,d){var h;d&16&&n!==(n=(((h=_[4].header)==null?void 0:h.new_version)??"New version")+"")&&q(i,n),d&4&&a!==(a=_[2].upgrade.n+"")&&q(r,a)},d(_){_&&N(e),f=!1,c()}}}function e0(t){var _e,he;let e,l,n,i,s,a,r,f,c,m,_,d=(((_e=t[4].header)==null?void 0:_e.mem)??"Free")+"",h,b,g=(t[1].m?(t[1].m/1e3).toFixed(1):"-")+"",w,k,O,L,R,M,I,F,j,V,y,T,B,X,H,K,Y,U,G,oe,le,Q,ne,re,ue,ie,pe,ae,J,$,ke;i=new gl({props:{to:"/",$$slots:{default:[Y1]},$$scope:{ctx:t}}}),f=new I1({props:{epoch:t[1].u}});let we=t[1].t>-50&&Ls(t);R=new un({props:{title:"ESP",text:t[2].booting?((he=t[4].header)==null?void 0:he.booting)??"Booting":t[1].v>2?t[1].v.toFixed(2)+"V":"ESP",color:nn(t[2].booting?2:t[1].em)}}),I=new un({props:{title:"HAN",text:"HAN",color:nn(t[2].booting?9:t[1].hm)}}),j=new un({props:{title:"WiFi",text:t[1].r?t[1].r.toFixed(0)+"dBm":"WiFi",color:nn(t[2].booting?9:t[1].wm)}}),y=new un({props:{title:"MQTT",text:"MQTT",color:nn(t[2].booting?9:t[1].mm)}});let D=(t[1].he<0||t[1].he>0)&&Os(t),S=t[1].me<0&&Is(t),A=(t[1].ee>0||t[1].ee<0)&&Rs(t);ne=new zu({props:{timestamp:t[1].c?new Date(t[1].c*1e3):new Date(0),offset:t[2].clock_offset,fullTimeColor:"text-red-500"}});let E=t[2].vndcfg&&t[2].usrcfg&&Fs(t);ae=new K1({});function W(x,ve){if(x[2].upgrading)return J1;if(x[2].fwconsent===1&&x[2].upgrade.n)return Z1}let ee=W(t),fe=ee&&ee(t);return{c(){var x;e=p("nav"),l=p("div"),n=p("div"),Pe(i.$$.fragment),s=v(),a=p("div"),r=p("div"),Pe(f.$$.fragment),c=v(),we&&we.c(),m=v(),_=p("div"),h=C(d),b=C(": "),w=C(g),k=C("kb"),O=v(),L=p("div"),Pe(R.$$.fragment),M=v(),Pe(I.$$.fragment),F=v(),Pe(j.$$.fragment),V=v(),Pe(y.$$.fragment),T=v(),D&&D.c(),B=v(),S&&S.c(),X=v(),A&&A.c(),H=v(),K=p("div"),Y=p("div"),U=p("a"),G=p("img"),le=v(),Q=p("div"),Pe(ne.$$.fragment),re=v(),E&&E.c(),ue=v(),ie=p("div"),pe=p("a"),Pe(ae.$$.fragment),$=v(),fe&&fe.c(),u(n,"class","flex text-lg text-gray-100 p-2"),u(r,"class","flex-none my-auto"),u(_,"class","flex-none my-auto"),u(a,"class","flex-none my-auto p-2 flex space-x-4"),u(L,"class","flex-auto flex-wrap my-auto justify-center p-2"),u(G,"class","logo"),ni(G.src,oe=(t[0]+"/logo.svg").replace("//","/"))||u(G,"src",oe),u(G,"alt","GitHub repo"),u(U,"class","float-right"),u(U,"href","https://github.com/UtilitechAS/amsreader-firmware"),u(U,"target","_blank"),u(U,"rel","noreferrer"),u(U,"aria-label","GitHub"),u(Y,"class","flex-none"),u(Q,"class","flex-none my-auto px-2"),u(pe,"href",hl("")),u(pe,"target","_blank"),u(pe,"rel","noreferrer"),u(ie,"class","flex-none px-1 mt-1"),u(ie,"title",J=((x=t[4].header)==null?void 0:x.doc)??""),u(K,"class","flex-auto p-2 flex flex-row-reverse flex-wrap"),u(l,"class","flex flex-wrap space-x-4 text-sm text-gray-300"),u(e,"class","hdr")},m(x,ve){P(x,e,ve),o(e,l),o(l,n),Me(i,n,null),o(l,s),o(l,a),o(a,r),Me(f,r,null),o(a,c),we&&we.m(a,null),o(a,m),o(a,_),o(_,h),o(_,b),o(_,w),o(_,k),o(l,O),o(l,L),Me(R,L,null),o(L,M),Me(I,L,null),o(L,F),Me(j,L,null),o(L,V),Me(y,L,null),o(l,T),D&&D.m(l,null),o(l,B),S&&S.m(l,null),o(l,X),A&&A.m(l,null),o(l,H),o(l,K),o(K,Y),o(Y,U),o(U,G),o(K,le),o(K,Q),Me(ne,Q,null),o(K,re),E&&E.m(K,null),o(K,ue),o(K,ie),o(ie,pe),Me(ae,pe,null),o(K,$),fe&&fe.m(K,null),ke=!0},p(x,[ve]){var Xe,kt,$e;const ge={};ve&68&&(ge.$$scope={dirty:ve,ctx:x}),i.$set(ge);const De={};ve&2&&(De.epoch=x[1].u),f.$set(De),x[1].t>-50?we?we.p(x,ve):(we=Ls(x),we.c(),we.m(a,m)):we&&(we.d(1),we=null),(!ke||ve&16)&&d!==(d=(((Xe=x[4].header)==null?void 0:Xe.mem)??"Free")+"")&&q(h,d),(!ke||ve&2)&&g!==(g=(x[1].m?(x[1].m/1e3).toFixed(1):"-")+"")&&q(w,g);const Te={};ve&22&&(Te.text=x[2].booting?((kt=x[4].header)==null?void 0:kt.booting)??"Booting":x[1].v>2?x[1].v.toFixed(2)+"V":"ESP"),ve&6&&(Te.color=nn(x[2].booting?2:x[1].em)),R.$set(Te);const Le={};ve&6&&(Le.color=nn(x[2].booting?9:x[1].hm)),I.$set(Le);const Oe={};ve&2&&(Oe.text=x[1].r?x[1].r.toFixed(0)+"dBm":"WiFi"),ve&6&&(Oe.color=nn(x[2].booting?9:x[1].wm)),j.$set(Oe);const Ee={};ve&6&&(Ee.color=nn(x[2].booting?9:x[1].mm)),y.$set(Ee),x[1].he<0||x[1].he>0?D?D.p(x,ve):(D=Os(x),D.c(),D.m(l,B)):D&&(D.d(1),D=null),x[1].me<0?S?S.p(x,ve):(S=Is(x),S.c(),S.m(l,X)):S&&(S.d(1),S=null),x[1].ee>0||x[1].ee<0?A?A.p(x,ve):(A=Rs(x),A.c(),A.m(l,H)):A&&(A.d(1),A=null),(!ke||ve&1&&!ni(G.src,oe=(x[0]+"/logo.svg").replace("//","/")))&&u(G,"src",oe);const Ue={};ve&2&&(Ue.timestamp=x[1].c?new Date(x[1].c*1e3):new Date(0)),ve&4&&(Ue.offset=x[2].clock_offset),ne.$set(Ue),x[2].vndcfg&&x[2].usrcfg?E?(E.p(x,ve),ve&4&&Z(E,1)):(E=Fs(x),E.c(),Z(E,1),E.m(K,ue)):E&&(ht(),se(E,1,1,()=>{E=null}),vt()),(!ke||ve&16&&J!==(J=(($e=x[4].header)==null?void 0:$e.doc)??""))&&u(ie,"title",J),ee===(ee=W(x))&&fe?fe.p(x,ve):(fe&&fe.d(1),fe=ee&&ee(x),fe&&(fe.c(),fe.m(K,null)))},i(x){ke||(Z(i.$$.fragment,x),Z(f.$$.fragment,x),Z(R.$$.fragment,x),Z(I.$$.fragment,x),Z(j.$$.fragment,x),Z(y.$$.fragment,x),Z(ne.$$.fragment,x),Z(E),Z(ae.$$.fragment,x),ke=!0)},o(x){se(i.$$.fragment,x),se(f.$$.fragment,x),se(R.$$.fragment,x),se(I.$$.fragment,x),se(j.$$.fragment,x),se(y.$$.fragment,x),se(ne.$$.fragment,x),se(E),se(ae.$$.fragment,x),ke=!1},d(x){x&&N(e),Ne(i),Ne(f),we&&we.d(),Ne(R),Ne(I),Ne(j),Ne(y),D&&D.d(),S&&S.d(),A&&A.d(),Ne(ne),E&&E.d(),Ne(ae),fe&&fe.d()}}}function t0(t,e,l){let{basepath:n="/"}=e,{data:i={}}=e,s={};function a(){var c;confirm((((c=f.header)==null?void 0:c.upgrade)??"Upgrade to {0}?").replace("{0}",s.upgrade.n))&&(ju(s.upgrade.n),pl.update(m=>(m.upgrade.t=s.upgrade.n,m.upgrade.p=0,m.upgrading=!0,m)))}let r;pl.subscribe(c=>{l(2,s=c)});let f={};return Ml.subscribe(c=>{l(4,f=c)}),t.$$set=c=>{"basepath"in c&&l(0,n=c.basepath),"data"in c&&l(1,i=c.data)},t.$$.update=()=>{t.$$.dirty&4&&l(3,r=Math.max(0,s.upgrade.p))},[n,i,s,r,f,a]}class l0 extends qt{constructor(e){super(),Tt(this,e,t0,e0,St,{basepath:0,data:1})}}function n0(t){let e,l,n,i;return{c(){e=Rt("svg"),l=Rt("path"),n=Rt("path"),u(l,"d",Ci(150,150,115,210,510)),u(l,"stroke","rgba(128, 128, 128, 0.15)"),u(l,"fill","none"),u(l,"stroke-width","55"),u(n,"d",i=Ci(150,150,115,210,210+300*t[0]/100)),u(n,"stroke",t[1]),u(n,"fill","none"),u(n,"stroke-width","55"),u(e,"viewBox","0 0 300 300"),u(e,"xmlns","http://www.w3.org/2000/svg"),u(e,"height","100%")},m(s,a){P(s,e,a),o(e,l),o(e,n)},p(s,[a]){a&1&&i!==(i=Ci(150,150,115,210,210+300*s[0]/100))&&u(n,"d",i),a&2&&u(n,"stroke",s[1])},i:We,o:We,d(s){s&&N(e)}}}function Us(t,e,l,n){var i=(n-90)*Math.PI/180;return{x:t+l*Math.cos(i),y:e+l*Math.sin(i)}}function Ci(t,e,l,n,i){var s=Us(t,e,l,i),a=Us(t,e,l,n),r=i-n<=180?"0":"1",f=["M",s.x,s.y,"A",l,l,0,r,0,a.x,a.y].join(" ");return f}function i0(t,e,l){let{pct:n=0}=e,{color:i="red"}=e;return t.$$set=s=>{"pct"in s&&l(0,n=s.pct),"color"in s&&l(1,i=s.color)},[n,i]}class s0 extends qt{constructor(e){super(),Tt(this,e,i0,n0,St,{pct:0,color:1})}}function Bs(t){let e,l,n,i=t[1][0]+"",s,a,r,f=t[1][1]+"",c,m;return{c(){e=p("br"),l=v(),n=p("span"),s=C(i),a=v(),r=p("span"),c=C(f),m=C("/kWh"),u(n,"class","pl-sub"),u(r,"class","pl-snt")},m(_,d){P(_,e,d),P(_,l,d),P(_,n,d),o(n,s),P(_,a,d),P(_,r,d),o(r,c),o(r,m)},p(_,d){d&2&&i!==(i=_[1][0]+"")&&q(s,i),d&2&&f!==(f=_[1][1]+"")&&q(c,f)},d(_){_&&(N(e),N(l),N(n),N(a),N(r))}}}function o0(t){let e,l,n,i,s,a,r,f,c,m,_=t[3][0]+"",d,h,b,g=t[3][1]+"",w,k,O;l=new s0({props:{pct:t[4],color:t[2](t[4],document.documentElement.classList.contains("dark"))}});let L=t[1]&&Bs(t);return{c(){e=p("div"),Pe(l.$$.fragment),n=v(),i=p("span"),s=p("span"),a=C(t[0]),r=v(),f=p("br"),c=v(),m=p("span"),d=C(_),h=v(),b=p("span"),w=C(g),k=v(),L&&L.c(),u(s,"class","pl-lab"),u(m,"class","pl-val"),u(b,"class","pl-unt"),u(i,"class","pl-ov"),u(e,"class","pl-root")},m(R,M){P(R,e,M),Me(l,e,null),o(e,n),o(e,i),o(i,s),o(s,a),o(i,r),o(i,f),o(i,c),o(i,m),o(m,d),o(i,h),o(i,b),o(b,w),o(i,k),L&&L.m(i,null),O=!0},p(R,[M]){const I={};M&16&&(I.pct=R[4]),M&20&&(I.color=R[2](R[4],document.documentElement.classList.contains("dark"))),l.$set(I),(!O||M&1)&&q(a,R[0]),(!O||M&8)&&_!==(_=R[3][0]+"")&&q(d,_),(!O||M&8)&&g!==(g=R[3][1]+"")&&q(w,g),R[1]?L?L.p(R,M):(L=Bs(R),L.c(),L.m(i,null)):L&&(L.d(1),L=null)},i(R){O||(Z(l.$$.fragment,R),O=!0)},o(R){se(l.$$.fragment,R),O=!1},d(R){R&&N(e),Ne(l),L&&L.d()}}}function a0(t,e,l){let{val:n}=e,{max:i}=e,{unit:s}=e,{label:a}=e,{sub:r=["",""]}=e,{colorFn:f}=e,c,m=0;return t.$$set=_=>{"val"in _&&l(5,n=_.val),"max"in _&&l(6,i=_.max),"unit"in _&&l(7,s=_.unit),"label"in _&&l(0,a=_.label),"sub"in _&&l(1,r=_.sub),"colorFn"in _&&l(2,f=_.colorFn)},t.$$.update=()=>{t.$$.dirty&224&&(l(3,c=_l(n,s)),l(4,m=Math.min(n,i)/i*100))},[a,r,f,c,m,n,i,s]}class yu extends qt{constructor(e){super(),Tt(this,e,a0,o0,St,{val:5,max:6,unit:7,label:0,sub:1,colorFn:2})}}function f0(t){let e,l,n;return{c(){e=p("div"),l=C(t[0]),u(e,"class","tooltip"),wl(e,"top",t[2]-t[4]-10+"px"),wl(e,"left",t[1]-t[3]/2+"px"),At(()=>t[5].call(e))},m(i,s){P(i,e,s),o(e,l),n=ci(e,t[5].bind(e))},p(i,[s]){s&1&&q(l,i[0]),s&20&&wl(e,"top",i[2]-i[4]-10+"px"),s&10&&wl(e,"left",i[1]-i[3]/2+"px")},i:We,o:We,d(i){i&&N(e),n()}}}function u0(t,e,l){let{title:n}=e,{x:i}=e,{y:s}=e,a,r;function f(){r=this.clientHeight,a=this.clientWidth,l(4,r),l(3,a)}return t.$$set=c=>{"title"in c&&l(0,n=c.title),"x"in c&&l(1,i=c.x),"y"in c&&l(2,s=c.y)},[n,i,s,a,r,f]}class r0 extends qt{constructor(e){super(),Tt(this,e,u0,f0,St,{title:0,x:1,y:2})}}function c0(t){let e,l;function n(s){l&&l.$destroy(),e=t.dataset.title||t.getAttribute("title");var a=t.getBoundingClientRect();l=new r0({props:{title:e,x:a.left+window.scrollX+a.width/2,y:a.top+window.scrollY},target:document.body})}function i(){l&&setTimeout(()=>{l.$destroy(),l=null},500)}return t.addEventListener("click",n),t.addEventListener("mouseleave",i),{destroy(){t.removeEventListener("click",n),t.removeEventListener("mouseleave",i)}}}function js(t,e,l){const n=t.slice();return n[11]=e[l],n[13]=l,n}function zs(t,e,l){const n=t.slice();return n[11]=e[l],n[13]=l,n}function ys(t,e,l){const n=t.slice();return n[15]=e[l],n}function Hs(t){let e,l,n,i,s,a,r,f=(t[0].title||t[0].link)&&Ws(t),c=ut(t[0].y.ticks),m=[];for(let g=0;g{f=null}),vt()),w&129){c=ut(g[0].y.ticks);let k;for(k=0;k{s=null}),vt())},i(a){n||(Z(s),n=!0)},o(a){se(s),n=!1},d(a){a&&N(e),i&&i.d(),s&&s.d()}}}function Gs(t){let e,l=t[0].title+"",n,i;return{c(){e=p("div"),n=C(l),u(e,"class","text-sm font-bold"),At(()=>t[9].call(e))},m(s,a){P(s,e,a),o(e,n),i=ci(e,t[9].bind(e))},p(s,a){a&1&&l!==(l=s[0].title+"")&&q(n,l)},d(s){s&&N(e),i()}}}function Vs(t){let e,l,n,i;const s=[m0,_0],a=[];function r(f,c){return f[0].link.route?0:1}return l=r(t),n=a[l]=s[l](t),{c(){e=p("div"),n.c(),u(e,"class","text-xs text-right")},m(f,c){P(f,e,c),a[l].m(e,null),i=!0},p(f,c){let m=l;l=r(f),l===m?a[l].p(f,c):(ht(),se(a[m],1,1,()=>{a[m]=null}),vt(),n=a[l],n?n.p(f,c):(n=a[l]=s[l](f),n.c()),Z(n,1),n.m(e,null))},i(f){i||(Z(n),i=!0)},o(f){se(n),i=!1},d(f){f&&N(e),a[l].d()}}}function _0(t){let e,l=t[0].link.text+"",n,i,s;return{c(){e=p("a"),n=C(l),u(e,"href",i=t[0].link.url),u(e,"target",s=t[0].link.target)},m(a,r){P(a,e,r),o(e,n)},p(a,r){r&1&&l!==(l=a[0].link.text+"")&&q(n,l),r&1&&i!==(i=a[0].link.url)&&u(e,"href",i),r&1&&s!==(s=a[0].link.target)&&u(e,"target",s)},i:We,o:We,d(a){a&&N(e)}}}function m0(t){let e,l;return e=new gl({props:{to:t[0].link.url,$$slots:{default:[p0]},$$scope:{ctx:t}}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&1&&(s.to=n[0].link.url),i&262145&&(s.$$scope={dirty:i,ctx:n}),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function p0(t){let e=t[0].link.text+"",l;return{c(){l=C(e)},m(n,i){P(n,l,i)},p(n,i){i&1&&e!==(e=n[0].link.text+"")&&q(l,e)},d(n){n&&N(l)}}}function Ks(t){let e,l,n,i=t[15].label+"",s,a,r,f;return{c(){e=Rt("g"),l=Rt("line"),n=Rt("text"),s=C(i),u(l,"x2","100%"),u(n,"y","-4"),u(n,"x",a=t[15].align=="right"?"90%":""),u(e,"class",r="tick tick-"+t[15].value+" tick-"+t[15].color),u(e,"transform",f="translate(0, "+t[7](t[15].value)+")")},m(c,m){P(c,e,m),o(e,l),o(e,n),o(n,s)},p(c,m){m&1&&i!==(i=c[15].label+"")&&q(s,i),m&1&&a!==(a=c[15].align=="right"?"90%":"")&&u(n,"x",a),m&1&&r!==(r="tick tick-"+c[15].value+" tick-"+c[15].color)&&u(e,"class",r),m&129&&f!==(f="translate(0, "+c[7](c[15].value)+")")&&u(e,"transform",f)},d(c){c&&N(e)}}}function Ys(t){let e=!isNaN(t[7](t[15].value)),l,n=e&&Ks(t);return{c(){n&&n.c(),l=yt()},m(i,s){n&&n.m(i,s),P(i,l,s)},p(i,s){s&129&&(e=!isNaN(i[7](i[15].value))),e?n?n.p(i,s):(n=Ks(i),n.c(),n.m(l.parentNode,l)):n&&(n.d(1),n=null)},d(i){i&&N(l),n&&n.d(i)}}}function Qs(t){let e,l,n=(t[3]>20||t[13]%2==0)&&Xs(t);return{c(){e=Rt("g"),n&&n.c(),u(e,"class","tick"),u(e,"transform",l="translate("+t[6](t[13])+","+t[4]+")")},m(i,s){P(i,e,s),n&&n.m(e,null)},p(i,s){i[3]>20||i[13]%2==0?n?n.p(i,s):(n=Xs(i),n.c(),n.m(e,null)):n&&(n.d(1),n=null),s&80&&l!==(l="translate("+i[6](i[13])+","+i[4]+")")&&u(e,"transform",l)},d(i){i&&N(e),n&&n.d()}}}function Xs(t){let e,l=t[11].label+"",n,i;return{c(){e=Rt("text"),n=C(l),u(e,"x",i=t[3]/2),u(e,"y","-4")},m(s,a){P(s,e,a),o(e,n)},p(s,a){a&1&&l!==(l=s[11].label+"")&&q(n,l),a&8&&i!==(i=s[3]/2)&&u(e,"x",i)},d(s){s&&N(e)}}}function Zs(t){let e=!isNaN(t[6](t[13])),l,n=e&&Qs(t);return{c(){n&&n.c(),l=yt()},m(i,s){n&&n.m(i,s),P(i,l,s)},p(i,s){s&64&&(e=!isNaN(i[6](i[13]))),e?n?n.p(i,s):(n=Qs(i),n.c(),n.m(l.parentNode,l)):n&&(n.d(1),n=null)},d(i){i&&N(l),n&&n.d(i)}}}function Js(t){let e,l,n,i,s,a=t[11].value!==void 0&&$s(t),r=t[11].value2>1e-4&&eo(t);return{c(){e=Rt("g"),a&&a.c(),n=Rt("g"),r&&r.c(),u(e,"data-title",l=t[11].title)},m(f,c){P(f,e,c),a&&a.m(e,null),P(f,n,c),r&&r.m(n,null),i||(s=Zu(c0.call(null,e)),i=!0)},p(f,c){f[11].value!==void 0?a?a.p(f,c):(a=$s(f),a.c(),a.m(e,null)):a&&(a.d(1),a=null),c&1&&l!==(l=f[11].title)&&u(e,"data-title",l),f[11].value2>1e-4?r?r.p(f,c):(r=eo(f),r.c(),r.m(n,null)):r&&(r.d(1),r=null)},d(f){f&&(N(e),N(n)),a&&a.d(),r&&r.d(),i=!1,s()}}}function $s(t){let e,l,n,i,s,a,r,f=t[3]>15&&xs(t);return{c(){e=Rt("rect"),f&&f.c(),r=yt(),u(e,"x",l=t[6](t[13])+2),u(e,"y",n=t[7](t[11].value)),u(e,"width",i=t[3]-4),u(e,"height",s=t[7](t[0].y.min)-t[7](Math.min(t[0].y.min,0)+t[11].value)),u(e,"fill",a=t[11].color)},m(c,m){P(c,e,m),f&&f.m(c,m),P(c,r,m)},p(c,m){m&64&&l!==(l=c[6](c[13])+2)&&u(e,"x",l),m&129&&n!==(n=c[7](c[11].value))&&u(e,"y",n),m&8&&i!==(i=c[3]-4)&&u(e,"width",i),m&129&&s!==(s=c[7](c[0].y.min)-c[7](Math.min(c[0].y.min,0)+c[11].value))&&u(e,"height",s),m&1&&a!==(a=c[11].color)&&u(e,"fill",a),c[3]>15?f?f.p(c,m):(f=xs(c),f.c(),f.m(r.parentNode,r)):f&&(f.d(1),f=null)},d(c){c&&(N(e),N(r)),f&&f.d(c)}}}function xs(t){let e,l=t[11].label+"",n,i,s,a,r;return{c(){e=Rt("text"),n=C(l),u(e,"width",i=t[3]-4),u(e,"dominant-baseline","middle"),u(e,"text-anchor",s=t[3]t[7](0)-t[8]&&!t[0].dark?t[11].color:"white"),u(e,"transform",r="translate("+(t[6](t[13])+t[3]/2)+" "+(t[7](t[11].value)>t[7](0)-t[8]?t[7](t[11].value)-t[8]:t[7](t[11].value)+10)+") rotate("+(t[11].labelAngle?t[11].labelAngle:t[3]f[7](0)-f[8]&&!f[0].dark?f[11].color:"white")&&u(e,"fill",a),c&457&&r!==(r="translate("+(f[6](f[13])+f[3]/2)+" "+(f[7](f[11].value)>f[7](0)-f[8]?f[7](f[11].value)-f[8]:f[7](f[11].value)+10)+") rotate("+(f[11].labelAngle?f[11].labelAngle:f[3]15&&to(t);return{c(){e=Rt("rect"),f&&f.c(),r=yt(),u(e,"x",l=t[6](t[13])+2),u(e,"y",n=t[7](0)),u(e,"width",i=t[3]-4),u(e,"height",s=t[7](t[0].y.min)-t[7](t[0].y.min+t[11].value2)),u(e,"fill",a=t[11].color2?t[11].color2:t[11].color)},m(c,m){P(c,e,m),f&&f.m(c,m),P(c,r,m)},p(c,m){m&64&&l!==(l=c[6](c[13])+2)&&u(e,"x",l),m&128&&n!==(n=c[7](0))&&u(e,"y",n),m&8&&i!==(i=c[3]-4)&&u(e,"width",i),m&129&&s!==(s=c[7](c[0].y.min)-c[7](c[0].y.min+c[11].value2))&&u(e,"height",s),m&1&&a!==(a=c[11].color2?c[11].color2:c[11].color)&&u(e,"fill",a),c[3]>15?f?f.p(c,m):(f=to(c),f.c(),f.m(r.parentNode,r)):f&&(f.d(1),f=null)},d(c){c&&(N(e),N(r)),f&&f.d(c)}}}function to(t){let e,l=t[11].label2+"",n,i,s,a,r,f=t[11].title2&&lo(t);return{c(){e=Rt("text"),n=C(l),f&&f.c(),r=yt(),u(e,"width",i=t[3]-4),u(e,"dominant-baseline","middle"),u(e,"text-anchor","middle"),u(e,"fill",s=t[7](-t[11].value2)t[10].call(e))},m(s,a){P(s,e,a),i&&i.m(e,null),l=ci(e,t[10].bind(e)),n=!0},p(s,[a]){s[0].x.ticks&&s[0].points&&s[4]?i?(i.p(s,a),a&17&&Z(i,1)):(i=Hs(s),i.c(),Z(i,1),i.m(e,null)):i&&(ht(),se(i,1,1,()=>{i=null}),vt())},i(s){n||(Z(i),n=!0)},o(s){se(i),n=!1},d(s){s&&N(e),i&&i.d(),l()}}}let rn=30;function h0(t,e,l){let{config:n}=e,i,s,a,r,f,c,m,_=0;function d(){_=this.clientHeight,l(5,_)}function h(){i=this.clientWidth,s=this.clientHeight,l(1,i),l(2,s)}return t.$$set=b=>{"config"in b&&l(0,n=b.config)},t.$$.update=()=>{if(t.$$.dirty&63){l(4,c=s-_);let b=i-(n.padding.left+n.padding.right);l(3,a=b/n.points.length),l(8,m=an.y.max?k=n.padding.bottom:wc||k<0?0:k})}},[n,i,s,a,c,_,r,f,m,d,h]}class dn extends qt{constructor(e){super(),Tt(this,e,h0,d0,St,{config:0})}}function v0(t){let e,l;return e=new dn({props:{config:t[0]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,[i]){const s={};i&1&&(s.config=n[0]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function b0(t,e,l){let{title:n}=e,{u1:i}=e,{u2:s}=e,{u3:a}=e,{ds:r}=e,f={};function c(m){return{label:Yt(m)+"V",title:m.toFixed(1)+" V",value:isNaN(m)?0:m,color:h1(m||0,document.documentElement.classList.contains("dark"))}}return t.$$set=m=>{"title"in m&&l(1,n=m.title),"u1"in m&&l(2,i=m.u1),"u2"in m&&l(3,s=m.u2),"u3"in m&&l(4,a=m.u3),"ds"in m&&l(5,r=m.ds)},t.$$.update=()=>{if(t.$$.dirty&62){let m=[],_=[];i>0&&(m.push({label:r===1?"L1-L2":"L1"}),_.push(c(i))),s>0&&(m.push({label:r===1?"L1-L3":"L2"}),_.push(c(s))),a>0&&(m.push({label:r===1?"L2-L3":"L3"}),_.push(c(a))),l(0,f={title:n,padding:{top:20,right:15,bottom:20,left:35},y:{min:200,max:260,ticks:[{value:207,label:"-10%"},{value:230,label:"230v"},{value:253,label:"+10%"}]},x:{ticks:m},points:_})}},[f,n,i,s,a,r]}class g0 extends qt{constructor(e){super(),Tt(this,e,b0,v0,St,{title:1,u1:2,u2:3,u3:4,ds:5})}}function k0(t){var E,W,ee,fe,_e;let e,l,n=(((E=t[0].reactive)==null?void 0:E.title)??"Reactive")+"",i,s,a,r,f=(((W=t[0].reactive)==null?void 0:W.instant_in)??"Instant in")+"",c,m,_,d=t[1][0]+"",h,b,g=t[1][1]+"",w,k,O,L=(((ee=t[0].reactive)==null?void 0:ee.instant_out)??"Instant out")+"",R,M,I,F=t[2][0]+"",j,V,y=t[2][1]+"",T,B,X,H,K=(((fe=t[0].reactive)==null?void 0:fe.total_in)??"Total in")+"",Y,U,G,oe=t[3][0]+"",le,Q,ne=t[3][1]+"",re,ue,ie,pe=(((_e=t[0].reactive)==null?void 0:_e.total_out)??"Total out")+"",ae,J,$,ke=t[4][0]+"",we,D,S=t[4][1]+"",A;return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("div"),r=p("div"),c=C(f),m=v(),_=p("div"),h=C(d),b=v(),w=C(g),k=v(),O=p("div"),R=C(L),M=v(),I=p("div"),j=C(F),V=v(),T=C(y),B=v(),X=p("div"),H=p("div"),Y=C(K),U=v(),G=p("div"),le=C(oe),Q=v(),re=C(ne),ue=v(),ie=p("div"),ae=C(pe),J=v(),$=p("div"),we=C(ke),D=v(),A=C(S),u(_,"class","text-right"),u(I,"class","text-right"),u(a,"class","grid grid-cols-2 mt-4"),u(G,"class","text-right"),u($,"class","text-right"),u(X,"class","grid grid-cols-2 mt-4"),u(e,"class","mx-2 text-sm")},m(he,x){P(he,e,x),o(e,l),o(l,i),o(e,s),o(e,a),o(a,r),o(r,c),o(a,m),o(a,_),o(_,h),o(_,b),o(_,w),o(a,k),o(a,O),o(O,R),o(a,M),o(a,I),o(I,j),o(I,V),o(I,T),o(e,B),o(e,X),o(X,H),o(H,Y),o(X,U),o(X,G),o(G,le),o(G,Q),o(G,re),o(X,ue),o(X,ie),o(ie,ae),o(X,J),o(X,$),o($,we),o($,D),o($,A)},p(he,[x]){var ve,ge,De,Te,Le;x&1&&n!==(n=(((ve=he[0].reactive)==null?void 0:ve.title)??"Reactive")+"")&&q(i,n),x&1&&f!==(f=(((ge=he[0].reactive)==null?void 0:ge.instant_in)??"Instant in")+"")&&q(c,f),x&2&&d!==(d=he[1][0]+"")&&q(h,d),x&2&&g!==(g=he[1][1]+"")&&q(w,g),x&1&&L!==(L=(((De=he[0].reactive)==null?void 0:De.instant_out)??"Instant out")+"")&&q(R,L),x&4&&F!==(F=he[2][0]+"")&&q(j,F),x&4&&y!==(y=he[2][1]+"")&&q(T,y),x&1&&K!==(K=(((Te=he[0].reactive)==null?void 0:Te.total_in)??"Total in")+"")&&q(Y,K),x&8&&oe!==(oe=he[3][0]+"")&&q(le,oe),x&8&&ne!==(ne=he[3][1]+"")&&q(re,ne),x&1&&pe!==(pe=(((Le=he[0].reactive)==null?void 0:Le.total_out)??"Total out")+"")&&q(ae,pe),x&16&&ke!==(ke=he[4][0]+"")&&q(we,ke),x&16&&S!==(S=he[4][1]+"")&&q(A,S)},i:We,o:We,d(he){he&&N(e)}}}function w0(t,e,l){let{importInstant:n}=e,{exportInstant:i}=e,{importTotal:s}=e,{exportTotal:a}=e,{translations:r={}}=e,f,c,m,_;return t.$$set=d=>{"importInstant"in d&&l(5,n=d.importInstant),"exportInstant"in d&&l(6,i=d.exportInstant),"importTotal"in d&&l(7,s=d.importTotal),"exportTotal"in d&&l(8,a=d.exportTotal),"translations"in d&&l(0,r=d.translations)},t.$$.update=()=>{t.$$.dirty&480&&(l(1,f=_l(n,"VAr")),l(2,c=_l(i,"VAr")),l(3,m=_l(s*1e3,"VArh")),l(4,_=_l(a*1e3,"VArh")))},[r,f,c,m,_,n,i,s,a]}class C0 extends qt{constructor(e){super(),Tt(this,e,w0,k0,St,{importInstant:5,exportInstant:6,importTotal:7,exportTotal:8,translations:0})}}function io(t){let e;function l(s,a){return s[3]?M0:S0}let n=l(t),i=n(t);return{c(){i.c(),e=yt()},m(s,a){i.m(s,a),P(s,e,a)},p(s,a){n===(n=l(s))&&i?i.p(s,a):(i.d(1),i=n(s),i&&(i.c(),i.m(e.parentNode,e)))},d(s){s&&N(e),i.d(s)}}}function S0(t){var W,ee,fe,_e,he;let e,l=(((W=t[4].realtime)==null?void 0:W.consumption)??"Consumption")+"",n,i,s,a,r=tl(((ee=t[4].common)==null?void 0:ee.hour)??"Hour")+"",f,c,m,_=t[6][0]+"",d,h,b=t[6][1]+"",g,w,k,O=tl(((fe=t[4].common)==null?void 0:fe.day)??"Day")+"",L,R,M,I=t[7][0]+"",F,j,V=t[7][1]+"",y,T,B,X=tl(((_e=t[4].common)==null?void 0:_e.month)??"Month")+"",H,K,Y,U=t[8][0]+"",G,oe,le=t[8][1]+"",Q,ne,re,ue=(((he=t[4].realtime)==null?void 0:he.last_month)??"Last month")+"",ie,pe,ae,J=t[9][0]+"",$,ke,we=t[9][1]+"",D,S,A,E=t[5]&&so(t);return{c(){e=p("strong"),n=C(l),i=v(),s=p("div"),a=p("div"),f=C(r),c=v(),m=p("div"),d=C(_),h=v(),g=C(b),w=v(),k=p("div"),L=C(O),R=v(),M=p("div"),F=C(I),j=v(),y=C(V),T=v(),B=p("div"),H=C(X),K=v(),Y=p("div"),G=C(U),oe=v(),Q=C(le),ne=v(),re=p("div"),ie=C(ue),pe=v(),ae=p("div"),$=C(J),ke=v(),D=C(we),S=v(),E&&E.c(),A=yt(),u(m,"class","text-right"),u(M,"class","text-right"),u(Y,"class","text-right"),u(ae,"class","text-right"),u(s,"class","grid grid-cols-2 mb-3")},m(x,ve){P(x,e,ve),o(e,n),P(x,i,ve),P(x,s,ve),o(s,a),o(a,f),o(s,c),o(s,m),o(m,d),o(m,h),o(m,g),o(s,w),o(s,k),o(k,L),o(s,R),o(s,M),o(M,F),o(M,j),o(M,y),o(s,T),o(s,B),o(B,H),o(s,K),o(s,Y),o(Y,G),o(Y,oe),o(Y,Q),o(s,ne),o(s,re),o(re,ie),o(s,pe),o(s,ae),o(ae,$),o(ae,ke),o(ae,D),P(x,S,ve),E&&E.m(x,ve),P(x,A,ve)},p(x,ve){var ge,De,Te,Le,Oe;ve&16&&l!==(l=(((ge=x[4].realtime)==null?void 0:ge.consumption)??"Consumption")+"")&&q(n,l),ve&16&&r!==(r=tl(((De=x[4].common)==null?void 0:De.hour)??"Hour")+"")&&q(f,r),ve&64&&_!==(_=x[6][0]+"")&&q(d,_),ve&64&&b!==(b=x[6][1]+"")&&q(g,b),ve&16&&O!==(O=tl(((Te=x[4].common)==null?void 0:Te.day)??"Day")+"")&&q(L,O),ve&128&&I!==(I=x[7][0]+"")&&q(F,I),ve&128&&V!==(V=x[7][1]+"")&&q(y,V),ve&16&&X!==(X=tl(((Le=x[4].common)==null?void 0:Le.month)??"Month")+"")&&q(H,X),ve&256&&U!==(U=x[8][0]+"")&&q(G,U),ve&256&&le!==(le=x[8][1]+"")&&q(Q,le),ve&16&&ue!==(ue=(((Oe=x[4].realtime)==null?void 0:Oe.last_month)??"Last month")+"")&&q(ie,ue),ve&512&&J!==(J=x[9][0]+"")&&q($,J),ve&512&&we!==(we=x[9][1]+"")&&q(D,we),x[5]?E?E.p(x,ve):(E=so(x),E.c(),E.m(A.parentNode,A)):E&&(E.d(1),E=null)},d(x){x&&(N(e),N(i),N(s),N(S),N(A)),E&&E.d(x)}}}function M0(t){var Re,ye,nl,Ut,Et,il,sl,ol,al,fl;let e,l=(((Re=t[4].common)==null?void 0:Re.import)??"Import")+"",n,i,s,a,r=tl(((ye=t[4].common)==null?void 0:ye.hour)??"Hour")+"",f,c,m,_=t[6][0]+"",d,h,b=t[6][1]+"",g,w,k,O,L=tl(((nl=t[4].common)==null?void 0:nl.day)??"Day")+"",R,M,I,F=t[7][0]+"",j,V,y=t[7][1]+"",T,B,X,H,K=tl(((Ut=t[4].common)==null?void 0:Ut.month)??"Month")+"",Y,U,G,oe=t[8][0]+"",le,Q,ne=t[8][1]+"",re,ue,ie,pe,ae=(((Et=t[4].realtime)==null?void 0:Et.last_mo)??"Last mo.")+"",J,$,ke,we=t[9][0]+"",D,S,A=t[9][1]+"",E,W,ee,fe,_e,he=(((il=t[4].common)==null?void 0:il.export)??"Export")+"",x,ve,ge,De,Te=tl(((sl=t[4].common)==null?void 0:sl.hour)??"Hour")+"",Le,Oe,Ee,Ue=t[10][0]+"",Xe,kt,$e=t[10][1]+"",st,Mt,pt,ot,nt=tl(((ol=t[4].common)==null?void 0:ol.day)??"Day")+"",at,Lt,Ge,Fe=t[11][0]+"",ze,et,be=t[11][1]+"",qe,Ye,me,Ce,ft=tl(((al=t[4].common)==null?void 0:al.month)??"Month")+"",Ve,Ft,bt,Be=t[12][0]+"",gt,rt,ct=t[12][1]+"",Ze,Dt,Gt,Ct,lt=(((fl=t[4].realtime)==null?void 0:fl.last_mo)??"Last mo.")+"",Ht,Kt,jt,Wt=t[13][0]+"",Qt,Zt,Jt=t[13][1]+"",$t,Ie,tt,it=t[5]&&oo(t),Ot=t[5]&&ao(t),Nt=t[5]&&fo(t),xe=t[5]&&uo(t),zt=t[5]&&ro(t),_t=t[5]&&co(t),mt=t[5]&&_o(t),de=t[5]&&mo(t);return{c(){e=p("strong"),n=C(l),i=v(),s=p("div"),a=p("div"),f=C(r),c=v(),m=p("div"),d=C(_),h=v(),g=C(b),w=v(),it&&it.c(),k=v(),O=p("div"),R=C(L),M=v(),I=p("div"),j=C(F),V=v(),T=C(y),B=v(),Ot&&Ot.c(),X=v(),H=p("div"),Y=C(K),U=v(),G=p("div"),le=C(oe),Q=v(),re=C(ne),ue=v(),Nt&&Nt.c(),ie=v(),pe=p("div"),J=C(ae),$=v(),ke=p("div"),D=C(we),S=v(),E=C(A),W=v(),xe&&xe.c(),fe=v(),_e=p("strong"),x=C(he),ve=v(),ge=p("div"),De=p("div"),Le=C(Te),Oe=v(),Ee=p("div"),Xe=C(Ue),kt=v(),st=C($e),Mt=v(),zt&&zt.c(),pt=v(),ot=p("div"),at=C(nt),Lt=v(),Ge=p("div"),ze=C(Fe),et=v(),qe=C(be),Ye=v(),_t&&_t.c(),me=v(),Ce=p("div"),Ve=C(ft),Ft=v(),bt=p("div"),gt=C(Be),rt=v(),Ze=C(ct),Dt=v(),mt&&mt.c(),Gt=v(),Ct=p("div"),Ht=C(lt),Kt=v(),jt=p("div"),Qt=C(Wt),Zt=v(),$t=C(Jt),Ie=v(),de&&de.c(),u(m,"class","text-right"),u(I,"class","text-right"),u(G,"class","text-right"),u(ke,"class","text-right"),u(s,"class",ee="grid grid-cols-"+t[14]+" mb-3"),u(Ee,"class","text-right"),u(Ge,"class","text-right"),u(bt,"class","text-right"),u(jt,"class","text-right"),u(ge,"class",tt="grid grid-cols-"+t[14])},m(Ae,te){P(Ae,e,te),o(e,n),P(Ae,i,te),P(Ae,s,te),o(s,a),o(a,f),o(s,c),o(s,m),o(m,d),o(m,h),o(m,g),o(s,w),it&&it.m(s,null),o(s,k),o(s,O),o(O,R),o(s,M),o(s,I),o(I,j),o(I,V),o(I,T),o(s,B),Ot&&Ot.m(s,null),o(s,X),o(s,H),o(H,Y),o(s,U),o(s,G),o(G,le),o(G,Q),o(G,re),o(s,ue),Nt&&Nt.m(s,null),o(s,ie),o(s,pe),o(pe,J),o(s,$),o(s,ke),o(ke,D),o(ke,S),o(ke,E),o(s,W),xe&&xe.m(s,null),P(Ae,fe,te),P(Ae,_e,te),o(_e,x),P(Ae,ve,te),P(Ae,ge,te),o(ge,De),o(De,Le),o(ge,Oe),o(ge,Ee),o(Ee,Xe),o(Ee,kt),o(Ee,st),o(ge,Mt),zt&&zt.m(ge,null),o(ge,pt),o(ge,ot),o(ot,at),o(ge,Lt),o(ge,Ge),o(Ge,ze),o(Ge,et),o(Ge,qe),o(ge,Ye),_t&&_t.m(ge,null),o(ge,me),o(ge,Ce),o(Ce,Ve),o(ge,Ft),o(ge,bt),o(bt,gt),o(bt,rt),o(bt,Ze),o(ge,Dt),mt&&mt.m(ge,null),o(ge,Gt),o(ge,Ct),o(Ct,Ht),o(ge,Kt),o(ge,jt),o(jt,Qt),o(jt,Zt),o(jt,$t),o(ge,Ie),de&&de.m(ge,null)},p(Ae,te){var Se,Pt,xt,cl,dl,ll,vl,bl,Nl,Pl;te&16&&l!==(l=(((Se=Ae[4].common)==null?void 0:Se.import)??"Import")+"")&&q(n,l),te&16&&r!==(r=tl(((Pt=Ae[4].common)==null?void 0:Pt.hour)??"Hour")+"")&&q(f,r),te&64&&_!==(_=Ae[6][0]+"")&&q(d,_),te&64&&b!==(b=Ae[6][1]+"")&&q(g,b),Ae[5]?it?it.p(Ae,te):(it=oo(Ae),it.c(),it.m(s,k)):it&&(it.d(1),it=null),te&16&&L!==(L=tl(((xt=Ae[4].common)==null?void 0:xt.day)??"Day")+"")&&q(R,L),te&128&&F!==(F=Ae[7][0]+"")&&q(j,F),te&128&&y!==(y=Ae[7][1]+"")&&q(T,y),Ae[5]?Ot?Ot.p(Ae,te):(Ot=ao(Ae),Ot.c(),Ot.m(s,X)):Ot&&(Ot.d(1),Ot=null),te&16&&K!==(K=tl(((cl=Ae[4].common)==null?void 0:cl.month)??"Month")+"")&&q(Y,K),te&256&&oe!==(oe=Ae[8][0]+"")&&q(le,oe),te&256&&ne!==(ne=Ae[8][1]+"")&&q(re,ne),Ae[5]?Nt?Nt.p(Ae,te):(Nt=fo(Ae),Nt.c(),Nt.m(s,ie)):Nt&&(Nt.d(1),Nt=null),te&16&&ae!==(ae=(((dl=Ae[4].realtime)==null?void 0:dl.last_mo)??"Last mo.")+"")&&q(J,ae),te&512&&we!==(we=Ae[9][0]+"")&&q(D,we),te&512&&A!==(A=Ae[9][1]+"")&&q(E,A),Ae[5]?xe?xe.p(Ae,te):(xe=uo(Ae),xe.c(),xe.m(s,null)):xe&&(xe.d(1),xe=null),te&16384&&ee!==(ee="grid grid-cols-"+Ae[14]+" mb-3")&&u(s,"class",ee),te&16&&he!==(he=(((ll=Ae[4].common)==null?void 0:ll.export)??"Export")+"")&&q(x,he),te&16&&Te!==(Te=tl(((vl=Ae[4].common)==null?void 0:vl.hour)??"Hour")+"")&&q(Le,Te),te&1024&&Ue!==(Ue=Ae[10][0]+"")&&q(Xe,Ue),te&1024&&$e!==($e=Ae[10][1]+"")&&q(st,$e),Ae[5]?zt?zt.p(Ae,te):(zt=ro(Ae),zt.c(),zt.m(ge,pt)):zt&&(zt.d(1),zt=null),te&16&&nt!==(nt=tl(((bl=Ae[4].common)==null?void 0:bl.day)??"Day")+"")&&q(at,nt),te&2048&&Fe!==(Fe=Ae[11][0]+"")&&q(ze,Fe),te&2048&&be!==(be=Ae[11][1]+"")&&q(qe,be),Ae[5]?_t?_t.p(Ae,te):(_t=co(Ae),_t.c(),_t.m(ge,me)):_t&&(_t.d(1),_t=null),te&16&&ft!==(ft=tl(((Nl=Ae[4].common)==null?void 0:Nl.month)??"Month")+"")&&q(Ve,ft),te&4096&&Be!==(Be=Ae[12][0]+"")&&q(gt,Be),te&4096&&ct!==(ct=Ae[12][1]+"")&&q(Ze,ct),Ae[5]?mt?mt.p(Ae,te):(mt=_o(Ae),mt.c(),mt.m(ge,Gt)):mt&&(mt.d(1),mt=null),te&16&<!==(lt=(((Pl=Ae[4].realtime)==null?void 0:Pl.last_mo)??"Last mo.")+"")&&q(Ht,lt),te&8192&&Wt!==(Wt=Ae[13][0]+"")&&q(Qt,Wt),te&8192&&Jt!==(Jt=Ae[13][1]+"")&&q($t,Jt),Ae[5]?de?de.p(Ae,te):(de=mo(Ae),de.c(),de.m(ge,null)):de&&(de.d(1),de=null),te&16384&&tt!==(tt="grid grid-cols-"+Ae[14])&&u(ge,"class",tt)},d(Ae){Ae&&(N(e),N(i),N(s),N(fe),N(_e),N(ve),N(ge)),it&&it.d(),Ot&&Ot.d(),Nt&&Nt.d(),xe&&xe.d(),zt&&zt.d(),_t&&_t.d(),mt&&mt.d(),de&&de.d()}}}function so(t){var $,ke,we,D,S,A;let e,l=((($=t[4].realtime)==null?void 0:$.cost)??"Cost")+"",n,i,s,a,r=tl(((ke=t[4].common)==null?void 0:ke.hour)??"Hour")+"",f,c,m,_=Yt(t[1].h.c,2)+"",d,h,b,g,w,k=tl(((we=t[4].common)==null?void 0:we.day)??"Day")+"",O,L,R,M=Yt(t[1].d.c,1)+"",I,F,j,V,y,T=tl(((D=t[4].common)==null?void 0:D.month)??"Month")+"",B,X,H,K=Yt(t[1].m.c)+"",Y,U,G,oe,le,Q=(((S=t[4].realtime)==null?void 0:S.last_month)??"Last month")+"",ne,re,ue,ie=Yt((A=t[0].last_month)==null?void 0:A.c)+"",pe,ae,J;return{c(){e=p("strong"),n=C(l),i=v(),s=p("div"),a=p("div"),f=C(r),c=v(),m=p("div"),d=C(_),h=v(),b=C(t[2]),g=v(),w=p("div"),O=C(k),L=v(),R=p("div"),I=C(M),F=v(),j=C(t[2]),V=v(),y=p("div"),B=C(T),X=v(),H=p("div"),Y=C(K),U=v(),G=C(t[2]),oe=v(),le=p("div"),ne=C(Q),re=v(),ue=p("div"),pe=C(ie),ae=v(),J=C(t[2]),u(m,"class","text-right"),u(R,"class","text-right"),u(H,"class","text-right"),u(ue,"class","text-right"),u(s,"class","grid grid-cols-2")},m(E,W){P(E,e,W),o(e,n),P(E,i,W),P(E,s,W),o(s,a),o(a,f),o(s,c),o(s,m),o(m,d),o(m,h),o(m,b),o(s,g),o(s,w),o(w,O),o(s,L),o(s,R),o(R,I),o(R,F),o(R,j),o(s,V),o(s,y),o(y,B),o(s,X),o(s,H),o(H,Y),o(H,U),o(H,G),o(s,oe),o(s,le),o(le,ne),o(s,re),o(s,ue),o(ue,pe),o(ue,ae),o(ue,J)},p(E,W){var ee,fe,_e,he,x,ve;W&16&&l!==(l=(((ee=E[4].realtime)==null?void 0:ee.cost)??"Cost")+"")&&q(n,l),W&16&&r!==(r=tl(((fe=E[4].common)==null?void 0:fe.hour)??"Hour")+"")&&q(f,r),W&2&&_!==(_=Yt(E[1].h.c,2)+"")&&q(d,_),W&4&&q(b,E[2]),W&16&&k!==(k=tl(((_e=E[4].common)==null?void 0:_e.day)??"Day")+"")&&q(O,k),W&2&&M!==(M=Yt(E[1].d.c,1)+"")&&q(I,M),W&4&&q(j,E[2]),W&16&&T!==(T=tl(((he=E[4].common)==null?void 0:he.month)??"Month")+"")&&q(B,T),W&2&&K!==(K=Yt(E[1].m.c)+"")&&q(Y,K),W&4&&q(G,E[2]),W&16&&Q!==(Q=(((x=E[4].realtime)==null?void 0:x.last_month)??"Last month")+"")&&q(ne,Q),W&1&&ie!==(ie=Yt((ve=E[0].last_month)==null?void 0:ve.c)+"")&&q(pe,ie),W&4&&q(J,E[2])},d(E){E&&(N(e),N(i),N(s))}}}function oo(t){let e,l=Yt(t[1].h.c,2)+"",n,i,s;return{c(){e=p("div"),n=C(l),i=v(),s=C(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),o(e,n),o(e,i),o(e,s)},p(a,r){r&2&&l!==(l=Yt(a[1].h.c,2)+"")&&q(n,l),r&4&&q(s,a[2])},d(a){a&&N(e)}}}function ao(t){let e,l=Yt(t[1].d.c,1)+"",n,i,s;return{c(){e=p("div"),n=C(l),i=v(),s=C(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),o(e,n),o(e,i),o(e,s)},p(a,r){r&2&&l!==(l=Yt(a[1].d.c,1)+"")&&q(n,l),r&4&&q(s,a[2])},d(a){a&&N(e)}}}function fo(t){let e,l=Yt(t[1].m.c)+"",n,i,s;return{c(){e=p("div"),n=C(l),i=v(),s=C(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),o(e,n),o(e,i),o(e,s)},p(a,r){r&2&&l!==(l=Yt(a[1].m.c)+"")&&q(n,l),r&4&&q(s,a[2])},d(a){a&&N(e)}}}function uo(t){var a;let e,l=Yt((a=t[0].last_month)==null?void 0:a.c)+"",n,i,s;return{c(){e=p("div"),n=C(l),i=v(),s=C(t[2]),u(e,"class","text-right")},m(r,f){P(r,e,f),o(e,n),o(e,i),o(e,s)},p(r,f){var c;f&1&&l!==(l=Yt((c=r[0].last_month)==null?void 0:c.c)+"")&&q(n,l),f&4&&q(s,r[2])},d(r){r&&N(e)}}}function ro(t){let e,l=Yt(t[1].h.i,2)+"",n,i,s;return{c(){e=p("div"),n=C(l),i=v(),s=C(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),o(e,n),o(e,i),o(e,s)},p(a,r){r&2&&l!==(l=Yt(a[1].h.i,2)+"")&&q(n,l),r&4&&q(s,a[2])},d(a){a&&N(e)}}}function co(t){let e,l=Yt(t[1].d.i,1)+"",n,i,s;return{c(){e=p("div"),n=C(l),i=v(),s=C(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),o(e,n),o(e,i),o(e,s)},p(a,r){r&2&&l!==(l=Yt(a[1].d.i,1)+"")&&q(n,l),r&4&&q(s,a[2])},d(a){a&&N(e)}}}function _o(t){let e,l=Yt(t[1].m.i)+"",n,i,s;return{c(){e=p("div"),n=C(l),i=v(),s=C(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),o(e,n),o(e,i),o(e,s)},p(a,r){r&2&&l!==(l=Yt(a[1].m.i)+"")&&q(n,l),r&4&&q(s,a[2])},d(a){a&&N(e)}}}function mo(t){var a;let e,l=Yt((a=t[0].last_month)==null?void 0:a.i)+"",n,i,s;return{c(){e=p("div"),n=C(l),i=v(),s=C(t[2]),u(e,"class","text-right")},m(r,f){P(r,e,f),o(e,n),o(e,i),o(e,s)},p(r,f){var c;f&1&&l!==(l=Yt((c=r[0].last_month)==null?void 0:c.i)+"")&&q(n,l),f&4&&q(s,r[2])},d(r){r&&N(e)}}}function N0(t){var m;let e,l,n=(((m=t[4].realtime)==null?void 0:m.title)??"Real time calculations")+"",i,s,a,r,f,c=t[1]&&io(t);return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("br"),r=p("br"),f=v(),c&&c.c(),u(e,"class","mx-2 text-sm")},m(_,d){P(_,e,d),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),c&&c.m(e,null)},p(_,[d]){var h;d&16&&n!==(n=(((h=_[4].realtime)==null?void 0:h.title)??"Real time calculations")+"")&&q(i,n),_[1]?c?c.p(_,d):(c=io(_),c.c(),c.m(e,null)):c&&(c.d(1),c=null)},i:We,o:We,d(_){_&&N(e),c&&c.d()}}}function P0(t,e,l){let{sysinfo:n}=e,{data:i}=e,{currency:s}=e,{hasExport:a}=e,{translations:r={}}=e,f,c,m,_,d,h,b,g,w=!1,k=3;return t.$$set=O=>{"sysinfo"in O&&l(0,n=O.sysinfo),"data"in O&&l(1,i=O.data),"currency"in O&&l(2,s=O.currency),"hasExport"in O&&l(3,a=O.hasExport),"translations"in O&&l(4,r=O.translations)},t.$$.update=()=>{var O,L,R,M,I,F,j,V;t.$$.dirty&35&&(l(5,w=i&&i.h&&(Math.abs(i.h.c)>.01||Math.abs(i.d.c)>.01||Math.abs(i.m.c)>.01||Math.abs(i.h.i)>.01||Math.abs(i.d.i)>.01||Math.abs(i.m.i)>.01)),l(14,k=w?3:2),l(6,f=_l(((O=i==null?void 0:i.h)==null?void 0:O.u)*1e3,"Wh")),l(7,c=_l(((L=i==null?void 0:i.d)==null?void 0:L.u)*1e3,"Wh")),l(8,m=_l(((R=i==null?void 0:i.m)==null?void 0:R.u)*1e3,"Wh")),l(9,_=_l(((M=n==null?void 0:n.last_month)==null?void 0:M.u)*1e3,"Wh")),l(10,d=_l(((I=i==null?void 0:i.h)==null?void 0:I.p)*1e3,"Wh")),l(11,h=_l(((F=i==null?void 0:i.d)==null?void 0:F.p)*1e3,"Wh")),l(12,b=_l(((j=i==null?void 0:i.m)==null?void 0:j.p)*1e3,"Wh")),l(13,g=_l(((V=n==null?void 0:n.last_month)==null?void 0:V.p)*1e3,"Wh")))},[n,i,s,a,r,w,f,c,m,_,d,h,b,g,k]}class T0 extends qt{constructor(e){super(),Tt(this,e,P0,N0,St,{sysinfo:0,data:1,currency:2,hasExport:3,translations:4})}}function q0(t){let e,l;return e=new dn({props:{config:t[0]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,[i]){const s={};i&1&&(s.config=n[0]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function E0(t,e,l){let{title:n}=e,{json:i}=e,{sysinfo:s}=e,a={},r,f,c=document.documentElement.classList.contains("dark");return t.$$set=m=>{"title"in m&&l(1,n=m.title),"json"in m&&l(2,i=m.json),"sysinfo"in m&&l(3,s=m.sysinfo)},t.$$.update=()=>{if(t.$$.dirty&62){let m=i.currency,_=new Date().getUTCHours(),d=0,h=0,b=0,g=[],w=[],k=[];l(5,f=l(4,r=0));let O=new Date;for(Il(O,s.clock_offset-(24+O.getHours()-O.getUTCHours())%24),d=_;d<24&&(h=i[wt(b++)],h!=null);d++)w.push({label:wt(O.getHours())}),k.push(h*100),l(5,f=Math.min(f,h*100)),l(4,r=Math.max(r,h*100)),Il(O,1);for(d=0;d<24&&(h=i[wt(b++)],h!=null);d++)w.push({label:wt(O.getHours())}),k.push(h*100),l(5,f=Math.min(f,h*100)),l(4,r=Math.max(r,h*100)),Il(O,1);let L=Gn(Math.max(Math.abs(f)/100,Math.abs(r)/100),m);if(L&&L[1]&&L[1]!=m)for(m=L[1],l(5,f*=100),l(4,r*=100),d=0;d=0?j.toFixed(V):"",title:j>=0?j.toFixed(2)+" "+m:"",value:h>=0?Math.abs(h):0,label2:j<0?j.toFixed(V):"",title2:j<0?j.toFixed(2)+" "+m:"",value2:h<0?Math.abs(h):0,color:c?"#5c2da5":"#7c3aed"})}let M=Math.max(r,Math.abs(f));if(f<0){l(5,f=Math.min(M/4*-1,f));let j=Math.ceil(Math.abs(f)/M*4),V=f/j;for(d=1;d{"title"in m&&l(1,n=m.title),"json"in m&&l(2,i=m.json),"sysinfo"in m&&l(3,s=m.sysinfo)},t.$$.update=()=>{if(t.$$.dirty&62){let m=0,_=[],d=[],h=[];l(5,f=l(4,r=0));let b=new Date,g=new Date;g.setDate(0),g.setHours(12);let w=(g.getHours()-g.getUTCHours())%24-s.clock_offset,k=b.getUTCHours();for(Il(b,-w-24),m=k;m<24;m++){let M=i["i"+wt(m)],I=i["e"+wt(m)];M===void 0&&(M=0),I===void 0&&(I=0),d.push({label:wt(b.getHours())}),h.push({label:M.toFixed(1),title:M.toFixed(2)+" kWh",value:M*10,label2:I.toFixed(1),title2:I.toFixed(2)+" kWh",value2:I*10,color:c?"#5c2da5":"#7c3aed",color2:c?"#27728e":"#37829e"}),l(5,f=Math.max(f,I*10)),l(4,r=Math.max(r,M*10)),Il(b,1)}for(m=0;m{"title"in m&&l(1,n=m.title),"json"in m&&l(2,i=m.json),"sysinfo"in m&&l(3,s=m.sysinfo)},t.$$.update=()=>{if(t.$$.dirty&62){let m=0,_=[],d=[],h=[];l(5,f=l(4,r=0));let b=new Date,g=new Date;g.setDate(0),g.setHours(12);let w=(g.getHours()-g.getUTCHours())%24-s.clock_offset;for(Il(b,-w),Il(g,-w),m=b.getDate();m<=g.getDate();m++){let R=i["i"+wt(m)],M=i["e"+wt(m)];R===void 0&&(R=0),M===void 0&&(M=0),d.push({label:wt(m)}),h.push({label:R.toFixed(R<10?1:0),title:R.toFixed(2)+" kWh",value:R,label2:M.toFixed(M<10?1:0),title2:M.toFixed(2)+" kWh",value2:M,color:c?"#5c2da5":"#7c3aed",color2:c?"#27728e":"#37829e"}),l(5,f=Math.max(f,M)),l(4,r=Math.max(r,R))}for(m=1;m{"title"in c&&l(1,n=c.title),"json"in c&&l(2,i=c.json)},t.$$.update=()=>{if(t.$$.dirty&30){let c=0,m=0,_=[],d=[],h=[];i.s&&i.s.forEach((w,k)=>{var O=w.n?w.n:w.a;m=w.v,m==-127&&(m=0),d.push({label:O.slice(-4)}),h.push({label:m.toFixed(1),value:m,color:s?"#5c2da5":"#7c3aed"}),l(4,f=Math.min(f,m)),l(3,r=Math.max(r,m))}),l(3,r=Math.ceil(r)),l(4,f=Math.floor(f));let b=r;f<0&&(b+=Math.abs(f));let g=b/4;for(c=0;c<5;c++)m=f+g*c,_.push({value:m,label:m.toFixed(1)});l(0,a={title:n+" (°C)",dark:document.documentElement.classList.contains("dark"),height:226,width:1520,padding:{top:20,right:15,bottom:20,left:35},y:{min:f,max:r,ticks:_},x:{ticks:d},points:h})}},[a,n,i,r,f]}class j0 extends qt{constructor(e){super(),Tt(this,e,B0,U0,St,{title:1,json:2})}}function z0(t){let e,l;return e=new dn({props:{config:t[0]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,[i]){const s={};i&1&&(s.config=n[0]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}let y0=0;function H0(t,e,l){let{title:n}=e,{translations:i={}}=e,s=document.documentElement.classList.contains("dark"),a={},r=0,{tariffData:f}=e,{realtime:c}=e;return t.$$set=m=>{"title"in m&&l(1,n=m.title),"translations"in m&&l(2,i=m.translations),"tariffData"in m&&l(3,f=m.tariffData),"realtime"in m&&l(4,c=m.realtime)},t.$$.update=()=>{var m,_,d;if(t.$$.dirty&62){let h=0,b=[],g=[],w=[];if(b.push({value:0,label:0}),console.log(c),f&&!isNaN((m=c==null?void 0:c.h)==null?void 0:m.u)&&(w.push({label:c.h.u.toFixed(2),value:c.h.u,title:c.h.u.toFixed(2)+" kWh",color:mi(c.h.u/f.c*100)}),g.push({label:((_=i.common)==null?void 0:_.now)??"Now"})),f&&f.p)for(h=0;h0?wt(k.d)+"."+(i.months?(d=i.months)==null?void 0:d[new Date().getMonth()]:wt(new Date().getMonth()+1)):"-",L=O;isNaN(k.h)||(L=L+" "+wt(k.h)+":00"),L=L+": "+k.v.toFixed(2)+" kWh",w.push({label:k.v.toFixed(2),title:k.v.toFixed(2)+" kWh",value:k.v,title:L,color:s?"#5c2da5":"#7c3aed"}),g.push({label:O}),l(5,r=Math.max(r,k.v))}if(f&&f.t){for(h=0;h=r)break;b.push({value:k,label:k})}b.push({label:f.m.toFixed(1),align:"right",color:"green",value:f.m})}f&&f.c&&(b.push({label:f.c.toFixed(0),color:"orange",value:f.c}),l(5,r=Math.max(r,f.c))),l(5,r=Math.ceil(r)),l(0,a={title:n,dark:document.documentElement.classList.contains("dark"),padding:{top:20,right:20,bottom:20,left:20},y:{min:y0,max:r,ticks:b},x:{ticks:g},points:w})}},[a,n,i,f,c,r]}class W0 extends qt{constructor(e){super(),Tt(this,e,H0,z0,St,{title:1,translations:2,tariffData:3,realtime:4})}}let an=0,G0={data:[]};async function xi(){let e=await(await Sl(an<0?"realtime.json":"realtime.json?offset="+an)).json();es.update(l=>{for(let n=0;n=0&&(an+=e.size,ankn||Bi-kn>300?(xi(),Si=0):es.update(t=>{if(t.lastUpdate)for(;kn>t.lastUpdate;)t.data.unshift(Hu),t.data=t.data.slice(0,t.size),t.lastUpdate+=10,Si++;else t.lastUpdate=kn;return t})}function Y0(t){if(Hu=t.i-t.e,kn=t.u,!po){xi(),po=!0,Bi=kn;return}V0()&&K0()}function ho(t,e,l){const n=t.slice();return n[18]=e[l],n[20]=l,n}function vo(t,e,l){const n=t.slice();return n[21]=e[l],n}function Q0(t){let e,l,n;return{c(){e=p("strong"),l=C(t[0]),n=C(" not available"),u(e,"class","text-sm")},m(i,s){P(i,e,s),o(e,l),o(e,n)},p(i,s){s&1&&q(l,i[0])},d(i){i&&N(e)}}}function X0(t){let e,l,n,i,s,a,r,f=t[8]&&bo(t);return{c(){e=p("strong"),l=C(t[0]),n=C(" ("),i=C(t[12]),s=C(")"),a=v(),f&&f.c(),r=yt(),u(e,"class","text-sm")},m(c,m){P(c,e,m),o(e,l),o(e,n),o(e,i),o(e,s),P(c,a,m),f&&f.m(c,m),P(c,r,m)},p(c,m){m&1&&q(l,c[0]),m&4096&&q(i,c[12]),c[8]?f?f.p(c,m):(f=bo(c),f.c(),f.m(r.parentNode,r)):f&&(f.d(1),f=null)},d(c){c&&(N(e),N(a),N(r)),f&&f.d(c)}}}function bo(t){let e,l,n,i,s,a=ut(t[8]),r=[];for(let m=0;mt[17].call(e))},m(a,r){P(a,e,r),s.m(e,null),l=ci(e,t[17].bind(e))},p(a,[r]){i===(i=n(a))&&s?s.p(a,r):(s.d(1),s=i(a),s&&(s.c(),s.m(e,null)))},i:We,o:We,d(a){a&&N(e),s.d(),l()}}}function J0(t,e,l){let{title:n}=e,i=document.documentElement.classList.contains("dark"),s=null;es.subscribe(M=>{l(16,s=M)});let a=!1,r,f,c,m,_,d,h,b=function(M,I,F){return Math.ceil(_-(M-I)/(F-I)*_)-25},g=function(M){return 30+Math.ceil(M/s.size*(d-35))},w,k,O,L;function R(){c=this.clientWidth,m=this.clientHeight,l(3,c),l(4,m)}return t.$$set=M=>{"title"in M&&l(0,n=M.title)},t.$$.update=()=>{if(t.$$.dirty&67582)if(l(5,_=parseInt(m)-50),l(6,d=c-35),l(10,O=d/s.size),l(2,f=0),l(1,r=0),s.data&&_>10&&d>100&&O>.1){l(11,a=!0);for(let F in s.data){let j=s.data[F];isNaN(j)&&(j=0),l(1,r=Math.max(Math.ceil(j/1e3)*1e3,r)),l(2,f=Math.min(Math.floor(j/1e3)*1e3,f))}let M=r-f;l(12,L=r>2500?"kW":"W"),l(8,w=[]);for(let F=f;F2500?(F/1e3).toFixed(1):F}),!(w.length>6));F+=M/5);l(9,k=[]);for(let F=0;F12));F+=Math.round(s.size/Math.round(d/120)));let I=s.size;l(7,h=g(s.size)+","+b(0,f,r)+" "+g(1)+","+b(0,f,r));for(let F in s.data){if(I<0)break;let j=s.data[F];isNaN(j)&&(j=0),l(7,h=g(I--)+","+b(j,f,r)+" "+h)}}else l(11,a=!1)},[n,r,f,c,m,_,d,h,w,k,O,a,L,i,b,g,s,R]}class $0 extends qt{constructor(e){super(),Tt(this,e,J0,Z0,St,{title:0})}}function x0(t){let e,l;return e=new dn({props:{config:t[0]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,[i]){const s={};i&1&&(s.config=n[0]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function ec(t,e,l){let{title:n}=e,{unit:i=""}=e,{l1:s=!1}=e,{l2:a=!1}=e,{l2x:r=!1}=e,{l3:f=!1}=e,{l1i:c=0}=e,{l2i:m=0}=e,{l3i:_=0}=e,{l1e:d=0}=e,{l2e:h=0}=e,{l3e:b=0}=e,{maxImport:g=0}=e,{maxExport:w=0}=e,{importColorFn:k}=e,{exportColorFn:O}=e,L={};function R(M,I){return{label:Yt(M>900?M/1e3:M)+(M>900?"k":"")+i,title:M.toFixed(2)+" "+i,value:isNaN(M)?0:M,color:k(M?M/g*100:0,document.documentElement.classList.contains("dark")),label2:Yt(I>900?I/1e3:I)+(I>900?"k":"")+i,title2:I.toFixed(2)+" "+i,value2:isNaN(I)?0:I,color2:O(I?I/w*100:0)}}return t.$$set=M=>{"title"in M&&l(1,n=M.title),"unit"in M&&l(2,i=M.unit),"l1"in M&&l(3,s=M.l1),"l2"in M&&l(4,a=M.l2),"l2x"in M&&l(5,r=M.l2x),"l3"in M&&l(6,f=M.l3),"l1i"in M&&l(7,c=M.l1i),"l2i"in M&&l(8,m=M.l2i),"l3i"in M&&l(9,_=M.l3i),"l1e"in M&&l(10,d=M.l1e),"l2e"in M&&l(11,h=M.l2e),"l3e"in M&&l(12,b=M.l3e),"maxImport"in M&&l(13,g=M.maxImport),"maxExport"in M&&l(14,w=M.maxExport),"importColorFn"in M&&l(15,k=M.importColorFn),"exportColorFn"in M&&l(16,O=M.exportColorFn)},t.$$.update=()=>{if(t.$$.dirty&32762){let M=[],I=[];s&&(M.push({label:"L1"}),I.push(R(c,d))),a&&(r?(M.push({label:"L2"}),I.push({label:"Not available",labelAngle:-90,title:"L2 current is not reported by your meter",value:0,color:"#7c3aedcc"})):(M.push({label:"L2"}),I.push(R(m,h)))),f&&(M.push({label:"L3"}),I.push(R(_,b)));let F=[];if(w){let j=w>g?4:w*4/g;F.push({value:-w,label:"-100%"}),j>=4&&F.push({value:-w/4*3,label:"-75%"}),j>=2&&F.push({value:-w/2,label:"-50%"}),j>=4&&F.push({value:-w/4,label:"-25%"})}if(F.push({value:0,label:"0%"}),g){let j=g>w?4:g*4/w;F.push({value:g/4,label:"25%"}),j>=4&&F.push({value:g/2,label:"50%"}),j>=2&&F.push({value:g/4*3,label:"75%"}),j>=4&&F.push({value:g,label:"100%"})}l(0,L={title:n,dark:document.documentElement.classList.contains("dark"),padding:{top:20,right:15,bottom:20,left:35},y:{min:-w,max:g,ticks:F},x:{ticks:M},points:I})}},[L,n,i,s,a,r,f,c,m,_,d,h,b,g,w,k,O]}class ts extends qt{constructor(e){super(),Tt(this,e,ec,x0,St,{title:1,unit:2,l1:3,l2:4,l2x:5,l3:6,l1i:7,l2i:8,l3i:9,l1e:10,l2e:11,l3e:12,maxImport:13,maxExport:14,importColorFn:15,exportColorFn:16})}}function So(t){var k;let e,l,n,i,s,a,r=(t[0].mt?fi(t[0].mt):"-")+"",f,c,m,_=t[11][0]+"",d,h,b=t[11][1]+"",g,w;return i=new yu({props:{val:t[0].i?t[0].i:0,max:t[0].im?t[0].im:15e3,unit:"W",label:((k=t[6].common)==null?void 0:k.import)??"Import",sub:Gn(t[0].p,t[0].pc),colorFn:mi}}),{c(){e=p("div"),l=p("div"),n=p("div"),Pe(i.$$.fragment),s=v(),a=p("div"),f=C(r),c=v(),m=p("div"),d=C(_),h=v(),g=C(b),u(n,"class","col-span-2"),u(m,"class","text-right"),u(l,"class","grid grid-cols-2"),u(e,"class","cnt")},m(O,L){P(O,e,L),o(e,l),o(l,n),Me(i,n,null),o(l,s),o(l,a),o(a,f),o(l,c),o(l,m),o(m,d),o(m,h),o(m,g),w=!0},p(O,L){var M;const R={};L&1&&(R.val=O[0].i?O[0].i:0),L&1&&(R.max=O[0].im?O[0].im:15e3),L&64&&(R.label=((M=O[6].common)==null?void 0:M.import)??"Import"),L&1&&(R.sub=Gn(O[0].p,O[0].pc)),i.$set(R),(!w||L&1)&&r!==(r=(O[0].mt?fi(O[0].mt):"-")+"")&&q(f,r),(!w||L&2048)&&_!==(_=O[11][0]+"")&&q(d,_),(!w||L&2048)&&b!==(b=O[11][1]+"")&&q(g,b)},i(O){w||(Z(i.$$.fragment,O),w=!0)},o(O){se(i.$$.fragment,O),w=!1},d(O){O&&N(e),Ne(i)}}}function Mo(t){var g;let e,l,n,i,s,a,r,f,c=t[12][0]+"",m,_,d=t[12][1]+"",h,b;return i=new yu({props:{val:t[0].e?t[0].e:0,max:t[0].om?t[0].om*1e3:1e4,unit:"W",label:((g=t[6].common)==null?void 0:g.export)??"Export",sub:Gn(t[0].px,t[0].pc),colorFn:Hn}}),{c(){e=p("div"),l=p("div"),n=p("div"),Pe(i.$$.fragment),s=v(),a=p("div"),r=v(),f=p("div"),m=C(c),_=v(),h=C(d),u(n,"class","col-span-2"),u(f,"class","text-right"),u(l,"class","grid grid-cols-2"),u(e,"class","cnt")},m(w,k){P(w,e,k),o(e,l),o(l,n),Me(i,n,null),o(l,s),o(l,a),o(l,r),o(l,f),o(f,m),o(f,_),o(f,h),b=!0},p(w,k){var L;const O={};k&1&&(O.val=w[0].e?w[0].e:0),k&1&&(O.max=w[0].om?w[0].om*1e3:1e4),k&64&&(O.label=((L=w[6].common)==null?void 0:L.export)??"Export"),k&1&&(O.sub=Gn(w[0].px,w[0].pc)),i.$set(O),(!b||k&4096)&&c!==(c=w[12][0]+"")&&q(m,c),(!b||k&4096)&&d!==(d=w[12][1]+"")&&q(h,d)},i(w){b||(Z(i.$$.fragment,w),b=!0)},o(w){se(i.$$.fragment,w),b=!1},d(w){w&&N(e),Ne(i)}}}function No(t){let e,l,n=t[0].l1&&Po(t);return{c(){e=p("div"),n&&n.c(),u(e,"class","cnt")},m(i,s){P(i,e,s),n&&n.m(e,null),l=!0},p(i,s){i[0].l1?n?(n.p(i,s),s&1&&Z(n,1)):(n=Po(i),n.c(),Z(n,1),n.m(e,null)):n&&(ht(),se(n,1,1,()=>{n=null}),vt())},i(i){l||(Z(n),l=!0)},o(i){se(n),l=!1},d(i){i&&N(e),n&&n.d()}}}function Po(t){var n;let e,l;return e=new g0({props:{title:((n=t[6].common)==null?void 0:n.voltage)??"Volt",u1:t[0].l1.u,u2:t[0].l2.u,u3:t[0].l3.u,ds:t[0].ds}}),{c(){Pe(e.$$.fragment)},m(i,s){Me(e,i,s),l=!0},p(i,s){var r;const a={};s&64&&(a.title=((r=i[6].common)==null?void 0:r.voltage)??"Volt"),s&1&&(a.u1=i[0].l1.u),s&1&&(a.u2=i[0].l2.u),s&1&&(a.u3=i[0].l3.u),s&1&&(a.ds=i[0].ds),e.$set(a)},i(i){l||(Z(e.$$.fragment,i),l=!0)},o(i){se(e.$$.fragment,i),l=!1},d(i){Ne(e,i)}}}function To(t){let e,l,n=t[0].l1&&qo(t);return{c(){e=p("div"),n&&n.c(),u(e,"class","cnt")},m(i,s){P(i,e,s),n&&n.m(e,null),l=!0},p(i,s){i[0].l1?n?(n.p(i,s),s&1&&Z(n,1)):(n=qo(i),n.c(),Z(n,1),n.m(e,null)):n&&(ht(),se(n,1,1,()=>{n=null}),vt())},i(i){l||(Z(n),l=!0)},o(i){se(n),l=!1},d(i){i&&N(e),n&&n.d()}}}function qo(t){var n;let e,l;return e=new ts({props:{title:((n=t[6].common)==null?void 0:n.amperage)??"Amp",unit:"A",importColorFn:mi,exportColorFn:Hn,maxImport:t[0].mf,l1:t[8],l2:t[9],l3:t[10],l2x:t[0].l2.e,l1i:Math.max(Math.abs(t[0].l1.i),0),l2i:Math.max(Math.abs(t[0].l2.i),0),l3i:Math.max(Math.abs(t[0].l3.i),0)}}),{c(){Pe(e.$$.fragment)},m(i,s){Me(e,i,s),l=!0},p(i,s){var r;const a={};s&64&&(a.title=((r=i[6].common)==null?void 0:r.amperage)??"Amp"),s&1&&(a.maxImport=i[0].mf),s&256&&(a.l1=i[8]),s&512&&(a.l2=i[9]),s&1024&&(a.l3=i[10]),s&1&&(a.l2x=i[0].l2.e),s&1&&(a.l1i=Math.max(Math.abs(i[0].l1.i),0)),s&1&&(a.l2i=Math.max(Math.abs(i[0].l2.i),0)),s&1&&(a.l3i=Math.max(Math.abs(i[0].l3.i),0)),e.$set(a)},i(i){l||(Z(e.$$.fragment,i),l=!0)},o(i){se(e.$$.fragment,i),l=!1},d(i){Ne(e,i)}}}function Eo(t){let e,l,n=t[0].l1&&Do(t);return{c(){e=p("div"),n&&n.c(),u(e,"class","cnt")},m(i,s){P(i,e,s),n&&n.m(e,null),l=!0},p(i,s){i[0].l1?n?(n.p(i,s),s&1&&Z(n,1)):(n=Do(i),n.c(),Z(n,1),n.m(e,null)):n&&(ht(),se(n,1,1,()=>{n=null}),vt())},i(i){l||(Z(n),l=!0)},o(i){se(n),l=!1},d(i){i&&N(e),n&&n.d()}}}function Do(t){var n;let e,l;return e=new ts({props:{title:((n=t[6].dashboard)==null?void 0:n.phase)??"Phase",unit:"W",importColorFn:mi,exportColorFn:Hn,maxImport:(t[0].mf?t[0].mf:32)*230,maxExport:t[0].om?t[13]?t[0].om*1e3/Math.sqrt(3):t[0].om*1e3:0,l1:t[8],l2:t[9],l3:t[10],l1i:t[0].l1.p,l2i:t[0].l2.p,l3i:t[0].l3.p,l1e:t[0].l1.q,l2e:t[0].l2.q,l3e:t[0].l3.q}}),{c(){Pe(e.$$.fragment)},m(i,s){Me(e,i,s),l=!0},p(i,s){var r;const a={};s&64&&(a.title=((r=i[6].dashboard)==null?void 0:r.phase)??"Phase"),s&1&&(a.maxImport=(i[0].mf?i[0].mf:32)*230),s&8193&&(a.maxExport=i[0].om?i[13]?i[0].om*1e3/Math.sqrt(3):i[0].om*1e3:0),s&256&&(a.l1=i[8]),s&512&&(a.l2=i[9]),s&1024&&(a.l3=i[10]),s&1&&(a.l1i=i[0].l1.p),s&1&&(a.l2i=i[0].l2.p),s&1&&(a.l3i=i[0].l3.p),s&1&&(a.l1e=i[0].l1.q),s&1&&(a.l2e=i[0].l2.q),s&1&&(a.l3e=i[0].l3.q),e.$set(a)},i(i){l||(Z(e.$$.fragment,i),l=!0)},o(i){se(e.$$.fragment,i),l=!1},d(i){Ne(e,i)}}}function Ao(t){let e,l,n=t[0].l1&&Lo(t);return{c(){e=p("div"),n&&n.c(),u(e,"class","cnt")},m(i,s){P(i,e,s),n&&n.m(e,null),l=!0},p(i,s){i[0].l1?n?(n.p(i,s),s&1&&Z(n,1)):(n=Lo(i),n.c(),Z(n,1),n.m(e,null)):n&&(ht(),se(n,1,1,()=>{n=null}),vt())},i(i){l||(Z(n),l=!0)},o(i){se(n),l=!1},d(i){i&&N(e),n&&n.d()}}}function Lo(t){var n;let e,l;return e=new ts({props:{title:((n=t[6].dashboard)==null?void 0:n.pf)??"Pf",importColorFn:Hn,exportColorFn:Hn,maxImport:1,l1:t[8],l2:t[9],l3:t[10],l1i:t[0].l1.f,l2i:t[0].l2.f,l3i:t[0].l3.f}}),{c(){Pe(e.$$.fragment)},m(i,s){Me(e,i,s),l=!0},p(i,s){var r;const a={};s&64&&(a.title=((r=i[6].dashboard)==null?void 0:r.pf)??"Pf"),s&256&&(a.l1=i[8]),s&512&&(a.l2=i[9]),s&1024&&(a.l3=i[10]),s&1&&(a.l1i=i[0].l1.f),s&1&&(a.l2i=i[0].l2.f),s&1&&(a.l3i=i[0].l3.f),e.$set(a)},i(i){l||(Z(e.$$.fragment,i),l=!0)},o(i){se(e.$$.fragment,i),l=!1},d(i){Ne(e,i)}}}function Oo(t){let e,l,n;return l=new C0({props:{importInstant:t[0].ri,exportInstant:t[0].re,importTotal:t[0].ric,exportTotal:t[0].rec,translations:t[6]}}),{c(){e=p("div"),Pe(l.$$.fragment),u(e,"class","cnt")},m(i,s){P(i,e,s),Me(l,e,null),n=!0},p(i,s){const a={};s&1&&(a.importInstant=i[0].ri),s&1&&(a.exportInstant=i[0].re),s&1&&(a.importTotal=i[0].ric),s&1&&(a.exportTotal=i[0].rec),s&64&&(a.translations=i[6]),l.$set(a)},i(i){n||(Z(l.$$.fragment,i),n=!0)},o(i){se(l.$$.fragment,i),n=!1},d(i){i&&N(e),Ne(l)}}}function Io(t){let e,l,n;return l=new T0({props:{sysinfo:t[1],data:t[0].ea,currency:t[0].pc,hasExport:t[0].om>0||t[0].e>0,translations:t[6]}}),{c(){e=p("div"),Pe(l.$$.fragment),u(e,"class","cnt")},m(i,s){P(i,e,s),Me(l,e,null),n=!0},p(i,s){const a={};s&2&&(a.sysinfo=i[1]),s&1&&(a.data=i[0].ea),s&1&&(a.currency=i[0].pc),s&1&&(a.hasExport=i[0].om>0||i[0].e>0),s&64&&(a.translations=i[6]),l.$set(a)},i(i){n||(Z(l.$$.fragment,i),n=!0)},o(i){se(l.$$.fragment,i),n=!1},d(i){i&&N(e),Ne(l)}}}function Ro(t){var i;let e,l,n;return l=new W0({props:{title:((i=t[6].dashboard)==null?void 0:i.tariffpeak)??"Tariff peaks",tariffData:t[7],realtime:t[0].ea,translations:t[6]}}),{c(){e=p("div"),Pe(l.$$.fragment),u(e,"class","cnt h-64")},m(s,a){P(s,e,a),Me(l,e,null),n=!0},p(s,a){var f;const r={};a&64&&(r.title=((f=s[6].dashboard)==null?void 0:f.tariffpeak)??"Tariff peaks"),a&128&&(r.tariffData=s[7]),a&1&&(r.realtime=s[0].ea),a&64&&(r.translations=s[6]),l.$set(r)},i(s){n||(Z(l.$$.fragment,s),n=!0)},o(s){se(l.$$.fragment,s),n=!1},d(s){s&&N(e),Ne(l)}}}function Fo(t){var i;let e,l,n;return l=new $0({props:{title:((i=t[6].dashboard)==null?void 0:i.realtime)??"Real time"}}),{c(){e=p("div"),Pe(l.$$.fragment),u(e,"class","cnt gwf")},m(s,a){P(s,e,a),Me(l,e,null),n=!0},p(s,a){var f;const r={};a&64&&(r.title=((f=s[6].dashboard)==null?void 0:f.realtime)??"Real time"),l.$set(r)},i(s){n||(Z(l.$$.fragment,s),n=!0)},o(s){se(l.$$.fragment,s),n=!1},d(s){s&&N(e),Ne(l)}}}function Uo(t){var i;let e,l,n;return l=new D0({props:{title:((i=t[6].dashboard)==null?void 0:i.price)??"Price",json:t[2],sysinfo:t[1]}}),{c(){e=p("div"),Pe(l.$$.fragment),u(e,"class","cnt gwf")},m(s,a){P(s,e,a),Me(l,e,null),n=!0},p(s,a){var f;const r={};a&64&&(r.title=((f=s[6].dashboard)==null?void 0:f.price)??"Price"),a&4&&(r.json=s[2]),a&2&&(r.sysinfo=s[1]),l.$set(r)},i(s){n||(Z(l.$$.fragment,s),n=!0)},o(s){se(l.$$.fragment,s),n=!1},d(s){s&&N(e),Ne(l)}}}function Bo(t){var i;let e,l,n;return l=new O0({props:{title:((i=t[6].dashboard)==null?void 0:i.day)??"24 hours",json:t[3],sysinfo:t[1]}}),{c(){e=p("div"),Pe(l.$$.fragment),u(e,"class","cnt gwf")},m(s,a){P(s,e,a),Me(l,e,null),n=!0},p(s,a){var f;const r={};a&64&&(r.title=((f=s[6].dashboard)==null?void 0:f.day)??"24 hours"),a&8&&(r.json=s[3]),a&2&&(r.sysinfo=s[1]),l.$set(r)},i(s){n||(Z(l.$$.fragment,s),n=!0)},o(s){se(l.$$.fragment,s),n=!1},d(s){s&&N(e),Ne(l)}}}function jo(t){var i;let e,l,n;return l=new F0({props:{title:((i=t[6].dashboard)==null?void 0:i.month)??"{0} days",json:t[4],sysinfo:t[1]}}),{c(){e=p("div"),Pe(l.$$.fragment),u(e,"class","cnt gwf")},m(s,a){P(s,e,a),Me(l,e,null),n=!0},p(s,a){var f;const r={};a&64&&(r.title=((f=s[6].dashboard)==null?void 0:f.month)??"{0} days"),a&16&&(r.json=s[4]),a&2&&(r.sysinfo=s[1]),l.$set(r)},i(s){n||(Z(l.$$.fragment,s),n=!0)},o(s){se(l.$$.fragment,s),n=!1},d(s){s&&N(e),Ne(l)}}}function zo(t){var i;let e,l,n;return l=new j0({props:{title:((i=t[6].dashboard)==null?void 0:i.temperature)??"Temperature",json:t[5]}}),{c(){e=p("div"),Pe(l.$$.fragment),u(e,"class","cnt gwf")},m(s,a){P(s,e,a),Me(l,e,null),n=!0},p(s,a){var f;const r={};a&64&&(r.title=((f=s[6].dashboard)==null?void 0:f.temperature)??"Temperature"),a&32&&(r.json=s[5]),l.$set(r)},i(s){n||(Z(l.$$.fragment,s),n=!0)},o(s){se(l.$$.fragment,s),n=!1},d(s){s&&N(e),Ne(l)}}}function tc(t){let e,l=Xt(t[1].ui.i,t[0].i),n,i=Xt(t[1].ui.e,t[0].om||t[0].e>0),s,a=Xt(t[1].ui.v,t[0].l1&&(t[0].l1.u>100||t[0].l2.u>100||t[0].l3.u>100)),r,f=Xt(t[1].ui.a,t[0].l1&&(t[0].l1.i>.01||t[0].l2.i>.01||t[0].l3.i>.01)),c,m=Xt(t[1].ui.h,t[0].l1&&(t[0].l1.p>.01||t[0].l2.p>.01||t[0].l3.p>.01||t[0].l1.q>.01||t[0].l2.q>.01||t[0].l3.q>.01)),_,d=Xt(t[1].ui.f,t[0].l1&&(t[0].l1.f>.01||t[0].l2.f>.01||t[0].l3.f>.01)),h,b=Xt(t[1].ui.r,t[0].ri>0||t[0].re>0||t[0].ric>0||t[0].rec>0),g,w=Xt(t[1].ui.c,t[0].ea),k,O=Xt(t[1].ui.t,t[0].pr&&(t[0].pr.startsWith("NO")||t[0].pr.startsWith("10YNO")||t[0].pr.startsWith("10Y1001A1001A4"))),L,R=Xt(t[1].ui.l,t[0].hm==1),M,I=Xt(t[1].ui.p,t[0].pe&&!Number.isNaN(t[0].p)),F,j=Xt(t[1].ui.d,t[3]),V,y=Xt(t[1].ui.m,t[4]),T,B=Xt(t[1].ui.s,t[0].t&&t[0].t!=-127&&t[5].c>1),X,H=l&&So(t),K=i&&Mo(t),Y=a&&No(t),U=f&&To(t),G=m&&Eo(t),oe=d&&Ao(t),le=b&&Oo(t),Q=w&&Io(t),ne=O&&Ro(t),re=R&&Fo(t),ue=I&&Uo(t),ie=j&&Bo(t),pe=y&&jo(t),ae=B&&zo(t);return{c(){e=p("div"),H&&H.c(),n=v(),K&&K.c(),s=v(),Y&&Y.c(),r=v(),U&&U.c(),c=v(),G&&G.c(),_=v(),oe&&oe.c(),h=v(),le&&le.c(),g=v(),Q&&Q.c(),k=v(),ne&&ne.c(),L=v(),re&&re.c(),M=v(),ue&&ue.c(),F=v(),ie&&ie.c(),V=v(),pe&&pe.c(),T=v(),ae&&ae.c(),u(e,"class","grid 2xl:grid-cols-6 xl:grid-cols-5 lg:grid-cols-4 md:grid-cols-3 sm:grid-cols-2")},m(J,$){P(J,e,$),H&&H.m(e,null),o(e,n),K&&K.m(e,null),o(e,s),Y&&Y.m(e,null),o(e,r),U&&U.m(e,null),o(e,c),G&&G.m(e,null),o(e,_),oe&&oe.m(e,null),o(e,h),le&&le.m(e,null),o(e,g),Q&&Q.m(e,null),o(e,k),ne&&ne.m(e,null),o(e,L),re&&re.m(e,null),o(e,M),ue&&ue.m(e,null),o(e,F),ie&&ie.m(e,null),o(e,V),pe&&pe.m(e,null),o(e,T),ae&&ae.m(e,null),X=!0},p(J,[$]){$&3&&(l=Xt(J[1].ui.i,J[0].i)),l?H?(H.p(J,$),$&3&&Z(H,1)):(H=So(J),H.c(),Z(H,1),H.m(e,n)):H&&(ht(),se(H,1,1,()=>{H=null}),vt()),$&3&&(i=Xt(J[1].ui.e,J[0].om||J[0].e>0)),i?K?(K.p(J,$),$&3&&Z(K,1)):(K=Mo(J),K.c(),Z(K,1),K.m(e,s)):K&&(ht(),se(K,1,1,()=>{K=null}),vt()),$&3&&(a=Xt(J[1].ui.v,J[0].l1&&(J[0].l1.u>100||J[0].l2.u>100||J[0].l3.u>100))),a?Y?(Y.p(J,$),$&3&&Z(Y,1)):(Y=No(J),Y.c(),Z(Y,1),Y.m(e,r)):Y&&(ht(),se(Y,1,1,()=>{Y=null}),vt()),$&3&&(f=Xt(J[1].ui.a,J[0].l1&&(J[0].l1.i>.01||J[0].l2.i>.01||J[0].l3.i>.01))),f?U?(U.p(J,$),$&3&&Z(U,1)):(U=To(J),U.c(),Z(U,1),U.m(e,c)):U&&(ht(),se(U,1,1,()=>{U=null}),vt()),$&3&&(m=Xt(J[1].ui.h,J[0].l1&&(J[0].l1.p>.01||J[0].l2.p>.01||J[0].l3.p>.01||J[0].l1.q>.01||J[0].l2.q>.01||J[0].l3.q>.01))),m?G?(G.p(J,$),$&3&&Z(G,1)):(G=Eo(J),G.c(),Z(G,1),G.m(e,_)):G&&(ht(),se(G,1,1,()=>{G=null}),vt()),$&3&&(d=Xt(J[1].ui.f,J[0].l1&&(J[0].l1.f>.01||J[0].l2.f>.01||J[0].l3.f>.01))),d?oe?(oe.p(J,$),$&3&&Z(oe,1)):(oe=Ao(J),oe.c(),Z(oe,1),oe.m(e,h)):oe&&(ht(),se(oe,1,1,()=>{oe=null}),vt()),$&3&&(b=Xt(J[1].ui.r,J[0].ri>0||J[0].re>0||J[0].ric>0||J[0].rec>0)),b?le?(le.p(J,$),$&3&&Z(le,1)):(le=Oo(J),le.c(),Z(le,1),le.m(e,g)):le&&(ht(),se(le,1,1,()=>{le=null}),vt()),$&3&&(w=Xt(J[1].ui.c,J[0].ea)),w?Q?(Q.p(J,$),$&3&&Z(Q,1)):(Q=Io(J),Q.c(),Z(Q,1),Q.m(e,k)):Q&&(ht(),se(Q,1,1,()=>{Q=null}),vt()),$&3&&(O=Xt(J[1].ui.t,J[0].pr&&(J[0].pr.startsWith("NO")||J[0].pr.startsWith("10YNO")||J[0].pr.startsWith("10Y1001A1001A4")))),O?ne?(ne.p(J,$),$&3&&Z(ne,1)):(ne=Ro(J),ne.c(),Z(ne,1),ne.m(e,L)):ne&&(ht(),se(ne,1,1,()=>{ne=null}),vt()),$&3&&(R=Xt(J[1].ui.l,J[0].hm==1)),R?re?(re.p(J,$),$&3&&Z(re,1)):(re=Fo(J),re.c(),Z(re,1),re.m(e,M)):re&&(ht(),se(re,1,1,()=>{re=null}),vt()),$&3&&(I=Xt(J[1].ui.p,J[0].pe&&!Number.isNaN(J[0].p))),I?ue?(ue.p(J,$),$&3&&Z(ue,1)):(ue=Uo(J),ue.c(),Z(ue,1),ue.m(e,F)):ue&&(ht(),se(ue,1,1,()=>{ue=null}),vt()),$&10&&(j=Xt(J[1].ui.d,J[3])),j?ie?(ie.p(J,$),$&10&&Z(ie,1)):(ie=Bo(J),ie.c(),Z(ie,1),ie.m(e,V)):ie&&(ht(),se(ie,1,1,()=>{ie=null}),vt()),$&18&&(y=Xt(J[1].ui.m,J[4])),y?pe?(pe.p(J,$),$&18&&Z(pe,1)):(pe=jo(J),pe.c(),Z(pe,1),pe.m(e,T)):pe&&(ht(),se(pe,1,1,()=>{pe=null}),vt()),$&35&&(B=Xt(J[1].ui.s,J[0].t&&J[0].t!=-127&&J[5].c>1)),B?ae?(ae.p(J,$),$&35&&Z(ae,1)):(ae=zo(J),ae.c(),Z(ae,1),ae.m(e,null)):ae&&(ht(),se(ae,1,1,()=>{ae=null}),vt())},i(J){X||(Z(H),Z(K),Z(Y),Z(U),Z(G),Z(oe),Z(le),Z(Q),Z(ne),Z(re),Z(ue),Z(ie),Z(pe),Z(ae),X=!0)},o(J){se(H),se(K),se(Y),se(U),se(G),se(oe),se(le),se(Q),se(ne),se(re),se(ue),se(ie),se(pe),se(ae),X=!1},d(J){J&&N(e),H&&H.d(),K&&K.d(),Y&&Y.d(),U&&U.d(),G&&G.d(),oe&&oe.d(),le&&le.d(),Q&&Q.d(),ne&&ne.d(),re&&re.d(),ue&&ue.d(),ie&&ie.d(),pe&&pe.d(),ae&&ae.d()}}}function lc(t,e,l){let{data:n={}}=e,{sysinfo:i={}}=e,{prices:s={}}=e,{dayPlot:a={}}=e,{monthPlot:r={}}=e,{temperatures:f={}}=e,{translations:c={}}=e,{tariffData:m={}}=e,_,d,h,b,g,w;return t.$$set=k=>{"data"in k&&l(0,n=k.data),"sysinfo"in k&&l(1,i=k.sysinfo),"prices"in k&&l(2,s=k.prices),"dayPlot"in k&&l(3,a=k.dayPlot),"monthPlot"in k&&l(4,r=k.monthPlot),"temperatures"in k&&l(5,f=k.temperatures),"translations"in k&&l(6,c=k.translations),"tariffData"in k&&l(7,m=k.tariffData)},t.$$.update=()=>{var k,O,L,R,M,I,F,j,V,y,T,B,X,H,K;t.$$.dirty&1793&&(l(11,_=_l((n==null?void 0:n.ic)*1e3,"Wh")),l(12,d=_l((n==null?void 0:n.ec)*1e3,"Wh")),((k=n==null?void 0:n.l1)==null?void 0:k.u)==0&&((O=n==null?void 0:n.l2)==null?void 0:O.u)==0&&((L=n==null?void 0:n.l3)==null?void 0:L.u)==0?l(8,b=l(9,g=l(10,w=l(13,h=!0)))):(l(8,b=((R=n==null?void 0:n.l1)==null?void 0:R.u)>0||((M=n==null?void 0:n.l1)==null?void 0:M.i)>0||((I=n==null?void 0:n.l1)==null?void 0:I.p)>0||((F=n==null?void 0:n.l1)==null?void 0:F.q)>0),l(9,g=((j=n==null?void 0:n.l2)==null?void 0:j.u)>0||((V=n==null?void 0:n.l2)==null?void 0:V.i)>0||((y=n==null?void 0:n.l2)==null?void 0:y.p)>0||((T=n==null?void 0:n.l2)==null?void 0:T.q)>0),l(10,w=((B=n==null?void 0:n.l3)==null?void 0:B.u)>0||((X=n==null?void 0:n.l3)==null?void 0:X.i)>0||((H=n==null?void 0:n.l3)==null?void 0:H.p)>0||((K=n==null?void 0:n.l3)==null?void 0:K.q)>0),l(13,h=b&&g&&w)))},[n,i,s,a,r,f,c,m,b,g,w,_,d,h]}class nc extends qt{constructor(e){super(),Tt(this,e,lc,tc,St,{data:0,sysinfo:1,prices:2,dayPlot:3,monthPlot:4,temperatures:5,translations:6,tariffData:7})}}let ji={};const Un=ul(ji);async function ic(){ji=await(await fetch("configuration.json")).json(),Un.set(ji)}let zi={};const Wu=ul(zi);async function sc(){zi=await(await fetch("priceconfig.json")).json(),Wu.set(zi)}function yo(t,e,l){const n=t.slice();return n[2]=e[l],n[4]=l,n}function Ho(t){let e,l,n;return{c(){e=p("option"),e.textContent="UART0",l=v(),n=p("option"),n.textContent="UART2",e.__value=3,z(e,e.__value),n.__value=113,z(n,n.__value)},m(i,s){P(i,e,s),P(i,l,s),P(i,n,s)},d(i){i&&(N(e),N(l),N(n))}}}function Wo(t){let e;return{c(){e=p("option"),e.textContent=`GPIO${t[4]}`,e.__value=t[4],z(e,e.__value)},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function Go(t){let e,l=t[4]>1&&!(t[0]=="esp8266"&&(t[4]==3||t[4]==113))&&Wo(t);return{c(){l&&l.c(),e=yt()},m(n,i){l&&l.m(n,i),P(n,e,i)},p(n,i){n[4]>1&&!(n[0]=="esp8266"&&(n[4]==3||n[4]==113))?l||(l=Wo(n),l.c(),l.m(e.parentNode,e)):l&&(l.d(1),l=null)},d(n){n&&N(e),l&&l.d(n)}}}function oc(t){let e,l,n,i,s=t[0]=="esp8266"&&Ho(),a=ut({length:t[1]+1}),r=[];for(let f=0;f{"chip"in s&&l(0,n=s.chip)},t.$$.update=()=>{if(t.$$.dirty&1)switch(n){case"esp8266":l(1,i=16);break;case"esp32s2":l(1,i=44);break;case"esp32s3":l(1,i=46);break;case"esp32c3":l(1,i=21);break}},[n,i]}class yi extends qt{constructor(e){super(),Tt(this,e,ac,oc,St,{chip:0})}}function Vo(t){let e,l,n=t[1]&&Ko(t);return{c(){e=p("div"),l=p("div"),n&&n.c(),u(l,"class","fixed inset-0 bg-gray-500 dark:bg-gray-900 bg-opacity-50 dark:bg-opacity-80 flex items-center justify-center"),u(e,"class","z-50"),u(e,"aria-modal","true")},m(i,s){P(i,e,s),o(e,l),n&&n.m(l,null)},p(i,s){i[1]?n?n.p(i,s):(n=Ko(i),n.c(),n.m(l,null)):n&&(n.d(1),n=null)},d(i){i&&N(e),n&&n.d()}}}function Ko(t){let e,l;return{c(){e=p("div"),l=C(t[1]),u(e,"class","bg-white dark:bg-gray-600 m-2 p-3 rounded-md shadow-lg pb-4 text-gray-700 dark:text-white w-96")},m(n,i){P(n,e,i),o(e,l)},p(n,i){i&2&&q(l,n[1])},d(n){n&&N(e)}}}function fc(t){let e,l=t[0]&&Vo(t);return{c(){l&&l.c(),e=yt()},m(n,i){l&&l.m(n,i),P(n,e,i)},p(n,[i]){n[0]?l?l.p(n,i):(l=Vo(n),l.c(),l.m(e.parentNode,e)):l&&(l.d(1),l=null)},i:We,o:We,d(n){n&&N(e),l&&l.d(n)}}}function uc(t,e,l){let{active:n}=e,{message:i}=e;return t.$$set=s=>{"active"in s&&l(0,n=s.active),"message"in s&&l(1,i=s.message)},[n,i]}class ml extends qt{constructor(e){super(),Tt(this,e,uc,fc,St,{active:0,message:1})}}function Yo(t,e,l){const n=t.slice();return n[1]=e[l],n}function Qo(t){let e,l,n=t[1]+"",i;return{c(){e=p("option"),l=C("Europe/"),i=C(n),e.__value="Europe/"+t[1],z(e,e.__value)},m(s,a){P(s,e,a),o(e,l),o(e,i)},p:We,d(s){s&&N(e)}}}function rc(t){let e,l,n,i=ut(t[0]),s=[];for(let a=0;a>1&1,E=0;E0;S--)E[S]=E[S]?E[S-1]^M.EXPONENT[j._modN(M.LOG[E[S]]+D)]:E[S-1];E[0]=M.EXPONENT[j._modN(M.LOG[E[0]]+D)]}for(D=0;D<=A;D++)E[D]=M.LOG[E[D]]},_checkBadness:function(){var D,S,A,E,W,ee=0,fe=this._badness,_e=this.buffer,he=this.width;for(W=0;Whe*he;)ge-=he*he,ve++;for(ee+=ve*j.N4,E=0;E=fe-2&&(D=fe-2,W>9&&D--);var _e=D;if(W>9){for(ee[_e+2]=0,ee[_e+3]=0;_e--;)S=ee[_e],ee[_e+3]|=255&S<<4,ee[_e+2]=S>>4;ee[2]|=255&D<<4,ee[1]=D>>4,ee[0]=64|D>>12}else{for(ee[_e+1]=0,ee[_e+2]=0;_e--;)S=ee[_e],ee[_e+2]|=255&S<<4,ee[_e+1]=S>>4;ee[1]|=255&D<<4,ee[0]=64|D>>4}for(_e=D+3-(W<10);_e=5&&(A+=j.N1+E[S]-5);for(S=3;SD||E[S-3]*3>=E[S]*4||E[S+3]*3>=E[S]*4)&&(A+=j.N3);return A},_finish:function(){this._stringBuffer=this.buffer.slice();var D,S,A=0,E=3e4;for(S=0;S<8&&(this._applyMask(S),D=this._checkBadness(),D>=1)E&1&&(W[ee-1-S+ee*8]=1,S<6?W[8+ee*S]=1:W[8+ee*(S+1)]=1);for(S=0;S<7;S++,E>>=1)E&1&&(W[8+ee*(ee-7+S)]=1,S?W[6-S+ee*8]=1:W[7+ee*8]=1)},_interleaveBlocks:function(){var D,S,A=this._dataBlock,E=this._ecc,W=this._eccBlock,ee=0,fe=this._calculateMaxLength(),_e=this._neccBlock1,he=this._neccBlock2,x=this._stringBuffer;for(D=0;D1)for(D=k.BLOCK[E],A=W-7;;){for(S=W-7;S>D-3&&(this._addAlignment(S,A),!(S6)for(D=F.BLOCK[ee-7],S=17,A=0;A<6;A++)for(E=0;E<3;E++,S--)1&(S>11?ee>>S-12:D>>S)?(W[5-A+fe*(2-E+fe-11)]=1,W[2-E+fe-11+fe*(5-A)]=1):(this._setMask(5-A,2-E+fe-11),this._setMask(2-E+fe-11,5-A))},_isMasked:function(D,S){var A=j._getMaskBit(D,S);return this._mask[A]===1},_pack:function(){var D,S,A,E=1,W=1,ee=this.width,fe=ee-1,_e=ee-1,he=(this._dataBlock+this._eccBlock)*(this._neccBlock1+this._neccBlock2)+this._neccBlock2;for(S=0;SS&&(A=D,D=S,S=A),A=S,A+=S*S,A>>=1,A+=D,A},_modN:function(D){for(;D>=255;)D-=255,D=(D>>8)+(D&255);return D},N1:3,N2:3,N3:40,N4:10}),V=j,y=h.extend({draw:function(){this.element.src=this.qrious.toDataURL()},reset:function(){this.element.src=""},resize:function(){var D=this.element;D.width=D.height=this.qrious.size}}),T=y,B=_.extend(function(D,S,A,E){this.name=D,this.modifiable=!!S,this.defaultValue=A,this._valueTransformer=E},{transform:function(D){var S=this._valueTransformer;return typeof S=="function"?S(D,this):D}}),X=B,H=_.extend(null,{abs:function(D){return D!=null?Math.abs(D):null},hasOwn:function(D,S){return Object.prototype.hasOwnProperty.call(D,S)},noop:function(){},toUpperCase:function(D){return D!=null?D.toUpperCase():null}}),K=H,Y=_.extend(function(D){this.options={},D.forEach(function(S){this.options[S.name]=S},this)},{exists:function(D){return this.options[D]!=null},get:function(D,S){return Y._get(this.options[D],S)},getAll:function(D){var S,A=this.options,E={};for(S in A)K.hasOwn(A,S)&&(E[S]=Y._get(A[S],D));return E},init:function(D,S,A){typeof A!="function"&&(A=K.noop);var E,W;for(E in this.options)K.hasOwn(this.options,E)&&(W=this.options[E],Y._set(W,W.defaultValue,S),Y._createAccessor(W,S,A));this._setAll(D,S,!0)},set:function(D,S,A){return this._set(D,S,A)},setAll:function(D,S){return this._setAll(D,S)},_set:function(D,S,A,E){var W=this.options[D];if(!W)throw new Error("Invalid option: "+D);if(!W.modifiable&&!E)throw new Error("Option cannot be modified: "+D);return Y._set(W,S,A)},_setAll:function(D,S,A){if(!D)return!1;var E,W=!1;for(E in D)K.hasOwn(D,E)&&this._set(E,D[E],S,A)&&(W=!0);return W}},{_createAccessor:function(D,S,A){var E={get:function(){return Y._get(D,S)}};D.modifiable&&(E.set=function(W){Y._set(D,W,S)&&A(W,D)}),Object.defineProperty(S,D.name,E)},_get:function(D,S){return S["_"+D.name]},_set:function(D,S,A){var E="_"+D.name,W=A[E],ee=D.transform(S??D.defaultValue);return A[E]=ee,ee!==W}}),U=Y,G=_.extend(function(){this._services={}},{getService:function(D){var S=this._services[D];if(!S)throw new Error("Service is not being managed with name: "+D);return S},setService:function(D,S){if(this._services[D])throw new Error("Service is already managed with name: "+D);S&&(this._services[D]=S)}}),oe=G,le=new U([new X("background",!0,"white"),new X("backgroundAlpha",!0,1,K.abs),new X("element"),new X("foreground",!0,"black"),new X("foregroundAlpha",!0,1,K.abs),new X("level",!0,"L",K.toUpperCase),new X("mime",!0,"image/png"),new X("padding",!0,null,K.abs),new X("size",!0,100,K.abs),new X("value",!0,"")]),Q=new oe,ne=_.extend(function(D){le.init(D,this,this.update.bind(this));var S=le.get("element",this),A=Q.getService("element"),E=S&&A.isCanvas(S)?S:A.createCanvas(),W=S&&A.isImage(S)?S:A.createImage();this._canvasRenderer=new g(this,E,!0),this._imageRenderer=new T(this,W,W===S),this.update()},{get:function(){return le.getAll(this)},set:function(D){le.setAll(D,this)&&this.update()},toDataURL:function(D){return this.canvas.toDataURL(D||this.mime)},update:function(){var D=new V({level:this.level,value:this.value});this._canvasRenderer.render(D),this._imageRenderer.render(D)}},{use:function(D){Q.setService(D.getName(),D)}});Object.defineProperties(ne.prototype,{canvas:{get:function(){return this._canvasRenderer.getElement()}},image:{get:function(){return this._imageRenderer.getElement()}}});var re=ne,ue=re,ie=_.extend({getName:function(){}}),pe=ie,ae=pe.extend({createCanvas:function(){},createImage:function(){},getName:function(){return"element"},isCanvas:function(D){},isImage:function(D){}}),J=ae,$=J.extend({createCanvas:function(){return document.createElement("canvas")},createImage:function(){return document.createElement("img")},isCanvas:function(D){return D instanceof HTMLCanvasElement},isImage:function(D){return D instanceof HTMLImageElement}}),ke=$;ue.use(new ke);var we=ue;return we})})(Vu);var hc=Vu.exports;const vc=dc(hc);function bc(t){let e,l;return{c(){e=p("img"),ni(e.src,l=t[2])||u(e,"src",l),u(e,"alt",t[0]),u(e,"class",t[1])},m(n,i){P(n,e,i)},p(n,[i]){i&4&&!ni(e.src,l=n[2])&&u(e,"src",l),i&1&&u(e,"alt",n[0]),i&2&&u(e,"class",n[1])},i:We,o:We,d(n){n&&N(e)}}}function gc(t,e,l){let{errorCorrection:n="L"}=e,{background:i="#fff"}=e,{color:s="#000"}=e,{size:a="200"}=e,{value:r=""}=e,{padding:f=0}=e,{className:c="qrcode"}=e,m="",_;function d(){_.set({background:i,foreground:s,level:n,padding:f,size:a,value:r}),l(2,m=_.toDataURL("image/jpeg"))}function h(){return m}return eu(()=>{l(9,_=new vc),r&&d()}),t.$$set=b=>{"errorCorrection"in b&&l(3,n=b.errorCorrection),"background"in b&&l(4,i=b.background),"color"in b&&l(5,s=b.color),"size"in b&&l(6,a=b.size),"value"in b&&l(0,r=b.value),"padding"in b&&l(7,f=b.padding),"className"in b&&l(1,c=b.className)},t.$$.update=()=>{t.$$.dirty&513&&r&&_&&d()},[r,c,m,n,i,s,a,f,h,_]}class kc extends qt{constructor(e){super(),Tt(this,e,gc,bc,St,{errorCorrection:3,background:4,color:5,size:6,value:0,padding:7,className:1,getImage:8})}get getImage(){return this.$$.ctx[8]}}function Xo(t,e,l){const n=t.slice();return n[125]=e[l],n}function Zo(t,e,l){const n=t.slice();return n[128]=e[l],n[129]=e,n[130]=l,n}function Jo(t,e,l){const n=t.slice();return n[131]=e[l],n[132]=e,n[133]=l,n}function $o(t,e,l){const n=t.slice();return n[134]=e[l],n}function wc(t,e,l){const n=t.slice();return n[137]=e[l],n}function Cc(t,e,l){const n=t.slice();return n[140]=e[l],n}function xo(t){var Re,ye,nl,Ut,Et,il,sl,ol,al,fl,Ae,te,Se,Pt,xt,cl,dl,ll,vl,bl,Nl,Pl,Fl,Ul,Bl,jl;let e,l,n=(((ye=(Re=t[2].conf)==null?void 0:Re.general)==null?void 0:ye.title)??"General")+"",i,s,a,r,f,c,m,_,d,h=(((Ut=(nl=t[2].conf)==null?void 0:nl.general)==null?void 0:Ut.hostname)??"Hostname")+"",b,g,w,k,O,L,R=(((il=(Et=t[2].conf)==null?void 0:Et.general)==null?void 0:il.timezone)??"Time zone")+"",M,I,F,j,V,y,T,B,X,H,K,Y=(((ol=(sl=t[2].conf)==null?void 0:sl.price)==null?void 0:ol.region)??"Price region")+"",U,G,oe,le,Q,ne,re,ue,ie,pe,ae,J,$,ke,we,D,S,A,E,W,ee,fe,_e,he,x,ve,ge,De,Te,Le,Oe,Ee,Ue,Xe,kt=(((fl=(al=t[2].conf)==null?void 0:al.price)==null?void 0:fl.currency)??"Currency")+"",$e,st,Mt,pt,ot,nt,at,Lt,Ge,Fe,ze,et,be=(((te=(Ae=t[2].conf)==null?void 0:Ae.price)==null?void 0:te.enabled)??"Enabled")+"",qe,Ye,me,Ce,ft=(((xt=(Pt=(Se=t[2].conf)==null?void 0:Se.general)==null?void 0:Pt.security)==null?void 0:xt.title)??"Security")+"",Ve,Ft,bt,Be,gt,rt=(((ll=(dl=(cl=t[2].conf)==null?void 0:cl.general)==null?void 0:dl.security)==null?void 0:ll.none)??"None")+"",ct,Ze,Dt=(((Nl=(bl=(vl=t[2].conf)==null?void 0:vl.general)==null?void 0:bl.security)==null?void 0:Nl.conf)??"Conf")+"",Gt,Ct,lt=(((Ul=(Fl=(Pl=t[2].conf)==null?void 0:Pl.general)==null?void 0:Fl.security)==null?void 0:Ul.all)??"All")+"",Ht,Kt,jt,Wt,Qt=(((jl=(Bl=t[2].conf)==null?void 0:Bl.general)==null?void 0:jl.context)??"Context")+"",Zt,Jt,$t,Ie,tt,it,Ot,Nt;V=new _c({});let xe=!t[6].p.t&&ea(),zt=ut(["NOK","SEK","DKK","EUR","CHF"]),_t=[];for(let Je=0;Je<5;Je+=1)_t[Je]=Sc(Cc(t,zt,Je));at=new gl({props:{to:"/priceconfig",class:"text-blue-600 hover:text-blue-800",$$slots:{default:[Mc]},$$scope:{ctx:t}}});let mt=t[6].p.e&&t[0].chip!="esp8266"&&t[6].p.t&&ta(t),de=t[6].g.s>0&&la(t);return{c(){var Je,It;e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),_=p("div"),d=p("div"),b=C(h),g=p("br"),w=v(),k=p("input"),O=v(),L=p("div"),M=C(R),I=p("br"),F=v(),j=p("select"),Pe(V.$$.fragment),y=v(),T=p("input"),B=v(),X=p("div"),H=p("div"),K=p("div"),U=C(Y),G=p("br"),oe=v(),le=p("select"),Q=p("optgroup"),xe&&xe.c(),ne=p("option"),ne.textContent="NO1",re=p("option"),re.textContent="NO2",ue=p("option"),ue.textContent="NO3",ie=p("option"),ie.textContent="NO4",pe=p("option"),pe.textContent="NO5",ae=p("optgroup"),J=p("option"),J.textContent="SE1",$=p("option"),$.textContent="SE2",ke=p("option"),ke.textContent="SE3",we=p("option"),we.textContent="SE4",D=p("optgroup"),S=p("option"),S.textContent="DK1",A=p("option"),A.textContent="DK2",E=p("option"),E.textContent="Austria",W=p("option"),W.textContent="Belgium",ee=p("option"),ee.textContent="Czech Republic",fe=p("option"),fe.textContent="Estonia",_e=p("option"),_e.textContent="Finland",he=p("option"),he.textContent="France",x=p("option"),x.textContent="Germany",ve=p("option"),ve.textContent="Great Britain",ge=p("option"),ge.textContent="Latvia",De=p("option"),De.textContent="Lithuania",Te=p("option"),Te.textContent="Netherland",Le=p("option"),Le.textContent="Poland",Oe=p("option"),Oe.textContent="Slovenia",Ee=p("option"),Ee.textContent="Switzerland",Ue=v(),Xe=p("div"),$e=C(kt),st=p("br"),Mt=v(),pt=p("select");for(let rl=0;rl<5;rl+=1)_t[rl].c();ot=v(),nt=p("div"),Pe(at.$$.fragment),Lt=v(),Ge=p("div"),Fe=p("label"),ze=p("input"),et=v(),qe=C(be),Ye=v(),mt&&mt.c(),me=v(),Ce=p("div"),Ve=C(ft),Ft=p("br"),bt=v(),Be=p("select"),gt=p("option"),ct=C(rt),Ze=p("option"),Gt=C(Dt),Ct=p("option"),Ht=C(lt),Kt=v(),de&&de.c(),jt=v(),Wt=p("div"),Zt=C(Qt),Jt=p("br"),$t=v(),Ie=p("input"),u(l,"class","text-sm"),u(a,"href",hl("General-configuration")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","g"),f.value="true",u(k,"name","gh"),u(k,"type","text"),u(k,"class","in-f w-full"),u(k,"pattern",ui),u(j,"name","gt"),u(j,"class","in-l w-full"),t[6].g.t===void 0&&At(()=>t[26].call(j)),u(_,"class","flex"),u(m,"class","my-1"),u(T,"type","hidden"),u(T,"name","p"),T.value="true",ne.__value="10YNO-1--------2",z(ne,ne.__value),re.__value="10YNO-2--------T",z(re,re.__value),ue.__value="10YNO-3--------J",z(ue,ue.__value),ie.__value="10YNO-4--------9",z(ie,ie.__value),pe.__value="10Y1001A1001A48H",z(pe,pe.__value),u(Q,"label","Norway"),J.__value="10Y1001A1001A44P",z(J,J.__value),$.__value="10Y1001A1001A45N",z($,$.__value),ke.__value="10Y1001A1001A46L",z(ke,ke.__value),we.__value="10Y1001A1001A47J",z(we,we.__value),u(ae,"label","Sweden"),S.__value="10YDK-1--------W",z(S,S.__value),A.__value="10YDK-2--------M",z(A,A.__value),u(D,"label","Denmark"),E.__value="10YAT-APG------L",z(E,E.__value),W.__value="10YBE----------2",z(W,W.__value),ee.__value="10YCZ-CEPS-----N",z(ee,ee.__value),fe.__value="10Y1001A1001A39I",z(fe,fe.__value),_e.__value="10YFI-1--------U",z(_e,_e.__value),he.__value="10YFR-RTE------C",z(he,he.__value),x.__value="10Y1001A1001A83F",z(x,x.__value),ve.__value="10YGB----------A",z(ve,ve.__value),ge.__value="10YLV-1001A00074",z(ge,ge.__value),De.__value="10YLT-1001A0008Q",z(De,De.__value),Te.__value="10YNL----------L",z(Te,Te.__value),Le.__value="10YPL-AREA-----S",z(Le,Le.__value),Oe.__value="10YSI-ELES-----O",z(Oe,Oe.__value),Ee.__value="10YCH-SWISSGRIDZ",z(Ee,Ee.__value),u(le,"name","pr"),u(le,"class","in-f w-full"),t[6].p.r===void 0&&At(()=>t[27].call(le)),u(K,"class","w-full"),u(pt,"name","pc"),u(pt,"class","in-l"),t[6].p.c===void 0&&At(()=>t[28].call(pt)),u(H,"class","flex"),u(X,"class","my-1"),u(nt,"class","my-1"),u(ze,"type","checkbox"),u(ze,"name","pe"),ze.__value="true",z(ze,ze.__value),u(ze,"class","rounded mb-1"),u(Ge,"class","my-1"),gt.__value=0,z(gt,gt.__value),Ze.__value=1,z(Ze,Ze.__value),Ct.__value=2,z(Ct,Ct.__value),u(Be,"name","gs"),u(Be,"class","in-s"),t[6].g.s===void 0&&At(()=>t[31].call(Be)),u(Ce,"class","my-1"),u(Ie,"name","gc"),u(Ie,"type","text"),u(Ie,"pattern",ui),u(Ie,"placeholder",tt=((It=(Je=t[2].conf)==null?void 0:Je.general)==null?void 0:It.context_placeholder)??"/"),u(Ie,"class","in-s"),u(Ie,"maxlength","36"),u(Wt,"class","my-1"),u(e,"class","cnt")},m(Je,It){P(Je,e,It),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(e,c),o(e,m),o(m,_),o(_,d),o(d,b),o(d,g),o(d,w),o(d,k),z(k,t[6].g.h),o(_,O),o(_,L),o(L,M),o(L,I),o(L,F),o(L,j),Me(V,j,null),Ke(j,t[6].g.t,!0),o(e,y),o(e,T),o(e,B),o(e,X),o(X,H),o(H,K),o(K,U),o(K,G),o(K,oe),o(K,le),o(le,Q),xe&&xe.m(Q,null),o(Q,ne),o(Q,re),o(Q,ue),o(Q,ie),o(Q,pe),o(le,ae),o(ae,J),o(ae,$),o(ae,ke),o(ae,we),o(le,D),o(D,S),o(D,A),o(le,E),o(le,W),o(le,ee),o(le,fe),o(le,_e),o(le,he),o(le,x),o(le,ve),o(le,ge),o(le,De),o(le,Te),o(le,Le),o(le,Oe),o(le,Ee),Ke(le,t[6].p.r,!0),o(H,Ue),o(H,Xe),o(Xe,$e),o(Xe,st),o(Xe,Mt),o(Xe,pt);for(let rl=0;rl<5;rl+=1)_t[rl]&&_t[rl].m(pt,null);Ke(pt,t[6].p.c,!0),o(e,ot),o(e,nt),Me(at,nt,null),o(e,Lt),o(e,Ge),o(Ge,Fe),o(Fe,ze),ze.checked=t[6].p.e,o(Fe,et),o(Fe,qe),o(Ge,Ye),mt&&mt.m(Ge,null),o(e,me),o(e,Ce),o(Ce,Ve),o(Ce,Ft),o(Ce,bt),o(Ce,Be),o(Be,gt),o(gt,ct),o(Be,Ze),o(Ze,Gt),o(Be,Ct),o(Ct,Ht),Ke(Be,t[6].g.s,!0),o(e,Kt),de&&de.m(e,null),o(e,jt),o(e,Wt),o(Wt,Zt),o(Wt,Jt),o(Wt,$t),o(Wt,Ie),z(Ie,t[6].g.c),it=!0,Ot||(Nt=[ce(k,"input",t[25]),ce(j,"change",t[26]),ce(le,"change",t[27]),ce(le,"change",t[22]),ce(pt,"change",t[28]),ce(ze,"change",t[29]),ce(Be,"change",t[31]),ce(Ie,"input",t[34])],Ot=!0)},p(Je,It){var zl,yl,Hl,Wl,Gl,Vl,He,dt,Kl,Yl,Ql,Xl,Zl,Jl,$l,xl,en,tn,ln,Nn,Pn,Tn,qn,En,Dn,An,Ln,On;(!it||It[0]&4)&&n!==(n=(((yl=(zl=Je[2].conf)==null?void 0:zl.general)==null?void 0:yl.title)??"General")+"")&&q(i,n),(!it||It[0]&4)&&h!==(h=(((Wl=(Hl=Je[2].conf)==null?void 0:Hl.general)==null?void 0:Wl.hostname)??"Hostname")+"")&&q(b,h),It[0]&64&&k.value!==Je[6].g.h&&z(k,Je[6].g.h),(!it||It[0]&4)&&R!==(R=(((Vl=(Gl=Je[2].conf)==null?void 0:Gl.general)==null?void 0:Vl.timezone)??"Time zone")+"")&&q(M,R),It[0]&64&&Ke(j,Je[6].g.t),(!it||It[0]&4)&&Y!==(Y=(((dt=(He=Je[2].conf)==null?void 0:He.price)==null?void 0:dt.region)??"Price region")+"")&&q(U,Y),Je[6].p.t?xe&&(xe.d(1),xe=null):xe||(xe=ea(),xe.c(),xe.m(Q,ne)),It[0]&64&&Ke(le,Je[6].p.r),(!it||It[0]&4)&&kt!==(kt=(((Yl=(Kl=Je[2].conf)==null?void 0:Kl.price)==null?void 0:Yl.currency)??"Currency")+"")&&q($e,kt),It[0]&64&&Ke(pt,Je[6].p.c);const rl={};It[0]&4|It[4]&524288&&(rl.$$scope={dirty:It,ctx:Je}),at.$set(rl),It[0]&64&&(ze.checked=Je[6].p.e),(!it||It[0]&4)&&be!==(be=(((Xl=(Ql=Je[2].conf)==null?void 0:Ql.price)==null?void 0:Xl.enabled)??"Enabled")+"")&&q(qe,be),Je[6].p.e&&Je[0].chip!="esp8266"&&Je[6].p.t?mt?mt.p(Je,It):(mt=ta(Je),mt.c(),mt.m(Ge,null)):mt&&(mt.d(1),mt=null),(!it||It[0]&4)&&ft!==(ft=((($l=(Jl=(Zl=Je[2].conf)==null?void 0:Zl.general)==null?void 0:Jl.security)==null?void 0:$l.title)??"Security")+"")&&q(Ve,ft),(!it||It[0]&4)&&rt!==(rt=(((tn=(en=(xl=Je[2].conf)==null?void 0:xl.general)==null?void 0:en.security)==null?void 0:tn.none)??"None")+"")&&q(ct,rt),(!it||It[0]&4)&&Dt!==(Dt=(((Pn=(Nn=(ln=Je[2].conf)==null?void 0:ln.general)==null?void 0:Nn.security)==null?void 0:Pn.conf)??"Conf")+"")&&q(Gt,Dt),(!it||It[0]&4)&<!==(lt=(((En=(qn=(Tn=Je[2].conf)==null?void 0:Tn.general)==null?void 0:qn.security)==null?void 0:En.all)??"All")+"")&&q(Ht,lt),It[0]&64&&Ke(Be,Je[6].g.s),Je[6].g.s>0?de?de.p(Je,It):(de=la(Je),de.c(),de.m(e,jt)):de&&(de.d(1),de=null),(!it||It[0]&4)&&Qt!==(Qt=(((An=(Dn=Je[2].conf)==null?void 0:Dn.general)==null?void 0:An.context)??"Context")+"")&&q(Zt,Qt),(!it||It[0]&4&&tt!==(tt=((On=(Ln=Je[2].conf)==null?void 0:Ln.general)==null?void 0:On.context_placeholder)??"/"))&&u(Ie,"placeholder",tt),It[0]&64&&Ie.value!==Je[6].g.c&&z(Ie,Je[6].g.c)},i(Je){it||(Z(V.$$.fragment,Je),Z(at.$$.fragment,Je),it=!0)},o(Je){se(V.$$.fragment,Je),se(at.$$.fragment,Je),it=!1},d(Je){Je&&N(e),Ne(V),xe&&xe.d(),el(_t,Je),Ne(at),mt&&mt.d(),de&&de.d(),Ot=!1,Bt(Nt)}}}function ea(t){let e,l,n,i,s;return{c(){e=p("option"),e.textContent="NO1 with support",l=p("option"),l.textContent="NO2 with support",n=p("option"),n.textContent="NO3 with support",i=p("option"),i.textContent="NO4 with support",s=p("option"),s.textContent="NO5 with support",e.__value="NO1S",z(e,e.__value),l.__value="NO2S",z(l,l.__value),n.__value="NO3S",z(n,n.__value),i.__value="NO4S",z(i,i.__value),s.__value="NO5S",z(s,s.__value)},m(a,r){P(a,e,r),P(a,l,r),P(a,n,r),P(a,i,r),P(a,s,r)},d(a){a&&(N(e),N(l),N(n),N(i),N(s))}}}function Sc(t){let e;return{c(){e=p("option"),e.textContent=`${t[140]}`,e.__value=t[140],z(e,e.__value)},m(l,n){P(l,e,n)},p:We,d(l){l&&N(e)}}}function Mc(t){var n,i;let e=(((i=(n=t[2].conf)==null?void 0:n.price)==null?void 0:i.conf)??"Configure")+"",l;return{c(){l=C(e)},m(s,a){P(s,l,a)},p(s,a){var r,f;a[0]&4&&e!==(e=(((f=(r=s[2].conf)==null?void 0:r.price)==null?void 0:f.conf)??"Configure")+"")&&q(l,e)},d(s){s&&N(l)}}}function ta(t){let e,l,n,i,s,a;return{c(){e=p("input"),l=v(),n=p("br"),i=p("input"),u(e,"name","pt"),u(e,"type","hidden"),u(i,"type","text"),u(i,"class","in-s"),u(i,"placeholder","ENTSO-E API key disabled, ref issue #1030"),i.disabled=!0},m(r,f){P(r,e,f),z(e,t[6].p.t),P(r,l,f),P(r,n,f),P(r,i,f),s||(a=ce(e,"input",t[30]),s=!0)},p(r,f){f[0]&64&&z(e,r[6].p.t)},d(r){r&&(N(e),N(l),N(n),N(i)),s=!1,a()}}}function la(t){var w,k,O,L,R,M;let e,l=(((O=(k=(w=t[2].conf)==null?void 0:w.general)==null?void 0:k.security)==null?void 0:O.username)??"Username")+"",n,i,s,a,r,f,c=(((M=(R=(L=t[2].conf)==null?void 0:L.general)==null?void 0:R.security)==null?void 0:M.password)??"Password")+"",m,_,d,h,b,g;return{c(){e=p("div"),n=C(l),i=p("br"),s=v(),a=p("input"),r=v(),f=p("div"),m=C(c),_=p("br"),d=v(),h=p("input"),u(a,"name","gu"),u(a,"type","text"),u(a,"class","in-s"),u(a,"maxlength","36"),u(a,"pattern",Rl),u(e,"class","my-1"),u(h,"name","gp"),u(h,"type","password"),u(h,"class","in-s"),u(h,"maxlength","36"),u(h,"pattern",Rl),u(f,"class","my-1")},m(I,F){P(I,e,F),o(e,n),o(e,i),o(e,s),o(e,a),z(a,t[6].g.u),P(I,r,F),P(I,f,F),o(f,m),o(f,_),o(f,d),o(f,h),z(h,t[6].g.p),b||(g=[ce(a,"input",t[32]),ce(h,"input",t[33])],b=!0)},p(I,F){var j,V,y,T,B,X;F[0]&4&&l!==(l=(((y=(V=(j=I[2].conf)==null?void 0:j.general)==null?void 0:V.security)==null?void 0:y.username)??"Username")+"")&&q(n,l),F[0]&64&&a.value!==I[6].g.u&&z(a,I[6].g.u),F[0]&4&&c!==(c=(((X=(B=(T=I[2].conf)==null?void 0:T.general)==null?void 0:B.security)==null?void 0:X.password)??"Password")+"")&&q(m,c),F[0]&64&&h.value!==I[6].g.p&&z(h,I[6].g.p)},d(I){I&&(N(e),N(r),N(f)),b=!1,Bt(g)}}}function na(t){var me,Ce,ft,Ve,Ft,bt,Be,gt,rt,ct,Ze,Dt,Gt,Ct,lt,Ht,Kt,jt,Wt,Qt,Zt,Jt,$t;let e,l,n=(((Ce=(me=t[2].conf)==null?void 0:me.meter)==null?void 0:Ce.title)??"Meter")+"",i,s,a,r,f,c,m,_,d,h=(((Ft=(Ve=(ft=t[2].conf)==null?void 0:ft.meter)==null?void 0:Ve.comm)==null?void 0:Ft.title)??"Communication")+"",b,g,w,k,O,L=(((gt=(Be=(bt=t[2].conf)==null?void 0:bt.meter)==null?void 0:Be.comm)==null?void 0:gt.passive)??"Passive")+"",R,M,I=(((Ze=(ct=(rt=t[2].conf)==null?void 0:rt.meter)==null?void 0:ct.comm)==null?void 0:Ze.pulse)??"Pulse")+"",F,j=(Gt=(Dt=t[0])==null?void 0:Dt.features)==null?void 0:Gt.includes("kmp"),V,y,T,B=(((Ct=t[2].common)==null?void 0:Ct.voltage)??"Voltage")+"",X,H,K,Y,U,G,oe,le,Q,ne=(((Ht=(lt=t[2].conf)==null?void 0:lt.meter)==null?void 0:Ht.fuse)??"Main fuse")+"",re,ue,ie,pe,ae,J,$,ke,we,D=(((jt=(Kt=t[2].conf)==null?void 0:Kt.meter)==null?void 0:jt.prod)??"Production")+"",S,A,E,W,ee,fe,_e,he,x,ve,ge,De,Te,Le,Oe=(((Qt=(Wt=t[2].conf)==null?void 0:Wt.meter)==null?void 0:Qt.encrypted)??"Encrypted")+"",Ee,Ue,Xe,kt,$e,st,Mt,pt=((($t=(Jt=(Zt=t[2].conf)==null?void 0:Zt.meter)==null?void 0:Jt.multipliers)==null?void 0:$t.title)??"Multipliers")+"",ot,nt,at,Lt,Ge=j&&ia();function Fe(Ie,tt){return Ie[6].m.a===2?Pc:Nc}let ze=Fe(t),et=ze(t),be=t[6].m.e.e&&sa(t),qe=t[6].m.e.e&&oa(t),Ye=t[6].m.m.e&&aa(t);return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("input"),_=v(),d=p("div"),b=C(h),g=p("br"),w=v(),k=p("select"),O=p("option"),R=C(L),M=p("option"),F=C(I),Ge&&Ge.c(),V=v(),et.c(),y=v(),T=p("div"),X=C(B),H=p("br"),K=v(),Y=p("select"),U=p("option"),U.textContent="400V (TN)",G=p("option"),G.textContent="230V (IT/TT)",oe=v(),le=p("div"),Q=p("div"),re=C(ne),ue=p("br"),ie=v(),pe=p("label"),ae=p("input"),J=v(),$=p("span"),$.textContent="A",ke=v(),we=p("div"),S=C(D),A=p("br"),E=v(),W=p("label"),ee=p("input"),fe=v(),_e=p("span"),_e.textContent="kWp",he=v(),x=p("div"),x.innerHTML="",ve=v(),ge=p("div"),De=p("label"),Te=p("input"),Le=v(),Ee=C(Oe),Ue=v(),be&&be.c(),Xe=v(),qe&&qe.c(),kt=v(),$e=p("label"),st=p("input"),Mt=v(),ot=C(pt),nt=v(),Ye&&Ye.c(),u(l,"class","text-sm"),u(a,"href",hl("Meter-configuration")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","m"),f.value="true",u(m,"type","hidden"),u(m,"name","mo"),m.value="1",O.__value=0,z(O,O.__value),M.__value=2,z(M,M.__value),u(k,"name","ma"),u(k,"class","in-s"),t[6].m.a===void 0&&At(()=>t[35].call(k)),u(d,"class","my-1"),U.__value=2,z(U,U.__value),G.__value=1,z(G,G.__value),u(Y,"name","md"),u(Y,"class","in-s"),t[6].m.d===void 0&&At(()=>t[41].call(Y)),u(T,"class","my-1"),u(ae,"name","mf"),u(ae,"type","number"),u(ae,"min","5"),u(ae,"max","65535"),u(ae,"class","in-f tr w-full"),u($,"class","in-post"),u(pe,"class","flex"),u(Q,"class","mx-1"),u(ee,"name","mr"),u(ee,"type","number"),u(ee,"min","0"),u(ee,"max","65535"),u(ee,"class","in-f tr w-full"),u(_e,"class","in-post"),u(W,"class","flex"),u(we,"class","mx-1"),u(le,"class","my-1 flex"),u(x,"class","my-1"),u(Te,"type","checkbox"),u(Te,"name","me"),Te.__value="true",z(Te,Te.__value),u(Te,"class","rounded mb-1"),u(ge,"class","my-1"),u(st,"type","checkbox"),u(st,"name","mm"),st.__value="true",z(st,st.__value),u(st,"class","rounded mb-1"),u(e,"class","cnt")},m(Ie,tt){P(Ie,e,tt),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(e,c),o(e,m),o(e,_),o(e,d),o(d,b),o(d,g),o(d,w),o(d,k),o(k,O),o(O,R),o(k,M),o(M,F),Ge&&Ge.m(k,null),Ke(k,t[6].m.a,!0),o(e,V),et.m(e,null),o(e,y),o(e,T),o(T,X),o(T,H),o(T,K),o(T,Y),o(Y,U),o(Y,G),Ke(Y,t[6].m.d,!0),o(e,oe),o(e,le),o(le,Q),o(Q,re),o(Q,ue),o(Q,ie),o(Q,pe),o(pe,ae),z(ae,t[6].m.f),o(pe,J),o(pe,$),o(le,ke),o(le,we),o(we,S),o(we,A),o(we,E),o(we,W),o(W,ee),z(ee,t[6].m.r),o(W,fe),o(W,_e),o(e,he),o(e,x),o(e,ve),o(e,ge),o(ge,De),o(De,Te),Te.checked=t[6].m.e.e,o(De,Le),o(De,Ee),o(ge,Ue),be&&be.m(ge,null),o(e,Xe),qe&&qe.m(e,null),o(e,kt),o(e,$e),o($e,st),st.checked=t[6].m.m.e,o($e,Mt),o($e,ot),o(e,nt),Ye&&Ye.m(e,null),at||(Lt=[ce(k,"change",t[35]),ce(Y,"change",t[41]),ce(ae,"input",t[42]),ce(ee,"input",t[43]),ce(Te,"change",t[44]),ce(st,"change",t[47])],at=!0)},p(Ie,tt){var it,Ot,Nt,xe,zt,_t,mt,de,Re,ye,nl,Ut,Et,il,sl,ol,al,fl,Ae,te,Se,Pt,xt;tt[0]&4&&n!==(n=(((Ot=(it=Ie[2].conf)==null?void 0:it.meter)==null?void 0:Ot.title)??"Meter")+"")&&q(i,n),tt[0]&4&&h!==(h=(((zt=(xe=(Nt=Ie[2].conf)==null?void 0:Nt.meter)==null?void 0:xe.comm)==null?void 0:zt.title)??"Communication")+"")&&q(b,h),tt[0]&4&&L!==(L=(((de=(mt=(_t=Ie[2].conf)==null?void 0:_t.meter)==null?void 0:mt.comm)==null?void 0:de.passive)??"Passive")+"")&&q(R,L),tt[0]&4&&I!==(I=(((nl=(ye=(Re=Ie[2].conf)==null?void 0:Re.meter)==null?void 0:ye.comm)==null?void 0:nl.pulse)??"Pulse")+"")&&q(F,I),tt[0]&1&&(j=(Et=(Ut=Ie[0])==null?void 0:Ut.features)==null?void 0:Et.includes("kmp")),j?Ge||(Ge=ia(),Ge.c(),Ge.m(k,null)):Ge&&(Ge.d(1),Ge=null),tt[0]&64&&Ke(k,Ie[6].m.a),ze===(ze=Fe(Ie))&&et?et.p(Ie,tt):(et.d(1),et=ze(Ie),et&&(et.c(),et.m(e,y))),tt[0]&4&&B!==(B=(((il=Ie[2].common)==null?void 0:il.voltage)??"Voltage")+"")&&q(X,B),tt[0]&64&&Ke(Y,Ie[6].m.d),tt[0]&4&&ne!==(ne=(((ol=(sl=Ie[2].conf)==null?void 0:sl.meter)==null?void 0:ol.fuse)??"Main fuse")+"")&&q(re,ne),tt[0]&64&&je(ae.value)!==Ie[6].m.f&&z(ae,Ie[6].m.f),tt[0]&4&&D!==(D=(((fl=(al=Ie[2].conf)==null?void 0:al.meter)==null?void 0:fl.prod)??"Production")+"")&&q(S,D),tt[0]&64&&je(ee.value)!==Ie[6].m.r&&z(ee,Ie[6].m.r),tt[0]&64&&(Te.checked=Ie[6].m.e.e),tt[0]&4&&Oe!==(Oe=(((te=(Ae=Ie[2].conf)==null?void 0:Ae.meter)==null?void 0:te.encrypted)??"Encrypted")+"")&&q(Ee,Oe),Ie[6].m.e.e?be?be.p(Ie,tt):(be=sa(Ie),be.c(),be.m(ge,null)):be&&(be.d(1),be=null),Ie[6].m.e.e?qe?qe.p(Ie,tt):(qe=oa(Ie),qe.c(),qe.m(e,kt)):qe&&(qe.d(1),qe=null),tt[0]&64&&(st.checked=Ie[6].m.m.e),tt[0]&4&&pt!==(pt=(((xt=(Pt=(Se=Ie[2].conf)==null?void 0:Se.meter)==null?void 0:Pt.multipliers)==null?void 0:xt.title)??"Multipliers")+"")&&q(ot,pt),Ie[6].m.m.e?Ye?Ye.p(Ie,tt):(Ye=aa(Ie),Ye.c(),Ye.m(e,null)):Ye&&(Ye.d(1),Ye=null)},d(Ie){Ie&&N(e),Ge&&Ge.d(),et.d(),be&&be.d(),qe&&qe.d(),Ye&&Ye.d(),at=!1,Bt(Lt)}}}function ia(t){let e;return{c(){e=p("option"),e.textContent="KMP",e.__value=9,z(e,e.__value)},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function Nc(t){var re,ue,ie,pe,ae,J;let e,l,n=(((ue=(re=t[2].conf)==null?void 0:re.meter)==null?void 0:ue.buffer)??"Buffer size")+"",i,s,a,r=(((pe=(ie=t[2].conf)==null?void 0:ie.meter)==null?void 0:pe.serial)??"Serial conf.")+"",f,c,m,_,d,h=(((J=(ae=t[2].conf)==null?void 0:ae.meter)==null?void 0:J.inverted)??"inverted")+"",b,g,w,k,O,L,R,M,I,F,j,V,y,T,B,X,H,K,Y,U,G,oe,le,Q=ut([3,12,24,48,96,192,384,576,1152]),ne=[];for(let $=0;$<9;$+=1)ne[$]=Tc(wc(t,Q,$));return{c(){e=p("div"),l=p("span"),i=C(n),s=v(),a=p("span"),f=C(r),c=v(),m=p("label"),_=p("input"),d=v(),b=C(h),g=v(),w=p("div"),k=p("select"),O=p("option"),L=C("Autodetect");for(let $=0;$<9;$+=1)ne[$].c();M=v(),I=p("select"),F=p("option"),j=C("-"),y=p("option"),y.textContent="7N1",T=p("option"),T.textContent="8N1",B=p("option"),B.textContent="8N2",X=p("option"),X.textContent="7E1",H=p("option"),H.textContent="8E1",Y=v(),U=p("input"),u(l,"class","float-right"),u(_,"name","mi"),_.__value="true",z(_,_.__value),u(_,"type","checkbox"),u(_,"class","rounded mb-1"),u(m,"class","mt-2 ml-3 whitespace-nowrap"),O.__value=0,z(O,O.__value),O.disabled=R=t[6].m.b!=0,u(k,"name","mb"),u(k,"class","in-f tr w-1/2"),t[6].m.b===void 0&&At(()=>t[38].call(k)),F.__value=0,z(F,F.__value),F.disabled=V=t[6].m.b!=0,y.__value=2,z(y,y.__value),T.__value=3,z(T,T.__value),B.__value=7,z(B,B.__value),X.__value=10,z(X,X.__value),H.__value=11,z(H,H.__value),u(I,"name","mp"),u(I,"class","in-m"),I.disabled=K=t[6].m.b==0,t[6].m.p===void 0&&At(()=>t[39].call(I)),u(U,"name","ms"),u(U,"type","number"),u(U,"min",64),u(U,"max",G=t[0].chip=="esp8266"?t[6].i.h.p==3||t[6].i.h.p==113?512:256:4096),u(U,"step",64),u(U,"class","in-l tr w-1/2"),u(w,"class","flex w-full"),u(e,"class","my-1")},m($,ke){P($,e,ke),o(e,l),o(l,i),o(e,s),o(e,a),o(a,f),o(e,c),o(e,m),o(m,_),_.checked=t[6].m.i,o(m,d),o(m,b),o(e,g),o(e,w),o(w,k),o(k,O),o(O,L);for(let we=0;we<9;we+=1)ne[we]&&ne[we].m(k,null);Ke(k,t[6].m.b,!0),o(w,M),o(w,I),o(I,F),o(F,j),o(I,y),o(I,T),o(I,B),o(I,X),o(I,H),Ke(I,t[6].m.p,!0),o(w,Y),o(w,U),z(U,t[6].m.s),oe||(le=[ce(_,"change",t[37]),ce(k,"change",t[38]),ce(I,"change",t[39]),ce(U,"input",t[40])],oe=!0)},p($,ke){var we,D,S,A,E,W;ke[0]&4&&n!==(n=(((D=(we=$[2].conf)==null?void 0:we.meter)==null?void 0:D.buffer)??"Buffer size")+"")&&q(i,n),ke[0]&4&&r!==(r=(((A=(S=$[2].conf)==null?void 0:S.meter)==null?void 0:A.serial)??"Serial conf.")+"")&&q(f,r),ke[0]&64&&(_.checked=$[6].m.i),ke[0]&4&&h!==(h=(((W=(E=$[2].conf)==null?void 0:E.meter)==null?void 0:W.inverted)??"inverted")+"")&&q(b,h),ke[0]&64&&R!==(R=$[6].m.b!=0)&&(O.disabled=R),ke[0]&64&&Ke(k,$[6].m.b),ke[0]&64&&V!==(V=$[6].m.b!=0)&&(F.disabled=V),ke[0]&64&&K!==(K=$[6].m.b==0)&&(I.disabled=K),ke[0]&64&&Ke(I,$[6].m.p),ke[0]&65&&G!==(G=$[0].chip=="esp8266"?$[6].i.h.p==3||$[6].i.h.p==113?512:256:4096)&&u(U,"max",G),ke[0]&64&&je(U.value)!==$[6].m.s&&z(U,$[6].m.s)},d($){$&&N(e),el(ne,$),oe=!1,Bt(le)}}}function Pc(t){var c,m;let e,l,n=(((m=(c=t[2].conf)==null?void 0:c.meter)==null?void 0:m.pulses)??"Pulses per kWh")+"",i,s,a,r,f;return{c(){e=p("div"),l=p("span"),i=C(n),s=v(),a=p("input"),u(a,"name","mb"),u(a,"class","in-s tr"),u(a,"type","number"),u(a,"min",1),u(a,"max",3600),u(e,"class","my-1")},m(_,d){P(_,e,d),o(e,l),o(l,i),o(e,s),o(e,a),z(a,t[6].m.b),r||(f=ce(a,"input",t[36]),r=!0)},p(_,d){var h,b;d[0]&4&&n!==(n=(((b=(h=_[2].conf)==null?void 0:h.meter)==null?void 0:b.pulses)??"Pulses per kWh")+"")&&q(i,n),d[0]&64&&je(a.value)!==_[6].m.b&&z(a,_[6].m.b)},d(_){_&&N(e),r=!1,f()}}}function Tc(t){let e;return{c(){e=p("option"),e.textContent=`${t[137]*100}`,e.__value=t[137]*100,z(e,e.__value)},m(l,n){P(l,e,n)},p:We,d(l){l&&N(e)}}}function sa(t){let e,l,n,i;return{c(){e=p("br"),l=p("input"),u(l,"name","mek"),u(l,"type","text"),u(l,"class","in-s"),u(l,"pattern",Eu)},m(s,a){P(s,e,a),P(s,l,a),z(l,t[6].m.e.k),n||(i=ce(l,"input",t[45]),n=!0)},p(s,a){a[0]&64&&l.value!==s[6].m.e.k&&z(l,s[6].m.e.k)},d(s){s&&(N(e),N(l)),n=!1,i()}}}function oa(t){var c,m;let e,l=(((m=(c=t[2].conf)==null?void 0:c.meter)==null?void 0:m.authkey)??"Authentication key")+"",n,i,s,a,r,f;return{c(){e=p("div"),n=C(l),i=p("br"),s=v(),a=p("input"),u(a,"name","mea"),u(a,"type","text"),u(a,"class","in-s"),u(a,"pattern",Eu),u(e,"class","my-1")},m(_,d){P(_,e,d),o(e,n),o(e,i),o(e,s),o(e,a),z(a,t[6].m.e.a),r||(f=ce(a,"input",t[46]),r=!0)},p(_,d){var h,b;d[0]&4&&l!==(l=(((b=(h=_[2].conf)==null?void 0:h.meter)==null?void 0:b.authkey)??"Authentication key")+"")&&q(n,l),d[0]&64&&a.value!==_[6].m.e.a&&z(a,_[6].m.e.a)},d(_){_&&N(e),r=!1,f()}}}function aa(t){var K,Y,U,G,oe,le,Q,ne,re,ue,ie,pe;let e,l,n=(((U=(Y=(K=t[2].conf)==null?void 0:K.meter)==null?void 0:Y.multipliers)==null?void 0:U.watt)??"Watt")+"",i,s,a,r,f,c,m=(((le=(oe=(G=t[2].conf)==null?void 0:G.meter)==null?void 0:oe.multipliers)==null?void 0:le.volt)??"Volt")+"",_,d,h,b,g,w,k=(((re=(ne=(Q=t[2].conf)==null?void 0:Q.meter)==null?void 0:ne.multipliers)==null?void 0:re.amp)??"Amp")+"",O,L,R,M,I,F,j=(((pe=(ie=(ue=t[2].conf)==null?void 0:ue.meter)==null?void 0:ie.multipliers)==null?void 0:pe.kwh)??"kWh")+"",V,y,T,B,X,H;return{c(){e=p("div"),l=p("div"),i=C(n),s=p("br"),a=v(),r=p("input"),f=v(),c=p("div"),_=C(m),d=p("br"),h=v(),b=p("input"),g=v(),w=p("div"),O=C(k),L=p("br"),R=v(),M=p("input"),I=v(),F=p("div"),V=C(j),y=p("br"),T=v(),B=p("input"),u(r,"name","mmw"),u(r,"type","number"),u(r,"min","0.00"),u(r,"max","1000"),u(r,"step","0.001"),u(r,"class","in-f tr w-full"),u(l,"class","w-1/4"),u(b,"name","mmv"),u(b,"type","number"),u(b,"min","0.00"),u(b,"max","1000"),u(b,"step","0.001"),u(b,"class","in-m tr w-full"),u(c,"class","w-1/4"),u(M,"name","mma"),u(M,"type","number"),u(M,"min","0.00"),u(M,"max","1000"),u(M,"step","0.001"),u(M,"class","in-m tr w-full"),u(w,"class","w-1/4"),u(B,"name","mmc"),u(B,"type","number"),u(B,"min","0.00"),u(B,"max","1000"),u(B,"step","0.001"),u(B,"class","in-l tr w-full"),u(F,"class","w-1/4"),u(e,"class","flex my-1")},m(ae,J){P(ae,e,J),o(e,l),o(l,i),o(l,s),o(l,a),o(l,r),z(r,t[6].m.m.w),o(e,f),o(e,c),o(c,_),o(c,d),o(c,h),o(c,b),z(b,t[6].m.m.v),o(e,g),o(e,w),o(w,O),o(w,L),o(w,R),o(w,M),z(M,t[6].m.m.a),o(e,I),o(e,F),o(F,V),o(F,y),o(F,T),o(F,B),z(B,t[6].m.m.c),X||(H=[ce(r,"input",t[48]),ce(b,"input",t[49]),ce(M,"input",t[50]),ce(B,"input",t[51])],X=!0)},p(ae,J){var $,ke,we,D,S,A,E,W,ee,fe,_e,he;J[0]&4&&n!==(n=(((we=(ke=($=ae[2].conf)==null?void 0:$.meter)==null?void 0:ke.multipliers)==null?void 0:we.watt)??"Watt")+"")&&q(i,n),J[0]&64&&je(r.value)!==ae[6].m.m.w&&z(r,ae[6].m.m.w),J[0]&4&&m!==(m=(((A=(S=(D=ae[2].conf)==null?void 0:D.meter)==null?void 0:S.multipliers)==null?void 0:A.volt)??"Volt")+"")&&q(_,m),J[0]&64&&je(b.value)!==ae[6].m.m.v&&z(b,ae[6].m.m.v),J[0]&4&&k!==(k=(((ee=(W=(E=ae[2].conf)==null?void 0:E.meter)==null?void 0:W.multipliers)==null?void 0:ee.amp)??"Amp")+"")&&q(O,k),J[0]&64&&je(M.value)!==ae[6].m.m.a&&z(M,ae[6].m.m.a),J[0]&4&&j!==(j=(((he=(_e=(fe=ae[2].conf)==null?void 0:fe.meter)==null?void 0:_e.multipliers)==null?void 0:he.kwh)??"kWh")+"")&&q(V,j),J[0]&64&&je(B.value)!==ae[6].m.m.c&&z(B,ae[6].m.m.c)},d(ae){ae&&N(e),X=!1,Bt(H)}}}function fa(t){var F,j,V,y,T,B;let e,l,n=(((j=(F=t[2].conf)==null?void 0:F.connection)==null?void 0:j.title)??"Connection")+"",i,s,a,r,f,c,m,_,d,h=(((y=(V=t[2].conf)==null?void 0:V.connection)==null?void 0:y.wifi)??"WiFi")+"",b,g,w=(((B=(T=t[2].conf)==null?void 0:T.connection)==null?void 0:B.ap)??"AP")+"",k,O,L,R,M=t[0].if&&t[0].if.eth&&ua(t),I=(t[6].n.c==1||t[6].n.c==2)&&ra(t);return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),_=p("select"),d=p("option"),b=C(h),g=p("option"),k=C(w),M&&M.c(),O=v(),I&&I.c(),u(l,"class","text-sm"),u(a,"href",hl("Network-connection")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","w"),f.value="true",d.__value=1,z(d,d.__value),g.__value=2,z(g,g.__value),u(_,"name","nc"),u(_,"class","in-s"),t[6].n.c===void 0&&At(()=>t[52].call(_)),u(m,"class","my-1"),u(e,"class","cnt")},m(X,H){P(X,e,H),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(e,c),o(e,m),o(m,_),o(_,d),o(d,b),o(_,g),o(g,k),M&&M.m(_,null),Ke(_,t[6].n.c,!0),o(e,O),I&&I.m(e,null),L||(R=ce(_,"change",t[52]),L=!0)},p(X,H){var K,Y,U,G,oe,le;H[0]&4&&n!==(n=(((Y=(K=X[2].conf)==null?void 0:K.connection)==null?void 0:Y.title)??"Connection")+"")&&q(i,n),H[0]&4&&h!==(h=(((G=(U=X[2].conf)==null?void 0:U.connection)==null?void 0:G.wifi)??"WiFi")+"")&&q(b,h),H[0]&4&&w!==(w=(((le=(oe=X[2].conf)==null?void 0:oe.connection)==null?void 0:le.ap)??"AP")+"")&&q(k,w),X[0].if&&X[0].if.eth?M?M.p(X,H):(M=ua(X),M.c(),M.m(_,null)):M&&(M.d(1),M=null),H[0]&64&&Ke(_,X[6].n.c),X[6].n.c==1||X[6].n.c==2?I?I.p(X,H):(I=ra(X),I.c(),I.m(e,null)):I&&(I.d(1),I=null)},d(X){X&&N(e),M&&M.d(),I&&I.d(),L=!1,R()}}}function ua(t){var i,s;let e,l=(((s=(i=t[2].conf)==null?void 0:i.connection)==null?void 0:s.eth)??"Ethernet")+"",n;return{c(){e=p("option"),n=C(l),e.__value=3,z(e,e.__value)},m(a,r){P(a,e,r),o(e,n)},p(a,r){var f,c;r[0]&4&&l!==(l=(((c=(f=a[2].conf)==null?void 0:f.connection)==null?void 0:c.eth)??"Ethernet")+"")&&q(n,l)},d(a){a&&N(e)}}}function ra(t){var De,Te,Le,Oe,Ee,Ue,Xe,kt,$e,st,Mt,pt,ot,nt,at,Lt,Ge,Fe,ze,et,be,qe,Ye;let e,l=(((Te=(De=t[2].conf)==null?void 0:De.connection)==null?void 0:Te.ssid)??"SSID")+"",n,i,s,a,r,f,c,m,_,d,h=(((Oe=(Le=t[2].conf)==null?void 0:Le.connection)==null?void 0:Oe.psk)??"Password")+"",b,g,w,k,O,L,R,M=(((Xe=(Ue=(Ee=t[2].conf)==null?void 0:Ee.connection)==null?void 0:Ue.ps)==null?void 0:Xe.title)??"Power saving")+"",I,F,j,V,y,T=(((st=($e=(kt=t[2].conf)==null?void 0:kt.connection)==null?void 0:$e.ps)==null?void 0:st.default)??"Default")+"",B,X,H=(((ot=(pt=(Mt=t[2].conf)==null?void 0:Mt.connection)==null?void 0:pt.ps)==null?void 0:ot.off)??"Off")+"",K,Y,U=(((Lt=(at=(nt=t[2].conf)==null?void 0:nt.connection)==null?void 0:at.ps)==null?void 0:Lt.min)??"Min")+"",G,oe,le=(((ze=(Fe=(Ge=t[2].conf)==null?void 0:Ge.connection)==null?void 0:Fe.ps)==null?void 0:ze.max)??"Max")+"",Q,ne,re,ue=(((be=(et=t[2].conf)==null?void 0:et.connection)==null?void 0:be.pwr)??"Power")+"",ie,pe,ae,J,$,ke,we,D,S,A,E,W,ee=(((Ye=(qe=t[2].conf)==null?void 0:qe.connection)==null?void 0:Ye.tick_11b)??"802.11b")+"",fe,_e,he;function x(me,Ce){return me[8]?Ec:qc}let ve=x(t),ge=ve(t);return{c(){e=p("div"),n=C(l),i=v(),s=p("label"),a=p("input"),r=C(" manual"),f=v(),c=p("br"),m=v(),ge.c(),_=v(),d=p("div"),b=C(h),g=p("br"),w=v(),k=p("input"),O=v(),L=p("div"),R=p("div"),I=C(M),F=p("br"),j=v(),V=p("select"),y=p("option"),B=C(T),X=p("option"),K=C(H),Y=p("option"),G=C(U),oe=p("option"),Q=C(le),ne=v(),re=p("div"),ie=C(ue),pe=p("br"),ae=v(),J=p("div"),$=p("input"),ke=v(),we=p("span"),we.textContent="dBm",D=v(),S=p("div"),A=p("label"),E=p("input"),W=v(),fe=C(ee),u(a,"type","checkbox"),a.__value="true",z(a,a.__value),u(a,"class","rounded mb-1"),u(s,"class","float-right mr-3"),u(e,"class","my-1"),u(k,"name","wp"),u(k,"type","password"),u(k,"class","in-s"),u(k,"pattern",Mn),u(d,"class","my-1"),y.__value=255,z(y,y.__value),X.__value=0,z(X,X.__value),Y.__value=1,z(Y,Y.__value),oe.__value=2,z(oe,oe.__value),u(V,"name","wz"),u(V,"class","in-s"),t[6].w.z===void 0&&At(()=>t[57].call(V)),u(R,"class","w-1/2"),u($,"name","ww"),u($,"type","number"),u($,"min","0"),u($,"max","20.5"),u($,"step","0.5"),u($,"class","in-f tr w-full"),u(we,"class","in-post"),u(J,"class","flex"),u(re,"class","ml-2 w-1/2"),u(L,"class","my-1 flex"),u(E,"type","checkbox"),u(E,"name","wb"),E.__value="true",z(E,E.__value),u(E,"class","rounded mb-1"),u(S,"class","my-3")},m(me,Ce){P(me,e,Ce),o(e,n),o(e,i),o(e,s),o(s,a),a.checked=t[8],o(s,r),o(e,f),o(e,c),o(e,m),ge.m(e,null),P(me,_,Ce),P(me,d,Ce),o(d,b),o(d,g),o(d,w),o(d,k),z(k,t[6].w.p),P(me,O,Ce),P(me,L,Ce),o(L,R),o(R,I),o(R,F),o(R,j),o(R,V),o(V,y),o(y,B),o(V,X),o(X,K),o(V,Y),o(Y,G),o(V,oe),o(oe,Q),Ke(V,t[6].w.z,!0),o(L,ne),o(L,re),o(re,ie),o(re,pe),o(re,ae),o(re,J),o(J,$),z($,t[6].w.w),o(J,ke),o(J,we),P(me,D,Ce),P(me,S,Ce),o(S,A),o(A,E),E.checked=t[6].w.b,o(A,W),o(A,fe),_e||(he=[ce(a,"change",t[53]),ce(k,"input",t[56]),ce(V,"change",t[57]),ce($,"input",t[58]),ce(E,"change",t[59])],_e=!0)},p(me,Ce){var ft,Ve,Ft,bt,Be,gt,rt,ct,Ze,Dt,Gt,Ct,lt,Ht,Kt,jt,Wt,Qt,Zt,Jt,$t,Ie,tt;Ce[0]&4&&l!==(l=(((Ve=(ft=me[2].conf)==null?void 0:ft.connection)==null?void 0:Ve.ssid)??"SSID")+"")&&q(n,l),Ce[0]&256&&(a.checked=me[8]),ve===(ve=x(me))&&ge?ge.p(me,Ce):(ge.d(1),ge=ve(me),ge&&(ge.c(),ge.m(e,null))),Ce[0]&4&&h!==(h=(((bt=(Ft=me[2].conf)==null?void 0:Ft.connection)==null?void 0:bt.psk)??"Password")+"")&&q(b,h),Ce[0]&64&&k.value!==me[6].w.p&&z(k,me[6].w.p),Ce[0]&4&&M!==(M=(((rt=(gt=(Be=me[2].conf)==null?void 0:Be.connection)==null?void 0:gt.ps)==null?void 0:rt.title)??"Power saving")+"")&&q(I,M),Ce[0]&4&&T!==(T=(((Dt=(Ze=(ct=me[2].conf)==null?void 0:ct.connection)==null?void 0:Ze.ps)==null?void 0:Dt.default)??"Default")+"")&&q(B,T),Ce[0]&4&&H!==(H=(((lt=(Ct=(Gt=me[2].conf)==null?void 0:Gt.connection)==null?void 0:Ct.ps)==null?void 0:lt.off)??"Off")+"")&&q(K,H),Ce[0]&4&&U!==(U=(((jt=(Kt=(Ht=me[2].conf)==null?void 0:Ht.connection)==null?void 0:Kt.ps)==null?void 0:jt.min)??"Min")+"")&&q(G,U),Ce[0]&4&&le!==(le=(((Zt=(Qt=(Wt=me[2].conf)==null?void 0:Wt.connection)==null?void 0:Qt.ps)==null?void 0:Zt.max)??"Max")+"")&&q(Q,le),Ce[0]&64&&Ke(V,me[6].w.z),Ce[0]&4&&ue!==(ue=((($t=(Jt=me[2].conf)==null?void 0:Jt.connection)==null?void 0:$t.pwr)??"Power")+"")&&q(ie,ue),Ce[0]&64&&je($.value)!==me[6].w.w&&z($,me[6].w.w),Ce[0]&64&&(E.checked=me[6].w.b),Ce[0]&4&&ee!==(ee=(((tt=(Ie=me[2].conf)==null?void 0:Ie.connection)==null?void 0:tt.tick_11b)??"802.11b")+"")&&q(fe,ee)},d(me){me&&(N(e),N(_),N(d),N(O),N(L),N(D),N(S)),ge.d(),_e=!1,Bt(he)}}}function qc(t){var f,c;let e,l,n,i,s,a=((f=t[9])==null?void 0:f.c)==-1&&ca(),r=((c=t[9])==null?void 0:c.n)&&_a(t);return{c(){e=p("select"),a&&a.c(),l=yt(),r&&r.c(),u(e,"name","ws"),u(e,"class","in-s"),e.required=n=t[6].n.c==1||t[6].n.c==2,t[6].w.s===void 0&&At(()=>t[55].call(e))},m(m,_){P(m,e,_),a&&a.m(e,null),o(e,l),r&&r.m(e,null),Ke(e,t[6].w.s,!0),i||(s=ce(e,"change",t[55]),i=!0)},p(m,_){var d,h;((d=m[9])==null?void 0:d.c)==-1?a||(a=ca(),a.c(),a.m(e,l)):a&&(a.d(1),a=null),(h=m[9])!=null&&h.n?r?r.p(m,_):(r=_a(m),r.c(),r.m(e,null)):r&&(r.d(1),r=null),_[0]&64&&n!==(n=m[6].n.c==1||m[6].n.c==2)&&(e.required=n),_[0]&64&&Ke(e,m[6].w.s)},d(m){m&&N(e),a&&a.d(),r&&r.d(),i=!1,s()}}}function Ec(t){let e,l,n,i;return{c(){e=p("input"),u(e,"name","ws"),u(e,"type","text"),u(e,"class","in-s"),u(e,"pattern",Mn),e.required=l=t[6].n.c==1||t[6].n.c==2},m(s,a){P(s,e,a),z(e,t[6].w.s),n||(i=ce(e,"input",t[54]),n=!0)},p(s,a){a[0]&64&&l!==(l=s[6].n.c==1||s[6].n.c==2)&&(e.required=l),a[0]&64&&e.value!==s[6].w.s&&z(e,s[6].w.s)},d(s){s&&N(e),n=!1,i()}}}function ca(t){let e;return{c(){e=p("option"),e.textContent="Scanning...",e.__value="",z(e,e.__value),e.selected=!0,e.disabled=!0},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function _a(t){var i;let e,l=ut((i=t[9])==null?void 0:i.n),n=[];for(let s=0;st[60].call(b)),u(I,"name","ni"),u(I,"type","text"),u(I,"class","in-m w-full"),I.disabled=F=t[6].n.m=="dhcp",I.required=j=t[6].n.m=="static",u(I,"pattern",_n),u(y,"name","ns"),u(y,"class","in-l"),y.disabled=B=t[6].n.m=="dhcp",y.required=X=t[6].n.m=="static",t[6].n.s===void 0&&At(()=>t[62].call(y)),u(h,"class","flex"),u(f,"class","my-1"),u(G,"name","nx"),G.__value="true",z(G,G.__value),u(G,"type","checkbox"),u(G,"class","rounded mb-1"),u(Y,"class","my-1"),u(re,"name","nd"),re.__value="true",z(re,re.__value),u(re,"type","checkbox"),u(re,"class","rounded mb-1"),u(Q,"class","my-1"),u(J,"type","hidden"),u(J,"name","ntp"),J.value="true",u(E,"name","ntpd"),E.__value="true",z(E,E.__value),u(E,"type","checkbox"),u(E,"class","rounded mb-1"),u(A,"class","ml-4"),u(ve,"name","ntph"),u(ve,"type","text"),u(ve,"class","in-s"),u(ve,"pattern",Rl),u(x,"class","flex"),u(ke,"class","my-1"),u(e,"class","cnt")},m(Fe,ze){P(Fe,e,ze),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(f,m),o(f,_),o(f,d),o(f,h),o(h,b),o(b,g),o(g,k),o(b,O),o(O,R),Ke(b,t[6].n.m,!0),o(h,M),o(h,I),z(I,t[6].n.i),o(h,V),o(h,y),Me(T,y,null),Ke(y,t[6].n.s,!0),o(e,H),Le&&Le.m(e,null),o(e,K),o(e,Y),o(Y,U),o(U,G),G.checked=t[6].n.x,o(U,oe),o(e,le),o(e,Q),o(Q,ne),o(ne,re),re.checked=t[6].n.d,o(ne,ue),o(ne,pe),o(e,ae),o(e,J),o(e,$),o(e,ke),o(ke,D),o(ke,S),o(ke,A),o(A,E),E.checked=t[6].n.h,o(A,W),o(A,fe),o(ke,_e),o(ke,he),o(ke,x),o(x,ve),z(ve,t[6].n.n1),ge=!0,De||(Te=[ce(b,"change",t[60]),ce(I,"input",t[61]),ce(y,"change",t[62]),ce(G,"change",t[66]),ce(re,"change",t[67]),ce(E,"change",t[68]),ce(ve,"input",t[69])],De=!0)},p(Fe,ze){var et,be,qe,Ye,me,Ce,ft,Ve,Ft,bt,Be,gt,rt,ct;(!ge||ze[0]&4)&&n!==(n=(((be=(et=Fe[2].conf)==null?void 0:et.network)==null?void 0:be.title)??"Network")+"")&&q(i,n),(!ge||ze[0]&4)&&c!==(c=(((Ye=(qe=Fe[2].conf)==null?void 0:qe.network)==null?void 0:Ye.ip)??"IP")+"")&&q(m,c),(!ge||ze[0]&4)&&w!==(w=(((Ce=(me=Fe[2].conf)==null?void 0:me.network)==null?void 0:Ce.dhcp)??"DHCP")+"")&&q(k,w),(!ge||ze[0]&4)&&L!==(L=(((Ve=(ft=Fe[2].conf)==null?void 0:ft.network)==null?void 0:Ve.static)??"Static")+"")&&q(R,L),ze[0]&64&&Ke(b,Fe[6].n.m),(!ge||ze[0]&64&&F!==(F=Fe[6].n.m=="dhcp"))&&(I.disabled=F),(!ge||ze[0]&64&&j!==(j=Fe[6].n.m=="static"))&&(I.required=j),ze[0]&64&&I.value!==Fe[6].n.i&&z(I,Fe[6].n.i),(!ge||ze[0]&64&&B!==(B=Fe[6].n.m=="dhcp"))&&(y.disabled=B),(!ge||ze[0]&64&&X!==(X=Fe[6].n.m=="static"))&&(y.required=X),ze[0]&64&&Ke(y,Fe[6].n.s),Fe[6].n.m=="static"?Le?Le.p(Fe,ze):(Le=da(Fe),Le.c(),Le.m(e,K)):Le&&(Le.d(1),Le=null),ze[0]&64&&(G.checked=Fe[6].n.x),ze[0]&64&&(re.checked=Fe[6].n.d),(!ge||ze[0]&4)&&ie!==(ie=(((bt=(Ft=Fe[2].conf)==null?void 0:Ft.network)==null?void 0:bt.tick_mdns)??"mDNS")+"")&&q(pe,ie),(!ge||ze[0]&4)&&we!==(we=(((gt=(Be=Fe[2].conf)==null?void 0:Be.network)==null?void 0:gt.ntp)??"NTP")+"")&&q(D,we),ze[0]&64&&(E.checked=Fe[6].n.h),(!ge||ze[0]&4)&&ee!==(ee=(((ct=(rt=Fe[2].conf)==null?void 0:rt.network)==null?void 0:ct.tick_ntp_dhcp)??"from DHCP")+"")&&q(fe,ee),ze[0]&64&&ve.value!==Fe[6].n.n1&&z(ve,Fe[6].n.n1)},i(Fe){ge||(Z(T.$$.fragment,Fe),ge=!0)},o(Fe){se(T.$$.fragment,Fe),ge=!1},d(Fe){Fe&&N(e),Ne(T),Le&&Le.d(),De=!1,Bt(Te)}}}function da(t){var L,R,M,I;let e,l=(((R=(L=t[2].conf)==null?void 0:L.network)==null?void 0:R.gw)??"Gateway")+"",n,i,s,a,r,f,c=(((I=(M=t[2].conf)==null?void 0:M.network)==null?void 0:I.dns)??"DNS")+"",m,_,d,h,b,g,w,k,O;return{c(){e=p("div"),n=C(l),i=p("br"),s=v(),a=p("input"),r=v(),f=p("div"),m=C(c),_=p("br"),d=v(),h=p("div"),b=p("input"),g=v(),w=p("input"),u(a,"name","ng"),u(a,"type","text"),u(a,"class","in-s"),u(a,"pattern",_n),u(e,"class","my-1"),u(b,"name","nd1"),u(b,"type","text"),u(b,"class","in-f w-full"),u(b,"pattern",_n),u(w,"name","nd2"),u(w,"type","text"),u(w,"class","in-l w-full"),u(w,"pattern",_n),u(h,"class","flex"),u(f,"class","my-1")},m(F,j){P(F,e,j),o(e,n),o(e,i),o(e,s),o(e,a),z(a,t[6].n.g),P(F,r,j),P(F,f,j),o(f,m),o(f,_),o(f,d),o(f,h),o(h,b),z(b,t[6].n.d1),o(h,g),o(h,w),z(w,t[6].n.d2),k||(O=[ce(a,"input",t[63]),ce(b,"input",t[64]),ce(w,"input",t[65])],k=!0)},p(F,j){var V,y,T,B;j[0]&4&&l!==(l=(((y=(V=F[2].conf)==null?void 0:V.network)==null?void 0:y.gw)??"Gateway")+"")&&q(n,l),j[0]&64&&a.value!==F[6].n.g&&z(a,F[6].n.g),j[0]&4&&c!==(c=(((B=(T=F[2].conf)==null?void 0:T.network)==null?void 0:B.dns)??"DNS")+"")&&q(m,c),j[0]&64&&b.value!==F[6].n.d1&&z(b,F[6].n.d1),j[0]&64&&w.value!==F[6].n.d2&&z(w,F[6].n.d2)},d(F){F&&(N(e),N(r),N(f)),k=!1,Bt(O)}}}function ha(t){var il,sl,ol,al,fl,Ae,te,Se,Pt,xt,cl,dl,ll,vl,bl,Nl,Pl,Fl,Ul,Bl,jl,Je,It,rl,zl,yl,Hl,Wl,Gl,Vl;let e,l,n=(((sl=(il=t[2].conf)==null?void 0:il.mqtt)==null?void 0:sl.title)??"MQTT")+"",i,s,a,r,f,c,m,_=(((al=(ol=t[2].conf)==null?void 0:ol.mqtt)==null?void 0:al.server)??"Server")+"",d,h,b,g,w,k,O,L,R,M,I,F,j=(((Ae=(fl=t[2].conf)==null?void 0:fl.mqtt)==null?void 0:Ae.user)??"Username")+"",V,y,T,B,X,H,K=(((Se=(te=t[2].conf)==null?void 0:te.mqtt)==null?void 0:Se.pass)??"Password")+"",Y,U,G,oe,le,Q,ne,re=(((xt=(Pt=t[2].conf)==null?void 0:Pt.mqtt)==null?void 0:xt.id)??"Client ID")+"",ue,ie,pe,ae,J,$,ke,we=(((dl=(cl=t[2].conf)==null?void 0:cl.mqtt)==null?void 0:dl.payload)??"Payload")+"",D,S,A,E,W,ee,fe,_e,he,x,ve,ge,De,Te,Le=(((vl=(ll=t[2].conf)==null?void 0:ll.mqtt)==null?void 0:vl.publish)??"Publish topic")+"",Oe,Ee,Ue,Xe,kt,$e,st=(((Nl=(bl=t[2].conf)==null?void 0:bl.mqtt)==null?void 0:Nl.subscribe)??"Subscribe topic")+"",Mt,pt,ot,nt,at,Lt,Ge,Fe=(((Fl=(Pl=t[2].conf)==null?void 0:Pl.mqtt)==null?void 0:Fl.update)??"Update method")+"",ze,et,be,qe=(((Bl=(Ul=t[2].conf)==null?void 0:Ul.mqtt)==null?void 0:Bl.interval)??"Interval")+"",Ye,me,Ce,ft,Ve,Ft=(((Je=(jl=t[2].conf)==null?void 0:jl.mqtt)==null?void 0:Je.realtime)??"Real time")+"",bt,Be,gt=(((rl=(It=t[2].conf)==null?void 0:It.mqtt)==null?void 0:rl.interval)??"Interval")+"",rt,ct,Ze,Dt,Gt,Ct,lt,Ht,Kt=(((yl=(zl=t[2].conf)==null?void 0:zl.mqtt)==null?void 0:yl.timeout)??"Timeout")+"",jt,Wt,Qt,Zt=(((Wl=(Hl=t[2].conf)==null?void 0:Hl.mqtt)==null?void 0:Wl.keepalive)??"Keep-alive")+"",Jt,$t,Ie,tt=(((Vl=(Gl=t[2].conf)==null?void 0:Gl.mqtt)==null?void 0:Vl.autoreboot)??"Auto-reboot")+"",it,Ot,Nt,xe,zt,_t,mt,de,Re,ye,nl,Ut=t[0].chip!="esp8266"&&va(t),Et=t[6].q.s.e&&ba(t);return{c(){var He,dt;e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),d=C(_),h=v(),Ut&&Ut.c(),b=v(),g=p("br"),w=v(),k=p("div"),O=p("input"),L=v(),R=p("input"),M=v(),Et&&Et.c(),I=v(),F=p("div"),V=C(j),y=p("br"),T=v(),B=p("input"),X=v(),H=p("div"),Y=C(K),U=p("br"),G=v(),oe=p("input"),le=v(),Q=p("div"),ne=p("div"),ue=C(re),ie=p("br"),pe=v(),ae=p("input"),$=v(),ke=p("div"),D=C(we),S=p("br"),A=v(),E=p("select"),W=p("option"),W.textContent="Raw (minimal)",ee=p("option"),ee.textContent="Raw (full)",fe=p("option"),fe.textContent="Domoticz",_e=p("option"),_e.textContent="Home-Assistant",he=p("option"),he.textContent="JSON (classic)",x=p("option"),x.textContent="JSON (multi topic)",ve=p("option"),ve.textContent="JSON (flat)",ge=p("option"),ge.textContent="HEX dump",De=v(),Te=p("div"),Oe=C(Le),Ee=p("br"),Ue=v(),Xe=p("input"),kt=v(),$e=p("div"),Mt=C(st),pt=p("br"),ot=v(),nt=p("input"),Lt=v(),Ge=p("div"),ze=C(Fe),et=v(),be=p("span"),Ye=C(qe),me=v(),Ce=p("div"),ft=p("select"),Ve=p("option"),bt=C(Ft),Be=p("option"),rt=C(gt),ct=v(),Ze=p("input"),Gt=v(),Ct=p("div"),lt=p("div"),Ht=p("p"),jt=C(Kt),Wt=v(),Qt=p("p"),Jt=C(Zt),$t=v(),Ie=p("p"),it=C(tt),Ot=v(),Nt=p("div"),xe=p("input"),zt=v(),_t=p("input"),mt=v(),de=p("input"),u(l,"class","text-sm"),u(a,"href",hl("MQTT-configuration")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","q"),f.value="true",u(O,"name","qh"),u(O,"type","text"),u(O,"class","in-f w-2/3"),u(O,"pattern",Rl),u(R,"name","qp"),u(R,"type","number"),u(R,"min","1024"),u(R,"max","65535"),u(R,"class","in-l tr w-1/3"),u(k,"class","flex"),u(m,"class","my-1"),u(B,"name","qu"),u(B,"type","text"),u(B,"class","in-s"),u(B,"pattern",Mn),u(F,"class","my-1"),u(oe,"name","qa"),u(oe,"type","password"),u(oe,"class","in-s"),u(oe,"pattern",Mn),u(H,"class","my-1"),u(ae,"name","qc"),u(ae,"type","text"),u(ae,"class","in-f w-full"),ae.required=J=t[6].q.h,u(ae,"pattern",ui),W.__value=1,z(W,W.__value),ee.__value=2,z(ee,ee.__value),fe.__value=3,z(fe,fe.__value),_e.__value=4,z(_e,_e.__value),he.__value=0,z(he,he.__value),x.__value=5,z(x,x.__value),ve.__value=6,z(ve,ve.__value),ge.__value=255,z(ge,ge.__value),u(E,"name","qm"),u(E,"class","in-l"),t[6].q.m===void 0&&At(()=>t[76].call(E)),u(Q,"class","my-1 flex"),u(Xe,"name","qb"),u(Xe,"type","text"),u(Xe,"class","in-s"),u(Xe,"pattern",Rl),u(Te,"class","my-1"),u(nt,"name","qr"),u(nt,"type","text"),u(nt,"class","in-s"),u(nt,"pattern",Rl),u(nt,"placeholder",at=t[6].q.b+"/command"),u($e,"class","my-1"),u(be,"class","float-right"),Ve.__value=0,z(Ve,Ve.__value),Be.__value=1,z(Be,Be.__value),u(ft,"name","qt"),u(ft,"class","in-f w-1/2"),t[6].q.t===void 0&&At(()=>t[79].call(ft)),u(Ze,"name","qd"),u(Ze,"type","number"),u(Ze,"min","1"),u(Ze,"max","3600"),u(Ze,"class","in-l tr w-1/2"),Ze.disabled=Dt=((dt=(He=t[6])==null?void 0:He.q)==null?void 0:dt.t)!=1,u(Ce,"class","flex"),u(Ge,"class","my-1"),u(lt,"class","grid grid-cols-3"),u(xe,"name","qi"),u(xe,"type","number"),u(xe,"min","500"),u(xe,"max","10000"),u(xe,"class","in-f tr w-1/2"),u(_t,"name","qk"),u(_t,"type","number"),u(_t,"min","5"),u(_t,"max","180"),u(_t,"class","in-m tr w-1/2"),u(de,"name","qe"),u(de,"type","number"),u(de,"min","0"),u(de,"max","240"),u(de,"class","in-l tr w-1/2"),u(Nt,"class","flex"),u(Ct,"class","my-1"),u(e,"class","cnt")},m(He,dt){P(He,e,dt),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(e,c),o(e,m),o(m,d),o(m,h),Ut&&Ut.m(m,null),o(m,b),o(m,g),o(m,w),o(m,k),o(k,O),z(O,t[6].q.h),o(k,L),o(k,R),z(R,t[6].q.p),o(e,M),Et&&Et.m(e,null),o(e,I),o(e,F),o(F,V),o(F,y),o(F,T),o(F,B),z(B,t[6].q.u),o(e,X),o(e,H),o(H,Y),o(H,U),o(H,G),o(H,oe),z(oe,t[6].q.a),o(e,le),o(e,Q),o(Q,ne),o(ne,ue),o(ne,ie),o(ne,pe),o(ne,ae),z(ae,t[6].q.c),o(Q,$),o(Q,ke),o(ke,D),o(ke,S),o(ke,A),o(ke,E),o(E,W),o(E,ee),o(E,fe),o(E,_e),o(E,he),o(E,x),o(E,ve),o(E,ge),Ke(E,t[6].q.m,!0),o(e,De),o(e,Te),o(Te,Oe),o(Te,Ee),o(Te,Ue),o(Te,Xe),z(Xe,t[6].q.b),o(e,kt),o(e,$e),o($e,Mt),o($e,pt),o($e,ot),o($e,nt),z(nt,t[6].q.r),o(e,Lt),o(e,Ge),o(Ge,ze),o(Ge,et),o(Ge,be),o(be,Ye),o(Ge,me),o(Ge,Ce),o(Ce,ft),o(ft,Ve),o(Ve,bt),o(ft,Be),o(Be,rt),Ke(ft,t[6].q.t,!0),o(Ce,ct),o(Ce,Ze),z(Ze,t[6].q.d),o(e,Gt),o(e,Ct),o(Ct,lt),o(lt,Ht),o(Ht,jt),o(lt,Wt),o(lt,Qt),o(Qt,Jt),o(lt,$t),o(lt,Ie),o(Ie,it),o(Ct,Ot),o(Ct,Nt),o(Nt,xe),z(xe,t[6].q.i),o(Nt,zt),o(Nt,_t),z(_t,t[6].q.k),o(Nt,mt),o(Nt,de),z(de,t[6].q.e),Re=!0,ye||(nl=[ce(O,"input",t[71]),ce(R,"input",t[72]),ce(B,"input",t[73]),ce(oe,"input",t[74]),ce(ae,"input",t[75]),ce(E,"change",t[76]),ce(Xe,"input",t[77]),ce(nt,"input",t[78]),ce(ft,"change",t[79]),ce(Ze,"input",t[80]),ce(xe,"input",t[81]),ce(_t,"input",t[82]),ce(de,"input",t[83])],ye=!0)},p(He,dt){var Kl,Yl,Ql,Xl,Zl,Jl,$l,xl,en,tn,ln,Nn,Pn,Tn,qn,En,Dn,An,Ln,On,ns,is,ss,os,as,fs,us,rs,cs,_s,ms,ps;(!Re||dt[0]&4)&&n!==(n=(((Yl=(Kl=He[2].conf)==null?void 0:Kl.mqtt)==null?void 0:Yl.title)??"MQTT")+"")&&q(i,n),(!Re||dt[0]&4)&&_!==(_=(((Xl=(Ql=He[2].conf)==null?void 0:Ql.mqtt)==null?void 0:Xl.server)??"Server")+"")&&q(d,_),He[0].chip!="esp8266"?Ut?Ut.p(He,dt):(Ut=va(He),Ut.c(),Ut.m(m,b)):Ut&&(Ut.d(1),Ut=null),dt[0]&64&&O.value!==He[6].q.h&&z(O,He[6].q.h),dt[0]&64&&je(R.value)!==He[6].q.p&&z(R,He[6].q.p),He[6].q.s.e?Et?(Et.p(He,dt),dt[0]&64&&Z(Et,1)):(Et=ba(He),Et.c(),Z(Et,1),Et.m(e,I)):Et&&(ht(),se(Et,1,1,()=>{Et=null}),vt()),(!Re||dt[0]&4)&&j!==(j=(((Jl=(Zl=He[2].conf)==null?void 0:Zl.mqtt)==null?void 0:Jl.user)??"Username")+"")&&q(V,j),dt[0]&64&&B.value!==He[6].q.u&&z(B,He[6].q.u),(!Re||dt[0]&4)&&K!==(K=(((xl=($l=He[2].conf)==null?void 0:$l.mqtt)==null?void 0:xl.pass)??"Password")+"")&&q(Y,K),dt[0]&64&&oe.value!==He[6].q.a&&z(oe,He[6].q.a),(!Re||dt[0]&4)&&re!==(re=(((tn=(en=He[2].conf)==null?void 0:en.mqtt)==null?void 0:tn.id)??"Client ID")+"")&&q(ue,re),(!Re||dt[0]&64&&J!==(J=He[6].q.h))&&(ae.required=J),dt[0]&64&&ae.value!==He[6].q.c&&z(ae,He[6].q.c),(!Re||dt[0]&4)&&we!==(we=(((Nn=(ln=He[2].conf)==null?void 0:ln.mqtt)==null?void 0:Nn.payload)??"Payload")+"")&&q(D,we),dt[0]&64&&Ke(E,He[6].q.m),(!Re||dt[0]&4)&&Le!==(Le=(((Tn=(Pn=He[2].conf)==null?void 0:Pn.mqtt)==null?void 0:Tn.publish)??"Publish topic")+"")&&q(Oe,Le),dt[0]&64&&Xe.value!==He[6].q.b&&z(Xe,He[6].q.b),(!Re||dt[0]&4)&&st!==(st=(((En=(qn=He[2].conf)==null?void 0:qn.mqtt)==null?void 0:En.subscribe)??"Subscribe topic")+"")&&q(Mt,st),(!Re||dt[0]&64&&at!==(at=He[6].q.b+"/command"))&&u(nt,"placeholder",at),dt[0]&64&&nt.value!==He[6].q.r&&z(nt,He[6].q.r),(!Re||dt[0]&4)&&Fe!==(Fe=(((An=(Dn=He[2].conf)==null?void 0:Dn.mqtt)==null?void 0:An.update)??"Update method")+"")&&q(ze,Fe),(!Re||dt[0]&4)&&qe!==(qe=(((On=(Ln=He[2].conf)==null?void 0:Ln.mqtt)==null?void 0:On.interval)??"Interval")+"")&&q(Ye,qe),(!Re||dt[0]&4)&&Ft!==(Ft=(((is=(ns=He[2].conf)==null?void 0:ns.mqtt)==null?void 0:is.realtime)??"Real time")+"")&&q(bt,Ft),(!Re||dt[0]&4)&>!==(gt=(((os=(ss=He[2].conf)==null?void 0:ss.mqtt)==null?void 0:os.interval)??"Interval")+"")&&q(rt,gt),dt[0]&64&&Ke(ft,He[6].q.t),(!Re||dt[0]&64&&Dt!==(Dt=((fs=(as=He[6])==null?void 0:as.q)==null?void 0:fs.t)!=1))&&(Ze.disabled=Dt),dt[0]&64&&je(Ze.value)!==He[6].q.d&&z(Ze,He[6].q.d),(!Re||dt[0]&4)&&Kt!==(Kt=(((rs=(us=He[2].conf)==null?void 0:us.mqtt)==null?void 0:rs.timeout)??"Timeout")+"")&&q(jt,Kt),(!Re||dt[0]&4)&&Zt!==(Zt=(((_s=(cs=He[2].conf)==null?void 0:cs.mqtt)==null?void 0:_s.keepalive)??"Keep-alive")+"")&&q(Jt,Zt),(!Re||dt[0]&4)&&tt!==(tt=(((ps=(ms=He[2].conf)==null?void 0:ms.mqtt)==null?void 0:ps.autoreboot)??"Auto-reboot")+"")&&q(it,tt),dt[0]&64&&je(xe.value)!==He[6].q.i&&z(xe,He[6].q.i),dt[0]&64&&je(_t.value)!==He[6].q.k&&z(_t,He[6].q.k),dt[0]&64&&je(de.value)!==He[6].q.e&&z(de,He[6].q.e)},i(He){Re||(Z(Et),Re=!0)},o(He){se(Et),Re=!1},d(He){He&&N(e),Ut&&Ut.d(),Et&&Et.d(),ye=!1,Bt(nl)}}}function va(t){let e,l,n,i,s;return{c(){e=p("label"),l=p("input"),n=C(" SSL"),u(l,"type","checkbox"),u(l,"name","qs"),l.__value="true",z(l,l.__value),u(l,"class","rounded mb-1"),u(e,"class","float-right mr-3")},m(a,r){P(a,e,r),o(e,l),l.checked=t[6].q.s.e,o(e,n),i||(s=[ce(l,"change",t[70]),ce(l,"change",t[20])],i=!0)},p(a,r){r[0]&64&&(l.checked=a[6].q.s.e)},d(a){a&&N(e),i=!1,Bt(s)}}}function ba(t){let e,l,n,i,s,a,r,f,c,m,_,d,h;const b=[Ac,Dc],g=[];function w(F,j){return F[6].q.s.c?0:1}n=w(t),i=g[n]=b[n](t);const k=[Rc,Ic],O=[];function L(F,j){return F[6].q.s.r?0:1}r=L(t),f=O[r]=k[r](t);const R=[jc,Bc],M=[];function I(F,j){return F[6].q.s.k?0:1}return _=I(t),d=M[_]=R[_](t),{c(){e=p("div"),l=p("span"),i.c(),s=v(),a=p("span"),f.c(),c=v(),m=p("span"),d.c(),u(l,"class","flex pr-2"),u(a,"class","flex pr-2"),u(m,"class","flex pr-2"),u(e,"class","my-1 flex")},m(F,j){P(F,e,j),o(e,l),g[n].m(l,null),o(e,s),o(e,a),O[r].m(a,null),o(e,c),o(e,m),M[_].m(m,null),h=!0},p(F,j){let V=n;n=w(F),n===V?g[n].p(F,j):(ht(),se(g[V],1,1,()=>{g[V]=null}),vt(),i=g[n],i?i.p(F,j):(i=g[n]=b[n](F),i.c()),Z(i,1),i.m(l,null));let y=r;r=L(F),r===y?O[r].p(F,j):(ht(),se(O[y],1,1,()=>{O[y]=null}),vt(),f=O[r],f?f.p(F,j):(f=O[r]=k[r](F),f.c()),Z(f,1),f.m(a,null));let T=_;_=I(F),_===T?M[_].p(F,j):(ht(),se(M[T],1,1,()=>{M[T]=null}),vt(),d=M[_],d?d.p(F,j):(d=M[_]=R[_](F),d.c()),Z(d,1),d.m(m,null))},i(F){h||(Z(i),Z(f),Z(d),h=!0)},o(F){se(i),se(f),se(d),h=!1},d(F){F&&N(e),g[n].d(),O[r].d(),M[_].d()}}}function Dc(t){let e,l;return e=new gl({props:{to:"/mqtt-ca",$$slots:{default:[Lc]},$$scope:{ctx:t}}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i[0]&4|i[4]&524288&&(s.$$scope={dirty:i,ctx:n}),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function Ac(t){let e,l,n,i,s,a,r;return l=new gl({props:{to:"/mqtt-ca",$$slots:{default:[Oc]},$$scope:{ctx:t}}}),{c(){e=p("span"),Pe(l.$$.fragment),n=v(),i=p("span"),i.textContent="🗑",u(e,"class","bd-on"),u(i,"class","bd-off")},m(f,c){P(f,e,c),Me(l,e,null),P(f,n,c),P(f,i,c),s=!0,a||(r=[ce(i,"click",t[17]),ce(i,"keypress",t[17])],a=!0)},p(f,c){const m={};c[0]&4|c[4]&524288&&(m.$$scope={dirty:c,ctx:f}),l.$set(m)},i(f){s||(Z(l.$$.fragment,f),s=!0)},o(f){se(l.$$.fragment,f),s=!1},d(f){f&&(N(e),N(n),N(i)),Ne(l),a=!1,Bt(r)}}}function Lc(t){var n,i,s,a;let e,l;return e=new un({props:{color:"blue",text:((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.btn_ca_upload)??"Upload CA",title:((a=(s=t[2].conf)==null?void 0:s.mqtt)==null?void 0:a.title_ca)??""}}),{c(){Pe(e.$$.fragment)},m(r,f){Me(e,r,f),l=!0},p(r,f){var m,_,d,h;const c={};f[0]&4&&(c.text=((_=(m=r[2].conf)==null?void 0:m.mqtt)==null?void 0:_.btn_ca_upload)??"Upload CA"),f[0]&4&&(c.title=((h=(d=r[2].conf)==null?void 0:d.mqtt)==null?void 0:h.title_ca)??""),e.$set(c)},i(r){l||(Z(e.$$.fragment,r),l=!0)},o(r){se(e.$$.fragment,r),l=!1},d(r){Ne(e,r)}}}function Oc(t){var n,i;let e=(((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.ca_ok)??"CA OK")+"",l;return{c(){l=C(e)},m(s,a){P(s,l,a)},p(s,a){var r,f;a[0]&4&&e!==(e=(((f=(r=s[2].conf)==null?void 0:r.mqtt)==null?void 0:f.ca_ok)??"CA OK")+"")&&q(l,e)},d(s){s&&N(l)}}}function Ic(t){let e,l;return e=new gl({props:{to:"/mqtt-cert",$$slots:{default:[Fc]},$$scope:{ctx:t}}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i[0]&4|i[4]&524288&&(s.$$scope={dirty:i,ctx:n}),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function Rc(t){let e,l,n,i,s,a,r;return l=new gl({props:{to:"/mqtt-cert",$$slots:{default:[Uc]},$$scope:{ctx:t}}}),{c(){e=p("span"),Pe(l.$$.fragment),n=v(),i=p("span"),i.textContent="🗑",u(e,"class","bd-on"),u(i,"class","bd-off")},m(f,c){P(f,e,c),Me(l,e,null),P(f,n,c),P(f,i,c),s=!0,a||(r=[ce(i,"click",t[18]),ce(i,"keypress",t[18])],a=!0)},p(f,c){const m={};c[0]&4|c[4]&524288&&(m.$$scope={dirty:c,ctx:f}),l.$set(m)},i(f){s||(Z(l.$$.fragment,f),s=!0)},o(f){se(l.$$.fragment,f),s=!1},d(f){f&&(N(e),N(n),N(i)),Ne(l),a=!1,Bt(r)}}}function Fc(t){var n,i,s,a;let e,l;return e=new un({props:{color:"blue",text:((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.btn_crt_upload)??"Upload cert",title:((a=(s=t[2].conf)==null?void 0:s.mqtt)==null?void 0:a.title_crt)??""}}),{c(){Pe(e.$$.fragment)},m(r,f){Me(e,r,f),l=!0},p(r,f){var m,_,d,h;const c={};f[0]&4&&(c.text=((_=(m=r[2].conf)==null?void 0:m.mqtt)==null?void 0:_.btn_crt_upload)??"Upload cert"),f[0]&4&&(c.title=((h=(d=r[2].conf)==null?void 0:d.mqtt)==null?void 0:h.title_crt)??""),e.$set(c)},i(r){l||(Z(e.$$.fragment,r),l=!0)},o(r){se(e.$$.fragment,r),l=!1},d(r){Ne(e,r)}}}function Uc(t){var n,i;let e=(((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.crt_ok)??"Cert OK")+"",l;return{c(){l=C(e)},m(s,a){P(s,l,a)},p(s,a){var r,f;a[0]&4&&e!==(e=(((f=(r=s[2].conf)==null?void 0:r.mqtt)==null?void 0:f.crt_ok)??"Cert OK")+"")&&q(l,e)},d(s){s&&N(l)}}}function Bc(t){let e,l;return e=new gl({props:{to:"/mqtt-key",$$slots:{default:[zc]},$$scope:{ctx:t}}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i[0]&4|i[4]&524288&&(s.$$scope={dirty:i,ctx:n}),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function jc(t){let e,l,n,i,s,a,r;return l=new gl({props:{to:"/mqtt-key",$$slots:{default:[yc]},$$scope:{ctx:t}}}),{c(){e=p("span"),Pe(l.$$.fragment),n=v(),i=p("span"),i.textContent="🗑",u(e,"class","bd-on"),u(i,"class","bd-off")},m(f,c){P(f,e,c),Me(l,e,null),P(f,n,c),P(f,i,c),s=!0,a||(r=[ce(i,"click",t[19]),ce(i,"keypress",t[19])],a=!0)},p(f,c){const m={};c[0]&4|c[4]&524288&&(m.$$scope={dirty:c,ctx:f}),l.$set(m)},i(f){s||(Z(l.$$.fragment,f),s=!0)},o(f){se(l.$$.fragment,f),s=!1},d(f){f&&(N(e),N(n),N(i)),Ne(l),a=!1,Bt(r)}}}function zc(t){var n,i,s,a;let e,l;return e=new un({props:{color:"blue",text:((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.btn_key_upload)??"Upload key",title:((a=(s=t[2].conf)==null?void 0:s.mqtt)==null?void 0:a.title_key)??""}}),{c(){Pe(e.$$.fragment)},m(r,f){Me(e,r,f),l=!0},p(r,f){var m,_,d,h;const c={};f[0]&4&&(c.text=((_=(m=r[2].conf)==null?void 0:m.mqtt)==null?void 0:_.btn_key_upload)??"Upload key"),f[0]&4&&(c.title=((h=(d=r[2].conf)==null?void 0:d.mqtt)==null?void 0:h.title_key)??""),e.$set(c)},i(r){l||(Z(e.$$.fragment,r),l=!0)},o(r){se(e.$$.fragment,r),l=!1},d(r){Ne(e,r)}}}function yc(t){var n,i;let e=(((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.key_ok)??"Key OK")+"",l;return{c(){l=C(e)},m(s,a){P(s,l,a)},p(s,a){var r,f;a[0]&4&&e!==(e=(((f=(r=s[2].conf)==null?void 0:r.mqtt)==null?void 0:f.key_ok)??"Key OK")+"")&&q(l,e)},d(s){s&&N(l)}}}function ga(t){var Q,ne,re,ue,ie,pe,ae,J,$,ke,we,D;let e,l,n=(((re=(ne=(Q=t[2].conf)==null?void 0:Q.mqtt)==null?void 0:ne.domoticz)==null?void 0:re.title)??"Domoticz")+"",i,s,a,r,f,c,m,_,d=(((pe=(ie=(ue=t[2].conf)==null?void 0:ue.mqtt)==null?void 0:ie.domoticz)==null?void 0:pe.eidx)??"Electricity IDX")+"",h,b,g,w,k,O,L=((($=(J=(ae=t[2].conf)==null?void 0:ae.mqtt)==null?void 0:J.domoticz)==null?void 0:$.cidx)??"Current IDX")+"",R,M,I,F,j,V,y=(((D=(we=(ke=t[2].conf)==null?void 0:ke.mqtt)==null?void 0:we.domoticz)==null?void 0:D.vidx)??"Voltage IDX")+"",T,B,X,H,K,Y,U,G,oe,le;return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),_=p("div"),h=C(d),b=p("br"),g=v(),w=p("input"),k=v(),O=p("div"),R=C(L),M=p("br"),I=v(),F=p("input"),j=v(),V=p("div"),T=C(y),B=C(`: L1, L2 & L3 - `),X=p("div"),H=p("input"),K=v(),Y=p("input"),U=v(),G=p("input"),u(l,"class","text-sm"),u(a,"href",hl("MQTT-configuration#domoticz")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","o"),f.value="true",u(w,"name","oe"),u(w,"type","text"),u(w,"class","in-f tr w-full"),u(w,"pattern",In),u(_,"class","w-1/2"),u(F,"name","oc"),u(F,"type","text"),u(F,"class","in-l tr w-full"),u(F,"pattern",In),u(O,"class","w-1/2"),u(m,"class","my-1 flex"),u(H,"name","ou1"),u(H,"type","text"),u(H,"class","in-f tr w-1/3"),u(H,"pattern",In),u(Y,"name","ou2"),u(Y,"type","text"),u(Y,"class","in-m tr w-1/3"),u(Y,"pattern",In),u(G,"name","ou3"),u(G,"type","text"),u(G,"class","in-l tr w-1/3"),u(G,"pattern",In),u(X,"class","flex"),u(V,"class","my-1"),u(e,"class","cnt")},m(S,A){P(S,e,A),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(e,c),o(e,m),o(m,_),o(_,h),o(_,b),o(_,g),o(_,w),z(w,t[6].o.e),o(m,k),o(m,O),o(O,R),o(O,M),o(O,I),o(O,F),z(F,t[6].o.c),o(e,j),o(e,V),o(V,T),o(V,B),o(V,X),o(X,H),z(H,t[6].o.u1),o(X,K),o(X,Y),z(Y,t[6].o.u2),o(X,U),o(X,G),z(G,t[6].o.u3),oe||(le=[ce(w,"input",t[84]),ce(F,"input",t[85]),ce(H,"input",t[86]),ce(Y,"input",t[87]),ce(G,"input",t[88])],oe=!0)},p(S,A){var E,W,ee,fe,_e,he,x,ve,ge,De,Te,Le;A[0]&4&&n!==(n=(((ee=(W=(E=S[2].conf)==null?void 0:E.mqtt)==null?void 0:W.domoticz)==null?void 0:ee.title)??"Domoticz")+"")&&q(i,n),A[0]&4&&d!==(d=(((he=(_e=(fe=S[2].conf)==null?void 0:fe.mqtt)==null?void 0:_e.domoticz)==null?void 0:he.eidx)??"Electricity IDX")+"")&&q(h,d),A[0]&64&&w.value!==S[6].o.e&&z(w,S[6].o.e),A[0]&4&&L!==(L=(((ge=(ve=(x=S[2].conf)==null?void 0:x.mqtt)==null?void 0:ve.domoticz)==null?void 0:ge.cidx)??"Current IDX")+"")&&q(R,L),A[0]&64&&F.value!==S[6].o.c&&z(F,S[6].o.c),A[0]&4&&y!==(y=(((Le=(Te=(De=S[2].conf)==null?void 0:De.mqtt)==null?void 0:Te.domoticz)==null?void 0:Le.vidx)??"Voltage IDX")+"")&&q(T,y),A[0]&64&&H.value!==S[6].o.u1&&z(H,S[6].o.u1),A[0]&64&&Y.value!==S[6].o.u2&&z(Y,S[6].o.u2),A[0]&64&&G.value!==S[6].o.u3&&z(G,S[6].o.u3)},d(S){S&&N(e),oe=!1,Bt(le)}}}function ka(t){var U,G,oe,le,Q,ne,re,ue,ie,pe,ae,J;let e,l,n=(((oe=(G=(U=t[2].conf)==null?void 0:U.mqtt)==null?void 0:G.ha)==null?void 0:oe.title)??"Home-Assistant")+"",i,s,a,r,f,c,m,_=(((ne=(Q=(le=t[2].conf)==null?void 0:le.mqtt)==null?void 0:Q.ha)==null?void 0:ne.discovery)??"Discovery topic prefix")+"",d,h,b,g,w,k,O=(((ie=(ue=(re=t[2].conf)==null?void 0:re.mqtt)==null?void 0:ue.ha)==null?void 0:ie.hostname)??"Hostname for URL")+"",L,R,M,I,F,j,V,y=(((J=(ae=(pe=t[2].conf)==null?void 0:pe.mqtt)==null?void 0:ae.ha)==null?void 0:J.tag)??"Name tag")+"",T,B,X,H,K,Y;return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),d=C(_),h=p("br"),b=v(),g=p("input"),w=v(),k=p("div"),L=C(O),R=p("br"),M=v(),I=p("input"),j=v(),V=p("div"),T=C(y),B=p("br"),X=v(),H=p("input"),u(l,"class","text-sm"),u(a,"href",hl("MQTT-configuration#home-assistant")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","h"),f.value="true",u(g,"name","ht"),u(g,"type","text"),u(g,"class","in-s"),u(g,"placeholder","homeassistant"),u(g,"pattern",Rl),u(m,"class","my-1"),u(I,"name","hh"),u(I,"type","text"),u(I,"class","in-s"),u(I,"placeholder",F=t[6].g.h+".local"),u(I,"pattern",Rl),u(k,"class","my-1"),u(H,"name","hn"),u(H,"type","text"),u(H,"class","in-s"),u(H,"pattern",Rl),u(V,"class","my-1"),u(e,"class","cnt")},m($,ke){P($,e,ke),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(e,c),o(e,m),o(m,d),o(m,h),o(m,b),o(m,g),z(g,t[6].h.t),o(e,w),o(e,k),o(k,L),o(k,R),o(k,M),o(k,I),z(I,t[6].h.h),o(e,j),o(e,V),o(V,T),o(V,B),o(V,X),o(V,H),z(H,t[6].h.n),K||(Y=[ce(g,"input",t[89]),ce(I,"input",t[90]),ce(H,"input",t[91])],K=!0)},p($,ke){var we,D,S,A,E,W,ee,fe,_e,he,x,ve;ke[0]&4&&n!==(n=(((S=(D=(we=$[2].conf)==null?void 0:we.mqtt)==null?void 0:D.ha)==null?void 0:S.title)??"Home-Assistant")+"")&&q(i,n),ke[0]&4&&_!==(_=(((W=(E=(A=$[2].conf)==null?void 0:A.mqtt)==null?void 0:E.ha)==null?void 0:W.discovery)??"Discovery topic prefix")+"")&&q(d,_),ke[0]&64&&g.value!==$[6].h.t&&z(g,$[6].h.t),ke[0]&4&&O!==(O=(((_e=(fe=(ee=$[2].conf)==null?void 0:ee.mqtt)==null?void 0:fe.ha)==null?void 0:_e.hostname)??"Hostname for URL")+"")&&q(L,O),ke[0]&64&&F!==(F=$[6].g.h+".local")&&u(I,"placeholder",F),ke[0]&64&&I.value!==$[6].h.h&&z(I,$[6].h.h),ke[0]&4&&y!==(y=(((ve=(x=(he=$[2].conf)==null?void 0:he.mqtt)==null?void 0:x.ha)==null?void 0:ve.tag)??"Name tag")+"")&&q(T,y),ke[0]&64&&H.value!==$[6].h.n&&z(H,$[6].h.n)},d($){$&&N(e),K=!1,Bt(Y)}}}function wa(t){var T,B,X,H,K,Y,U,G,oe,le;let e,l,n=(((B=(T=t[2].conf)==null?void 0:T.cloud)==null?void 0:B.title)??"Cloud connections")+"",i,s,a,r,f,c,m=(H=(X=t[0])==null?void 0:X.features)==null?void 0:H.includes("cloud"),_,d,h,b,g,w=(((Y=(K=t[2].conf)==null?void 0:K.cloud)==null?void 0:Y.es)??"Energy Speedometer")+"",k,O,L,R=(G=(U=t[0])==null?void 0:U.features)==null?void 0:G.includes("zc"),M,I,F,j=m&&Ca(t),V=((le=(oe=t[6])==null?void 0:oe.c)==null?void 0:le.es)&&Pa(t),y=R&&qa(t);return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),j&&j.c(),_=v(),d=p("div"),h=p("label"),b=p("input"),g=v(),k=C(w),O=v(),V&&V.c(),L=v(),y&&y.c(),u(l,"class","text-sm"),u(a,"href",hl("Cloud")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","c"),f.value="true",u(b,"type","checkbox"),u(b,"class","rounded mb-1"),u(b,"name","ces"),b.__value="true",z(b,b.__value),u(d,"class","my-1"),u(e,"class","cnt")},m(Q,ne){P(Q,e,ne),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(e,c),j&&j.m(e,null),o(e,_),o(e,d),o(d,h),o(h,b),b.checked=t[6].c.es,o(h,g),o(h,k),o(d,O),V&&V.m(d,null),o(e,L),y&&y.m(e,null),M=!0,I||(F=ce(b,"change",t[94]),I=!0)},p(Q,ne){var re,ue,ie,pe,ae,J,$,ke,we,D;(!M||ne[0]&4)&&n!==(n=(((ue=(re=Q[2].conf)==null?void 0:re.cloud)==null?void 0:ue.title)??"Cloud connections")+"")&&q(i,n),ne[0]&1&&(m=(pe=(ie=Q[0])==null?void 0:ie.features)==null?void 0:pe.includes("cloud")),m?j?j.p(Q,ne):(j=Ca(Q),j.c(),j.m(e,_)):j&&(j.d(1),j=null),ne[0]&64&&(b.checked=Q[6].c.es),(!M||ne[0]&4)&&w!==(w=(((J=(ae=Q[2].conf)==null?void 0:ae.cloud)==null?void 0:J.es)??"Energy Speedometer")+"")&&q(k,w),(ke=($=Q[6])==null?void 0:$.c)!=null&&ke.es?V?(V.p(Q,ne),ne[0]&64&&Z(V,1)):(V=Pa(Q),V.c(),Z(V,1),V.m(d,null)):V&&(ht(),se(V,1,1,()=>{V=null}),vt()),ne[0]&1&&(R=(D=(we=Q[0])==null?void 0:we.features)==null?void 0:D.includes("zc")),R?y?y.p(Q,ne):(y=qa(Q),y.c(),y.m(e,null)):y&&(y.d(1),y=null)},i(Q){M||(Z(V),M=!0)},o(Q){se(V),M=!1},d(Q){Q&&N(e),j&&j.d(),V&&V.d(),y&&y.d(),I=!1,F()}}}function Ca(t){var _,d;let e,l,n,i,s=(((d=(_=t[2].conf)==null?void 0:_.cloud)==null?void 0:d.ams)??"AMS reader cloud")+"",a,r,f,c,m=t[6].c.e&&Sa(t);return{c(){e=p("div"),l=p("label"),n=p("input"),i=v(),a=C(s),r=v(),m&&m.c(),u(n,"type","checkbox"),u(n,"name","ce"),n.__value="true",z(n,n.__value),u(n,"class","rounded mb-1"),u(e,"class","my-1")},m(h,b){P(h,e,b),o(e,l),o(l,n),n.checked=t[6].c.e,o(l,i),o(l,a),o(e,r),m&&m.m(e,null),f||(c=ce(n,"change",t[92]),f=!0)},p(h,b){var g,w;b[0]&64&&(n.checked=h[6].c.e),b[0]&4&&s!==(s=(((w=(g=h[2].conf)==null?void 0:g.cloud)==null?void 0:w.ams)??"AMS reader cloud")+"")&&q(a,s),h[6].c.e?m?m.p(h,b):(m=Sa(h),m.c(),m.m(e,null)):m&&(m.d(1),m=null)},d(h){h&&N(e),m&&m.d(),f=!1,c()}}}function Sa(t){let e,l,n,i,s,a,r,f,c,m,_=t[6].c.p==0&&Ma(),d=t[5]&&Na(t);return{c(){e=p("div"),l=p("label"),l.textContent="Protocol",n=v(),i=p("select"),_&&_.c(),s=p("option"),s.textContent="TCP",a=p("option"),a.textContent="HTTP",r=v(),d&&d.c(),f=yt(),u(l,"for","cp"),s.__value=1,z(s,s.__value),a.__value=2,z(a,a.__value),u(i,"name","cp"),u(i,"class","in-s"),t[6].c.p===void 0&&At(()=>t[93].call(i)),u(e,"class","ml-6")},m(h,b){P(h,e,b),o(e,l),o(e,n),o(e,i),_&&_.m(i,null),o(i,s),o(i,a),Ke(i,t[6].c.p,!0),P(h,r,b),d&&d.m(h,b),P(h,f,b),c||(m=ce(i,"change",t[93]),c=!0)},p(h,b){h[6].c.p==0?_||(_=Ma(),_.c(),_.m(i,s)):_&&(_.d(1),_=null),b[0]&64&&Ke(i,h[6].c.p),h[5]?d?d.p(h,b):(d=Na(h),d.c(),d.m(f.parentNode,f)):d&&(d.d(1),d=null)},d(h){h&&(N(e),N(r),N(f)),_&&_.d(),d&&d.d(h),c=!1,m()}}}function Ma(t){let e;return{c(){e=p("option"),e.textContent="UDP",e.__value=0,z(e,e.__value),u(e,"title","No longer recommended")},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function Na(t){let e,l,n;return{c(){e=p("button"),e.textContent="Connect device to my cloud account",u(e,"type","button"),u(e,"class","text-blue-500 ml-6")},m(i,s){P(i,e,s),l||(n=ce(e,"click",t[23]),l=!0)},p:We,d(i){i&&N(e),l=!1,n()}}}function Pa(t){let e,l,n=t[0].mac+"",i,s,a,r,f=(t[0].meter.id?t[0].meter.id:"missing, required")+"",c,m,_,d,h=t[0].mac&&t[0].meter.id&&Ta(t);return{c(){e=p("div"),l=C("MAC: "),i=C(n),s=v(),a=p("div"),r=C("Meter ID: "),c=C(f),m=v(),h&&h.c(),_=yt(),u(e,"class","pl-5"),u(a,"class","pl-5")},m(b,g){P(b,e,g),o(e,l),o(e,i),P(b,s,g),P(b,a,g),o(a,r),o(a,c),P(b,m,g),h&&h.m(b,g),P(b,_,g),d=!0},p(b,g){(!d||g[0]&1)&&n!==(n=b[0].mac+"")&&q(i,n),(!d||g[0]&1)&&f!==(f=(b[0].meter.id?b[0].meter.id:"missing, required")+"")&&q(c,f),b[0].mac&&b[0].meter.id?h?(h.p(b,g),g[0]&1&&Z(h,1)):(h=Ta(b),h.c(),Z(h,1),h.m(_.parentNode,_)):h&&(ht(),se(h,1,1,()=>{h=null}),vt())},i(b){d||(Z(h),d=!0)},o(b){se(h),d=!1},d(b){b&&(N(e),N(s),N(a),N(m),N(_)),h&&h.d(b)}}}function Ta(t){let e,l,n;return l=new kc({props:{value:'{"mac":"'+t[0].mac+'","meter":"'+t[0].meter.id+'"}'}}),{c(){e=p("div"),Pe(l.$$.fragment),u(e,"class","pl-2")},m(i,s){P(i,e,s),Me(l,e,null),n=!0},p(i,s){const a={};s[0]&1&&(a.value='{"mac":"'+i[0].mac+'","meter":"'+i[0].meter.id+'"}'),l.$set(a)},i(i){n||(Z(l.$$.fragment,i),n=!0)},o(i){se(l.$$.fragment,i),n=!1},d(i){i&&N(e),Ne(l)}}}function qa(t){let e,l,n,i,s,a,r,f,c=t[6].c.ze&&Ea(t);return{c(){e=p("div"),l=p("label"),n=p("input"),i=C(" ZmartCharge"),s=v(),c&&c.c(),a=yt(),u(n,"type","checkbox"),u(n,"name","cze"),n.__value="true",z(n,n.__value),u(n,"class","rounded mb-1"),u(e,"class","my-1")},m(m,_){P(m,e,_),o(e,l),o(l,n),n.checked=t[6].c.ze,o(l,i),P(m,s,_),c&&c.m(m,_),P(m,a,_),r||(f=ce(n,"change",t[95]),r=!0)},p(m,_){_[0]&64&&(n.checked=m[6].c.ze),m[6].c.ze?c?c.p(m,_):(c=Ea(m),c.c(),c.m(a.parentNode,a)):c&&(c.d(1),c=null)},d(m){m&&(N(e),N(s),N(a)),c&&c.d(m),r=!1,f()}}}function Ea(t){let e,l,n,i;return{c(){e=p("div"),l=p("input"),u(l,"name","czt"),u(l,"type","text"),u(l,"class","in-s"),u(l,"placeholder","ZmartCharge token"),u(e,"class","my-1")},m(s,a){P(s,e,a),o(e,l),z(l,t[6].c.zt),n||(i=ce(l,"input",t[96]),n=!0)},p(s,a){a[0]&64&&l.value!==s[6].c.zt&&z(l,s[6].c.zt)},d(s){s&&N(e),n=!1,i()}}}function Da(t){var y,T,B,X,H;let e,l,n=(((T=(y=t[2].conf)==null?void 0:y.thresholds)==null?void 0:T.title)??"Thresholds")+"",i,s,a,r,f,c,m,_,d,h,b=(((X=(B=t[2].conf)==null?void 0:B.thresholds)==null?void 0:X.avg)??"Average of")+"",g,w,k,O,L,R=(((H=t[2].common)==null?void 0:H.hours)??"hours")+"",M,I,F,j=ut({length:9}),V=[];for(let K=0;Kt[100].call(w)),u(d,"class","w-1/2"),u(m,"class","flex flex-wrap"),u(e,"class","cnt")},m(T,B){P(T,e,B),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(e,c),o(e,m);for(let X=0;X20&&Fa(t),d=((O=(k=(w=t[6])==null?void 0:w.i)==null?void 0:k.d)==null?void 0:O.d)>0&&ja(t),h=t[0].chip=="esp8266"&&za(t);return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("a"),a.textContent="ⓘ",r=v(),_&&_.c(),f=v(),d&&d.c(),c=v(),h&&h.c(),u(l,"class","text-sm"),u(a,"href",hl("GPIO-configuration")),u(a,"target","_blank"),u(a,"class","float-right"),u(e,"class","cnt")},m(L,R){P(L,e,R),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),_&&_.m(e,null),o(e,f),d&&d.m(e,null),o(e,c),h&&h.m(e,null),m=!0},p(L,R){var M,I,F,j,V;(!m||R[0]&4)&&n!==(n=(((I=(M=L[2].conf)==null?void 0:M.hw)==null?void 0:I.title)??"Hardware")+"")&&q(i,n),L[0].board>20?_?(_.p(L,R),R[0]&1&&Z(_,1)):(_=Fa(L),_.c(),Z(_,1),_.m(e,f)):_&&(ht(),se(_,1,1,()=>{_=null}),vt()),((V=(j=(F=L[6])==null?void 0:F.i)==null?void 0:j.d)==null?void 0:V.d)>0?d?d.p(L,R):(d=ja(L),d.c(),d.m(e,c)):d&&(d.d(1),d=null),L[0].chip=="esp8266"?h?h.p(L,R):(h=za(L),h.c(),h.m(e,null)):h&&(h.d(1),h=null)},i(L){m||(Z(_),m=!0)},o(L){se(_),m=!1},d(L){L&&N(e),_&&_.d(),d&&d.d(),h&&h.d()}}}function Fa(t){var Dt,Gt,Ct,lt,Ht,Kt,jt,Wt,Qt,Zt,Jt,$t,Ie,tt,it,Ot,Nt,xe,zt,_t,mt,de,Re,ye,nl,Ut,Et,il,sl,ol,al,fl,Ae;let e,l,n,i,s=(((Ct=(Gt=(Dt=t[2].conf)==null?void 0:Dt.hw)==null?void 0:Gt.han)==null?void 0:Ct.rx)??"HAN RX")+"",a,r,f,c,m,_,d,h=(((Kt=(Ht=(lt=t[2].conf)==null?void 0:lt.hw)==null?void 0:Ht.han)==null?void 0:Kt.tx)??"HAN TX")+"",b,g,w,k,O,L,R,M,I,F,j=(((Qt=(Wt=(jt=t[2].conf)==null?void 0:jt.hw)==null?void 0:Wt.han)==null?void 0:Qt.pullup)??"pullup")+"",V,y,T,B,X=(((Jt=(Zt=t[2].conf)==null?void 0:Zt.hw)==null?void 0:Jt.ap_btn)??"AP button")+"",H,K,Y,U,G,oe,le=(((tt=(Ie=($t=t[2].conf)==null?void 0:$t.hw)==null?void 0:Ie.led)==null?void 0:tt.title)??"LED")+"",Q,ne,re,ue,ie,pe,ae,J,$,ke,we=(((Nt=(Ot=(it=t[2].conf)==null?void 0:it.hw)==null?void 0:Ot.led)==null?void 0:Nt.inverted)??"inverted")+"",D,S,A,E=(((_t=(zt=(xe=t[2].conf)==null?void 0:xe.hw)==null?void 0:zt.led)==null?void 0:_t.rgb)??"RGB")+"",W,ee,fe,_e,he=(((Re=(de=(mt=t[2].conf)==null?void 0:mt.hw)==null?void 0:de.led)==null?void 0:Re.inverted)??"inverted")+"",x,ve,ge,De,Te,Le,Oe,Ee,Ue,Xe,kt,$e,st=(((Ut=(nl=(ye=t[2].conf)==null?void 0:ye.hw)==null?void 0:nl.led)==null?void 0:Ut.disable)??"LED dis. GPIO")+"",Mt,pt,ot,nt,at,Lt=(((il=(Et=t[2].conf)==null?void 0:Et.hw)==null?void 0:il.temp)??"Temperature")+"",Ge,Fe,ze,et,be,qe,Ye=(((ol=(sl=t[2].conf)==null?void 0:sl.hw)==null?void 0:ol.temp_analog)??"Analog temp")+"",me,Ce,ft,Ve,Ft,bt,Be,gt,rt;m=new yi({props:{chip:t[0].chip}}),O=new yi({props:{chip:t[0].chip}});let ct=t[0].chip!="esp8266"&&Ua(t),Ze=((Ae=(fl=(al=t[6])==null?void 0:al.i)==null?void 0:fl.v)==null?void 0:Ae.p)>0&&Ba(t);return{c(){e=p("input"),l=v(),n=p("div"),i=p("div"),a=C(s),r=p("br"),f=v(),c=p("select"),Pe(m.$$.fragment),_=v(),d=p("div"),b=C(h),g=p("br"),w=v(),k=p("select"),Pe(O.$$.fragment),L=v(),R=p("div"),M=p("label"),I=p("input"),F=v(),V=C(j),y=v(),T=p("div"),B=p("div"),H=C(X),K=p("br"),Y=v(),U=p("input"),G=v(),oe=p("div"),Q=C(le),ne=p("br"),re=v(),ue=p("div"),ie=p("input"),pe=v(),ae=p("div"),J=p("label"),$=p("input"),ke=v(),D=C(we),S=v(),A=p("div"),W=C(E),ee=p("label"),fe=p("input"),_e=v(),x=C(he),ve=p("br"),ge=v(),De=p("div"),Te=p("input"),Le=v(),Oe=p("input"),Ee=v(),Ue=p("input"),Xe=v(),kt=p("div"),$e=p("div"),Mt=C(st),pt=v(),ot=p("input"),nt=v(),at=p("div"),Ge=C(Lt),Fe=p("br"),ze=v(),et=p("input"),be=v(),qe=p("div"),me=C(Ye),Ce=p("br"),ft=v(),Ve=p("input"),Ft=v(),ct&&ct.c(),bt=v(),Ze&&Ze.c(),u(e,"type","hidden"),u(e,"name","i"),e.value="true",u(c,"name","ihp"),u(c,"class","in-f w-full"),t[6].i.h.p===void 0&&At(()=>t[101].call(c)),u(i,"class","w-1/3"),u(k,"name","iht"),u(k,"class","in-l w-full"),t[6].i.h.t===void 0&&At(()=>t[102].call(k)),u(d,"class","w-1/3"),u(I,"name","ihu"),I.__value="true",z(I,I.__value),u(I,"type","checkbox"),u(I,"class","rounded mb-1"),u(M,"class","ml-2"),u(R,"class","w-1/3"),u(n,"class","flex flex-wrap"),u(U,"name","ia"),u(U,"type","number"),u(U,"min","0"),u(U,"max",t[12]),u(U,"class","in-f tr w-full"),u(B,"class","w-1/3"),u(ie,"name","ilp"),u(ie,"type","number"),u(ie,"min","0"),u(ie,"max",t[12]),u(ie,"class","in-l tr w-full"),u(ue,"class","flex"),u(oe,"class","w-1/3"),u($,"name","ili"),$.__value="true",z($,$.__value),u($,"type","checkbox"),u($,"class","rounded mb-1"),u(J,"class","ml-4"),u(ae,"class","w-1/3"),u(fe,"name","iri"),fe.__value="true",z(fe,fe.__value),u(fe,"type","checkbox"),u(fe,"class","rounded mb-1"),u(ee,"class","ml-4"),u(Te,"name","irr"),u(Te,"type","number"),u(Te,"min","0"),u(Te,"max",t[12]),u(Te,"class","in-f tr w-1/3"),u(Oe,"name","irg"),u(Oe,"type","number"),u(Oe,"min","0"),u(Oe,"max",t[12]),u(Oe,"class","in-m tr w-1/3"),u(Ue,"name","irb"),u(Ue,"type","number"),u(Ue,"min","0"),u(Ue,"max",t[12]),u(Ue,"class","in-l tr w-1/3"),u(De,"class","flex"),u(A,"class","w-full"),u(ot,"name","idd"),u(ot,"type","number"),u(ot,"min","0"),u(ot,"max",t[12]),u(ot,"class","in-s tr"),u($e,"class","my-1 pr-1 w-1/3"),u(kt,"class","w-full"),u(et,"name","itd"),u(et,"type","number"),u(et,"min","0"),u(et,"max",t[12]),u(et,"class","in-f tr w-full"),u(at,"class","my-1 w-1/3"),u(Ve,"name","ita"),u(Ve,"type","number"),u(Ve,"min","0"),u(Ve,"max",t[12]),u(Ve,"class","in-l tr w-full"),u(qe,"class","my-1 pr-1 w-1/3"),u(T,"class","flex flex-wrap")},m(te,Se){P(te,e,Se),P(te,l,Se),P(te,n,Se),o(n,i),o(i,a),o(i,r),o(i,f),o(i,c),Me(m,c,null),Ke(c,t[6].i.h.p,!0),o(n,_),o(n,d),o(d,b),o(d,g),o(d,w),o(d,k),Me(O,k,null),Ke(k,t[6].i.h.t,!0),o(n,L),o(n,R),o(R,M),o(M,I),I.checked=t[6].i.h.u,o(M,F),o(M,V),P(te,y,Se),P(te,T,Se),o(T,B),o(B,H),o(B,K),o(B,Y),o(B,U),z(U,t[6].i.a),o(T,G),o(T,oe),o(oe,Q),o(oe,ne),o(oe,re),o(oe,ue),o(ue,ie),z(ie,t[6].i.l.p),o(T,pe),o(T,ae),o(ae,J),o(J,$),$.checked=t[6].i.l.i,o(J,ke),o(J,D),o(T,S),o(T,A),o(A,W),o(A,ee),o(ee,fe),fe.checked=t[6].i.r.i,o(ee,_e),o(ee,x),o(A,ve),o(A,ge),o(A,De),o(De,Te),z(Te,t[6].i.r.r),o(De,Le),o(De,Oe),z(Oe,t[6].i.r.g),o(De,Ee),o(De,Ue),z(Ue,t[6].i.r.b),o(T,Xe),o(T,kt),o(kt,$e),o($e,Mt),o($e,pt),o($e,ot),z(ot,t[6].i.d.d),o(T,nt),o(T,at),o(at,Ge),o(at,Fe),o(at,ze),o(at,et),z(et,t[6].i.t.d),o(T,be),o(T,qe),o(qe,me),o(qe,Ce),o(qe,ft),o(qe,Ve),z(Ve,t[6].i.t.a),o(T,Ft),ct&&ct.m(T,null),o(T,bt),Ze&&Ze.m(T,null),Be=!0,gt||(rt=[ce(c,"change",t[101]),ce(k,"change",t[102]),ce(I,"change",t[103]),ce(U,"input",t[104]),ce(ie,"input",t[105]),ce($,"change",t[106]),ce(fe,"change",t[107]),ce(Te,"input",t[108]),ce(Oe,"input",t[109]),ce(Ue,"input",t[110]),ce(ot,"input",t[111]),ce(et,"input",t[112]),ce(Ve,"input",t[113])],gt=!0)},p(te,Se){var cl,dl,ll,vl,bl,Nl,Pl,Fl,Ul,Bl,jl,Je,It,rl,zl,yl,Hl,Wl,Gl,Vl,He,dt,Kl,Yl,Ql,Xl,Zl,Jl,$l,xl,en,tn,ln;(!Be||Se[0]&4)&&s!==(s=(((ll=(dl=(cl=te[2].conf)==null?void 0:cl.hw)==null?void 0:dl.han)==null?void 0:ll.rx)??"HAN RX")+"")&&q(a,s);const Pt={};Se[0]&1&&(Pt.chip=te[0].chip),m.$set(Pt),Se[0]&64&&Ke(c,te[6].i.h.p),(!Be||Se[0]&4)&&h!==(h=(((Nl=(bl=(vl=te[2].conf)==null?void 0:vl.hw)==null?void 0:bl.han)==null?void 0:Nl.tx)??"HAN TX")+"")&&q(b,h);const xt={};Se[0]&1&&(xt.chip=te[0].chip),O.$set(xt),Se[0]&64&&Ke(k,te[6].i.h.t),Se[0]&64&&(I.checked=te[6].i.h.u),(!Be||Se[0]&4)&&j!==(j=(((Ul=(Fl=(Pl=te[2].conf)==null?void 0:Pl.hw)==null?void 0:Fl.han)==null?void 0:Ul.pullup)??"pullup")+"")&&q(V,j),(!Be||Se[0]&4)&&X!==(X=(((jl=(Bl=te[2].conf)==null?void 0:Bl.hw)==null?void 0:jl.ap_btn)??"AP button")+"")&&q(H,X),(!Be||Se[0]&4096)&&u(U,"max",te[12]),Se[0]&64&&je(U.value)!==te[6].i.a&&z(U,te[6].i.a),(!Be||Se[0]&4)&&le!==(le=(((rl=(It=(Je=te[2].conf)==null?void 0:Je.hw)==null?void 0:It.led)==null?void 0:rl.title)??"LED")+"")&&q(Q,le),(!Be||Se[0]&4096)&&u(ie,"max",te[12]),Se[0]&64&&je(ie.value)!==te[6].i.l.p&&z(ie,te[6].i.l.p),Se[0]&64&&($.checked=te[6].i.l.i),(!Be||Se[0]&4)&&we!==(we=(((Hl=(yl=(zl=te[2].conf)==null?void 0:zl.hw)==null?void 0:yl.led)==null?void 0:Hl.inverted)??"inverted")+"")&&q(D,we),(!Be||Se[0]&4)&&E!==(E=(((Vl=(Gl=(Wl=te[2].conf)==null?void 0:Wl.hw)==null?void 0:Gl.led)==null?void 0:Vl.rgb)??"RGB")+"")&&q(W,E),Se[0]&64&&(fe.checked=te[6].i.r.i),(!Be||Se[0]&4)&&he!==(he=(((Kl=(dt=(He=te[2].conf)==null?void 0:He.hw)==null?void 0:dt.led)==null?void 0:Kl.inverted)??"inverted")+"")&&q(x,he),(!Be||Se[0]&4096)&&u(Te,"max",te[12]),Se[0]&64&&je(Te.value)!==te[6].i.r.r&&z(Te,te[6].i.r.r),(!Be||Se[0]&4096)&&u(Oe,"max",te[12]),Se[0]&64&&je(Oe.value)!==te[6].i.r.g&&z(Oe,te[6].i.r.g),(!Be||Se[0]&4096)&&u(Ue,"max",te[12]),Se[0]&64&&je(Ue.value)!==te[6].i.r.b&&z(Ue,te[6].i.r.b),(!Be||Se[0]&4)&&st!==(st=(((Xl=(Ql=(Yl=te[2].conf)==null?void 0:Yl.hw)==null?void 0:Ql.led)==null?void 0:Xl.disable)??"LED dis. GPIO")+"")&&q(Mt,st),(!Be||Se[0]&4096)&&u(ot,"max",te[12]),Se[0]&64&&je(ot.value)!==te[6].i.d.d&&z(ot,te[6].i.d.d),(!Be||Se[0]&4)&&Lt!==(Lt=(((Jl=(Zl=te[2].conf)==null?void 0:Zl.hw)==null?void 0:Jl.temp)??"Temperature")+"")&&q(Ge,Lt),(!Be||Se[0]&4096)&&u(et,"max",te[12]),Se[0]&64&&je(et.value)!==te[6].i.t.d&&z(et,te[6].i.t.d),(!Be||Se[0]&4)&&Ye!==(Ye=(((xl=($l=te[2].conf)==null?void 0:$l.hw)==null?void 0:xl.temp_analog)??"Analog temp")+"")&&q(me,Ye),(!Be||Se[0]&4096)&&u(Ve,"max",te[12]),Se[0]&64&&je(Ve.value)!==te[6].i.t.a&&z(Ve,te[6].i.t.a),te[0].chip!="esp8266"?ct?ct.p(te,Se):(ct=Ua(te),ct.c(),ct.m(T,bt)):ct&&(ct.d(1),ct=null),((ln=(tn=(en=te[6])==null?void 0:en.i)==null?void 0:tn.v)==null?void 0:ln.p)>0?Ze?Ze.p(te,Se):(Ze=Ba(te),Ze.c(),Ze.m(T,null)):Ze&&(Ze.d(1),Ze=null)},i(te){Be||(Z(m.$$.fragment,te),Z(O.$$.fragment,te),Be=!0)},o(te){se(m.$$.fragment,te),se(O.$$.fragment,te),Be=!1},d(te){te&&(N(e),N(l),N(n),N(y),N(T)),Ne(m),Ne(O),ct&&ct.d(),Ze&&Ze.d(),gt=!1,Bt(rt)}}}function Ua(t){var c,m,_;let e,l=(((_=(m=(c=t[2].conf)==null?void 0:c.hw)==null?void 0:m.vcc)==null?void 0:_.title)??"Vcc")+"",n,i,s,a,r,f;return{c(){e=p("div"),n=C(l),i=p("br"),s=v(),a=p("input"),u(a,"name","ivp"),u(a,"type","number"),u(a,"min","0"),u(a,"max",t[12]),u(a,"class","in-s tr w-full"),u(e,"class","my-1 pl-1 w-1/3")},m(d,h){P(d,e,h),o(e,n),o(e,i),o(e,s),o(e,a),z(a,t[6].i.v.p),r||(f=ce(a,"input",t[114]),r=!0)},p(d,h){var b,g,w;h[0]&4&&l!==(l=(((w=(g=(b=d[2].conf)==null?void 0:b.hw)==null?void 0:g.vcc)==null?void 0:w.title)??"Vcc")+"")&&q(n,l),h[0]&4096&&u(a,"max",d[12]),h[0]&64&&je(a.value)!==d[6].i.v.p&&z(a,d[6].i.v.p)},d(d){d&&N(e),r=!1,f()}}}function Ba(t){var b,g,w;let e,l=(((w=(g=(b=t[2].conf)==null?void 0:b.hw)==null?void 0:g.vcc)==null?void 0:w.divider)??"Voltage divider")+"",n,i,s,a,r,f,c,m,_,d,h;return{c(){var k,O,L,R,M,I;e=p("div"),n=C(l),i=p("br"),s=v(),a=p("div"),r=p("input"),c=v(),m=p("input"),u(r,"name","ivdv"),u(r,"type","number"),u(r,"min","0"),u(r,"max","65535"),u(r,"class","in-f tr w-full"),u(r,"placeholder",f=((L=(O=(k=t[2].conf)==null?void 0:k.hw)==null?void 0:O.vcc)==null?void 0:L.div_vcc)??"VCC"),u(m,"name","ivdg"),u(m,"type","number"),u(m,"min","0"),u(m,"max","65535"),u(m,"class","in-l tr w-full"),u(m,"placeholder",_=((I=(M=(R=t[2].conf)==null?void 0:R.hw)==null?void 0:M.vcc)==null?void 0:I.div_gnd)??"GND"),u(a,"class","flex"),u(e,"class","my-1")},m(k,O){P(k,e,O),o(e,n),o(e,i),o(e,s),o(e,a),o(a,r),z(r,t[6].i.v.d.v),o(a,c),o(a,m),z(m,t[6].i.v.d.g),d||(h=[ce(r,"input",t[115]),ce(m,"input",t[116])],d=!0)},p(k,O){var L,R,M,I,F,j,V,y,T;O[0]&4&&l!==(l=(((M=(R=(L=k[2].conf)==null?void 0:L.hw)==null?void 0:R.vcc)==null?void 0:M.divider)??"Voltage divider")+"")&&q(n,l),O[0]&4&&f!==(f=((j=(F=(I=k[2].conf)==null?void 0:I.hw)==null?void 0:F.vcc)==null?void 0:j.div_vcc)??"VCC")&&u(r,"placeholder",f),O[0]&64&&je(r.value)!==k[6].i.v.d.v&&z(r,k[6].i.v.d.v),O[0]&4&&_!==(_=((T=(y=(V=k[2].conf)==null?void 0:V.hw)==null?void 0:y.vcc)==null?void 0:T.div_gnd)??"GND")&&u(m,"placeholder",_),O[0]&64&&je(m.value)!==k[6].i.v.d.g&&z(m,k[6].i.v.d.g)},d(k){k&&N(e),d=!1,Bt(h)}}}function ja(t){var b,g,w,k,O,L,R,M,I,F,j,V;let e,l=(((k=(w=(g=(b=t[2].conf)==null?void 0:b.hw)==null?void 0:g.led)==null?void 0:w.behaviour)==null?void 0:k.title)??"LED behaviour")+"",n,i,s,a,r=(((M=(R=(L=(O=t[2].conf)==null?void 0:O.hw)==null?void 0:L.led)==null?void 0:R.behaviour)==null?void 0:M.enabled)??"Enabled")+"",f,c,m=(((V=(j=(F=(I=t[2].conf)==null?void 0:I.hw)==null?void 0:F.led)==null?void 0:j.behaviour)==null?void 0:V.disabled)??"Disabled")+"",_,d,h;return{c(){e=p("div"),n=C(l),i=v(),s=p("select"),a=p("option"),f=C(r),c=p("option"),_=C(m),a.__value=0,z(a,a.__value),c.__value=1,z(c,c.__value),u(s,"name","idb"),u(s,"class","in-s"),t[6].i.d.b===void 0&&At(()=>t[117].call(s)),u(e,"class","my-1 w-full")},m(y,T){P(y,e,T),o(e,n),o(e,i),o(e,s),o(s,a),o(a,f),o(s,c),o(c,_),Ke(s,t[6].i.d.b,!0),d||(h=ce(s,"change",t[117]),d=!0)},p(y,T){var B,X,H,K,Y,U,G,oe,le,Q,ne,re;T[0]&4&&l!==(l=(((K=(H=(X=(B=y[2].conf)==null?void 0:B.hw)==null?void 0:X.led)==null?void 0:H.behaviour)==null?void 0:K.title)??"LED behaviour")+"")&&q(n,l),T[0]&4&&r!==(r=(((oe=(G=(U=(Y=y[2].conf)==null?void 0:Y.hw)==null?void 0:U.led)==null?void 0:G.behaviour)==null?void 0:oe.enabled)??"Enabled")+"")&&q(f,r),T[0]&4&&m!==(m=(((re=(ne=(Q=(le=y[2].conf)==null?void 0:le.hw)==null?void 0:Q.led)==null?void 0:ne.behaviour)==null?void 0:re.disabled)??"Disabled")+"")&&q(_,m),T[0]&64&&Ke(s,y[6].i.d.b)},d(y){y&&N(e),d=!1,h()}}}function za(t){var M,I,F,j,V,y;let e,l,n,i,s=(((F=(I=(M=t[2].conf)==null?void 0:M.hw)==null?void 0:I.vcc)==null?void 0:F.offset)??"Vcc offset")+"",a,r,f,c,m,_,d=(((y=(V=(j=t[2].conf)==null?void 0:j.hw)==null?void 0:V.vcc)==null?void 0:y.multiplier)??"Multiplier")+"",h,b,g,w,k,O,L,R=(t[0].board==2||t[0].board==100)&&ya(t);return{c(){e=p("input"),l=v(),n=p("div"),i=p("div"),a=C(s),r=p("br"),f=v(),c=p("input"),m=v(),_=p("div"),h=C(d),b=p("br"),g=v(),w=p("input"),k=v(),R&&R.c(),u(e,"type","hidden"),u(e,"name","iv"),e.value="true",u(c,"name","ivo"),u(c,"type","number"),u(c,"min","0.0"),u(c,"max","3.5"),u(c,"step","0.01"),u(c,"class","in-f tr w-full"),u(i,"class","w-1/3"),u(w,"name","ivm"),u(w,"type","number"),u(w,"min","0.1"),u(w,"max","10"),u(w,"step","0.01"),u(w,"class","in-l tr w-full"),u(_,"class","w-1/3 pr-1"),u(n,"class","my-1 flex flex-wrap")},m(T,B){P(T,e,B),P(T,l,B),P(T,n,B),o(n,i),o(i,a),o(i,r),o(i,f),o(i,c),z(c,t[6].i.v.o),o(n,m),o(n,_),o(_,h),o(_,b),o(_,g),o(_,w),z(w,t[6].i.v.m),o(n,k),R&&R.m(n,null),O||(L=[ce(c,"input",t[118]),ce(w,"input",t[119])],O=!0)},p(T,B){var X,H,K,Y,U,G;B[0]&4&&s!==(s=(((K=(H=(X=T[2].conf)==null?void 0:X.hw)==null?void 0:H.vcc)==null?void 0:K.offset)??"Vcc offset")+"")&&q(a,s),B[0]&64&&je(c.value)!==T[6].i.v.o&&z(c,T[6].i.v.o),B[0]&4&&d!==(d=(((G=(U=(Y=T[2].conf)==null?void 0:Y.hw)==null?void 0:U.vcc)==null?void 0:G.multiplier)??"Multiplier")+"")&&q(h,d),B[0]&64&&je(w.value)!==T[6].i.v.m&&z(w,T[6].i.v.m),T[0].board==2||T[0].board==100?R?R.p(T,B):(R=ya(T),R.c(),R.m(n,null)):R&&(R.d(1),R=null)},d(T){T&&(N(e),N(l),N(n)),R&&R.d(),O=!1,Bt(L)}}}function ya(t){var c,m,_;let e,l=(((_=(m=(c=t[2].conf)==null?void 0:c.hw)==null?void 0:m.vcc)==null?void 0:_.boot)??"Boot limit")+"",n,i,s,a,r,f;return{c(){e=p("div"),n=C(l),i=p("br"),s=v(),a=p("input"),u(a,"name","ivb"),u(a,"type","number"),u(a,"min","2.5"),u(a,"max","3.5"),u(a,"step","0.1"),u(a,"class","in-s tr w-full"),u(e,"class","w-1/3 pl-1")},m(d,h){P(d,e,h),o(e,n),o(e,i),o(e,s),o(e,a),z(a,t[6].i.v.b),r||(f=ce(a,"input",t[120]),r=!0)},p(d,h){var b,g,w;h[0]&4&&l!==(l=(((w=(g=(b=d[2].conf)==null?void 0:b.hw)==null?void 0:g.vcc)==null?void 0:w.boot)??"Boot limit")+"")&&q(n,l),h[0]&64&&je(a.value)!==d[6].i.v.b&&z(a,d[6].i.v.b)},d(d){d&&N(e),r=!1,f()}}}function Ha(t){var R,M,I,F,j,V;let e,l,n=(((M=(R=t[2].conf)==null?void 0:R.debug)==null?void 0:M.title)??"Debugging")+"",i,s,a,r,f,c,m,_,d,h,b=(((F=(I=t[2].conf)==null?void 0:I.debug)==null?void 0:F.enable)??"Enable debugging")+"",g,w,k,O,L=((V=(j=t[6])==null?void 0:j.d)==null?void 0:V.s)&&Wa(t);return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),_=p("label"),d=p("input"),h=v(),g=C(b),w=v(),L&&L.c(),u(l,"class","text-sm"),u(a,"href","https://amsleser.no/blog/post/24-telnet-debug"),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","d"),f.value="true",u(d,"type","checkbox"),u(d,"name","ds"),d.__value="true",z(d,d.__value),u(d,"class","rounded mb-1"),u(m,"class","mt-3"),u(e,"class","cnt")},m(y,T){P(y,e,T),o(e,l),o(l,i),o(e,s),o(e,a),o(e,r),o(e,f),o(e,c),o(e,m),o(m,_),o(_,d),d.checked=t[6].d.s,o(_,h),o(_,g),o(e,w),L&&L.m(e,null),k||(O=ce(d,"change",t[121]),k=!0)},p(y,T){var B,X,H,K,Y,U;T[0]&4&&n!==(n=(((X=(B=y[2].conf)==null?void 0:B.debug)==null?void 0:X.title)??"Debugging")+"")&&q(i,n),T[0]&64&&(d.checked=y[6].d.s),T[0]&4&&b!==(b=(((K=(H=y[2].conf)==null?void 0:H.debug)==null?void 0:K.enable)??"Enable debugging")+"")&&q(g,b),(U=(Y=y[6])==null?void 0:Y.d)!=null&&U.s?L?L.p(y,T):(L=Wa(y),L.c(),L.m(e,null)):L&&(L.d(1),L=null)},d(y){y&&N(e),L&&L.d(),k=!1,O()}}}function Wa(t){var I,F,j,V;let e,l=(((F=(I=t[2].conf)==null?void 0:I.debug)==null?void 0:F.danger)??"Disable when done")+"",n,i,s,a,r,f,c=(((V=(j=t[2].conf)==null?void 0:j.debug)==null?void 0:V.telnet)??"Enable telnet")+"",m,_,d,h,b,g,w,k,O,L,R,M=t[6].d.t&&Ga(t);return{c(){e=p("div"),n=C(l),i=v(),s=p("div"),a=p("label"),r=p("input"),f=v(),m=C(c),_=v(),M&&M.c(),d=v(),h=p("div"),b=p("select"),g=p("option"),g.textContent="Verbose",w=p("option"),w.textContent="Debug",k=p("option"),k.textContent="Info",O=p("option"),O.textContent="Warning",u(e,"class","bd-red"),u(r,"type","checkbox"),u(r,"name","dt"),r.__value="true",z(r,r.__value),u(r,"class","rounded mb-1"),u(s,"class","my-1"),g.__value=1,z(g,g.__value),w.__value=2,z(w,w.__value),k.__value=3,z(k,k.__value),O.__value=4,z(O,O.__value),u(b,"name","dl"),u(b,"class","in-s"),t[6].d.l===void 0&&At(()=>t[123].call(b)),u(h,"class","my-1")},m(y,T){P(y,e,T),o(e,n),P(y,i,T),P(y,s,T),o(s,a),o(a,r),r.checked=t[6].d.t,o(a,f),o(a,m),P(y,_,T),M&&M.m(y,T),P(y,d,T),P(y,h,T),o(h,b),o(b,g),o(b,w),o(b,k),o(b,O),Ke(b,t[6].d.l,!0),L||(R=[ce(r,"change",t[122]),ce(b,"change",t[123])],L=!0)},p(y,T){var B,X,H,K;T[0]&4&&l!==(l=(((X=(B=y[2].conf)==null?void 0:B.debug)==null?void 0:X.danger)??"Disable when done")+"")&&q(n,l),T[0]&64&&(r.checked=y[6].d.t),T[0]&4&&c!==(c=(((K=(H=y[2].conf)==null?void 0:H.debug)==null?void 0:K.telnet)??"Enable telnet")+"")&&q(m,c),y[6].d.t?M?M.p(y,T):(M=Ga(y),M.c(),M.m(d.parentNode,d)):M&&(M.d(1),M=null),T[0]&64&&Ke(b,y[6].d.l)},d(y){y&&(N(e),N(i),N(s),N(_),N(d),N(h)),M&&M.d(y),L=!1,Bt(R)}}}function Ga(t){var i,s;let e,l=(((s=(i=t[2].conf)==null?void 0:i.debug)==null?void 0:s.telnet_danger)??"Disable when done")+"",n;return{c(){e=p("div"),n=C(l),u(e,"class","bd-red")},m(a,r){P(a,e,r),o(e,n)},p(a,r){var f,c;r[0]&4&&l!==(l=(((c=(f=a[2].conf)==null?void 0:f.debug)==null?void 0:c.telnet_danger)??"Disable when done")+"")&&q(n,l)},d(a){a&&N(e)}}}function Va(t){var d,h;let e,l,n=(((d=t[2].conf)==null?void 0:d.btn_reset)??"Factory reset")+"",i,s,a,r,f=(((h=t[2].btn)==null?void 0:h.reboot)??"Reboot")+"",c,m,_;return{c(){e=p("div"),l=p("button"),i=C(n),s=v(),a=p("div"),r=p("button"),c=C(f),u(l,"type","button"),u(l,"class","btn-red"),u(r,"type","button"),u(r,"class","btn-yellow"),u(a,"class","text-center")},m(b,g){P(b,e,g),o(e,l),o(l,i),P(b,s,g),P(b,a,g),o(a,r),o(r,c),m||(_=[ce(l,"click",t[14]),ce(r,"click",t[16])],m=!0)},p(b,g){var w,k;g[0]&4&&n!==(n=(((w=b[2].conf)==null?void 0:w.btn_reset)??"Factory reset")+"")&&q(i,n),g[0]&4&&f!==(f=(((k=b[2].btn)==null?void 0:k.reboot)??"Reboot")+"")&&q(c,f)},d(b){b&&(N(e),N(s),N(a)),m=!1,Bt(_)}}}function Ka(t){var s;let e,l,n=(((s=t[2].btn)==null?void 0:s.save)??"Save")+"",i;return{c(){e=p("div"),l=p("button"),i=C(n),u(l,"type","submit"),u(l,"class","btn-pri"),u(e,"class","text-right")},m(a,r){P(a,e,r),o(e,l),o(l,i)},p(a,r){var f;r[0]&4&&n!==(n=(((f=a[2].btn)==null?void 0:f.save)??"Save")+"")&&q(i,n)},d(a){a&&N(e)}}}function Hc(t){var J,$,ke,we,D,S,A,E,W,ee,fe,_e,he,x,ve,ge,De,Te,Le,Oe,Ee,Ue,Xe,kt,$e,st,Mt,pt,ot,nt,at,Lt,Ge,Fe,ze,et,be,qe,Ye;let e,l,n,i,s,a,r,f,c,m,_=((ke=($=(J=t[6])==null?void 0:J.p)==null?void 0:$.r)==null?void 0:ke.startsWith("NO"))||((S=(D=(we=t[6])==null?void 0:we.p)==null?void 0:D.r)==null?void 0:S.startsWith("10YNO"))||((W=(E=(A=t[6])==null?void 0:A.p)==null?void 0:E.r)==null?void 0:W.startsWith("10Y1001A1001A4")),d,h,b,g=((ee=t[6])==null?void 0:ee.d)&&((_e=(fe=t[0])==null?void 0:fe.features)==null?void 0:_e.includes("rdebug")),w,k,O,L,R,M,I,F,j,V,y,T,B,X,H=((he=t[6])==null?void 0:he.g)&&xo(t),K=((x=t[6])==null?void 0:x.m)&&na(t),Y=((ve=t[6])==null?void 0:ve.w)&&fa(t),U=((ge=t[6])==null?void 0:ge.n)&&pa(t),G=((De=t[6])==null?void 0:De.q)&&ha(t),oe=((Le=(Te=t[6])==null?void 0:Te.q)==null?void 0:Le.m)==3&&ga(t),le=((Ee=(Oe=t[6])==null?void 0:Oe.q)==null?void 0:Ee.m)==4&&ka(t),Q=((Ue=t[6])==null?void 0:Ue.c)&&wa(t),ne=_&&Da(t),re=((Xe=t[6])==null?void 0:Xe.u)&&La(t),ue=(($e=(kt=t[6])==null?void 0:kt.i)==null?void 0:$e.h)&&(((st=t[0])==null?void 0:st.board)>20||((Mt=t[0])==null?void 0:Mt.chip)=="esp8266"||((nt=(ot=(pt=t[6])==null?void 0:pt.i)==null?void 0:ot.d)==null?void 0:nt.d)>0)&&Ra(t),ie=g&&Ha(t),pe=((at=t[1])==null?void 0:at.a)&&Va(t),ae=t[6]&&Ka(t);return R=new ml({props:{active:t[3],message:((Ge=(Lt=t[2].conf)==null?void 0:Lt.mask)==null?void 0:Ge.loading)??"Loading"}}),I=new ml({props:{active:t[4],message:((ze=(Fe=t[2].conf)==null?void 0:Fe.mask)==null?void 0:ze.saving)??"Saving"}}),j=new ml({props:{active:t[10],message:((be=(et=t[2].conf)==null?void 0:et.mask)==null?void 0:be.reset)??"Factory reset"}}),y=new ml({props:{active:t[11],message:((Ye=(qe=t[2].conf)==null?void 0:qe.mask)==null?void 0:Ye.reset_done)??"Done"}}),{c(){e=p("form"),l=p("div"),H&&H.c(),n=v(),K&&K.c(),i=v(),Y&&Y.c(),s=v(),U&&U.c(),a=v(),G&&G.c(),r=v(),oe&&oe.c(),f=v(),le&&le.c(),c=v(),Q&&Q.c(),m=v(),ne&&ne.c(),d=v(),re&&re.c(),h=v(),ue&&ue.c(),b=v(),ie&&ie.c(),w=v(),k=p("div"),pe&&pe.c(),O=v(),ae&&ae.c(),L=v(),Pe(R.$$.fragment),M=v(),Pe(I.$$.fragment),F=v(),Pe(j.$$.fragment),V=v(),Pe(y.$$.fragment),u(l,"class","grid xl:grid-cols-4 lg:grid-cols-2 md:grid-cols-2"),u(k,"class","grid grid-cols-3 mt-3"),u(e,"autocomplete","off")},m(me,Ce){P(me,e,Ce),o(e,l),H&&H.m(l,null),o(l,n),K&&K.m(l,null),o(l,i),Y&&Y.m(l,null),o(l,s),U&&U.m(l,null),o(l,a),G&&G.m(l,null),o(l,r),oe&&oe.m(l,null),o(l,f),le&&le.m(l,null),o(l,c),Q&&Q.m(l,null),o(l,m),ne&&ne.m(l,null),o(l,d),re&&re.m(l,null),o(l,h),ue&&ue.m(l,null),o(l,b),ie&&ie.m(l,null),o(e,w),o(e,k),pe&&pe.m(k,null),o(k,O),ae&&ae.m(k,null),P(me,L,Ce),Me(R,me,Ce),P(me,M,Ce),Me(I,me,Ce),P(me,F,Ce),Me(j,me,Ce),P(me,V,Ce),Me(y,me,Ce),T=!0,B||(X=ce(e,"submit",pn(t[15])),B=!0)},p(me,Ce){var Be,gt,rt,ct,Ze,Dt,Gt,Ct,lt,Ht,Kt,jt,Wt,Qt,Zt,Jt,$t,Ie,tt,it,Ot,Nt,xe,zt,_t,mt,de,Re,ye,nl,Ut,Et,il,sl,ol,al,fl,Ae,te;(Be=me[6])!=null&&Be.g?H?(H.p(me,Ce),Ce[0]&64&&Z(H,1)):(H=xo(me),H.c(),Z(H,1),H.m(l,n)):H&&(ht(),se(H,1,1,()=>{H=null}),vt()),(gt=me[6])!=null&>.m?K?K.p(me,Ce):(K=na(me),K.c(),K.m(l,i)):K&&(K.d(1),K=null),(rt=me[6])!=null&&rt.w?Y?Y.p(me,Ce):(Y=fa(me),Y.c(),Y.m(l,s)):Y&&(Y.d(1),Y=null),(ct=me[6])!=null&&ct.n?U?(U.p(me,Ce),Ce[0]&64&&Z(U,1)):(U=pa(me),U.c(),Z(U,1),U.m(l,a)):U&&(ht(),se(U,1,1,()=>{U=null}),vt()),(Ze=me[6])!=null&&Ze.q?G?(G.p(me,Ce),Ce[0]&64&&Z(G,1)):(G=ha(me),G.c(),Z(G,1),G.m(l,r)):G&&(ht(),se(G,1,1,()=>{G=null}),vt()),((Gt=(Dt=me[6])==null?void 0:Dt.q)==null?void 0:Gt.m)==3?oe?oe.p(me,Ce):(oe=ga(me),oe.c(),oe.m(l,f)):oe&&(oe.d(1),oe=null),((lt=(Ct=me[6])==null?void 0:Ct.q)==null?void 0:lt.m)==4?le?le.p(me,Ce):(le=ka(me),le.c(),le.m(l,c)):le&&(le.d(1),le=null),(Ht=me[6])!=null&&Ht.c?Q?(Q.p(me,Ce),Ce[0]&64&&Z(Q,1)):(Q=wa(me),Q.c(),Z(Q,1),Q.m(l,m)):Q&&(ht(),se(Q,1,1,()=>{Q=null}),vt()),Ce[0]&64&&(_=((Wt=(jt=(Kt=me[6])==null?void 0:Kt.p)==null?void 0:jt.r)==null?void 0:Wt.startsWith("NO"))||((Jt=(Zt=(Qt=me[6])==null?void 0:Qt.p)==null?void 0:Zt.r)==null?void 0:Jt.startsWith("10YNO"))||((tt=(Ie=($t=me[6])==null?void 0:$t.p)==null?void 0:Ie.r)==null?void 0:tt.startsWith("10Y1001A1001A4"))),_?ne?ne.p(me,Ce):(ne=Da(me),ne.c(),ne.m(l,d)):ne&&(ne.d(1),ne=null),(it=me[6])!=null&&it.u?re?re.p(me,Ce):(re=La(me),re.c(),re.m(l,h)):re&&(re.d(1),re=null),(Nt=(Ot=me[6])==null?void 0:Ot.i)!=null&&Nt.h&&(((xe=me[0])==null?void 0:xe.board)>20||((zt=me[0])==null?void 0:zt.chip)=="esp8266"||((de=(mt=(_t=me[6])==null?void 0:_t.i)==null?void 0:mt.d)==null?void 0:de.d)>0)?ue?(ue.p(me,Ce),Ce[0]&65&&Z(ue,1)):(ue=Ra(me),ue.c(),Z(ue,1),ue.m(l,b)):ue&&(ht(),se(ue,1,1,()=>{ue=null}),vt()),Ce[0]&65&&(g=((Re=me[6])==null?void 0:Re.d)&&((nl=(ye=me[0])==null?void 0:ye.features)==null?void 0:nl.includes("rdebug"))),g?ie?ie.p(me,Ce):(ie=Ha(me),ie.c(),ie.m(l,null)):ie&&(ie.d(1),ie=null),(Ut=me[1])!=null&&Ut.a?pe?pe.p(me,Ce):(pe=Va(me),pe.c(),pe.m(k,O)):pe&&(pe.d(1),pe=null),me[6]?ae?ae.p(me,Ce):(ae=Ka(me),ae.c(),ae.m(k,null)):ae&&(ae.d(1),ae=null);const ft={};Ce[0]&8&&(ft.active=me[3]),Ce[0]&4&&(ft.message=((il=(Et=me[2].conf)==null?void 0:Et.mask)==null?void 0:il.loading)??"Loading"),R.$set(ft);const Ve={};Ce[0]&16&&(Ve.active=me[4]),Ce[0]&4&&(Ve.message=((ol=(sl=me[2].conf)==null?void 0:sl.mask)==null?void 0:ol.saving)??"Saving"),I.$set(Ve);const Ft={};Ce[0]&1024&&(Ft.active=me[10]),Ce[0]&4&&(Ft.message=((fl=(al=me[2].conf)==null?void 0:al.mask)==null?void 0:fl.reset)??"Factory reset"),j.$set(Ft);const bt={};Ce[0]&2048&&(bt.active=me[11]),Ce[0]&4&&(bt.message=((te=(Ae=me[2].conf)==null?void 0:Ae.mask)==null?void 0:te.reset_done)??"Done"),y.$set(bt)},i(me){T||(Z(H),Z(U),Z(G),Z(Q),Z(ue),Z(R.$$.fragment,me),Z(I.$$.fragment,me),Z(j.$$.fragment,me),Z(y.$$.fragment,me),T=!0)},o(me){se(H),se(U),se(G),se(Q),se(ue),se(R.$$.fragment,me),se(I.$$.fragment,me),se(j.$$.fragment,me),se(y.$$.fragment,me),T=!1},d(me){me&&(N(e),N(L),N(M),N(F),N(V)),H&&H.d(),K&&K.d(),Y&&Y.d(),U&&U.d(),G&&G.d(),oe&&oe.d(),le&&le.d(),Q&&Q.d(),ne&&ne.d(),re&&re.d(),ue&&ue.d(),ie&&ie.d(),pe&&pe.d(),ae&&ae.d(),Ne(R,me),Ne(I,me),Ne(j,me),Ne(y,me),B=!1,X()}}}async function Wc(){await(await fetch("reboot",{method:"POST"})).json()}function Gc(t,e,l){let{basepath:n="/"}=e,{sysinfo:i={}}=e,{data:s}=e,a={};Ml.subscribe(Se=>{l(2,a=Se)});let r=[{name:"Import gauge",key:"i"},{name:"Export gauge",key:"e"},{name:"Voltage",key:"v"},{name:"Amperage",key:"a"},{name:"Per phase",key:"h"},{name:"Power factor",key:"f"},{name:"Reactive",key:"r"},{name:"Realtime",key:"c"},{name:"Peaks",key:"t"},{name:"Realtime plot",key:"l"},{name:"Price",key:"p"},{name:"Day plot",key:"d"},{name:"Month plot",key:"m"},{name:"Temperature plot",key:"s"},{name:"Dark mode",key:"k"}],f=!0,c=!1,m=!1,_,d=[];Un.subscribe(Se=>{var Pt,xt,cl;Se.version&&(l(5,m=(Pt=Se==null?void 0:Se.c)==null?void 0:Pt.e),l(6,_=Se),l(3,f=!1),l(7,d=[{code:"en",name:"English"}]),(xt=_==null?void 0:_.u)!=null&&xt.lang&&_.u.lang!="en"&&d.push({code:_.u.lang,name:((cl=a.language)==null?void 0:cl.name)??"Unknown"}),d.push({code:"hub",name:"Load from server"}))}),ic();let h=!0,b={};$i.subscribe(Se=>{var Pt;l(8,h=!0);for(let xt=0;xt(ll.hostname=Pt.get("gh"),ll.usrcfg=dl.success,ll.booting=dl.reboot,Pt.get("nm")=="static"&&(ll.net.ip=Pt.get("ni"),ll.net.mask=Pt.get("nu"),ll.net.gw=Pt.get("ng"),ll.net.dns1=Pt.get("nd")),ll.ui=_.u,ll)),l(4,c=!1),sn(n)}const L=function(){confirm("Reboot?")&&(pl.update(Se=>(Se.booting=!0,Se)),Wc())};async function R(){confirm("Are you sure you want to delete CA?")&&(await(await fetch("mqtt-ca",{method:"POST"})).text(),Un.update(Pt=>(Pt.q.s.c=!1,Pt)))}async function M(){confirm("Are you sure you want to delete cert?")&&(await(await fetch("mqtt-cert",{method:"POST"})).text(),Un.update(Pt=>(Pt.q.s.r=!1,Pt)))}async function I(){confirm("Are you sure you want to delete key?")&&(await(await fetch("mqtt-key",{method:"POST"})).text(),Un.update(Pt=>(Pt.q.s.k=!1,Pt)))}const F=function(){_.q.s.e?_.q.p==1883&&l(6,_.q.p=8883,_):_.q.p==8883&&l(6,_.q.p=1883,_)};async function j(){if(_.u.lang=="hub"){const Se=await Sl("http://hub.amsleser.no/hub/language/list.json");l(7,d=await Se.json()),l(6,_.u.lang=a.language.code,_)}}async function V(){l(6,_.p.e=!0,_)}let y=44;async function T(){const Se=await Sl("cloudkey.json");if(Se.status==200){let Pt=await Se.json();window.open("https://www.amsleser.cloud/device/"+Pt.seed)}else alert("Not able to bind to cloud")}const B=window||global;B.bindToCloud=function(){console.log("BIND CALLED")};function X(){_.g.h=this.value,l(6,_)}function H(){_.g.t=Vt(this),l(6,_)}function K(){_.p.r=Vt(this),l(6,_)}function Y(){_.p.c=Vt(this),l(6,_)}function U(){_.p.e=this.checked,l(6,_)}function G(){_.p.t=this.value,l(6,_)}function oe(){_.g.s=Vt(this),l(6,_)}function le(){_.g.u=this.value,l(6,_)}function Q(){_.g.p=this.value,l(6,_)}function ne(){_.g.c=this.value,l(6,_)}function re(){_.m.a=Vt(this),l(6,_)}function ue(){_.m.b=je(this.value),l(6,_)}function ie(){_.m.i=this.checked,l(6,_)}function pe(){_.m.b=Vt(this),l(6,_)}function ae(){_.m.p=Vt(this),l(6,_)}function J(){_.m.s=je(this.value),l(6,_)}function $(){_.m.d=Vt(this),l(6,_)}function ke(){_.m.f=je(this.value),l(6,_)}function we(){_.m.r=je(this.value),l(6,_)}function D(){_.m.e.e=this.checked,l(6,_)}function S(){_.m.e.k=this.value,l(6,_)}function A(){_.m.e.a=this.value,l(6,_)}function E(){_.m.m.e=this.checked,l(6,_)}function W(){_.m.m.w=je(this.value),l(6,_)}function ee(){_.m.m.v=je(this.value),l(6,_)}function fe(){_.m.m.a=je(this.value),l(6,_)}function _e(){_.m.m.c=je(this.value),l(6,_)}function he(){_.n.c=Vt(this),l(6,_)}function x(){h=this.checked,l(8,h)}function ve(){_.w.s=this.value,l(6,_)}function ge(){_.w.s=Vt(this),l(6,_)}function De(){_.w.p=this.value,l(6,_)}function Te(){_.w.z=Vt(this),l(6,_)}function Le(){_.w.w=je(this.value),l(6,_)}function Oe(){_.w.b=this.checked,l(6,_)}function Ee(){_.n.m=Vt(this),l(6,_)}function Ue(){_.n.i=this.value,l(6,_)}function Xe(){_.n.s=Vt(this),l(6,_)}function kt(){_.n.g=this.value,l(6,_)}function $e(){_.n.d1=this.value,l(6,_)}function st(){_.n.d2=this.value,l(6,_)}function Mt(){_.n.x=this.checked,l(6,_)}function pt(){_.n.d=this.checked,l(6,_)}function ot(){_.n.h=this.checked,l(6,_)}function nt(){_.n.n1=this.value,l(6,_)}function at(){_.q.s.e=this.checked,l(6,_)}function Lt(){_.q.h=this.value,l(6,_)}function Ge(){_.q.p=je(this.value),l(6,_)}function Fe(){_.q.u=this.value,l(6,_)}function ze(){_.q.a=this.value,l(6,_)}function et(){_.q.c=this.value,l(6,_)}function be(){_.q.m=Vt(this),l(6,_)}function qe(){_.q.b=this.value,l(6,_)}function Ye(){_.q.r=this.value,l(6,_)}function me(){_.q.t=Vt(this),l(6,_)}function Ce(){_.q.d=je(this.value),l(6,_)}function ft(){_.q.i=je(this.value),l(6,_)}function Ve(){_.q.k=je(this.value),l(6,_)}function Ft(){_.q.e=je(this.value),l(6,_)}function bt(){_.o.e=this.value,l(6,_)}function Be(){_.o.c=this.value,l(6,_)}function gt(){_.o.u1=this.value,l(6,_)}function rt(){_.o.u2=this.value,l(6,_)}function ct(){_.o.u3=this.value,l(6,_)}function Ze(){_.h.t=this.value,l(6,_)}function Dt(){_.h.h=this.value,l(6,_)}function Gt(){_.h.n=this.value,l(6,_)}function Ct(){_.c.e=this.checked,l(6,_)}function lt(){_.c.p=Vt(this),l(6,_)}function Ht(){_.c.es=this.checked,l(6,_)}function Kt(){_.c.ze=this.checked,l(6,_)}function jt(){_.c.zt=this.value,l(6,_)}function Wt(Se){_.t.t[Se]=je(this.value),l(6,_)}function Qt(){_.t.h=je(this.value),l(6,_)}function Zt(Se){_.u[Se.key]=Vt(this),l(6,_)}function Jt(){_.u.lang=Vt(this),l(6,_)}function $t(){_.i.h.p=Vt(this),l(6,_)}function Ie(){_.i.h.t=Vt(this),l(6,_)}function tt(){_.i.h.u=this.checked,l(6,_)}function it(){_.i.a=je(this.value),l(6,_)}function Ot(){_.i.l.p=je(this.value),l(6,_)}function Nt(){_.i.l.i=this.checked,l(6,_)}function xe(){_.i.r.i=this.checked,l(6,_)}function zt(){_.i.r.r=je(this.value),l(6,_)}function _t(){_.i.r.g=je(this.value),l(6,_)}function mt(){_.i.r.b=je(this.value),l(6,_)}function de(){_.i.d.d=je(this.value),l(6,_)}function Re(){_.i.t.d=je(this.value),l(6,_)}function ye(){_.i.t.a=je(this.value),l(6,_)}function nl(){_.i.v.p=je(this.value),l(6,_)}function Ut(){_.i.v.d.v=je(this.value),l(6,_)}function Et(){_.i.v.d.g=je(this.value),l(6,_)}function il(){_.i.d.b=Vt(this),l(6,_)}function sl(){_.i.v.o=je(this.value),l(6,_)}function ol(){_.i.v.m=je(this.value),l(6,_)}function al(){_.i.v.b=je(this.value),l(6,_)}function fl(){_.d.s=this.checked,l(6,_)}function Ae(){_.d.t=this.checked,l(6,_)}function te(){_.d.l=Vt(this),l(6,_)}return t.$$set=Se=>{"basepath"in Se&&l(24,n=Se.basepath),"sysinfo"in Se&&l(0,i=Se.sysinfo),"data"in Se&&l(1,s=Se.data)},t.$$.update=()=>{t.$$.dirty[0]&1&&l(12,y=i.chip=="esp8266"?16:i.chip=="esp32s2"?44:39)},[i,s,a,f,c,m,_,d,h,b,g,w,y,r,k,O,L,R,M,I,F,j,V,T,n,X,H,K,Y,U,G,oe,le,Q,ne,re,ue,ie,pe,ae,J,$,ke,we,D,S,A,E,W,ee,fe,_e,he,x,ve,ge,De,Te,Le,Oe,Ee,Ue,Xe,kt,$e,st,Mt,pt,ot,nt,at,Lt,Ge,Fe,ze,et,be,qe,Ye,me,Ce,ft,Ve,Ft,bt,Be,gt,rt,ct,Ze,Dt,Gt,Ct,lt,Ht,Kt,jt,Wt,Qt,Zt,Jt,$t,Ie,tt,it,Ot,Nt,xe,zt,_t,mt,de,Re,ye,nl,Ut,Et,il,sl,ol,al,fl,Ae,te]}class Vc extends qt{constructor(e){super(),Tt(this,e,Gc,Hc,St,{basepath:24,sysinfo:0,data:1},null,[-1,-1,-1,-1,-1])}}function Ya(t,e,l){const n=t.slice();return n[21]=e[l],n}function Qa(t){let e,l=t[1].cpu+"",n,i;return{c(){e=C("("),n=C(l),i=C("MHz)")},m(s,a){P(s,e,a),P(s,n,a),P(s,i,a)},p(s,a){a&2&&l!==(l=s[1].cpu+"")&&q(n,l)},d(s){s&&(N(e),N(n),N(i))}}}function Kc(t){let e=Qe(t[1].chip,t[1].board)+"",l;return{c(){l=C(e)},m(n,i){P(n,l,i)},p(n,i){i&2&&e!==(e=Qe(n[1].chip,n[1].board)+"")&&q(l,e)},d(n){n&&N(l)}}}function Xa(t){var Y,U,G,oe,le,Q,ne,re;let e,l=(((U=(Y=t[3].status)==null?void 0:Y.device)==null?void 0:U.apmac)??"AP MAC")+"",n,i,s=t[1].apmac+"",a,r,f,c=(((oe=(G=t[3].status)==null?void 0:G.device)==null?void 0:oe.last_boot)??"Last boot")+"",m,_,d,h,b,g,w=(((Q=(le=t[3].status)==null?void 0:le.device)==null?void 0:Q.reason)??"Reason")+"",k,O,L=(((re=(ne=t[3][Ts(t[1].chip)])==null?void 0:ne.reason)==null?void 0:re[t[1].boot_reason])??t[1].boot_reason)+"",R,M,I=t[1].boot_reason+"",F,j,V=t[1].ex_cause+"",y,T,B;const X=[Qc,Yc],H=[];function K(ue,ie){return ue[0].u>0?0:1}return d=K(t),h=H[d]=X[d](t),{c(){e=p("div"),n=C(l),i=C(": "),a=C(s),r=v(),f=p("div"),m=C(c),_=C(`: - `),h.c(),b=v(),g=p("div"),k=C(w),O=C(": "),R=C(L),M=C(" ("),F=C(I),j=C("/"),y=C(V),T=C(")"),u(e,"class","my-2"),u(f,"class","my-2"),u(g,"class","my-2")},m(ue,ie){P(ue,e,ie),o(e,n),o(e,i),o(e,a),P(ue,r,ie),P(ue,f,ie),o(f,m),o(f,_),H[d].m(f,null),P(ue,b,ie),P(ue,g,ie),o(g,k),o(g,O),o(g,R),o(g,M),o(g,F),o(g,j),o(g,y),o(g,T),B=!0},p(ue,ie){var ae,J,$,ke,we,D,S,A;(!B||ie&8)&&l!==(l=(((J=(ae=ue[3].status)==null?void 0:ae.device)==null?void 0:J.apmac)??"AP MAC")+"")&&q(n,l),(!B||ie&2)&&s!==(s=ue[1].apmac+"")&&q(a,s),(!B||ie&8)&&c!==(c=(((ke=($=ue[3].status)==null?void 0:$.device)==null?void 0:ke.last_boot)??"Last boot")+"")&&q(m,c);let pe=d;d=K(ue),d===pe?H[d].p(ue,ie):(ht(),se(H[pe],1,1,()=>{H[pe]=null}),vt(),h=H[d],h?h.p(ue,ie):(h=H[d]=X[d](ue),h.c()),Z(h,1),h.m(f,null)),(!B||ie&8)&&w!==(w=(((D=(we=ue[3].status)==null?void 0:we.device)==null?void 0:D.reason)??"Reason")+"")&&q(k,w),(!B||ie&10)&&L!==(L=(((A=(S=ue[3][Ts(ue[1].chip)])==null?void 0:S.reason)==null?void 0:A[ue[1].boot_reason])??ue[1].boot_reason)+"")&&q(R,L),(!B||ie&2)&&I!==(I=ue[1].boot_reason+"")&&q(F,I),(!B||ie&2)&&V!==(V=ue[1].ex_cause+"")&&q(y,V)},i(ue){B||(Z(h),B=!0)},o(ue){se(h),B=!1},d(ue){ue&&(N(e),N(r),N(f),N(b),N(g)),H[d].d()}}}function Yc(t){let e;return{c(){e=C("-")},m(l,n){P(l,e,n)},p:We,i:We,o:We,d(l){l&&N(e)}}}function Qc(t){let e,l;return e=new zu({props:{timestamp:new Date(new Date().getTime()-t[0].u*1e3),fullTimeColor:"",offset:t[1].clock_offset}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&1&&(s.timestamp=new Date(new Date().getTime()-n[0].u*1e3)),i&2&&(s.offset=n[1].clock_offset),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function Za(t){var m;let e,l,n,i,s=(((m=t[3].btn)==null?void 0:m.reboot)??"Reboot")+"",a,r,f,c;return l=new gl({props:{to:"/consent",$$slots:{default:[Xc]},$$scope:{ctx:t}}}),{c(){e=p("div"),Pe(l.$$.fragment),n=v(),i=p("button"),a=C(s),u(i,"class","btn-yellow-sm float-right"),u(e,"class","my-2")},m(_,d){P(_,e,d),Me(l,e,null),o(e,n),o(e,i),o(i,a),r=!0,f||(c=ce(i,"click",t[11]),f=!0)},p(_,d){var b;const h={};d&16777224&&(h.$$scope={dirty:d,ctx:_}),l.$set(h),(!r||d&8)&&s!==(s=(((b=_[3].btn)==null?void 0:b.reboot)??"Reboot")+"")&&q(a,s)},i(_){r||(Z(l.$$.fragment,_),r=!0)},o(_){se(l.$$.fragment,_),r=!1},d(_){_&&N(e),Ne(l),f=!1,c()}}}function Xc(t){var i,s;let e,l=(((s=(i=t[3].status)==null?void 0:i.device)==null?void 0:s.btn_consents)??"Consents")+"",n;return{c(){e=p("span"),n=C(l),u(e,"class","btn-pri-sm")},m(a,r){P(a,e,r),o(e,n)},p(a,r){var f,c;r&8&&l!==(l=(((c=(f=a[3].status)==null?void 0:f.device)==null?void 0:c.btn_consents)??"Consents")+"")&&q(n,l)},d(a){a&&N(e)}}}function Ja(t){var y,T,B,X,H,K,Y,U;let e,l,n=(((T=(y=t[3].status)==null?void 0:y.meter)==null?void 0:T.title)??"Meter")+"",i,s,a,r=(((X=(B=t[3].status)==null?void 0:B.meter)==null?void 0:X.manufacturer)??"Manufacturer")+"",f,c,m=fi(t[1].meter.mfg)+"",_,d,h,b=(((K=(H=t[3].status)==null?void 0:H.meter)==null?void 0:K.model)??"Model")+"",g,w,k=(t[1].meter.model?t[1].meter.model:"unknown")+"",O,L,R,M=(((U=(Y=t[3].status)==null?void 0:Y.meter)==null?void 0:U.id)??"ID")+"",I,F,j=(t[1].meter.id?t[1].meter.id:"unknown")+"",V;return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("div"),f=C(r),c=C(": "),_=C(m),d=v(),h=p("div"),g=C(b),w=C(": "),O=C(k),L=v(),R=p("div"),I=C(M),F=C(": "),V=C(j),u(l,"class","text-sm"),u(a,"class","my-2"),u(h,"class","my-2"),u(R,"class","my-2"),u(e,"class","cnt")},m(G,oe){P(G,e,oe),o(e,l),o(l,i),o(e,s),o(e,a),o(a,f),o(a,c),o(a,_),o(e,d),o(e,h),o(h,g),o(h,w),o(h,O),o(e,L),o(e,R),o(R,I),o(R,F),o(R,V)},p(G,oe){var le,Q,ne,re,ue,ie,pe,ae;oe&8&&n!==(n=(((Q=(le=G[3].status)==null?void 0:le.meter)==null?void 0:Q.title)??"Meter")+"")&&q(i,n),oe&8&&r!==(r=(((re=(ne=G[3].status)==null?void 0:ne.meter)==null?void 0:re.manufacturer)??"Manufacturer")+"")&&q(f,r),oe&2&&m!==(m=fi(G[1].meter.mfg)+"")&&q(_,m),oe&8&&b!==(b=(((ie=(ue=G[3].status)==null?void 0:ue.meter)==null?void 0:ie.model)??"Model")+"")&&q(g,b),oe&2&&k!==(k=(G[1].meter.model?G[1].meter.model:"unknown")+"")&&q(O,k),oe&8&&M!==(M=(((ae=(pe=G[3].status)==null?void 0:pe.meter)==null?void 0:ae.id)??"ID")+"")&&q(I,M),oe&2&&j!==(j=(G[1].meter.id?G[1].meter.id:"unknown")+"")&&q(V,j)},d(G){G&&N(e)}}}function $a(t){var U,G,oe,le,Q,ne,re,ue;let e,l,n=(((G=(U=t[3].status)==null?void 0:U.network)==null?void 0:G.title)??"Network")+"",i,s,a,r=(((le=(oe=t[3].conf)==null?void 0:oe.network)==null?void 0:le.ip)??"IP")+"",f,c,m=t[1].net.ip+"",_,d,h,b=(((ne=(Q=t[3].conf)==null?void 0:Q.network)==null?void 0:ne.mask)??"Mask")+"",g,w,k=t[1].net.mask+"",O,L,R,M=(((ue=(re=t[3].conf)==null?void 0:re.network)==null?void 0:ue.gw)??"Gateway")+"",I,F,j=t[1].net.gw+"",V,y,T,B,X,H=t[1].net.dns1&&xa(t),K=t[1].net.dns2&&ef(t),Y=t[1].net.ipv6&&tf(t);return{c(){e=p("div"),l=p("strong"),i=C(n),s=v(),a=p("div"),f=C(r),c=C(": "),_=C(m),d=v(),h=p("div"),g=C(b),w=C(": "),O=C(k),L=v(),R=p("div"),I=C(M),F=C(": "),V=C(j),y=v(),T=p("div"),H&&H.c(),B=v(),K&&K.c(),X=v(),Y&&Y.c(),u(l,"class","text-sm"),u(a,"class","my-2"),u(h,"class","my-2"),u(R,"class","my-2"),u(T,"class","my-2"),u(e,"class","cnt")},m(ie,pe){P(ie,e,pe),o(e,l),o(l,i),o(e,s),o(e,a),o(a,f),o(a,c),o(a,_),o(e,d),o(e,h),o(h,g),o(h,w),o(h,O),o(e,L),o(e,R),o(R,I),o(R,F),o(R,V),o(e,y),o(e,T),H&&H.m(T,null),o(T,B),K&&K.m(T,null),o(e,X),Y&&Y.m(e,null)},p(ie,pe){var ae,J,$,ke,we,D,S,A;pe&8&&n!==(n=(((J=(ae=ie[3].status)==null?void 0:ae.network)==null?void 0:J.title)??"Network")+"")&&q(i,n),pe&8&&r!==(r=(((ke=($=ie[3].conf)==null?void 0:$.network)==null?void 0:ke.ip)??"IP")+"")&&q(f,r),pe&2&&m!==(m=ie[1].net.ip+"")&&q(_,m),pe&8&&b!==(b=(((D=(we=ie[3].conf)==null?void 0:we.network)==null?void 0:D.mask)??"Mask")+"")&&q(g,b),pe&2&&k!==(k=ie[1].net.mask+"")&&q(O,k),pe&8&&M!==(M=(((A=(S=ie[3].conf)==null?void 0:S.network)==null?void 0:A.gw)??"Gateway")+"")&&q(I,M),pe&2&&j!==(j=ie[1].net.gw+"")&&q(V,j),ie[1].net.dns1?H?H.p(ie,pe):(H=xa(ie),H.c(),H.m(T,B)):H&&(H.d(1),H=null),ie[1].net.dns2?K?K.p(ie,pe):(K=ef(ie),K.c(),K.m(T,null)):K&&(K.d(1),K=null),ie[1].net.ipv6?Y?Y.p(ie,pe):(Y=tf(ie),Y.c(),Y.m(e,null)):Y&&(Y.d(1),Y=null)},d(ie){ie&&N(e),H&&H.d(),K&&K.d(),Y&&Y.d()}}}function xa(t){var a,r;let e=(((r=(a=t[3].conf)==null?void 0:a.network)==null?void 0:r.dns)??"DNS")+"",l,n,i=t[1].net.dns1+"",s;return{c(){l=C(e),n=C(": "),s=C(i)},m(f,c){P(f,l,c),P(f,n,c),P(f,s,c)},p(f,c){var m,_;c&8&&e!==(e=(((_=(m=f[3].conf)==null?void 0:m.network)==null?void 0:_.dns)??"DNS")+"")&&q(l,e),c&2&&i!==(i=f[1].net.dns1+"")&&q(s,i)},d(f){f&&(N(l),N(n),N(s))}}}function ef(t){var a,r;let e=(((r=(a=t[3].conf)==null?void 0:a.network)==null?void 0:r.dns)??"DNS")+"",l,n,i=t[1].net.dns2+"",s;return{c(){l=C(e),n=C(": "),s=C(i)},m(f,c){P(f,l,c),P(f,n,c),P(f,s,c)},p(f,c){var m,_;c&8&&e!==(e=(((_=(m=f[3].conf)==null?void 0:m.network)==null?void 0:_.dns)??"DNS")+"")&&q(l,e),c&2&&i!==(i=f[1].net.dns2+"")&&q(s,i)},d(f){f&&(N(l),N(n),N(s))}}}function tf(t){let e,l,n,i=t[1].net.ipv6.replace(/\b:?(?:0+:?){2,}/,"::")+"",s,a,r,f,c=t[1].net.dns1v6&&lf(t),m=t[1].net.dns2v6&&nf(t);return{c(){e=p("div"),l=C("IPv6: "),n=p("span"),s=C(i),a=v(),r=p("div"),c&&c.c(),f=v(),m&&m.c(),wl(n,"font-size","14px"),u(e,"class","my-2"),u(r,"class","my-2")},m(_,d){P(_,e,d),o(e,l),o(e,n),o(n,s),P(_,a,d),P(_,r,d),c&&c.m(r,null),o(r,f),m&&m.m(r,null)},p(_,d){d&2&&i!==(i=_[1].net.ipv6.replace(/\b:?(?:0+:?){2,}/,"::")+"")&&q(s,i),_[1].net.dns1v6?c?c.p(_,d):(c=lf(_),c.c(),c.m(r,f)):c&&(c.d(1),c=null),_[1].net.dns2v6?m?m.p(_,d):(m=nf(_),m.c(),m.m(r,null)):m&&(m.d(1),m=null)},d(_){_&&(N(e),N(a),N(r)),c&&c.d(),m&&m.d()}}}function lf(t){let e,l,n=t[1].net.dns1v6.replace(/\b:?(?:0+:?){2,}/,"::")+"",i;return{c(){e=C("DNSv6: "),l=p("span"),i=C(n),wl(l,"font-size","14px")},m(s,a){P(s,e,a),P(s,l,a),o(l,i)},p(s,a){a&2&&n!==(n=s[1].net.dns1v6.replace(/\b:?(?:0+:?){2,}/,"::")+"")&&q(i,n)},d(s){s&&(N(e),N(l))}}}function nf(t){let e,l,n=t[1].net.dns2v6.replace(/\b:?(?:0+:?){2,}/,"::")+"",i;return{c(){e=C("DNSv6: "),l=p("span"),i=C(n),wl(l,"font-size","14px")},m(s,a){P(s,e,a),P(s,l,a),o(l,i)},p(s,a){a&2&&n!==(n=s[1].net.dns2v6.replace(/\b:?(?:0+:?){2,}/,"::")+"")&&q(i,n)},d(s){s&&(N(e),N(l))}}}function sf(t){var f,c,m,_;let e,l,n=(((c=(f=t[3].status)==null?void 0:f.firmware)==null?void 0:c.failed)??"Upgrade from {0} to {1} failed").replace("{0}",t[1].upgrade.f).replace("{1}",t[1].upgrade.t)+"",i,s,a=(((_=(m=t[3].errors)==null?void 0:m.upgrade)==null?void 0:_[t[1].upgrade.e])??t[1].upgrade.e)+"",r;return{c(){e=p("div"),l=p("div"),i=C(n),s=v(),r=C(a),u(l,"class","bd-yellow"),u(e,"class","my-2")},m(d,h){P(d,e,h),o(e,l),o(l,i),o(l,s),o(l,r)},p(d,h){var b,g,w,k;h&10&&n!==(n=(((g=(b=d[3].status)==null?void 0:b.firmware)==null?void 0:g.failed)??"Upgrade from {0} to {1} failed").replace("{0}",d[1].upgrade.f).replace("{1}",d[1].upgrade.t)+"")&&q(i,n),h&10&&a!==(a=(((k=(w=d[3].errors)==null?void 0:w.upgrade)==null?void 0:k[d[1].upgrade.e])??d[1].upgrade.e)+"")&&q(r,a)},d(d){d&&N(e)}}}function of(t){var b,g;let e,l=(((g=(b=t[3].status)==null?void 0:b.firmware)==null?void 0:g.latest)??"Latest")+"",n,i,s,a=t[1].upgrade.n+"",r,f,c,m,_,d=(t[1].security==0||t[0].a)&&t[1].fwconsent===1&&t[1].upgrade.n&&t[1].upgrade.n!=t[1].version&&af(t),h=t[1].fwconsent===2&&ff(t);return{c(){e=p("div"),n=C(l),i=C(`: - `),s=p("a"),r=C(a),c=v(),d&&d.c(),m=v(),h&&h.c(),_=yt(),u(s,"href",f="https://github.com/UtilitechAS/amsreader-firmware/releases/tag/"+t[1].upgrade.n),u(s,"class","ml-2 text-blue-600 hover:text-blue-800"),u(s,"target","_blank"),u(s,"rel","noreferrer"),u(e,"class","my-2 flex")},m(w,k){P(w,e,k),o(e,n),o(e,i),o(e,s),o(s,r),o(e,c),d&&d.m(e,null),P(w,m,k),h&&h.m(w,k),P(w,_,k)},p(w,k){var O,L;k&8&&l!==(l=(((L=(O=w[3].status)==null?void 0:O.firmware)==null?void 0:L.latest)??"Latest")+"")&&q(n,l),k&2&&a!==(a=w[1].upgrade.n+"")&&q(r,a),k&2&&f!==(f="https://github.com/UtilitechAS/amsreader-firmware/releases/tag/"+w[1].upgrade.n)&&u(s,"href",f),(w[1].security==0||w[0].a)&&w[1].fwconsent===1&&w[1].upgrade.n&&w[1].upgrade.n!=w[1].version?d?d.p(w,k):(d=af(w),d.c(),d.m(e,null)):d&&(d.d(1),d=null),w[1].fwconsent===2?h?h.p(w,k):(h=ff(w),h.c(),h.m(_.parentNode,_)):h&&(h.d(1),h=null)},d(w){w&&(N(e),N(m),N(_)),d&&d.d(),h&&h.d(w)}}}function af(t){let e,l,n,i,s;return{c(){var a,r;e=p("div"),l=p("button"),l.textContent="⇓",u(e,"class","flex-none ml-2 text-green-500"),u(e,"title",n=((r=(a=t[3].status)==null?void 0:a.firmware)==null?void 0:r.install)??"Install")},m(a,r){P(a,e,r),o(e,l),i||(s=ce(l,"click",t[10]),i=!0)},p(a,r){var f,c;r&8&&n!==(n=((c=(f=a[3].status)==null?void 0:f.firmware)==null?void 0:c.install)??"Install")&&u(e,"title",n)},d(a){a&&N(e),i=!1,s()}}}function ff(t){var s,a;let e,l,n=(((a=(s=t[3].status)==null?void 0:s.firmware)==null?void 0:a.no_one_click)??"One-click upgrade disabled")+"",i;return{c(){e=p("div"),l=p("div"),i=C(n),u(l,"class","bd-yellow"),u(e,"class","my-2")},m(r,f){P(r,e,f),o(e,l),o(l,i)},p(r,f){var c,m;f&8&&n!==(n=(((m=(c=r[3].status)==null?void 0:c.firmware)==null?void 0:m.no_one_click)??"One-click upgrade disabled")+"")&&q(i,n)},d(r){r&&N(e)}}}function uf(t){let e,l=Ds(Qe(t[1].chip,t[1].board))+"",n;return{c(){e=p("div"),n=C(l),u(e,"class","bd-red")},m(i,s){P(i,e,s),o(e,n)},p(i,s){s&2&&l!==(l=Ds(Qe(i[1].chip,i[1].board))+"")&&q(n,l)},d(i){i&&N(e)}}}function rf(t){let e,l,n,i,s,a;function r(m,_){return m[5].length==0?Jc:Zc}let f=r(t),c=f(t);return{c(){e=p("div"),l=p("form"),n=p("input"),i=v(),c.c(),wl(n,"display","none"),u(n,"name","file"),u(n,"type","file"),u(n,"accept",".bin"),u(l,"action","firmware"),u(l,"enctype","multipart/form-data"),u(l,"method","post"),u(l,"autocomplete","off"),u(e,"class","my-2 flex")},m(m,_){P(m,e,_),o(e,l),o(l,n),t[13](n),o(l,i),c.m(l,null),s||(a=[ce(n,"change",t[14]),ce(l,"submit",t[16])],s=!0)},p(m,_){f===(f=r(m))&&c?c.p(m,_):(c.d(1),c=f(m),c&&(c.c(),c.m(l,null)))},d(m){m&&N(e),t[13](null),c.d(),s=!1,Bt(a)}}}function Zc(t){var r;let e=t[5][0].name+"",l,n,i,s=(((r=t[3].btn)==null?void 0:r.upload)??"Upload")+"",a;return{c(){l=C(e),n=v(),i=p("button"),a=C(s),u(i,"type","submit"),u(i,"class","btn-pri-sm float-right ml-2")},m(f,c){P(f,l,c),P(f,n,c),P(f,i,c),o(i,a)},p(f,c){var m;c&32&&e!==(e=f[5][0].name+"")&&q(l,e),c&8&&s!==(s=(((m=f[3].btn)==null?void 0:m.upload)??"Upload")+"")&&q(a,s)},d(f){f&&(N(l),N(n),N(i))}}}function Jc(t){var a,r;let e,l=(((r=(a=t[3].status)==null?void 0:a.firmware)==null?void 0:r.btn_select_file)??"Select file")+"",n,i,s;return{c(){e=p("button"),n=C(l),u(e,"type","button"),u(e,"class","btn-pri-sm float-right")},m(f,c){P(f,e,c),o(e,n),i||(s=ce(e,"click",t[15]),i=!0)},p(f,c){var m,_;c&8&&l!==(l=(((_=(m=f[3].status)==null?void 0:m.firmware)==null?void 0:_.btn_select_file)??"Select file")+"")&&q(n,l)},d(f){f&&N(e),i=!1,s()}}}function cf(t){var K,Y,U,G,oe,le;let e,l,n=(((Y=(K=t[3].status)==null?void 0:K.backup)==null?void 0:Y.title)??"Backup")+"",i,s,a,r,f,c,m,_,d=(((G=(U=t[3].status)==null?void 0:U.backup)==null?void 0:G.secrets)??"Include secrets")+"",h,b,g,w=(((le=(oe=t[3].status)==null?void 0:oe.backup)==null?void 0:le.secrets_desc)??"")+"",k,O,L,R,M,I,F,j,V=ut(t[9]),y=[];for(let Q=0;Q{_e=null}),vt()),(ct=be[0])!=null&&ct.a?he?(he.p(be,qe),qe&1&&Z(he,1)):(he=Za(be),he.c(),Z(he,1),he.m(l,null)):he&&(ht(),se(he,1,1,()=>{he=null}),vt()),be[1].meter?x?x.p(be,qe):(x=Ja(be),x.c(),x.m(e,H)):x&&(x.d(1),x=null),be[1].net?ve?ve.p(be,qe):(ve=$a(be),ve.c(),ve.m(e,K)):ve&&(ve.d(1),ve=null),(!ee||qe&8)&&G!==(G=(((Dt=(Ze=be[3].status)==null?void 0:Ze.firmware)==null?void 0:Dt.title)??"Firmware")+"")&&q(oe,G),(!ee||qe&8)&&ne!==(ne=(((Ct=(Gt=be[3].status)==null?void 0:Gt.firmware)==null?void 0:Ct.installed)??"Installed")+"")&&q(re,ne),(!ee||qe&2)&&ie!==(ie=be[1].version+"")&&q(pe,ie),be[1].upgrade.t&&be[1].upgrade.t!=be[1].version&&be[1].upgrade.e!=0&&be[1].upgrade.e!=123?ge?ge.p(be,qe):(ge=sf(be),ge.c(),ge.m(Y,J)):ge&&(ge.d(1),ge=null),be[1].upgrade.n?De?De.p(be,qe):(De=of(be),De.c(),De.m(Y,$)):De&&(De.d(1),De=null),qe&3&&(ke=(be[1].security==0||be[0].a)&&zn(be[1].board)),ke?Te?Te.p(be,qe):(Te=uf(be),Te.c(),Te.m(Y,we)):Te&&(Te.d(1),Te=null),be[1].security==0||be[0].a?Le?Le.p(be,qe):(Le=rf(be),Le.c(),Le.m(Y,null)):Le&&(Le.d(1),Le=null),be[1].security==0||be[0].a?Oe?Oe.p(be,qe):(Oe=cf(be),Oe.c(),Oe.m(e,null)):Oe&&(Oe.d(1),Oe=null);const me={};qe&64&&(me.active=be[6]),qe&8&&(me.message=((Ht=(lt=be[3].status)==null?void 0:lt.mask)==null?void 0:Ht.firmware)??"Uploading"),A.$set(me);const Ce={};qe&256&&(Ce.active=be[8]),qe&8&&(Ce.message=((jt=(Kt=be[3].status)==null?void 0:Kt.mask)==null?void 0:jt.config)??"Uploading"),W.$set(Ce)},i(be){ee||(Z(L.$$.fragment,be),Z(_e),Z(he),Z(A.$$.fragment,be),Z(W.$$.fragment,be),ee=!0)},o(be){se(L.$$.fragment,be),se(_e),se(he),se(A.$$.fragment,be),se(W.$$.fragment,be),ee=!1},d(be){be&&(N(e),N(S),N(E)),fe&&fe.d(),Ne(L),_e&&_e.d(),he&&he.d(),x&&x.d(),ve&&ve.d(),ge&&ge.d(),De&&De.d(),Te&&Te.d(),Le&&Le.d(),Oe&&Oe.d(),Ne(A,be),Ne(W,be)}}}async function t_(){await(await fetch("reboot",{method:"POST"})).json()}function l_(t,e,l){let{data:n}=e,{sysinfo:i}=e,s=[{name:"WiFi",key:"iw"},{name:"MQTT",key:"im"},{name:"Web",key:"ie"},{name:"Meter",key:"it"},{name:"Thresholds",key:"ih"},{name:"GPIO",key:"ig"},{name:"NTP",key:"in"},{name:"Price",key:"is"}],a={};Ml.subscribe(j=>{l(3,a=j)});function r(){var j;confirm((((j=a.header)==null?void 0:j.upgrade)??"Upgrade to {0}?").replace("{0}",i.upgrade.n))&&(ju(i.upgrade.n),pl.update(V=>(V.upgrade.t=i.upgrade.n,V.upgrade.p=0,V.upgrading=!0,V)))}const f=function(){var j;confirm(((j=a.device)==null?void 0:j.reboot_confirm)??"Reboot?")&&(pl.update(V=>(V.booting=!0,V)),t_())};let c,m=[],_=!1,d,h=[],b=!1;pi();let g={hostname:"",ip:""};function w(j){l(8,b=!0);const V=new FormData;V.append("file",h[0]),fetch("configfile",{method:"POST",body:V}).then(y=>y.json()).then(y=>{pl.update(T=>(g&&g.hostname&&(T.hostname=g.hostname),T.booting=y.reboot,g&&g.ip&&(T.net.ip=g.ip),setTimeout(Wn,5e3,i),T))}).catch(y=>{console.error("Error:",y),setTimeout(Wn,5e3,i)})}function k(j){oi[j?"unshift":"push"](()=>{c=j,l(4,c)})}function O(){m=this.files,l(5,m)}const L=()=>{c.click()},R=()=>l(6,_=!0);function M(j){oi[j?"unshift":"push"](()=>{d=j,l(7,d)})}function I(){h=this.files,l(2,h)}const F=()=>{d.click()};return t.$$set=j=>{"data"in j&&l(0,n=j.data),"sysinfo"in j&&l(1,i=j.sysinfo)},t.$$.update=()=>{if(t.$$.dirty&4&&h.length==1){let j=h[0],V=new FileReader,y=T=>{let B=T.target.result.split(` -`);for(let X in B){let H=B[X];H.startsWith("hostname ")?g.hostname=H.split(" ")[1]:H.startsWith("ip ")&&(g.ip=H.split(" ")[1])}};V.onload=y,V.readAsText(j)}},[n,i,h,a,c,m,_,d,b,s,r,f,w,k,O,L,R,M,I,F]}class n_ extends qt{constructor(e){super(),Tt(this,e,l_,e_,St,{data:0,sysinfo:1})}}function pf(t){let e,l,n=Qe(t[0],7)+"",i,s,a=Qe(t[0],5)+"",r,f,c=Qe(t[0],4)+"",m,_,d=Qe(t[0],3)+"",h,b,g,w,k=Qe(t[0],2)+"",O,L,R=Qe(t[0],1)+"",M,I,F=Qe(t[0],0)+"",j,V,y,T,B=Qe(t[0],101)+"",X,H,K=Qe(t[0],100)+"",Y;return{c(){e=p("optgroup"),l=p("option"),i=C(n),s=p("option"),r=C(a),f=p("option"),m=C(c),_=p("option"),h=C(d),b=v(),g=p("optgroup"),w=p("option"),O=C(k),L=p("option"),M=C(R),I=p("option"),j=C(F),V=v(),y=p("optgroup"),T=p("option"),X=C(B),H=p("option"),Y=C(K),l.__value=7,z(l,l.__value),s.__value=5,z(s,s.__value),f.__value=4,z(f,f.__value),_.__value=3,z(_,_.__value),u(e,"label","amsleser.no"),w.__value=2,z(w,w.__value),L.__value=1,z(L,L.__value),I.__value=0,z(I,I.__value),u(g,"label","Custom hardware"),T.__value=101,z(T,T.__value),H.__value=100,z(H,H.__value),u(y,"label","Generic hardware")},m(U,G){P(U,e,G),o(e,l),o(l,i),o(e,s),o(s,r),o(e,f),o(f,m),o(e,_),o(_,h),P(U,b,G),P(U,g,G),o(g,w),o(w,O),o(g,L),o(L,M),o(g,I),o(I,j),P(U,V,G),P(U,y,G),o(y,T),o(T,X),o(y,H),o(H,Y)},p(U,G){G&1&&n!==(n=Qe(U[0],7)+"")&&q(i,n),G&1&&a!==(a=Qe(U[0],5)+"")&&q(r,a),G&1&&c!==(c=Qe(U[0],4)+"")&&q(m,c),G&1&&d!==(d=Qe(U[0],3)+"")&&q(h,d),G&1&&k!==(k=Qe(U[0],2)+"")&&q(O,k),G&1&&R!==(R=Qe(U[0],1)+"")&&q(M,R),G&1&&F!==(F=Qe(U[0],0)+"")&&q(j,F),G&1&&B!==(B=Qe(U[0],101)+"")&&q(X,B),G&1&&K!==(K=Qe(U[0],100)+"")&&q(Y,K)},d(U){U&&(N(e),N(b),N(g),N(V),N(y))}}}function df(t){let e,l,n=Qe(t[0],201)+"",i,s,a=Qe(t[0],202)+"",r,f,c=Qe(t[0],203)+"",m,_,d=Qe(t[0],241)+"",h,b,g=Qe(t[0],242)+"",w,k,O=Qe(t[0],243)+"",L,R,M=Qe(t[0],245)+"",I,F,j=Qe(t[0],200)+"",V;return{c(){e=p("optgroup"),l=p("option"),i=C(n),s=p("option"),r=C(a),f=p("option"),m=C(c),_=p("option"),h=C(d),b=p("option"),w=C(g),k=p("option"),L=C(O),R=p("option"),I=C(M),F=p("option"),V=C(j),l.__value=201,z(l,l.__value),s.__value=202,z(s,s.__value),f.__value=203,z(f,f.__value),_.__value=241,z(_,_.__value),b.__value=242,z(b,b.__value),k.__value=243,z(k,k.__value),R.__value=245,z(R,R.__value),F.__value=200,z(F,F.__value),u(e,"label","Generic hardware")},m(y,T){P(y,e,T),o(e,l),o(l,i),o(e,s),o(s,r),o(e,f),o(f,m),o(e,_),o(_,h),o(e,b),o(b,w),o(e,k),o(k,L),o(e,R),o(R,I),o(e,F),o(F,V)},p(y,T){T&1&&n!==(n=Qe(y[0],201)+"")&&q(i,n),T&1&&a!==(a=Qe(y[0],202)+"")&&q(r,a),T&1&&c!==(c=Qe(y[0],203)+"")&&q(m,c),T&1&&d!==(d=Qe(y[0],241)+"")&&q(h,d),T&1&&g!==(g=Qe(y[0],242)+"")&&q(w,g),T&1&&O!==(O=Qe(y[0],243)+"")&&q(L,O),T&1&&M!==(M=Qe(y[0],245)+"")&&q(I,M),T&1&&j!==(j=Qe(y[0],200)+"")&&q(V,j)},d(y){y&&N(e)}}}function hf(t){let e,l,n=Qe(t[0],7)+"",i,s,a=Qe(t[0],6)+"",r,f,c=Qe(t[0],5)+"",m,_,d,h,b=Qe(t[0],51)+"",g,w,k=Qe(t[0],50)+"",O;return{c(){e=p("optgroup"),l=p("option"),i=C(n),s=p("option"),r=C(a),f=p("option"),m=C(c),_=v(),d=p("optgroup"),h=p("option"),g=C(b),w=p("option"),O=C(k),l.__value=7,z(l,l.__value),s.__value=6,z(s,s.__value),f.__value=5,z(f,f.__value),u(e,"label","amsleser.no"),h.__value=51,z(h,h.__value),w.__value=50,z(w,w.__value),u(d,"label","Generic hardware")},m(L,R){P(L,e,R),o(e,l),o(l,i),o(e,s),o(s,r),o(e,f),o(f,m),P(L,_,R),P(L,d,R),o(d,h),o(h,g),o(d,w),o(w,O)},p(L,R){R&1&&n!==(n=Qe(L[0],7)+"")&&q(i,n),R&1&&a!==(a=Qe(L[0],6)+"")&&q(r,a),R&1&&c!==(c=Qe(L[0],5)+"")&&q(m,c),R&1&&b!==(b=Qe(L[0],51)+"")&&q(g,b),R&1&&k!==(k=Qe(L[0],50)+"")&&q(O,k)},d(L){L&&(N(e),N(_),N(d))}}}function vf(t){let e,l,n=Qe(t[0],8)+"",i,s,a,r,f=Qe(t[0],71)+"",c,m,_=Qe(t[0],70)+"",d;return{c(){e=p("optgroup"),l=p("option"),i=C(n),s=v(),a=p("optgroup"),r=p("option"),c=C(f),m=p("option"),d=C(_),l.__value=8,z(l,l.__value),u(e,"label","Custom hardware"),r.__value=71,z(r,r.__value),m.__value=70,z(m,m.__value),u(a,"label","Generic hardware")},m(h,b){P(h,e,b),o(e,l),o(l,i),P(h,s,b),P(h,a,b),o(a,r),o(r,c),o(a,m),o(m,d)},p(h,b){b&1&&n!==(n=Qe(h[0],8)+"")&&q(i,n),b&1&&f!==(f=Qe(h[0],71)+"")&&q(c,f),b&1&&_!==(_=Qe(h[0],70)+"")&&q(d,_)},d(h){h&&(N(e),N(s),N(a))}}}function bf(t){let e,l,n=Qe(t[0],200)+"",i;return{c(){e=p("optgroup"),l=p("option"),i=C(n),l.__value=200,z(l,l.__value),u(e,"label","Generic hardware")},m(s,a){P(s,e,a),o(e,l),o(l,i)},p(s,a){a&1&&n!==(n=Qe(s[0],200)+"")&&q(i,n)},d(s){s&&N(e)}}}function gf(t){let e,l,n=Qe(t[0],80)+"",i;return{c(){e=p("optgroup"),l=p("option"),i=C(n),l.__value=80,z(l,l.__value),u(e,"label","Generic hardware")},m(s,a){P(s,e,a),o(e,l),o(l,i)},p(s,a){a&1&&n!==(n=Qe(s[0],80)+"")&&q(i,n)},d(s){s&&N(e)}}}function i_(t){let e,l,n,i,s,a,r,f,c=t[0]=="esp8266"&&pf(t),m=t[0]=="esp32"&&df(t),_=t[0]=="esp32s2"&&hf(t),d=t[0]=="esp32c3"&&vf(t),h=t[0]=="esp32solo"&&bf(t),b=t[0]=="esp32s3"&&gf(t);return{c(){e=p("option"),l=v(),c&&c.c(),n=v(),m&&m.c(),i=v(),_&&_.c(),s=v(),d&&d.c(),a=v(),h&&h.c(),r=v(),b&&b.c(),f=yt(),e.__value=-1,z(e,e.__value)},m(g,w){P(g,e,w),P(g,l,w),c&&c.m(g,w),P(g,n,w),m&&m.m(g,w),P(g,i,w),_&&_.m(g,w),P(g,s,w),d&&d.m(g,w),P(g,a,w),h&&h.m(g,w),P(g,r,w),b&&b.m(g,w),P(g,f,w)},p(g,[w]){g[0]=="esp8266"?c?c.p(g,w):(c=pf(g),c.c(),c.m(n.parentNode,n)):c&&(c.d(1),c=null),g[0]=="esp32"?m?m.p(g,w):(m=df(g),m.c(),m.m(i.parentNode,i)):m&&(m.d(1),m=null),g[0]=="esp32s2"?_?_.p(g,w):(_=hf(g),_.c(),_.m(s.parentNode,s)):_&&(_.d(1),_=null),g[0]=="esp32c3"?d?d.p(g,w):(d=vf(g),d.c(),d.m(a.parentNode,a)):d&&(d.d(1),d=null),g[0]=="esp32solo"?h?h.p(g,w):(h=bf(g),h.c(),h.m(r.parentNode,r)):h&&(h.d(1),h=null),g[0]=="esp32s3"?b?b.p(g,w):(b=gf(g),b.c(),b.m(f.parentNode,f)):b&&(b.d(1),b=null)},i:We,o:We,d(g){g&&(N(e),N(l),N(n),N(i),N(s),N(a),N(r),N(f)),c&&c.d(g),m&&m.d(g),_&&_.d(g),d&&d.d(g),h&&h.d(g),b&&b.d(g)}}}function s_(t,e,l){let{chip:n}=e;return t.$$set=i=>{"chip"in i&&l(0,n=i.chip)},[n]}class o_ extends qt{constructor(e){super(),Tt(this,e,s_,i_,St,{chip:0})}}function kf(t){let e;return{c(){e=p("div"),e.textContent="WARNING: Changing this configuration will affect basic configuration of your device. Only make changes here if instructed by vendor",u(e,"class","bd-red")},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function wf(t){let e,l,n,i,s,a,r;return a=new yi({props:{chip:t[0].chip}}),{c(){e=p("div"),l=C("HAN GPIO"),n=p("br"),i=v(),s=p("select"),Pe(a.$$.fragment),u(s,"name","vh"),u(s,"class","in-s"),u(e,"class","my-3")},m(f,c){P(f,e,c),o(e,l),o(e,n),o(e,i),o(e,s),Me(a,s,null),r=!0},p(f,c){const m={};c&1&&(m.chip=f[0].chip),a.$set(m)},i(f){r||(Z(a.$$.fragment,f),r=!0)},o(f){se(a.$$.fragment,f),r=!1},d(f){f&&N(e),Ne(a)}}}function a_(t){let e,l,n,i,s,a,r,f,c,m,_,d,h,b,g,w,k,O,L,R,M,I,F,j,V,y,T,B,X,H=t[0].usrcfg&&kf();b=new o_({props:{chip:t[0].chip}});let K=t[0].board&&t[0].board>20&&wf(t);return y=new ml({props:{active:t[1],message:"Saving"}}),{c(){e=p("div"),l=p("div"),n=p("form"),i=p("input"),s=v(),a=p("strong"),a.textContent="Initial configuration",r=v(),H&&H.c(),f=v(),c=p("div"),m=C("Board type"),_=p("br"),d=v(),h=p("select"),Pe(b.$$.fragment),g=v(),K&&K.c(),w=v(),k=p("div"),O=p("label"),L=p("input"),R=C(" Clear all other configuration"),M=v(),I=p("div"),I.innerHTML='',F=v(),j=p("span"),j.textContent=" ",V=v(),Pe(y.$$.fragment),u(i,"type","hidden"),u(i,"name","v"),i.value="true",u(a,"class","text-sm"),u(h,"name","vb"),u(h,"class","in-s"),t[0].board===void 0&&At(()=>t[5].call(h)),u(c,"class","my-3"),u(L,"type","checkbox"),u(L,"name","vr"),L.__value="true",z(L,L.__value),u(L,"class","rounded mb-1"),u(k,"class","my-3"),u(I,"class","my-3"),u(j,"class","clear-both"),u(n,"autocomplete","off"),u(l,"class","cnt"),u(e,"class","grid xl:grid-cols-4 lg:grid-cols-3 md:grid-cols-2")},m(Y,U){P(Y,e,U),o(e,l),o(l,n),o(n,i),o(n,s),o(n,a),o(n,r),H&&H.m(n,null),o(n,f),o(n,c),o(c,m),o(c,_),o(c,d),o(c,h),Me(b,h,null),Ke(h,t[0].board,!0),o(n,g),K&&K.m(n,null),o(n,w),o(n,k),o(k,O),o(O,L),L.checked=t[2],o(O,R),o(n,M),o(n,I),o(n,F),o(n,j),P(Y,V,U),Me(y,Y,U),T=!0,B||(X=[ce(h,"change",t[5]),ce(L,"change",t[6]),ce(n,"submit",pn(t[3]))],B=!0)},p(Y,[U]){Y[0].usrcfg?H||(H=kf(),H.c(),H.m(n,f)):H&&(H.d(1),H=null);const G={};U&1&&(G.chip=Y[0].chip),b.$set(G),U&1&&Ke(h,Y[0].board),Y[0].board&&Y[0].board>20?K?(K.p(Y,U),U&1&&Z(K,1)):(K=wf(Y),K.c(),Z(K,1),K.m(n,w)):K&&(ht(),se(K,1,1,()=>{K=null}),vt()),U&4&&(L.checked=Y[2]);const oe={};U&2&&(oe.active=Y[1]),y.$set(oe)},i(Y){T||(Z(b.$$.fragment,Y),Z(K),Z(y.$$.fragment,Y),T=!0)},o(Y){se(b.$$.fragment,Y),se(K),se(y.$$.fragment,Y),T=!1},d(Y){Y&&(N(e),N(V)),H&&H.d(),Ne(b),K&&K.d(),Ne(y,Y),B=!1,Bt(X)}}}function f_(t,e,l){let{basepath:n="/"}=e,{sysinfo:i={}}=e,s=!1;async function a(m){l(1,s=!0);const _=new FormData(m.target),d=new URLSearchParams;for(let g of _){const[w,k]=g;d.append(w,k)}let b=await(await fetch("save",{method:"POST",body:d})).json();l(1,s=!1),pl.update(g=>(g.vndcfg=b.success,g.booting=b.reboot,g.if.eth=g.boardType>240&&g.boardType<250,g)),sn(n+(i.usrcfg?"":"setup"))}let r=!0;pl.subscribe(m=>{l(0,i=m),m.fwconsent===1&&l(2,r=!i.usrcfg)});function f(){i.board=Vt(this),l(0,i)}function c(){r=this.checked,l(2,r)}return t.$$set=m=>{"basepath"in m&&l(4,n=m.basepath),"sysinfo"in m&&l(0,i=m.sysinfo)},[i,s,r,a,n,f,c]}class u_ extends qt{constructor(e){super(),Tt(this,e,f_,a_,St,{basepath:4,sysinfo:0})}}function Cf(t,e,l){const n=t.slice();return n[13]=e[l],n}function Sf(t){var i,s;let e,l=(((s=(i=t[1].conf)==null?void 0:i.connection)==null?void 0:s.eth)??"Ethernet")+"",n;return{c(){e=p("option"),n=C(l),e.__value=3,z(e,e.__value)},m(a,r){P(a,e,r),o(e,n)},p(a,r){var f,c;r&2&&l!==(l=(((c=(f=a[1].conf)==null?void 0:f.connection)==null?void 0:c.eth)??"Ethernet")+"")&&q(n,l)},d(a){a&&N(e)}}}function Mf(t){var j,V,y,T;let e,l=(((V=(j=t[1].conf)==null?void 0:j.connection)==null?void 0:V.ssid)??"SSID")+"",n,i,s,a,r,f,c,m,_,d,h=(((T=(y=t[1].conf)==null?void 0:y.connection)==null?void 0:T.psk)??"Password")+"",b,g,w,k,O,L,R;function M(B,X){return B[2]?c_:r_}let I=M(t),F=I(t);return{c(){e=p("div"),n=C(l),i=v(),s=p("label"),a=p("input"),r=C(" manual"),f=v(),c=p("br"),m=v(),F.c(),_=v(),d=p("div"),b=C(h),g=p("br"),w=v(),k=p("input"),u(a,"type","checkbox"),a.__value="true",z(a,a.__value),u(a,"class","rounded mb-1"),u(s,"class","float-right mr-3"),u(e,"class","my-3"),u(k,"name","sp"),u(k,"type","password"),u(k,"pattern",Mn),u(k,"class","in-s"),u(k,"autocomplete","off"),k.required=O=t[5]==2,u(d,"class","my-3")},m(B,X){P(B,e,X),o(e,n),o(e,i),o(e,s),o(s,a),a.checked=t[2],o(s,r),o(e,f),o(e,c),o(e,m),F.m(e,null),P(B,_,X),P(B,d,X),o(d,b),o(d,g),o(d,w),o(d,k),L||(R=ce(a,"change",t[9]),L=!0)},p(B,X){var H,K,Y,U;X&2&&l!==(l=(((K=(H=B[1].conf)==null?void 0:H.connection)==null?void 0:K.ssid)??"SSID")+"")&&q(n,l),X&4&&(a.checked=B[2]),I===(I=M(B))&&F?F.p(B,X):(F.d(1),F=I(B),F&&(F.c(),F.m(e,null))),X&2&&h!==(h=(((U=(Y=B[1].conf)==null?void 0:Y.connection)==null?void 0:U.psk)??"Password")+"")&&q(b,h),X&32&&O!==(O=B[5]==2)&&(k.required=O)},d(B){B&&(N(e),N(_),N(d)),F.d(),L=!1,R()}}}function r_(t){var a,r;let e,l,n,i=((a=t[3])==null?void 0:a.c)==-1&&Nf(),s=((r=t[3])==null?void 0:r.n)&&Pf(t);return{c(){e=p("select"),i&&i.c(),l=yt(),s&&s.c(),u(e,"name","ss"),u(e,"class","in-s"),e.required=n=t[5]==1||t[5]==2},m(f,c){P(f,e,c),i&&i.m(e,null),o(e,l),s&&s.m(e,null)},p(f,c){var m,_;((m=f[3])==null?void 0:m.c)==-1?i||(i=Nf(),i.c(),i.m(e,l)):i&&(i.d(1),i=null),(_=f[3])!=null&&_.n?s?s.p(f,c):(s=Pf(f),s.c(),s.m(e,null)):s&&(s.d(1),s=null),c&32&&n!==(n=f[5]==1||f[5]==2)&&(e.required=n)},d(f){f&&N(e),i&&i.d(),s&&s.d()}}}function c_(t){let e,l;return{c(){e=p("input"),u(e,"name","ss"),u(e,"type","text"),u(e,"pattern",Mn),u(e,"class","in-s"),e.required=l=t[5]==1||t[5]==2},m(n,i){P(n,e,i)},p(n,i){i&32&&l!==(l=n[5]==1||n[5]==2)&&(e.required=l)},d(n){n&&N(e)}}}function Nf(t){let e;return{c(){e=p("option"),e.textContent="Scanning...",e.__value="",z(e,e.__value),e.selected=!0,e.disabled=!0},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function Pf(t){var i;let e,l=ut((i=t[3])==null?void 0:i.n),n=[];for(let s=0;st[8].call(g)),u(m,"class","my-3"),u(B,"name","sh"),u(B,"type","text"),u(B,"class","in-s"),u(B,"maxlength","32"),u(B,"pattern",ui),u(B,"placeholder","Optional, ex.: ams-reader"),u(B,"autocomplete","off"),u(Y,"type","checkbox"),u(Y,"name","sm"),Y.__value="static",z(Y,Y.__value),u(Y,"class","rounded mb-1"),u(H,"class","my-3"),u(ue,"type","submit"),u(ue,"class","btn-pri"),u(re,"class","my-3"),u(l,"class","cnt"),u(e,"class","grid xl:grid-cols-4 lg:grid-cols-3 md:grid-cols-2")},m(Ee,Ue){P(Ee,e,Ue),o(e,l),o(l,n),o(n,i),o(n,s),o(n,a),o(a,f),o(n,c),o(n,m),o(m,d),o(m,h),o(m,b),o(m,g),o(g,w),o(w,O),o(g,L),o(L,M),D&&D.m(g,null),Ke(g,t[5],!0),o(n,I),S&&S.m(n,null),o(n,F),o(n,j),o(j,y),o(j,T),o(j,B),z(B,t[0].hostname),o(n,X),o(n,H),o(H,K),o(K,Y),Y.checked=t[4],o(K,U),o(K,oe),o(H,le),A&&A.m(H,null),o(n,Q),E&&E.m(n,null),o(n,ne),o(n,re),o(re,ue),o(ue,pe),P(Ee,ae,Ue),Me(J,Ee,Ue),$=!0,ke||(we=[ce(g,"change",t[8]),ce(B,"input",t[10]),ce(Y,"change",t[11]),ce(n,"submit",pn(t[7]))],ke=!0)},p(Ee,[Ue]){var kt,$e,st,Mt,pt,ot,nt,at,Lt,Ge,Fe,ze;(!$||Ue&2)&&r!==(r=(((kt=Ee[1].setup)==null?void 0:kt.title)??"Setup")+"")&&q(f,r),(!$||Ue&2)&&_!==(_=(((st=($e=Ee[1].conf)==null?void 0:$e.connection)==null?void 0:st.title)??"Connection")+"")&&q(d,_),(!$||Ue&2)&&k!==(k=(((pt=(Mt=Ee[1].conf)==null?void 0:Mt.connection)==null?void 0:pt.wifi)??"Connect to WiFi")+"")&&q(O,k),(!$||Ue&2)&&R!==(R=(((nt=(ot=Ee[1].conf)==null?void 0:ot.connection)==null?void 0:nt.ap)??"Standalone access point")+"")&&q(M,R),Ee[0].if&&Ee[0].if.eth?D?D.p(Ee,Ue):(D=Sf(Ee),D.c(),D.m(g,null)):D&&(D.d(1),D=null),Ue&32&&Ke(g,Ee[5]),Ee[5]==1||Ee[5]==2?S?S.p(Ee,Ue):(S=Mf(Ee),S.c(),S.m(n,F)):S&&(S.d(1),S=null),(!$||Ue&2)&&V!==(V=(((Lt=(at=Ee[1].conf)==null?void 0:at.general)==null?void 0:Lt.hostname)??"Hostname")+"")&&q(y,V),Ue&1&&B.value!==Ee[0].hostname&&z(B,Ee[0].hostname),Ue&16&&(Y.checked=Ee[4]),(!$||Ue&2)&&G!==(G=(((Ge=Ee[1].setup)==null?void 0:Ge.static)??"Static IP")+"")&&q(oe,G),Ee[4]?A?(A.p(Ee,Ue),Ue&16&&Z(A,1)):(A=qf(Ee),A.c(),Z(A,1),A.m(H,null)):A&&(ht(),se(A,1,1,()=>{A=null}),vt()),Ee[4]?E?E.p(Ee,Ue):(E=Ef(Ee),E.c(),E.m(n,ne)):E&&(E.d(1),E=null),(!$||Ue&2)&&ie!==(ie=(((Fe=Ee[1].btn)==null?void 0:Fe.save)??"Save")+"")&&q(pe,ie);const Xe={};Ue&64&&(Xe.active=Ee[6]),Ue&2&&(Xe.message=((ze=Ee[1].setup)==null?void 0:ze.mask)??"Saving"),J.$set(Xe)},i(Ee){$||(Z(A),Z(J.$$.fragment,Ee),$=!0)},o(Ee){se(A),se(J.$$.fragment,Ee),$=!1},d(Ee){Ee&&(N(e),N(ae)),D&&D.d(),S&&S.d(),A&&A.d(),E&&E.d(),Ne(J,Ee),ke=!1,Bt(we)}}}function m_(t,e,l){let n={};Ml.subscribe(w=>{l(1,n=w)});let i=!1,s={};$i.subscribe(w=>{l(3,s=w)});let{sysinfo:a={}}=e,r=!1,f=1,c=!1;function m(w){pl.update(k=>(k.trying=w,k))}async function _(w){l(6,c=!0);const k=new FormData(w.target),O=new URLSearchParams;for(let M of k){const[I,F]=M;O.append(I,F)}let R=await(await fetch("save",{method:"POST",body:O})).json();l(6,c=!1),pl.update(M=>(M.hostname=k.get("sh"),M.usrcfg=R.success,M.booting=R.reboot,r&&(M.net.ip=k.get("si"),M.net.mask=k.get("su"),M.net.gw=k.get("sg"),M.net.dns1=k.get("sd")),R.reboot&&setTimeout(Wn,5e3,a,m),M))}function d(){f=Vt(this),l(5,f)}function h(){i=this.checked,l(2,i)}function b(){a.hostname=this.value,l(0,a)}function g(){r=this.checked,l(4,r)}return t.$$set=w=>{"sysinfo"in w&&l(0,a=w.sysinfo)},[a,n,i,s,r,f,c,_,d,h,b,g]}class p_ extends qt{constructor(e){super(),Tt(this,e,m_,__,St,{sysinfo:0})}}function d_(t){var y,T,B,X;let e,l,n,i=(((y=t[2].upload)==null?void 0:y.title)??"Upload")+"",s,a,r,f,c,m=(((T=t[2].upload)==null?void 0:T.desc)??"")+"",_,d,h,b,g,w,k,O,L=(((B=t[2].btn)==null?void 0:B.upload)??"Upload")+"",R,M,I,F,j,V;return I=new ml({props:{active:t[3],message:((X=t[2].upload)==null?void 0:X.mask)??"Uploading"}}),{c(){e=p("div"),l=p("div"),n=p("strong"),s=C(i),a=v(),r=C(t[1]),f=v(),c=p("p"),_=C(m),d=v(),h=p("form"),b=p("input"),g=v(),w=p("div"),k=p("button"),O=p("p"),R=C(L),M=v(),Pe(I.$$.fragment),u(c,"class","mb-4"),u(b,"name","file"),u(b,"type","file"),u(O,"class","mb-4"),u(k,"type","submit"),u(k,"class","btn-pri"),u(w,"class","w-full text-right mt-4"),u(h,"action",t[0]),u(h,"enctype","multipart/form-data"),u(h,"method","post"),u(h,"autocomplete","off"),u(l,"class","cnt"),u(e,"class","grid xl:grid-cols-4 lg:grid-cols-2 md:grid-cols-2")},m(H,K){P(H,e,K),o(e,l),o(l,n),o(n,s),o(n,a),o(n,r),o(l,f),o(l,c),o(c,_),o(l,d),o(l,h),o(h,b),o(h,g),o(h,w),o(w,k),o(k,O),o(O,R),P(H,M,K),Me(I,H,K),F=!0,j||(V=ce(h,"submit",t[4]),j=!0)},p(H,[K]){var U,G,oe,le;(!F||K&4)&&i!==(i=(((U=H[2].upload)==null?void 0:U.title)??"Upload")+"")&&q(s,i),(!F||K&2)&&q(r,H[1]),(!F||K&4)&&m!==(m=(((G=H[2].upload)==null?void 0:G.desc)??"")+"")&&q(_,m),(!F||K&4)&&L!==(L=(((oe=H[2].btn)==null?void 0:oe.upload)??"Upload")+"")&&q(R,L),(!F||K&1)&&u(h,"action",H[0]);const Y={};K&8&&(Y.active=H[3]),K&4&&(Y.message=((le=H[2].upload)==null?void 0:le.mask)??"Uploading"),I.$set(Y)},i(H){F||(Z(I.$$.fragment,H),F=!0)},o(H){se(I.$$.fragment,H),F=!1},d(H){H&&(N(e),N(M)),Ne(I,H),j=!1,V()}}}function h_(t,e,l){let{action:n}=e,{title:i}=e,s={};Ml.subscribe(f=>{l(2,s=f)});let a=!1;const r=()=>l(3,a=!0);return t.$$set=f=>{"action"in f&&l(0,n=f.action),"title"in f&&l(1,i=f.title)},[n,i,s,a,r]}class ls extends qt{constructor(e){super(),Tt(this,e,h_,d_,St,{action:0,title:1})}}function v_(t){var J,$,ke,we,D,S,A;let e,l,n,i,s=(((J=t[1].consent)==null?void 0:J.title)??"Consents")+"",a,r,f,c,m,_=((($=t[1].consent)==null?void 0:$.one_click)??"One-click")+"",d,h,b,g,w=(((ke=t[1].consent)==null?void 0:ke.read_more)??"Read more")+"",k,O,L,R,M,I,F,j=(((we=t[1].consent)==null?void 0:we.yes)??"Yes")+"",V,y,T,B,X,H,K=(((D=t[1].consent)==null?void 0:D.no)??"No")+"",Y,U,G,oe,le,Q=(((S=t[1].btn)==null?void 0:S.save)??"Save")+"",ne,re,ue,ie,pe,ae;return ue=new ml({props:{active:t[2],message:((A=t[1].consent)==null?void 0:A.mask_saving)??"Saving"}}),{c(){e=p("div"),l=p("div"),n=p("form"),i=p("div"),a=C(s),r=v(),f=p("hr"),c=v(),m=p("div"),d=C(_),h=p("br"),b=v(),g=p("a"),k=C(w),O=p("br"),L=v(),R=p("label"),M=p("input"),F=v(),V=C(j),y=v(),T=p("label"),B=p("input"),H=v(),Y=C(K),U=p("br"),G=v(),oe=p("div"),le=p("button"),ne=C(Q),re=v(),Pe(ue.$$.fragment),u(g,"href",hl("Data-collection-on-one-click-firmware-upgrade")),u(g,"target","_blank"),u(g,"class","text-blue-600 hover:text-blue-800"),u(M,"type","radio"),u(M,"name","sf"),M.value=1,M.checked=I=t[0].fwconsent===1,u(M,"class","rounded m-2"),M.required=!0,u(B,"type","radio"),u(B,"name","sf"),B.value=2,B.checked=X=t[0].fwconsent===2,u(B,"class","rounded m-2"),B.required=!0,u(m,"class","my-3"),u(le,"type","submit"),u(le,"class","btn-pri"),u(oe,"class","my-3"),u(n,"autocomplete","off"),u(l,"class","cnt"),u(e,"class","grid xl:grid-cols-3 lg:grid-cols-2")},m(E,W){P(E,e,W),o(e,l),o(l,n),o(n,i),o(i,a),o(n,r),o(n,f),o(n,c),o(n,m),o(m,d),o(m,h),o(m,b),o(m,g),o(g,k),o(m,O),o(m,L),o(m,R),o(R,M),o(R,F),o(R,V),o(m,y),o(m,T),o(T,B),o(T,H),o(T,Y),o(m,U),o(n,G),o(n,oe),o(oe,le),o(le,ne),P(E,re,W),Me(ue,E,W),ie=!0,pe||(ae=ce(n,"submit",pn(t[3])),pe=!0)},p(E,[W]){var fe,_e,he,x,ve,ge,De;(!ie||W&2)&&s!==(s=(((fe=E[1].consent)==null?void 0:fe.title)??"Consents")+"")&&q(a,s),(!ie||W&2)&&_!==(_=(((_e=E[1].consent)==null?void 0:_e.one_click)??"One-click")+"")&&q(d,_),(!ie||W&2)&&w!==(w=(((he=E[1].consent)==null?void 0:he.read_more)??"Read more")+"")&&q(k,w),(!ie||W&1&&I!==(I=E[0].fwconsent===1))&&(M.checked=I),(!ie||W&2)&&j!==(j=(((x=E[1].consent)==null?void 0:x.yes)??"Yes")+"")&&q(V,j),(!ie||W&1&&X!==(X=E[0].fwconsent===2))&&(B.checked=X),(!ie||W&2)&&K!==(K=(((ve=E[1].consent)==null?void 0:ve.no)??"No")+"")&&q(Y,K),(!ie||W&2)&&Q!==(Q=(((ge=E[1].btn)==null?void 0:ge.save)??"Save")+"")&&q(ne,Q);const ee={};W&4&&(ee.active=E[2]),W&2&&(ee.message=((De=E[1].consent)==null?void 0:De.mask_saving)??"Saving"),ue.$set(ee)},i(E){ie||(Z(ue.$$.fragment,E),ie=!0)},o(E){se(ue.$$.fragment,E),ie=!1},d(E){E&&(N(e),N(re)),Ne(ue,E),pe=!1,ae()}}}function b_(t,e,l){let{basepath:n="/"}=e,{sysinfo:i={}}=e,s={};Ml.subscribe(f=>{l(1,s=f)});let a=!1;async function r(f){l(2,a=!0);const c=new FormData(f.target),m=new URLSearchParams;for(let h of c){const[b,g]=h;m.append(b,g)}let d=await(await fetch("save",{method:"POST",body:m})).json();l(2,a=!1),pl.update(h=>(h.fwconsent=c.sf===!0?1:c.sf===!1?2:0,h.booting=d.reboot,h)),sn(n)}return t.$$set=f=>{"basepath"in f&&l(4,n=f.basepath),"sysinfo"in f&&l(0,i=f.sysinfo)},[i,s,a,r,n]}class g_ extends qt{constructor(e){super(),Tt(this,e,b_,v_,St,{basepath:4,sysinfo:0})}}function Df(t,e,l){const n=t.slice();return n[30]=e[l],n[31]=e,n[32]=l,n}function Af(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function k_(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function Lf(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function w_(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function Of(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function If(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function Rf(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function Ff(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function Uf(t){let e,l=ut(t[1].o),n=[];for(let i=0;i0?"text-green-600":"text-gray-300"),u(Xe,"class",$e=t[32]{l(0,i=U)});let s=["mo","tu","we","th","fr","sa","su"],a={},r=!0,f=!1;Wu.subscribe(U=>{U.o&&(l(1,a=U),l(2,r=!1))}),sc();async function c(U){l(3,f=!0);const G=new URLSearchParams;G.append("r","true"),G.append("rc",a.o.length),a.o.forEach(function(le,Q){G.append("rt"+Q,le.t),G.append("rn"+Q,le.n),G.append("rd"+Q,le.d),G.append("ra"+Q,le.a),G.append("rh"+Q,le.h),G.append("rv"+Q,le.v),G.append("rsm"+Q,le.s.m),G.append("rsd"+Q,le.s.d),G.append("rem"+Q,le.e.m),G.append("red"+Q,le.e.d)}),await(await fetch("save",{method:"POST",body:G})).json(),l(3,f=!1),sn(n+"configuration")}let m=function(U,G){return U.includes(G)?U=U.filter(function(oe){return oe!==G}):U.push(G),U},_=function(){let U=a.o;U.push({t:1,n:"",d:3,a:[0,1,2,3,4,5,6,7],h:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],v:.001,s:{m:0,d:0},e:{m:0,d:0}}),l(1,a.o=U,a)},d=function(U){let G=a.o;G.splice(U,1),l(1,a.o=G,a)},h=function(U){if(U<=0)return;let G=a.o;var oe=G[U];G[U]=G[U-1],G[U-1]=oe,l(1,a.o=G,a)},b=function(U){let G=a.o;if(!(U>=G.length-1)){var oe=G[U];G[U]=G[U+1],G[U+1]=oe,l(1,a.o=G,a)}};function g(U,G){U[G].n=this.value,l(1,a)}function w(U,G){U[G].d=Vt(this),l(1,a)}function k(U,G){U[G].t=Vt(this),l(1,a)}function O(U,G){U[G].v=je(this.value),l(1,a)}const L=(U,G,oe,le)=>l(1,oe[le].a=m(U.a,G),a),R=(U,G,oe,le)=>l(1,oe[le].h=m(U.h,G),a),M=(U,G,oe,le)=>l(1,oe[le].h=m(U.h,G+8),a),I=(U,G,oe,le)=>l(1,oe[le].h=m(U.h,G+16),a);function F(U,G){U[G].s.d=Vt(this),l(1,a)}function j(U,G){U[G].s.m=Vt(this),l(1,a)}function V(U,G){U[G].e.d=Vt(this),l(1,a)}function y(U,G){U[G].e.m=Vt(this),l(1,a)}const T=U=>h(U),B=U=>h(U),X=U=>b(U),H=U=>b(U),K=U=>d(U),Y=U=>d(U);return t.$$set=U=>{"basepath"in U&&l(11,n=U.basepath)},[i,a,r,f,s,c,m,_,d,h,b,n,g,w,k,O,L,R,M,I,F,j,V,y,T,B,X,H,K,Y]}class P_ extends qt{constructor(e){super(),Tt(this,e,N_,M_,St,{basepath:11},null,[-1,-1])}}function Vf(t,e,l){const n=t.slice();return n[13]=e[l],n[14]=e,n[15]=l,n}function Kf(t,e,l){const n=t.slice();return n[13]=e[l],n[16]=e,n[17]=l,n}function Yf(t){let e,l,n,i=ut(t[1]),s=[];for(let a=0;a{l(3,r=w)});let f=!1,c,m;async function _(){if(confirm("Clear all data?"))for(let w in i)(w.startsWith("i")||w.startsWith("e"))&&l(0,i[w]=0,i)}let d=!1;async function h(w){l(5,d=!0);const k=new FormData(w.target),O=new URLSearchParams;for(let R of k){const[M,I]=R;O.append(M,I)}await(await fetch(s,{method:"POST",body:O})).json(),l(5,d=!1),sn(a)}function b(w){i[w.key]=je(this.value),l(0,i)}function g(w){i[w.key]=je(this.value),l(0,i)}return t.$$set=w=>{"prefix"in w&&l(8,n=w.prefix),"data"in w&&l(0,i=w.data),"url"in w&&l(9,s=w.url),"basepath"in w&&l(10,a=w.basepath)},t.$$.update=()=>{if(t.$$.dirty&263){l(1,c=[]),l(2,m=[]);for(let w in i){let k=[];w.startsWith("i")?k=c:w.startsWith("e")&&(k=m,i[w]&&l(4,f=!0)),k.push({key:w,name:n+" "+w.substring(1),value:i[w]})}}},[i,c,m,r,f,d,_,h,n,s,a,b,g]}class Ku extends qt{constructor(e){super(),Tt(this,e,q_,T_,St,{prefix:8,data:0,url:9,basepath:10})}}function E_(t){let e,l;return e=new nc({props:{data:t[6],sysinfo:t[7],prices:t[1],dayPlot:t[2],monthPlot:t[3],temperatures:t[4],translations:t[5],tariffData:t[8]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&64&&(s.data=n[6]),i&128&&(s.sysinfo=n[7]),i&2&&(s.prices=n[1]),i&4&&(s.dayPlot=n[2]),i&8&&(s.monthPlot=n[3]),i&16&&(s.temperatures=n[4]),i&32&&(s.translations=n[5]),i&256&&(s.tariffData=n[8]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function D_(t){let e,l;return e=new Vc({props:{sysinfo:t[7],basepath:t[0],data:t[6]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&128&&(s.sysinfo=n[7]),i&1&&(s.basepath=n[0]),i&64&&(s.data=n[6]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function A_(t){let e,l;return e=new P_({props:{basepath:t[0]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&1&&(s.basepath=n[0]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function L_(t){let e,l;return e=new n_({props:{sysinfo:t[7],data:t[6]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&128&&(s.sysinfo=n[7]),i&64&&(s.data=n[6]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function O_(t){let e,l;return e=new ls({props:{title:"CA",action:"/mqtt-ca"}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p:We,i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function I_(t){let e,l;return e=new ls({props:{title:"certificate",action:"/mqtt-cert"}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p:We,i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function R_(t){let e,l;return e=new ls({props:{title:"private key",action:"/mqtt-key"}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p:We,i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function F_(t){let e,l;return e=new g_({props:{sysinfo:t[7],basepath:t[0]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&128&&(s.sysinfo=n[7]),i&1&&(s.basepath=n[0]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function U_(t){let e,l;return e=new p_({props:{sysinfo:t[7]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&128&&(s.sysinfo=n[7]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function B_(t){let e,l;return e=new u_({props:{sysinfo:t[7],basepath:t[0]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&128&&(s.sysinfo=n[7]),i&1&&(s.basepath=n[0]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function j_(t){let e,l;return e=new Ku({props:{prefix:"UTC Hour",data:t[2],url:"/dayplot",basepath:t[0]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&4&&(s.data=n[2]),i&1&&(s.basepath=n[0]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function z_(t){let e,l;return e=new Ku({props:{prefix:"Day",data:t[3],url:"/monthplot",basepath:t[0]}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&8&&(s.data=n[3]),i&1&&(s.basepath=n[0]),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function y_(t){let e,l,n,i,s,a,r,f,c,m,_,d,h,b,g,w,k,O,L,R,M,I,F,j,V,y;return e=new l0({props:{data:t[6],basepath:t[0]}}),n=new kl({props:{path:"/",$$slots:{default:[E_]},$$scope:{ctx:t}}}),s=new kl({props:{path:"/configuration",$$slots:{default:[D_]},$$scope:{ctx:t}}}),r=new kl({props:{path:"/priceconfig",$$slots:{default:[A_]},$$scope:{ctx:t}}}),c=new kl({props:{path:"/status",$$slots:{default:[L_]},$$scope:{ctx:t}}}),_=new kl({props:{path:"/mqtt-ca",$$slots:{default:[O_]},$$scope:{ctx:t}}}),h=new kl({props:{path:"/mqtt-cert",$$slots:{default:[I_]},$$scope:{ctx:t}}}),g=new kl({props:{path:"/mqtt-key",$$slots:{default:[R_]},$$scope:{ctx:t}}}),k=new kl({props:{path:"/consent",$$slots:{default:[F_]},$$scope:{ctx:t}}}),L=new kl({props:{path:"/setup",$$slots:{default:[U_]},$$scope:{ctx:t}}}),M=new kl({props:{path:"/vendor",$$slots:{default:[B_]},$$scope:{ctx:t}}}),F=new kl({props:{path:"/edit-day",$$slots:{default:[j_]},$$scope:{ctx:t}}}),V=new kl({props:{path:"/edit-month",$$slots:{default:[z_]},$$scope:{ctx:t}}}),{c(){Pe(e.$$.fragment),l=v(),Pe(n.$$.fragment),i=v(),Pe(s.$$.fragment),a=v(),Pe(r.$$.fragment),f=v(),Pe(c.$$.fragment),m=v(),Pe(_.$$.fragment),d=v(),Pe(h.$$.fragment),b=v(),Pe(g.$$.fragment),w=v(),Pe(k.$$.fragment),O=v(),Pe(L.$$.fragment),R=v(),Pe(M.$$.fragment),I=v(),Pe(F.$$.fragment),j=v(),Pe(V.$$.fragment)},m(T,B){Me(e,T,B),P(T,l,B),Me(n,T,B),P(T,i,B),Me(s,T,B),P(T,a,B),Me(r,T,B),P(T,f,B),Me(c,T,B),P(T,m,B),Me(_,T,B),P(T,d,B),Me(h,T,B),P(T,b,B),Me(g,T,B),P(T,w,B),Me(k,T,B),P(T,O,B),Me(L,T,B),P(T,R,B),Me(M,T,B),P(T,I,B),Me(F,T,B),P(T,j,B),Me(V,T,B),y=!0},p(T,B){const X={};B&64&&(X.data=T[6]),B&1&&(X.basepath=T[0]),e.$set(X);const H={};B&2558&&(H.$$scope={dirty:B,ctx:T}),n.$set(H);const K={};B&2241&&(K.$$scope={dirty:B,ctx:T}),s.$set(K);const Y={};B&2049&&(Y.$$scope={dirty:B,ctx:T}),r.$set(Y);const U={};B&2240&&(U.$$scope={dirty:B,ctx:T}),c.$set(U);const G={};B&2048&&(G.$$scope={dirty:B,ctx:T}),_.$set(G);const oe={};B&2048&&(oe.$$scope={dirty:B,ctx:T}),h.$set(oe);const le={};B&2048&&(le.$$scope={dirty:B,ctx:T}),g.$set(le);const Q={};B&2177&&(Q.$$scope={dirty:B,ctx:T}),k.$set(Q);const ne={};B&2176&&(ne.$$scope={dirty:B,ctx:T}),L.$set(ne);const re={};B&2177&&(re.$$scope={dirty:B,ctx:T}),M.$set(re);const ue={};B&2053&&(ue.$$scope={dirty:B,ctx:T}),F.$set(ue);const ie={};B&2057&&(ie.$$scope={dirty:B,ctx:T}),V.$set(ie)},i(T){y||(Z(e.$$.fragment,T),Z(n.$$.fragment,T),Z(s.$$.fragment,T),Z(r.$$.fragment,T),Z(c.$$.fragment,T),Z(_.$$.fragment,T),Z(h.$$.fragment,T),Z(g.$$.fragment,T),Z(k.$$.fragment,T),Z(L.$$.fragment,T),Z(M.$$.fragment,T),Z(F.$$.fragment,T),Z(V.$$.fragment,T),y=!0)},o(T){se(e.$$.fragment,T),se(n.$$.fragment,T),se(s.$$.fragment,T),se(r.$$.fragment,T),se(c.$$.fragment,T),se(_.$$.fragment,T),se(h.$$.fragment,T),se(g.$$.fragment,T),se(k.$$.fragment,T),se(L.$$.fragment,T),se(M.$$.fragment,T),se(F.$$.fragment,T),se(V.$$.fragment,T),y=!1},d(T){T&&(N(l),N(i),N(a),N(f),N(m),N(d),N(b),N(w),N(O),N(R),N(I),N(j)),Ne(e,T),Ne(n,T),Ne(s,T),Ne(r,T),Ne(c,T),Ne(_,T),Ne(h,T),Ne(g,T),Ne(k,T),Ne(L,T),Ne(M,T),Ne(F,T),Ne(V,T)}}}function Jf(t){let e,l,n,i;const s=[W_,H_],a=[];function r(f,c){return f[7].trying?0:1}return e=r(t),l=a[e]=s[e](t),{c(){l.c(),n=yt()},m(f,c){a[e].m(f,c),P(f,n,c),i=!0},p(f,c){let m=e;e=r(f),e===m?a[e].p(f,c):(ht(),se(a[m],1,1,()=>{a[m]=null}),vt(),l=a[e],l?l.p(f,c):(l=a[e]=s[e](f),l.c()),Z(l,1),l.m(n.parentNode,n))},i(f){i||(Z(l),i=!0)},o(f){se(l),i=!1},d(f){f&&N(n),a[e].d(f)}}}function H_(t){let e,l;return e=new ml({props:{active:"true",message:"Device is booting, please wait"}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p:We,i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function W_(t){let e,l;return e=new ml({props:{active:"true",message:"Device is booting, please wait. Trying to reach it on "+t[7].trying}}),{c(){Pe(e.$$.fragment)},m(n,i){Me(e,n,i),l=!0},p(n,i){const s={};i&128&&(s.message="Device is booting, please wait. Trying to reach it on "+n[7].trying),e.$set(s)},i(n){l||(Z(e.$$.fragment,n),l=!0)},o(n){se(e.$$.fragment,n),l=!1},d(n){Ne(e,n)}}}function G_(t){let e,l,n,i;l=new Mu({props:{basepath:t[0],$$slots:{default:[y_]},$$scope:{ctx:t}}});let s=t[7].booting&&Jf(t);return{c(){e=p("div"),Pe(l.$$.fragment),n=v(),s&&s.c(),u(e,"class","container mx-auto m-3")},m(a,r){P(a,e,r),Me(l,e,null),o(e,n),s&&s.m(e,null),i=!0},p(a,[r]){const f={};r&1&&(f.basepath=a[0]),r&2559&&(f.$$scope={dirty:r,ctx:a}),l.$set(f),a[7].booting?s?(s.p(a,r),r&128&&Z(s,1)):(s=Jf(a),s.c(),Z(s,1),s.m(e,null)):s&&(ht(),se(s,1,1,()=>{s=null}),vt())},i(a){i||(Z(l.$$.fragment,a),Z(s),i=!0)},o(a){se(l.$$.fragment,a),se(s),i=!1},d(a){a&&N(e),Ne(l),s&&s.d()}}}function V_(t,e,l){let n=document.getElementsByTagName("base")[0].getAttribute("href");n||(n="/");let i;Ji.subscribe(b=>{l(1,i=b)});let s;Ou.subscribe(b=>{l(2,s=b)});let a;Iu.subscribe(b=>{l(3,a=b)});let r;Ru.subscribe(b=>{l(4,r=b)});let f={};Ml.subscribe(b=>{l(5,f=b)});let c,m={},_={},d;pl.subscribe(b=>{var g;l(7,_=b),_.vndcfg===!1?sn(n+"vendor"):_.usrcfg===!1?sn(n+"setup"):_.fwconsent===0&&sn(n+"consent"),_.ui.k===1?document.documentElement.classList.add("dark"):_.ui.k===0?document.documentElement.classList.remove("dark"):window.matchMedia("(prefers-color-scheme: dark)").matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"),_.ui.lang&&_.ui.lang!=((g=f==null?void 0:f.language)==null?void 0:g.code)&&Bu(_.ui.lang),_.version&&d&&_.version!=d&&window.location.reload(),d=_.version,c&&clearTimeout(c),c=setTimeout(pi,!m||!m.u||m.u<30||_!=null&&_.upgrading?1e4:3e5)}),C1.subscribe(b=>{l(6,m=b),Y0(b)});let h={};return Uu.subscribe(b=>{l(8,h=b)}),Fu(),[n,i,s,a,r,f,m,_,h]}class K_ extends qt{constructor(e){super(),Tt(this,e,V_,G_,St,{})}}new K_({target:document.getElementById("app")}); +Occurred in: ${i}`:"",a=uo(t),r=fu(e)?e(a):e;return`<${a}> ${r}${o}`}const Cu=t=>(...e)=>t(Dr(...e)),Su=Cu(t=>{throw new Error(t)}),ki=Cu(console.warn),So=4,Ar=3,Lr=2,Or=1,Ir=1;function Rr(t,e){const l=t.default?0:El(t.fullPath).reduce((n,i)=>{let o=n;return o+=So,wr(i)?o+=Ir:Cr(i)?o+=Lr:hu(i)?o-=So+Or:o+=Ar,o},0);return{route:t,score:l,index:e}}function Fr(t){return t.map(Rr).sort((e,l)=>e.scorel.score?-1:e.index-l.index)}function Mu(t,e){let l,n;const[i]=e.split("?"),o=El(i),a=o[0]==="",r=Fr(t);for(let f=0,c=r.length;f({...m,params:d,uri:k});if(m.default){n=h(e);continue}const g=El(m.fullPath),b=Math.max(o.length,g.length);let C=0;for(;C{c===".."?f.pop():c!=="."&&f.push(c)}),Di(`/${f.join("/")}`,n)}function Mo(t,e){const{pathname:l,hash:n="",search:i="",state:o}=t,a=El(e,!0),r=El(l,!0);for(;a.length;)a[0]!==r[0]&&Su(_n,`Invalid state: All locations must begin with the basepath "${e}", found "${l}"`),a.shift(),r.shift();return{pathname:oi(...r),hash:n,search:i,state:o}}const No=t=>t.length===1?"":t,ro=t=>{const e=t.indexOf("?"),l=t.indexOf("#"),n=e!==-1,i=l!==-1,o=i?No(Qn(t,l)):"",a=i?Qn(t,0,l):t,r=n?No(Qn(a,e)):"";return{pathname:(n?Qn(a,0,e):a)||"/",search:r,hash:o}},Ur=t=>{const{pathname:e,search:l,hash:n}=t;return e+l+n};function zr(t,e,l){return oi(l,Br(t,e))}function jr(t,e){const l=ao(Sr(t)),n=El(l,!0),i=El(e,!0).slice(0,n.length),o=Nu({fullPath:l},oi(...i));return o&&o.uri}const Ai="POP",Hr="PUSH",Wr="REPLACE";function Li(t){return{...t.location,pathname:encodeURI(decodeURI(t.location.pathname)),state:t.history.state,_key:t.history.state&&t.history.state._key||"initial"}}function yr(t){let e=[],l=Li(t),n=Ai;const i=(o=e)=>o.forEach(a=>a({location:l,action:n}));return{get location(){return l},listen(o){e.push(o);const a=()=>{l=Li(t),n=Ai,i([o])};i([o]);const r=cu(t,"popstate",a);return()=>{r(),e=e.filter(f=>f!==o)}},navigate(o,a){const{state:r={},replace:f=!1}=a||{};if(n=f?Wr:Hr,uu(o))a&&ki(wu,"Navigation options (state or replace) are not supported, when passing a number as the first argument to navigate. They are ignored."),n=Ai,t.history.go(o);else{const c={...r,_key:vr()};try{t.history[f?"replaceState":"pushState"](c,"",o)}catch{t.location[f?"replace":"assign"](o)}}l=Li(t),i()}}}function Oi(t,e){return{...ro(e),state:t}}function Gr(t="/"){let e=0,l=[Oi(null,t)];return{get entries(){return l},get location(){return l[e]},addEventListener(){},removeEventListener(){},history:{get state(){return l[e].state},pushState(n,i,o){e++,l=l.slice(0,e),l.push(Oi(n,o))},replaceState(n,i,o){l[e]=Oi(n,o)},go(n){const i=e+n;i<0||i>l.length-1||(e=i)}}}}const Vr=!!(!Ol&&window.document&&window.document.createElement),Kr=!Ol&&window.location.origin==="null",Pu=yr(Vr&&!Kr?window:Gr()),{navigate:nn}=Pu;let Dl=null,Tu=!0;function Yr(t,e){const l=document.querySelectorAll("[data-svnav-router]");for(let n=0;nDl.level||t.level===Dl.level&&Yr(t.routerId,Dl.routerId))&&(Dl=t)}function Xr(){Dl=null}function Zr(){Tu=!1}function Po(t){if(!t)return!1;const e="tabindex";try{if(!t.hasAttribute(e)){t.setAttribute(e,"-1");let l;l=cu(t,"blur",()=>{t.removeAttribute(e),l()})}return t.focus(),document.activeElement===t}catch{return!1}}function Jr(t,e){return Number(t.dataset.svnavRouteEnd)===e}function $r(t){return/^H[1-6]$/i.test(t.tagName)}function To(t,e=document){return e.querySelector(t)}function xr(t){let l=To(`[data-svnav-route-start="${t}"]`).nextElementSibling;for(;!Jr(l,t);){if($r(l))return l;const n=To("h1,h2,h3,h4,h5,h6",l);if(n)return n;l=l.nextElementSibling}return null}function e1(t){Promise.resolve(rn(t.focusElement)).then(e=>{const l=e||xr(t.id);l||ki(_n,`Could not find an element to focus. You should always render a header for accessibility reasons, or set a custom focus element via the "useFocus" hook. If you don't want this Route or Router to manage focus, pass "primary={false}" to it.`,t,Ni),!Po(l)&&Po(document.documentElement)})}const t1=(t,e,l)=>(n,i)=>cr().then(()=>{if(!Dl||Tu){Zr();return}if(n&&e1(Dl.route),t.announcements&&i){const{path:o,fullPath:a,meta:r,params:f,uri:c}=Dl.route,m=t.createAnnouncement({path:o,fullPath:a,meta:r,params:f,uri:c},rn(l));Promise.resolve(m).then(_=>{e.set(_)})}Xr()}),l1="position:fixed;top:-1px;left:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;";function n1(t){let e,l,n=[{role:"status"},{"aria-atomic":"true"},{"aria-live":"polite"},{"data-svnav-announcer":""},_u(t[6],l1)],i={};for(let o=0;o`Navigated to ${Y.uri}`,announcements:!0,...g},k=m,A=ao(m),I=on(ji),R=on(Mn),T=!I,F=o1(),L=h&&!(R&&!R.manageFocus),z=rl("");ql(t,z,Y=>l(0,r=Y));const G=R?R.disableInlineStyles:b,H=rl([]);ql(t,H,Y=>l(20,a=Y));const q=rl(null);ql(t,q,Y=>l(18,i=Y));let U=!1;const Z=T?0:R.level+1,Q=T?rl((()=>Mo(Ol?ro(_):d.location,A))()):I;ql(t,Q,Y=>l(17,n=Y));const K=rl(n);ql(t,K,Y=>l(19,o=Y));const B=t1(C,z,Q),y=Y=>le=>le.filter(ue=>ue.id!==Y);function ie(Y){if(Ol){if(U)return;const le=Nu(Y,n.pathname);if(le)return U=!0,le}else H.update(le=>{const ue=y(Y.id)(le);return ue.push(Y),ue})}function te(Y){H.update(y(Y))}return!T&&m!==qo&&ki(_n,'Only top-level Routers can have a "basepath" prop. It is ignored.',{basepath:m}),T&&(so(()=>d.listen(le=>{const ue=Mo(le.location,A);K.set(n),Q.set(ue)})),Jn(ji,Q)),Jn(Mn,{activeRoute:q,registerRoute:ie,unregisterRoute:te,manageFocus:L,level:Z,id:F,history:T?d:R.history,basepath:T?A:R.basepath,disableInlineStyles:G}),t.$$set=Y=>{"basepath"in Y&&l(11,m=Y.basepath),"url"in Y&&l(12,_=Y.url),"history"in Y&&l(13,d=Y.history),"primary"in Y&&l(14,h=Y.primary),"a11y"in Y&&l(15,g=Y.a11y),"disableInlineStyles"in Y&&l(16,b=Y.disableInlineStyles),"$$scope"in Y&&l(21,c=Y.$$scope)},t.$$.update=()=>{if(t.$$.dirty[0]&2048&&m!==k&&ki(_n,'You cannot change the "basepath" prop. It is ignored.'),t.$$.dirty[0]&1179648){const Y=Mu(a,n.pathname);q.set(Y)}if(t.$$.dirty[0]&655360&&T){const Y=!!n.hash,le=!Y&&L,ue=!Y||n.pathname!==o.pathname;B(le,ue)}t.$$.dirty[0]&262144&&L&&i&&i.primary&&Qr({level:Z,routerId:F,route:i})},[r,C,T,F,L,z,G,H,q,Q,K,m,_,d,h,g,b,n,i,o,a,c,f]}class a1 extends Tt{constructor(e){super(),Pt(this,e,s1,i1,Ct,{basepath:11,url:12,history:13,primary:14,a11y:15,disableInlineStyles:16},null,[-1,-1])}}const qu=a1;function si(t,e,l=Mn,n=_n){on(l)||Su(t,o=>`You cannot use ${o} outside of a ${uo(n)}.`,e)}const f1=t=>{const{subscribe:e}=on(t);return{subscribe:e}};function Eu(){return si(bu),f1(ji)}function Du(){const{history:t}=on(Mn);return t}function Au(){const t=on(pu);return t?br(t,e=>e.base):rl("/")}function Lu(){si(ku);const t=Au(),{basepath:e}=on(Mn);return n=>zr(n,rn(t),e)}function u1(){si(gu);const t=Lu(),{navigate:e}=Du();return(n,i)=>{const o=uu(n)?n:t(n);return e(o,i)}}const r1=t=>({params:t&16,location:t&8}),Eo=t=>({params:Ol?rn(t[10]):t[4],location:t[3],navigate:t[11]});function Do(t){let e,l;return e=new qu({props:{primary:t[1],$$slots:{default:[m1]},$$scope:{ctx:t}}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&2&&(o.primary=n[1]),i&528409&&(o.$$scope={dirty:i,ctx:n}),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function c1(t){let e;const l=t[18].default,n=lo(l,t,t[19],Eo);return{c(){n&&n.c()},m(i,o){n&&n.m(i,o),e=!0},p(i,o){n&&n.p&&(!e||o&524312)&&io(n,l,i,i[19],e?no(l,i[19],o,r1):oo(i[19]),Eo)},i(i){e||(X(n,i),e=!0)},o(i){ee(n,i),e=!1},d(i){n&&n.d(i)}}}function _1(t){let e,l,n;const i=[{location:t[3]},{navigate:t[11]},Ol?rn(t[10]):t[4],t[12]];var o=t[0];function a(r,f){let c={};for(let m=0;m{Me(c,1)}),ct()}o?(e=ko(o,a(r,f)),Ne(e.$$.fragment),X(e.$$.fragment,1),Se(e,l.parentNode,l)):e=null}else if(o){const c=f&7192?Ui(i,[f&8&&{location:r[3]},f&2048&&{navigate:r[11]},f&1040&&ui(Ol?rn(r[10]):r[4]),f&4096&&ui(r[12])]):{};e.$set(c)}},i(r){n||(e&&X(e.$$.fragment,r),n=!0)},o(r){e&&ee(e.$$.fragment,r),n=!1},d(r){r&&N(l),e&&Me(e,r)}}}function m1(t){let e,l,n,i;const o=[_1,c1],a=[];function r(f,c){return f[0]!==null?0:1}return e=r(t),l=a[e]=o[e](t),{c(){l.c(),n=yt()},m(f,c){a[e].m(f,c),P(f,n,c),i=!0},p(f,c){let m=e;e=r(f),e===m?a[e].p(f,c):(rt(),ee(a[m],1,1,()=>{a[m]=null}),ct(),l=a[e],l?l.p(f,c):(l=a[e]=o[e](f),l.c()),X(l,1),l.m(n.parentNode,n))},i(f){i||(X(l),i=!0)},o(f){ee(l),i=!1},d(f){f&&N(n),a[e].d(f)}}}function p1(t){let e,l,n,i,o,a=[zi(t[7]),{"data-svnav-route-start":t[5]}],r={};for(let _=0;_{f=null}),ct())},i(_){o||(X(f),o=!0)},o(_){ee(f),o=!1},d(_){_&&(N(e),N(l),N(n),N(i)),f&&f.d(_)}}}const d1=ru();function h1(t,e,l){let n;const i=["path","component","meta","primary"];let o=bi(e,i),a,r,f,c,{$$slots:m={},$$scope:_}=e,{path:d=""}=e,{component:h=null}=e,{meta:g={}}=e,{primary:b=!0}=e;si(Ni,e);const C=d1(),{registerRoute:k,unregisterRoute:A,activeRoute:I,disableInlineStyles:R}=on(Mn);ql(t,I,U=>l(16,a=U));const T=Au();ql(t,T,U=>l(17,f=U));const F=Eu();ql(t,F,U=>l(3,r=U));const L=rl(null);let z;const G=rl(),H=rl({});ql(t,H,U=>l(4,c=U)),Jn(pu,G),Jn(gr,H),Jn(kr,L);const q=u1();return Ol||ur(()=>A(C)),t.$$set=U=>{l(24,e=Ml(Ml({},e),vi(U))),l(12,o=bi(e,i)),"path"in U&&l(13,d=U.path),"component"in U&&l(0,h=U.component),"meta"in U&&l(14,g=U.meta),"primary"in U&&l(1,b=U.primary),"$$scope"in U&&l(19,_=U.$$scope)},t.$$.update=()=>{if(t.$$.dirty&155658){const U=d==="",Z=oi(f,d),V={id:C,path:d,meta:g,default:U,fullPath:U?"":Z,base:U?f:jr(Z,r.pathname),primary:b,focusElement:L};G.set(V),l(15,z=k(V))}if(t.$$.dirty&98304&&l(2,n=!!(z||a&&a.id===C)),t.$$.dirty&98308&&n){const{params:U}=z||a;H.set(U)}},e=vi(e),[h,b,n,r,c,C,I,R,T,F,H,q,o,d,g,z,a,f,m,_]}class v1 extends Tt{constructor(e){super(),Pt(this,e,h1,p1,Ct,{path:13,component:0,meta:14,primary:1})}}const Cl=v1;function b1(t){let e,l,n,i;const o=t[13].default,a=lo(o,t,t[12],null);let r=[{href:t[0]},t[2],t[1]],f={};for(let c=0;cl(11,_=L));const I=rr(),R=Lu(),{navigate:T}=Du();function F(L){I("click",L),hr(L)&&(L.preventDefault(),T(n,{state:C,replace:a||b}))}return t.$$set=L=>{l(19,e=Ml(Ml({},e),vi(L))),l(18,m=bi(e,c)),"to"in L&&l(5,g=L.to),"replace"in L&&l(6,b=L.replace),"state"in L&&l(7,C=L.state),"getProps"in L&&l(8,k=L.getProps),"$$scope"in L&&l(12,h=L.$$scope)},t.$$.update=()=>{t.$$.dirty&2080&&l(0,n=R(g,_)),t.$$.dirty&2049&&l(10,i=Hi(_.pathname,n)),t.$$.dirty&2049&&l(9,o=n===_.pathname),t.$$.dirty&2049&&(a=ro(n)===Ur(_)),t.$$.dirty&512&&l(2,r=o?{"aria-current":"page"}:{}),l(1,f=(()=>{if(fu(k)){const L=k({location:_,href:n,isPartiallyCurrent:i,isCurrent:o});return{...m,...L}}return m})())},e=vi(e),[n,f,r,A,F,g,b,C,k,o,i,_,h,d]}class k1 extends Tt{constructor(e){super(),Pt(this,e,g1,b1,Ct,{to:5,replace:6,state:7,getProps:8})}}const kl=k1;function ln(t){return t===1?"green":t===2?"yellow":t===3?"red":"gray"}function w1(t,e){return t>218&&t<242?"#23ac05":t>212&&t<248?"#b1d900":t>208&&t<252?"#a3b200":"#b20000"}function Pi(t,e){let l;return t>90?l="#b20000":t>85?l="#b19601":t>80?l="#a3b200":t>75?l="#569f12":l="#23ac05",l}function ei(t){return t>75?"#23ac05":t>50?"#77d900":t>25?"#94d900":"#569f12"}function wi(t){switch(t){case 1:return"Aidon";case 2:return"Kaifa";case 3:return"Kamstrup";case 8:return"Iskra";case 9:return"Landis+Gyr";case 10:return"Sagemcom";default:return"Unknown"}}function Ft(t){for(t=t.toString();t.length<2;)t="0"+t;return t}function Qe(t,e){switch(e){case 5:switch(t){case"esp8266":return"Pow-K (GPIO12)";case"esp32s2":return"Pow-K+"}case 7:switch(t){case"esp8266":return"Pow-U (GPIO12)";case"esp32s2":return"Pow-U+"}case 6:return"Pow-P1";case 51:return"Wemos S2 mini";case 50:return"Generic ESP32-S2";case 201:return"Wemos LOLIN D32";case 202:return"Adafruit HUZZAH32";case 203:return"DevKitC";case 241:return"LilyGO T-ETH-POE";case 242:return"M5 PoESP32";case 243:return"WT32-ETH01";case 245:return"wESP32";case 200:return"Generic ESP32";case 2:return"HAN Reader 2.0 by Max Spencer";case 0:return"Custom hardware by Roar Fredriksen";case 1:return"Kamstrup module by Egil Opsahl";case 8:return"µHAN mosquito by dbeinder";case 3:return"Pow-K (UART0)";case 4:return"Pow-U (UART0)";case 101:return"Wemos D1 mini";case 100:return"Generic ESP8266";case 70:return"Generic ESP32-C3";case 71:return"ESP32-C3-DevKitM-1";case 80:return"Generic ESP32-S3"}return"Unknown"}function $n(t){switch(t){case 2:case 4:case 7:return!0}return!1}function Zt(t,e){return t==1||t==2&&e}function vl(t){return"https://github.com/UtilitechAS/amsreader-firmware/wiki/"+t}function xt(t,e){return t==null||isNaN(t)?"-":(isNaN(e)&&(e=t<1?2:t<10?1:0),t.toFixed(e))}function Cn(t,e){return t.setTime(t.getTime()+e*36e5),t}function C1(t,e){return t.setTime(t.getTime()+e*6e4),t}function S1(t){return t=="EOE"?"ENTSO-E":t=="HKS"?"hvakosterstrommen.no":t=="EDS"?"Energi Data Service":t=="MIX"?"Mixed sources":"Unknown ("+t+")"}function M1(t){return t=="EOE"?"https://transparency.entsoe.eu/":t=="HKS"?"https://www.hvakosterstrommen.no/":t=="EDS"?"https://www.energidataservice.dk/":"#"}let ri=0;function ti(t,e){var l="";ri++;var n=function(){setTimeout(ti,1e3,t,e)};if(t.net.ip&&ri%3==0){if(!t.net.ip){n();return}l="http://"+t.net.ip}else t.hostname&&ri%3==1?l="http://"+t.hostname:t.hostname&&ri%3==2?l="http://"+t.hostname+".local":l="";console&&console.log("Trying url "+l),e&&e(l);var i=new XMLHttpRequest;i.timeout=5e3,i.addEventListener("abort",n),i.addEventListener("error",n),i.addEventListener("timeout",n),i.addEventListener("load",function(o){window.location.href=l||"/"}),i.open("GET",l+"/is-alive",!0),i.send()}function sl(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Ao(t){return t.startsWith("esp32")?"esp32":t}function ml(t,e){let l=[t,e];return typeof t>"u"?(l[0]="-",l[1]=e):t>=1e9?(l[0]=(t/1e6).toFixed(t>1e10?0:1),l[1]="M"+e):t>1e4?(l[0]=(t/1e3).toFixed(t>1e6?0:t>1e5?1:2),l[1]="k"+e):(l[0]=t.toFixed(0),l[1]=e),l}function li(t,e){let l=[xt(t,2),e];if(typeof t>"u")l[0]="-",l[1]=e;else if(Math.abs(t*100)<100){switch(l[0]=xt(t*100,2),e){case"NOK":case"DKK":e="øre";break;case"SEK":e="öre";break;case"EUR":e="cent";break;case"CHF":e="rp.";break;default:e=e+"/100"}l[1]=e}return l}let cn="((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}",Il="[\\x20-\\x7E]+",Nn="[\\x20-\\xFF]+",Ci="[A-Za-z0-9_\\-]+",Ou="[0-9A-Fa-f]+",Yn="[0-9]+",di={},Wi=[];async function N1(t,e={}){const{timeout:l=8e3}=e,n=new AbortController,i=setTimeout(()=>n.abort(),l),o=await fetch(t,{...e,signal:n.signal});return clearTimeout(i),o}let Ii;async function Iu(){if(Wi.length){let t=Wi.shift();delete di[t.resource];try{let e=await N1(t.resource,t.options);for(let l in t.callbacks)t.callbacks[l](e.clone())}catch(e){console.error("Error calling "+t.resource,e);for(let l in t.callbacks)t.callbacks[l]()}}Ii&&clearTimeout(Ii),Ii=setTimeout(Iu,100)}Iu();async function wl(t,e={}){let l;return di[t]?l=di[t]:(l={resource:t,options:e,callbacks:[]},di[t]=l,Wi.push(l)),new Promise(i=>l.callbacks.push(i))}let Tl={version:"",chip:"",mac:null,apmac:null,vndcfg:null,usrcfg:null,fwconsent:null,booting:!1,upgrading:!1,ui:{},security:0,boot_reason:0,upgrade:{x:-1,e:0,f:null,t:null},trying:null,if:{eth:!1}};async function Ti(){Tl=await(await wl("sysinfo.json?t="+Math.floor(Date.now()/1e3))).json(),dl.set(Tl)}const dl=rl(Tl,t=>(Ti(),function(){}));function P1(t){dl.update(e=>(e.trying=t,e))}let ci=0,Lo=-127,Oo=null,T1={};const q1=mu(T1,t=>{let e,l;async function n(){wl("data.json").then(i=>i.json()).then(i=>{t(i),Lo!=i.t&&(Lo=i.t,setTimeout(E1,2e3)),i.pe&&i.p!=Oo&&(Oo=i.p,Bu()),(!Tl||!Tl.chip||Tl.booting||ci>1&&!$n(Tl.board))&&(Ti(),Al&&clearTimeout(Al),Al=setTimeout(Vi,2e3),Ll&&clearTimeout(Ll),Ll=setTimeout(Yi,3e3)),i.u,Al||(Al=Vi()),Ll||(Ll=Yi());let o=5e3;if($n(Tl.board)&&i.v>2.5){let a=3.3-Math.min(3.3,i.v);a>0&&(o=Math.max(a,.1)*10*5e3)}o>5e3&&console.log("Next in "+o+"ms"),e&&clearTimeout(e),e=setTimeout(n,o),ci=0}).catch(i=>{ci++,ci>3?(t({em:3,hm:0,wm:0,mm:0}),e=setTimeout(n,15e3),l||(l=setTimeout(ti,5e3,Tl,P1))):e=setTimeout(n,$n(Tl.board)?1e4:5e3)})}return n(),function(){clearTimeout(e)}});let _i,bn={};const Ru=rl(bn);let yi={};const Fu=rl(yi);async function Bu(){_i&&(clearTimeout(_i),_i=0),bn=await(await wl("importprice.json")).json(),Ru.set(bn),bn!=null&&bn.importExportPriceDifferent&&(yi=await(await wl("exportprice.json")).json(),Fu.set(yi)),_i=setTimeout(Bu,(24-new Date().getHours())*36e5+10)}let Gi={},Al;async function Vi(){Al&&(clearTimeout(Al),Al=0),Gi=await(await wl("dayplot.json")).json(),Uu.set(Gi),Al=setTimeout(Vi,(60-new Date().getMinutes())*6e4+20)}const Uu=rl(Gi,t=>function(){});let Ki={},Ll;async function Yi(){Ll&&(clearTimeout(Ll),Ll=0),Ki=await(await wl("monthplot.json")).json(),zu.set(Ki),Ll=setTimeout(Yi,(24-new Date().getHours())*36e5+40)}const zu=rl(Ki,t=>function(){});let Qi={};async function E1(){Qi=await(await wl("temperature.json")).json(),ju.set(Qi)}const ju=rl(Qi,t=>function(){});let Xi={},mi;async function Hu(){mi&&(clearTimeout(mi),mi=0),Xi=await(await wl("tariff.json")).json(),Wu.set(Xi),mi=setTimeout(Hu,(60-new Date().getMinutes())*6e4+30)}const Wu=rl(Xi,t=>function(){});let gn={c:-1,n:[]};async function D1(){let e=await(await wl("wifiscan.json",{timeout:3e4})).json(),l=[];gn.c=0,gn.n=[];for(let n=0;n(D1(),function(){}));let Zi=!1;const Nl=rl(Zi);async function yu(t){Zi=await(await wl("translations.json"+(t?"?lang="+t:""))).json(),Nl.set(Zi)}yu();function Io(t){return"WARNING: "+t+" must be connected to an external power supply during firmware upgrade. Failure to do so may cause power-down during upload resulting in non-functioning unit."}async function Gu(t){return await(await fetch("upgrade?expected_version="+t,{method:"POST"})).json()}function Ro(t){var f;let e=(((f=t[1].header)==null?void 0:f.uptime)??"Up")+"",l,n,i;function o(c,m){return c[2]>1?B1:c[2]>0?F1:c[3]>1?R1:c[3]>0?I1:c[4]>1?O1:c[4]>0?L1:A1}let a=o(t),r=a(t);return{c(){l=M(e),n=v(),r.c(),i=yt()},m(c,m){P(c,l,m),P(c,n,m),r.m(c,m),P(c,i,m)},p(c,m){var _;m&2&&e!==(e=(((_=c[1].header)==null?void 0:_.uptime)??"Up")+"")&&E(l,e),a===(a=o(c))&&r?r.p(c,m):(r.d(1),r=a(c),r&&(r.c(),r.m(i.parentNode,i)))},d(c){c&&(N(l),N(n),N(i)),r.d(c)}}}function A1(t){var o;let e,l,n=(((o=t[1].common)==null?void 0:o.seconds)??"s")+"",i;return{c(){e=M(t[0]),l=v(),i=M(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&1&&E(e,a[0]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.seconds)??"s")+"")&&E(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function L1(t){var o;let e,l,n=(((o=t[1].common)==null?void 0:o.minute)??"m")+"",i;return{c(){e=M(t[4]),l=v(),i=M(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&16&&E(e,a[4]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.minute)??"m")+"")&&E(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function O1(t){var o;let e,l,n=(((o=t[1].common)==null?void 0:o.minutes)??"m")+"",i;return{c(){e=M(t[4]),l=v(),i=M(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&16&&E(e,a[4]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.minutes)??"m")+"")&&E(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function I1(t){var o;let e,l,n=(((o=t[1].common)==null?void 0:o.hour)??"h")+"",i;return{c(){e=M(t[3]),l=v(),i=M(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&8&&E(e,a[3]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.hour)??"h")+"")&&E(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function R1(t){var o;let e,l,n=(((o=t[1].common)==null?void 0:o.hours)??"h")+"",i;return{c(){e=M(t[3]),l=v(),i=M(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&8&&E(e,a[3]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.hours)??"h")+"")&&E(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function F1(t){var o;let e,l,n=(((o=t[1].common)==null?void 0:o.day)??"d")+"",i;return{c(){e=M(t[2]),l=v(),i=M(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&4&&E(e,a[2]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.day)??"d")+"")&&E(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function B1(t){var o;let e,l,n=(((o=t[1].common)==null?void 0:o.days)??"d")+"",i;return{c(){e=M(t[2]),l=v(),i=M(n)},m(a,r){P(a,e,r),P(a,l,r),P(a,i,r)},p(a,r){var f;r&4&&E(e,a[2]),r&2&&n!==(n=(((f=a[1].common)==null?void 0:f.days)??"d")+"")&&E(i,n)},d(a){a&&(N(e),N(l),N(i))}}}function U1(t){let e,l=t[0]&&Ro(t);return{c(){l&&l.c(),e=yt()},m(n,i){l&&l.m(n,i),P(n,e,i)},p(n,[i]){n[0]?l?l.p(n,i):(l=Ro(n),l.c(),l.m(e.parentNode,e)):l&&(l.d(1),l=null)},i:ze,o:ze,d(n){n&&N(e),l&&l.d(n)}}}function z1(t,e,l){let{epoch:n}=e,i={};Nl.subscribe(f=>{l(1,i=f)});let o=0,a=0,r=0;return t.$$set=f=>{"epoch"in f&&l(0,n=f.epoch)},t.$$.update=()=>{t.$$.dirty&1&&(l(2,o=Math.floor(n/86400)),l(3,a=Math.floor(n/3600)),l(4,r=Math.floor(n/60)))},[n,i,o,a,r]}class j1 extends Tt{constructor(e){super(),Pt(this,e,z1,U1,Ct,{epoch:0})}}function H1(t){let e,l,n;return{c(){e=p("span"),l=M(t[2]),u(e,"title",t[1]),u(e,"class",n="bd-"+t[0])},m(i,o){P(i,e,o),s(e,l)},p(i,[o]){o&4&&E(l,i[2]),o&2&&u(e,"title",i[1]),o&1&&n!==(n="bd-"+i[0])&&u(e,"class",n)},i:ze,o:ze,d(i){i&&N(e)}}}function W1(t,e,l){let{color:n}=e,{title:i}=e,{text:o}=e;return t.$$set=a=>{"color"in a&&l(0,n=a.color),"title"in a&&l(1,i=a.title),"text"in a&&l(2,o=a.text)},[n,i,o]}class fn extends Tt{constructor(e){super(),Pt(this,e,W1,H1,Ct,{color:0,title:1,text:2})}}function y1(t){let e,l=`${Ft(t[0].getDate())}.${Ft(t[0].getMonth()+1)}.${t[0].getFullYear()} ${Ft(t[0].getHours())}:${Ft(t[0].getMinutes())}`,n;return{c(){e=p("span"),n=M(l),u(e,"class",t[1])},m(i,o){P(i,e,o),s(e,n)},p(i,o){o&1&&l!==(l=`${Ft(i[0].getDate())}.${Ft(i[0].getMonth()+1)}.${i[0].getFullYear()} ${Ft(i[0].getHours())}:${Ft(i[0].getMinutes())}`)&&E(n,l),o&2&&u(e,"class",i[1])},d(i){i&&N(e)}}}function G1(t){var n;let e=`${Ft(t[0].getDate())}. ${t[2].months?(n=t[2].months)==null?void 0:n[t[0].getMonth()]:Ft(t[0].getMonth()+1)} ${Ft(t[0].getHours())}:${Ft(t[0].getMinutes())}`,l;return{c(){l=M(e)},m(i,o){P(i,l,o)},p(i,o){var a;o&5&&e!==(e=`${Ft(i[0].getDate())}. ${i[2].months?(a=i[2].months)==null?void 0:a[i[0].getMonth()]:Ft(i[0].getMonth()+1)} ${Ft(i[0].getHours())}:${Ft(i[0].getMinutes())}`)&&E(l,e)},d(i){i&&N(l)}}}function V1(t){let e;function l(o,a){return o[3]?G1:y1}let n=l(t),i=n(t);return{c(){i.c(),e=yt()},m(o,a){i.m(o,a),P(o,e,a)},p(o,[a]){n===(n=l(o))&&i?i.p(o,a):(i.d(1),i=n(o),i&&(i.c(),i.m(e.parentNode,e)))},i:ze,o:ze,d(o){o&&N(e),i.d(o)}}}function K1(t,e,l){let n={};Nl.subscribe(f=>{l(2,n=f)});let{timestamp:i}=e,{fullTimeColor:o}=e,{offset:a}=e,r;return t.$$set=f=>{"timestamp"in f&&l(0,i=f.timestamp),"fullTimeColor"in f&&l(1,o=f.fullTimeColor),"offset"in f&&l(4,a=f.offset)},t.$$.update=()=>{t.$$.dirty&17&&(l(3,r=Math.abs(new Date().getTime()-i.getTime())<3e5),isNaN(a)||Cn(i,a-(24+i.getHours()-i.getUTCHours())%24))},[i,o,n,r,a]}class Vu extends Tt{constructor(e){super(),Pt(this,e,K1,V1,Ct,{timestamp:0,fullTimeColor:1,offset:4})}}function Y1(t){let e,l,n;return{c(){e=Ut("svg"),l=Ut("path"),n=Ut("path"),u(l,"stroke-linecap","round"),u(l,"stroke-linejoin","round"),u(l,"d","M10.343 3.94c.09-.542.56-.94 1.11-.94h1.093c.55 0 1.02.398 1.11.94l.149.894c.07.424.384.764.78.93.398.164.855.142 1.205-.108l.737-.527a1.125 1.125 0 011.45.12l.773.774c.39.389.44 1.002.12 1.45l-.527.737c-.25.35-.272.806-.107 1.204.165.397.505.71.93.78l.893.15c.543.09.94.56.94 1.109v1.094c0 .55-.397 1.02-.94 1.11l-.893.149c-.425.07-.765.383-.93.78-.165.398-.143.854.107 1.204l.527.738c.32.447.269 1.06-.12 1.45l-.774.773a1.125 1.125 0 01-1.449.12l-.738-.527c-.35-.25-.806-.272-1.203-.107-.397.165-.71.505-.781.929l-.149.894c-.09.542-.56.94-1.11.94h-1.094c-.55 0-1.019-.398-1.11-.94l-.148-.894c-.071-.424-.384-.764-.781-.93-.398-.164-.854-.142-1.204.108l-.738.527c-.447.32-1.06.269-1.45-.12l-.773-.774a1.125 1.125 0 01-.12-1.45l.527-.737c.25-.35.273-.806.108-1.204-.165-.397-.505-.71-.93-.78l-.894-.15c-.542-.09-.94-.56-.94-1.109v-1.094c0-.55.398-1.02.94-1.11l.894-.149c.424-.07.765-.383.93-.78.165-.398.143-.854-.107-1.204l-.527-.738a1.125 1.125 0 01.12-1.45l.773-.773a1.125 1.125 0 011.45-.12l.737.527c.35.25.807.272 1.204.107.397-.165.71-.505.78-.929l.15-.894z"),u(n,"stroke-linecap","round"),u(n,"stroke-linejoin","round"),u(n,"d","M15 12a3 3 0 11-6 0 3 3 0 016 0z"),u(e,"xmlns","http://www.w3.org/2000/svg"),u(e,"fill","none"),u(e,"viewBox","0 0 24 24"),u(e,"stroke-width","1.5"),u(e,"stroke","currentColor"),u(e,"class","w-6 h-6")},m(i,o){P(i,e,o),s(e,l),s(e,n)},p:ze,i:ze,o:ze,d(i){i&&N(e)}}}class Q1 extends Tt{constructor(e){super(),Pt(this,e,null,Y1,Ct,{})}}function X1(t){let e,l;return{c(){e=Ut("svg"),l=Ut("path"),u(l,"stroke-linecap","round"),u(l,"stroke-linejoin","round"),u(l,"d","M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"),u(e,"xmlns","http://www.w3.org/2000/svg"),u(e,"fill","none"),u(e,"viewBox","0 0 24 24"),u(e,"stroke-width","1.5"),u(e,"stroke","currentColor"),u(e,"class","w-6 h-6")},m(n,i){P(n,e,i),s(e,l)},p:ze,i:ze,o:ze,d(n){n&&N(e)}}}class Z1 extends Tt{constructor(e){super(),Pt(this,e,null,X1,Ct,{})}}function J1(t){let e,l;return{c(){e=Ut("svg"),l=Ut("path"),u(l,"stroke-linecap","round"),u(l,"stroke-linejoin","round"),u(l,"d","M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"),u(e,"xmlns","http://www.w3.org/2000/svg"),u(e,"fill","none"),u(e,"viewBox","0 0 24 24"),u(e,"stroke-width","1.5"),u(e,"stroke","currentColor"),u(e,"class","w-6 h-6")},m(n,i){P(n,e,i),s(e,l)},p:ze,i:ze,o:ze,d(n){n&&N(e)}}}class $1 extends Tt{constructor(e){super(),Pt(this,e,null,J1,Ct,{})}}function x1(t){let e,l,n=t[2].version+"",i;return{c(){e=M("AMS reader "),l=p("span"),i=M(n)},m(o,a){P(o,e,a),P(o,l,a),s(l,i)},p(o,a){a&4&&n!==(n=o[2].version+"")&&E(i,n)},d(o){o&&(N(e),N(l))}}}function Fo(t){let e,l=(t[1].t>-50?t[1].t.toFixed(1):"-")+"",n,i;return{c(){e=p("div"),n=M(l),i=M("°C"),u(e,"class","flex-none my-auto")},m(o,a){P(o,e,a),s(e,n),s(e,i)},p(o,a){a&2&&l!==(l=(o[1].t>-50?o[1].t.toFixed(1):"-")+"")&&E(n,l)},d(o){o&&N(e)}}}function Bo(t){var i,o,a;let e,l=(((i=t[4].header)==null?void 0:i.han)??"HAN")+": "+(((a=(o=t[4].errors)==null?void 0:o.han)==null?void 0:a[t[1].he])??t[1].he),n;return{c(){e=p("div"),n=M(l),u(e,"class","bd-red")},m(r,f){P(r,e,f),s(e,n)},p(r,f){var c,m,_;f&18&&l!==(l=(((c=r[4].header)==null?void 0:c.han)??"HAN")+": "+(((_=(m=r[4].errors)==null?void 0:m.han)==null?void 0:_[r[1].he])??r[1].he))&&E(n,l)},d(r){r&&N(e)}}}function Uo(t){var i,o,a;let e,l=(((i=t[4].header)==null?void 0:i.mqtt)??"MQTT")+": "+(((a=(o=t[4].errors)==null?void 0:o.mqtt)==null?void 0:a[t[1].me])??t[1].me),n;return{c(){e=p("div"),n=M(l),u(e,"class","bd-red")},m(r,f){P(r,e,f),s(e,n)},p(r,f){var c,m,_;f&18&&l!==(l=(((c=r[4].header)==null?void 0:c.mqtt)??"MQTT")+": "+(((_=(m=r[4].errors)==null?void 0:m.mqtt)==null?void 0:_[r[1].me])??r[1].me))&&E(n,l)},d(r){r&&N(e)}}}function zo(t){var i,o,a;let e,l=(((i=t[4].header)==null?void 0:i.price)??"PS")+": "+(((a=(o=t[4].errors)==null?void 0:o.price)==null?void 0:a[t[1].ee])??t[1].ee),n;return{c(){e=p("div"),n=M(l),u(e,"class","bd-red")},m(r,f){P(r,e,f),s(e,n)},p(r,f){var c,m,_;f&18&&l!==(l=(((c=r[4].header)==null?void 0:c.price)??"PS")+": "+(((_=(m=r[4].errors)==null?void 0:m.price)==null?void 0:_[r[1].ee])??r[1].ee))&&E(n,l)},d(r){r&&N(e)}}}function jo(t){let e,l,n,i,o,a,r,f;return l=new kl({props:{to:"/configuration",$$slots:{default:[ec]},$$scope:{ctx:t}}}),a=new kl({props:{to:"/status",$$slots:{default:[tc]},$$scope:{ctx:t}}}),{c(){var c,m;e=p("div"),Ne(l.$$.fragment),i=v(),o=p("div"),Ne(a.$$.fragment),u(e,"class","flex-none px-1 mt-1"),u(e,"title",n=((c=t[4].header)==null?void 0:c.config)??""),u(o,"class","flex-none px-1 mt-1"),u(o,"title",r=((m=t[4].header)==null?void 0:m.status)??"")},m(c,m){P(c,e,m),Se(l,e,null),P(c,i,m),P(c,o,m),Se(a,o,null),f=!0},p(c,m){var h,g;const _={};m&64&&(_.$$scope={dirty:m,ctx:c}),l.$set(_),(!f||m&16&&n!==(n=((h=c[4].header)==null?void 0:h.config)??""))&&u(e,"title",n);const d={};m&64&&(d.$$scope={dirty:m,ctx:c}),a.$set(d),(!f||m&16&&r!==(r=((g=c[4].header)==null?void 0:g.status)??""))&&u(o,"title",r)},i(c){f||(X(l.$$.fragment,c),X(a.$$.fragment,c),f=!0)},o(c){ee(l.$$.fragment,c),ee(a.$$.fragment,c),f=!1},d(c){c&&(N(e),N(i),N(o)),Me(l),Me(a)}}}function ec(t){let e,l;return e=new Q1({}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function tc(t){let e,l;return e=new Z1({}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function lc(t){let e,l;function n(a,r){return a[2].security==0||a[1].a?oc:ic}let i=n(t),o=i(t);return{c(){var a;e=p("div"),o.c(),u(e,"class","flex-none mr-3 text-yellow-500"),u(e,"title",l=(((a=t[4].header)==null?void 0:a.new_version)??"New version")+": "+t[2].upgrade.n)},m(a,r){P(a,e,r),o.m(e,null)},p(a,r){var f;i===(i=n(a))&&o?o.p(a,r):(o.d(1),o=i(a),o&&(o.c(),o.m(e,null))),r&20&&l!==(l=(((f=a[4].header)==null?void 0:f.new_version)??"New version")+": "+a[2].upgrade.n)&&u(e,"title",l)},d(a){a&&N(e),o.d()}}}function nc(t){let e,l,n=t[2].upgrade.t+"",i,o,a=t[3].toFixed(1)+"",r,f;return{c(){e=p("div"),l=M("Upgrading to "),i=M(n),o=M(", "),r=M(a),f=M("%"),u(e,"class","flex-none mr-3 mt-1 text-yellow-300")},m(c,m){P(c,e,m),s(e,l),s(e,i),s(e,o),s(e,r),s(e,f)},p(c,m){m&4&&n!==(n=c[2].upgrade.t+"")&&E(i,n),m&8&&a!==(a=c[3].toFixed(1)+"")&&E(r,a)},d(c){c&&N(e)}}}function ic(t){var r;let e,l=(((r=t[4].header)==null?void 0:r.new_version)??"New version")+"",n,i,o=t[2].upgrade.n+"",a;return{c(){e=p("span"),n=M(l),i=M(": "),a=M(o)},m(f,c){P(f,e,c),s(e,n),s(e,i),s(e,a)},p(f,c){var m;c&16&&l!==(l=(((m=f[4].header)==null?void 0:m.new_version)??"New version")+"")&&E(n,l),c&4&&o!==(o=f[2].upgrade.n+"")&&E(a,o)},d(f){f&&N(e)}}}function oc(t){var m;let e,l,n=(((m=t[4].header)==null?void 0:m.new_version)??"New version")+"",i,o,a=t[2].upgrade.n+"",r,f,c;return{c(){e=p("button"),l=p("span"),i=M(n),o=M(": "),r=M(a),u(l,"class","mt-1"),u(e,"class","flex")},m(_,d){P(_,e,d),s(e,l),s(l,i),s(l,o),s(l,r),f||(c=re(e,"click",t[5]),f=!0)},p(_,d){var h;d&16&&n!==(n=(((h=_[4].header)==null?void 0:h.new_version)??"New version")+"")&&E(i,n),d&4&&a!==(a=_[2].upgrade.n+"")&&E(r,a)},d(_){_&&N(e),f=!1,c()}}}function sc(t){var pe,ve;let e,l,n,i,o,a,r,f,c,m,_,d=(((pe=t[4].header)==null?void 0:pe.mem)??"Free")+"",h,g,b=(t[1].m?(t[1].m/1e3).toFixed(1):"-")+"",C,k,A,I,R,T,F,L,z,G,H,q,U,Z,V,Q,K,B,y,ie,te,Y,le,ue,fe,ne,de,oe,_e,se,me;i=new kl({props:{to:"/",$$slots:{default:[x1]},$$scope:{ctx:t}}}),f=new j1({props:{epoch:t[1].u}});let we=t[1].t>-50&&Fo(t);R=new fn({props:{title:"ESP",text:t[2].booting?((ve=t[4].header)==null?void 0:ve.booting)??"Booting":t[1].v>2?t[1].v.toFixed(2)+"V":"ESP",color:ln(t[2].booting?2:t[1].em)}}),F=new fn({props:{title:"HAN",text:"HAN",color:ln(t[2].booting?9:t[1].hm)}}),z=new fn({props:{title:"WiFi",text:t[1].r?t[1].r.toFixed(0)+"dBm":"WiFi",color:ln(t[2].booting?9:t[1].wm)}}),H=new fn({props:{title:"MQTT",text:"MQTT",color:ln(t[2].booting?9:t[1].mm)}});let S=(t[1].he<0||t[1].he>0)&&Bo(t),w=t[1].me<0&&Uo(t),O=(t[1].ee>0||t[1].ee<0)&&zo(t);le=new Vu({props:{timestamp:t[1].c?new Date(t[1].c*1e3):new Date(0),offset:t[2].clock_offset,fullTimeColor:"text-red-500"}});let D=t[2].vndcfg&&t[2].usrcfg&&jo(t);oe=new $1({});function W(J,be){if(J[2].upgrading)return nc;if(J[2].fwconsent===1&&J[2].upgrade.n)return lc}let $=W(t),ae=$&&$(t);return{c(){var J;e=p("nav"),l=p("div"),n=p("div"),Ne(i.$$.fragment),o=v(),a=p("div"),r=p("div"),Ne(f.$$.fragment),c=v(),we&&we.c(),m=v(),_=p("div"),h=M(d),g=M(": "),C=M(b),k=M("kb"),A=v(),I=p("div"),Ne(R.$$.fragment),T=v(),Ne(F.$$.fragment),L=v(),Ne(z.$$.fragment),G=v(),Ne(H.$$.fragment),q=v(),S&&S.c(),U=v(),w&&w.c(),Z=v(),O&&O.c(),V=v(),Q=p("div"),K=p("div"),B=p("a"),y=p("img"),te=v(),Y=p("div"),Ne(le.$$.fragment),ue=v(),D&&D.c(),fe=v(),ne=p("div"),de=p("a"),Ne(oe.$$.fragment),se=v(),ae&&ae.c(),u(n,"class","flex text-lg text-gray-100 p-2"),u(r,"class","flex-none my-auto"),u(_,"class","flex-none my-auto"),u(a,"class","flex-none my-auto p-2 flex space-x-4"),u(I,"class","flex-auto flex-wrap my-auto justify-center p-2"),u(y,"class","logo"),hi(y.src,ie=(t[0]+"/logo.svg").replace("//","/"))||u(y,"src",ie),u(y,"alt","GitHub repo"),u(B,"class","float-right"),u(B,"href","https://github.com/UtilitechAS/amsreader-firmware"),u(B,"target","_blank"),u(B,"rel","noreferrer"),u(B,"aria-label","GitHub"),u(K,"class","flex-none"),u(Y,"class","flex-none my-auto px-2"),u(de,"href",vl("")),u(de,"target","_blank"),u(de,"rel","noreferrer"),u(ne,"class","flex-none px-1 mt-1"),u(ne,"title",_e=((J=t[4].header)==null?void 0:J.doc)??""),u(Q,"class","flex-auto p-2 flex flex-row-reverse flex-wrap"),u(l,"class","flex flex-wrap space-x-4 text-sm text-gray-300"),u(e,"class","hdr")},m(J,be){P(J,e,be),s(e,l),s(l,n),Se(i,n,null),s(l,o),s(l,a),s(a,r),Se(f,r,null),s(a,c),we&&we.m(a,null),s(a,m),s(a,_),s(_,h),s(_,g),s(_,C),s(_,k),s(l,A),s(l,I),Se(R,I,null),s(I,T),Se(F,I,null),s(I,L),Se(z,I,null),s(I,G),Se(H,I,null),s(l,q),S&&S.m(l,null),s(l,U),w&&w.m(l,null),s(l,Z),O&&O.m(l,null),s(l,V),s(l,Q),s(Q,K),s(K,B),s(B,y),s(Q,te),s(Q,Y),Se(le,Y,null),s(Q,ue),D&&D.m(Q,null),s(Q,fe),s(Q,ne),s(ne,de),Se(oe,de,null),s(Q,se),ae&&ae.m(Q,null),me=!0},p(J,[be]){var Xe,gt,$e;const ke={};be&68&&(ke.$$scope={dirty:be,ctx:J}),i.$set(ke);const Ee={};be&2&&(Ee.epoch=J[1].u),f.$set(Ee),J[1].t>-50?we?we.p(J,be):(we=Fo(J),we.c(),we.m(a,m)):we&&(we.d(1),we=null),(!me||be&16)&&d!==(d=(((Xe=J[4].header)==null?void 0:Xe.mem)??"Free")+"")&&E(h,d),(!me||be&2)&&b!==(b=(J[1].m?(J[1].m/1e3).toFixed(1):"-")+"")&&E(C,b);const Pe={};be&22&&(Pe.text=J[2].booting?((gt=J[4].header)==null?void 0:gt.booting)??"Booting":J[1].v>2?J[1].v.toFixed(2)+"V":"ESP"),be&6&&(Pe.color=ln(J[2].booting?2:J[1].em)),R.$set(Pe);const Ae={};be&6&&(Ae.color=ln(J[2].booting?9:J[1].hm)),F.$set(Ae);const Le={};be&2&&(Le.text=J[1].r?J[1].r.toFixed(0)+"dBm":"WiFi"),be&6&&(Le.color=ln(J[2].booting?9:J[1].wm)),z.$set(Le);const qe={};be&6&&(qe.color=ln(J[2].booting?9:J[1].mm)),H.$set(qe),J[1].he<0||J[1].he>0?S?S.p(J,be):(S=Bo(J),S.c(),S.m(l,U)):S&&(S.d(1),S=null),J[1].me<0?w?w.p(J,be):(w=Uo(J),w.c(),w.m(l,Z)):w&&(w.d(1),w=null),J[1].ee>0||J[1].ee<0?O?O.p(J,be):(O=zo(J),O.c(),O.m(l,V)):O&&(O.d(1),O=null),(!me||be&1&&!hi(y.src,ie=(J[0]+"/logo.svg").replace("//","/")))&&u(y,"src",ie);const Re={};be&2&&(Re.timestamp=J[1].c?new Date(J[1].c*1e3):new Date(0)),be&4&&(Re.offset=J[2].clock_offset),le.$set(Re),J[2].vndcfg&&J[2].usrcfg?D?(D.p(J,be),be&4&&X(D,1)):(D=jo(J),D.c(),X(D,1),D.m(Q,fe)):D&&(rt(),ee(D,1,1,()=>{D=null}),ct()),(!me||be&16&&_e!==(_e=(($e=J[4].header)==null?void 0:$e.doc)??""))&&u(ne,"title",_e),$===($=W(J))&&ae?ae.p(J,be):(ae&&ae.d(1),ae=$&&$(J),ae&&(ae.c(),ae.m(Q,null)))},i(J){me||(X(i.$$.fragment,J),X(f.$$.fragment,J),X(R.$$.fragment,J),X(F.$$.fragment,J),X(z.$$.fragment,J),X(H.$$.fragment,J),X(le.$$.fragment,J),X(D),X(oe.$$.fragment,J),me=!0)},o(J){ee(i.$$.fragment,J),ee(f.$$.fragment,J),ee(R.$$.fragment,J),ee(F.$$.fragment,J),ee(z.$$.fragment,J),ee(H.$$.fragment,J),ee(le.$$.fragment,J),ee(D),ee(oe.$$.fragment,J),me=!1},d(J){J&&N(e),Me(i),Me(f),we&&we.d(),Me(R),Me(F),Me(z),Me(H),S&&S.d(),w&&w.d(),O&&O.d(),Me(le),D&&D.d(),Me(oe),ae&&ae.d()}}}function ac(t,e,l){let{basepath:n="/"}=e,{data:i={}}=e,o={};function a(){var c;confirm((((c=f.header)==null?void 0:c.upgrade)??"Upgrade to {0}?").replace("{0}",o.upgrade.n))&&(Gu(o.upgrade.n),dl.update(m=>(m.upgrade.t=o.upgrade.n,m.upgrade.p=0,m.upgrading=!0,m)))}let r;dl.subscribe(c=>{l(2,o=c)});let f={};return Nl.subscribe(c=>{l(4,f=c)}),t.$$set=c=>{"basepath"in c&&l(0,n=c.basepath),"data"in c&&l(1,i=c.data)},t.$$.update=()=>{t.$$.dirty&4&&l(3,r=Math.max(0,o.upgrade.p))},[n,i,o,r,f,a]}class fc extends Tt{constructor(e){super(),Pt(this,e,ac,sc,Ct,{basepath:0,data:1})}}function uc(t){let e,l,n,i;return{c(){e=Ut("svg"),l=Ut("path"),n=Ut("path"),u(l,"d",Ri(150,150,115,210,510)),u(l,"stroke","rgba(128, 128, 128, 0.15)"),u(l,"fill","none"),u(l,"stroke-width","55"),u(n,"d",i=Ri(150,150,115,210,210+300*t[0]/100)),u(n,"stroke",t[1]),u(n,"fill","none"),u(n,"stroke-width","55"),u(e,"viewBox","0 0 300 300"),u(e,"xmlns","http://www.w3.org/2000/svg"),u(e,"height","100%")},m(o,a){P(o,e,a),s(e,l),s(e,n)},p(o,[a]){a&1&&i!==(i=Ri(150,150,115,210,210+300*o[0]/100))&&u(n,"d",i),a&2&&u(n,"stroke",o[1])},i:ze,o:ze,d(o){o&&N(e)}}}function Ho(t,e,l,n){var i=(n-90)*Math.PI/180;return{x:t+l*Math.cos(i),y:e+l*Math.sin(i)}}function Ri(t,e,l,n,i){var o=Ho(t,e,l,i),a=Ho(t,e,l,n),r=i-n<=180?"0":"1",f=["M",o.x,o.y,"A",l,l,0,r,0,a.x,a.y].join(" ");return f}function rc(t,e,l){let{pct:n=0}=e,{color:i="red"}=e;return t.$$set=o=>{"pct"in o&&l(0,n=o.pct),"color"in o&&l(1,i=o.color)},[n,i]}class cc extends Tt{constructor(e){super(),Pt(this,e,rc,uc,Ct,{pct:0,color:1})}}function Wo(t){let e,l,n,i=t[1][0]+"",o,a,r,f=t[1][1]+"",c,m;return{c(){e=p("br"),l=v(),n=p("span"),o=M(i),a=v(),r=p("span"),c=M(f),m=M("/kWh"),u(n,"class","pl-sub"),u(r,"class","pl-snt")},m(_,d){P(_,e,d),P(_,l,d),P(_,n,d),s(n,o),P(_,a,d),P(_,r,d),s(r,c),s(r,m)},p(_,d){d&2&&i!==(i=_[1][0]+"")&&E(o,i),d&2&&f!==(f=_[1][1]+"")&&E(c,f)},d(_){_&&(N(e),N(l),N(n),N(a),N(r))}}}function _c(t){let e,l,n,i,o,a,r,f,c,m,_=t[3][0]+"",d,h,g,b=t[3][1]+"",C,k,A;l=new cc({props:{pct:t[4],color:t[2](t[4],document.documentElement.classList.contains("dark"))}});let I=t[1]&&Wo(t);return{c(){e=p("div"),Ne(l.$$.fragment),n=v(),i=p("span"),o=p("span"),a=M(t[0]),r=v(),f=p("br"),c=v(),m=p("span"),d=M(_),h=v(),g=p("span"),C=M(b),k=v(),I&&I.c(),u(o,"class","pl-lab"),u(m,"class","pl-val"),u(g,"class","pl-unt"),u(i,"class","pl-ov"),u(e,"class","pl-root")},m(R,T){P(R,e,T),Se(l,e,null),s(e,n),s(e,i),s(i,o),s(o,a),s(i,r),s(i,f),s(i,c),s(i,m),s(m,d),s(i,h),s(i,g),s(g,C),s(i,k),I&&I.m(i,null),A=!0},p(R,[T]){const F={};T&16&&(F.pct=R[4]),T&20&&(F.color=R[2](R[4],document.documentElement.classList.contains("dark"))),l.$set(F),(!A||T&1)&&E(a,R[0]),(!A||T&8)&&_!==(_=R[3][0]+"")&&E(d,_),(!A||T&8)&&b!==(b=R[3][1]+"")&&E(C,b),R[1]?I?I.p(R,T):(I=Wo(R),I.c(),I.m(i,null)):I&&(I.d(1),I=null)},i(R){A||(X(l.$$.fragment,R),A=!0)},o(R){ee(l.$$.fragment,R),A=!1},d(R){R&&N(e),Me(l),I&&I.d()}}}function mc(t,e,l){let{val:n}=e,{max:i}=e,{unit:o}=e,{label:a}=e,{sub:r=["",""]}=e,{colorFn:f}=e,c,m=0;return t.$$set=_=>{"val"in _&&l(5,n=_.val),"max"in _&&l(6,i=_.max),"unit"in _&&l(7,o=_.unit),"label"in _&&l(0,a=_.label),"sub"in _&&l(1,r=_.sub),"colorFn"in _&&l(2,f=_.colorFn)},t.$$.update=()=>{t.$$.dirty&224&&(l(3,c=ml(n,o)),l(4,m=Math.min(n,i)/i*100))},[a,r,f,c,m,n,i,o]}class Ku extends Tt{constructor(e){super(),Pt(this,e,mc,_c,Ct,{val:5,max:6,unit:7,label:0,sub:1,colorFn:2})}}function pc(t){let e,l,n;return{c(){e=p("div"),l=M(t[0]),u(e,"class","tooltip"),Sl(e,"top",t[2]-t[4]-10+"px"),Sl(e,"left",t[1]-t[3]/2+"px"),Et(()=>t[5].call(e))},m(i,o){P(i,e,o),s(e,l),n=Mi(e,t[5].bind(e))},p(i,[o]){o&1&&E(l,i[0]),o&20&&Sl(e,"top",i[2]-i[4]-10+"px"),o&10&&Sl(e,"left",i[1]-i[3]/2+"px")},i:ze,o:ze,d(i){i&&N(e),n()}}}function dc(t,e,l){let{title:n}=e,{x:i}=e,{y:o}=e,a,r;function f(){r=this.clientHeight,a=this.clientWidth,l(4,r),l(3,a)}return t.$$set=c=>{"title"in c&&l(0,n=c.title),"x"in c&&l(1,i=c.x),"y"in c&&l(2,o=c.y)},[n,i,o,a,r,f]}class hc extends Tt{constructor(e){super(),Pt(this,e,dc,pc,Ct,{title:0,x:1,y:2})}}function vc(t){let e,l;function n(o){l&&l.$destroy(),e=t.dataset.title||t.getAttribute("title");var a=t.getBoundingClientRect();l=new hc({props:{title:e,x:a.left+window.scrollX+a.width/2,y:a.top+window.scrollY},target:document.body})}function i(){l&&setTimeout(()=>{l.$destroy(),l=null},500)}return t.addEventListener("click",n),t.addEventListener("mouseleave",i),{destroy(){t.removeEventListener("click",n),t.removeEventListener("mouseleave",i)}}}function yo(t,e,l){const n=t.slice();return n[11]=e[l],n[13]=l,n}function Go(t,e,l){const n=t.slice();return n[11]=e[l],n[13]=l,n}function Vo(t,e,l){const n=t.slice();return n[15]=e[l],n}function Ko(t){let e,l,n,i,o,a,r,f=(t[0].title||t[0].link)&&Yo(t),c=at(t[0].y.ticks),m=[];for(let b=0;b{f=null}),ct()),C&129){c=at(b[0].y.ticks);let k;for(k=0;k{o=null}),ct())},i(a){n||(X(o),n=!0)},o(a){ee(o),n=!1},d(a){a&&N(e),i&&i.d(),o&&o.d()}}}function Qo(t){let e,l=t[0].title+"",n,i;return{c(){e=p("div"),n=M(l),u(e,"class","text-sm font-bold"),Et(()=>t[9].call(e))},m(o,a){P(o,e,a),s(e,n),i=Mi(e,t[9].bind(e))},p(o,a){a&1&&l!==(l=o[0].title+"")&&E(n,l)},d(o){o&&N(e),i()}}}function Xo(t){let e,l,n,i;const o=[gc,bc],a=[];function r(f,c){return f[0].link.route?0:1}return l=r(t),n=a[l]=o[l](t),{c(){e=p("div"),n.c(),u(e,"class","text-xs text-right")},m(f,c){P(f,e,c),a[l].m(e,null),i=!0},p(f,c){let m=l;l=r(f),l===m?a[l].p(f,c):(rt(),ee(a[m],1,1,()=>{a[m]=null}),ct(),n=a[l],n?n.p(f,c):(n=a[l]=o[l](f),n.c()),X(n,1),n.m(e,null))},i(f){i||(X(n),i=!0)},o(f){ee(n),i=!1},d(f){f&&N(e),a[l].d()}}}function bc(t){let e,l=t[0].link.text+"",n,i,o;return{c(){e=p("a"),n=M(l),u(e,"href",i=t[0].link.url),u(e,"target",o=t[0].link.target)},m(a,r){P(a,e,r),s(e,n)},p(a,r){r&1&&l!==(l=a[0].link.text+"")&&E(n,l),r&1&&i!==(i=a[0].link.url)&&u(e,"href",i),r&1&&o!==(o=a[0].link.target)&&u(e,"target",o)},i:ze,o:ze,d(a){a&&N(e)}}}function gc(t){let e,l;return e=new kl({props:{to:t[0].link.url,$$slots:{default:[kc]},$$scope:{ctx:t}}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&1&&(o.to=n[0].link.url),i&262145&&(o.$$scope={dirty:i,ctx:n}),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function kc(t){let e=t[0].link.text+"",l;return{c(){l=M(e)},m(n,i){P(n,l,i)},p(n,i){i&1&&e!==(e=n[0].link.text+"")&&E(l,e)},d(n){n&&N(l)}}}function Zo(t){let e,l,n,i=t[15].label+"",o,a,r,f;return{c(){e=Ut("g"),l=Ut("line"),n=Ut("text"),o=M(i),u(l,"x2","100%"),u(n,"y","-4"),u(n,"x",a=t[15].align=="right"?"90%":""),u(e,"class",r="tick tick-"+t[15].value+" tick-"+t[15].color),u(e,"transform",f="translate(0, "+t[7](t[15].value)+")")},m(c,m){P(c,e,m),s(e,l),s(e,n),s(n,o)},p(c,m){m&1&&i!==(i=c[15].label+"")&&E(o,i),m&1&&a!==(a=c[15].align=="right"?"90%":"")&&u(n,"x",a),m&1&&r!==(r="tick tick-"+c[15].value+" tick-"+c[15].color)&&u(e,"class",r),m&129&&f!==(f="translate(0, "+c[7](c[15].value)+")")&&u(e,"transform",f)},d(c){c&&N(e)}}}function Jo(t){let e=!isNaN(t[7](t[15].value)),l,n=e&&Zo(t);return{c(){n&&n.c(),l=yt()},m(i,o){n&&n.m(i,o),P(i,l,o)},p(i,o){o&129&&(e=!isNaN(i[7](i[15].value))),e?n?n.p(i,o):(n=Zo(i),n.c(),n.m(l.parentNode,l)):n&&(n.d(1),n=null)},d(i){i&&N(l),n&&n.d(i)}}}function $o(t){let e,l,n=(t[3]>20||t[13]%2==0)&&xo(t);return{c(){e=Ut("g"),n&&n.c(),u(e,"class","tick"),u(e,"transform",l="translate("+t[6](t[13])+","+t[4]+")")},m(i,o){P(i,e,o),n&&n.m(e,null)},p(i,o){i[3]>20||i[13]%2==0?n?n.p(i,o):(n=xo(i),n.c(),n.m(e,null)):n&&(n.d(1),n=null),o&80&&l!==(l="translate("+i[6](i[13])+","+i[4]+")")&&u(e,"transform",l)},d(i){i&&N(e),n&&n.d()}}}function xo(t){let e,l=t[11].label+"",n,i;return{c(){e=Ut("text"),n=M(l),u(e,"x",i=t[3]/2),u(e,"y","-4")},m(o,a){P(o,e,a),s(e,n)},p(o,a){a&1&&l!==(l=o[11].label+"")&&E(n,l),a&8&&i!==(i=o[3]/2)&&u(e,"x",i)},d(o){o&&N(e)}}}function es(t){let e=!isNaN(t[6](t[13])),l,n=e&&$o(t);return{c(){n&&n.c(),l=yt()},m(i,o){n&&n.m(i,o),P(i,l,o)},p(i,o){o&64&&(e=!isNaN(i[6](i[13]))),e?n?n.p(i,o):(n=$o(i),n.c(),n.m(l.parentNode,l)):n&&(n.d(1),n=null)},d(i){i&&N(l),n&&n.d(i)}}}function ts(t){let e,l,n,i,o,a=t[11].value!==void 0&&ls(t),r=t[11].value2>1e-4&&is(t);return{c(){e=Ut("g"),a&&a.c(),n=Ut("g"),r&&r.c(),u(e,"data-title",l=t[11].title)},m(f,c){P(f,e,c),a&&a.m(e,null),P(f,n,c),r&&r.m(n,null),i||(o=tr(vc.call(null,e)),i=!0)},p(f,c){f[11].value!==void 0?a?a.p(f,c):(a=ls(f),a.c(),a.m(e,null)):a&&(a.d(1),a=null),c&1&&l!==(l=f[11].title)&&u(e,"data-title",l),f[11].value2>1e-4?r?r.p(f,c):(r=is(f),r.c(),r.m(n,null)):r&&(r.d(1),r=null)},d(f){f&&(N(e),N(n)),a&&a.d(),r&&r.d(),i=!1,o()}}}function ls(t){let e,l,n,i,o,a,r,f=t[3]>15&&ns(t);return{c(){e=Ut("rect"),f&&f.c(),r=yt(),u(e,"x",l=t[6](t[13])+2),u(e,"y",n=t[7](t[11].value)),u(e,"width",i=t[3]*.95),u(e,"height",o=t[7](t[0].y.min)-t[7](Math.min(t[0].y.min,0)+t[11].value)),u(e,"fill",a=t[11].color)},m(c,m){P(c,e,m),f&&f.m(c,m),P(c,r,m)},p(c,m){m&64&&l!==(l=c[6](c[13])+2)&&u(e,"x",l),m&129&&n!==(n=c[7](c[11].value))&&u(e,"y",n),m&8&&i!==(i=c[3]*.95)&&u(e,"width",i),m&129&&o!==(o=c[7](c[0].y.min)-c[7](Math.min(c[0].y.min,0)+c[11].value))&&u(e,"height",o),m&1&&a!==(a=c[11].color)&&u(e,"fill",a),c[3]>15?f?f.p(c,m):(f=ns(c),f.c(),f.m(r.parentNode,r)):f&&(f.d(1),f=null)},d(c){c&&(N(e),N(r)),f&&f.d(c)}}}function ns(t){let e,l=t[11].label+"",n,i,o,a,r;return{c(){e=Ut("text"),n=M(l),u(e,"width",i=t[3]*.95),u(e,"dominant-baseline","middle"),u(e,"text-anchor",o=t[3]t[7](0)-t[8]&&!t[0].dark?t[11].color:"white"),u(e,"transform",r="translate("+(t[6](t[13])+t[3]/2)+" "+(t[7](t[11].value)>t[7](0)-t[8]?t[7](t[11].value)-t[8]:t[7](t[11].value)+10)+") rotate("+(t[11].labelAngle?t[11].labelAngle:t[3]f[7](0)-f[8]&&!f[0].dark?f[11].color:"white")&&u(e,"fill",a),c&457&&r!==(r="translate("+(f[6](f[13])+f[3]/2)+" "+(f[7](f[11].value)>f[7](0)-f[8]?f[7](f[11].value)-f[8]:f[7](f[11].value)+10)+") rotate("+(f[11].labelAngle?f[11].labelAngle:f[3]15&&os(t);return{c(){e=Ut("rect"),f&&f.c(),r=yt(),u(e,"x",l=t[6](t[13])+2),u(e,"y",n=t[7](0)),u(e,"width",i=t[3]*.95),u(e,"height",o=t[7](t[0].y.min)-t[7](t[0].y.min+t[11].value2)),u(e,"fill",a=t[11].color2?t[11].color2:t[11].color)},m(c,m){P(c,e,m),f&&f.m(c,m),P(c,r,m)},p(c,m){m&64&&l!==(l=c[6](c[13])+2)&&u(e,"x",l),m&128&&n!==(n=c[7](0))&&u(e,"y",n),m&8&&i!==(i=c[3]*.95)&&u(e,"width",i),m&129&&o!==(o=c[7](c[0].y.min)-c[7](c[0].y.min+c[11].value2))&&u(e,"height",o),m&1&&a!==(a=c[11].color2?c[11].color2:c[11].color)&&u(e,"fill",a),c[3]>15?f?f.p(c,m):(f=os(c),f.c(),f.m(r.parentNode,r)):f&&(f.d(1),f=null)},d(c){c&&(N(e),N(r)),f&&f.d(c)}}}function os(t){let e,l=t[11].label2+"",n,i,o,a,r,f=t[11].title2&&ss(t);return{c(){e=Ut("text"),n=M(l),f&&f.c(),r=yt(),u(e,"width",i=t[3]*.95),u(e,"dominant-baseline","middle"),u(e,"text-anchor","middle"),u(e,"fill",o=t[7](-t[11].value2)t[10].call(e))},m(o,a){P(o,e,a),i&&i.m(e,null),l=Mi(e,t[10].bind(e)),n=!0},p(o,[a]){o[0].x.ticks&&o[0].points&&o[4]?i?(i.p(o,a),a&17&&X(i,1)):(i=Ko(o),i.c(),X(i,1),i.m(e,null)):i&&(rt(),ee(i,1,1,()=>{i=null}),ct())},i(o){n||(X(i),n=!0)},o(o){ee(i),n=!1},d(o){o&&N(e),i&&i.d(),l()}}}let un=30;function Cc(t,e,l){let{config:n}=e,i,o,a,r,f,c,m,_=0;function d(){_=this.clientHeight,l(5,_)}function h(){i=this.clientWidth,o=this.clientHeight,l(1,i),l(2,o)}return t.$$set=g=>{"config"in g&&l(0,n=g.config)},t.$$.update=()=>{if(t.$$.dirty&63){l(4,c=o-_);let g=i-(n.padding.left+n.padding.right);l(3,a=g/n.points.length),l(8,m=an.y.max?k=n.padding.bottom:Cc||k<0?0:k})}},[n,i,o,a,c,_,r,f,m,d,h]}class pn extends Tt{constructor(e){super(),Pt(this,e,Cc,wc,Ct,{config:0})}}function Sc(t){let e,l;return e=new pn({props:{config:t[0]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,[i]){const o={};i&1&&(o.config=n[0]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function Mc(t,e,l){let{title:n}=e,{u1:i}=e,{u2:o}=e,{u3:a}=e,{ds:r}=e,f={};function c(m){return{label:xt(m)+"V",title:m.toFixed(1)+" V",value:isNaN(m)?0:m,color:w1(m||0,document.documentElement.classList.contains("dark"))}}return t.$$set=m=>{"title"in m&&l(1,n=m.title),"u1"in m&&l(2,i=m.u1),"u2"in m&&l(3,o=m.u2),"u3"in m&&l(4,a=m.u3),"ds"in m&&l(5,r=m.ds)},t.$$.update=()=>{if(t.$$.dirty&62){let m=[],_=[];i>0&&(m.push({label:r===1?"L1-L2":"L1"}),_.push(c(i))),o>0&&(m.push({label:r===1?"L1-L3":"L2"}),_.push(c(o))),a>0&&(m.push({label:r===1?"L2-L3":"L3"}),_.push(c(a))),l(0,f={title:n,padding:{top:20,right:15,bottom:20,left:35},y:{min:200,max:260,ticks:[{value:207,label:"-10%"},{value:230,label:"230v"},{value:253,label:"+10%"}]},x:{ticks:m},points:_})}},[f,n,i,o,a,r]}class Nc extends Tt{constructor(e){super(),Pt(this,e,Mc,Sc,Ct,{title:1,u1:2,u2:3,u3:4,ds:5})}}function Pc(t){var D,W,$,ae,pe;let e,l,n=(((D=t[0].reactive)==null?void 0:D.title)??"Reactive")+"",i,o,a,r,f=(((W=t[0].reactive)==null?void 0:W.instant_in)??"Instant in")+"",c,m,_,d=t[1][0]+"",h,g,b=t[1][1]+"",C,k,A,I=((($=t[0].reactive)==null?void 0:$.instant_out)??"Instant out")+"",R,T,F,L=t[2][0]+"",z,G,H=t[2][1]+"",q,U,Z,V,Q=(((ae=t[0].reactive)==null?void 0:ae.total_in)??"Total in")+"",K,B,y,ie=t[3][0]+"",te,Y,le=t[3][1]+"",ue,fe,ne,de=(((pe=t[0].reactive)==null?void 0:pe.total_out)??"Total out")+"",oe,_e,se,me=t[4][0]+"",we,S,w=t[4][1]+"",O;return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("div"),r=p("div"),c=M(f),m=v(),_=p("div"),h=M(d),g=v(),C=M(b),k=v(),A=p("div"),R=M(I),T=v(),F=p("div"),z=M(L),G=v(),q=M(H),U=v(),Z=p("div"),V=p("div"),K=M(Q),B=v(),y=p("div"),te=M(ie),Y=v(),ue=M(le),fe=v(),ne=p("div"),oe=M(de),_e=v(),se=p("div"),we=M(me),S=v(),O=M(w),u(_,"class","text-right"),u(F,"class","text-right"),u(a,"class","grid grid-cols-2 mt-4"),u(y,"class","text-right"),u(se,"class","text-right"),u(Z,"class","grid grid-cols-2 mt-4"),u(e,"class","mx-2 text-sm")},m(ve,J){P(ve,e,J),s(e,l),s(l,i),s(e,o),s(e,a),s(a,r),s(r,c),s(a,m),s(a,_),s(_,h),s(_,g),s(_,C),s(a,k),s(a,A),s(A,R),s(a,T),s(a,F),s(F,z),s(F,G),s(F,q),s(e,U),s(e,Z),s(Z,V),s(V,K),s(Z,B),s(Z,y),s(y,te),s(y,Y),s(y,ue),s(Z,fe),s(Z,ne),s(ne,oe),s(Z,_e),s(Z,se),s(se,we),s(se,S),s(se,O)},p(ve,[J]){var be,ke,Ee,Pe,Ae;J&1&&n!==(n=(((be=ve[0].reactive)==null?void 0:be.title)??"Reactive")+"")&&E(i,n),J&1&&f!==(f=(((ke=ve[0].reactive)==null?void 0:ke.instant_in)??"Instant in")+"")&&E(c,f),J&2&&d!==(d=ve[1][0]+"")&&E(h,d),J&2&&b!==(b=ve[1][1]+"")&&E(C,b),J&1&&I!==(I=(((Ee=ve[0].reactive)==null?void 0:Ee.instant_out)??"Instant out")+"")&&E(R,I),J&4&&L!==(L=ve[2][0]+"")&&E(z,L),J&4&&H!==(H=ve[2][1]+"")&&E(q,H),J&1&&Q!==(Q=(((Pe=ve[0].reactive)==null?void 0:Pe.total_in)??"Total in")+"")&&E(K,Q),J&8&&ie!==(ie=ve[3][0]+"")&&E(te,ie),J&8&&le!==(le=ve[3][1]+"")&&E(ue,le),J&1&&de!==(de=(((Ae=ve[0].reactive)==null?void 0:Ae.total_out)??"Total out")+"")&&E(oe,de),J&16&&me!==(me=ve[4][0]+"")&&E(we,me),J&16&&w!==(w=ve[4][1]+"")&&E(O,w)},i:ze,o:ze,d(ve){ve&&N(e)}}}function Tc(t,e,l){let{importInstant:n}=e,{exportInstant:i}=e,{importTotal:o}=e,{exportTotal:a}=e,{translations:r={}}=e,f,c,m,_;return t.$$set=d=>{"importInstant"in d&&l(5,n=d.importInstant),"exportInstant"in d&&l(6,i=d.exportInstant),"importTotal"in d&&l(7,o=d.importTotal),"exportTotal"in d&&l(8,a=d.exportTotal),"translations"in d&&l(0,r=d.translations)},t.$$.update=()=>{t.$$.dirty&480&&(l(1,f=ml(n,"VAr")),l(2,c=ml(i,"VAr")),l(3,m=ml(o*1e3,"VArh")),l(4,_=ml(a*1e3,"VArh")))},[r,f,c,m,_,n,i,o,a]}class qc extends Tt{constructor(e){super(),Pt(this,e,Tc,Pc,Ct,{importInstant:5,exportInstant:6,importTotal:7,exportTotal:8,translations:0})}}function fs(t){let e;function l(o,a){return o[3]?Dc:Ec}let n=l(t),i=n(t);return{c(){i.c(),e=yt()},m(o,a){i.m(o,a),P(o,e,a)},p(o,a){n===(n=l(o))&&i?i.p(o,a):(i.d(1),i=n(o),i&&(i.c(),i.m(e.parentNode,e)))},d(o){o&&N(e),i.d(o)}}}function Ec(t){var W,$,ae,pe,ve;let e,l=(((W=t[4].realtime)==null?void 0:W.consumption)??"Consumption")+"",n,i,o,a,r=sl((($=t[4].common)==null?void 0:$.hour)??"Hour")+"",f,c,m,_=t[6][0]+"",d,h,g=t[6][1]+"",b,C,k,A=sl(((ae=t[4].common)==null?void 0:ae.day)??"Day")+"",I,R,T,F=t[7][0]+"",L,z,G=t[7][1]+"",H,q,U,Z=sl(((pe=t[4].common)==null?void 0:pe.month)??"Month")+"",V,Q,K,B=t[8][0]+"",y,ie,te=t[8][1]+"",Y,le,ue,fe=(((ve=t[4].realtime)==null?void 0:ve.last_month)??"Last month")+"",ne,de,oe,_e=t[9][0]+"",se,me,we=t[9][1]+"",S,w,O,D=t[5]&&us(t);return{c(){e=p("strong"),n=M(l),i=v(),o=p("div"),a=p("div"),f=M(r),c=v(),m=p("div"),d=M(_),h=v(),b=M(g),C=v(),k=p("div"),I=M(A),R=v(),T=p("div"),L=M(F),z=v(),H=M(G),q=v(),U=p("div"),V=M(Z),Q=v(),K=p("div"),y=M(B),ie=v(),Y=M(te),le=v(),ue=p("div"),ne=M(fe),de=v(),oe=p("div"),se=M(_e),me=v(),S=M(we),w=v(),D&&D.c(),O=yt(),u(m,"class","text-right"),u(T,"class","text-right"),u(K,"class","text-right"),u(oe,"class","text-right"),u(o,"class","grid grid-cols-2 mb-3")},m(J,be){P(J,e,be),s(e,n),P(J,i,be),P(J,o,be),s(o,a),s(a,f),s(o,c),s(o,m),s(m,d),s(m,h),s(m,b),s(o,C),s(o,k),s(k,I),s(o,R),s(o,T),s(T,L),s(T,z),s(T,H),s(o,q),s(o,U),s(U,V),s(o,Q),s(o,K),s(K,y),s(K,ie),s(K,Y),s(o,le),s(o,ue),s(ue,ne),s(o,de),s(o,oe),s(oe,se),s(oe,me),s(oe,S),P(J,w,be),D&&D.m(J,be),P(J,O,be)},p(J,be){var ke,Ee,Pe,Ae,Le;be&16&&l!==(l=(((ke=J[4].realtime)==null?void 0:ke.consumption)??"Consumption")+"")&&E(n,l),be&16&&r!==(r=sl(((Ee=J[4].common)==null?void 0:Ee.hour)??"Hour")+"")&&E(f,r),be&64&&_!==(_=J[6][0]+"")&&E(d,_),be&64&&g!==(g=J[6][1]+"")&&E(b,g),be&16&&A!==(A=sl(((Pe=J[4].common)==null?void 0:Pe.day)??"Day")+"")&&E(I,A),be&128&&F!==(F=J[7][0]+"")&&E(L,F),be&128&&G!==(G=J[7][1]+"")&&E(H,G),be&16&&Z!==(Z=sl(((Ae=J[4].common)==null?void 0:Ae.month)??"Month")+"")&&E(V,Z),be&256&&B!==(B=J[8][0]+"")&&E(y,B),be&256&&te!==(te=J[8][1]+"")&&E(Y,te),be&16&&fe!==(fe=(((Le=J[4].realtime)==null?void 0:Le.last_month)??"Last month")+"")&&E(ne,fe),be&512&&_e!==(_e=J[9][0]+"")&&E(se,_e),be&512&&we!==(we=J[9][1]+"")&&E(S,we),J[5]?D?D.p(J,be):(D=us(J),D.c(),D.m(O.parentNode,O)):D&&(D.d(1),D=null)},d(J){J&&(N(e),N(i),N(o),N(w),N(O)),D&&D.d(J)}}}function Dc(t){var Ie,He,Gt,Vt,wt,cl,ol,jt,Ht,ul;let e,l=(((Ie=t[4].common)==null?void 0:Ie.import)??"Import")+"",n,i,o,a,r=sl(((He=t[4].common)==null?void 0:He.hour)??"Hour")+"",f,c,m,_=t[6][0]+"",d,h,g=t[6][1]+"",b,C,k,A,I=sl(((Gt=t[4].common)==null?void 0:Gt.day)??"Day")+"",R,T,F,L=t[7][0]+"",z,G,H=t[7][1]+"",q,U,Z,V,Q=sl(((Vt=t[4].common)==null?void 0:Vt.month)??"Month")+"",K,B,y,ie=t[8][0]+"",te,Y,le=t[8][1]+"",ue,fe,ne,de,oe=(((wt=t[4].realtime)==null?void 0:wt.last_mo)??"Last mo.")+"",_e,se,me,we=t[9][0]+"",S,w,O=t[9][1]+"",D,W,$,ae,pe,ve=(((cl=t[4].common)==null?void 0:cl.export)??"Export")+"",J,be,ke,Ee,Pe=sl(((ol=t[4].common)==null?void 0:ol.hour)??"Hour")+"",Ae,Le,qe,Re=t[10][0]+"",Xe,gt,$e=t[10][1]+"",ft,St,pt,ut,it=sl(((jt=t[4].common)==null?void 0:jt.day)??"Day")+"",dt,At,Ze,Fe=t[11][0]+"",je,et,ge=t[11][1]+"",Te,Ke,ce,Ce,Je=sl(((Ht=t[4].common)==null?void 0:Ht.month)??"Month")+"",Ge,Lt,vt,Ye=t[12][0]+"",qt,st,_t=t[12][1]+"",tt,Bt,Jt,mt,lt=(((ul=t[4].realtime)==null?void 0:ul.last_mo)??"Last mo.")+"",Kt,Qt,Ot,el=t[13][0]+"",tl,Xt,$t=t[13][1]+"",ll,Ve,ot,Mt=t[5]&&rs(t),It=t[5]&&cs(t),kt=t[5]&&_s(t),bt=t[5]&&ms(t),zt=t[5]&&ps(t),xe=t[5]&&ds(t),Rt=t[5]&&hs(t),he=t[5]&&vs(t);return{c(){e=p("strong"),n=M(l),i=v(),o=p("div"),a=p("div"),f=M(r),c=v(),m=p("div"),d=M(_),h=v(),b=M(g),C=v(),Mt&&Mt.c(),k=v(),A=p("div"),R=M(I),T=v(),F=p("div"),z=M(L),G=v(),q=M(H),U=v(),It&&It.c(),Z=v(),V=p("div"),K=M(Q),B=v(),y=p("div"),te=M(ie),Y=v(),ue=M(le),fe=v(),kt&&kt.c(),ne=v(),de=p("div"),_e=M(oe),se=v(),me=p("div"),S=M(we),w=v(),D=M(O),W=v(),bt&&bt.c(),ae=v(),pe=p("strong"),J=M(ve),be=v(),ke=p("div"),Ee=p("div"),Ae=M(Pe),Le=v(),qe=p("div"),Xe=M(Re),gt=v(),ft=M($e),St=v(),zt&&zt.c(),pt=v(),ut=p("div"),dt=M(it),At=v(),Ze=p("div"),je=M(Fe),et=v(),Te=M(ge),Ke=v(),xe&&xe.c(),ce=v(),Ce=p("div"),Ge=M(Je),Lt=v(),vt=p("div"),qt=M(Ye),st=v(),tt=M(_t),Bt=v(),Rt&&Rt.c(),Jt=v(),mt=p("div"),Kt=M(lt),Qt=v(),Ot=p("div"),tl=M(el),Xt=v(),ll=M($t),Ve=v(),he&&he.c(),u(m,"class","text-right"),u(F,"class","text-right"),u(y,"class","text-right"),u(me,"class","text-right"),u(o,"class",$="grid grid-cols-"+t[14]+" mb-3"),u(qe,"class","text-right"),u(Ze,"class","text-right"),u(vt,"class","text-right"),u(Ot,"class","text-right"),u(ke,"class",ot="grid grid-cols-"+t[14])},m(De,x){P(De,e,x),s(e,n),P(De,i,x),P(De,o,x),s(o,a),s(a,f),s(o,c),s(o,m),s(m,d),s(m,h),s(m,b),s(o,C),Mt&&Mt.m(o,null),s(o,k),s(o,A),s(A,R),s(o,T),s(o,F),s(F,z),s(F,G),s(F,q),s(o,U),It&&It.m(o,null),s(o,Z),s(o,V),s(V,K),s(o,B),s(o,y),s(y,te),s(y,Y),s(y,ue),s(o,fe),kt&&kt.m(o,null),s(o,ne),s(o,de),s(de,_e),s(o,se),s(o,me),s(me,S),s(me,w),s(me,D),s(o,W),bt&&bt.m(o,null),P(De,ae,x),P(De,pe,x),s(pe,J),P(De,be,x),P(De,ke,x),s(ke,Ee),s(Ee,Ae),s(ke,Le),s(ke,qe),s(qe,Xe),s(qe,gt),s(qe,ft),s(ke,St),zt&&zt.m(ke,null),s(ke,pt),s(ke,ut),s(ut,dt),s(ke,At),s(ke,Ze),s(Ze,je),s(Ze,et),s(Ze,Te),s(ke,Ke),xe&&xe.m(ke,null),s(ke,ce),s(ke,Ce),s(Ce,Ge),s(ke,Lt),s(ke,vt),s(vt,qt),s(vt,st),s(vt,tt),s(ke,Bt),Rt&&Rt.m(ke,null),s(ke,Jt),s(ke,mt),s(mt,Kt),s(ke,Qt),s(ke,Ot),s(Ot,tl),s(Ot,Xt),s(Ot,ll),s(ke,Ve),he&&he.m(ke,null)},p(De,x){var Oe,nt,Nt,al,_l,hl,fl,bl,gl,Pl;x&16&&l!==(l=(((Oe=De[4].common)==null?void 0:Oe.import)??"Import")+"")&&E(n,l),x&16&&r!==(r=sl(((nt=De[4].common)==null?void 0:nt.hour)??"Hour")+"")&&E(f,r),x&64&&_!==(_=De[6][0]+"")&&E(d,_),x&64&&g!==(g=De[6][1]+"")&&E(b,g),De[5]?Mt?Mt.p(De,x):(Mt=rs(De),Mt.c(),Mt.m(o,k)):Mt&&(Mt.d(1),Mt=null),x&16&&I!==(I=sl(((Nt=De[4].common)==null?void 0:Nt.day)??"Day")+"")&&E(R,I),x&128&&L!==(L=De[7][0]+"")&&E(z,L),x&128&&H!==(H=De[7][1]+"")&&E(q,H),De[5]?It?It.p(De,x):(It=cs(De),It.c(),It.m(o,Z)):It&&(It.d(1),It=null),x&16&&Q!==(Q=sl(((al=De[4].common)==null?void 0:al.month)??"Month")+"")&&E(K,Q),x&256&&ie!==(ie=De[8][0]+"")&&E(te,ie),x&256&&le!==(le=De[8][1]+"")&&E(ue,le),De[5]?kt?kt.p(De,x):(kt=_s(De),kt.c(),kt.m(o,ne)):kt&&(kt.d(1),kt=null),x&16&&oe!==(oe=(((_l=De[4].realtime)==null?void 0:_l.last_mo)??"Last mo.")+"")&&E(_e,oe),x&512&&we!==(we=De[9][0]+"")&&E(S,we),x&512&&O!==(O=De[9][1]+"")&&E(D,O),De[5]?bt?bt.p(De,x):(bt=ms(De),bt.c(),bt.m(o,null)):bt&&(bt.d(1),bt=null),x&16384&&$!==($="grid grid-cols-"+De[14]+" mb-3")&&u(o,"class",$),x&16&&ve!==(ve=(((hl=De[4].common)==null?void 0:hl.export)??"Export")+"")&&E(J,ve),x&16&&Pe!==(Pe=sl(((fl=De[4].common)==null?void 0:fl.hour)??"Hour")+"")&&E(Ae,Pe),x&1024&&Re!==(Re=De[10][0]+"")&&E(Xe,Re),x&1024&&$e!==($e=De[10][1]+"")&&E(ft,$e),De[5]?zt?zt.p(De,x):(zt=ps(De),zt.c(),zt.m(ke,pt)):zt&&(zt.d(1),zt=null),x&16&&it!==(it=sl(((bl=De[4].common)==null?void 0:bl.day)??"Day")+"")&&E(dt,it),x&2048&&Fe!==(Fe=De[11][0]+"")&&E(je,Fe),x&2048&&ge!==(ge=De[11][1]+"")&&E(Te,ge),De[5]?xe?xe.p(De,x):(xe=ds(De),xe.c(),xe.m(ke,ce)):xe&&(xe.d(1),xe=null),x&16&&Je!==(Je=sl(((gl=De[4].common)==null?void 0:gl.month)??"Month")+"")&&E(Ge,Je),x&4096&&Ye!==(Ye=De[12][0]+"")&&E(qt,Ye),x&4096&&_t!==(_t=De[12][1]+"")&&E(tt,_t),De[5]?Rt?Rt.p(De,x):(Rt=hs(De),Rt.c(),Rt.m(ke,Jt)):Rt&&(Rt.d(1),Rt=null),x&16&<!==(lt=(((Pl=De[4].realtime)==null?void 0:Pl.last_mo)??"Last mo.")+"")&&E(Kt,lt),x&8192&&el!==(el=De[13][0]+"")&&E(tl,el),x&8192&&$t!==($t=De[13][1]+"")&&E(ll,$t),De[5]?he?he.p(De,x):(he=vs(De),he.c(),he.m(ke,null)):he&&(he.d(1),he=null),x&16384&&ot!==(ot="grid grid-cols-"+De[14])&&u(ke,"class",ot)},d(De){De&&(N(e),N(i),N(o),N(ae),N(pe),N(be),N(ke)),Mt&&Mt.d(),It&&It.d(),kt&&kt.d(),bt&&bt.d(),zt&&zt.d(),xe&&xe.d(),Rt&&Rt.d(),he&&he.d()}}}function us(t){var se,me,we,S,w,O;let e,l=(((se=t[4].realtime)==null?void 0:se.cost)??"Cost")+"",n,i,o,a,r=sl(((me=t[4].common)==null?void 0:me.hour)??"Hour")+"",f,c,m,_=xt(t[1].h.c,2)+"",d,h,g,b,C,k=sl(((we=t[4].common)==null?void 0:we.day)??"Day")+"",A,I,R,T=xt(t[1].d.c,1)+"",F,L,z,G,H,q=sl(((S=t[4].common)==null?void 0:S.month)??"Month")+"",U,Z,V,Q=xt(t[1].m.c)+"",K,B,y,ie,te,Y=(((w=t[4].realtime)==null?void 0:w.last_month)??"Last month")+"",le,ue,fe,ne=xt((O=t[0].last_month)==null?void 0:O.c)+"",de,oe,_e;return{c(){e=p("strong"),n=M(l),i=v(),o=p("div"),a=p("div"),f=M(r),c=v(),m=p("div"),d=M(_),h=v(),g=M(t[2]),b=v(),C=p("div"),A=M(k),I=v(),R=p("div"),F=M(T),L=v(),z=M(t[2]),G=v(),H=p("div"),U=M(q),Z=v(),V=p("div"),K=M(Q),B=v(),y=M(t[2]),ie=v(),te=p("div"),le=M(Y),ue=v(),fe=p("div"),de=M(ne),oe=v(),_e=M(t[2]),u(m,"class","text-right"),u(R,"class","text-right"),u(V,"class","text-right"),u(fe,"class","text-right"),u(o,"class","grid grid-cols-2")},m(D,W){P(D,e,W),s(e,n),P(D,i,W),P(D,o,W),s(o,a),s(a,f),s(o,c),s(o,m),s(m,d),s(m,h),s(m,g),s(o,b),s(o,C),s(C,A),s(o,I),s(o,R),s(R,F),s(R,L),s(R,z),s(o,G),s(o,H),s(H,U),s(o,Z),s(o,V),s(V,K),s(V,B),s(V,y),s(o,ie),s(o,te),s(te,le),s(o,ue),s(o,fe),s(fe,de),s(fe,oe),s(fe,_e)},p(D,W){var $,ae,pe,ve,J,be;W&16&&l!==(l=((($=D[4].realtime)==null?void 0:$.cost)??"Cost")+"")&&E(n,l),W&16&&r!==(r=sl(((ae=D[4].common)==null?void 0:ae.hour)??"Hour")+"")&&E(f,r),W&2&&_!==(_=xt(D[1].h.c,2)+"")&&E(d,_),W&4&&E(g,D[2]),W&16&&k!==(k=sl(((pe=D[4].common)==null?void 0:pe.day)??"Day")+"")&&E(A,k),W&2&&T!==(T=xt(D[1].d.c,1)+"")&&E(F,T),W&4&&E(z,D[2]),W&16&&q!==(q=sl(((ve=D[4].common)==null?void 0:ve.month)??"Month")+"")&&E(U,q),W&2&&Q!==(Q=xt(D[1].m.c)+"")&&E(K,Q),W&4&&E(y,D[2]),W&16&&Y!==(Y=(((J=D[4].realtime)==null?void 0:J.last_month)??"Last month")+"")&&E(le,Y),W&1&&ne!==(ne=xt((be=D[0].last_month)==null?void 0:be.c)+"")&&E(de,ne),W&4&&E(_e,D[2])},d(D){D&&(N(e),N(i),N(o))}}}function rs(t){let e,l=xt(t[1].h.c,2)+"",n,i,o;return{c(){e=p("div"),n=M(l),i=v(),o=M(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),s(e,n),s(e,i),s(e,o)},p(a,r){r&2&&l!==(l=xt(a[1].h.c,2)+"")&&E(n,l),r&4&&E(o,a[2])},d(a){a&&N(e)}}}function cs(t){let e,l=xt(t[1].d.c,1)+"",n,i,o;return{c(){e=p("div"),n=M(l),i=v(),o=M(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),s(e,n),s(e,i),s(e,o)},p(a,r){r&2&&l!==(l=xt(a[1].d.c,1)+"")&&E(n,l),r&4&&E(o,a[2])},d(a){a&&N(e)}}}function _s(t){let e,l=xt(t[1].m.c)+"",n,i,o;return{c(){e=p("div"),n=M(l),i=v(),o=M(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),s(e,n),s(e,i),s(e,o)},p(a,r){r&2&&l!==(l=xt(a[1].m.c)+"")&&E(n,l),r&4&&E(o,a[2])},d(a){a&&N(e)}}}function ms(t){var a;let e,l=xt((a=t[0].last_month)==null?void 0:a.c)+"",n,i,o;return{c(){e=p("div"),n=M(l),i=v(),o=M(t[2]),u(e,"class","text-right")},m(r,f){P(r,e,f),s(e,n),s(e,i),s(e,o)},p(r,f){var c;f&1&&l!==(l=xt((c=r[0].last_month)==null?void 0:c.c)+"")&&E(n,l),f&4&&E(o,r[2])},d(r){r&&N(e)}}}function ps(t){let e,l=xt(t[1].h.i,2)+"",n,i,o;return{c(){e=p("div"),n=M(l),i=v(),o=M(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),s(e,n),s(e,i),s(e,o)},p(a,r){r&2&&l!==(l=xt(a[1].h.i,2)+"")&&E(n,l),r&4&&E(o,a[2])},d(a){a&&N(e)}}}function ds(t){let e,l=xt(t[1].d.i,1)+"",n,i,o;return{c(){e=p("div"),n=M(l),i=v(),o=M(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),s(e,n),s(e,i),s(e,o)},p(a,r){r&2&&l!==(l=xt(a[1].d.i,1)+"")&&E(n,l),r&4&&E(o,a[2])},d(a){a&&N(e)}}}function hs(t){let e,l=xt(t[1].m.i)+"",n,i,o;return{c(){e=p("div"),n=M(l),i=v(),o=M(t[2]),u(e,"class","text-right")},m(a,r){P(a,e,r),s(e,n),s(e,i),s(e,o)},p(a,r){r&2&&l!==(l=xt(a[1].m.i)+"")&&E(n,l),r&4&&E(o,a[2])},d(a){a&&N(e)}}}function vs(t){var a;let e,l=xt((a=t[0].last_month)==null?void 0:a.i)+"",n,i,o;return{c(){e=p("div"),n=M(l),i=v(),o=M(t[2]),u(e,"class","text-right")},m(r,f){P(r,e,f),s(e,n),s(e,i),s(e,o)},p(r,f){var c;f&1&&l!==(l=xt((c=r[0].last_month)==null?void 0:c.i)+"")&&E(n,l),f&4&&E(o,r[2])},d(r){r&&N(e)}}}function Ac(t){var m;let e,l,n=(((m=t[4].realtime)==null?void 0:m.title)??"Real time calculations")+"",i,o,a,r,f,c=t[1]&&fs(t);return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("br"),r=p("br"),f=v(),c&&c.c(),u(e,"class","mx-2 text-sm")},m(_,d){P(_,e,d),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),c&&c.m(e,null)},p(_,[d]){var h;d&16&&n!==(n=(((h=_[4].realtime)==null?void 0:h.title)??"Real time calculations")+"")&&E(i,n),_[1]?c?c.p(_,d):(c=fs(_),c.c(),c.m(e,null)):c&&(c.d(1),c=null)},i:ze,o:ze,d(_){_&&N(e),c&&c.d()}}}function Lc(t,e,l){let{sysinfo:n}=e,{data:i}=e,{currency:o}=e,{hasExport:a}=e,{translations:r={}}=e,f,c,m,_,d,h,g,b,C=!1,k=3;return t.$$set=A=>{"sysinfo"in A&&l(0,n=A.sysinfo),"data"in A&&l(1,i=A.data),"currency"in A&&l(2,o=A.currency),"hasExport"in A&&l(3,a=A.hasExport),"translations"in A&&l(4,r=A.translations)},t.$$.update=()=>{var A,I,R,T,F,L,z,G;t.$$.dirty&35&&(l(5,C=i&&i.h&&(Math.abs(i.h.c)>.01||Math.abs(i.d.c)>.01||Math.abs(i.m.c)>.01||Math.abs(i.h.i)>.01||Math.abs(i.d.i)>.01||Math.abs(i.m.i)>.01)),l(14,k=C?3:2),l(6,f=ml(((A=i==null?void 0:i.h)==null?void 0:A.u)*1e3,"Wh")),l(7,c=ml(((I=i==null?void 0:i.d)==null?void 0:I.u)*1e3,"Wh")),l(8,m=ml(((R=i==null?void 0:i.m)==null?void 0:R.u)*1e3,"Wh")),l(9,_=ml(((T=n==null?void 0:n.last_month)==null?void 0:T.u)*1e3,"Wh")),l(10,d=ml(((F=i==null?void 0:i.h)==null?void 0:F.p)*1e3,"Wh")),l(11,h=ml(((L=i==null?void 0:i.d)==null?void 0:L.p)*1e3,"Wh")),l(12,g=ml(((z=i==null?void 0:i.m)==null?void 0:z.p)*1e3,"Wh")),l(13,b=ml(((G=n==null?void 0:n.last_month)==null?void 0:G.p)*1e3,"Wh")))},[n,i,o,a,r,C,f,c,m,_,d,h,g,b,k]}class Oc extends Tt{constructor(e){super(),Pt(this,e,Lc,Ac,Ct,{sysinfo:0,data:1,currency:2,hasExport:3,translations:4})}}function bs(t){let e,l;return e=new pn({props:{config:t[0]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&1&&(o.config=n[0]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function Ic(t){let e,l,n=t[0].points&&t[0].points.length>0&&bs(t);return{c(){n&&n.c(),e=yt()},m(i,o){n&&n.m(i,o),P(i,e,o),l=!0},p(i,[o]){i[0].points&&i[0].points.length>0?n?(n.p(i,o),o&1&&X(n,1)):(n=bs(i),n.c(),X(n,1),n.m(e.parentNode,e)):n&&(rt(),ee(n,1,1,()=>{n=null}),ct())},i(i){l||(X(n),l=!0)},o(i){ee(n),l=!1},d(i){i&&N(e),n&&n.d(i)}}}function Rc(t,e,l){let{title:n}=e,{json:i}=e,o={},a,r,f=document.documentElement.classList.contains("dark"),c=new Date;return so(()=>{let m;function _(){l(5,c=new Date),m=setTimeout(()=>{_()},(15-c.getMinutes()%15)*6e4)}return _(),()=>{clearTimeout(m)}}),t.$$set=m=>{"title"in m&&l(1,n=m.title),"json"in m&&l(2,i=m.json)},t.$$.update=()=>{var m,_;if(t.$$.dirty&62&&((m=i==null?void 0:i.prices)==null?void 0:m.length)>0){l(5,c=new Date);let d=i==null?void 0:i.currency,h=0,g=[],b=[],C=[];l(4,r=l(3,a=0));let k=Math.floor((c.getHours()*60+c.getMinutes())/(i==null?void 0:i.resolution));for(c.setMinutes(Math.floor(c.getMinutes()/(i==null?void 0:i.resolution))*(i==null?void 0:i.resolution),0,0);k<((_=i==null?void 0:i.prices)==null?void 0:_.length)&&(h=i.prices[k],h!=null);)b.push({label:C.length>0&&(i==null?void 0:i.resolution)<60&&c.getMinutes()!=0?"":Ft(c.getHours())}),C.push(h*100),l(4,r=Math.min(r,h*100)),l(3,a=Math.max(a,h*100)),C1(c,i==null?void 0:i.resolution),k++;let A=li(Math.max(Math.abs(r)/100,Math.abs(a)/100),d);if(A&&A[1]&&A[1]!=d)for(d=A[1],l(4,r*=100),l(3,a*=100),k=0;k=0?L.toFixed(z):"",title:L>=0?L.toFixed(2)+" "+d:"",value:h>=0?Math.abs(h):0,label2:L<0?L.toFixed(z):"",title2:L<0?L.toFixed(2)+" "+d:"",value2:h<0?Math.abs(h):0,color:f?"#5c2da5":"#7c3aed"})}let R=Math.max(a,Math.abs(r));if(r<0){l(4,r=Math.min(R/4*-1,r));let L=Math.ceil(Math.abs(r)/R*4),z=r/L;for(k=1;k{"title"in m&&l(1,n=m.title),"json"in m&&l(2,i=m.json),"sysinfo"in m&&l(3,o=m.sysinfo)},t.$$.update=()=>{if(t.$$.dirty&62){let m=0,_=[],d=[],h=[];l(5,f=l(4,r=0));let g=new Date,b=new Date;b.setDate(0),b.setHours(12);let C=(b.getHours()-b.getUTCHours())%24-o.clock_offset,k=g.getUTCHours();for(Cn(g,-C-24),m=k;m<24;m++){let T=i["i"+Ft(m)],F=i["e"+Ft(m)];T===void 0&&(T=0),F===void 0&&(F=0),d.push({label:Ft(g.getHours())}),h.push({label:T.toFixed(1),title:T.toFixed(2)+" kWh",value:T*10,label2:F.toFixed(1),title2:F.toFixed(2)+" kWh",value2:F*10,color:c?"#5c2da5":"#7c3aed",color2:c?"#27728e":"#37829e"}),l(5,f=Math.max(f,F*10)),l(4,r=Math.max(r,T*10)),Cn(g,1)}for(m=0;m{"title"in m&&l(1,n=m.title),"json"in m&&l(2,i=m.json),"sysinfo"in m&&l(3,o=m.sysinfo)},t.$$.update=()=>{if(t.$$.dirty&62){let m=0,_=[],d=[],h=[];l(5,f=l(4,r=0));let g=new Date,b=new Date;b.setDate(0),b.setHours(12);let C=(b.getHours()-b.getUTCHours())%24-o.clock_offset;for(Cn(g,-C),Cn(b,-C),m=g.getDate();m<=b.getDate();m++){let R=i["i"+Ft(m)],T=i["e"+Ft(m)];R===void 0&&(R=0),T===void 0&&(T=0),d.push({label:Ft(m)}),h.push({label:R.toFixed(R<10?1:0),title:R.toFixed(2)+" kWh",value:R,label2:T.toFixed(T<10?1:0),title2:T.toFixed(2)+" kWh",value2:T,color:c?"#5c2da5":"#7c3aed",color2:c?"#27728e":"#37829e"}),l(5,f=Math.max(f,T)),l(4,r=Math.max(r,R))}for(m=1;m{"title"in c&&l(1,n=c.title),"json"in c&&l(2,i=c.json)},t.$$.update=()=>{if(t.$$.dirty&30){let c=0,m=0,_=[],d=[],h=[];i.s&&i.s.forEach((C,k)=>{var A=C.n?C.n:C.a;m=C.v,m==-127&&(m=0),d.push({label:A.slice(-4)}),h.push({label:m.toFixed(1),value:m,color:o?"#5c2da5":"#7c3aed"}),l(4,f=Math.min(f,m)),l(3,r=Math.max(r,m))}),l(3,r=Math.ceil(r)),l(4,f=Math.floor(f));let g=r;f<0&&(g+=Math.abs(f));let b=g/4;for(c=0;c<5;c++)m=f+b*c,_.push({value:m,label:m.toFixed(1)});l(0,a={title:n+" (°C)",dark:document.documentElement.classList.contains("dark"),height:226,width:1520,padding:{top:20,right:15,bottom:20,left:35},y:{min:f,max:r,ticks:_},x:{ticks:d},points:h})}},[a,n,i,r,f]}class Gc extends Tt{constructor(e){super(),Pt(this,e,yc,Wc,Ct,{title:1,json:2})}}function Vc(t){let e,l;return e=new pn({props:{config:t[0]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,[i]){const o={};i&1&&(o.config=n[0]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}let Kc=0;function Yc(t,e,l){let{title:n}=e,{translations:i={}}=e,o=document.documentElement.classList.contains("dark"),a={},r=0,{tariffData:f}=e,{realtime:c}=e;return t.$$set=m=>{"title"in m&&l(1,n=m.title),"translations"in m&&l(2,i=m.translations),"tariffData"in m&&l(3,f=m.tariffData),"realtime"in m&&l(4,c=m.realtime)},t.$$.update=()=>{var m,_,d;if(t.$$.dirty&62){let h=0,g=[],b=[],C=[];if(g.push({value:0,label:0}),f&&!isNaN((m=c==null?void 0:c.h)==null?void 0:m.u)&&(C.push({label:c.h.u.toFixed(2),value:c.h.u,title:c.h.u.toFixed(2)+" kWh",color:Pi(c.h.u/f.c*100)}),b.push({label:((_=i.common)==null?void 0:_.now)??"Now"})),f&&f.p)for(h=0;h0?Ft(k.d)+"."+(i.months?(d=i.months)==null?void 0:d[new Date().getMonth()]:Ft(new Date().getMonth()+1)):"-",I=A;isNaN(k.h)||(I=I+" "+Ft(k.h)+":00"),I=I+": "+k.v.toFixed(2)+" kWh",C.push({label:k.v.toFixed(2),title:k.v.toFixed(2)+" kWh",value:k.v,title:I,color:o?"#5c2da5":"#7c3aed"}),b.push({label:A}),l(5,r=Math.max(r,k.v))}if(f&&f.t){for(h=0;h=r)break;g.push({value:k,label:k})}g.push({label:f.m.toFixed(1),align:"right",color:"green",value:f.m})}f&&f.c&&(g.push({label:f.c.toFixed(0),color:"orange",value:f.c}),l(5,r=Math.max(r,f.c))),l(5,r=Math.ceil(r)),l(0,a={title:n,dark:document.documentElement.classList.contains("dark"),padding:{top:20,right:20,bottom:20,left:20},y:{min:Kc,max:r,ticks:g},x:{ticks:b},points:C})}},[a,n,i,f,c,r]}class Qc extends Tt{constructor(e){super(),Pt(this,e,Yc,Vc,Ct,{title:1,translations:2,tariffData:3,realtime:4})}}let sn=0,Xc={data:[]};async function mo(){let e=await(await wl(sn<0?"realtime.json":"realtime.json?offset="+sn)).json();po.update(l=>{for(let n=0;n=0&&(sn+=e.size,snkn||Ji-kn>300?(mo(),Fi=0):po.update(t=>{if(t.lastUpdate)for(;kn>t.lastUpdate;)t.data.unshift(Yu),t.data=t.data.slice(0,t.size),t.lastUpdate+=10,Fi++;else t.lastUpdate=kn;return t})}function $c(t){if(Yu=t.i-t.e,kn=t.u,!gs){mo(),gs=!0,Ji=kn;return}Zc()&&Jc()}function ks(t,e,l){const n=t.slice();return n[18]=e[l],n[20]=l,n}function ws(t,e,l){const n=t.slice();return n[21]=e[l],n}function xc(t){let e,l,n;return{c(){e=p("strong"),l=M(t[0]),n=M(" not available"),u(e,"class","text-sm")},m(i,o){P(i,e,o),s(e,l),s(e,n)},p(i,o){o&1&&E(l,i[0])},d(i){i&&N(e)}}}function e0(t){let e,l,n,i,o,a,r,f=t[8]&&Cs(t);return{c(){e=p("strong"),l=M(t[0]),n=M(" ("),i=M(t[12]),o=M(")"),a=v(),f&&f.c(),r=yt(),u(e,"class","text-sm")},m(c,m){P(c,e,m),s(e,l),s(e,n),s(e,i),s(e,o),P(c,a,m),f&&f.m(c,m),P(c,r,m)},p(c,m){m&1&&E(l,c[0]),m&4096&&E(i,c[12]),c[8]?f?f.p(c,m):(f=Cs(c),f.c(),f.m(r.parentNode,r)):f&&(f.d(1),f=null)},d(c){c&&(N(e),N(a),N(r)),f&&f.d(c)}}}function Cs(t){let e,l,n,i,o,a=at(t[8]),r=[];for(let m=0;mt[17].call(e))},m(a,r){P(a,e,r),o.m(e,null),l=Mi(e,t[17].bind(e))},p(a,[r]){i===(i=n(a))&&o?o.p(a,r):(o.d(1),o=i(a),o&&(o.c(),o.m(e,null)))},i:ze,o:ze,d(a){a&&N(e),o.d(),l()}}}function l0(t,e,l){let{title:n}=e,i=document.documentElement.classList.contains("dark"),o=null;po.subscribe(T=>{l(16,o=T)});let a=!1,r,f,c,m,_,d,h,g=function(T,F,L){return Math.ceil(_-(T-F)/(L-F)*_)-25},b=function(T){return 30+Math.ceil(T/o.size*(d-35))},C,k,A,I;function R(){c=this.clientWidth,m=this.clientHeight,l(3,c),l(4,m)}return t.$$set=T=>{"title"in T&&l(0,n=T.title)},t.$$.update=()=>{if(t.$$.dirty&67582)if(l(5,_=parseInt(m)-50),l(6,d=c-35),l(10,A=d/o.size),l(2,f=0),l(1,r=0),o.data&&_>10&&d>100&&A>.1){l(11,a=!0);for(let L in o.data){let z=o.data[L];isNaN(z)&&(z=0),l(1,r=Math.max(Math.ceil(z/1e3)*1e3,r)),l(2,f=Math.min(Math.floor(z/1e3)*1e3,f))}let T=r-f;l(12,I=r>2500?"kW":"W"),l(8,C=[]);for(let L=f;L2500?(L/1e3).toFixed(1):L}),!(C.length>6));L+=T/5);l(9,k=[]);for(let L=0;L12));L+=Math.round(o.size/Math.round(d/120)));let F=o.size;l(7,h=b(o.size)+","+g(0,f,r)+" "+b(1)+","+g(0,f,r));for(let L in o.data){if(F<0)break;let z=o.data[L];isNaN(z)&&(z=0),l(7,h=b(F--)+","+g(z,f,r)+" "+h)}}else l(11,a=!1)},[n,r,f,c,m,_,d,h,C,k,A,a,I,i,g,b,o,R]}class n0 extends Tt{constructor(e){super(),Pt(this,e,l0,t0,Ct,{title:0})}}function i0(t){let e,l;return e=new pn({props:{config:t[0]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,[i]){const o={};i&1&&(o.config=n[0]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function o0(t,e,l){let{title:n}=e,{unit:i=""}=e,{l1:o=!1}=e,{l2:a=!1}=e,{l2x:r=!1}=e,{l3:f=!1}=e,{l1i:c=0}=e,{l2i:m=0}=e,{l3i:_=0}=e,{l1e:d=0}=e,{l2e:h=0}=e,{l3e:g=0}=e,{maxImport:b=0}=e,{maxExport:C=0}=e,{importColorFn:k}=e,{exportColorFn:A}=e,I={};function R(T,F){return{label:xt(T>900?T/1e3:T)+(T>900?"k":"")+i,title:T.toFixed(2)+" "+i,value:isNaN(T)?0:T,color:k(T?T/b*100:0,document.documentElement.classList.contains("dark")),label2:xt(F>900?F/1e3:F)+(F>900?"k":"")+i,title2:F.toFixed(2)+" "+i,value2:isNaN(F)?0:F,color2:A(F?F/C*100:0)}}return t.$$set=T=>{"title"in T&&l(1,n=T.title),"unit"in T&&l(2,i=T.unit),"l1"in T&&l(3,o=T.l1),"l2"in T&&l(4,a=T.l2),"l2x"in T&&l(5,r=T.l2x),"l3"in T&&l(6,f=T.l3),"l1i"in T&&l(7,c=T.l1i),"l2i"in T&&l(8,m=T.l2i),"l3i"in T&&l(9,_=T.l3i),"l1e"in T&&l(10,d=T.l1e),"l2e"in T&&l(11,h=T.l2e),"l3e"in T&&l(12,g=T.l3e),"maxImport"in T&&l(13,b=T.maxImport),"maxExport"in T&&l(14,C=T.maxExport),"importColorFn"in T&&l(15,k=T.importColorFn),"exportColorFn"in T&&l(16,A=T.exportColorFn)},t.$$.update=()=>{if(t.$$.dirty&32762){let T=[],F=[];o&&(T.push({label:"L1"}),F.push(R(c,d))),a&&(r?(T.push({label:"L2"}),F.push({label:"Not available",labelAngle:-90,title:"L2 current is not reported by your meter",value:0,color:"#7c3aedcc"})):(T.push({label:"L2"}),F.push(R(m,h)))),f&&(T.push({label:"L3"}),F.push(R(_,g)));let L=[];if(C){let z=C>b?4:C*4/b;L.push({value:-C,label:"-100%"}),z>=4&&L.push({value:-C/4*3,label:"-75%"}),z>=2&&L.push({value:-C/2,label:"-50%"}),z>=4&&L.push({value:-C/4,label:"-25%"})}if(L.push({value:0,label:"0%"}),b){let z=b>C?4:b*4/C;L.push({value:b/4,label:"25%"}),z>=4&&L.push({value:b/2,label:"50%"}),z>=2&&L.push({value:b/4*3,label:"75%"}),z>=4&&L.push({value:b,label:"100%"})}l(0,I={title:n,dark:document.documentElement.classList.contains("dark"),padding:{top:20,right:15,bottom:20,left:35},y:{min:-C,max:b,ticks:L},x:{ticks:T},points:F})}},[I,n,i,o,a,r,f,c,m,_,d,h,g,b,C,k,A]}class ho extends Tt{constructor(e){super(),Pt(this,e,o0,i0,Ct,{title:1,unit:2,l1:3,l2:4,l2x:5,l3:6,l1i:7,l2i:8,l3i:9,l1e:10,l2e:11,l3e:12,maxImport:13,maxExport:14,importColorFn:15,exportColorFn:16})}}function Ts(t){var k;let e,l,n,i,o,a,r=(t[0].mt?wi(t[0].mt):"-")+"",f,c,m,_=t[12][0]+"",d,h,g=t[12][1]+"",b,C;return i=new Ku({props:{val:t[0].i?t[0].i:0,max:t[0].im?t[0].im:15e3,unit:"W",label:((k=t[7].common)==null?void 0:k.import)??"Import",sub:li(t[0].p,t[0].pc),colorFn:Pi}}),{c(){e=p("div"),l=p("div"),n=p("div"),Ne(i.$$.fragment),o=v(),a=p("div"),f=M(r),c=v(),m=p("div"),d=M(_),h=v(),b=M(g),u(n,"class","col-span-2"),u(m,"class","text-right"),u(l,"class","grid grid-cols-2"),u(e,"class","cnt")},m(A,I){P(A,e,I),s(e,l),s(l,n),Se(i,n,null),s(l,o),s(l,a),s(a,f),s(l,c),s(l,m),s(m,d),s(m,h),s(m,b),C=!0},p(A,I){var T;const R={};I&1&&(R.val=A[0].i?A[0].i:0),I&1&&(R.max=A[0].im?A[0].im:15e3),I&128&&(R.label=((T=A[7].common)==null?void 0:T.import)??"Import"),I&1&&(R.sub=li(A[0].p,A[0].pc)),i.$set(R),(!C||I&1)&&r!==(r=(A[0].mt?wi(A[0].mt):"-")+"")&&E(f,r),(!C||I&4096)&&_!==(_=A[12][0]+"")&&E(d,_),(!C||I&4096)&&g!==(g=A[12][1]+"")&&E(b,g)},i(A){C||(X(i.$$.fragment,A),C=!0)},o(A){ee(i.$$.fragment,A),C=!1},d(A){A&&N(e),Me(i)}}}function qs(t){var b;let e,l,n,i,o,a,r,f,c=t[13][0]+"",m,_,d=t[13][1]+"",h,g;return i=new Ku({props:{val:t[0].e?t[0].e:0,max:t[0].om?t[0].om*1e3:1e4,unit:"W",label:((b=t[7].common)==null?void 0:b.export)??"Export",sub:li(t[0].px,t[0].pc),colorFn:ei}}),{c(){e=p("div"),l=p("div"),n=p("div"),Ne(i.$$.fragment),o=v(),a=p("div"),r=v(),f=p("div"),m=M(c),_=v(),h=M(d),u(n,"class","col-span-2"),u(f,"class","text-right"),u(l,"class","grid grid-cols-2"),u(e,"class","cnt")},m(C,k){P(C,e,k),s(e,l),s(l,n),Se(i,n,null),s(l,o),s(l,a),s(l,r),s(l,f),s(f,m),s(f,_),s(f,h),g=!0},p(C,k){var I;const A={};k&1&&(A.val=C[0].e?C[0].e:0),k&1&&(A.max=C[0].om?C[0].om*1e3:1e4),k&128&&(A.label=((I=C[7].common)==null?void 0:I.export)??"Export"),k&1&&(A.sub=li(C[0].px,C[0].pc)),i.$set(A),(!g||k&8192)&&c!==(c=C[13][0]+"")&&E(m,c),(!g||k&8192)&&d!==(d=C[13][1]+"")&&E(h,d)},i(C){g||(X(i.$$.fragment,C),g=!0)},o(C){ee(i.$$.fragment,C),g=!1},d(C){C&&N(e),Me(i)}}}function Es(t){let e,l,n=t[0].l1&&Ds(t);return{c(){e=p("div"),n&&n.c(),u(e,"class","cnt")},m(i,o){P(i,e,o),n&&n.m(e,null),l=!0},p(i,o){i[0].l1?n?(n.p(i,o),o&1&&X(n,1)):(n=Ds(i),n.c(),X(n,1),n.m(e,null)):n&&(rt(),ee(n,1,1,()=>{n=null}),ct())},i(i){l||(X(n),l=!0)},o(i){ee(n),l=!1},d(i){i&&N(e),n&&n.d()}}}function Ds(t){var n;let e,l;return e=new Nc({props:{title:((n=t[7].common)==null?void 0:n.voltage)??"Volt",u1:t[0].l1.u,u2:t[0].l2.u,u3:t[0].l3.u,ds:t[0].ds}}),{c(){Ne(e.$$.fragment)},m(i,o){Se(e,i,o),l=!0},p(i,o){var r;const a={};o&128&&(a.title=((r=i[7].common)==null?void 0:r.voltage)??"Volt"),o&1&&(a.u1=i[0].l1.u),o&1&&(a.u2=i[0].l2.u),o&1&&(a.u3=i[0].l3.u),o&1&&(a.ds=i[0].ds),e.$set(a)},i(i){l||(X(e.$$.fragment,i),l=!0)},o(i){ee(e.$$.fragment,i),l=!1},d(i){Me(e,i)}}}function As(t){let e,l,n=t[0].l1&&Ls(t);return{c(){e=p("div"),n&&n.c(),u(e,"class","cnt")},m(i,o){P(i,e,o),n&&n.m(e,null),l=!0},p(i,o){i[0].l1?n?(n.p(i,o),o&1&&X(n,1)):(n=Ls(i),n.c(),X(n,1),n.m(e,null)):n&&(rt(),ee(n,1,1,()=>{n=null}),ct())},i(i){l||(X(n),l=!0)},o(i){ee(n),l=!1},d(i){i&&N(e),n&&n.d()}}}function Ls(t){var n;let e,l;return e=new ho({props:{title:((n=t[7].common)==null?void 0:n.amperage)??"Amp",unit:"A",importColorFn:Pi,exportColorFn:ei,maxImport:t[0].mf,l1:t[9],l2:t[10],l3:t[11],l2x:t[0].l2.e,l1i:Math.max(Math.abs(t[0].l1.i),0),l2i:Math.max(Math.abs(t[0].l2.i),0),l3i:Math.max(Math.abs(t[0].l3.i),0)}}),{c(){Ne(e.$$.fragment)},m(i,o){Se(e,i,o),l=!0},p(i,o){var r;const a={};o&128&&(a.title=((r=i[7].common)==null?void 0:r.amperage)??"Amp"),o&1&&(a.maxImport=i[0].mf),o&512&&(a.l1=i[9]),o&1024&&(a.l2=i[10]),o&2048&&(a.l3=i[11]),o&1&&(a.l2x=i[0].l2.e),o&1&&(a.l1i=Math.max(Math.abs(i[0].l1.i),0)),o&1&&(a.l2i=Math.max(Math.abs(i[0].l2.i),0)),o&1&&(a.l3i=Math.max(Math.abs(i[0].l3.i),0)),e.$set(a)},i(i){l||(X(e.$$.fragment,i),l=!0)},o(i){ee(e.$$.fragment,i),l=!1},d(i){Me(e,i)}}}function Os(t){let e,l,n=t[0].l1&&Is(t);return{c(){e=p("div"),n&&n.c(),u(e,"class","cnt")},m(i,o){P(i,e,o),n&&n.m(e,null),l=!0},p(i,o){i[0].l1?n?(n.p(i,o),o&1&&X(n,1)):(n=Is(i),n.c(),X(n,1),n.m(e,null)):n&&(rt(),ee(n,1,1,()=>{n=null}),ct())},i(i){l||(X(n),l=!0)},o(i){ee(n),l=!1},d(i){i&&N(e),n&&n.d()}}}function Is(t){var n;let e,l;return e=new ho({props:{title:((n=t[7].dashboard)==null?void 0:n.phase)??"Phase",unit:"W",importColorFn:Pi,exportColorFn:ei,maxImport:(t[0].mf?t[0].mf:32)*230,maxExport:t[0].om?t[14]?t[0].om*1e3/Math.sqrt(3):t[0].om*1e3:0,l1:t[9],l2:t[10],l3:t[11],l1i:t[0].l1.p,l2i:t[0].l2.p,l3i:t[0].l3.p,l1e:t[0].l1.q,l2e:t[0].l2.q,l3e:t[0].l3.q}}),{c(){Ne(e.$$.fragment)},m(i,o){Se(e,i,o),l=!0},p(i,o){var r;const a={};o&128&&(a.title=((r=i[7].dashboard)==null?void 0:r.phase)??"Phase"),o&1&&(a.maxImport=(i[0].mf?i[0].mf:32)*230),o&16385&&(a.maxExport=i[0].om?i[14]?i[0].om*1e3/Math.sqrt(3):i[0].om*1e3:0),o&512&&(a.l1=i[9]),o&1024&&(a.l2=i[10]),o&2048&&(a.l3=i[11]),o&1&&(a.l1i=i[0].l1.p),o&1&&(a.l2i=i[0].l2.p),o&1&&(a.l3i=i[0].l3.p),o&1&&(a.l1e=i[0].l1.q),o&1&&(a.l2e=i[0].l2.q),o&1&&(a.l3e=i[0].l3.q),e.$set(a)},i(i){l||(X(e.$$.fragment,i),l=!0)},o(i){ee(e.$$.fragment,i),l=!1},d(i){Me(e,i)}}}function Rs(t){let e,l,n=t[0].l1&&Fs(t);return{c(){e=p("div"),n&&n.c(),u(e,"class","cnt")},m(i,o){P(i,e,o),n&&n.m(e,null),l=!0},p(i,o){i[0].l1?n?(n.p(i,o),o&1&&X(n,1)):(n=Fs(i),n.c(),X(n,1),n.m(e,null)):n&&(rt(),ee(n,1,1,()=>{n=null}),ct())},i(i){l||(X(n),l=!0)},o(i){ee(n),l=!1},d(i){i&&N(e),n&&n.d()}}}function Fs(t){var n;let e,l;return e=new ho({props:{title:((n=t[7].dashboard)==null?void 0:n.pf)??"Pf",importColorFn:ei,exportColorFn:ei,maxImport:1,l1:t[9],l2:t[10],l3:t[11],l1i:t[0].l1.f,l2i:t[0].l2.f,l3i:t[0].l3.f}}),{c(){Ne(e.$$.fragment)},m(i,o){Se(e,i,o),l=!0},p(i,o){var r;const a={};o&128&&(a.title=((r=i[7].dashboard)==null?void 0:r.pf)??"Pf"),o&512&&(a.l1=i[9]),o&1024&&(a.l2=i[10]),o&2048&&(a.l3=i[11]),o&1&&(a.l1i=i[0].l1.f),o&1&&(a.l2i=i[0].l2.f),o&1&&(a.l3i=i[0].l3.f),e.$set(a)},i(i){l||(X(e.$$.fragment,i),l=!0)},o(i){ee(e.$$.fragment,i),l=!1},d(i){Me(e,i)}}}function Bs(t){let e,l,n;return l=new qc({props:{importInstant:t[0].ri,exportInstant:t[0].re,importTotal:t[0].ric,exportTotal:t[0].rec,translations:t[7]}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt")},m(i,o){P(i,e,o),Se(l,e,null),n=!0},p(i,o){const a={};o&1&&(a.importInstant=i[0].ri),o&1&&(a.exportInstant=i[0].re),o&1&&(a.importTotal=i[0].ric),o&1&&(a.exportTotal=i[0].rec),o&128&&(a.translations=i[7]),l.$set(a)},i(i){n||(X(l.$$.fragment,i),n=!0)},o(i){ee(l.$$.fragment,i),n=!1},d(i){i&&N(e),Me(l)}}}function Us(t){let e,l,n;return l=new Oc({props:{sysinfo:t[1],data:t[0].ea,currency:t[0].pc,hasExport:t[0].om>0||t[0].e>0,translations:t[7]}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt")},m(i,o){P(i,e,o),Se(l,e,null),n=!0},p(i,o){const a={};o&2&&(a.sysinfo=i[1]),o&1&&(a.data=i[0].ea),o&1&&(a.currency=i[0].pc),o&1&&(a.hasExport=i[0].om>0||i[0].e>0),o&128&&(a.translations=i[7]),l.$set(a)},i(i){n||(X(l.$$.fragment,i),n=!0)},o(i){ee(l.$$.fragment,i),n=!1},d(i){i&&N(e),Me(l)}}}function zs(t){var i;let e,l,n;return l=new Qc({props:{title:((i=t[7].dashboard)==null?void 0:i.tariffpeak)??"Tariff peaks",tariffData:t[8],realtime:t[0].ea,translations:t[7]}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt h-64")},m(o,a){P(o,e,a),Se(l,e,null),n=!0},p(o,a){var f;const r={};a&128&&(r.title=((f=o[7].dashboard)==null?void 0:f.tariffpeak)??"Tariff peaks"),a&256&&(r.tariffData=o[8]),a&1&&(r.realtime=o[0].ea),a&128&&(r.translations=o[7]),l.$set(r)},i(o){n||(X(l.$$.fragment,o),n=!0)},o(o){ee(l.$$.fragment,o),n=!1},d(o){o&&N(e),Me(l)}}}function js(t){var i;let e,l,n;return l=new n0({props:{title:((i=t[7].dashboard)==null?void 0:i.realtime)??"Real time"}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt gwf")},m(o,a){P(o,e,a),Se(l,e,null),n=!0},p(o,a){var f;const r={};a&128&&(r.title=((f=o[7].dashboard)==null?void 0:f.realtime)??"Real time"),l.$set(r)},i(o){n||(X(l.$$.fragment,o),n=!0)},o(o){ee(l.$$.fragment,o),n=!1},d(o){o&&N(e),Me(l)}}}function Hs(t){let e,l,n,i;const o=[a0,s0],a=[];function r(f,c){var m;return(m=f[2])!=null&&m.importExportPriceDifferent&&(f[0].om||f[0].e>0)?0:1}return e=r(t),l=a[e]=o[e](t),{c(){l.c(),n=yt()},m(f,c){a[e].m(f,c),P(f,n,c),i=!0},p(f,c){let m=e;e=r(f),e===m?a[e].p(f,c):(rt(),ee(a[m],1,1,()=>{a[m]=null}),ct(),l=a[e],l?l.p(f,c):(l=a[e]=o[e](f),l.c()),X(l,1),l.m(n.parentNode,n))},i(f){i||(X(l),i=!0)},o(f){ee(l),i=!1},d(f){f&&N(n),a[e].d(f)}}}function s0(t){var i;let e,l,n;return l=new _o({props:{title:((i=t[7].dashboard)==null?void 0:i.price)??"Price",json:t[2]}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt gwf")},m(o,a){P(o,e,a),Se(l,e,null),n=!0},p(o,a){var f;const r={};a&128&&(r.title=((f=o[7].dashboard)==null?void 0:f.price)??"Price"),a&4&&(r.json=o[2]),l.$set(r)},i(o){n||(X(l.$$.fragment,o),n=!0)},o(o){ee(l.$$.fragment,o),n=!1},d(o){o&&N(e),Me(l)}}}function a0(t){var i;let e,l,n;return l=new _o({props:{title:((i=t[7].dashboard)==null?void 0:i.price_import)??"Price import",json:t[2]}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt gwf")},m(o,a){P(o,e,a),Se(l,e,null),n=!0},p(o,a){var f;const r={};a&128&&(r.title=((f=o[7].dashboard)==null?void 0:f.price_import)??"Price import"),a&4&&(r.json=o[2]),l.$set(r)},i(o){n||(X(l.$$.fragment,o),n=!0)},o(o){ee(l.$$.fragment,o),n=!1},d(o){o&&N(e),Me(l)}}}function Ws(t){var i;let e,l,n;return l=new _o({props:{title:((i=t[7].dashboard)==null?void 0:i.price_export)??"Price export",json:t[3]}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt gwf")},m(o,a){P(o,e,a),Se(l,e,null),n=!0},p(o,a){var f;const r={};a&128&&(r.title=((f=o[7].dashboard)==null?void 0:f.price_export)??"Price export"),a&8&&(r.json=o[3]),l.$set(r)},i(o){n||(X(l.$$.fragment,o),n=!0)},o(o){ee(l.$$.fragment,o),n=!1},d(o){o&&N(e),Me(l)}}}function ys(t){var i;let e,l,n;return l=new Uc({props:{title:((i=t[7].dashboard)==null?void 0:i.day)??"24 hours",json:t[4],sysinfo:t[1]}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt gwf")},m(o,a){P(o,e,a),Se(l,e,null),n=!0},p(o,a){var f;const r={};a&128&&(r.title=((f=o[7].dashboard)==null?void 0:f.day)??"24 hours"),a&16&&(r.json=o[4]),a&2&&(r.sysinfo=o[1]),l.$set(r)},i(o){n||(X(l.$$.fragment,o),n=!0)},o(o){ee(l.$$.fragment,o),n=!1},d(o){o&&N(e),Me(l)}}}function Gs(t){var i;let e,l,n;return l=new Hc({props:{title:((i=t[7].dashboard)==null?void 0:i.month)??"{0} days",json:t[5],sysinfo:t[1]}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt gwf")},m(o,a){P(o,e,a),Se(l,e,null),n=!0},p(o,a){var f;const r={};a&128&&(r.title=((f=o[7].dashboard)==null?void 0:f.month)??"{0} days"),a&32&&(r.json=o[5]),a&2&&(r.sysinfo=o[1]),l.$set(r)},i(o){n||(X(l.$$.fragment,o),n=!0)},o(o){ee(l.$$.fragment,o),n=!1},d(o){o&&N(e),Me(l)}}}function Vs(t){var i;let e,l,n;return l=new Gc({props:{title:((i=t[7].dashboard)==null?void 0:i.temperature)??"Temperature",json:t[6]}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","cnt gwf")},m(o,a){P(o,e,a),Se(l,e,null),n=!0},p(o,a){var f;const r={};a&128&&(r.title=((f=o[7].dashboard)==null?void 0:f.temperature)??"Temperature"),a&64&&(r.json=o[6]),l.$set(r)},i(o){n||(X(l.$$.fragment,o),n=!0)},o(o){ee(l.$$.fragment,o),n=!1},d(o){o&&N(e),Me(l)}}}function f0(t){var we;let e,l=Zt(t[1].ui.i,t[0].i),n,i=Zt(t[1].ui.e,t[0].om||t[0].e>0),o,a=Zt(t[1].ui.v,t[0].l1&&(t[0].l1.u>100||t[0].l2.u>100||t[0].l3.u>100)),r,f=Zt(t[1].ui.a,t[0].l1&&(t[0].l1.i>.01||t[0].l2.i>.01||t[0].l3.i>.01)),c,m=Zt(t[1].ui.h,t[0].l1&&(t[0].l1.p>.01||t[0].l2.p>.01||t[0].l3.p>.01||t[0].l1.q>.01||t[0].l2.q>.01||t[0].l3.q>.01)),_,d=Zt(t[1].ui.f,t[0].l1&&(t[0].l1.f>.01||t[0].l2.f>.01||t[0].l3.f>.01)),h,g=Zt(t[1].ui.r,t[0].ri>0||t[0].re>0||t[0].ric>0||t[0].rec>0),b,C=Zt(t[1].ui.c,t[0].ea),k,A=Zt(t[1].ui.t,t[0].pr&&(t[0].pr.startsWith("NO")||t[0].pr.startsWith("10YNO")||t[0].pr.startsWith("10Y1001A1001A4"))),I,R=Zt(t[1].ui.l,t[0].hm==1),T,F=Zt(t[1].ui.p,t[0].p&&!Number.isNaN(t[0].p)),L,z=((we=t[2])==null?void 0:we.importExportPriceDifferent)&&(t[0].om||t[0].e>0)&&Zt(t[1].ui.p,t[0].pe&&!Number.isNaN(t[0].pe)),G,H=Zt(t[1].ui.d,t[4]),q,U=Zt(t[1].ui.m,t[5]),Z,V=Zt(t[1].ui.s,t[0].t&&t[0].t!=-127&&t[6].c>1),Q,K=l&&Ts(t),B=i&&qs(t),y=a&&Es(t),ie=f&&As(t),te=m&&Os(t),Y=d&&Rs(t),le=g&&Bs(t),ue=C&&Us(t),fe=A&&zs(t),ne=R&&js(t),de=F&&Hs(t),oe=z&&Ws(t),_e=H&&ys(t),se=U&&Gs(t),me=V&&Vs(t);return{c(){e=p("div"),K&&K.c(),n=v(),B&&B.c(),o=v(),y&&y.c(),r=v(),ie&&ie.c(),c=v(),te&&te.c(),_=v(),Y&&Y.c(),h=v(),le&&le.c(),b=v(),ue&&ue.c(),k=v(),fe&&fe.c(),I=v(),ne&&ne.c(),T=v(),de&&de.c(),L=v(),oe&&oe.c(),G=v(),_e&&_e.c(),q=v(),se&&se.c(),Z=v(),me&&me.c(),u(e,"class","grid 2xl:grid-cols-6 xl:grid-cols-5 lg:grid-cols-4 md:grid-cols-3 sm:grid-cols-2")},m(S,w){P(S,e,w),K&&K.m(e,null),s(e,n),B&&B.m(e,null),s(e,o),y&&y.m(e,null),s(e,r),ie&&ie.m(e,null),s(e,c),te&&te.m(e,null),s(e,_),Y&&Y.m(e,null),s(e,h),le&&le.m(e,null),s(e,b),ue&&ue.m(e,null),s(e,k),fe&&fe.m(e,null),s(e,I),ne&&ne.m(e,null),s(e,T),de&&de.m(e,null),s(e,L),oe&&oe.m(e,null),s(e,G),_e&&_e.m(e,null),s(e,q),se&&se.m(e,null),s(e,Z),me&&me.m(e,null),Q=!0},p(S,[w]){var O;w&3&&(l=Zt(S[1].ui.i,S[0].i)),l?K?(K.p(S,w),w&3&&X(K,1)):(K=Ts(S),K.c(),X(K,1),K.m(e,n)):K&&(rt(),ee(K,1,1,()=>{K=null}),ct()),w&3&&(i=Zt(S[1].ui.e,S[0].om||S[0].e>0)),i?B?(B.p(S,w),w&3&&X(B,1)):(B=qs(S),B.c(),X(B,1),B.m(e,o)):B&&(rt(),ee(B,1,1,()=>{B=null}),ct()),w&3&&(a=Zt(S[1].ui.v,S[0].l1&&(S[0].l1.u>100||S[0].l2.u>100||S[0].l3.u>100))),a?y?(y.p(S,w),w&3&&X(y,1)):(y=Es(S),y.c(),X(y,1),y.m(e,r)):y&&(rt(),ee(y,1,1,()=>{y=null}),ct()),w&3&&(f=Zt(S[1].ui.a,S[0].l1&&(S[0].l1.i>.01||S[0].l2.i>.01||S[0].l3.i>.01))),f?ie?(ie.p(S,w),w&3&&X(ie,1)):(ie=As(S),ie.c(),X(ie,1),ie.m(e,c)):ie&&(rt(),ee(ie,1,1,()=>{ie=null}),ct()),w&3&&(m=Zt(S[1].ui.h,S[0].l1&&(S[0].l1.p>.01||S[0].l2.p>.01||S[0].l3.p>.01||S[0].l1.q>.01||S[0].l2.q>.01||S[0].l3.q>.01))),m?te?(te.p(S,w),w&3&&X(te,1)):(te=Os(S),te.c(),X(te,1),te.m(e,_)):te&&(rt(),ee(te,1,1,()=>{te=null}),ct()),w&3&&(d=Zt(S[1].ui.f,S[0].l1&&(S[0].l1.f>.01||S[0].l2.f>.01||S[0].l3.f>.01))),d?Y?(Y.p(S,w),w&3&&X(Y,1)):(Y=Rs(S),Y.c(),X(Y,1),Y.m(e,h)):Y&&(rt(),ee(Y,1,1,()=>{Y=null}),ct()),w&3&&(g=Zt(S[1].ui.r,S[0].ri>0||S[0].re>0||S[0].ric>0||S[0].rec>0)),g?le?(le.p(S,w),w&3&&X(le,1)):(le=Bs(S),le.c(),X(le,1),le.m(e,b)):le&&(rt(),ee(le,1,1,()=>{le=null}),ct()),w&3&&(C=Zt(S[1].ui.c,S[0].ea)),C?ue?(ue.p(S,w),w&3&&X(ue,1)):(ue=Us(S),ue.c(),X(ue,1),ue.m(e,k)):ue&&(rt(),ee(ue,1,1,()=>{ue=null}),ct()),w&3&&(A=Zt(S[1].ui.t,S[0].pr&&(S[0].pr.startsWith("NO")||S[0].pr.startsWith("10YNO")||S[0].pr.startsWith("10Y1001A1001A4")))),A?fe?(fe.p(S,w),w&3&&X(fe,1)):(fe=zs(S),fe.c(),X(fe,1),fe.m(e,I)):fe&&(rt(),ee(fe,1,1,()=>{fe=null}),ct()),w&3&&(R=Zt(S[1].ui.l,S[0].hm==1)),R?ne?(ne.p(S,w),w&3&&X(ne,1)):(ne=js(S),ne.c(),X(ne,1),ne.m(e,T)):ne&&(rt(),ee(ne,1,1,()=>{ne=null}),ct()),w&3&&(F=Zt(S[1].ui.p,S[0].p&&!Number.isNaN(S[0].p))),F?de?(de.p(S,w),w&3&&X(de,1)):(de=Hs(S),de.c(),X(de,1),de.m(e,L)):de&&(rt(),ee(de,1,1,()=>{de=null}),ct()),w&7&&(z=((O=S[2])==null?void 0:O.importExportPriceDifferent)&&(S[0].om||S[0].e>0)&&Zt(S[1].ui.p,S[0].pe&&!Number.isNaN(S[0].pe))),z?oe?(oe.p(S,w),w&7&&X(oe,1)):(oe=Ws(S),oe.c(),X(oe,1),oe.m(e,G)):oe&&(rt(),ee(oe,1,1,()=>{oe=null}),ct()),w&18&&(H=Zt(S[1].ui.d,S[4])),H?_e?(_e.p(S,w),w&18&&X(_e,1)):(_e=ys(S),_e.c(),X(_e,1),_e.m(e,q)):_e&&(rt(),ee(_e,1,1,()=>{_e=null}),ct()),w&34&&(U=Zt(S[1].ui.m,S[5])),U?se?(se.p(S,w),w&34&&X(se,1)):(se=Gs(S),se.c(),X(se,1),se.m(e,Z)):se&&(rt(),ee(se,1,1,()=>{se=null}),ct()),w&67&&(V=Zt(S[1].ui.s,S[0].t&&S[0].t!=-127&&S[6].c>1)),V?me?(me.p(S,w),w&67&&X(me,1)):(me=Vs(S),me.c(),X(me,1),me.m(e,null)):me&&(rt(),ee(me,1,1,()=>{me=null}),ct())},i(S){Q||(X(K),X(B),X(y),X(ie),X(te),X(Y),X(le),X(ue),X(fe),X(ne),X(de),X(oe),X(_e),X(se),X(me),Q=!0)},o(S){ee(K),ee(B),ee(y),ee(ie),ee(te),ee(Y),ee(le),ee(ue),ee(fe),ee(ne),ee(de),ee(oe),ee(_e),ee(se),ee(me),Q=!1},d(S){S&&N(e),K&&K.d(),B&&B.d(),y&&y.d(),ie&&ie.d(),te&&te.d(),Y&&Y.d(),le&&le.d(),ue&&ue.d(),fe&&fe.d(),ne&&ne.d(),de&&de.d(),oe&&oe.d(),_e&&_e.d(),se&&se.d(),me&&me.d()}}}function u0(t,e,l){let{data:n={}}=e,{sysinfo:i={}}=e,{importPrices:o={}}=e,{exportPrices:a={}}=e,{dayPlot:r={}}=e,{monthPlot:f={}}=e,{temperatures:c={}}=e,{translations:m={}}=e,{tariffData:_={}}=e,d,h,g,b,C,k;return t.$$set=A=>{"data"in A&&l(0,n=A.data),"sysinfo"in A&&l(1,i=A.sysinfo),"importPrices"in A&&l(2,o=A.importPrices),"exportPrices"in A&&l(3,a=A.exportPrices),"dayPlot"in A&&l(4,r=A.dayPlot),"monthPlot"in A&&l(5,f=A.monthPlot),"temperatures"in A&&l(6,c=A.temperatures),"translations"in A&&l(7,m=A.translations),"tariffData"in A&&l(8,_=A.tariffData)},t.$$.update=()=>{var A,I,R,T,F,L,z,G,H,q,U,Z,V,Q,K;t.$$.dirty&3585&&(l(12,d=ml((n==null?void 0:n.ic)*1e3,"Wh")),l(13,h=ml((n==null?void 0:n.ec)*1e3,"Wh")),((A=n==null?void 0:n.l1)==null?void 0:A.u)==0&&((I=n==null?void 0:n.l2)==null?void 0:I.u)==0&&((R=n==null?void 0:n.l3)==null?void 0:R.u)==0?l(9,b=l(10,C=l(11,k=l(14,g=!0)))):(l(9,b=((T=n==null?void 0:n.l1)==null?void 0:T.u)>0||((F=n==null?void 0:n.l1)==null?void 0:F.i)>0||((L=n==null?void 0:n.l1)==null?void 0:L.p)>0||((z=n==null?void 0:n.l1)==null?void 0:z.q)>0),l(10,C=((G=n==null?void 0:n.l2)==null?void 0:G.u)>0||((H=n==null?void 0:n.l2)==null?void 0:H.i)>0||((q=n==null?void 0:n.l2)==null?void 0:q.p)>0||((U=n==null?void 0:n.l2)==null?void 0:U.q)>0),l(11,k=((Z=n==null?void 0:n.l3)==null?void 0:Z.u)>0||((V=n==null?void 0:n.l3)==null?void 0:V.i)>0||((Q=n==null?void 0:n.l3)==null?void 0:Q.p)>0||((K=n==null?void 0:n.l3)==null?void 0:K.q)>0),l(14,g=b&&C&&k)))},[n,i,o,a,r,f,c,m,_,b,C,k,d,h,g]}class r0 extends Tt{constructor(e){super(),Pt(this,e,u0,f0,Ct,{data:0,sysinfo:1,importPrices:2,exportPrices:3,dayPlot:4,monthPlot:5,temperatures:6,translations:7,tariffData:8})}}let $i={};const Xn=rl($i);async function c0(){$i=await(await fetch("configuration.json")).json(),Xn.set($i)}let xi={};const Qu=rl(xi);async function _0(){xi=await(await fetch("priceconfig.json")).json(),Qu.set(xi)}function Ks(t,e,l){const n=t.slice();return n[2]=e[l],n[4]=l,n}function Ys(t){let e,l,n;return{c(){e=p("option"),e.textContent="UART0",l=v(),n=p("option"),n.textContent="UART2",e.__value=3,j(e,e.__value),n.__value=113,j(n,n.__value)},m(i,o){P(i,e,o),P(i,l,o),P(i,n,o)},d(i){i&&(N(e),N(l),N(n))}}}function Qs(t){let e;return{c(){e=p("option"),e.textContent=`GPIO${t[4]}`,e.__value=t[4],j(e,e.__value)},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function Xs(t){let e,l=t[4]>1&&!(t[0]=="esp8266"&&(t[4]==3||t[4]==113))&&Qs(t);return{c(){l&&l.c(),e=yt()},m(n,i){l&&l.m(n,i),P(n,e,i)},p(n,i){n[4]>1&&!(n[0]=="esp8266"&&(n[4]==3||n[4]==113))?l||(l=Qs(n),l.c(),l.m(e.parentNode,e)):l&&(l.d(1),l=null)},d(n){n&&N(e),l&&l.d(n)}}}function m0(t){let e,l,n,i,o=t[0]=="esp8266"&&Ys(),a=at({length:t[1]+1}),r=[];for(let f=0;f{"chip"in o&&l(0,n=o.chip)},t.$$.update=()=>{if(t.$$.dirty&1)switch(n){case"esp8266":l(1,i=16);break;case"esp32s2":l(1,i=44);break;case"esp32s3":l(1,i=46);break;case"esp32c3":l(1,i=21);break}},[n,i]}class eo extends Tt{constructor(e){super(),Pt(this,e,p0,m0,Ct,{chip:0})}}function Zs(t){let e,l,n=t[1]&&Js(t);return{c(){e=p("div"),l=p("div"),n&&n.c(),u(l,"class","fixed inset-0 bg-gray-500 dark:bg-gray-900 bg-opacity-50 dark:bg-opacity-80 flex items-center justify-center"),u(e,"class","z-50"),u(e,"aria-modal","true")},m(i,o){P(i,e,o),s(e,l),n&&n.m(l,null)},p(i,o){i[1]?n?n.p(i,o):(n=Js(i),n.c(),n.m(l,null)):n&&(n.d(1),n=null)},d(i){i&&N(e),n&&n.d()}}}function Js(t){let e,l;return{c(){e=p("div"),l=M(t[1]),u(e,"class","bg-white dark:bg-gray-600 m-2 p-3 rounded-md shadow-lg pb-4 text-gray-700 dark:text-white w-96")},m(n,i){P(n,e,i),s(e,l)},p(n,i){i&2&&E(l,n[1])},d(n){n&&N(e)}}}function d0(t){let e,l=t[0]&&Zs(t);return{c(){l&&l.c(),e=yt()},m(n,i){l&&l.m(n,i),P(n,e,i)},p(n,[i]){n[0]?l?l.p(n,i):(l=Zs(n),l.c(),l.m(e.parentNode,e)):l&&(l.d(1),l=null)},i:ze,o:ze,d(n){n&&N(e),l&&l.d(n)}}}function h0(t,e,l){let{active:n}=e,{message:i}=e;return t.$$set=o=>{"active"in o&&l(0,n=o.active),"message"in o&&l(1,i=o.message)},[n,i]}class pl extends Tt{constructor(e){super(),Pt(this,e,h0,d0,Ct,{active:0,message:1})}}function $s(t,e,l){const n=t.slice();return n[1]=e[l],n}function xs(t){let e,l,n=t[1]+"",i;return{c(){e=p("option"),l=M("Europe/"),i=M(n),e.__value="Europe/"+t[1],j(e,e.__value)},m(o,a){P(o,e,a),s(e,l),s(e,i)},p:ze,d(o){o&&N(e)}}}function v0(t){let e,l,n,i=at(t[0]),o=[];for(let a=0;a>1&1,D=0;D0;w--)D[w]=D[w]?D[w-1]^T.EXPONENT[z._modN(T.LOG[D[w]]+S)]:D[w-1];D[0]=T.EXPONENT[z._modN(T.LOG[D[0]]+S)]}for(S=0;S<=O;S++)D[S]=T.LOG[D[S]]},_checkBadness:function(){var S,w,O,D,W,$=0,ae=this._badness,pe=this.buffer,ve=this.width;for(W=0;Wve*ve;)ke-=ve*ve,be++;for($+=be*z.N4,D=0;D=ae-2&&(S=ae-2,W>9&&S--);var pe=S;if(W>9){for($[pe+2]=0,$[pe+3]=0;pe--;)w=$[pe],$[pe+3]|=255&w<<4,$[pe+2]=w>>4;$[2]|=255&S<<4,$[1]=S>>4,$[0]=64|S>>12}else{for($[pe+1]=0,$[pe+2]=0;pe--;)w=$[pe],$[pe+2]|=255&w<<4,$[pe+1]=w>>4;$[1]|=255&S<<4,$[0]=64|S>>4}for(pe=S+3-(W<10);pe=5&&(O+=z.N1+D[w]-5);for(w=3;wS||D[w-3]*3>=D[w]*4||D[w+3]*3>=D[w]*4)&&(O+=z.N3);return O},_finish:function(){this._stringBuffer=this.buffer.slice();var S,w,O=0,D=3e4;for(w=0;w<8&&(this._applyMask(w),S=this._checkBadness(),S>=1)D&1&&(W[$-1-w+$*8]=1,w<6?W[8+$*w]=1:W[8+$*(w+1)]=1);for(w=0;w<7;w++,D>>=1)D&1&&(W[8+$*($-7+w)]=1,w?W[6-w+$*8]=1:W[7+$*8]=1)},_interleaveBlocks:function(){var S,w,O=this._dataBlock,D=this._ecc,W=this._eccBlock,$=0,ae=this._calculateMaxLength(),pe=this._neccBlock1,ve=this._neccBlock2,J=this._stringBuffer;for(S=0;S1)for(S=k.BLOCK[D],O=W-7;;){for(w=W-7;w>S-3&&(this._addAlignment(w,O),!(w6)for(S=L.BLOCK[$-7],w=17,O=0;O<6;O++)for(D=0;D<3;D++,w--)1&(w>11?$>>w-12:S>>w)?(W[5-O+ae*(2-D+ae-11)]=1,W[2-D+ae-11+ae*(5-O)]=1):(this._setMask(5-O,2-D+ae-11),this._setMask(2-D+ae-11,5-O))},_isMasked:function(S,w){var O=z._getMaskBit(S,w);return this._mask[O]===1},_pack:function(){var S,w,O,D=1,W=1,$=this.width,ae=$-1,pe=$-1,ve=(this._dataBlock+this._eccBlock)*(this._neccBlock1+this._neccBlock2)+this._neccBlock2;for(w=0;ww&&(O=S,S=w,w=O),O=w,O+=w*w,O>>=1,O+=S,O},_modN:function(S){for(;S>=255;)S-=255,S=(S>>8)+(S&255);return S},N1:3,N2:3,N3:40,N4:10}),G=z,H=h.extend({draw:function(){this.element.src=this.qrious.toDataURL()},reset:function(){this.element.src=""},resize:function(){var S=this.element;S.width=S.height=this.qrious.size}}),q=H,U=_.extend(function(S,w,O,D){this.name=S,this.modifiable=!!w,this.defaultValue=O,this._valueTransformer=D},{transform:function(S){var w=this._valueTransformer;return typeof w=="function"?w(S,this):S}}),Z=U,V=_.extend(null,{abs:function(S){return S!=null?Math.abs(S):null},hasOwn:function(S,w){return Object.prototype.hasOwnProperty.call(S,w)},noop:function(){},toUpperCase:function(S){return S!=null?S.toUpperCase():null}}),Q=V,K=_.extend(function(S){this.options={},S.forEach(function(w){this.options[w.name]=w},this)},{exists:function(S){return this.options[S]!=null},get:function(S,w){return K._get(this.options[S],w)},getAll:function(S){var w,O=this.options,D={};for(w in O)Q.hasOwn(O,w)&&(D[w]=K._get(O[w],S));return D},init:function(S,w,O){typeof O!="function"&&(O=Q.noop);var D,W;for(D in this.options)Q.hasOwn(this.options,D)&&(W=this.options[D],K._set(W,W.defaultValue,w),K._createAccessor(W,w,O));this._setAll(S,w,!0)},set:function(S,w,O){return this._set(S,w,O)},setAll:function(S,w){return this._setAll(S,w)},_set:function(S,w,O,D){var W=this.options[S];if(!W)throw new Error("Invalid option: "+S);if(!W.modifiable&&!D)throw new Error("Option cannot be modified: "+S);return K._set(W,w,O)},_setAll:function(S,w,O){if(!S)return!1;var D,W=!1;for(D in S)Q.hasOwn(S,D)&&this._set(D,S[D],w,O)&&(W=!0);return W}},{_createAccessor:function(S,w,O){var D={get:function(){return K._get(S,w)}};S.modifiable&&(D.set=function(W){K._set(S,W,w)&&O(W,S)}),Object.defineProperty(w,S.name,D)},_get:function(S,w){return w["_"+S.name]},_set:function(S,w,O){var D="_"+S.name,W=O[D],$=S.transform(w??S.defaultValue);return O[D]=$,$!==W}}),B=K,y=_.extend(function(){this._services={}},{getService:function(S){var w=this._services[S];if(!w)throw new Error("Service is not being managed with name: "+S);return w},setService:function(S,w){if(this._services[S])throw new Error("Service is already managed with name: "+S);w&&(this._services[S]=w)}}),ie=y,te=new B([new Z("background",!0,"white"),new Z("backgroundAlpha",!0,1,Q.abs),new Z("element"),new Z("foreground",!0,"black"),new Z("foregroundAlpha",!0,1,Q.abs),new Z("level",!0,"L",Q.toUpperCase),new Z("mime",!0,"image/png"),new Z("padding",!0,null,Q.abs),new Z("size",!0,100,Q.abs),new Z("value",!0,"")]),Y=new ie,le=_.extend(function(S){te.init(S,this,this.update.bind(this));var w=te.get("element",this),O=Y.getService("element"),D=w&&O.isCanvas(w)?w:O.createCanvas(),W=w&&O.isImage(w)?w:O.createImage();this._canvasRenderer=new b(this,D,!0),this._imageRenderer=new q(this,W,W===w),this.update()},{get:function(){return te.getAll(this)},set:function(S){te.setAll(S,this)&&this.update()},toDataURL:function(S){return this.canvas.toDataURL(S||this.mime)},update:function(){var S=new G({level:this.level,value:this.value});this._canvasRenderer.render(S),this._imageRenderer.render(S)}},{use:function(S){Y.setService(S.getName(),S)}});Object.defineProperties(le.prototype,{canvas:{get:function(){return this._canvasRenderer.getElement()}},image:{get:function(){return this._imageRenderer.getElement()}}});var ue=le,fe=ue,ne=_.extend({getName:function(){}}),de=ne,oe=de.extend({createCanvas:function(){},createImage:function(){},getName:function(){return"element"},isCanvas:function(S){},isImage:function(S){}}),_e=oe,se=_e.extend({createCanvas:function(){return document.createElement("canvas")},createImage:function(){return document.createElement("img")},isCanvas:function(S){return S instanceof HTMLCanvasElement},isImage:function(S){return S instanceof HTMLImageElement}}),me=se;fe.use(new me);var we=fe;return we})})(Zu);var S0=Zu.exports;const M0=C0(S0);function N0(t){let e,l;return{c(){e=p("img"),hi(e.src,l=t[2])||u(e,"src",l),u(e,"alt",t[0]),u(e,"class",t[1])},m(n,i){P(n,e,i)},p(n,[i]){i&4&&!hi(e.src,l=n[2])&&u(e,"src",l),i&1&&u(e,"alt",n[0]),i&2&&u(e,"class",n[1])},i:ze,o:ze,d(n){n&&N(e)}}}function P0(t,e,l){let{errorCorrection:n="L"}=e,{background:i="#fff"}=e,{color:o="#000"}=e,{size:a="200"}=e,{value:r=""}=e,{padding:f=0}=e,{className:c="qrcode"}=e,m="",_;function d(){_.set({background:i,foreground:o,level:n,padding:f,size:a,value:r}),l(2,m=_.toDataURL("image/jpeg"))}function h(){return m}return so(()=>{l(9,_=new M0),r&&d()}),t.$$set=g=>{"errorCorrection"in g&&l(3,n=g.errorCorrection),"background"in g&&l(4,i=g.background),"color"in g&&l(5,o=g.color),"size"in g&&l(6,a=g.size),"value"in g&&l(0,r=g.value),"padding"in g&&l(7,f=g.padding),"className"in g&&l(1,c=g.className)},t.$$.update=()=>{t.$$.dirty&513&&r&&_&&d()},[r,c,m,n,i,o,a,f,h,_]}class T0 extends Tt{constructor(e){super(),Pt(this,e,P0,N0,Ct,{errorCorrection:3,background:4,color:5,size:6,value:0,padding:7,className:1,getImage:8})}get getImage(){return this.$$.ctx[8]}}function ea(t,e,l){const n=t.slice();return n[126]=e[l],n}function ta(t,e,l){const n=t.slice();return n[129]=e[l],n[130]=e,n[131]=l,n}function la(t,e,l){const n=t.slice();return n[132]=e[l],n[133]=e,n[134]=l,n}function na(t,e,l){const n=t.slice();return n[135]=e[l],n}function q0(t,e,l){const n=t.slice();return n[138]=e[l],n}function E0(t,e,l){const n=t.slice();return n[141]=e[l],n}function D0(t,e,l){const n=t.slice();return n[144]=e[l],n}function ia(t){var ul,De,x,Oe,nt,Nt,al,_l,hl,fl,bl,gl,Pl,Rl,Fl,Bl,Ul,zl,jl,Hl,Wl,yl,Gl,Vl,Kl,Yl,We,ht;let e,l,n=(((De=(ul=t[2].conf)==null?void 0:ul.general)==null?void 0:De.title)??"General")+"",i,o,a,r,f,c,m,_,d,h=(((Oe=(x=t[2].conf)==null?void 0:x.general)==null?void 0:Oe.hostname)??"Hostname")+"",g,b,C,k,A,I,R=(((Nt=(nt=t[2].conf)==null?void 0:nt.general)==null?void 0:Nt.timezone)??"Time zone")+"",T,F,L,z,G,H,q,U,Z,V,Q,K=(((_l=(al=t[2].conf)==null?void 0:al.price)==null?void 0:_l.region)??"Price region")+"",B,y,ie,te,Y,le,ue,fe,ne,de,oe,_e,se,me,we,S,w,O,D,W,$,ae,pe,ve,J,be,ke,Ee,Pe,Ae,Le,qe,Re,Xe,gt=(((fl=(hl=t[2].conf)==null?void 0:hl.price)==null?void 0:fl.resolution)??"Resolution")+"",$e,ft,St,pt,ut,it,dt=(((gl=(bl=t[2].conf)==null?void 0:bl.price)==null?void 0:gl.currency)??"Currency")+"",At,Ze,Fe,je,et,ge,Te,Ke,ce,Ce,Je,Ge,Lt=(((Rl=(Pl=t[2].conf)==null?void 0:Pl.price)==null?void 0:Rl.enabled)??"Enabled")+"",vt,Ye,qt,st,_t=(((Ul=(Bl=(Fl=t[2].conf)==null?void 0:Fl.general)==null?void 0:Bl.security)==null?void 0:Ul.title)??"Security")+"",tt,Bt,Jt,mt,lt,Kt=(((Hl=(jl=(zl=t[2].conf)==null?void 0:zl.general)==null?void 0:jl.security)==null?void 0:Hl.none)??"None")+"",Qt,Ot,el=(((Gl=(yl=(Wl=t[2].conf)==null?void 0:Wl.general)==null?void 0:yl.security)==null?void 0:Gl.conf)??"Conf")+"",tl,Xt,$t=(((Yl=(Kl=(Vl=t[2].conf)==null?void 0:Vl.general)==null?void 0:Kl.security)==null?void 0:Yl.all)??"All")+"",ll,Ve,ot,Mt,It=(((ht=(We=t[2].conf)==null?void 0:We.general)==null?void 0:ht.context)??"Context")+"",kt,bt,zt,xe,Rt,he,Ie,He;G=new g0({});let Gt=!t[6].p.t&&oa(),Vt=at([15,60]),wt=[];for(let Ue=0;Ue<2;Ue+=1)wt[Ue]=A0(D0(t,Vt,Ue));let cl=at(["NOK","SEK","DKK","EUR","CHF"]),ol=[];for(let Ue=0;Ue<5;Ue+=1)ol[Ue]=L0(E0(t,cl,Ue));Te=new kl({props:{to:"/priceconfig",class:"text-blue-600 hover:text-blue-800",$$slots:{default:[O0]},$$scope:{ctx:t}}});let jt=t[6].p.e&&t[0].chip!="esp8266"&&t[6].p.t&&sa(t),Ht=t[6].g.s>0&&aa(t);return{c(){var Ue,Dt;e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),_=p("div"),d=p("div"),g=M(h),b=p("br"),C=v(),k=p("input"),A=v(),I=p("div"),T=M(R),F=p("br"),L=v(),z=p("select"),Ne(G.$$.fragment),H=v(),q=p("input"),U=v(),Z=p("div"),V=p("div"),Q=p("div"),B=M(K),y=p("br"),ie=v(),te=p("select"),Y=p("optgroup"),Gt&&Gt.c(),le=p("option"),le.textContent="NO1",ue=p("option"),ue.textContent="NO2",fe=p("option"),fe.textContent="NO3",ne=p("option"),ne.textContent="NO4",de=p("option"),de.textContent="NO5",oe=p("optgroup"),_e=p("option"),_e.textContent="SE1",se=p("option"),se.textContent="SE2",me=p("option"),me.textContent="SE3",we=p("option"),we.textContent="SE4",S=p("optgroup"),w=p("option"),w.textContent="DK1",O=p("option"),O.textContent="DK2",D=p("option"),D.textContent="Austria",W=p("option"),W.textContent="Belgium",$=p("option"),$.textContent="Czech Republic",ae=p("option"),ae.textContent="Estonia",pe=p("option"),pe.textContent="Finland",ve=p("option"),ve.textContent="France",J=p("option"),J.textContent="Germany",be=p("option"),be.textContent="Great Britain",ke=p("option"),ke.textContent="Latvia",Ee=p("option"),Ee.textContent="Lithuania",Pe=p("option"),Pe.textContent="Netherland",Ae=p("option"),Ae.textContent="Poland",Le=p("option"),Le.textContent="Slovenia",qe=p("option"),qe.textContent="Switzerland",Re=v(),Xe=p("div"),$e=M(gt),ft=p("br"),St=v(),pt=p("select");for(let il=0;il<2;il+=1)wt[il].c();ut=v(),it=p("div"),At=M(dt),Ze=p("br"),Fe=v(),je=p("select");for(let il=0;il<5;il+=1)ol[il].c();et=v(),ge=p("div"),Ne(Te.$$.fragment),Ke=v(),ce=p("div"),Ce=p("label"),Je=p("input"),Ge=v(),vt=M(Lt),Ye=v(),jt&&jt.c(),qt=v(),st=p("div"),tt=M(_t),Bt=p("br"),Jt=v(),mt=p("select"),lt=p("option"),Qt=M(Kt),Ot=p("option"),tl=M(el),Xt=p("option"),ll=M($t),Ve=v(),Ht&&Ht.c(),ot=v(),Mt=p("div"),kt=M(It),bt=p("br"),zt=v(),xe=p("input"),u(l,"class","text-sm"),u(a,"href",vl("General-configuration")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","g"),f.value="true",u(k,"name","gh"),u(k,"type","text"),u(k,"class","in-f w-full"),u(k,"pattern",Ci),u(z,"name","gt"),u(z,"class","in-l w-full"),t[6].g.t===void 0&&Et(()=>t[26].call(z)),u(_,"class","flex"),u(m,"class","my-1"),u(q,"type","hidden"),u(q,"name","p"),q.value="true",le.__value="10YNO-1--------2",j(le,le.__value),ue.__value="10YNO-2--------T",j(ue,ue.__value),fe.__value="10YNO-3--------J",j(fe,fe.__value),ne.__value="10YNO-4--------9",j(ne,ne.__value),de.__value="10Y1001A1001A48H",j(de,de.__value),u(Y,"label","Norway"),_e.__value="10Y1001A1001A44P",j(_e,_e.__value),se.__value="10Y1001A1001A45N",j(se,se.__value),me.__value="10Y1001A1001A46L",j(me,me.__value),we.__value="10Y1001A1001A47J",j(we,we.__value),u(oe,"label","Sweden"),w.__value="10YDK-1--------W",j(w,w.__value),O.__value="10YDK-2--------M",j(O,O.__value),u(S,"label","Denmark"),D.__value="10YAT-APG------L",j(D,D.__value),W.__value="10YBE----------2",j(W,W.__value),$.__value="10YCZ-CEPS-----N",j($,$.__value),ae.__value="10Y1001A1001A39I",j(ae,ae.__value),pe.__value="10YFI-1--------U",j(pe,pe.__value),ve.__value="10YFR-RTE------C",j(ve,ve.__value),J.__value="10Y1001A1001A83F",j(J,J.__value),be.__value="10YGB----------A",j(be,be.__value),ke.__value="10YLV-1001A00074",j(ke,ke.__value),Ee.__value="10YLT-1001A0008Q",j(Ee,Ee.__value),Pe.__value="10YNL----------L",j(Pe,Pe.__value),Ae.__value="10YPL-AREA-----S",j(Ae,Ae.__value),Le.__value="10YSI-ELES-----O",j(Le,Le.__value),qe.__value="10YCH-SWISSGRIDZ",j(qe,qe.__value),u(te,"name","pr"),u(te,"class","in-f w-full"),t[6].p.r===void 0&&Et(()=>t[27].call(te)),u(Q,"class","w-full"),u(pt,"name","pm"),u(pt,"class","in-m"),t[6].p.m===void 0&&Et(()=>t[28].call(pt)),u(je,"name","pc"),u(je,"class","in-l"),t[6].p.c===void 0&&Et(()=>t[29].call(je)),u(V,"class","flex"),u(Z,"class","my-1"),u(ge,"class","my-1"),u(Je,"type","checkbox"),u(Je,"name","pe"),Je.__value="true",j(Je,Je.__value),u(Je,"class","rounded mb-1"),u(ce,"class","my-1"),lt.__value=0,j(lt,lt.__value),Ot.__value=1,j(Ot,Ot.__value),Xt.__value=2,j(Xt,Xt.__value),u(mt,"name","gs"),u(mt,"class","in-s"),t[6].g.s===void 0&&Et(()=>t[32].call(mt)),u(st,"class","my-1"),u(xe,"name","gc"),u(xe,"type","text"),u(xe,"pattern",Ci),u(xe,"placeholder",Rt=((Dt=(Ue=t[2].conf)==null?void 0:Ue.general)==null?void 0:Dt.context_placeholder)??"/"),u(xe,"class","in-s"),u(xe,"maxlength","36"),u(Mt,"class","my-1"),u(e,"class","cnt")},m(Ue,Dt){P(Ue,e,Dt),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(e,c),s(e,m),s(m,_),s(_,d),s(d,g),s(d,b),s(d,C),s(d,k),j(k,t[6].g.h),s(_,A),s(_,I),s(I,T),s(I,F),s(I,L),s(I,z),Se(G,z,null),ye(z,t[6].g.t,!0),s(e,H),s(e,q),s(e,U),s(e,Z),s(Z,V),s(V,Q),s(Q,B),s(Q,y),s(Q,ie),s(Q,te),s(te,Y),Gt&&Gt.m(Y,null),s(Y,le),s(Y,ue),s(Y,fe),s(Y,ne),s(Y,de),s(te,oe),s(oe,_e),s(oe,se),s(oe,me),s(oe,we),s(te,S),s(S,w),s(S,O),s(te,D),s(te,W),s(te,$),s(te,ae),s(te,pe),s(te,ve),s(te,J),s(te,be),s(te,ke),s(te,Ee),s(te,Pe),s(te,Ae),s(te,Le),s(te,qe),ye(te,t[6].p.r,!0),s(V,Re),s(V,Xe),s(Xe,$e),s(Xe,ft),s(Xe,St),s(Xe,pt);for(let il=0;il<2;il+=1)wt[il]&&wt[il].m(pt,null);ye(pt,t[6].p.m,!0),s(V,ut),s(V,it),s(it,At),s(it,Ze),s(it,Fe),s(it,je);for(let il=0;il<5;il+=1)ol[il]&&ol[il].m(je,null);ye(je,t[6].p.c,!0),s(e,et),s(e,ge),Se(Te,ge,null),s(e,Ke),s(e,ce),s(ce,Ce),s(Ce,Je),Je.checked=t[6].p.e,s(Ce,Ge),s(Ce,vt),s(ce,Ye),jt&&jt.m(ce,null),s(e,qt),s(e,st),s(st,tt),s(st,Bt),s(st,Jt),s(st,mt),s(mt,lt),s(lt,Qt),s(mt,Ot),s(Ot,tl),s(mt,Xt),s(Xt,ll),ye(mt,t[6].g.s,!0),s(e,Ve),Ht&&Ht.m(e,null),s(e,ot),s(e,Mt),s(Mt,kt),s(Mt,bt),s(Mt,zt),s(Mt,xe),j(xe,t[6].g.c),he=!0,Ie||(He=[re(k,"input",t[25]),re(z,"change",t[26]),re(te,"change",t[27]),re(te,"change",t[22]),re(pt,"change",t[28]),re(je,"change",t[29]),re(Je,"change",t[30]),re(mt,"change",t[32]),re(xe,"input",t[35])],Ie=!0)},p(Ue,Dt){var Ql,Xl,Zl,Jl,$l,xl,en,tn,Pn,Tn,qn,En,Dn,An,Ln,On,In,Rn,Fn,Bn,Un,zn,jn,Hn,Wn,yn,Gn,Vn,Kn,bo;(!he||Dt[0]&4)&&n!==(n=(((Xl=(Ql=Ue[2].conf)==null?void 0:Ql.general)==null?void 0:Xl.title)??"General")+"")&&E(i,n),(!he||Dt[0]&4)&&h!==(h=(((Jl=(Zl=Ue[2].conf)==null?void 0:Zl.general)==null?void 0:Jl.hostname)??"Hostname")+"")&&E(g,h),Dt[0]&64&&k.value!==Ue[6].g.h&&j(k,Ue[6].g.h),(!he||Dt[0]&4)&&R!==(R=(((xl=($l=Ue[2].conf)==null?void 0:$l.general)==null?void 0:xl.timezone)??"Time zone")+"")&&E(T,R),Dt[0]&64&&ye(z,Ue[6].g.t),(!he||Dt[0]&4)&&K!==(K=(((tn=(en=Ue[2].conf)==null?void 0:en.price)==null?void 0:tn.region)??"Price region")+"")&&E(B,K),Ue[6].p.t?Gt&&(Gt.d(1),Gt=null):Gt||(Gt=oa(),Gt.c(),Gt.m(Y,le)),Dt[0]&64&&ye(te,Ue[6].p.r),(!he||Dt[0]&4)&>!==(gt=(((Tn=(Pn=Ue[2].conf)==null?void 0:Pn.price)==null?void 0:Tn.resolution)??"Resolution")+"")&&E($e,gt),Dt[0]&64&&ye(pt,Ue[6].p.m),(!he||Dt[0]&4)&&dt!==(dt=(((En=(qn=Ue[2].conf)==null?void 0:qn.price)==null?void 0:En.currency)??"Currency")+"")&&E(At,dt),Dt[0]&64&&ye(je,Ue[6].p.c);const il={};Dt[0]&4|Dt[4]&8388608&&(il.$$scope={dirty:Dt,ctx:Ue}),Te.$set(il),Dt[0]&64&&(Je.checked=Ue[6].p.e),(!he||Dt[0]&4)&&Lt!==(Lt=(((An=(Dn=Ue[2].conf)==null?void 0:Dn.price)==null?void 0:An.enabled)??"Enabled")+"")&&E(vt,Lt),Ue[6].p.e&&Ue[0].chip!="esp8266"&&Ue[6].p.t?jt?jt.p(Ue,Dt):(jt=sa(Ue),jt.c(),jt.m(ce,null)):jt&&(jt.d(1),jt=null),(!he||Dt[0]&4)&&_t!==(_t=(((In=(On=(Ln=Ue[2].conf)==null?void 0:Ln.general)==null?void 0:On.security)==null?void 0:In.title)??"Security")+"")&&E(tt,_t),(!he||Dt[0]&4)&&Kt!==(Kt=(((Bn=(Fn=(Rn=Ue[2].conf)==null?void 0:Rn.general)==null?void 0:Fn.security)==null?void 0:Bn.none)??"None")+"")&&E(Qt,Kt),(!he||Dt[0]&4)&&el!==(el=(((jn=(zn=(Un=Ue[2].conf)==null?void 0:Un.general)==null?void 0:zn.security)==null?void 0:jn.conf)??"Conf")+"")&&E(tl,el),(!he||Dt[0]&4)&&$t!==($t=(((yn=(Wn=(Hn=Ue[2].conf)==null?void 0:Hn.general)==null?void 0:Wn.security)==null?void 0:yn.all)??"All")+"")&&E(ll,$t),Dt[0]&64&&ye(mt,Ue[6].g.s),Ue[6].g.s>0?Ht?Ht.p(Ue,Dt):(Ht=aa(Ue),Ht.c(),Ht.m(e,ot)):Ht&&(Ht.d(1),Ht=null),(!he||Dt[0]&4)&&It!==(It=(((Vn=(Gn=Ue[2].conf)==null?void 0:Gn.general)==null?void 0:Vn.context)??"Context")+"")&&E(kt,It),(!he||Dt[0]&4&&Rt!==(Rt=((bo=(Kn=Ue[2].conf)==null?void 0:Kn.general)==null?void 0:bo.context_placeholder)??"/"))&&u(xe,"placeholder",Rt),Dt[0]&64&&xe.value!==Ue[6].g.c&&j(xe,Ue[6].g.c)},i(Ue){he||(X(G.$$.fragment,Ue),X(Te.$$.fragment,Ue),he=!0)},o(Ue){ee(G.$$.fragment,Ue),ee(Te.$$.fragment,Ue),he=!1},d(Ue){Ue&&N(e),Me(G),Gt&&Gt.d(),nl(wt,Ue),nl(ol,Ue),Me(Te),jt&&jt.d(),Ht&&Ht.d(),Ie=!1,Wt(He)}}}function oa(t){let e,l,n,i,o;return{c(){e=p("option"),e.textContent="NO1 w/support",l=p("option"),l.textContent="NO2 w/support",n=p("option"),n.textContent="NO3 w/support",i=p("option"),i.textContent="NO4 w/support",o=p("option"),o.textContent="NO5 w/support",e.__value="NO1S",j(e,e.__value),l.__value="NO2S",j(l,l.__value),n.__value="NO3S",j(n,n.__value),i.__value="NO4S",j(i,i.__value),o.__value="NO5S",j(o,o.__value)},m(a,r){P(a,e,r),P(a,l,r),P(a,n,r),P(a,i,r),P(a,o,r)},d(a){a&&(N(e),N(l),N(n),N(i),N(o))}}}function A0(t){let e;return{c(){e=p("option"),e.textContent=`${t[144]}M`,e.__value=t[144],j(e,e.__value)},m(l,n){P(l,e,n)},p:ze,d(l){l&&N(e)}}}function L0(t){let e;return{c(){e=p("option"),e.textContent=`${t[141]}`,e.__value=t[141],j(e,e.__value)},m(l,n){P(l,e,n)},p:ze,d(l){l&&N(e)}}}function O0(t){var n,i;let e=(((i=(n=t[2].conf)==null?void 0:n.price)==null?void 0:i.conf)??"Configure")+"",l;return{c(){l=M(e)},m(o,a){P(o,l,a)},p(o,a){var r,f;a[0]&4&&e!==(e=(((f=(r=o[2].conf)==null?void 0:r.price)==null?void 0:f.conf)??"Configure")+"")&&E(l,e)},d(o){o&&N(l)}}}function sa(t){let e,l,n,i,o,a;return{c(){e=p("input"),l=v(),n=p("br"),i=p("input"),u(e,"name","pt"),u(e,"type","hidden"),u(i,"type","text"),u(i,"class","in-s"),u(i,"placeholder","ENTSO-E API key disabled, ref issue #1030"),i.disabled=!0},m(r,f){P(r,e,f),j(e,t[6].p.t),P(r,l,f),P(r,n,f),P(r,i,f),o||(a=re(e,"input",t[31]),o=!0)},p(r,f){f[0]&64&&j(e,r[6].p.t)},d(r){r&&(N(e),N(l),N(n),N(i)),o=!1,a()}}}function aa(t){var C,k,A,I,R,T;let e,l=(((A=(k=(C=t[2].conf)==null?void 0:C.general)==null?void 0:k.security)==null?void 0:A.username)??"Username")+"",n,i,o,a,r,f,c=(((T=(R=(I=t[2].conf)==null?void 0:I.general)==null?void 0:R.security)==null?void 0:T.password)??"Password")+"",m,_,d,h,g,b;return{c(){e=p("div"),n=M(l),i=p("br"),o=v(),a=p("input"),r=v(),f=p("div"),m=M(c),_=p("br"),d=v(),h=p("input"),u(a,"name","gu"),u(a,"type","text"),u(a,"class","in-s"),u(a,"maxlength","36"),u(a,"pattern",Il),u(e,"class","my-1"),u(h,"name","gp"),u(h,"type","password"),u(h,"class","in-s"),u(h,"maxlength","36"),u(h,"pattern",Il),u(f,"class","my-1")},m(F,L){P(F,e,L),s(e,n),s(e,i),s(e,o),s(e,a),j(a,t[6].g.u),P(F,r,L),P(F,f,L),s(f,m),s(f,_),s(f,d),s(f,h),j(h,t[6].g.p),g||(b=[re(a,"input",t[33]),re(h,"input",t[34])],g=!0)},p(F,L){var z,G,H,q,U,Z;L[0]&4&&l!==(l=(((H=(G=(z=F[2].conf)==null?void 0:z.general)==null?void 0:G.security)==null?void 0:H.username)??"Username")+"")&&E(n,l),L[0]&64&&a.value!==F[6].g.u&&j(a,F[6].g.u),L[0]&4&&c!==(c=(((Z=(U=(q=F[2].conf)==null?void 0:q.general)==null?void 0:U.security)==null?void 0:Z.password)??"Password")+"")&&E(m,c),L[0]&64&&h.value!==F[6].g.p&&j(h,F[6].g.p)},d(F){F&&(N(e),N(r),N(f)),g=!1,Wt(b)}}}function fa(t){var ce,Ce,Je,Ge,Lt,vt,Ye,qt,st,_t,tt,Bt,Jt,mt,lt,Kt,Qt,Ot,el,tl,Xt,$t,ll;let e,l,n=(((Ce=(ce=t[2].conf)==null?void 0:ce.meter)==null?void 0:Ce.title)??"Meter")+"",i,o,a,r,f,c,m,_,d,h=(((Lt=(Ge=(Je=t[2].conf)==null?void 0:Je.meter)==null?void 0:Ge.comm)==null?void 0:Lt.title)??"Communication")+"",g,b,C,k,A,I=(((qt=(Ye=(vt=t[2].conf)==null?void 0:vt.meter)==null?void 0:Ye.comm)==null?void 0:qt.passive)??"Passive")+"",R,T,F=(((tt=(_t=(st=t[2].conf)==null?void 0:st.meter)==null?void 0:_t.comm)==null?void 0:tt.pulse)??"Pulse")+"",L,z=(Jt=(Bt=t[0])==null?void 0:Bt.features)==null?void 0:Jt.includes("kmp"),G,H,q,U=(((mt=t[2].common)==null?void 0:mt.voltage)??"Voltage")+"",Z,V,Q,K,B,y,ie,te,Y,le=(((Kt=(lt=t[2].conf)==null?void 0:lt.meter)==null?void 0:Kt.fuse)??"Main fuse")+"",ue,fe,ne,de,oe,_e,se,me,we,S=(((Ot=(Qt=t[2].conf)==null?void 0:Qt.meter)==null?void 0:Ot.prod)??"Production")+"",w,O,D,W,$,ae,pe,ve,J,be,ke,Ee,Pe,Ae,Le=(((tl=(el=t[2].conf)==null?void 0:el.meter)==null?void 0:tl.encrypted)??"Encrypted")+"",qe,Re,Xe,gt,$e,ft,St,pt=(((ll=($t=(Xt=t[2].conf)==null?void 0:Xt.meter)==null?void 0:$t.multipliers)==null?void 0:ll.title)??"Multipliers")+"",ut,it,dt,At,Ze=z&&ua();function Fe(Ve,ot){return Ve[6].m.a===2?R0:I0}let je=Fe(t),et=je(t),ge=t[6].m.e.e&&ra(t),Te=t[6].m.e.e&&ca(t),Ke=t[6].m.m.e&&_a(t);return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("input"),_=v(),d=p("div"),g=M(h),b=p("br"),C=v(),k=p("select"),A=p("option"),R=M(I),T=p("option"),L=M(F),Ze&&Ze.c(),G=v(),et.c(),H=v(),q=p("div"),Z=M(U),V=p("br"),Q=v(),K=p("select"),B=p("option"),B.textContent="400V (TN)",y=p("option"),y.textContent="230V (IT/TT)",ie=v(),te=p("div"),Y=p("div"),ue=M(le),fe=p("br"),ne=v(),de=p("label"),oe=p("input"),_e=v(),se=p("span"),se.textContent="A",me=v(),we=p("div"),w=M(S),O=p("br"),D=v(),W=p("label"),$=p("input"),ae=v(),pe=p("span"),pe.textContent="kWp",ve=v(),J=p("div"),J.innerHTML="",be=v(),ke=p("div"),Ee=p("label"),Pe=p("input"),Ae=v(),qe=M(Le),Re=v(),ge&&ge.c(),Xe=v(),Te&&Te.c(),gt=v(),$e=p("label"),ft=p("input"),St=v(),ut=M(pt),it=v(),Ke&&Ke.c(),u(l,"class","text-sm"),u(a,"href",vl("Meter-configuration")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","m"),f.value="true",u(m,"type","hidden"),u(m,"name","mo"),m.value="1",A.__value=0,j(A,A.__value),T.__value=2,j(T,T.__value),u(k,"name","ma"),u(k,"class","in-s"),t[6].m.a===void 0&&Et(()=>t[36].call(k)),u(d,"class","my-1"),B.__value=2,j(B,B.__value),y.__value=1,j(y,y.__value),u(K,"name","md"),u(K,"class","in-s"),t[6].m.d===void 0&&Et(()=>t[42].call(K)),u(q,"class","my-1"),u(oe,"name","mf"),u(oe,"type","number"),u(oe,"min","5"),u(oe,"max","65535"),u(oe,"class","in-f tr w-full"),u(se,"class","in-post"),u(de,"class","flex"),u(Y,"class","mx-1"),u($,"name","mr"),u($,"type","number"),u($,"min","0"),u($,"max","65535"),u($,"class","in-f tr w-full"),u(pe,"class","in-post"),u(W,"class","flex"),u(we,"class","mx-1"),u(te,"class","my-1 flex"),u(J,"class","my-1"),u(Pe,"type","checkbox"),u(Pe,"name","me"),Pe.__value="true",j(Pe,Pe.__value),u(Pe,"class","rounded mb-1"),u(ke,"class","my-1"),u(ft,"type","checkbox"),u(ft,"name","mm"),ft.__value="true",j(ft,ft.__value),u(ft,"class","rounded mb-1"),u(e,"class","cnt")},m(Ve,ot){P(Ve,e,ot),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(e,c),s(e,m),s(e,_),s(e,d),s(d,g),s(d,b),s(d,C),s(d,k),s(k,A),s(A,R),s(k,T),s(T,L),Ze&&Ze.m(k,null),ye(k,t[6].m.a,!0),s(e,G),et.m(e,null),s(e,H),s(e,q),s(q,Z),s(q,V),s(q,Q),s(q,K),s(K,B),s(K,y),ye(K,t[6].m.d,!0),s(e,ie),s(e,te),s(te,Y),s(Y,ue),s(Y,fe),s(Y,ne),s(Y,de),s(de,oe),j(oe,t[6].m.f),s(de,_e),s(de,se),s(te,me),s(te,we),s(we,w),s(we,O),s(we,D),s(we,W),s(W,$),j($,t[6].m.r),s(W,ae),s(W,pe),s(e,ve),s(e,J),s(e,be),s(e,ke),s(ke,Ee),s(Ee,Pe),Pe.checked=t[6].m.e.e,s(Ee,Ae),s(Ee,qe),s(ke,Re),ge&&ge.m(ke,null),s(e,Xe),Te&&Te.m(e,null),s(e,gt),s(e,$e),s($e,ft),ft.checked=t[6].m.m.e,s($e,St),s($e,ut),s(e,it),Ke&&Ke.m(e,null),dt||(At=[re(k,"change",t[36]),re(K,"change",t[42]),re(oe,"input",t[43]),re($,"input",t[44]),re(Pe,"change",t[45]),re(ft,"change",t[48])],dt=!0)},p(Ve,ot){var Mt,It,kt,bt,zt,xe,Rt,he,Ie,He,Gt,Vt,wt,cl,ol,jt,Ht,ul,De,x,Oe,nt,Nt;ot[0]&4&&n!==(n=(((It=(Mt=Ve[2].conf)==null?void 0:Mt.meter)==null?void 0:It.title)??"Meter")+"")&&E(i,n),ot[0]&4&&h!==(h=(((zt=(bt=(kt=Ve[2].conf)==null?void 0:kt.meter)==null?void 0:bt.comm)==null?void 0:zt.title)??"Communication")+"")&&E(g,h),ot[0]&4&&I!==(I=(((he=(Rt=(xe=Ve[2].conf)==null?void 0:xe.meter)==null?void 0:Rt.comm)==null?void 0:he.passive)??"Passive")+"")&&E(R,I),ot[0]&4&&F!==(F=(((Gt=(He=(Ie=Ve[2].conf)==null?void 0:Ie.meter)==null?void 0:He.comm)==null?void 0:Gt.pulse)??"Pulse")+"")&&E(L,F),ot[0]&1&&(z=(wt=(Vt=Ve[0])==null?void 0:Vt.features)==null?void 0:wt.includes("kmp")),z?Ze||(Ze=ua(),Ze.c(),Ze.m(k,null)):Ze&&(Ze.d(1),Ze=null),ot[0]&64&&ye(k,Ve[6].m.a),je===(je=Fe(Ve))&&et?et.p(Ve,ot):(et.d(1),et=je(Ve),et&&(et.c(),et.m(e,H))),ot[0]&4&&U!==(U=(((cl=Ve[2].common)==null?void 0:cl.voltage)??"Voltage")+"")&&E(Z,U),ot[0]&64&&ye(K,Ve[6].m.d),ot[0]&4&&le!==(le=(((jt=(ol=Ve[2].conf)==null?void 0:ol.meter)==null?void 0:jt.fuse)??"Main fuse")+"")&&E(ue,le),ot[0]&64&&Be(oe.value)!==Ve[6].m.f&&j(oe,Ve[6].m.f),ot[0]&4&&S!==(S=(((ul=(Ht=Ve[2].conf)==null?void 0:Ht.meter)==null?void 0:ul.prod)??"Production")+"")&&E(w,S),ot[0]&64&&Be($.value)!==Ve[6].m.r&&j($,Ve[6].m.r),ot[0]&64&&(Pe.checked=Ve[6].m.e.e),ot[0]&4&&Le!==(Le=(((x=(De=Ve[2].conf)==null?void 0:De.meter)==null?void 0:x.encrypted)??"Encrypted")+"")&&E(qe,Le),Ve[6].m.e.e?ge?ge.p(Ve,ot):(ge=ra(Ve),ge.c(),ge.m(ke,null)):ge&&(ge.d(1),ge=null),Ve[6].m.e.e?Te?Te.p(Ve,ot):(Te=ca(Ve),Te.c(),Te.m(e,gt)):Te&&(Te.d(1),Te=null),ot[0]&64&&(ft.checked=Ve[6].m.m.e),ot[0]&4&&pt!==(pt=(((Nt=(nt=(Oe=Ve[2].conf)==null?void 0:Oe.meter)==null?void 0:nt.multipliers)==null?void 0:Nt.title)??"Multipliers")+"")&&E(ut,pt),Ve[6].m.m.e?Ke?Ke.p(Ve,ot):(Ke=_a(Ve),Ke.c(),Ke.m(e,null)):Ke&&(Ke.d(1),Ke=null)},d(Ve){Ve&&N(e),Ze&&Ze.d(),et.d(),ge&&ge.d(),Te&&Te.d(),Ke&&Ke.d(),dt=!1,Wt(At)}}}function ua(t){let e;return{c(){e=p("option"),e.textContent="KMP",e.__value=9,j(e,e.__value)},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function I0(t){var ue,fe,ne,de,oe,_e;let e,l,n=(((fe=(ue=t[2].conf)==null?void 0:ue.meter)==null?void 0:fe.buffer)??"Buffer size")+"",i,o,a,r=(((de=(ne=t[2].conf)==null?void 0:ne.meter)==null?void 0:de.serial)??"Serial conf.")+"",f,c,m,_,d,h=(((_e=(oe=t[2].conf)==null?void 0:oe.meter)==null?void 0:_e.inverted)??"inverted")+"",g,b,C,k,A,I,R,T,F,L,z,G,H,q,U,Z,V,Q,K,B,y,ie,te,Y=at([3,12,24,48,96,192,384,576,1152]),le=[];for(let se=0;se<9;se+=1)le[se]=F0(q0(t,Y,se));return{c(){e=p("div"),l=p("span"),i=M(n),o=v(),a=p("span"),f=M(r),c=v(),m=p("label"),_=p("input"),d=v(),g=M(h),b=v(),C=p("div"),k=p("select"),A=p("option"),I=M("Autodetect");for(let se=0;se<9;se+=1)le[se].c();T=v(),F=p("select"),L=p("option"),z=M("-"),H=p("option"),H.textContent="7N1",q=p("option"),q.textContent="8N1",U=p("option"),U.textContent="8N2",Z=p("option"),Z.textContent="7E1",V=p("option"),V.textContent="8E1",K=v(),B=p("input"),u(l,"class","float-right"),u(_,"name","mi"),_.__value="true",j(_,_.__value),u(_,"type","checkbox"),u(_,"class","rounded mb-1"),u(m,"class","mt-2 ml-3 whitespace-nowrap"),A.__value=0,j(A,A.__value),A.disabled=R=t[6].m.b!=0,u(k,"name","mb"),u(k,"class","in-f tr w-1/2"),t[6].m.b===void 0&&Et(()=>t[39].call(k)),L.__value=0,j(L,L.__value),L.disabled=G=t[6].m.b!=0,H.__value=2,j(H,H.__value),q.__value=3,j(q,q.__value),U.__value=7,j(U,U.__value),Z.__value=10,j(Z,Z.__value),V.__value=11,j(V,V.__value),u(F,"name","mp"),u(F,"class","in-m"),F.disabled=Q=t[6].m.b==0,t[6].m.p===void 0&&Et(()=>t[40].call(F)),u(B,"name","ms"),u(B,"type","number"),u(B,"min",64),u(B,"max",y=t[0].chip=="esp8266"?t[6].i.h.p==3||t[6].i.h.p==113?512:256:4096),u(B,"step",64),u(B,"class","in-l tr w-1/2"),u(C,"class","flex w-full"),u(e,"class","my-1")},m(se,me){P(se,e,me),s(e,l),s(l,i),s(e,o),s(e,a),s(a,f),s(e,c),s(e,m),s(m,_),_.checked=t[6].m.i,s(m,d),s(m,g),s(e,b),s(e,C),s(C,k),s(k,A),s(A,I);for(let we=0;we<9;we+=1)le[we]&&le[we].m(k,null);ye(k,t[6].m.b,!0),s(C,T),s(C,F),s(F,L),s(L,z),s(F,H),s(F,q),s(F,U),s(F,Z),s(F,V),ye(F,t[6].m.p,!0),s(C,K),s(C,B),j(B,t[6].m.s),ie||(te=[re(_,"change",t[38]),re(k,"change",t[39]),re(F,"change",t[40]),re(B,"input",t[41])],ie=!0)},p(se,me){var we,S,w,O,D,W;me[0]&4&&n!==(n=(((S=(we=se[2].conf)==null?void 0:we.meter)==null?void 0:S.buffer)??"Buffer size")+"")&&E(i,n),me[0]&4&&r!==(r=(((O=(w=se[2].conf)==null?void 0:w.meter)==null?void 0:O.serial)??"Serial conf.")+"")&&E(f,r),me[0]&64&&(_.checked=se[6].m.i),me[0]&4&&h!==(h=(((W=(D=se[2].conf)==null?void 0:D.meter)==null?void 0:W.inverted)??"inverted")+"")&&E(g,h),me[0]&64&&R!==(R=se[6].m.b!=0)&&(A.disabled=R),me[0]&64&&ye(k,se[6].m.b),me[0]&64&&G!==(G=se[6].m.b!=0)&&(L.disabled=G),me[0]&64&&Q!==(Q=se[6].m.b==0)&&(F.disabled=Q),me[0]&64&&ye(F,se[6].m.p),me[0]&65&&y!==(y=se[0].chip=="esp8266"?se[6].i.h.p==3||se[6].i.h.p==113?512:256:4096)&&u(B,"max",y),me[0]&64&&Be(B.value)!==se[6].m.s&&j(B,se[6].m.s)},d(se){se&&N(e),nl(le,se),ie=!1,Wt(te)}}}function R0(t){var c,m;let e,l,n=(((m=(c=t[2].conf)==null?void 0:c.meter)==null?void 0:m.pulses)??"Pulses per kWh")+"",i,o,a,r,f;return{c(){e=p("div"),l=p("span"),i=M(n),o=v(),a=p("input"),u(a,"name","mb"),u(a,"class","in-s tr"),u(a,"type","number"),u(a,"min",1),u(a,"max",3600),u(e,"class","my-1")},m(_,d){P(_,e,d),s(e,l),s(l,i),s(e,o),s(e,a),j(a,t[6].m.b),r||(f=re(a,"input",t[37]),r=!0)},p(_,d){var h,g;d[0]&4&&n!==(n=(((g=(h=_[2].conf)==null?void 0:h.meter)==null?void 0:g.pulses)??"Pulses per kWh")+"")&&E(i,n),d[0]&64&&Be(a.value)!==_[6].m.b&&j(a,_[6].m.b)},d(_){_&&N(e),r=!1,f()}}}function F0(t){let e;return{c(){e=p("option"),e.textContent=`${t[138]*100}`,e.__value=t[138]*100,j(e,e.__value)},m(l,n){P(l,e,n)},p:ze,d(l){l&&N(e)}}}function ra(t){let e,l,n,i;return{c(){e=p("br"),l=p("input"),u(l,"name","mek"),u(l,"type","text"),u(l,"class","in-s"),u(l,"pattern",Ou)},m(o,a){P(o,e,a),P(o,l,a),j(l,t[6].m.e.k),n||(i=re(l,"input",t[46]),n=!0)},p(o,a){a[0]&64&&l.value!==o[6].m.e.k&&j(l,o[6].m.e.k)},d(o){o&&(N(e),N(l)),n=!1,i()}}}function ca(t){var c,m;let e,l=(((m=(c=t[2].conf)==null?void 0:c.meter)==null?void 0:m.authkey)??"Authentication key")+"",n,i,o,a,r,f;return{c(){e=p("div"),n=M(l),i=p("br"),o=v(),a=p("input"),u(a,"name","mea"),u(a,"type","text"),u(a,"class","in-s"),u(a,"pattern",Ou),u(e,"class","my-1")},m(_,d){P(_,e,d),s(e,n),s(e,i),s(e,o),s(e,a),j(a,t[6].m.e.a),r||(f=re(a,"input",t[47]),r=!0)},p(_,d){var h,g;d[0]&4&&l!==(l=(((g=(h=_[2].conf)==null?void 0:h.meter)==null?void 0:g.authkey)??"Authentication key")+"")&&E(n,l),d[0]&64&&a.value!==_[6].m.e.a&&j(a,_[6].m.e.a)},d(_){_&&N(e),r=!1,f()}}}function _a(t){var Q,K,B,y,ie,te,Y,le,ue,fe,ne,de;let e,l,n=(((B=(K=(Q=t[2].conf)==null?void 0:Q.meter)==null?void 0:K.multipliers)==null?void 0:B.watt)??"Watt")+"",i,o,a,r,f,c,m=(((te=(ie=(y=t[2].conf)==null?void 0:y.meter)==null?void 0:ie.multipliers)==null?void 0:te.volt)??"Volt")+"",_,d,h,g,b,C,k=(((ue=(le=(Y=t[2].conf)==null?void 0:Y.meter)==null?void 0:le.multipliers)==null?void 0:ue.amp)??"Amp")+"",A,I,R,T,F,L,z=(((de=(ne=(fe=t[2].conf)==null?void 0:fe.meter)==null?void 0:ne.multipliers)==null?void 0:de.kwh)??"kWh")+"",G,H,q,U,Z,V;return{c(){e=p("div"),l=p("div"),i=M(n),o=p("br"),a=v(),r=p("input"),f=v(),c=p("div"),_=M(m),d=p("br"),h=v(),g=p("input"),b=v(),C=p("div"),A=M(k),I=p("br"),R=v(),T=p("input"),F=v(),L=p("div"),G=M(z),H=p("br"),q=v(),U=p("input"),u(r,"name","mmw"),u(r,"type","number"),u(r,"min","0.00"),u(r,"max","1000"),u(r,"step","0.001"),u(r,"class","in-f tr w-full"),u(l,"class","w-1/4"),u(g,"name","mmv"),u(g,"type","number"),u(g,"min","0.00"),u(g,"max","1000"),u(g,"step","0.001"),u(g,"class","in-m tr w-full"),u(c,"class","w-1/4"),u(T,"name","mma"),u(T,"type","number"),u(T,"min","0.00"),u(T,"max","1000"),u(T,"step","0.001"),u(T,"class","in-m tr w-full"),u(C,"class","w-1/4"),u(U,"name","mmc"),u(U,"type","number"),u(U,"min","0.00"),u(U,"max","1000"),u(U,"step","0.001"),u(U,"class","in-l tr w-full"),u(L,"class","w-1/4"),u(e,"class","flex my-1")},m(oe,_e){P(oe,e,_e),s(e,l),s(l,i),s(l,o),s(l,a),s(l,r),j(r,t[6].m.m.w),s(e,f),s(e,c),s(c,_),s(c,d),s(c,h),s(c,g),j(g,t[6].m.m.v),s(e,b),s(e,C),s(C,A),s(C,I),s(C,R),s(C,T),j(T,t[6].m.m.a),s(e,F),s(e,L),s(L,G),s(L,H),s(L,q),s(L,U),j(U,t[6].m.m.c),Z||(V=[re(r,"input",t[49]),re(g,"input",t[50]),re(T,"input",t[51]),re(U,"input",t[52])],Z=!0)},p(oe,_e){var se,me,we,S,w,O,D,W,$,ae,pe,ve;_e[0]&4&&n!==(n=(((we=(me=(se=oe[2].conf)==null?void 0:se.meter)==null?void 0:me.multipliers)==null?void 0:we.watt)??"Watt")+"")&&E(i,n),_e[0]&64&&Be(r.value)!==oe[6].m.m.w&&j(r,oe[6].m.m.w),_e[0]&4&&m!==(m=(((O=(w=(S=oe[2].conf)==null?void 0:S.meter)==null?void 0:w.multipliers)==null?void 0:O.volt)??"Volt")+"")&&E(_,m),_e[0]&64&&Be(g.value)!==oe[6].m.m.v&&j(g,oe[6].m.m.v),_e[0]&4&&k!==(k=((($=(W=(D=oe[2].conf)==null?void 0:D.meter)==null?void 0:W.multipliers)==null?void 0:$.amp)??"Amp")+"")&&E(A,k),_e[0]&64&&Be(T.value)!==oe[6].m.m.a&&j(T,oe[6].m.m.a),_e[0]&4&&z!==(z=(((ve=(pe=(ae=oe[2].conf)==null?void 0:ae.meter)==null?void 0:pe.multipliers)==null?void 0:ve.kwh)??"kWh")+"")&&E(G,z),_e[0]&64&&Be(U.value)!==oe[6].m.m.c&&j(U,oe[6].m.m.c)},d(oe){oe&&N(e),Z=!1,Wt(V)}}}function ma(t){var L,z,G,H,q,U;let e,l,n=(((z=(L=t[2].conf)==null?void 0:L.connection)==null?void 0:z.title)??"Connection")+"",i,o,a,r,f,c,m,_,d,h=(((H=(G=t[2].conf)==null?void 0:G.connection)==null?void 0:H.wifi)??"WiFi")+"",g,b,C=(((U=(q=t[2].conf)==null?void 0:q.connection)==null?void 0:U.ap)??"AP")+"",k,A,I,R,T=t[0].if&&t[0].if.eth&&pa(t),F=(t[6].n.c==1||t[6].n.c==2)&&da(t);return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),_=p("select"),d=p("option"),g=M(h),b=p("option"),k=M(C),T&&T.c(),A=v(),F&&F.c(),u(l,"class","text-sm"),u(a,"href",vl("Network-connection")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","w"),f.value="true",d.__value=1,j(d,d.__value),b.__value=2,j(b,b.__value),u(_,"name","nc"),u(_,"class","in-s"),t[6].n.c===void 0&&Et(()=>t[53].call(_)),u(m,"class","my-1"),u(e,"class","cnt")},m(Z,V){P(Z,e,V),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(e,c),s(e,m),s(m,_),s(_,d),s(d,g),s(_,b),s(b,k),T&&T.m(_,null),ye(_,t[6].n.c,!0),s(e,A),F&&F.m(e,null),I||(R=re(_,"change",t[53]),I=!0)},p(Z,V){var Q,K,B,y,ie,te;V[0]&4&&n!==(n=(((K=(Q=Z[2].conf)==null?void 0:Q.connection)==null?void 0:K.title)??"Connection")+"")&&E(i,n),V[0]&4&&h!==(h=(((y=(B=Z[2].conf)==null?void 0:B.connection)==null?void 0:y.wifi)??"WiFi")+"")&&E(g,h),V[0]&4&&C!==(C=(((te=(ie=Z[2].conf)==null?void 0:ie.connection)==null?void 0:te.ap)??"AP")+"")&&E(k,C),Z[0].if&&Z[0].if.eth?T?T.p(Z,V):(T=pa(Z),T.c(),T.m(_,null)):T&&(T.d(1),T=null),V[0]&64&&ye(_,Z[6].n.c),Z[6].n.c==1||Z[6].n.c==2?F?F.p(Z,V):(F=da(Z),F.c(),F.m(e,null)):F&&(F.d(1),F=null)},d(Z){Z&&N(e),T&&T.d(),F&&F.d(),I=!1,R()}}}function pa(t){var i,o;let e,l=(((o=(i=t[2].conf)==null?void 0:i.connection)==null?void 0:o.eth)??"Ethernet")+"",n;return{c(){e=p("option"),n=M(l),e.__value=3,j(e,e.__value)},m(a,r){P(a,e,r),s(e,n)},p(a,r){var f,c;r[0]&4&&l!==(l=(((c=(f=a[2].conf)==null?void 0:f.connection)==null?void 0:c.eth)??"Ethernet")+"")&&E(n,l)},d(a){a&&N(e)}}}function da(t){var Ee,Pe,Ae,Le,qe,Re,Xe,gt,$e,ft,St,pt,ut,it,dt,At,Ze,Fe,je,et,ge,Te,Ke;let e,l=(((Pe=(Ee=t[2].conf)==null?void 0:Ee.connection)==null?void 0:Pe.ssid)??"SSID")+"",n,i,o,a,r,f,c,m,_,d,h=(((Le=(Ae=t[2].conf)==null?void 0:Ae.connection)==null?void 0:Le.psk)??"Password")+"",g,b,C,k,A,I,R,T=(((Xe=(Re=(qe=t[2].conf)==null?void 0:qe.connection)==null?void 0:Re.ps)==null?void 0:Xe.title)??"Power saving")+"",F,L,z,G,H,q=(((ft=($e=(gt=t[2].conf)==null?void 0:gt.connection)==null?void 0:$e.ps)==null?void 0:ft.default)??"Default")+"",U,Z,V=(((ut=(pt=(St=t[2].conf)==null?void 0:St.connection)==null?void 0:pt.ps)==null?void 0:ut.off)??"Off")+"",Q,K,B=(((At=(dt=(it=t[2].conf)==null?void 0:it.connection)==null?void 0:dt.ps)==null?void 0:At.min)??"Min")+"",y,ie,te=(((je=(Fe=(Ze=t[2].conf)==null?void 0:Ze.connection)==null?void 0:Fe.ps)==null?void 0:je.max)??"Max")+"",Y,le,ue,fe=(((ge=(et=t[2].conf)==null?void 0:et.connection)==null?void 0:ge.pwr)??"Power")+"",ne,de,oe,_e,se,me,we,S,w,O,D,W,$=(((Ke=(Te=t[2].conf)==null?void 0:Te.connection)==null?void 0:Ke.tick_11b)??"802.11b")+"",ae,pe,ve;function J(ce,Ce){return ce[8]?U0:B0}let be=J(t),ke=be(t);return{c(){e=p("div"),n=M(l),i=v(),o=p("label"),a=p("input"),r=M(" manual"),f=v(),c=p("br"),m=v(),ke.c(),_=v(),d=p("div"),g=M(h),b=p("br"),C=v(),k=p("input"),A=v(),I=p("div"),R=p("div"),F=M(T),L=p("br"),z=v(),G=p("select"),H=p("option"),U=M(q),Z=p("option"),Q=M(V),K=p("option"),y=M(B),ie=p("option"),Y=M(te),le=v(),ue=p("div"),ne=M(fe),de=p("br"),oe=v(),_e=p("div"),se=p("input"),me=v(),we=p("span"),we.textContent="dBm",S=v(),w=p("div"),O=p("label"),D=p("input"),W=v(),ae=M($),u(a,"type","checkbox"),a.__value="true",j(a,a.__value),u(a,"class","rounded mb-1"),u(o,"class","float-right mr-3"),u(e,"class","my-1"),u(k,"name","wp"),u(k,"type","password"),u(k,"class","in-s"),u(k,"pattern",Nn),u(d,"class","my-1"),H.__value=255,j(H,H.__value),Z.__value=0,j(Z,Z.__value),K.__value=1,j(K,K.__value),ie.__value=2,j(ie,ie.__value),u(G,"name","wz"),u(G,"class","in-s"),t[6].w.z===void 0&&Et(()=>t[58].call(G)),u(R,"class","w-1/2"),u(se,"name","ww"),u(se,"type","number"),u(se,"min","0"),u(se,"max","20.5"),u(se,"step","0.5"),u(se,"class","in-f tr w-full"),u(we,"class","in-post"),u(_e,"class","flex"),u(ue,"class","ml-2 w-1/2"),u(I,"class","my-1 flex"),u(D,"type","checkbox"),u(D,"name","wb"),D.__value="true",j(D,D.__value),u(D,"class","rounded mb-1"),u(w,"class","my-3")},m(ce,Ce){P(ce,e,Ce),s(e,n),s(e,i),s(e,o),s(o,a),a.checked=t[8],s(o,r),s(e,f),s(e,c),s(e,m),ke.m(e,null),P(ce,_,Ce),P(ce,d,Ce),s(d,g),s(d,b),s(d,C),s(d,k),j(k,t[6].w.p),P(ce,A,Ce),P(ce,I,Ce),s(I,R),s(R,F),s(R,L),s(R,z),s(R,G),s(G,H),s(H,U),s(G,Z),s(Z,Q),s(G,K),s(K,y),s(G,ie),s(ie,Y),ye(G,t[6].w.z,!0),s(I,le),s(I,ue),s(ue,ne),s(ue,de),s(ue,oe),s(ue,_e),s(_e,se),j(se,t[6].w.w),s(_e,me),s(_e,we),P(ce,S,Ce),P(ce,w,Ce),s(w,O),s(O,D),D.checked=t[6].w.b,s(O,W),s(O,ae),pe||(ve=[re(a,"change",t[54]),re(k,"input",t[57]),re(G,"change",t[58]),re(se,"input",t[59]),re(D,"change",t[60])],pe=!0)},p(ce,Ce){var Je,Ge,Lt,vt,Ye,qt,st,_t,tt,Bt,Jt,mt,lt,Kt,Qt,Ot,el,tl,Xt,$t,ll,Ve,ot;Ce[0]&4&&l!==(l=(((Ge=(Je=ce[2].conf)==null?void 0:Je.connection)==null?void 0:Ge.ssid)??"SSID")+"")&&E(n,l),Ce[0]&256&&(a.checked=ce[8]),be===(be=J(ce))&&ke?ke.p(ce,Ce):(ke.d(1),ke=be(ce),ke&&(ke.c(),ke.m(e,null))),Ce[0]&4&&h!==(h=(((vt=(Lt=ce[2].conf)==null?void 0:Lt.connection)==null?void 0:vt.psk)??"Password")+"")&&E(g,h),Ce[0]&64&&k.value!==ce[6].w.p&&j(k,ce[6].w.p),Ce[0]&4&&T!==(T=(((st=(qt=(Ye=ce[2].conf)==null?void 0:Ye.connection)==null?void 0:qt.ps)==null?void 0:st.title)??"Power saving")+"")&&E(F,T),Ce[0]&4&&q!==(q=(((Bt=(tt=(_t=ce[2].conf)==null?void 0:_t.connection)==null?void 0:tt.ps)==null?void 0:Bt.default)??"Default")+"")&&E(U,q),Ce[0]&4&&V!==(V=(((lt=(mt=(Jt=ce[2].conf)==null?void 0:Jt.connection)==null?void 0:mt.ps)==null?void 0:lt.off)??"Off")+"")&&E(Q,V),Ce[0]&4&&B!==(B=(((Ot=(Qt=(Kt=ce[2].conf)==null?void 0:Kt.connection)==null?void 0:Qt.ps)==null?void 0:Ot.min)??"Min")+"")&&E(y,B),Ce[0]&4&&te!==(te=(((Xt=(tl=(el=ce[2].conf)==null?void 0:el.connection)==null?void 0:tl.ps)==null?void 0:Xt.max)??"Max")+"")&&E(Y,te),Ce[0]&64&&ye(G,ce[6].w.z),Ce[0]&4&&fe!==(fe=(((ll=($t=ce[2].conf)==null?void 0:$t.connection)==null?void 0:ll.pwr)??"Power")+"")&&E(ne,fe),Ce[0]&64&&Be(se.value)!==ce[6].w.w&&j(se,ce[6].w.w),Ce[0]&64&&(D.checked=ce[6].w.b),Ce[0]&4&&$!==($=(((ot=(Ve=ce[2].conf)==null?void 0:Ve.connection)==null?void 0:ot.tick_11b)??"802.11b")+"")&&E(ae,$)},d(ce){ce&&(N(e),N(_),N(d),N(A),N(I),N(S),N(w)),ke.d(),pe=!1,Wt(ve)}}}function B0(t){var f,c;let e,l,n,i,o,a=((f=t[9])==null?void 0:f.c)==-1&&ha(),r=((c=t[9])==null?void 0:c.n)&&va(t);return{c(){e=p("select"),a&&a.c(),l=yt(),r&&r.c(),u(e,"name","ws"),u(e,"class","in-s"),e.required=n=t[6].n.c==1||t[6].n.c==2,t[6].w.s===void 0&&Et(()=>t[56].call(e))},m(m,_){P(m,e,_),a&&a.m(e,null),s(e,l),r&&r.m(e,null),ye(e,t[6].w.s,!0),i||(o=re(e,"change",t[56]),i=!0)},p(m,_){var d,h;((d=m[9])==null?void 0:d.c)==-1?a||(a=ha(),a.c(),a.m(e,l)):a&&(a.d(1),a=null),(h=m[9])!=null&&h.n?r?r.p(m,_):(r=va(m),r.c(),r.m(e,null)):r&&(r.d(1),r=null),_[0]&64&&n!==(n=m[6].n.c==1||m[6].n.c==2)&&(e.required=n),_[0]&64&&ye(e,m[6].w.s)},d(m){m&&N(e),a&&a.d(),r&&r.d(),i=!1,o()}}}function U0(t){let e,l,n,i;return{c(){e=p("input"),u(e,"name","ws"),u(e,"type","text"),u(e,"class","in-s"),u(e,"pattern",Nn),e.required=l=t[6].n.c==1||t[6].n.c==2},m(o,a){P(o,e,a),j(e,t[6].w.s),n||(i=re(e,"input",t[55]),n=!0)},p(o,a){a[0]&64&&l!==(l=o[6].n.c==1||o[6].n.c==2)&&(e.required=l),a[0]&64&&e.value!==o[6].w.s&&j(e,o[6].w.s)},d(o){o&&N(e),n=!1,i()}}}function ha(t){let e;return{c(){e=p("option"),e.textContent="Scanning...",e.__value="",j(e,e.__value),e.selected=!0,e.disabled=!0},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function va(t){var i;let e,l=at((i=t[9])==null?void 0:i.n),n=[];for(let o=0;ot[61].call(g)),u(F,"name","ni"),u(F,"type","text"),u(F,"class","in-m w-full"),F.disabled=L=t[6].n.m=="dhcp",F.required=z=t[6].n.m=="static",u(F,"pattern",cn),u(H,"name","ns"),u(H,"class","in-l"),H.disabled=U=t[6].n.m=="dhcp",H.required=Z=t[6].n.m=="static",t[6].n.s===void 0&&Et(()=>t[63].call(H)),u(h,"class","flex"),u(f,"class","my-1"),u(y,"name","nx"),y.__value="true",j(y,y.__value),u(y,"type","checkbox"),u(y,"class","rounded mb-1"),u(K,"class","my-1"),u(ue,"name","nd"),ue.__value="true",j(ue,ue.__value),u(ue,"type","checkbox"),u(ue,"class","rounded mb-1"),u(Y,"class","my-1"),u(_e,"type","hidden"),u(_e,"name","ntp"),_e.value="true",u(D,"name","ntpd"),D.__value="true",j(D,D.__value),u(D,"type","checkbox"),u(D,"class","rounded mb-1"),u(O,"class","ml-4"),u(be,"name","ntph"),u(be,"type","text"),u(be,"class","in-s"),u(be,"pattern",Il),u(J,"class","flex"),u(me,"class","my-1"),u(e,"class","cnt")},m(Fe,je){P(Fe,e,je),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(f,m),s(f,_),s(f,d),s(f,h),s(h,g),s(g,b),s(b,k),s(g,A),s(A,R),ye(g,t[6].n.m,!0),s(h,T),s(h,F),j(F,t[6].n.i),s(h,G),s(h,H),Se(q,H,null),ye(H,t[6].n.s,!0),s(e,V),Ae&&Ae.m(e,null),s(e,Q),s(e,K),s(K,B),s(B,y),y.checked=t[6].n.x,s(B,ie),s(e,te),s(e,Y),s(Y,le),s(le,ue),ue.checked=t[6].n.d,s(le,fe),s(le,de),s(e,oe),s(e,_e),s(e,se),s(e,me),s(me,S),s(me,w),s(me,O),s(O,D),D.checked=t[6].n.h,s(O,W),s(O,ae),s(me,pe),s(me,ve),s(me,J),s(J,be),j(be,t[6].n.n1),ke=!0,Ee||(Pe=[re(g,"change",t[61]),re(F,"input",t[62]),re(H,"change",t[63]),re(y,"change",t[67]),re(ue,"change",t[68]),re(D,"change",t[69]),re(be,"input",t[70])],Ee=!0)},p(Fe,je){var et,ge,Te,Ke,ce,Ce,Je,Ge,Lt,vt,Ye,qt,st,_t;(!ke||je[0]&4)&&n!==(n=(((ge=(et=Fe[2].conf)==null?void 0:et.network)==null?void 0:ge.title)??"Network")+"")&&E(i,n),(!ke||je[0]&4)&&c!==(c=(((Ke=(Te=Fe[2].conf)==null?void 0:Te.network)==null?void 0:Ke.ip)??"IP")+"")&&E(m,c),(!ke||je[0]&4)&&C!==(C=(((Ce=(ce=Fe[2].conf)==null?void 0:ce.network)==null?void 0:Ce.dhcp)??"DHCP")+"")&&E(k,C),(!ke||je[0]&4)&&I!==(I=(((Ge=(Je=Fe[2].conf)==null?void 0:Je.network)==null?void 0:Ge.static)??"Static")+"")&&E(R,I),je[0]&64&&ye(g,Fe[6].n.m),(!ke||je[0]&64&&L!==(L=Fe[6].n.m=="dhcp"))&&(F.disabled=L),(!ke||je[0]&64&&z!==(z=Fe[6].n.m=="static"))&&(F.required=z),je[0]&64&&F.value!==Fe[6].n.i&&j(F,Fe[6].n.i),(!ke||je[0]&64&&U!==(U=Fe[6].n.m=="dhcp"))&&(H.disabled=U),(!ke||je[0]&64&&Z!==(Z=Fe[6].n.m=="static"))&&(H.required=Z),je[0]&64&&ye(H,Fe[6].n.s),Fe[6].n.m=="static"?Ae?Ae.p(Fe,je):(Ae=ka(Fe),Ae.c(),Ae.m(e,Q)):Ae&&(Ae.d(1),Ae=null),je[0]&64&&(y.checked=Fe[6].n.x),je[0]&64&&(ue.checked=Fe[6].n.d),(!ke||je[0]&4)&&ne!==(ne=(((vt=(Lt=Fe[2].conf)==null?void 0:Lt.network)==null?void 0:vt.tick_mdns)??"mDNS")+"")&&E(de,ne),(!ke||je[0]&4)&&we!==(we=(((qt=(Ye=Fe[2].conf)==null?void 0:Ye.network)==null?void 0:qt.ntp)??"NTP")+"")&&E(S,we),je[0]&64&&(D.checked=Fe[6].n.h),(!ke||je[0]&4)&&$!==($=(((_t=(st=Fe[2].conf)==null?void 0:st.network)==null?void 0:_t.tick_ntp_dhcp)??"from DHCP")+"")&&E(ae,$),je[0]&64&&be.value!==Fe[6].n.n1&&j(be,Fe[6].n.n1)},i(Fe){ke||(X(q.$$.fragment,Fe),ke=!0)},o(Fe){ee(q.$$.fragment,Fe),ke=!1},d(Fe){Fe&&N(e),Me(q),Ae&&Ae.d(),Ee=!1,Wt(Pe)}}}function ka(t){var I,R,T,F;let e,l=(((R=(I=t[2].conf)==null?void 0:I.network)==null?void 0:R.gw)??"Gateway")+"",n,i,o,a,r,f,c=(((F=(T=t[2].conf)==null?void 0:T.network)==null?void 0:F.dns)??"DNS")+"",m,_,d,h,g,b,C,k,A;return{c(){e=p("div"),n=M(l),i=p("br"),o=v(),a=p("input"),r=v(),f=p("div"),m=M(c),_=p("br"),d=v(),h=p("div"),g=p("input"),b=v(),C=p("input"),u(a,"name","ng"),u(a,"type","text"),u(a,"class","in-s"),u(a,"pattern",cn),u(e,"class","my-1"),u(g,"name","nd1"),u(g,"type","text"),u(g,"class","in-f w-full"),u(g,"pattern",cn),u(C,"name","nd2"),u(C,"type","text"),u(C,"class","in-l w-full"),u(C,"pattern",cn),u(h,"class","flex"),u(f,"class","my-1")},m(L,z){P(L,e,z),s(e,n),s(e,i),s(e,o),s(e,a),j(a,t[6].n.g),P(L,r,z),P(L,f,z),s(f,m),s(f,_),s(f,d),s(f,h),s(h,g),j(g,t[6].n.d1),s(h,b),s(h,C),j(C,t[6].n.d2),k||(A=[re(a,"input",t[64]),re(g,"input",t[65]),re(C,"input",t[66])],k=!0)},p(L,z){var G,H,q,U;z[0]&4&&l!==(l=(((H=(G=L[2].conf)==null?void 0:G.network)==null?void 0:H.gw)??"Gateway")+"")&&E(n,l),z[0]&64&&a.value!==L[6].n.g&&j(a,L[6].n.g),z[0]&4&&c!==(c=(((U=(q=L[2].conf)==null?void 0:q.network)==null?void 0:U.dns)??"DNS")+"")&&E(m,c),z[0]&64&&g.value!==L[6].n.d1&&j(g,L[6].n.d1),z[0]&64&&C.value!==L[6].n.d2&&j(C,L[6].n.d2)},d(L){L&&(N(e),N(r),N(f)),k=!1,Wt(A)}}}function wa(t){var cl,ol,jt,Ht,ul,De,x,Oe,nt,Nt,al,_l,hl,fl,bl,gl,Pl,Rl,Fl,Bl,Ul,zl,jl,Hl,Wl,yl,Gl,Vl,Kl,Yl;let e,l,n=(((ol=(cl=t[2].conf)==null?void 0:cl.mqtt)==null?void 0:ol.title)??"MQTT")+"",i,o,a,r,f,c,m,_=(((Ht=(jt=t[2].conf)==null?void 0:jt.mqtt)==null?void 0:Ht.server)??"Server")+"",d,h,g,b,C,k,A,I,R,T,F,L,z=(((De=(ul=t[2].conf)==null?void 0:ul.mqtt)==null?void 0:De.user)??"Username")+"",G,H,q,U,Z,V,Q=(((Oe=(x=t[2].conf)==null?void 0:x.mqtt)==null?void 0:Oe.pass)??"Password")+"",K,B,y,ie,te,Y,le,ue=(((Nt=(nt=t[2].conf)==null?void 0:nt.mqtt)==null?void 0:Nt.id)??"Client ID")+"",fe,ne,de,oe,_e,se,me,we=(((_l=(al=t[2].conf)==null?void 0:al.mqtt)==null?void 0:_l.payload)??"Payload")+"",S,w,O,D,W,$,ae,pe,ve,J,be,ke,Ee,Pe,Ae=(((fl=(hl=t[2].conf)==null?void 0:hl.mqtt)==null?void 0:fl.publish)??"Publish topic")+"",Le,qe,Re,Xe,gt,$e,ft=(((gl=(bl=t[2].conf)==null?void 0:bl.mqtt)==null?void 0:gl.subscribe)??"Subscribe topic")+"",St,pt,ut,it,dt,At,Ze,Fe=(((Rl=(Pl=t[2].conf)==null?void 0:Pl.mqtt)==null?void 0:Rl.update)??"Update method")+"",je,et,ge,Te=(((Bl=(Fl=t[2].conf)==null?void 0:Fl.mqtt)==null?void 0:Bl.interval)??"Interval")+"",Ke,ce,Ce,Je,Ge,Lt=(((zl=(Ul=t[2].conf)==null?void 0:Ul.mqtt)==null?void 0:zl.realtime)??"Real time")+"",vt,Ye,qt=(((Hl=(jl=t[2].conf)==null?void 0:jl.mqtt)==null?void 0:Hl.interval)??"Interval")+"",st,_t,tt,Bt,Jt,mt,lt,Kt,Qt=(((yl=(Wl=t[2].conf)==null?void 0:Wl.mqtt)==null?void 0:yl.timeout)??"Timeout")+"",Ot,el,tl,Xt=(((Vl=(Gl=t[2].conf)==null?void 0:Gl.mqtt)==null?void 0:Vl.keepalive)??"Keep-alive")+"",$t,ll,Ve,ot=(((Yl=(Kl=t[2].conf)==null?void 0:Kl.mqtt)==null?void 0:Yl.autoreboot)??"Auto-reboot")+"",Mt,It,kt,bt,zt,xe,Rt,he,Ie,He,Gt,Vt=t[0].chip!="esp8266"&&Ca(t),wt=t[6].q.s.e&&Sa(t);return{c(){var We,ht;e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),d=M(_),h=v(),Vt&&Vt.c(),g=v(),b=p("br"),C=v(),k=p("div"),A=p("input"),I=v(),R=p("input"),T=v(),wt&&wt.c(),F=v(),L=p("div"),G=M(z),H=p("br"),q=v(),U=p("input"),Z=v(),V=p("div"),K=M(Q),B=p("br"),y=v(),ie=p("input"),te=v(),Y=p("div"),le=p("div"),fe=M(ue),ne=p("br"),de=v(),oe=p("input"),se=v(),me=p("div"),S=M(we),w=p("br"),O=v(),D=p("select"),W=p("option"),W.textContent="Raw (minimal)",$=p("option"),$.textContent="Raw (full)",ae=p("option"),ae.textContent="Domoticz",pe=p("option"),pe.textContent="Home-Assistant",ve=p("option"),ve.textContent="JSON (classic)",J=p("option"),J.textContent="JSON (multi topic)",be=p("option"),be.textContent="JSON (flat)",ke=p("option"),ke.textContent="HEX dump",Ee=v(),Pe=p("div"),Le=M(Ae),qe=p("br"),Re=v(),Xe=p("input"),gt=v(),$e=p("div"),St=M(ft),pt=p("br"),ut=v(),it=p("input"),At=v(),Ze=p("div"),je=M(Fe),et=v(),ge=p("span"),Ke=M(Te),ce=v(),Ce=p("div"),Je=p("select"),Ge=p("option"),vt=M(Lt),Ye=p("option"),st=M(qt),_t=v(),tt=p("input"),Jt=v(),mt=p("div"),lt=p("div"),Kt=p("p"),Ot=M(Qt),el=v(),tl=p("p"),$t=M(Xt),ll=v(),Ve=p("p"),Mt=M(ot),It=v(),kt=p("div"),bt=p("input"),zt=v(),xe=p("input"),Rt=v(),he=p("input"),u(l,"class","text-sm"),u(a,"href",vl("MQTT-configuration")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","q"),f.value="true",u(A,"name","qh"),u(A,"type","text"),u(A,"class","in-f w-2/3"),u(A,"pattern",Il),u(R,"name","qp"),u(R,"type","number"),u(R,"min","1024"),u(R,"max","65535"),u(R,"class","in-l tr w-1/3"),u(k,"class","flex"),u(m,"class","my-1"),u(U,"name","qu"),u(U,"type","text"),u(U,"class","in-s"),u(U,"pattern",Nn),u(L,"class","my-1"),u(ie,"name","qa"),u(ie,"type","password"),u(ie,"class","in-s"),u(ie,"pattern",Nn),u(V,"class","my-1"),u(oe,"name","qc"),u(oe,"type","text"),u(oe,"class","in-f w-full"),oe.required=_e=t[6].q.h,u(oe,"pattern",Ci),W.__value=1,j(W,W.__value),$.__value=2,j($,$.__value),ae.__value=3,j(ae,ae.__value),pe.__value=4,j(pe,pe.__value),ve.__value=0,j(ve,ve.__value),J.__value=5,j(J,J.__value),be.__value=6,j(be,be.__value),ke.__value=255,j(ke,ke.__value),u(D,"name","qm"),u(D,"class","in-l"),t[6].q.m===void 0&&Et(()=>t[77].call(D)),u(Y,"class","my-1 flex"),u(Xe,"name","qb"),u(Xe,"type","text"),u(Xe,"class","in-s"),u(Xe,"pattern",Il),u(Pe,"class","my-1"),u(it,"name","qr"),u(it,"type","text"),u(it,"class","in-s"),u(it,"pattern",Il),u(it,"placeholder",dt=t[6].q.b+"/command"),u($e,"class","my-1"),u(ge,"class","float-right"),Ge.__value=0,j(Ge,Ge.__value),Ye.__value=1,j(Ye,Ye.__value),u(Je,"name","qt"),u(Je,"class","in-f w-1/2"),t[6].q.t===void 0&&Et(()=>t[80].call(Je)),u(tt,"name","qd"),u(tt,"type","number"),u(tt,"min","1"),u(tt,"max","3600"),u(tt,"class","in-l tr w-1/2"),tt.disabled=Bt=((ht=(We=t[6])==null?void 0:We.q)==null?void 0:ht.t)!=1,u(Ce,"class","flex"),u(Ze,"class","my-1"),u(lt,"class","grid grid-cols-3"),u(bt,"name","qi"),u(bt,"type","number"),u(bt,"min","500"),u(bt,"max","10000"),u(bt,"class","in-f tr w-1/2"),u(xe,"name","qk"),u(xe,"type","number"),u(xe,"min","5"),u(xe,"max","180"),u(xe,"class","in-m tr w-1/2"),u(he,"name","qe"),u(he,"type","number"),u(he,"min","0"),u(he,"max","240"),u(he,"class","in-l tr w-1/2"),u(kt,"class","flex"),u(mt,"class","my-1"),u(e,"class","cnt")},m(We,ht){P(We,e,ht),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(e,c),s(e,m),s(m,d),s(m,h),Vt&&Vt.m(m,null),s(m,g),s(m,b),s(m,C),s(m,k),s(k,A),j(A,t[6].q.h),s(k,I),s(k,R),j(R,t[6].q.p),s(e,T),wt&&wt.m(e,null),s(e,F),s(e,L),s(L,G),s(L,H),s(L,q),s(L,U),j(U,t[6].q.u),s(e,Z),s(e,V),s(V,K),s(V,B),s(V,y),s(V,ie),j(ie,t[6].q.a),s(e,te),s(e,Y),s(Y,le),s(le,fe),s(le,ne),s(le,de),s(le,oe),j(oe,t[6].q.c),s(Y,se),s(Y,me),s(me,S),s(me,w),s(me,O),s(me,D),s(D,W),s(D,$),s(D,ae),s(D,pe),s(D,ve),s(D,J),s(D,be),s(D,ke),ye(D,t[6].q.m,!0),s(e,Ee),s(e,Pe),s(Pe,Le),s(Pe,qe),s(Pe,Re),s(Pe,Xe),j(Xe,t[6].q.b),s(e,gt),s(e,$e),s($e,St),s($e,pt),s($e,ut),s($e,it),j(it,t[6].q.r),s(e,At),s(e,Ze),s(Ze,je),s(Ze,et),s(Ze,ge),s(ge,Ke),s(Ze,ce),s(Ze,Ce),s(Ce,Je),s(Je,Ge),s(Ge,vt),s(Je,Ye),s(Ye,st),ye(Je,t[6].q.t,!0),s(Ce,_t),s(Ce,tt),j(tt,t[6].q.d),s(e,Jt),s(e,mt),s(mt,lt),s(lt,Kt),s(Kt,Ot),s(lt,el),s(lt,tl),s(tl,$t),s(lt,ll),s(lt,Ve),s(Ve,Mt),s(mt,It),s(mt,kt),s(kt,bt),j(bt,t[6].q.i),s(kt,zt),s(kt,xe),j(xe,t[6].q.k),s(kt,Rt),s(kt,he),j(he,t[6].q.e),Ie=!0,He||(Gt=[re(A,"input",t[72]),re(R,"input",t[73]),re(U,"input",t[74]),re(ie,"input",t[75]),re(oe,"input",t[76]),re(D,"change",t[77]),re(Xe,"input",t[78]),re(it,"input",t[79]),re(Je,"change",t[80]),re(tt,"input",t[81]),re(bt,"input",t[82]),re(xe,"input",t[83]),re(he,"input",t[84])],He=!0)},p(We,ht){var Ue,Dt,il,Ql,Xl,Zl,Jl,$l,xl,en,tn,Pn,Tn,qn,En,Dn,An,Ln,On,In,Rn,Fn,Bn,Un,zn,jn,Hn,Wn,yn,Gn,Vn,Kn;(!Ie||ht[0]&4)&&n!==(n=(((Dt=(Ue=We[2].conf)==null?void 0:Ue.mqtt)==null?void 0:Dt.title)??"MQTT")+"")&&E(i,n),(!Ie||ht[0]&4)&&_!==(_=(((Ql=(il=We[2].conf)==null?void 0:il.mqtt)==null?void 0:Ql.server)??"Server")+"")&&E(d,_),We[0].chip!="esp8266"?Vt?Vt.p(We,ht):(Vt=Ca(We),Vt.c(),Vt.m(m,g)):Vt&&(Vt.d(1),Vt=null),ht[0]&64&&A.value!==We[6].q.h&&j(A,We[6].q.h),ht[0]&64&&Be(R.value)!==We[6].q.p&&j(R,We[6].q.p),We[6].q.s.e?wt?(wt.p(We,ht),ht[0]&64&&X(wt,1)):(wt=Sa(We),wt.c(),X(wt,1),wt.m(e,F)):wt&&(rt(),ee(wt,1,1,()=>{wt=null}),ct()),(!Ie||ht[0]&4)&&z!==(z=(((Zl=(Xl=We[2].conf)==null?void 0:Xl.mqtt)==null?void 0:Zl.user)??"Username")+"")&&E(G,z),ht[0]&64&&U.value!==We[6].q.u&&j(U,We[6].q.u),(!Ie||ht[0]&4)&&Q!==(Q=((($l=(Jl=We[2].conf)==null?void 0:Jl.mqtt)==null?void 0:$l.pass)??"Password")+"")&&E(K,Q),ht[0]&64&&ie.value!==We[6].q.a&&j(ie,We[6].q.a),(!Ie||ht[0]&4)&&ue!==(ue=(((en=(xl=We[2].conf)==null?void 0:xl.mqtt)==null?void 0:en.id)??"Client ID")+"")&&E(fe,ue),(!Ie||ht[0]&64&&_e!==(_e=We[6].q.h))&&(oe.required=_e),ht[0]&64&&oe.value!==We[6].q.c&&j(oe,We[6].q.c),(!Ie||ht[0]&4)&&we!==(we=(((Pn=(tn=We[2].conf)==null?void 0:tn.mqtt)==null?void 0:Pn.payload)??"Payload")+"")&&E(S,we),ht[0]&64&&ye(D,We[6].q.m),(!Ie||ht[0]&4)&&Ae!==(Ae=(((qn=(Tn=We[2].conf)==null?void 0:Tn.mqtt)==null?void 0:qn.publish)??"Publish topic")+"")&&E(Le,Ae),ht[0]&64&&Xe.value!==We[6].q.b&&j(Xe,We[6].q.b),(!Ie||ht[0]&4)&&ft!==(ft=(((Dn=(En=We[2].conf)==null?void 0:En.mqtt)==null?void 0:Dn.subscribe)??"Subscribe topic")+"")&&E(St,ft),(!Ie||ht[0]&64&&dt!==(dt=We[6].q.b+"/command"))&&u(it,"placeholder",dt),ht[0]&64&&it.value!==We[6].q.r&&j(it,We[6].q.r),(!Ie||ht[0]&4)&&Fe!==(Fe=(((Ln=(An=We[2].conf)==null?void 0:An.mqtt)==null?void 0:Ln.update)??"Update method")+"")&&E(je,Fe),(!Ie||ht[0]&4)&&Te!==(Te=(((In=(On=We[2].conf)==null?void 0:On.mqtt)==null?void 0:In.interval)??"Interval")+"")&&E(Ke,Te),(!Ie||ht[0]&4)&&Lt!==(Lt=(((Fn=(Rn=We[2].conf)==null?void 0:Rn.mqtt)==null?void 0:Fn.realtime)??"Real time")+"")&&E(vt,Lt),(!Ie||ht[0]&4)&&qt!==(qt=(((Un=(Bn=We[2].conf)==null?void 0:Bn.mqtt)==null?void 0:Un.interval)??"Interval")+"")&&E(st,qt),ht[0]&64&&ye(Je,We[6].q.t),(!Ie||ht[0]&64&&Bt!==(Bt=((jn=(zn=We[6])==null?void 0:zn.q)==null?void 0:jn.t)!=1))&&(tt.disabled=Bt),ht[0]&64&&Be(tt.value)!==We[6].q.d&&j(tt,We[6].q.d),(!Ie||ht[0]&4)&&Qt!==(Qt=(((Wn=(Hn=We[2].conf)==null?void 0:Hn.mqtt)==null?void 0:Wn.timeout)??"Timeout")+"")&&E(Ot,Qt),(!Ie||ht[0]&4)&&Xt!==(Xt=(((Gn=(yn=We[2].conf)==null?void 0:yn.mqtt)==null?void 0:Gn.keepalive)??"Keep-alive")+"")&&E($t,Xt),(!Ie||ht[0]&4)&&ot!==(ot=(((Kn=(Vn=We[2].conf)==null?void 0:Vn.mqtt)==null?void 0:Kn.autoreboot)??"Auto-reboot")+"")&&E(Mt,ot),ht[0]&64&&Be(bt.value)!==We[6].q.i&&j(bt,We[6].q.i),ht[0]&64&&Be(xe.value)!==We[6].q.k&&j(xe,We[6].q.k),ht[0]&64&&Be(he.value)!==We[6].q.e&&j(he,We[6].q.e)},i(We){Ie||(X(wt),Ie=!0)},o(We){ee(wt),Ie=!1},d(We){We&&N(e),Vt&&Vt.d(),wt&&wt.d(),He=!1,Wt(Gt)}}}function Ca(t){let e,l,n,i,o;return{c(){e=p("label"),l=p("input"),n=M(" SSL"),u(l,"type","checkbox"),u(l,"name","qs"),l.__value="true",j(l,l.__value),u(l,"class","rounded mb-1"),u(e,"class","float-right mr-3")},m(a,r){P(a,e,r),s(e,l),l.checked=t[6].q.s.e,s(e,n),i||(o=[re(l,"change",t[71]),re(l,"change",t[20])],i=!0)},p(a,r){r[0]&64&&(l.checked=a[6].q.s.e)},d(a){a&&N(e),i=!1,Wt(o)}}}function Sa(t){let e,l,n,i,o,a,r,f,c,m,_,d,h;const g=[j0,z0],b=[];function C(L,z){return L[6].q.s.c?0:1}n=C(t),i=b[n]=g[n](t);const k=[G0,y0],A=[];function I(L,z){return L[6].q.s.r?0:1}r=I(t),f=A[r]=k[r](t);const R=[Q0,Y0],T=[];function F(L,z){return L[6].q.s.k?0:1}return _=F(t),d=T[_]=R[_](t),{c(){e=p("div"),l=p("span"),i.c(),o=v(),a=p("span"),f.c(),c=v(),m=p("span"),d.c(),u(l,"class","flex pr-2"),u(a,"class","flex pr-2"),u(m,"class","flex pr-2"),u(e,"class","my-1 flex")},m(L,z){P(L,e,z),s(e,l),b[n].m(l,null),s(e,o),s(e,a),A[r].m(a,null),s(e,c),s(e,m),T[_].m(m,null),h=!0},p(L,z){let G=n;n=C(L),n===G?b[n].p(L,z):(rt(),ee(b[G],1,1,()=>{b[G]=null}),ct(),i=b[n],i?i.p(L,z):(i=b[n]=g[n](L),i.c()),X(i,1),i.m(l,null));let H=r;r=I(L),r===H?A[r].p(L,z):(rt(),ee(A[H],1,1,()=>{A[H]=null}),ct(),f=A[r],f?f.p(L,z):(f=A[r]=k[r](L),f.c()),X(f,1),f.m(a,null));let q=_;_=F(L),_===q?T[_].p(L,z):(rt(),ee(T[q],1,1,()=>{T[q]=null}),ct(),d=T[_],d?d.p(L,z):(d=T[_]=R[_](L),d.c()),X(d,1),d.m(m,null))},i(L){h||(X(i),X(f),X(d),h=!0)},o(L){ee(i),ee(f),ee(d),h=!1},d(L){L&&N(e),b[n].d(),A[r].d(),T[_].d()}}}function z0(t){let e,l;return e=new kl({props:{to:"/mqtt-ca",$$slots:{default:[H0]},$$scope:{ctx:t}}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i[0]&4|i[4]&8388608&&(o.$$scope={dirty:i,ctx:n}),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function j0(t){let e,l,n,i,o,a,r;return l=new kl({props:{to:"/mqtt-ca",$$slots:{default:[W0]},$$scope:{ctx:t}}}),{c(){e=p("span"),Ne(l.$$.fragment),n=v(),i=p("span"),i.textContent="🗑",u(e,"class","bd-on"),u(i,"class","bd-off")},m(f,c){P(f,e,c),Se(l,e,null),P(f,n,c),P(f,i,c),o=!0,a||(r=[re(i,"click",t[17]),re(i,"keypress",t[17])],a=!0)},p(f,c){const m={};c[0]&4|c[4]&8388608&&(m.$$scope={dirty:c,ctx:f}),l.$set(m)},i(f){o||(X(l.$$.fragment,f),o=!0)},o(f){ee(l.$$.fragment,f),o=!1},d(f){f&&(N(e),N(n),N(i)),Me(l),a=!1,Wt(r)}}}function H0(t){var n,i,o,a;let e,l;return e=new fn({props:{color:"blue",text:((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.btn_ca_upload)??"Upload CA",title:((a=(o=t[2].conf)==null?void 0:o.mqtt)==null?void 0:a.title_ca)??""}}),{c(){Ne(e.$$.fragment)},m(r,f){Se(e,r,f),l=!0},p(r,f){var m,_,d,h;const c={};f[0]&4&&(c.text=((_=(m=r[2].conf)==null?void 0:m.mqtt)==null?void 0:_.btn_ca_upload)??"Upload CA"),f[0]&4&&(c.title=((h=(d=r[2].conf)==null?void 0:d.mqtt)==null?void 0:h.title_ca)??""),e.$set(c)},i(r){l||(X(e.$$.fragment,r),l=!0)},o(r){ee(e.$$.fragment,r),l=!1},d(r){Me(e,r)}}}function W0(t){var n,i;let e=(((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.ca_ok)??"CA OK")+"",l;return{c(){l=M(e)},m(o,a){P(o,l,a)},p(o,a){var r,f;a[0]&4&&e!==(e=(((f=(r=o[2].conf)==null?void 0:r.mqtt)==null?void 0:f.ca_ok)??"CA OK")+"")&&E(l,e)},d(o){o&&N(l)}}}function y0(t){let e,l;return e=new kl({props:{to:"/mqtt-cert",$$slots:{default:[V0]},$$scope:{ctx:t}}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i[0]&4|i[4]&8388608&&(o.$$scope={dirty:i,ctx:n}),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function G0(t){let e,l,n,i,o,a,r;return l=new kl({props:{to:"/mqtt-cert",$$slots:{default:[K0]},$$scope:{ctx:t}}}),{c(){e=p("span"),Ne(l.$$.fragment),n=v(),i=p("span"),i.textContent="🗑",u(e,"class","bd-on"),u(i,"class","bd-off")},m(f,c){P(f,e,c),Se(l,e,null),P(f,n,c),P(f,i,c),o=!0,a||(r=[re(i,"click",t[18]),re(i,"keypress",t[18])],a=!0)},p(f,c){const m={};c[0]&4|c[4]&8388608&&(m.$$scope={dirty:c,ctx:f}),l.$set(m)},i(f){o||(X(l.$$.fragment,f),o=!0)},o(f){ee(l.$$.fragment,f),o=!1},d(f){f&&(N(e),N(n),N(i)),Me(l),a=!1,Wt(r)}}}function V0(t){var n,i,o,a;let e,l;return e=new fn({props:{color:"blue",text:((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.btn_crt_upload)??"Upload cert",title:((a=(o=t[2].conf)==null?void 0:o.mqtt)==null?void 0:a.title_crt)??""}}),{c(){Ne(e.$$.fragment)},m(r,f){Se(e,r,f),l=!0},p(r,f){var m,_,d,h;const c={};f[0]&4&&(c.text=((_=(m=r[2].conf)==null?void 0:m.mqtt)==null?void 0:_.btn_crt_upload)??"Upload cert"),f[0]&4&&(c.title=((h=(d=r[2].conf)==null?void 0:d.mqtt)==null?void 0:h.title_crt)??""),e.$set(c)},i(r){l||(X(e.$$.fragment,r),l=!0)},o(r){ee(e.$$.fragment,r),l=!1},d(r){Me(e,r)}}}function K0(t){var n,i;let e=(((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.crt_ok)??"Cert OK")+"",l;return{c(){l=M(e)},m(o,a){P(o,l,a)},p(o,a){var r,f;a[0]&4&&e!==(e=(((f=(r=o[2].conf)==null?void 0:r.mqtt)==null?void 0:f.crt_ok)??"Cert OK")+"")&&E(l,e)},d(o){o&&N(l)}}}function Y0(t){let e,l;return e=new kl({props:{to:"/mqtt-key",$$slots:{default:[X0]},$$scope:{ctx:t}}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i[0]&4|i[4]&8388608&&(o.$$scope={dirty:i,ctx:n}),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function Q0(t){let e,l,n,i,o,a,r;return l=new kl({props:{to:"/mqtt-key",$$slots:{default:[Z0]},$$scope:{ctx:t}}}),{c(){e=p("span"),Ne(l.$$.fragment),n=v(),i=p("span"),i.textContent="🗑",u(e,"class","bd-on"),u(i,"class","bd-off")},m(f,c){P(f,e,c),Se(l,e,null),P(f,n,c),P(f,i,c),o=!0,a||(r=[re(i,"click",t[19]),re(i,"keypress",t[19])],a=!0)},p(f,c){const m={};c[0]&4|c[4]&8388608&&(m.$$scope={dirty:c,ctx:f}),l.$set(m)},i(f){o||(X(l.$$.fragment,f),o=!0)},o(f){ee(l.$$.fragment,f),o=!1},d(f){f&&(N(e),N(n),N(i)),Me(l),a=!1,Wt(r)}}}function X0(t){var n,i,o,a;let e,l;return e=new fn({props:{color:"blue",text:((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.btn_key_upload)??"Upload key",title:((a=(o=t[2].conf)==null?void 0:o.mqtt)==null?void 0:a.title_key)??""}}),{c(){Ne(e.$$.fragment)},m(r,f){Se(e,r,f),l=!0},p(r,f){var m,_,d,h;const c={};f[0]&4&&(c.text=((_=(m=r[2].conf)==null?void 0:m.mqtt)==null?void 0:_.btn_key_upload)??"Upload key"),f[0]&4&&(c.title=((h=(d=r[2].conf)==null?void 0:d.mqtt)==null?void 0:h.title_key)??""),e.$set(c)},i(r){l||(X(e.$$.fragment,r),l=!0)},o(r){ee(e.$$.fragment,r),l=!1},d(r){Me(e,r)}}}function Z0(t){var n,i;let e=(((i=(n=t[2].conf)==null?void 0:n.mqtt)==null?void 0:i.key_ok)??"Key OK")+"",l;return{c(){l=M(e)},m(o,a){P(o,l,a)},p(o,a){var r,f;a[0]&4&&e!==(e=(((f=(r=o[2].conf)==null?void 0:r.mqtt)==null?void 0:f.key_ok)??"Key OK")+"")&&E(l,e)},d(o){o&&N(l)}}}function Ma(t){var Y,le,ue,fe,ne,de,oe,_e,se,me,we,S;let e,l,n=(((ue=(le=(Y=t[2].conf)==null?void 0:Y.mqtt)==null?void 0:le.domoticz)==null?void 0:ue.title)??"Domoticz")+"",i,o,a,r,f,c,m,_,d=(((de=(ne=(fe=t[2].conf)==null?void 0:fe.mqtt)==null?void 0:ne.domoticz)==null?void 0:de.eidx)??"Electricity IDX")+"",h,g,b,C,k,A,I=(((se=(_e=(oe=t[2].conf)==null?void 0:oe.mqtt)==null?void 0:_e.domoticz)==null?void 0:se.cidx)??"Current IDX")+"",R,T,F,L,z,G,H=(((S=(we=(me=t[2].conf)==null?void 0:me.mqtt)==null?void 0:we.domoticz)==null?void 0:S.vidx)??"Voltage IDX")+"",q,U,Z,V,Q,K,B,y,ie,te;return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),_=p("div"),h=M(d),g=p("br"),b=v(),C=p("input"),k=v(),A=p("div"),R=M(I),T=p("br"),F=v(),L=p("input"),z=v(),G=p("div"),q=M(H),U=M(`: L1, L2 & L3 + `),Z=p("div"),V=p("input"),Q=v(),K=p("input"),B=v(),y=p("input"),u(l,"class","text-sm"),u(a,"href",vl("MQTT-configuration#domoticz")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","o"),f.value="true",u(C,"name","oe"),u(C,"type","text"),u(C,"class","in-f tr w-full"),u(C,"pattern",Yn),u(_,"class","w-1/2"),u(L,"name","oc"),u(L,"type","text"),u(L,"class","in-l tr w-full"),u(L,"pattern",Yn),u(A,"class","w-1/2"),u(m,"class","my-1 flex"),u(V,"name","ou1"),u(V,"type","text"),u(V,"class","in-f tr w-1/3"),u(V,"pattern",Yn),u(K,"name","ou2"),u(K,"type","text"),u(K,"class","in-m tr w-1/3"),u(K,"pattern",Yn),u(y,"name","ou3"),u(y,"type","text"),u(y,"class","in-l tr w-1/3"),u(y,"pattern",Yn),u(Z,"class","flex"),u(G,"class","my-1"),u(e,"class","cnt")},m(w,O){P(w,e,O),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(e,c),s(e,m),s(m,_),s(_,h),s(_,g),s(_,b),s(_,C),j(C,t[6].o.e),s(m,k),s(m,A),s(A,R),s(A,T),s(A,F),s(A,L),j(L,t[6].o.c),s(e,z),s(e,G),s(G,q),s(G,U),s(G,Z),s(Z,V),j(V,t[6].o.u1),s(Z,Q),s(Z,K),j(K,t[6].o.u2),s(Z,B),s(Z,y),j(y,t[6].o.u3),ie||(te=[re(C,"input",t[85]),re(L,"input",t[86]),re(V,"input",t[87]),re(K,"input",t[88]),re(y,"input",t[89])],ie=!0)},p(w,O){var D,W,$,ae,pe,ve,J,be,ke,Ee,Pe,Ae;O[0]&4&&n!==(n=((($=(W=(D=w[2].conf)==null?void 0:D.mqtt)==null?void 0:W.domoticz)==null?void 0:$.title)??"Domoticz")+"")&&E(i,n),O[0]&4&&d!==(d=(((ve=(pe=(ae=w[2].conf)==null?void 0:ae.mqtt)==null?void 0:pe.domoticz)==null?void 0:ve.eidx)??"Electricity IDX")+"")&&E(h,d),O[0]&64&&C.value!==w[6].o.e&&j(C,w[6].o.e),O[0]&4&&I!==(I=(((ke=(be=(J=w[2].conf)==null?void 0:J.mqtt)==null?void 0:be.domoticz)==null?void 0:ke.cidx)??"Current IDX")+"")&&E(R,I),O[0]&64&&L.value!==w[6].o.c&&j(L,w[6].o.c),O[0]&4&&H!==(H=(((Ae=(Pe=(Ee=w[2].conf)==null?void 0:Ee.mqtt)==null?void 0:Pe.domoticz)==null?void 0:Ae.vidx)??"Voltage IDX")+"")&&E(q,H),O[0]&64&&V.value!==w[6].o.u1&&j(V,w[6].o.u1),O[0]&64&&K.value!==w[6].o.u2&&j(K,w[6].o.u2),O[0]&64&&y.value!==w[6].o.u3&&j(y,w[6].o.u3)},d(w){w&&N(e),ie=!1,Wt(te)}}}function Na(t){var B,y,ie,te,Y,le,ue,fe,ne,de,oe,_e;let e,l,n=(((ie=(y=(B=t[2].conf)==null?void 0:B.mqtt)==null?void 0:y.ha)==null?void 0:ie.title)??"Home-Assistant")+"",i,o,a,r,f,c,m,_=(((le=(Y=(te=t[2].conf)==null?void 0:te.mqtt)==null?void 0:Y.ha)==null?void 0:le.discovery)??"Discovery topic prefix")+"",d,h,g,b,C,k,A=(((ne=(fe=(ue=t[2].conf)==null?void 0:ue.mqtt)==null?void 0:fe.ha)==null?void 0:ne.hostname)??"Hostname for URL")+"",I,R,T,F,L,z,G,H=(((_e=(oe=(de=t[2].conf)==null?void 0:de.mqtt)==null?void 0:oe.ha)==null?void 0:_e.tag)??"Name tag")+"",q,U,Z,V,Q,K;return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),d=M(_),h=p("br"),g=v(),b=p("input"),C=v(),k=p("div"),I=M(A),R=p("br"),T=v(),F=p("input"),z=v(),G=p("div"),q=M(H),U=p("br"),Z=v(),V=p("input"),u(l,"class","text-sm"),u(a,"href",vl("MQTT-configuration#home-assistant")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","h"),f.value="true",u(b,"name","ht"),u(b,"type","text"),u(b,"class","in-s"),u(b,"placeholder","homeassistant"),u(b,"pattern",Il),u(m,"class","my-1"),u(F,"name","hh"),u(F,"type","text"),u(F,"class","in-s"),u(F,"placeholder",L=t[6].g.h+".local"),u(F,"pattern",Il),u(k,"class","my-1"),u(V,"name","hn"),u(V,"type","text"),u(V,"class","in-s"),u(V,"pattern",Il),u(G,"class","my-1"),u(e,"class","cnt")},m(se,me){P(se,e,me),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(e,c),s(e,m),s(m,d),s(m,h),s(m,g),s(m,b),j(b,t[6].h.t),s(e,C),s(e,k),s(k,I),s(k,R),s(k,T),s(k,F),j(F,t[6].h.h),s(e,z),s(e,G),s(G,q),s(G,U),s(G,Z),s(G,V),j(V,t[6].h.n),Q||(K=[re(b,"input",t[90]),re(F,"input",t[91]),re(V,"input",t[92])],Q=!0)},p(se,me){var we,S,w,O,D,W,$,ae,pe,ve,J,be;me[0]&4&&n!==(n=(((w=(S=(we=se[2].conf)==null?void 0:we.mqtt)==null?void 0:S.ha)==null?void 0:w.title)??"Home-Assistant")+"")&&E(i,n),me[0]&4&&_!==(_=(((W=(D=(O=se[2].conf)==null?void 0:O.mqtt)==null?void 0:D.ha)==null?void 0:W.discovery)??"Discovery topic prefix")+"")&&E(d,_),me[0]&64&&b.value!==se[6].h.t&&j(b,se[6].h.t),me[0]&4&&A!==(A=(((pe=(ae=($=se[2].conf)==null?void 0:$.mqtt)==null?void 0:ae.ha)==null?void 0:pe.hostname)??"Hostname for URL")+"")&&E(I,A),me[0]&64&&L!==(L=se[6].g.h+".local")&&u(F,"placeholder",L),me[0]&64&&F.value!==se[6].h.h&&j(F,se[6].h.h),me[0]&4&&H!==(H=(((be=(J=(ve=se[2].conf)==null?void 0:ve.mqtt)==null?void 0:J.ha)==null?void 0:be.tag)??"Name tag")+"")&&E(q,H),me[0]&64&&V.value!==se[6].h.n&&j(V,se[6].h.n)},d(se){se&&N(e),Q=!1,Wt(K)}}}function Pa(t){var q,U,Z,V,Q,K,B,y,ie,te;let e,l,n=(((U=(q=t[2].conf)==null?void 0:q.cloud)==null?void 0:U.title)??"Cloud connections")+"",i,o,a,r,f,c,m=(V=(Z=t[0])==null?void 0:Z.features)==null?void 0:V.includes("cloud"),_,d,h,g,b,C=(((K=(Q=t[2].conf)==null?void 0:Q.cloud)==null?void 0:K.es)??"Energy Speedometer")+"",k,A,I,R=(y=(B=t[0])==null?void 0:B.features)==null?void 0:y.includes("zc"),T,F,L,z=m&&Ta(t),G=((te=(ie=t[6])==null?void 0:ie.c)==null?void 0:te.es)&&Aa(t),H=R&&Oa(t);return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),z&&z.c(),_=v(),d=p("div"),h=p("label"),g=p("input"),b=v(),k=M(C),A=v(),G&&G.c(),I=v(),H&&H.c(),u(l,"class","text-sm"),u(a,"href",vl("Cloud")),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","c"),f.value="true",u(g,"type","checkbox"),u(g,"class","rounded mb-1"),u(g,"name","ces"),g.__value="true",j(g,g.__value),u(d,"class","my-1"),u(e,"class","cnt")},m(Y,le){P(Y,e,le),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(e,c),z&&z.m(e,null),s(e,_),s(e,d),s(d,h),s(h,g),g.checked=t[6].c.es,s(h,b),s(h,k),s(d,A),G&&G.m(d,null),s(e,I),H&&H.m(e,null),T=!0,F||(L=re(g,"change",t[95]),F=!0)},p(Y,le){var ue,fe,ne,de,oe,_e,se,me,we,S;(!T||le[0]&4)&&n!==(n=(((fe=(ue=Y[2].conf)==null?void 0:ue.cloud)==null?void 0:fe.title)??"Cloud connections")+"")&&E(i,n),le[0]&1&&(m=(de=(ne=Y[0])==null?void 0:ne.features)==null?void 0:de.includes("cloud")),m?z?z.p(Y,le):(z=Ta(Y),z.c(),z.m(e,_)):z&&(z.d(1),z=null),le[0]&64&&(g.checked=Y[6].c.es),(!T||le[0]&4)&&C!==(C=(((_e=(oe=Y[2].conf)==null?void 0:oe.cloud)==null?void 0:_e.es)??"Energy Speedometer")+"")&&E(k,C),(me=(se=Y[6])==null?void 0:se.c)!=null&&me.es?G?(G.p(Y,le),le[0]&64&&X(G,1)):(G=Aa(Y),G.c(),X(G,1),G.m(d,null)):G&&(rt(),ee(G,1,1,()=>{G=null}),ct()),le[0]&1&&(R=(S=(we=Y[0])==null?void 0:we.features)==null?void 0:S.includes("zc")),R?H?H.p(Y,le):(H=Oa(Y),H.c(),H.m(e,null)):H&&(H.d(1),H=null)},i(Y){T||(X(G),T=!0)},o(Y){ee(G),T=!1},d(Y){Y&&N(e),z&&z.d(),G&&G.d(),H&&H.d(),F=!1,L()}}}function Ta(t){var _,d;let e,l,n,i,o=(((d=(_=t[2].conf)==null?void 0:_.cloud)==null?void 0:d.ams)??"AMS reader cloud")+"",a,r,f,c,m=t[6].c.e&&qa(t);return{c(){e=p("div"),l=p("label"),n=p("input"),i=v(),a=M(o),r=v(),m&&m.c(),u(n,"type","checkbox"),u(n,"name","ce"),n.__value="true",j(n,n.__value),u(n,"class","rounded mb-1"),u(e,"class","my-1")},m(h,g){P(h,e,g),s(e,l),s(l,n),n.checked=t[6].c.e,s(l,i),s(l,a),s(e,r),m&&m.m(e,null),f||(c=re(n,"change",t[93]),f=!0)},p(h,g){var b,C;g[0]&64&&(n.checked=h[6].c.e),g[0]&4&&o!==(o=(((C=(b=h[2].conf)==null?void 0:b.cloud)==null?void 0:C.ams)??"AMS reader cloud")+"")&&E(a,o),h[6].c.e?m?m.p(h,g):(m=qa(h),m.c(),m.m(e,null)):m&&(m.d(1),m=null)},d(h){h&&N(e),m&&m.d(),f=!1,c()}}}function qa(t){let e,l,n,i,o,a,r,f,c,m,_=t[6].c.p==0&&Ea(),d=t[5]&&Da(t);return{c(){e=p("div"),l=p("label"),l.textContent="Protocol",n=v(),i=p("select"),_&&_.c(),o=p("option"),o.textContent="TCP",a=p("option"),a.textContent="HTTP",r=v(),d&&d.c(),f=yt(),u(l,"for","cp"),o.__value=1,j(o,o.__value),a.__value=2,j(a,a.__value),u(i,"name","cp"),u(i,"class","in-s"),t[6].c.p===void 0&&Et(()=>t[94].call(i)),u(e,"class","ml-6")},m(h,g){P(h,e,g),s(e,l),s(e,n),s(e,i),_&&_.m(i,null),s(i,o),s(i,a),ye(i,t[6].c.p,!0),P(h,r,g),d&&d.m(h,g),P(h,f,g),c||(m=re(i,"change",t[94]),c=!0)},p(h,g){h[6].c.p==0?_||(_=Ea(),_.c(),_.m(i,o)):_&&(_.d(1),_=null),g[0]&64&&ye(i,h[6].c.p),h[5]?d?d.p(h,g):(d=Da(h),d.c(),d.m(f.parentNode,f)):d&&(d.d(1),d=null)},d(h){h&&(N(e),N(r),N(f)),_&&_.d(),d&&d.d(h),c=!1,m()}}}function Ea(t){let e;return{c(){e=p("option"),e.textContent="UDP",e.__value=0,j(e,e.__value),u(e,"title","No longer recommended")},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function Da(t){let e,l,n;return{c(){e=p("button"),e.textContent="Connect device to my cloud account",u(e,"type","button"),u(e,"class","text-blue-500 ml-6")},m(i,o){P(i,e,o),l||(n=re(e,"click",t[23]),l=!0)},p:ze,d(i){i&&N(e),l=!1,n()}}}function Aa(t){let e,l,n=t[0].mac+"",i,o,a,r,f=(t[0].meter.id?t[0].meter.id:"missing, required")+"",c,m,_,d,h=t[0].mac&&t[0].meter.id&&La(t);return{c(){e=p("div"),l=M("MAC: "),i=M(n),o=v(),a=p("div"),r=M("Meter ID: "),c=M(f),m=v(),h&&h.c(),_=yt(),u(e,"class","pl-5"),u(a,"class","pl-5")},m(g,b){P(g,e,b),s(e,l),s(e,i),P(g,o,b),P(g,a,b),s(a,r),s(a,c),P(g,m,b),h&&h.m(g,b),P(g,_,b),d=!0},p(g,b){(!d||b[0]&1)&&n!==(n=g[0].mac+"")&&E(i,n),(!d||b[0]&1)&&f!==(f=(g[0].meter.id?g[0].meter.id:"missing, required")+"")&&E(c,f),g[0].mac&&g[0].meter.id?h?(h.p(g,b),b[0]&1&&X(h,1)):(h=La(g),h.c(),X(h,1),h.m(_.parentNode,_)):h&&(rt(),ee(h,1,1,()=>{h=null}),ct())},i(g){d||(X(h),d=!0)},o(g){ee(h),d=!1},d(g){g&&(N(e),N(o),N(a),N(m),N(_)),h&&h.d(g)}}}function La(t){let e,l,n;return l=new T0({props:{value:'{"mac":"'+t[0].mac+'","meter":"'+t[0].meter.id+'"}'}}),{c(){e=p("div"),Ne(l.$$.fragment),u(e,"class","pl-2")},m(i,o){P(i,e,o),Se(l,e,null),n=!0},p(i,o){const a={};o[0]&1&&(a.value='{"mac":"'+i[0].mac+'","meter":"'+i[0].meter.id+'"}'),l.$set(a)},i(i){n||(X(l.$$.fragment,i),n=!0)},o(i){ee(l.$$.fragment,i),n=!1},d(i){i&&N(e),Me(l)}}}function Oa(t){let e,l,n,i,o,a,r,f,c=t[6].c.ze&&Ia(t);return{c(){e=p("div"),l=p("label"),n=p("input"),i=M(" ZmartCharge"),o=v(),c&&c.c(),a=yt(),u(n,"type","checkbox"),u(n,"name","cze"),n.__value="true",j(n,n.__value),u(n,"class","rounded mb-1"),u(e,"class","my-1")},m(m,_){P(m,e,_),s(e,l),s(l,n),n.checked=t[6].c.ze,s(l,i),P(m,o,_),c&&c.m(m,_),P(m,a,_),r||(f=re(n,"change",t[96]),r=!0)},p(m,_){_[0]&64&&(n.checked=m[6].c.ze),m[6].c.ze?c?c.p(m,_):(c=Ia(m),c.c(),c.m(a.parentNode,a)):c&&(c.d(1),c=null)},d(m){m&&(N(e),N(o),N(a)),c&&c.d(m),r=!1,f()}}}function Ia(t){let e,l,n,i;return{c(){e=p("div"),l=p("input"),u(l,"name","czt"),u(l,"type","text"),u(l,"class","in-s"),u(l,"placeholder","ZmartCharge token"),u(e,"class","my-1")},m(o,a){P(o,e,a),s(e,l),j(l,t[6].c.zt),n||(i=re(l,"input",t[97]),n=!0)},p(o,a){a[0]&64&&l.value!==o[6].c.zt&&j(l,o[6].c.zt)},d(o){o&&N(e),n=!1,i()}}}function Ra(t){var H,q,U,Z,V;let e,l,n=(((q=(H=t[2].conf)==null?void 0:H.thresholds)==null?void 0:q.title)??"Thresholds")+"",i,o,a,r,f,c,m,_,d,h,g=(((Z=(U=t[2].conf)==null?void 0:U.thresholds)==null?void 0:Z.avg)??"Average of")+"",b,C,k,A,I,R=(((V=t[2].common)==null?void 0:V.hours)??"hours")+"",T,F,L,z=at({length:9}),G=[];for(let Q=0;Qt[101].call(C)),u(d,"class","w-1/2"),u(m,"class","flex flex-wrap"),u(e,"class","cnt")},m(q,U){P(q,e,U),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(e,c),s(e,m);for(let Z=0;Z20&&Ha(t),d=((A=(k=(C=t[6])==null?void 0:C.i)==null?void 0:k.d)==null?void 0:A.d)>0&&Ga(t),h=t[0].chip=="esp8266"&&Va(t);return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("a"),a.textContent="ⓘ",r=v(),_&&_.c(),f=v(),d&&d.c(),c=v(),h&&h.c(),u(l,"class","text-sm"),u(a,"href",vl("GPIO-configuration")),u(a,"target","_blank"),u(a,"class","float-right"),u(e,"class","cnt")},m(I,R){P(I,e,R),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),_&&_.m(e,null),s(e,f),d&&d.m(e,null),s(e,c),h&&h.m(e,null),m=!0},p(I,R){var T,F,L,z,G;(!m||R[0]&4)&&n!==(n=(((F=(T=I[2].conf)==null?void 0:T.hw)==null?void 0:F.title)??"Hardware")+"")&&E(i,n),I[0].board>20?_?(_.p(I,R),R[0]&1&&X(_,1)):(_=Ha(I),_.c(),X(_,1),_.m(e,f)):_&&(rt(),ee(_,1,1,()=>{_=null}),ct()),((G=(z=(L=I[6])==null?void 0:L.i)==null?void 0:z.d)==null?void 0:G.d)>0?d?d.p(I,R):(d=Ga(I),d.c(),d.m(e,c)):d&&(d.d(1),d=null),I[0].chip=="esp8266"?h?h.p(I,R):(h=Va(I),h.c(),h.m(e,null)):h&&(h.d(1),h=null)},i(I){m||(X(_),m=!0)},o(I){ee(_),m=!1},d(I){I&&N(e),_&&_.d(),d&&d.d(),h&&h.d()}}}function Ha(t){var Bt,Jt,mt,lt,Kt,Qt,Ot,el,tl,Xt,$t,ll,Ve,ot,Mt,It,kt,bt,zt,xe,Rt,he,Ie,He,Gt,Vt,wt,cl,ol,jt,Ht,ul,De;let e,l,n,i,o=(((mt=(Jt=(Bt=t[2].conf)==null?void 0:Bt.hw)==null?void 0:Jt.han)==null?void 0:mt.rx)??"HAN RX")+"",a,r,f,c,m,_,d,h=(((Qt=(Kt=(lt=t[2].conf)==null?void 0:lt.hw)==null?void 0:Kt.han)==null?void 0:Qt.tx)??"HAN TX")+"",g,b,C,k,A,I,R,T,F,L,z=(((tl=(el=(Ot=t[2].conf)==null?void 0:Ot.hw)==null?void 0:el.han)==null?void 0:tl.pullup)??"pullup")+"",G,H,q,U,Z=((($t=(Xt=t[2].conf)==null?void 0:Xt.hw)==null?void 0:$t.ap_btn)??"AP button")+"",V,Q,K,B,y,ie,te=(((ot=(Ve=(ll=t[2].conf)==null?void 0:ll.hw)==null?void 0:Ve.led)==null?void 0:ot.title)??"LED")+"",Y,le,ue,fe,ne,de,oe,_e,se,me,we=(((kt=(It=(Mt=t[2].conf)==null?void 0:Mt.hw)==null?void 0:It.led)==null?void 0:kt.inverted)??"inverted")+"",S,w,O,D=(((xe=(zt=(bt=t[2].conf)==null?void 0:bt.hw)==null?void 0:zt.led)==null?void 0:xe.rgb)??"RGB")+"",W,$,ae,pe,ve=(((Ie=(he=(Rt=t[2].conf)==null?void 0:Rt.hw)==null?void 0:he.led)==null?void 0:Ie.inverted)??"inverted")+"",J,be,ke,Ee,Pe,Ae,Le,qe,Re,Xe,gt,$e,ft=(((Vt=(Gt=(He=t[2].conf)==null?void 0:He.hw)==null?void 0:Gt.led)==null?void 0:Vt.disable)??"LED dis. GPIO")+"",St,pt,ut,it,dt,At=(((cl=(wt=t[2].conf)==null?void 0:wt.hw)==null?void 0:cl.temp)??"Temperature")+"",Ze,Fe,je,et,ge,Te,Ke=(((jt=(ol=t[2].conf)==null?void 0:ol.hw)==null?void 0:jt.temp_analog)??"Analog temp")+"",ce,Ce,Je,Ge,Lt,vt,Ye,qt,st;m=new eo({props:{chip:t[0].chip}}),A=new eo({props:{chip:t[0].chip}});let _t=t[0].chip!="esp8266"&&Wa(t),tt=((De=(ul=(Ht=t[6])==null?void 0:Ht.i)==null?void 0:ul.v)==null?void 0:De.p)>0&&ya(t);return{c(){e=p("input"),l=v(),n=p("div"),i=p("div"),a=M(o),r=p("br"),f=v(),c=p("select"),Ne(m.$$.fragment),_=v(),d=p("div"),g=M(h),b=p("br"),C=v(),k=p("select"),Ne(A.$$.fragment),I=v(),R=p("div"),T=p("label"),F=p("input"),L=v(),G=M(z),H=v(),q=p("div"),U=p("div"),V=M(Z),Q=p("br"),K=v(),B=p("input"),y=v(),ie=p("div"),Y=M(te),le=p("br"),ue=v(),fe=p("div"),ne=p("input"),de=v(),oe=p("div"),_e=p("label"),se=p("input"),me=v(),S=M(we),w=v(),O=p("div"),W=M(D),$=p("label"),ae=p("input"),pe=v(),J=M(ve),be=p("br"),ke=v(),Ee=p("div"),Pe=p("input"),Ae=v(),Le=p("input"),qe=v(),Re=p("input"),Xe=v(),gt=p("div"),$e=p("div"),St=M(ft),pt=v(),ut=p("input"),it=v(),dt=p("div"),Ze=M(At),Fe=p("br"),je=v(),et=p("input"),ge=v(),Te=p("div"),ce=M(Ke),Ce=p("br"),Je=v(),Ge=p("input"),Lt=v(),_t&&_t.c(),vt=v(),tt&&tt.c(),u(e,"type","hidden"),u(e,"name","i"),e.value="true",u(c,"name","ihp"),u(c,"class","in-f w-full"),t[6].i.h.p===void 0&&Et(()=>t[102].call(c)),u(i,"class","w-1/3"),u(k,"name","iht"),u(k,"class","in-l w-full"),t[6].i.h.t===void 0&&Et(()=>t[103].call(k)),u(d,"class","w-1/3"),u(F,"name","ihu"),F.__value="true",j(F,F.__value),u(F,"type","checkbox"),u(F,"class","rounded mb-1"),u(T,"class","ml-2"),u(R,"class","w-1/3"),u(n,"class","flex flex-wrap"),u(B,"name","ia"),u(B,"type","number"),u(B,"min","0"),u(B,"max",t[12]),u(B,"class","in-f tr w-full"),u(U,"class","w-1/3"),u(ne,"name","ilp"),u(ne,"type","number"),u(ne,"min","0"),u(ne,"max",t[12]),u(ne,"class","in-l tr w-full"),u(fe,"class","flex"),u(ie,"class","w-1/3"),u(se,"name","ili"),se.__value="true",j(se,se.__value),u(se,"type","checkbox"),u(se,"class","rounded mb-1"),u(_e,"class","ml-4"),u(oe,"class","w-1/3"),u(ae,"name","iri"),ae.__value="true",j(ae,ae.__value),u(ae,"type","checkbox"),u(ae,"class","rounded mb-1"),u($,"class","ml-4"),u(Pe,"name","irr"),u(Pe,"type","number"),u(Pe,"min","0"),u(Pe,"max",t[12]),u(Pe,"class","in-f tr w-1/3"),u(Le,"name","irg"),u(Le,"type","number"),u(Le,"min","0"),u(Le,"max",t[12]),u(Le,"class","in-m tr w-1/3"),u(Re,"name","irb"),u(Re,"type","number"),u(Re,"min","0"),u(Re,"max",t[12]),u(Re,"class","in-l tr w-1/3"),u(Ee,"class","flex"),u(O,"class","w-full"),u(ut,"name","idd"),u(ut,"type","number"),u(ut,"min","0"),u(ut,"max",t[12]),u(ut,"class","in-s tr"),u($e,"class","my-1 pr-1 w-1/3"),u(gt,"class","w-full"),u(et,"name","itd"),u(et,"type","number"),u(et,"min","0"),u(et,"max",t[12]),u(et,"class","in-f tr w-full"),u(dt,"class","my-1 w-1/3"),u(Ge,"name","ita"),u(Ge,"type","number"),u(Ge,"min","0"),u(Ge,"max",t[12]),u(Ge,"class","in-l tr w-full"),u(Te,"class","my-1 pr-1 w-1/3"),u(q,"class","flex flex-wrap")},m(x,Oe){P(x,e,Oe),P(x,l,Oe),P(x,n,Oe),s(n,i),s(i,a),s(i,r),s(i,f),s(i,c),Se(m,c,null),ye(c,t[6].i.h.p,!0),s(n,_),s(n,d),s(d,g),s(d,b),s(d,C),s(d,k),Se(A,k,null),ye(k,t[6].i.h.t,!0),s(n,I),s(n,R),s(R,T),s(T,F),F.checked=t[6].i.h.u,s(T,L),s(T,G),P(x,H,Oe),P(x,q,Oe),s(q,U),s(U,V),s(U,Q),s(U,K),s(U,B),j(B,t[6].i.a),s(q,y),s(q,ie),s(ie,Y),s(ie,le),s(ie,ue),s(ie,fe),s(fe,ne),j(ne,t[6].i.l.p),s(q,de),s(q,oe),s(oe,_e),s(_e,se),se.checked=t[6].i.l.i,s(_e,me),s(_e,S),s(q,w),s(q,O),s(O,W),s(O,$),s($,ae),ae.checked=t[6].i.r.i,s($,pe),s($,J),s(O,be),s(O,ke),s(O,Ee),s(Ee,Pe),j(Pe,t[6].i.r.r),s(Ee,Ae),s(Ee,Le),j(Le,t[6].i.r.g),s(Ee,qe),s(Ee,Re),j(Re,t[6].i.r.b),s(q,Xe),s(q,gt),s(gt,$e),s($e,St),s($e,pt),s($e,ut),j(ut,t[6].i.d.d),s(q,it),s(q,dt),s(dt,Ze),s(dt,Fe),s(dt,je),s(dt,et),j(et,t[6].i.t.d),s(q,ge),s(q,Te),s(Te,ce),s(Te,Ce),s(Te,Je),s(Te,Ge),j(Ge,t[6].i.t.a),s(q,Lt),_t&&_t.m(q,null),s(q,vt),tt&&tt.m(q,null),Ye=!0,qt||(st=[re(c,"change",t[102]),re(k,"change",t[103]),re(F,"change",t[104]),re(B,"input",t[105]),re(ne,"input",t[106]),re(se,"change",t[107]),re(ae,"change",t[108]),re(Pe,"input",t[109]),re(Le,"input",t[110]),re(Re,"input",t[111]),re(ut,"input",t[112]),re(et,"input",t[113]),re(Ge,"input",t[114])],qt=!0)},p(x,Oe){var al,_l,hl,fl,bl,gl,Pl,Rl,Fl,Bl,Ul,zl,jl,Hl,Wl,yl,Gl,Vl,Kl,Yl,We,ht,Ue,Dt,il,Ql,Xl,Zl,Jl,$l,xl,en,tn;(!Ye||Oe[0]&4)&&o!==(o=(((hl=(_l=(al=x[2].conf)==null?void 0:al.hw)==null?void 0:_l.han)==null?void 0:hl.rx)??"HAN RX")+"")&&E(a,o);const nt={};Oe[0]&1&&(nt.chip=x[0].chip),m.$set(nt),Oe[0]&64&&ye(c,x[6].i.h.p),(!Ye||Oe[0]&4)&&h!==(h=(((gl=(bl=(fl=x[2].conf)==null?void 0:fl.hw)==null?void 0:bl.han)==null?void 0:gl.tx)??"HAN TX")+"")&&E(g,h);const Nt={};Oe[0]&1&&(Nt.chip=x[0].chip),A.$set(Nt),Oe[0]&64&&ye(k,x[6].i.h.t),Oe[0]&64&&(F.checked=x[6].i.h.u),(!Ye||Oe[0]&4)&&z!==(z=(((Fl=(Rl=(Pl=x[2].conf)==null?void 0:Pl.hw)==null?void 0:Rl.han)==null?void 0:Fl.pullup)??"pullup")+"")&&E(G,z),(!Ye||Oe[0]&4)&&Z!==(Z=(((Ul=(Bl=x[2].conf)==null?void 0:Bl.hw)==null?void 0:Ul.ap_btn)??"AP button")+"")&&E(V,Z),(!Ye||Oe[0]&4096)&&u(B,"max",x[12]),Oe[0]&64&&Be(B.value)!==x[6].i.a&&j(B,x[6].i.a),(!Ye||Oe[0]&4)&&te!==(te=(((Hl=(jl=(zl=x[2].conf)==null?void 0:zl.hw)==null?void 0:jl.led)==null?void 0:Hl.title)??"LED")+"")&&E(Y,te),(!Ye||Oe[0]&4096)&&u(ne,"max",x[12]),Oe[0]&64&&Be(ne.value)!==x[6].i.l.p&&j(ne,x[6].i.l.p),Oe[0]&64&&(se.checked=x[6].i.l.i),(!Ye||Oe[0]&4)&&we!==(we=(((Gl=(yl=(Wl=x[2].conf)==null?void 0:Wl.hw)==null?void 0:yl.led)==null?void 0:Gl.inverted)??"inverted")+"")&&E(S,we),(!Ye||Oe[0]&4)&&D!==(D=(((Yl=(Kl=(Vl=x[2].conf)==null?void 0:Vl.hw)==null?void 0:Kl.led)==null?void 0:Yl.rgb)??"RGB")+"")&&E(W,D),Oe[0]&64&&(ae.checked=x[6].i.r.i),(!Ye||Oe[0]&4)&&ve!==(ve=(((Ue=(ht=(We=x[2].conf)==null?void 0:We.hw)==null?void 0:ht.led)==null?void 0:Ue.inverted)??"inverted")+"")&&E(J,ve),(!Ye||Oe[0]&4096)&&u(Pe,"max",x[12]),Oe[0]&64&&Be(Pe.value)!==x[6].i.r.r&&j(Pe,x[6].i.r.r),(!Ye||Oe[0]&4096)&&u(Le,"max",x[12]),Oe[0]&64&&Be(Le.value)!==x[6].i.r.g&&j(Le,x[6].i.r.g),(!Ye||Oe[0]&4096)&&u(Re,"max",x[12]),Oe[0]&64&&Be(Re.value)!==x[6].i.r.b&&j(Re,x[6].i.r.b),(!Ye||Oe[0]&4)&&ft!==(ft=(((Ql=(il=(Dt=x[2].conf)==null?void 0:Dt.hw)==null?void 0:il.led)==null?void 0:Ql.disable)??"LED dis. GPIO")+"")&&E(St,ft),(!Ye||Oe[0]&4096)&&u(ut,"max",x[12]),Oe[0]&64&&Be(ut.value)!==x[6].i.d.d&&j(ut,x[6].i.d.d),(!Ye||Oe[0]&4)&&At!==(At=(((Zl=(Xl=x[2].conf)==null?void 0:Xl.hw)==null?void 0:Zl.temp)??"Temperature")+"")&&E(Ze,At),(!Ye||Oe[0]&4096)&&u(et,"max",x[12]),Oe[0]&64&&Be(et.value)!==x[6].i.t.d&&j(et,x[6].i.t.d),(!Ye||Oe[0]&4)&&Ke!==(Ke=((($l=(Jl=x[2].conf)==null?void 0:Jl.hw)==null?void 0:$l.temp_analog)??"Analog temp")+"")&&E(ce,Ke),(!Ye||Oe[0]&4096)&&u(Ge,"max",x[12]),Oe[0]&64&&Be(Ge.value)!==x[6].i.t.a&&j(Ge,x[6].i.t.a),x[0].chip!="esp8266"?_t?_t.p(x,Oe):(_t=Wa(x),_t.c(),_t.m(q,vt)):_t&&(_t.d(1),_t=null),((tn=(en=(xl=x[6])==null?void 0:xl.i)==null?void 0:en.v)==null?void 0:tn.p)>0?tt?tt.p(x,Oe):(tt=ya(x),tt.c(),tt.m(q,null)):tt&&(tt.d(1),tt=null)},i(x){Ye||(X(m.$$.fragment,x),X(A.$$.fragment,x),Ye=!0)},o(x){ee(m.$$.fragment,x),ee(A.$$.fragment,x),Ye=!1},d(x){x&&(N(e),N(l),N(n),N(H),N(q)),Me(m),Me(A),_t&&_t.d(),tt&&tt.d(),qt=!1,Wt(st)}}}function Wa(t){var c,m,_;let e,l=(((_=(m=(c=t[2].conf)==null?void 0:c.hw)==null?void 0:m.vcc)==null?void 0:_.title)??"Vcc")+"",n,i,o,a,r,f;return{c(){e=p("div"),n=M(l),i=p("br"),o=v(),a=p("input"),u(a,"name","ivp"),u(a,"type","number"),u(a,"min","0"),u(a,"max",t[12]),u(a,"class","in-s tr w-full"),u(e,"class","my-1 pl-1 w-1/3")},m(d,h){P(d,e,h),s(e,n),s(e,i),s(e,o),s(e,a),j(a,t[6].i.v.p),r||(f=re(a,"input",t[115]),r=!0)},p(d,h){var g,b,C;h[0]&4&&l!==(l=(((C=(b=(g=d[2].conf)==null?void 0:g.hw)==null?void 0:b.vcc)==null?void 0:C.title)??"Vcc")+"")&&E(n,l),h[0]&4096&&u(a,"max",d[12]),h[0]&64&&Be(a.value)!==d[6].i.v.p&&j(a,d[6].i.v.p)},d(d){d&&N(e),r=!1,f()}}}function ya(t){var g,b,C;let e,l=(((C=(b=(g=t[2].conf)==null?void 0:g.hw)==null?void 0:b.vcc)==null?void 0:C.divider)??"Voltage divider")+"",n,i,o,a,r,f,c,m,_,d,h;return{c(){var k,A,I,R,T,F;e=p("div"),n=M(l),i=p("br"),o=v(),a=p("div"),r=p("input"),c=v(),m=p("input"),u(r,"name","ivdv"),u(r,"type","number"),u(r,"min","0"),u(r,"max","65535"),u(r,"class","in-f tr w-full"),u(r,"placeholder",f=((I=(A=(k=t[2].conf)==null?void 0:k.hw)==null?void 0:A.vcc)==null?void 0:I.div_vcc)??"VCC"),u(m,"name","ivdg"),u(m,"type","number"),u(m,"min","0"),u(m,"max","65535"),u(m,"class","in-l tr w-full"),u(m,"placeholder",_=((F=(T=(R=t[2].conf)==null?void 0:R.hw)==null?void 0:T.vcc)==null?void 0:F.div_gnd)??"GND"),u(a,"class","flex"),u(e,"class","my-1")},m(k,A){P(k,e,A),s(e,n),s(e,i),s(e,o),s(e,a),s(a,r),j(r,t[6].i.v.d.v),s(a,c),s(a,m),j(m,t[6].i.v.d.g),d||(h=[re(r,"input",t[116]),re(m,"input",t[117])],d=!0)},p(k,A){var I,R,T,F,L,z,G,H,q;A[0]&4&&l!==(l=(((T=(R=(I=k[2].conf)==null?void 0:I.hw)==null?void 0:R.vcc)==null?void 0:T.divider)??"Voltage divider")+"")&&E(n,l),A[0]&4&&f!==(f=((z=(L=(F=k[2].conf)==null?void 0:F.hw)==null?void 0:L.vcc)==null?void 0:z.div_vcc)??"VCC")&&u(r,"placeholder",f),A[0]&64&&Be(r.value)!==k[6].i.v.d.v&&j(r,k[6].i.v.d.v),A[0]&4&&_!==(_=((q=(H=(G=k[2].conf)==null?void 0:G.hw)==null?void 0:H.vcc)==null?void 0:q.div_gnd)??"GND")&&u(m,"placeholder",_),A[0]&64&&Be(m.value)!==k[6].i.v.d.g&&j(m,k[6].i.v.d.g)},d(k){k&&N(e),d=!1,Wt(h)}}}function Ga(t){var g,b,C,k,A,I,R,T,F,L,z,G;let e,l=(((k=(C=(b=(g=t[2].conf)==null?void 0:g.hw)==null?void 0:b.led)==null?void 0:C.behaviour)==null?void 0:k.title)??"LED behaviour")+"",n,i,o,a,r=(((T=(R=(I=(A=t[2].conf)==null?void 0:A.hw)==null?void 0:I.led)==null?void 0:R.behaviour)==null?void 0:T.enabled)??"Enabled")+"",f,c,m=(((G=(z=(L=(F=t[2].conf)==null?void 0:F.hw)==null?void 0:L.led)==null?void 0:z.behaviour)==null?void 0:G.disabled)??"Disabled")+"",_,d,h;return{c(){e=p("div"),n=M(l),i=v(),o=p("select"),a=p("option"),f=M(r),c=p("option"),_=M(m),a.__value=0,j(a,a.__value),c.__value=1,j(c,c.__value),u(o,"name","idb"),u(o,"class","in-s"),t[6].i.d.b===void 0&&Et(()=>t[118].call(o)),u(e,"class","my-1 w-full")},m(H,q){P(H,e,q),s(e,n),s(e,i),s(e,o),s(o,a),s(a,f),s(o,c),s(c,_),ye(o,t[6].i.d.b,!0),d||(h=re(o,"change",t[118]),d=!0)},p(H,q){var U,Z,V,Q,K,B,y,ie,te,Y,le,ue;q[0]&4&&l!==(l=(((Q=(V=(Z=(U=H[2].conf)==null?void 0:U.hw)==null?void 0:Z.led)==null?void 0:V.behaviour)==null?void 0:Q.title)??"LED behaviour")+"")&&E(n,l),q[0]&4&&r!==(r=(((ie=(y=(B=(K=H[2].conf)==null?void 0:K.hw)==null?void 0:B.led)==null?void 0:y.behaviour)==null?void 0:ie.enabled)??"Enabled")+"")&&E(f,r),q[0]&4&&m!==(m=(((ue=(le=(Y=(te=H[2].conf)==null?void 0:te.hw)==null?void 0:Y.led)==null?void 0:le.behaviour)==null?void 0:ue.disabled)??"Disabled")+"")&&E(_,m),q[0]&64&&ye(o,H[6].i.d.b)},d(H){H&&N(e),d=!1,h()}}}function Va(t){var T,F,L,z,G,H;let e,l,n,i,o=(((L=(F=(T=t[2].conf)==null?void 0:T.hw)==null?void 0:F.vcc)==null?void 0:L.offset)??"Vcc offset")+"",a,r,f,c,m,_,d=(((H=(G=(z=t[2].conf)==null?void 0:z.hw)==null?void 0:G.vcc)==null?void 0:H.multiplier)??"Multiplier")+"",h,g,b,C,k,A,I,R=(t[0].board==2||t[0].board==100)&&Ka(t);return{c(){e=p("input"),l=v(),n=p("div"),i=p("div"),a=M(o),r=p("br"),f=v(),c=p("input"),m=v(),_=p("div"),h=M(d),g=p("br"),b=v(),C=p("input"),k=v(),R&&R.c(),u(e,"type","hidden"),u(e,"name","iv"),e.value="true",u(c,"name","ivo"),u(c,"type","number"),u(c,"min","0.0"),u(c,"max","3.5"),u(c,"step","0.01"),u(c,"class","in-f tr w-full"),u(i,"class","w-1/3"),u(C,"name","ivm"),u(C,"type","number"),u(C,"min","0.1"),u(C,"max","10"),u(C,"step","0.01"),u(C,"class","in-l tr w-full"),u(_,"class","w-1/3 pr-1"),u(n,"class","my-1 flex flex-wrap")},m(q,U){P(q,e,U),P(q,l,U),P(q,n,U),s(n,i),s(i,a),s(i,r),s(i,f),s(i,c),j(c,t[6].i.v.o),s(n,m),s(n,_),s(_,h),s(_,g),s(_,b),s(_,C),j(C,t[6].i.v.m),s(n,k),R&&R.m(n,null),A||(I=[re(c,"input",t[119]),re(C,"input",t[120])],A=!0)},p(q,U){var Z,V,Q,K,B,y;U[0]&4&&o!==(o=(((Q=(V=(Z=q[2].conf)==null?void 0:Z.hw)==null?void 0:V.vcc)==null?void 0:Q.offset)??"Vcc offset")+"")&&E(a,o),U[0]&64&&Be(c.value)!==q[6].i.v.o&&j(c,q[6].i.v.o),U[0]&4&&d!==(d=(((y=(B=(K=q[2].conf)==null?void 0:K.hw)==null?void 0:B.vcc)==null?void 0:y.multiplier)??"Multiplier")+"")&&E(h,d),U[0]&64&&Be(C.value)!==q[6].i.v.m&&j(C,q[6].i.v.m),q[0].board==2||q[0].board==100?R?R.p(q,U):(R=Ka(q),R.c(),R.m(n,null)):R&&(R.d(1),R=null)},d(q){q&&(N(e),N(l),N(n)),R&&R.d(),A=!1,Wt(I)}}}function Ka(t){var c,m,_;let e,l=(((_=(m=(c=t[2].conf)==null?void 0:c.hw)==null?void 0:m.vcc)==null?void 0:_.boot)??"Boot limit")+"",n,i,o,a,r,f;return{c(){e=p("div"),n=M(l),i=p("br"),o=v(),a=p("input"),u(a,"name","ivb"),u(a,"type","number"),u(a,"min","2.5"),u(a,"max","3.5"),u(a,"step","0.1"),u(a,"class","in-s tr w-full"),u(e,"class","w-1/3 pl-1")},m(d,h){P(d,e,h),s(e,n),s(e,i),s(e,o),s(e,a),j(a,t[6].i.v.b),r||(f=re(a,"input",t[121]),r=!0)},p(d,h){var g,b,C;h[0]&4&&l!==(l=(((C=(b=(g=d[2].conf)==null?void 0:g.hw)==null?void 0:b.vcc)==null?void 0:C.boot)??"Boot limit")+"")&&E(n,l),h[0]&64&&Be(a.value)!==d[6].i.v.b&&j(a,d[6].i.v.b)},d(d){d&&N(e),r=!1,f()}}}function Ya(t){var R,T,F,L,z,G;let e,l,n=(((T=(R=t[2].conf)==null?void 0:R.debug)==null?void 0:T.title)??"Debugging")+"",i,o,a,r,f,c,m,_,d,h,g=(((L=(F=t[2].conf)==null?void 0:F.debug)==null?void 0:L.enable)??"Enable debugging")+"",b,C,k,A,I=((G=(z=t[6])==null?void 0:z.d)==null?void 0:G.s)&&Qa(t);return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("a"),a.textContent="ⓘ",r=v(),f=p("input"),c=v(),m=p("div"),_=p("label"),d=p("input"),h=v(),b=M(g),C=v(),I&&I.c(),u(l,"class","text-sm"),u(a,"href","https://amsleser.no/blog/post/24-telnet-debug"),u(a,"target","_blank"),u(a,"class","float-right"),u(f,"type","hidden"),u(f,"name","d"),f.value="true",u(d,"type","checkbox"),u(d,"name","ds"),d.__value="true",j(d,d.__value),u(d,"class","rounded mb-1"),u(m,"class","mt-3"),u(e,"class","cnt")},m(H,q){P(H,e,q),s(e,l),s(l,i),s(e,o),s(e,a),s(e,r),s(e,f),s(e,c),s(e,m),s(m,_),s(_,d),d.checked=t[6].d.s,s(_,h),s(_,b),s(e,C),I&&I.m(e,null),k||(A=re(d,"change",t[122]),k=!0)},p(H,q){var U,Z,V,Q,K,B;q[0]&4&&n!==(n=(((Z=(U=H[2].conf)==null?void 0:U.debug)==null?void 0:Z.title)??"Debugging")+"")&&E(i,n),q[0]&64&&(d.checked=H[6].d.s),q[0]&4&&g!==(g=(((Q=(V=H[2].conf)==null?void 0:V.debug)==null?void 0:Q.enable)??"Enable debugging")+"")&&E(b,g),(B=(K=H[6])==null?void 0:K.d)!=null&&B.s?I?I.p(H,q):(I=Qa(H),I.c(),I.m(e,null)):I&&(I.d(1),I=null)},d(H){H&&N(e),I&&I.d(),k=!1,A()}}}function Qa(t){var F,L,z,G;let e,l=(((L=(F=t[2].conf)==null?void 0:F.debug)==null?void 0:L.danger)??"Disable when done")+"",n,i,o,a,r,f,c=(((G=(z=t[2].conf)==null?void 0:z.debug)==null?void 0:G.telnet)??"Enable telnet")+"",m,_,d,h,g,b,C,k,A,I,R,T=t[6].d.t&&Xa(t);return{c(){e=p("div"),n=M(l),i=v(),o=p("div"),a=p("label"),r=p("input"),f=v(),m=M(c),_=v(),T&&T.c(),d=v(),h=p("div"),g=p("select"),b=p("option"),b.textContent="Verbose",C=p("option"),C.textContent="Debug",k=p("option"),k.textContent="Info",A=p("option"),A.textContent="Warning",u(e,"class","bd-red"),u(r,"type","checkbox"),u(r,"name","dt"),r.__value="true",j(r,r.__value),u(r,"class","rounded mb-1"),u(o,"class","my-1"),b.__value=1,j(b,b.__value),C.__value=2,j(C,C.__value),k.__value=3,j(k,k.__value),A.__value=4,j(A,A.__value),u(g,"name","dl"),u(g,"class","in-s"),t[6].d.l===void 0&&Et(()=>t[124].call(g)),u(h,"class","my-1")},m(H,q){P(H,e,q),s(e,n),P(H,i,q),P(H,o,q),s(o,a),s(a,r),r.checked=t[6].d.t,s(a,f),s(a,m),P(H,_,q),T&&T.m(H,q),P(H,d,q),P(H,h,q),s(h,g),s(g,b),s(g,C),s(g,k),s(g,A),ye(g,t[6].d.l,!0),I||(R=[re(r,"change",t[123]),re(g,"change",t[124])],I=!0)},p(H,q){var U,Z,V,Q;q[0]&4&&l!==(l=(((Z=(U=H[2].conf)==null?void 0:U.debug)==null?void 0:Z.danger)??"Disable when done")+"")&&E(n,l),q[0]&64&&(r.checked=H[6].d.t),q[0]&4&&c!==(c=(((Q=(V=H[2].conf)==null?void 0:V.debug)==null?void 0:Q.telnet)??"Enable telnet")+"")&&E(m,c),H[6].d.t?T?T.p(H,q):(T=Xa(H),T.c(),T.m(d.parentNode,d)):T&&(T.d(1),T=null),q[0]&64&&ye(g,H[6].d.l)},d(H){H&&(N(e),N(i),N(o),N(_),N(d),N(h)),T&&T.d(H),I=!1,Wt(R)}}}function Xa(t){var i,o;let e,l=(((o=(i=t[2].conf)==null?void 0:i.debug)==null?void 0:o.telnet_danger)??"Disable when done")+"",n;return{c(){e=p("div"),n=M(l),u(e,"class","bd-red")},m(a,r){P(a,e,r),s(e,n)},p(a,r){var f,c;r[0]&4&&l!==(l=(((c=(f=a[2].conf)==null?void 0:f.debug)==null?void 0:c.telnet_danger)??"Disable when done")+"")&&E(n,l)},d(a){a&&N(e)}}}function Za(t){var d,h;let e,l,n=(((d=t[2].conf)==null?void 0:d.btn_reset)??"Factory reset")+"",i,o,a,r,f=(((h=t[2].btn)==null?void 0:h.reboot)??"Reboot")+"",c,m,_;return{c(){e=p("div"),l=p("button"),i=M(n),o=v(),a=p("div"),r=p("button"),c=M(f),u(l,"type","button"),u(l,"class","btn-red"),u(r,"type","button"),u(r,"class","btn-yellow"),u(a,"class","text-center")},m(g,b){P(g,e,b),s(e,l),s(l,i),P(g,o,b),P(g,a,b),s(a,r),s(r,c),m||(_=[re(l,"click",t[14]),re(r,"click",t[16])],m=!0)},p(g,b){var C,k;b[0]&4&&n!==(n=(((C=g[2].conf)==null?void 0:C.btn_reset)??"Factory reset")+"")&&E(i,n),b[0]&4&&f!==(f=(((k=g[2].btn)==null?void 0:k.reboot)??"Reboot")+"")&&E(c,f)},d(g){g&&(N(e),N(o),N(a)),m=!1,Wt(_)}}}function Ja(t){var o;let e,l,n=(((o=t[2].btn)==null?void 0:o.save)??"Save")+"",i;return{c(){e=p("div"),l=p("button"),i=M(n),u(l,"type","submit"),u(l,"class","btn-pri"),u(e,"class","text-right")},m(a,r){P(a,e,r),s(e,l),s(l,i)},p(a,r){var f;r[0]&4&&n!==(n=(((f=a[2].btn)==null?void 0:f.save)??"Save")+"")&&E(i,n)},d(a){a&&N(e)}}}function J0(t){var _e,se,me,we,S,w,O,D,W,$,ae,pe,ve,J,be,ke,Ee,Pe,Ae,Le,qe,Re,Xe,gt,$e,ft,St,pt,ut,it,dt,At,Ze,Fe,je,et,ge,Te,Ke;let e,l,n,i,o,a,r,f,c,m,_=((me=(se=(_e=t[6])==null?void 0:_e.p)==null?void 0:se.r)==null?void 0:me.startsWith("NO"))||((w=(S=(we=t[6])==null?void 0:we.p)==null?void 0:S.r)==null?void 0:w.startsWith("10YNO"))||((W=(D=(O=t[6])==null?void 0:O.p)==null?void 0:D.r)==null?void 0:W.startsWith("10Y1001A1001A4")),d,h,g,b=(($=t[6])==null?void 0:$.d)&&((pe=(ae=t[0])==null?void 0:ae.features)==null?void 0:pe.includes("rdebug")),C,k,A,I,R,T,F,L,z,G,H,q,U,Z,V=((ve=t[6])==null?void 0:ve.g)&&ia(t),Q=((J=t[6])==null?void 0:J.m)&&fa(t),K=((be=t[6])==null?void 0:be.w)&&ma(t),B=((ke=t[6])==null?void 0:ke.n)&&ga(t),y=((Ee=t[6])==null?void 0:Ee.q)&&wa(t),ie=((Ae=(Pe=t[6])==null?void 0:Pe.q)==null?void 0:Ae.m)==3&&Ma(t),te=((qe=(Le=t[6])==null?void 0:Le.q)==null?void 0:qe.m)==4&&Na(t),Y=((Re=t[6])==null?void 0:Re.c)&&Pa(t),le=_&&Ra(t),ue=((Xe=t[6])==null?void 0:Xe.u)&&Ba(t),fe=(($e=(gt=t[6])==null?void 0:gt.i)==null?void 0:$e.h)&&(((ft=t[0])==null?void 0:ft.board)>20||((St=t[0])==null?void 0:St.chip)=="esp8266"||((it=(ut=(pt=t[6])==null?void 0:pt.i)==null?void 0:ut.d)==null?void 0:it.d)>0)&&ja(t),ne=b&&Ya(t),de=((dt=t[1])==null?void 0:dt.a)&&Za(t),oe=t[6]&&Ja(t);return R=new pl({props:{active:t[3],message:((Ze=(At=t[2].conf)==null?void 0:At.mask)==null?void 0:Ze.loading)??"Loading"}}),F=new pl({props:{active:t[4],message:((je=(Fe=t[2].conf)==null?void 0:Fe.mask)==null?void 0:je.saving)??"Saving"}}),z=new pl({props:{active:t[10],message:((ge=(et=t[2].conf)==null?void 0:et.mask)==null?void 0:ge.reset)??"Factory reset"}}),H=new pl({props:{active:t[11],message:((Ke=(Te=t[2].conf)==null?void 0:Te.mask)==null?void 0:Ke.reset_done)??"Done"}}),{c(){e=p("form"),l=p("div"),V&&V.c(),n=v(),Q&&Q.c(),i=v(),K&&K.c(),o=v(),B&&B.c(),a=v(),y&&y.c(),r=v(),ie&&ie.c(),f=v(),te&&te.c(),c=v(),Y&&Y.c(),m=v(),le&&le.c(),d=v(),ue&&ue.c(),h=v(),fe&&fe.c(),g=v(),ne&&ne.c(),C=v(),k=p("div"),de&&de.c(),A=v(),oe&&oe.c(),I=v(),Ne(R.$$.fragment),T=v(),Ne(F.$$.fragment),L=v(),Ne(z.$$.fragment),G=v(),Ne(H.$$.fragment),u(l,"class","grid xl:grid-cols-4 lg:grid-cols-2 md:grid-cols-2"),u(k,"class","grid grid-cols-3 mt-3"),u(e,"autocomplete","off")},m(ce,Ce){P(ce,e,Ce),s(e,l),V&&V.m(l,null),s(l,n),Q&&Q.m(l,null),s(l,i),K&&K.m(l,null),s(l,o),B&&B.m(l,null),s(l,a),y&&y.m(l,null),s(l,r),ie&&ie.m(l,null),s(l,f),te&&te.m(l,null),s(l,c),Y&&Y.m(l,null),s(l,m),le&&le.m(l,null),s(l,d),ue&&ue.m(l,null),s(l,h),fe&&fe.m(l,null),s(l,g),ne&&ne.m(l,null),s(e,C),s(e,k),de&&de.m(k,null),s(k,A),oe&&oe.m(k,null),P(ce,I,Ce),Se(R,ce,Ce),P(ce,T,Ce),Se(F,ce,Ce),P(ce,L,Ce),Se(z,ce,Ce),P(ce,G,Ce),Se(H,ce,Ce),q=!0,U||(Z=re(e,"submit",mn(t[15])),U=!0)},p(ce,Ce){var Ye,qt,st,_t,tt,Bt,Jt,mt,lt,Kt,Qt,Ot,el,tl,Xt,$t,ll,Ve,ot,Mt,It,kt,bt,zt,xe,Rt,he,Ie,He,Gt,Vt,wt,cl,ol,jt,Ht,ul,De,x;(Ye=ce[6])!=null&&Ye.g?V?(V.p(ce,Ce),Ce[0]&64&&X(V,1)):(V=ia(ce),V.c(),X(V,1),V.m(l,n)):V&&(rt(),ee(V,1,1,()=>{V=null}),ct()),(qt=ce[6])!=null&&qt.m?Q?Q.p(ce,Ce):(Q=fa(ce),Q.c(),Q.m(l,i)):Q&&(Q.d(1),Q=null),(st=ce[6])!=null&&st.w?K?K.p(ce,Ce):(K=ma(ce),K.c(),K.m(l,o)):K&&(K.d(1),K=null),(_t=ce[6])!=null&&_t.n?B?(B.p(ce,Ce),Ce[0]&64&&X(B,1)):(B=ga(ce),B.c(),X(B,1),B.m(l,a)):B&&(rt(),ee(B,1,1,()=>{B=null}),ct()),(tt=ce[6])!=null&&tt.q?y?(y.p(ce,Ce),Ce[0]&64&&X(y,1)):(y=wa(ce),y.c(),X(y,1),y.m(l,r)):y&&(rt(),ee(y,1,1,()=>{y=null}),ct()),((Jt=(Bt=ce[6])==null?void 0:Bt.q)==null?void 0:Jt.m)==3?ie?ie.p(ce,Ce):(ie=Ma(ce),ie.c(),ie.m(l,f)):ie&&(ie.d(1),ie=null),((lt=(mt=ce[6])==null?void 0:mt.q)==null?void 0:lt.m)==4?te?te.p(ce,Ce):(te=Na(ce),te.c(),te.m(l,c)):te&&(te.d(1),te=null),(Kt=ce[6])!=null&&Kt.c?Y?(Y.p(ce,Ce),Ce[0]&64&&X(Y,1)):(Y=Pa(ce),Y.c(),X(Y,1),Y.m(l,m)):Y&&(rt(),ee(Y,1,1,()=>{Y=null}),ct()),Ce[0]&64&&(_=((el=(Ot=(Qt=ce[6])==null?void 0:Qt.p)==null?void 0:Ot.r)==null?void 0:el.startsWith("NO"))||(($t=(Xt=(tl=ce[6])==null?void 0:tl.p)==null?void 0:Xt.r)==null?void 0:$t.startsWith("10YNO"))||((ot=(Ve=(ll=ce[6])==null?void 0:ll.p)==null?void 0:Ve.r)==null?void 0:ot.startsWith("10Y1001A1001A4"))),_?le?le.p(ce,Ce):(le=Ra(ce),le.c(),le.m(l,d)):le&&(le.d(1),le=null),(Mt=ce[6])!=null&&Mt.u?ue?ue.p(ce,Ce):(ue=Ba(ce),ue.c(),ue.m(l,h)):ue&&(ue.d(1),ue=null),(kt=(It=ce[6])==null?void 0:It.i)!=null&&kt.h&&(((bt=ce[0])==null?void 0:bt.board)>20||((zt=ce[0])==null?void 0:zt.chip)=="esp8266"||((he=(Rt=(xe=ce[6])==null?void 0:xe.i)==null?void 0:Rt.d)==null?void 0:he.d)>0)?fe?(fe.p(ce,Ce),Ce[0]&65&&X(fe,1)):(fe=ja(ce),fe.c(),X(fe,1),fe.m(l,g)):fe&&(rt(),ee(fe,1,1,()=>{fe=null}),ct()),Ce[0]&65&&(b=((Ie=ce[6])==null?void 0:Ie.d)&&((Gt=(He=ce[0])==null?void 0:He.features)==null?void 0:Gt.includes("rdebug"))),b?ne?ne.p(ce,Ce):(ne=Ya(ce),ne.c(),ne.m(l,null)):ne&&(ne.d(1),ne=null),(Vt=ce[1])!=null&&Vt.a?de?de.p(ce,Ce):(de=Za(ce),de.c(),de.m(k,A)):de&&(de.d(1),de=null),ce[6]?oe?oe.p(ce,Ce):(oe=Ja(ce),oe.c(),oe.m(k,null)):oe&&(oe.d(1),oe=null);const Je={};Ce[0]&8&&(Je.active=ce[3]),Ce[0]&4&&(Je.message=((cl=(wt=ce[2].conf)==null?void 0:wt.mask)==null?void 0:cl.loading)??"Loading"),R.$set(Je);const Ge={};Ce[0]&16&&(Ge.active=ce[4]),Ce[0]&4&&(Ge.message=((jt=(ol=ce[2].conf)==null?void 0:ol.mask)==null?void 0:jt.saving)??"Saving"),F.$set(Ge);const Lt={};Ce[0]&1024&&(Lt.active=ce[10]),Ce[0]&4&&(Lt.message=((ul=(Ht=ce[2].conf)==null?void 0:Ht.mask)==null?void 0:ul.reset)??"Factory reset"),z.$set(Lt);const vt={};Ce[0]&2048&&(vt.active=ce[11]),Ce[0]&4&&(vt.message=((x=(De=ce[2].conf)==null?void 0:De.mask)==null?void 0:x.reset_done)??"Done"),H.$set(vt)},i(ce){q||(X(V),X(B),X(y),X(Y),X(fe),X(R.$$.fragment,ce),X(F.$$.fragment,ce),X(z.$$.fragment,ce),X(H.$$.fragment,ce),q=!0)},o(ce){ee(V),ee(B),ee(y),ee(Y),ee(fe),ee(R.$$.fragment,ce),ee(F.$$.fragment,ce),ee(z.$$.fragment,ce),ee(H.$$.fragment,ce),q=!1},d(ce){ce&&(N(e),N(I),N(T),N(L),N(G)),V&&V.d(),Q&&Q.d(),K&&K.d(),B&&B.d(),y&&y.d(),ie&&ie.d(),te&&te.d(),Y&&Y.d(),le&&le.d(),ue&&ue.d(),fe&&fe.d(),ne&&ne.d(),de&&de.d(),oe&&oe.d(),Me(R,ce),Me(F,ce),Me(z,ce),Me(H,ce),U=!1,Z()}}}async function $0(){await(await fetch("reboot",{method:"POST"})).json()}function x0(t,e,l){let{basepath:n="/"}=e,{sysinfo:i={}}=e,{data:o}=e,a={};Nl.subscribe(nt=>{l(2,a=nt)});let r=[{name:"Import gauge",key:"i"},{name:"Export gauge",key:"e"},{name:"Voltage",key:"v"},{name:"Amperage",key:"a"},{name:"Per phase",key:"h"},{name:"Power factor",key:"f"},{name:"Reactive",key:"r"},{name:"Realtime",key:"c"},{name:"Peaks",key:"t"},{name:"Realtime plot",key:"l"},{name:"Price",key:"p"},{name:"Day plot",key:"d"},{name:"Month plot",key:"m"},{name:"Temperature plot",key:"s"},{name:"Dark mode",key:"k"}],f=!0,c=!1,m=!1,_,d=[];Xn.subscribe(nt=>{var Nt,al,_l;nt.version&&(l(5,m=(Nt=nt==null?void 0:nt.c)==null?void 0:Nt.e),l(6,_=nt),l(3,f=!1),l(7,d=[{code:"en",name:"English"}]),(al=_==null?void 0:_.u)!=null&&al.lang&&_.u.lang!="en"&&d.push({code:_.u.lang,name:((_l=a.language)==null?void 0:_l.name)??"Unknown"}),d.push({code:"hub",name:"Load from server"}))}),c0();let h=!0,g={};co.subscribe(nt=>{var Nt;l(8,h=!0);for(let al=0;al(fl.hostname=Nt.get("gh"),fl.usrcfg=hl.success,fl.booting=hl.reboot,Nt.get("nm")=="static"&&(fl.net.ip=Nt.get("ni"),fl.net.mask=Nt.get("nu"),fl.net.gw=Nt.get("ng"),fl.net.dns1=Nt.get("nd")),fl.ui=_.u,fl)),l(4,c=!1),nn(n)}const I=function(){confirm("Reboot?")&&(dl.update(nt=>(nt.booting=!0,nt)),$0())};async function R(){confirm("Are you sure you want to delete CA?")&&(await(await fetch("mqtt-ca",{method:"POST"})).text(),Xn.update(Nt=>(Nt.q.s.c=!1,Nt)))}async function T(){confirm("Are you sure you want to delete cert?")&&(await(await fetch("mqtt-cert",{method:"POST"})).text(),Xn.update(Nt=>(Nt.q.s.r=!1,Nt)))}async function F(){confirm("Are you sure you want to delete key?")&&(await(await fetch("mqtt-key",{method:"POST"})).text(),Xn.update(Nt=>(Nt.q.s.k=!1,Nt)))}const L=function(){_.q.s.e?_.q.p==1883&&l(6,_.q.p=8883,_):_.q.p==8883&&l(6,_.q.p=1883,_)};async function z(){if(_.u.lang=="hub"){const nt=await wl("http://hub.amsleser.no/hub/language/list.json");l(7,d=await nt.json()),l(6,_.u.lang=a.language.code,_)}}async function G(){l(6,_.p.e=!0,_)}let H=44;async function q(){const nt=await wl("cloudkey.json");if(nt.status==200){let Nt=await nt.json();window.open("https://www.amsleser.cloud/device/"+Nt.seed)}else alert("Not able to bind to cloud")}const U=window||global;U.bindToCloud=function(){console.log("BIND CALLED")};function Z(){_.g.h=this.value,l(6,_)}function V(){_.g.t=Yt(this),l(6,_)}function Q(){_.p.r=Yt(this),l(6,_)}function K(){_.p.m=Yt(this),l(6,_)}function B(){_.p.c=Yt(this),l(6,_)}function y(){_.p.e=this.checked,l(6,_)}function ie(){_.p.t=this.value,l(6,_)}function te(){_.g.s=Yt(this),l(6,_)}function Y(){_.g.u=this.value,l(6,_)}function le(){_.g.p=this.value,l(6,_)}function ue(){_.g.c=this.value,l(6,_)}function fe(){_.m.a=Yt(this),l(6,_)}function ne(){_.m.b=Be(this.value),l(6,_)}function de(){_.m.i=this.checked,l(6,_)}function oe(){_.m.b=Yt(this),l(6,_)}function _e(){_.m.p=Yt(this),l(6,_)}function se(){_.m.s=Be(this.value),l(6,_)}function me(){_.m.d=Yt(this),l(6,_)}function we(){_.m.f=Be(this.value),l(6,_)}function S(){_.m.r=Be(this.value),l(6,_)}function w(){_.m.e.e=this.checked,l(6,_)}function O(){_.m.e.k=this.value,l(6,_)}function D(){_.m.e.a=this.value,l(6,_)}function W(){_.m.m.e=this.checked,l(6,_)}function $(){_.m.m.w=Be(this.value),l(6,_)}function ae(){_.m.m.v=Be(this.value),l(6,_)}function pe(){_.m.m.a=Be(this.value),l(6,_)}function ve(){_.m.m.c=Be(this.value),l(6,_)}function J(){_.n.c=Yt(this),l(6,_)}function be(){h=this.checked,l(8,h)}function ke(){_.w.s=this.value,l(6,_)}function Ee(){_.w.s=Yt(this),l(6,_)}function Pe(){_.w.p=this.value,l(6,_)}function Ae(){_.w.z=Yt(this),l(6,_)}function Le(){_.w.w=Be(this.value),l(6,_)}function qe(){_.w.b=this.checked,l(6,_)}function Re(){_.n.m=Yt(this),l(6,_)}function Xe(){_.n.i=this.value,l(6,_)}function gt(){_.n.s=Yt(this),l(6,_)}function $e(){_.n.g=this.value,l(6,_)}function ft(){_.n.d1=this.value,l(6,_)}function St(){_.n.d2=this.value,l(6,_)}function pt(){_.n.x=this.checked,l(6,_)}function ut(){_.n.d=this.checked,l(6,_)}function it(){_.n.h=this.checked,l(6,_)}function dt(){_.n.n1=this.value,l(6,_)}function At(){_.q.s.e=this.checked,l(6,_)}function Ze(){_.q.h=this.value,l(6,_)}function Fe(){_.q.p=Be(this.value),l(6,_)}function je(){_.q.u=this.value,l(6,_)}function et(){_.q.a=this.value,l(6,_)}function ge(){_.q.c=this.value,l(6,_)}function Te(){_.q.m=Yt(this),l(6,_)}function Ke(){_.q.b=this.value,l(6,_)}function ce(){_.q.r=this.value,l(6,_)}function Ce(){_.q.t=Yt(this),l(6,_)}function Je(){_.q.d=Be(this.value),l(6,_)}function Ge(){_.q.i=Be(this.value),l(6,_)}function Lt(){_.q.k=Be(this.value),l(6,_)}function vt(){_.q.e=Be(this.value),l(6,_)}function Ye(){_.o.e=this.value,l(6,_)}function qt(){_.o.c=this.value,l(6,_)}function st(){_.o.u1=this.value,l(6,_)}function _t(){_.o.u2=this.value,l(6,_)}function tt(){_.o.u3=this.value,l(6,_)}function Bt(){_.h.t=this.value,l(6,_)}function Jt(){_.h.h=this.value,l(6,_)}function mt(){_.h.n=this.value,l(6,_)}function lt(){_.c.e=this.checked,l(6,_)}function Kt(){_.c.p=Yt(this),l(6,_)}function Qt(){_.c.es=this.checked,l(6,_)}function Ot(){_.c.ze=this.checked,l(6,_)}function el(){_.c.zt=this.value,l(6,_)}function tl(nt){_.t.t[nt]=Be(this.value),l(6,_)}function Xt(){_.t.h=Be(this.value),l(6,_)}function $t(nt){_.u[nt.key]=Yt(this),l(6,_)}function ll(){_.u.lang=Yt(this),l(6,_)}function Ve(){_.i.h.p=Yt(this),l(6,_)}function ot(){_.i.h.t=Yt(this),l(6,_)}function Mt(){_.i.h.u=this.checked,l(6,_)}function It(){_.i.a=Be(this.value),l(6,_)}function kt(){_.i.l.p=Be(this.value),l(6,_)}function bt(){_.i.l.i=this.checked,l(6,_)}function zt(){_.i.r.i=this.checked,l(6,_)}function xe(){_.i.r.r=Be(this.value),l(6,_)}function Rt(){_.i.r.g=Be(this.value),l(6,_)}function he(){_.i.r.b=Be(this.value),l(6,_)}function Ie(){_.i.d.d=Be(this.value),l(6,_)}function He(){_.i.t.d=Be(this.value),l(6,_)}function Gt(){_.i.t.a=Be(this.value),l(6,_)}function Vt(){_.i.v.p=Be(this.value),l(6,_)}function wt(){_.i.v.d.v=Be(this.value),l(6,_)}function cl(){_.i.v.d.g=Be(this.value),l(6,_)}function ol(){_.i.d.b=Yt(this),l(6,_)}function jt(){_.i.v.o=Be(this.value),l(6,_)}function Ht(){_.i.v.m=Be(this.value),l(6,_)}function ul(){_.i.v.b=Be(this.value),l(6,_)}function De(){_.d.s=this.checked,l(6,_)}function x(){_.d.t=this.checked,l(6,_)}function Oe(){_.d.l=Yt(this),l(6,_)}return t.$$set=nt=>{"basepath"in nt&&l(24,n=nt.basepath),"sysinfo"in nt&&l(0,i=nt.sysinfo),"data"in nt&&l(1,o=nt.data)},t.$$.update=()=>{t.$$.dirty[0]&1&&l(12,H=i.chip=="esp8266"?16:i.chip=="esp32s2"?44:39)},[i,o,a,f,c,m,_,d,h,g,b,C,H,r,k,A,I,R,T,F,L,z,G,q,n,Z,V,Q,K,B,y,ie,te,Y,le,ue,fe,ne,de,oe,_e,se,me,we,S,w,O,D,W,$,ae,pe,ve,J,be,ke,Ee,Pe,Ae,Le,qe,Re,Xe,gt,$e,ft,St,pt,ut,it,dt,At,Ze,Fe,je,et,ge,Te,Ke,ce,Ce,Je,Ge,Lt,vt,Ye,qt,st,_t,tt,Bt,Jt,mt,lt,Kt,Qt,Ot,el,tl,Xt,$t,ll,Ve,ot,Mt,It,kt,bt,zt,xe,Rt,he,Ie,He,Gt,Vt,wt,cl,ol,jt,Ht,ul,De,x,Oe]}class e_ extends Tt{constructor(e){super(),Pt(this,e,x0,J0,Ct,{basepath:24,sysinfo:0,data:1},null,[-1,-1,-1,-1,-1])}}function $a(t,e,l){const n=t.slice();return n[21]=e[l],n}function xa(t){let e,l=t[1].cpu+"",n,i;return{c(){e=M("("),n=M(l),i=M("MHz)")},m(o,a){P(o,e,a),P(o,n,a),P(o,i,a)},p(o,a){a&2&&l!==(l=o[1].cpu+"")&&E(n,l)},d(o){o&&(N(e),N(n),N(i))}}}function t_(t){let e=Qe(t[1].chip,t[1].board)+"",l;return{c(){l=M(e)},m(n,i){P(n,l,i)},p(n,i){i&2&&e!==(e=Qe(n[1].chip,n[1].board)+"")&&E(l,e)},d(n){n&&N(l)}}}function ef(t){var K,B,y,ie,te,Y,le,ue;let e,l=(((B=(K=t[3].status)==null?void 0:K.device)==null?void 0:B.apmac)??"AP MAC")+"",n,i,o=t[1].apmac+"",a,r,f,c=(((ie=(y=t[3].status)==null?void 0:y.device)==null?void 0:ie.last_boot)??"Last boot")+"",m,_,d,h,g,b,C=(((Y=(te=t[3].status)==null?void 0:te.device)==null?void 0:Y.reason)??"Reason")+"",k,A,I=(((ue=(le=t[3][Ao(t[1].chip)])==null?void 0:le.reason)==null?void 0:ue[t[1].boot_reason])??t[1].boot_reason)+"",R,T,F=t[1].boot_reason+"",L,z,G=t[1].ex_cause+"",H,q,U;const Z=[n_,l_],V=[];function Q(fe,ne){return fe[0].u>0?0:1}return d=Q(t),h=V[d]=Z[d](t),{c(){e=p("div"),n=M(l),i=M(": "),a=M(o),r=v(),f=p("div"),m=M(c),_=M(`: + `),h.c(),g=v(),b=p("div"),k=M(C),A=M(": "),R=M(I),T=M(" ("),L=M(F),z=M("/"),H=M(G),q=M(")"),u(e,"class","my-2"),u(f,"class","my-2"),u(b,"class","my-2")},m(fe,ne){P(fe,e,ne),s(e,n),s(e,i),s(e,a),P(fe,r,ne),P(fe,f,ne),s(f,m),s(f,_),V[d].m(f,null),P(fe,g,ne),P(fe,b,ne),s(b,k),s(b,A),s(b,R),s(b,T),s(b,L),s(b,z),s(b,H),s(b,q),U=!0},p(fe,ne){var oe,_e,se,me,we,S,w,O;(!U||ne&8)&&l!==(l=(((_e=(oe=fe[3].status)==null?void 0:oe.device)==null?void 0:_e.apmac)??"AP MAC")+"")&&E(n,l),(!U||ne&2)&&o!==(o=fe[1].apmac+"")&&E(a,o),(!U||ne&8)&&c!==(c=(((me=(se=fe[3].status)==null?void 0:se.device)==null?void 0:me.last_boot)??"Last boot")+"")&&E(m,c);let de=d;d=Q(fe),d===de?V[d].p(fe,ne):(rt(),ee(V[de],1,1,()=>{V[de]=null}),ct(),h=V[d],h?h.p(fe,ne):(h=V[d]=Z[d](fe),h.c()),X(h,1),h.m(f,null)),(!U||ne&8)&&C!==(C=(((S=(we=fe[3].status)==null?void 0:we.device)==null?void 0:S.reason)??"Reason")+"")&&E(k,C),(!U||ne&10)&&I!==(I=(((O=(w=fe[3][Ao(fe[1].chip)])==null?void 0:w.reason)==null?void 0:O[fe[1].boot_reason])??fe[1].boot_reason)+"")&&E(R,I),(!U||ne&2)&&F!==(F=fe[1].boot_reason+"")&&E(L,F),(!U||ne&2)&&G!==(G=fe[1].ex_cause+"")&&E(H,G)},i(fe){U||(X(h),U=!0)},o(fe){ee(h),U=!1},d(fe){fe&&(N(e),N(r),N(f),N(g),N(b)),V[d].d()}}}function l_(t){let e;return{c(){e=M("-")},m(l,n){P(l,e,n)},p:ze,i:ze,o:ze,d(l){l&&N(e)}}}function n_(t){let e,l;return e=new Vu({props:{timestamp:new Date(new Date().getTime()-t[0].u*1e3),fullTimeColor:"",offset:t[1].clock_offset}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&1&&(o.timestamp=new Date(new Date().getTime()-n[0].u*1e3)),i&2&&(o.offset=n[1].clock_offset),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function tf(t){var m;let e,l,n,i,o=(((m=t[3].btn)==null?void 0:m.reboot)??"Reboot")+"",a,r,f,c;return l=new kl({props:{to:"/consent",$$slots:{default:[i_]},$$scope:{ctx:t}}}),{c(){e=p("div"),Ne(l.$$.fragment),n=v(),i=p("button"),a=M(o),u(i,"class","btn-yellow-sm float-right"),u(e,"class","my-2")},m(_,d){P(_,e,d),Se(l,e,null),s(e,n),s(e,i),s(i,a),r=!0,f||(c=re(i,"click",t[11]),f=!0)},p(_,d){var g;const h={};d&16777224&&(h.$$scope={dirty:d,ctx:_}),l.$set(h),(!r||d&8)&&o!==(o=(((g=_[3].btn)==null?void 0:g.reboot)??"Reboot")+"")&&E(a,o)},i(_){r||(X(l.$$.fragment,_),r=!0)},o(_){ee(l.$$.fragment,_),r=!1},d(_){_&&N(e),Me(l),f=!1,c()}}}function i_(t){var i,o;let e,l=(((o=(i=t[3].status)==null?void 0:i.device)==null?void 0:o.btn_consents)??"Consents")+"",n;return{c(){e=p("span"),n=M(l),u(e,"class","btn-pri-sm")},m(a,r){P(a,e,r),s(e,n)},p(a,r){var f,c;r&8&&l!==(l=(((c=(f=a[3].status)==null?void 0:f.device)==null?void 0:c.btn_consents)??"Consents")+"")&&E(n,l)},d(a){a&&N(e)}}}function lf(t){var H,q,U,Z,V,Q,K,B;let e,l,n=(((q=(H=t[3].status)==null?void 0:H.meter)==null?void 0:q.title)??"Meter")+"",i,o,a,r=(((Z=(U=t[3].status)==null?void 0:U.meter)==null?void 0:Z.manufacturer)??"Manufacturer")+"",f,c,m=wi(t[1].meter.mfg)+"",_,d,h,g=(((Q=(V=t[3].status)==null?void 0:V.meter)==null?void 0:Q.model)??"Model")+"",b,C,k=(t[1].meter.model?t[1].meter.model:"unknown")+"",A,I,R,T=(((B=(K=t[3].status)==null?void 0:K.meter)==null?void 0:B.id)??"ID")+"",F,L,z=(t[1].meter.id?t[1].meter.id:"unknown")+"",G;return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("div"),f=M(r),c=M(": "),_=M(m),d=v(),h=p("div"),b=M(g),C=M(": "),A=M(k),I=v(),R=p("div"),F=M(T),L=M(": "),G=M(z),u(l,"class","text-sm"),u(a,"class","my-2"),u(h,"class","my-2"),u(R,"class","my-2"),u(e,"class","cnt")},m(y,ie){P(y,e,ie),s(e,l),s(l,i),s(e,o),s(e,a),s(a,f),s(a,c),s(a,_),s(e,d),s(e,h),s(h,b),s(h,C),s(h,A),s(e,I),s(e,R),s(R,F),s(R,L),s(R,G)},p(y,ie){var te,Y,le,ue,fe,ne,de,oe;ie&8&&n!==(n=(((Y=(te=y[3].status)==null?void 0:te.meter)==null?void 0:Y.title)??"Meter")+"")&&E(i,n),ie&8&&r!==(r=(((ue=(le=y[3].status)==null?void 0:le.meter)==null?void 0:ue.manufacturer)??"Manufacturer")+"")&&E(f,r),ie&2&&m!==(m=wi(y[1].meter.mfg)+"")&&E(_,m),ie&8&&g!==(g=(((ne=(fe=y[3].status)==null?void 0:fe.meter)==null?void 0:ne.model)??"Model")+"")&&E(b,g),ie&2&&k!==(k=(y[1].meter.model?y[1].meter.model:"unknown")+"")&&E(A,k),ie&8&&T!==(T=(((oe=(de=y[3].status)==null?void 0:de.meter)==null?void 0:oe.id)??"ID")+"")&&E(F,T),ie&2&&z!==(z=(y[1].meter.id?y[1].meter.id:"unknown")+"")&&E(G,z)},d(y){y&&N(e)}}}function nf(t){var B,y,ie,te,Y,le,ue,fe;let e,l,n=(((y=(B=t[3].status)==null?void 0:B.network)==null?void 0:y.title)??"Network")+"",i,o,a,r=(((te=(ie=t[3].conf)==null?void 0:ie.network)==null?void 0:te.ip)??"IP")+"",f,c,m=t[1].net.ip+"",_,d,h,g=(((le=(Y=t[3].conf)==null?void 0:Y.network)==null?void 0:le.mask)??"Mask")+"",b,C,k=t[1].net.mask+"",A,I,R,T=(((fe=(ue=t[3].conf)==null?void 0:ue.network)==null?void 0:fe.gw)??"Gateway")+"",F,L,z=t[1].net.gw+"",G,H,q,U,Z,V=t[1].net.dns1&&of(t),Q=t[1].net.dns2&&sf(t),K=t[1].net.ipv6&&af(t);return{c(){e=p("div"),l=p("strong"),i=M(n),o=v(),a=p("div"),f=M(r),c=M(": "),_=M(m),d=v(),h=p("div"),b=M(g),C=M(": "),A=M(k),I=v(),R=p("div"),F=M(T),L=M(": "),G=M(z),H=v(),q=p("div"),V&&V.c(),U=v(),Q&&Q.c(),Z=v(),K&&K.c(),u(l,"class","text-sm"),u(a,"class","my-2"),u(h,"class","my-2"),u(R,"class","my-2"),u(q,"class","my-2"),u(e,"class","cnt")},m(ne,de){P(ne,e,de),s(e,l),s(l,i),s(e,o),s(e,a),s(a,f),s(a,c),s(a,_),s(e,d),s(e,h),s(h,b),s(h,C),s(h,A),s(e,I),s(e,R),s(R,F),s(R,L),s(R,G),s(e,H),s(e,q),V&&V.m(q,null),s(q,U),Q&&Q.m(q,null),s(e,Z),K&&K.m(e,null)},p(ne,de){var oe,_e,se,me,we,S,w,O;de&8&&n!==(n=(((_e=(oe=ne[3].status)==null?void 0:oe.network)==null?void 0:_e.title)??"Network")+"")&&E(i,n),de&8&&r!==(r=(((me=(se=ne[3].conf)==null?void 0:se.network)==null?void 0:me.ip)??"IP")+"")&&E(f,r),de&2&&m!==(m=ne[1].net.ip+"")&&E(_,m),de&8&&g!==(g=(((S=(we=ne[3].conf)==null?void 0:we.network)==null?void 0:S.mask)??"Mask")+"")&&E(b,g),de&2&&k!==(k=ne[1].net.mask+"")&&E(A,k),de&8&&T!==(T=(((O=(w=ne[3].conf)==null?void 0:w.network)==null?void 0:O.gw)??"Gateway")+"")&&E(F,T),de&2&&z!==(z=ne[1].net.gw+"")&&E(G,z),ne[1].net.dns1?V?V.p(ne,de):(V=of(ne),V.c(),V.m(q,U)):V&&(V.d(1),V=null),ne[1].net.dns2?Q?Q.p(ne,de):(Q=sf(ne),Q.c(),Q.m(q,null)):Q&&(Q.d(1),Q=null),ne[1].net.ipv6?K?K.p(ne,de):(K=af(ne),K.c(),K.m(e,null)):K&&(K.d(1),K=null)},d(ne){ne&&N(e),V&&V.d(),Q&&Q.d(),K&&K.d()}}}function of(t){var a,r;let e=(((r=(a=t[3].conf)==null?void 0:a.network)==null?void 0:r.dns)??"DNS")+"",l,n,i=t[1].net.dns1+"",o;return{c(){l=M(e),n=M(": "),o=M(i)},m(f,c){P(f,l,c),P(f,n,c),P(f,o,c)},p(f,c){var m,_;c&8&&e!==(e=(((_=(m=f[3].conf)==null?void 0:m.network)==null?void 0:_.dns)??"DNS")+"")&&E(l,e),c&2&&i!==(i=f[1].net.dns1+"")&&E(o,i)},d(f){f&&(N(l),N(n),N(o))}}}function sf(t){var a,r;let e=(((r=(a=t[3].conf)==null?void 0:a.network)==null?void 0:r.dns)??"DNS")+"",l,n,i=t[1].net.dns2+"",o;return{c(){l=M(e),n=M(": "),o=M(i)},m(f,c){P(f,l,c),P(f,n,c),P(f,o,c)},p(f,c){var m,_;c&8&&e!==(e=(((_=(m=f[3].conf)==null?void 0:m.network)==null?void 0:_.dns)??"DNS")+"")&&E(l,e),c&2&&i!==(i=f[1].net.dns2+"")&&E(o,i)},d(f){f&&(N(l),N(n),N(o))}}}function af(t){let e,l,n,i=t[1].net.ipv6.replace(/\b:?(?:0+:?){2,}/,"::")+"",o,a,r,f,c=t[1].net.dns1v6&&ff(t),m=t[1].net.dns2v6&&uf(t);return{c(){e=p("div"),l=M("IPv6: "),n=p("span"),o=M(i),a=v(),r=p("div"),c&&c.c(),f=v(),m&&m.c(),Sl(n,"font-size","14px"),u(e,"class","my-2"),u(r,"class","my-2")},m(_,d){P(_,e,d),s(e,l),s(e,n),s(n,o),P(_,a,d),P(_,r,d),c&&c.m(r,null),s(r,f),m&&m.m(r,null)},p(_,d){d&2&&i!==(i=_[1].net.ipv6.replace(/\b:?(?:0+:?){2,}/,"::")+"")&&E(o,i),_[1].net.dns1v6?c?c.p(_,d):(c=ff(_),c.c(),c.m(r,f)):c&&(c.d(1),c=null),_[1].net.dns2v6?m?m.p(_,d):(m=uf(_),m.c(),m.m(r,null)):m&&(m.d(1),m=null)},d(_){_&&(N(e),N(a),N(r)),c&&c.d(),m&&m.d()}}}function ff(t){let e,l,n=t[1].net.dns1v6.replace(/\b:?(?:0+:?){2,}/,"::")+"",i;return{c(){e=M("DNSv6: "),l=p("span"),i=M(n),Sl(l,"font-size","14px")},m(o,a){P(o,e,a),P(o,l,a),s(l,i)},p(o,a){a&2&&n!==(n=o[1].net.dns1v6.replace(/\b:?(?:0+:?){2,}/,"::")+"")&&E(i,n)},d(o){o&&(N(e),N(l))}}}function uf(t){let e,l,n=t[1].net.dns2v6.replace(/\b:?(?:0+:?){2,}/,"::")+"",i;return{c(){e=M("DNSv6: "),l=p("span"),i=M(n),Sl(l,"font-size","14px")},m(o,a){P(o,e,a),P(o,l,a),s(l,i)},p(o,a){a&2&&n!==(n=o[1].net.dns2v6.replace(/\b:?(?:0+:?){2,}/,"::")+"")&&E(i,n)},d(o){o&&(N(e),N(l))}}}function rf(t){var f,c,m,_;let e,l,n=(((c=(f=t[3].status)==null?void 0:f.firmware)==null?void 0:c.failed)??"Upgrade from {0} to {1} failed").replace("{0}",t[1].upgrade.f).replace("{1}",t[1].upgrade.t)+"",i,o,a=(((_=(m=t[3].errors)==null?void 0:m.upgrade)==null?void 0:_[t[1].upgrade.e])??t[1].upgrade.e)+"",r;return{c(){e=p("div"),l=p("div"),i=M(n),o=v(),r=M(a),u(l,"class","bd-yellow"),u(e,"class","my-2")},m(d,h){P(d,e,h),s(e,l),s(l,i),s(l,o),s(l,r)},p(d,h){var g,b,C,k;h&10&&n!==(n=(((b=(g=d[3].status)==null?void 0:g.firmware)==null?void 0:b.failed)??"Upgrade from {0} to {1} failed").replace("{0}",d[1].upgrade.f).replace("{1}",d[1].upgrade.t)+"")&&E(i,n),h&10&&a!==(a=(((k=(C=d[3].errors)==null?void 0:C.upgrade)==null?void 0:k[d[1].upgrade.e])??d[1].upgrade.e)+"")&&E(r,a)},d(d){d&&N(e)}}}function cf(t){var g,b;let e,l=(((b=(g=t[3].status)==null?void 0:g.firmware)==null?void 0:b.latest)??"Latest")+"",n,i,o,a=t[1].upgrade.n+"",r,f,c,m,_,d=(t[1].security==0||t[0].a)&&t[1].fwconsent===1&&t[1].upgrade.n&&t[1].upgrade.n!=t[1].version&&_f(t),h=t[1].fwconsent===2&&mf(t);return{c(){e=p("div"),n=M(l),i=M(`: + `),o=p("a"),r=M(a),c=v(),d&&d.c(),m=v(),h&&h.c(),_=yt(),u(o,"href",f="https://github.com/UtilitechAS/amsreader-firmware/releases/tag/"+t[1].upgrade.n),u(o,"class","ml-2 text-blue-600 hover:text-blue-800"),u(o,"target","_blank"),u(o,"rel","noreferrer"),u(e,"class","my-2 flex")},m(C,k){P(C,e,k),s(e,n),s(e,i),s(e,o),s(o,r),s(e,c),d&&d.m(e,null),P(C,m,k),h&&h.m(C,k),P(C,_,k)},p(C,k){var A,I;k&8&&l!==(l=(((I=(A=C[3].status)==null?void 0:A.firmware)==null?void 0:I.latest)??"Latest")+"")&&E(n,l),k&2&&a!==(a=C[1].upgrade.n+"")&&E(r,a),k&2&&f!==(f="https://github.com/UtilitechAS/amsreader-firmware/releases/tag/"+C[1].upgrade.n)&&u(o,"href",f),(C[1].security==0||C[0].a)&&C[1].fwconsent===1&&C[1].upgrade.n&&C[1].upgrade.n!=C[1].version?d?d.p(C,k):(d=_f(C),d.c(),d.m(e,null)):d&&(d.d(1),d=null),C[1].fwconsent===2?h?h.p(C,k):(h=mf(C),h.c(),h.m(_.parentNode,_)):h&&(h.d(1),h=null)},d(C){C&&(N(e),N(m),N(_)),d&&d.d(),h&&h.d(C)}}}function _f(t){let e,l,n,i,o;return{c(){var a,r;e=p("div"),l=p("button"),l.textContent="⇓",u(e,"class","flex-none ml-2 text-green-500"),u(e,"title",n=((r=(a=t[3].status)==null?void 0:a.firmware)==null?void 0:r.install)??"Install")},m(a,r){P(a,e,r),s(e,l),i||(o=re(l,"click",t[10]),i=!0)},p(a,r){var f,c;r&8&&n!==(n=((c=(f=a[3].status)==null?void 0:f.firmware)==null?void 0:c.install)??"Install")&&u(e,"title",n)},d(a){a&&N(e),i=!1,o()}}}function mf(t){var o,a;let e,l,n=(((a=(o=t[3].status)==null?void 0:o.firmware)==null?void 0:a.no_one_click)??"One-click upgrade disabled")+"",i;return{c(){e=p("div"),l=p("div"),i=M(n),u(l,"class","bd-yellow"),u(e,"class","my-2")},m(r,f){P(r,e,f),s(e,l),s(l,i)},p(r,f){var c,m;f&8&&n!==(n=(((m=(c=r[3].status)==null?void 0:c.firmware)==null?void 0:m.no_one_click)??"One-click upgrade disabled")+"")&&E(i,n)},d(r){r&&N(e)}}}function pf(t){let e,l=Io(Qe(t[1].chip,t[1].board))+"",n;return{c(){e=p("div"),n=M(l),u(e,"class","bd-red")},m(i,o){P(i,e,o),s(e,n)},p(i,o){o&2&&l!==(l=Io(Qe(i[1].chip,i[1].board))+"")&&E(n,l)},d(i){i&&N(e)}}}function df(t){let e,l,n,i,o,a;function r(m,_){return m[5].length==0?s_:o_}let f=r(t),c=f(t);return{c(){e=p("div"),l=p("form"),n=p("input"),i=v(),c.c(),Sl(n,"display","none"),u(n,"name","file"),u(n,"type","file"),u(n,"accept",".bin"),u(l,"action","firmware"),u(l,"enctype","multipart/form-data"),u(l,"method","post"),u(l,"autocomplete","off"),u(e,"class","my-2 flex")},m(m,_){P(m,e,_),s(e,l),s(l,n),t[13](n),s(l,i),c.m(l,null),o||(a=[re(n,"change",t[14]),re(l,"submit",t[16])],o=!0)},p(m,_){f===(f=r(m))&&c?c.p(m,_):(c.d(1),c=f(m),c&&(c.c(),c.m(l,null)))},d(m){m&&N(e),t[13](null),c.d(),o=!1,Wt(a)}}}function o_(t){var r;let e=t[5][0].name+"",l,n,i,o=(((r=t[3].btn)==null?void 0:r.upload)??"Upload")+"",a;return{c(){l=M(e),n=v(),i=p("button"),a=M(o),u(i,"type","submit"),u(i,"class","btn-pri-sm float-right ml-2")},m(f,c){P(f,l,c),P(f,n,c),P(f,i,c),s(i,a)},p(f,c){var m;c&32&&e!==(e=f[5][0].name+"")&&E(l,e),c&8&&o!==(o=(((m=f[3].btn)==null?void 0:m.upload)??"Upload")+"")&&E(a,o)},d(f){f&&(N(l),N(n),N(i))}}}function s_(t){var a,r;let e,l=(((r=(a=t[3].status)==null?void 0:a.firmware)==null?void 0:r.btn_select_file)??"Select file")+"",n,i,o;return{c(){e=p("button"),n=M(l),u(e,"type","button"),u(e,"class","btn-pri-sm float-right")},m(f,c){P(f,e,c),s(e,n),i||(o=re(e,"click",t[15]),i=!0)},p(f,c){var m,_;c&8&&l!==(l=(((_=(m=f[3].status)==null?void 0:m.firmware)==null?void 0:_.btn_select_file)??"Select file")+"")&&E(n,l)},d(f){f&&N(e),i=!1,o()}}}function hf(t){var Q,K,B,y,ie,te;let e,l,n=(((K=(Q=t[3].status)==null?void 0:Q.backup)==null?void 0:K.title)??"Backup")+"",i,o,a,r,f,c,m,_,d=(((y=(B=t[3].status)==null?void 0:B.backup)==null?void 0:y.secrets)??"Include secrets")+"",h,g,b,C=(((te=(ie=t[3].status)==null?void 0:ie.backup)==null?void 0:te.secrets_desc)??"")+"",k,A,I,R,T,F,L,z,G=at(t[9]),H=[];for(let Y=0;Y{pe=null}),ct()),(_t=ge[0])!=null&&_t.a?ve?(ve.p(ge,Te),Te&1&&X(ve,1)):(ve=tf(ge),ve.c(),X(ve,1),ve.m(l,null)):ve&&(rt(),ee(ve,1,1,()=>{ve=null}),ct()),ge[1].meter?J?J.p(ge,Te):(J=lf(ge),J.c(),J.m(e,V)):J&&(J.d(1),J=null),ge[1].net?be?be.p(ge,Te):(be=nf(ge),be.c(),be.m(e,Q)):be&&(be.d(1),be=null),(!$||Te&8)&&y!==(y=(((Bt=(tt=ge[3].status)==null?void 0:tt.firmware)==null?void 0:Bt.title)??"Firmware")+"")&&E(ie,y),(!$||Te&8)&&le!==(le=(((mt=(Jt=ge[3].status)==null?void 0:Jt.firmware)==null?void 0:mt.installed)??"Installed")+"")&&E(ue,le),(!$||Te&2)&&ne!==(ne=ge[1].version+"")&&E(de,ne),ge[1].upgrade.t&&ge[1].upgrade.t!=ge[1].version&&ge[1].upgrade.e!=0&&ge[1].upgrade.e!=123?ke?ke.p(ge,Te):(ke=rf(ge),ke.c(),ke.m(K,_e)):ke&&(ke.d(1),ke=null),ge[1].upgrade.n?Ee?Ee.p(ge,Te):(Ee=cf(ge),Ee.c(),Ee.m(K,se)):Ee&&(Ee.d(1),Ee=null),Te&3&&(me=(ge[1].security==0||ge[0].a)&&$n(ge[1].board)),me?Pe?Pe.p(ge,Te):(Pe=pf(ge),Pe.c(),Pe.m(K,we)):Pe&&(Pe.d(1),Pe=null),ge[1].security==0||ge[0].a?Ae?Ae.p(ge,Te):(Ae=df(ge),Ae.c(),Ae.m(K,null)):Ae&&(Ae.d(1),Ae=null),ge[1].security==0||ge[0].a?Le?Le.p(ge,Te):(Le=hf(ge),Le.c(),Le.m(e,null)):Le&&(Le.d(1),Le=null);const ce={};Te&64&&(ce.active=ge[6]),Te&8&&(ce.message=((Kt=(lt=ge[3].status)==null?void 0:lt.mask)==null?void 0:Kt.firmware)??"Uploading"),O.$set(ce);const Ce={};Te&256&&(Ce.active=ge[8]),Te&8&&(Ce.message=((Ot=(Qt=ge[3].status)==null?void 0:Qt.mask)==null?void 0:Ot.config)??"Uploading"),W.$set(Ce)},i(ge){$||(X(I.$$.fragment,ge),X(pe),X(ve),X(O.$$.fragment,ge),X(W.$$.fragment,ge),$=!0)},o(ge){ee(I.$$.fragment,ge),ee(pe),ee(ve),ee(O.$$.fragment,ge),ee(W.$$.fragment,ge),$=!1},d(ge){ge&&(N(e),N(w),N(D)),ae&&ae.d(),Me(I),pe&&pe.d(),ve&&ve.d(),J&&J.d(),be&&be.d(),ke&&ke.d(),Ee&&Ee.d(),Pe&&Pe.d(),Ae&&Ae.d(),Le&&Le.d(),Me(O,ge),Me(W,ge)}}}async function r_(){await(await fetch("reboot",{method:"POST"})).json()}function c_(t,e,l){let{data:n}=e,{sysinfo:i}=e,o=[{name:"WiFi",key:"iw"},{name:"MQTT",key:"im"},{name:"Web",key:"ie"},{name:"Meter",key:"it"},{name:"Thresholds",key:"ih"},{name:"GPIO",key:"ig"},{name:"NTP",key:"in"},{name:"Price",key:"is"}],a={};Nl.subscribe(z=>{l(3,a=z)});function r(){var z;confirm((((z=a.header)==null?void 0:z.upgrade)??"Upgrade to {0}?").replace("{0}",i.upgrade.n))&&(Gu(i.upgrade.n),dl.update(G=>(G.upgrade.t=i.upgrade.n,G.upgrade.p=0,G.upgrading=!0,G)))}const f=function(){var z;confirm(((z=a.device)==null?void 0:z.reboot_confirm)??"Reboot?")&&(dl.update(G=>(G.booting=!0,G)),r_())};let c,m=[],_=!1,d,h=[],g=!1;Ti();let b={hostname:"",ip:""};function C(z){l(8,g=!0);const G=new FormData;G.append("file",h[0]),fetch("configfile",{method:"POST",body:G}).then(H=>H.json()).then(H=>{dl.update(q=>(b&&b.hostname&&(q.hostname=b.hostname),q.booting=H.reboot,b&&b.ip&&(q.net.ip=b.ip),setTimeout(ti,5e3,i),q))}).catch(H=>{console.error("Error:",H),setTimeout(ti,5e3,i)})}function k(z){gi[z?"unshift":"push"](()=>{c=z,l(4,c)})}function A(){m=this.files,l(5,m)}const I=()=>{c.click()},R=()=>l(6,_=!0);function T(z){gi[z?"unshift":"push"](()=>{d=z,l(7,d)})}function F(){h=this.files,l(2,h)}const L=()=>{d.click()};return t.$$set=z=>{"data"in z&&l(0,n=z.data),"sysinfo"in z&&l(1,i=z.sysinfo)},t.$$.update=()=>{if(t.$$.dirty&4&&h.length==1){let z=h[0],G=new FileReader,H=q=>{let U=q.target.result.split(` +`);for(let Z in U){let V=U[Z];V.startsWith("hostname ")?b.hostname=V.split(" ")[1]:V.startsWith("ip ")&&(b.ip=V.split(" ")[1])}};G.onload=H,G.readAsText(z)}},[n,i,h,a,c,m,_,d,g,o,r,f,C,k,A,I,R,T,F,L]}class __ extends Tt{constructor(e){super(),Pt(this,e,c_,u_,Ct,{data:0,sysinfo:1})}}function gf(t){let e,l,n=Qe(t[0],7)+"",i,o,a=Qe(t[0],5)+"",r,f,c=Qe(t[0],4)+"",m,_,d=Qe(t[0],3)+"",h,g,b,C,k=Qe(t[0],2)+"",A,I,R=Qe(t[0],1)+"",T,F,L=Qe(t[0],0)+"",z,G,H,q,U=Qe(t[0],101)+"",Z,V,Q=Qe(t[0],100)+"",K;return{c(){e=p("optgroup"),l=p("option"),i=M(n),o=p("option"),r=M(a),f=p("option"),m=M(c),_=p("option"),h=M(d),g=v(),b=p("optgroup"),C=p("option"),A=M(k),I=p("option"),T=M(R),F=p("option"),z=M(L),G=v(),H=p("optgroup"),q=p("option"),Z=M(U),V=p("option"),K=M(Q),l.__value=7,j(l,l.__value),o.__value=5,j(o,o.__value),f.__value=4,j(f,f.__value),_.__value=3,j(_,_.__value),u(e,"label","amsleser.no"),C.__value=2,j(C,C.__value),I.__value=1,j(I,I.__value),F.__value=0,j(F,F.__value),u(b,"label","Custom hardware"),q.__value=101,j(q,q.__value),V.__value=100,j(V,V.__value),u(H,"label","Generic hardware")},m(B,y){P(B,e,y),s(e,l),s(l,i),s(e,o),s(o,r),s(e,f),s(f,m),s(e,_),s(_,h),P(B,g,y),P(B,b,y),s(b,C),s(C,A),s(b,I),s(I,T),s(b,F),s(F,z),P(B,G,y),P(B,H,y),s(H,q),s(q,Z),s(H,V),s(V,K)},p(B,y){y&1&&n!==(n=Qe(B[0],7)+"")&&E(i,n),y&1&&a!==(a=Qe(B[0],5)+"")&&E(r,a),y&1&&c!==(c=Qe(B[0],4)+"")&&E(m,c),y&1&&d!==(d=Qe(B[0],3)+"")&&E(h,d),y&1&&k!==(k=Qe(B[0],2)+"")&&E(A,k),y&1&&R!==(R=Qe(B[0],1)+"")&&E(T,R),y&1&&L!==(L=Qe(B[0],0)+"")&&E(z,L),y&1&&U!==(U=Qe(B[0],101)+"")&&E(Z,U),y&1&&Q!==(Q=Qe(B[0],100)+"")&&E(K,Q)},d(B){B&&(N(e),N(g),N(b),N(G),N(H))}}}function kf(t){let e,l,n=Qe(t[0],201)+"",i,o,a=Qe(t[0],202)+"",r,f,c=Qe(t[0],203)+"",m,_,d=Qe(t[0],241)+"",h,g,b=Qe(t[0],242)+"",C,k,A=Qe(t[0],243)+"",I,R,T=Qe(t[0],245)+"",F,L,z=Qe(t[0],200)+"",G;return{c(){e=p("optgroup"),l=p("option"),i=M(n),o=p("option"),r=M(a),f=p("option"),m=M(c),_=p("option"),h=M(d),g=p("option"),C=M(b),k=p("option"),I=M(A),R=p("option"),F=M(T),L=p("option"),G=M(z),l.__value=201,j(l,l.__value),o.__value=202,j(o,o.__value),f.__value=203,j(f,f.__value),_.__value=241,j(_,_.__value),g.__value=242,j(g,g.__value),k.__value=243,j(k,k.__value),R.__value=245,j(R,R.__value),L.__value=200,j(L,L.__value),u(e,"label","Generic hardware")},m(H,q){P(H,e,q),s(e,l),s(l,i),s(e,o),s(o,r),s(e,f),s(f,m),s(e,_),s(_,h),s(e,g),s(g,C),s(e,k),s(k,I),s(e,R),s(R,F),s(e,L),s(L,G)},p(H,q){q&1&&n!==(n=Qe(H[0],201)+"")&&E(i,n),q&1&&a!==(a=Qe(H[0],202)+"")&&E(r,a),q&1&&c!==(c=Qe(H[0],203)+"")&&E(m,c),q&1&&d!==(d=Qe(H[0],241)+"")&&E(h,d),q&1&&b!==(b=Qe(H[0],242)+"")&&E(C,b),q&1&&A!==(A=Qe(H[0],243)+"")&&E(I,A),q&1&&T!==(T=Qe(H[0],245)+"")&&E(F,T),q&1&&z!==(z=Qe(H[0],200)+"")&&E(G,z)},d(H){H&&N(e)}}}function wf(t){let e,l,n=Qe(t[0],7)+"",i,o,a=Qe(t[0],6)+"",r,f,c=Qe(t[0],5)+"",m,_,d,h,g=Qe(t[0],51)+"",b,C,k=Qe(t[0],50)+"",A;return{c(){e=p("optgroup"),l=p("option"),i=M(n),o=p("option"),r=M(a),f=p("option"),m=M(c),_=v(),d=p("optgroup"),h=p("option"),b=M(g),C=p("option"),A=M(k),l.__value=7,j(l,l.__value),o.__value=6,j(o,o.__value),f.__value=5,j(f,f.__value),u(e,"label","amsleser.no"),h.__value=51,j(h,h.__value),C.__value=50,j(C,C.__value),u(d,"label","Generic hardware")},m(I,R){P(I,e,R),s(e,l),s(l,i),s(e,o),s(o,r),s(e,f),s(f,m),P(I,_,R),P(I,d,R),s(d,h),s(h,b),s(d,C),s(C,A)},p(I,R){R&1&&n!==(n=Qe(I[0],7)+"")&&E(i,n),R&1&&a!==(a=Qe(I[0],6)+"")&&E(r,a),R&1&&c!==(c=Qe(I[0],5)+"")&&E(m,c),R&1&&g!==(g=Qe(I[0],51)+"")&&E(b,g),R&1&&k!==(k=Qe(I[0],50)+"")&&E(A,k)},d(I){I&&(N(e),N(_),N(d))}}}function Cf(t){let e,l,n=Qe(t[0],8)+"",i,o,a,r,f=Qe(t[0],71)+"",c,m,_=Qe(t[0],70)+"",d;return{c(){e=p("optgroup"),l=p("option"),i=M(n),o=v(),a=p("optgroup"),r=p("option"),c=M(f),m=p("option"),d=M(_),l.__value=8,j(l,l.__value),u(e,"label","Custom hardware"),r.__value=71,j(r,r.__value),m.__value=70,j(m,m.__value),u(a,"label","Generic hardware")},m(h,g){P(h,e,g),s(e,l),s(l,i),P(h,o,g),P(h,a,g),s(a,r),s(r,c),s(a,m),s(m,d)},p(h,g){g&1&&n!==(n=Qe(h[0],8)+"")&&E(i,n),g&1&&f!==(f=Qe(h[0],71)+"")&&E(c,f),g&1&&_!==(_=Qe(h[0],70)+"")&&E(d,_)},d(h){h&&(N(e),N(o),N(a))}}}function Sf(t){let e,l,n=Qe(t[0],200)+"",i;return{c(){e=p("optgroup"),l=p("option"),i=M(n),l.__value=200,j(l,l.__value),u(e,"label","Generic hardware")},m(o,a){P(o,e,a),s(e,l),s(l,i)},p(o,a){a&1&&n!==(n=Qe(o[0],200)+"")&&E(i,n)},d(o){o&&N(e)}}}function Mf(t){let e,l,n=Qe(t[0],80)+"",i;return{c(){e=p("optgroup"),l=p("option"),i=M(n),l.__value=80,j(l,l.__value),u(e,"label","Generic hardware")},m(o,a){P(o,e,a),s(e,l),s(l,i)},p(o,a){a&1&&n!==(n=Qe(o[0],80)+"")&&E(i,n)},d(o){o&&N(e)}}}function m_(t){let e,l,n,i,o,a,r,f,c=t[0]=="esp8266"&&gf(t),m=t[0]=="esp32"&&kf(t),_=t[0]=="esp32s2"&&wf(t),d=t[0]=="esp32c3"&&Cf(t),h=t[0]=="esp32solo"&&Sf(t),g=t[0]=="esp32s3"&&Mf(t);return{c(){e=p("option"),l=v(),c&&c.c(),n=v(),m&&m.c(),i=v(),_&&_.c(),o=v(),d&&d.c(),a=v(),h&&h.c(),r=v(),g&&g.c(),f=yt(),e.__value=-1,j(e,e.__value)},m(b,C){P(b,e,C),P(b,l,C),c&&c.m(b,C),P(b,n,C),m&&m.m(b,C),P(b,i,C),_&&_.m(b,C),P(b,o,C),d&&d.m(b,C),P(b,a,C),h&&h.m(b,C),P(b,r,C),g&&g.m(b,C),P(b,f,C)},p(b,[C]){b[0]=="esp8266"?c?c.p(b,C):(c=gf(b),c.c(),c.m(n.parentNode,n)):c&&(c.d(1),c=null),b[0]=="esp32"?m?m.p(b,C):(m=kf(b),m.c(),m.m(i.parentNode,i)):m&&(m.d(1),m=null),b[0]=="esp32s2"?_?_.p(b,C):(_=wf(b),_.c(),_.m(o.parentNode,o)):_&&(_.d(1),_=null),b[0]=="esp32c3"?d?d.p(b,C):(d=Cf(b),d.c(),d.m(a.parentNode,a)):d&&(d.d(1),d=null),b[0]=="esp32solo"?h?h.p(b,C):(h=Sf(b),h.c(),h.m(r.parentNode,r)):h&&(h.d(1),h=null),b[0]=="esp32s3"?g?g.p(b,C):(g=Mf(b),g.c(),g.m(f.parentNode,f)):g&&(g.d(1),g=null)},i:ze,o:ze,d(b){b&&(N(e),N(l),N(n),N(i),N(o),N(a),N(r),N(f)),c&&c.d(b),m&&m.d(b),_&&_.d(b),d&&d.d(b),h&&h.d(b),g&&g.d(b)}}}function p_(t,e,l){let{chip:n}=e;return t.$$set=i=>{"chip"in i&&l(0,n=i.chip)},[n]}class d_ extends Tt{constructor(e){super(),Pt(this,e,p_,m_,Ct,{chip:0})}}function Nf(t){let e;return{c(){e=p("div"),e.textContent="WARNING: Changing this configuration will affect basic configuration of your device. Only make changes here if instructed by vendor",u(e,"class","bd-red")},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function Pf(t){let e,l,n,i,o,a,r;return a=new eo({props:{chip:t[0].chip}}),{c(){e=p("div"),l=M("HAN GPIO"),n=p("br"),i=v(),o=p("select"),Ne(a.$$.fragment),u(o,"name","vh"),u(o,"class","in-s"),u(e,"class","my-3")},m(f,c){P(f,e,c),s(e,l),s(e,n),s(e,i),s(e,o),Se(a,o,null),r=!0},p(f,c){const m={};c&1&&(m.chip=f[0].chip),a.$set(m)},i(f){r||(X(a.$$.fragment,f),r=!0)},o(f){ee(a.$$.fragment,f),r=!1},d(f){f&&N(e),Me(a)}}}function h_(t){let e,l,n,i,o,a,r,f,c,m,_,d,h,g,b,C,k,A,I,R,T,F,L,z,G,H,q,U,Z,V=t[0].usrcfg&&Nf();g=new d_({props:{chip:t[0].chip}});let Q=t[0].board&&t[0].board>20&&Pf(t);return H=new pl({props:{active:t[1],message:"Saving"}}),{c(){e=p("div"),l=p("div"),n=p("form"),i=p("input"),o=v(),a=p("strong"),a.textContent="Initial configuration",r=v(),V&&V.c(),f=v(),c=p("div"),m=M("Board type"),_=p("br"),d=v(),h=p("select"),Ne(g.$$.fragment),b=v(),Q&&Q.c(),C=v(),k=p("div"),A=p("label"),I=p("input"),R=M(" Clear all other configuration"),T=v(),F=p("div"),F.innerHTML='',L=v(),z=p("span"),z.textContent=" ",G=v(),Ne(H.$$.fragment),u(i,"type","hidden"),u(i,"name","v"),i.value="true",u(a,"class","text-sm"),u(h,"name","vb"),u(h,"class","in-s"),t[0].board===void 0&&Et(()=>t[5].call(h)),u(c,"class","my-3"),u(I,"type","checkbox"),u(I,"name","vr"),I.__value="true",j(I,I.__value),u(I,"class","rounded mb-1"),u(k,"class","my-3"),u(F,"class","my-3"),u(z,"class","clear-both"),u(n,"autocomplete","off"),u(l,"class","cnt"),u(e,"class","grid xl:grid-cols-4 lg:grid-cols-3 md:grid-cols-2")},m(K,B){P(K,e,B),s(e,l),s(l,n),s(n,i),s(n,o),s(n,a),s(n,r),V&&V.m(n,null),s(n,f),s(n,c),s(c,m),s(c,_),s(c,d),s(c,h),Se(g,h,null),ye(h,t[0].board,!0),s(n,b),Q&&Q.m(n,null),s(n,C),s(n,k),s(k,A),s(A,I),I.checked=t[2],s(A,R),s(n,T),s(n,F),s(n,L),s(n,z),P(K,G,B),Se(H,K,B),q=!0,U||(Z=[re(h,"change",t[5]),re(I,"change",t[6]),re(n,"submit",mn(t[3]))],U=!0)},p(K,[B]){K[0].usrcfg?V||(V=Nf(),V.c(),V.m(n,f)):V&&(V.d(1),V=null);const y={};B&1&&(y.chip=K[0].chip),g.$set(y),B&1&&ye(h,K[0].board),K[0].board&&K[0].board>20?Q?(Q.p(K,B),B&1&&X(Q,1)):(Q=Pf(K),Q.c(),X(Q,1),Q.m(n,C)):Q&&(rt(),ee(Q,1,1,()=>{Q=null}),ct()),B&4&&(I.checked=K[2]);const ie={};B&2&&(ie.active=K[1]),H.$set(ie)},i(K){q||(X(g.$$.fragment,K),X(Q),X(H.$$.fragment,K),q=!0)},o(K){ee(g.$$.fragment,K),ee(Q),ee(H.$$.fragment,K),q=!1},d(K){K&&(N(e),N(G)),V&&V.d(),Me(g),Q&&Q.d(),Me(H,K),U=!1,Wt(Z)}}}function v_(t,e,l){let{basepath:n="/"}=e,{sysinfo:i={}}=e,o=!1;async function a(m){l(1,o=!0);const _=new FormData(m.target),d=new URLSearchParams;for(let b of _){const[C,k]=b;d.append(C,k)}let g=await(await fetch("save",{method:"POST",body:d})).json();l(1,o=!1),dl.update(b=>(b.vndcfg=g.success,b.booting=g.reboot,b.if.eth=b.boardType>240&&b.boardType<250,b)),nn(n+(i.usrcfg?"":"setup"))}let r=!0;dl.subscribe(m=>{l(0,i=m),m.fwconsent===1&&l(2,r=!i.usrcfg)});function f(){i.board=Yt(this),l(0,i)}function c(){r=this.checked,l(2,r)}return t.$$set=m=>{"basepath"in m&&l(4,n=m.basepath),"sysinfo"in m&&l(0,i=m.sysinfo)},[i,o,r,a,n,f,c]}class b_ extends Tt{constructor(e){super(),Pt(this,e,v_,h_,Ct,{basepath:4,sysinfo:0})}}function Tf(t,e,l){const n=t.slice();return n[13]=e[l],n}function qf(t){var i,o;let e,l=(((o=(i=t[1].conf)==null?void 0:i.connection)==null?void 0:o.eth)??"Ethernet")+"",n;return{c(){e=p("option"),n=M(l),e.__value=3,j(e,e.__value)},m(a,r){P(a,e,r),s(e,n)},p(a,r){var f,c;r&2&&l!==(l=(((c=(f=a[1].conf)==null?void 0:f.connection)==null?void 0:c.eth)??"Ethernet")+"")&&E(n,l)},d(a){a&&N(e)}}}function Ef(t){var z,G,H,q;let e,l=(((G=(z=t[1].conf)==null?void 0:z.connection)==null?void 0:G.ssid)??"SSID")+"",n,i,o,a,r,f,c,m,_,d,h=(((q=(H=t[1].conf)==null?void 0:H.connection)==null?void 0:q.psk)??"Password")+"",g,b,C,k,A,I,R;function T(U,Z){return U[2]?k_:g_}let F=T(t),L=F(t);return{c(){e=p("div"),n=M(l),i=v(),o=p("label"),a=p("input"),r=M(" manual"),f=v(),c=p("br"),m=v(),L.c(),_=v(),d=p("div"),g=M(h),b=p("br"),C=v(),k=p("input"),u(a,"type","checkbox"),a.__value="true",j(a,a.__value),u(a,"class","rounded mb-1"),u(o,"class","float-right mr-3"),u(e,"class","my-3"),u(k,"name","sp"),u(k,"type","password"),u(k,"pattern",Nn),u(k,"class","in-s"),u(k,"autocomplete","off"),k.required=A=t[5]==2,u(d,"class","my-3")},m(U,Z){P(U,e,Z),s(e,n),s(e,i),s(e,o),s(o,a),a.checked=t[2],s(o,r),s(e,f),s(e,c),s(e,m),L.m(e,null),P(U,_,Z),P(U,d,Z),s(d,g),s(d,b),s(d,C),s(d,k),I||(R=re(a,"change",t[9]),I=!0)},p(U,Z){var V,Q,K,B;Z&2&&l!==(l=(((Q=(V=U[1].conf)==null?void 0:V.connection)==null?void 0:Q.ssid)??"SSID")+"")&&E(n,l),Z&4&&(a.checked=U[2]),F===(F=T(U))&&L?L.p(U,Z):(L.d(1),L=F(U),L&&(L.c(),L.m(e,null))),Z&2&&h!==(h=(((B=(K=U[1].conf)==null?void 0:K.connection)==null?void 0:B.psk)??"Password")+"")&&E(g,h),Z&32&&A!==(A=U[5]==2)&&(k.required=A)},d(U){U&&(N(e),N(_),N(d)),L.d(),I=!1,R()}}}function g_(t){var a,r;let e,l,n,i=((a=t[3])==null?void 0:a.c)==-1&&Df(),o=((r=t[3])==null?void 0:r.n)&&Af(t);return{c(){e=p("select"),i&&i.c(),l=yt(),o&&o.c(),u(e,"name","ss"),u(e,"class","in-s"),e.required=n=t[5]==1||t[5]==2},m(f,c){P(f,e,c),i&&i.m(e,null),s(e,l),o&&o.m(e,null)},p(f,c){var m,_;((m=f[3])==null?void 0:m.c)==-1?i||(i=Df(),i.c(),i.m(e,l)):i&&(i.d(1),i=null),(_=f[3])!=null&&_.n?o?o.p(f,c):(o=Af(f),o.c(),o.m(e,null)):o&&(o.d(1),o=null),c&32&&n!==(n=f[5]==1||f[5]==2)&&(e.required=n)},d(f){f&&N(e),i&&i.d(),o&&o.d()}}}function k_(t){let e,l;return{c(){e=p("input"),u(e,"name","ss"),u(e,"type","text"),u(e,"pattern",Nn),u(e,"class","in-s"),e.required=l=t[5]==1||t[5]==2},m(n,i){P(n,e,i)},p(n,i){i&32&&l!==(l=n[5]==1||n[5]==2)&&(e.required=l)},d(n){n&&N(e)}}}function Df(t){let e;return{c(){e=p("option"),e.textContent="Scanning...",e.__value="",j(e,e.__value),e.selected=!0,e.disabled=!0},m(l,n){P(l,e,n)},d(l){l&&N(e)}}}function Af(t){var i;let e,l=at((i=t[3])==null?void 0:i.n),n=[];for(let o=0;ot[8].call(b)),u(m,"class","my-3"),u(U,"name","sh"),u(U,"type","text"),u(U,"class","in-s"),u(U,"maxlength","32"),u(U,"pattern",Ci),u(U,"placeholder","Optional, ex.: ams-reader"),u(U,"autocomplete","off"),u(K,"type","checkbox"),u(K,"name","sm"),K.__value="static",j(K,K.__value),u(K,"class","rounded mb-1"),u(V,"class","my-3"),u(fe,"type","submit"),u(fe,"class","btn-pri"),u(ue,"class","my-3"),u(l,"class","cnt"),u(e,"class","grid xl:grid-cols-4 lg:grid-cols-3 md:grid-cols-2")},m(qe,Re){P(qe,e,Re),s(e,l),s(l,n),s(n,i),s(n,o),s(n,a),s(a,f),s(n,c),s(n,m),s(m,d),s(m,h),s(m,g),s(m,b),s(b,C),s(C,A),s(b,I),s(I,T),S&&S.m(b,null),ye(b,t[5],!0),s(n,F),w&&w.m(n,null),s(n,L),s(n,z),s(z,H),s(z,q),s(z,U),j(U,t[0].hostname),s(n,Z),s(n,V),s(V,Q),s(Q,K),K.checked=t[4],s(Q,B),s(Q,ie),s(V,te),O&&O.m(V,null),s(n,Y),D&&D.m(n,null),s(n,le),s(n,ue),s(ue,fe),s(fe,de),P(qe,oe,Re),Se(_e,qe,Re),se=!0,me||(we=[re(b,"change",t[8]),re(U,"input",t[10]),re(K,"change",t[11]),re(n,"submit",mn(t[7]))],me=!0)},p(qe,[Re]){var gt,$e,ft,St,pt,ut,it,dt,At,Ze,Fe,je;(!se||Re&2)&&r!==(r=(((gt=qe[1].setup)==null?void 0:gt.title)??"Setup")+"")&&E(f,r),(!se||Re&2)&&_!==(_=(((ft=($e=qe[1].conf)==null?void 0:$e.connection)==null?void 0:ft.title)??"Connection")+"")&&E(d,_),(!se||Re&2)&&k!==(k=(((pt=(St=qe[1].conf)==null?void 0:St.connection)==null?void 0:pt.wifi)??"Connect to WiFi")+"")&&E(A,k),(!se||Re&2)&&R!==(R=(((it=(ut=qe[1].conf)==null?void 0:ut.connection)==null?void 0:it.ap)??"Standalone access point")+"")&&E(T,R),qe[0].if&&qe[0].if.eth?S?S.p(qe,Re):(S=qf(qe),S.c(),S.m(b,null)):S&&(S.d(1),S=null),Re&32&&ye(b,qe[5]),qe[5]==1||qe[5]==2?w?w.p(qe,Re):(w=Ef(qe),w.c(),w.m(n,L)):w&&(w.d(1),w=null),(!se||Re&2)&&G!==(G=(((At=(dt=qe[1].conf)==null?void 0:dt.general)==null?void 0:At.hostname)??"Hostname")+"")&&E(H,G),Re&1&&U.value!==qe[0].hostname&&j(U,qe[0].hostname),Re&16&&(K.checked=qe[4]),(!se||Re&2)&&y!==(y=(((Ze=qe[1].setup)==null?void 0:Ze.static)??"Static IP")+"")&&E(ie,y),qe[4]?O?(O.p(qe,Re),Re&16&&X(O,1)):(O=Of(qe),O.c(),X(O,1),O.m(V,null)):O&&(rt(),ee(O,1,1,()=>{O=null}),ct()),qe[4]?D?D.p(qe,Re):(D=If(qe),D.c(),D.m(n,le)):D&&(D.d(1),D=null),(!se||Re&2)&&ne!==(ne=(((Fe=qe[1].btn)==null?void 0:Fe.save)??"Save")+"")&&E(de,ne);const Xe={};Re&64&&(Xe.active=qe[6]),Re&2&&(Xe.message=((je=qe[1].setup)==null?void 0:je.mask)??"Saving"),_e.$set(Xe)},i(qe){se||(X(O),X(_e.$$.fragment,qe),se=!0)},o(qe){ee(O),ee(_e.$$.fragment,qe),se=!1},d(qe){qe&&(N(e),N(oe)),S&&S.d(),w&&w.d(),O&&O.d(),D&&D.d(),Me(_e,qe),me=!1,Wt(we)}}}function C_(t,e,l){let n={};Nl.subscribe(C=>{l(1,n=C)});let i=!1,o={};co.subscribe(C=>{l(3,o=C)});let{sysinfo:a={}}=e,r=!1,f=1,c=!1;function m(C){dl.update(k=>(k.trying=C,k))}async function _(C){l(6,c=!0);const k=new FormData(C.target),A=new URLSearchParams;for(let T of k){const[F,L]=T;A.append(F,L)}let R=await(await fetch("save",{method:"POST",body:A})).json();l(6,c=!1),dl.update(T=>(T.hostname=k.get("sh"),T.usrcfg=R.success,T.booting=R.reboot,r&&(T.net.ip=k.get("si"),T.net.mask=k.get("su"),T.net.gw=k.get("sg"),T.net.dns1=k.get("sd")),R.reboot&&setTimeout(ti,5e3,a,m),T))}function d(){f=Yt(this),l(5,f)}function h(){i=this.checked,l(2,i)}function g(){a.hostname=this.value,l(0,a)}function b(){r=this.checked,l(4,r)}return t.$$set=C=>{"sysinfo"in C&&l(0,a=C.sysinfo)},[a,n,i,o,r,f,c,_,d,h,g,b]}class S_ extends Tt{constructor(e){super(),Pt(this,e,C_,w_,Ct,{sysinfo:0})}}function M_(t){var H,q,U,Z;let e,l,n,i=(((H=t[2].upload)==null?void 0:H.title)??"Upload")+"",o,a,r,f,c,m=(((q=t[2].upload)==null?void 0:q.desc)??"")+"",_,d,h,g,b,C,k,A,I=(((U=t[2].btn)==null?void 0:U.upload)??"Upload")+"",R,T,F,L,z,G;return F=new pl({props:{active:t[3],message:((Z=t[2].upload)==null?void 0:Z.mask)??"Uploading"}}),{c(){e=p("div"),l=p("div"),n=p("strong"),o=M(i),a=v(),r=M(t[1]),f=v(),c=p("p"),_=M(m),d=v(),h=p("form"),g=p("input"),b=v(),C=p("div"),k=p("button"),A=p("p"),R=M(I),T=v(),Ne(F.$$.fragment),u(c,"class","mb-4"),u(g,"name","file"),u(g,"type","file"),u(A,"class","mb-4"),u(k,"type","submit"),u(k,"class","btn-pri"),u(C,"class","w-full text-right mt-4"),u(h,"action",t[0]),u(h,"enctype","multipart/form-data"),u(h,"method","post"),u(h,"autocomplete","off"),u(l,"class","cnt"),u(e,"class","grid xl:grid-cols-4 lg:grid-cols-2 md:grid-cols-2")},m(V,Q){P(V,e,Q),s(e,l),s(l,n),s(n,o),s(n,a),s(n,r),s(l,f),s(l,c),s(c,_),s(l,d),s(l,h),s(h,g),s(h,b),s(h,C),s(C,k),s(k,A),s(A,R),P(V,T,Q),Se(F,V,Q),L=!0,z||(G=re(h,"submit",t[4]),z=!0)},p(V,[Q]){var B,y,ie,te;(!L||Q&4)&&i!==(i=(((B=V[2].upload)==null?void 0:B.title)??"Upload")+"")&&E(o,i),(!L||Q&2)&&E(r,V[1]),(!L||Q&4)&&m!==(m=(((y=V[2].upload)==null?void 0:y.desc)??"")+"")&&E(_,m),(!L||Q&4)&&I!==(I=(((ie=V[2].btn)==null?void 0:ie.upload)??"Upload")+"")&&E(R,I),(!L||Q&1)&&u(h,"action",V[0]);const K={};Q&8&&(K.active=V[3]),Q&4&&(K.message=((te=V[2].upload)==null?void 0:te.mask)??"Uploading"),F.$set(K)},i(V){L||(X(F.$$.fragment,V),L=!0)},o(V){ee(F.$$.fragment,V),L=!1},d(V){V&&(N(e),N(T)),Me(F,V),z=!1,G()}}}function N_(t,e,l){let{action:n}=e,{title:i}=e,o={};Nl.subscribe(f=>{l(2,o=f)});let a=!1;const r=()=>l(3,a=!0);return t.$$set=f=>{"action"in f&&l(0,n=f.action),"title"in f&&l(1,i=f.title)},[n,i,o,a,r]}class vo extends Tt{constructor(e){super(),Pt(this,e,N_,M_,Ct,{action:0,title:1})}}function P_(t){var _e,se,me,we,S,w,O;let e,l,n,i,o=(((_e=t[1].consent)==null?void 0:_e.title)??"Consents")+"",a,r,f,c,m,_=(((se=t[1].consent)==null?void 0:se.one_click)??"One-click")+"",d,h,g,b,C=(((me=t[1].consent)==null?void 0:me.read_more)??"Read more")+"",k,A,I,R,T,F,L,z=(((we=t[1].consent)==null?void 0:we.yes)??"Yes")+"",G,H,q,U,Z,V,Q=(((S=t[1].consent)==null?void 0:S.no)??"No")+"",K,B,y,ie,te,Y=(((w=t[1].btn)==null?void 0:w.save)??"Save")+"",le,ue,fe,ne,de,oe;return fe=new pl({props:{active:t[2],message:((O=t[1].consent)==null?void 0:O.mask_saving)??"Saving"}}),{c(){e=p("div"),l=p("div"),n=p("form"),i=p("div"),a=M(o),r=v(),f=p("hr"),c=v(),m=p("div"),d=M(_),h=p("br"),g=v(),b=p("a"),k=M(C),A=p("br"),I=v(),R=p("label"),T=p("input"),L=v(),G=M(z),H=v(),q=p("label"),U=p("input"),V=v(),K=M(Q),B=p("br"),y=v(),ie=p("div"),te=p("button"),le=M(Y),ue=v(),Ne(fe.$$.fragment),u(b,"href",vl("Data-collection-on-one-click-firmware-upgrade")),u(b,"target","_blank"),u(b,"class","text-blue-600 hover:text-blue-800"),u(T,"type","radio"),u(T,"name","sf"),T.value=1,T.checked=F=t[0].fwconsent===1,u(T,"class","rounded m-2"),T.required=!0,u(U,"type","radio"),u(U,"name","sf"),U.value=2,U.checked=Z=t[0].fwconsent===2,u(U,"class","rounded m-2"),U.required=!0,u(m,"class","my-3"),u(te,"type","submit"),u(te,"class","btn-pri"),u(ie,"class","my-3"),u(n,"autocomplete","off"),u(l,"class","cnt"),u(e,"class","grid xl:grid-cols-3 lg:grid-cols-2")},m(D,W){P(D,e,W),s(e,l),s(l,n),s(n,i),s(i,a),s(n,r),s(n,f),s(n,c),s(n,m),s(m,d),s(m,h),s(m,g),s(m,b),s(b,k),s(m,A),s(m,I),s(m,R),s(R,T),s(R,L),s(R,G),s(m,H),s(m,q),s(q,U),s(q,V),s(q,K),s(m,B),s(n,y),s(n,ie),s(ie,te),s(te,le),P(D,ue,W),Se(fe,D,W),ne=!0,de||(oe=re(n,"submit",mn(t[3])),de=!0)},p(D,[W]){var ae,pe,ve,J,be,ke,Ee;(!ne||W&2)&&o!==(o=(((ae=D[1].consent)==null?void 0:ae.title)??"Consents")+"")&&E(a,o),(!ne||W&2)&&_!==(_=(((pe=D[1].consent)==null?void 0:pe.one_click)??"One-click")+"")&&E(d,_),(!ne||W&2)&&C!==(C=(((ve=D[1].consent)==null?void 0:ve.read_more)??"Read more")+"")&&E(k,C),(!ne||W&1&&F!==(F=D[0].fwconsent===1))&&(T.checked=F),(!ne||W&2)&&z!==(z=(((J=D[1].consent)==null?void 0:J.yes)??"Yes")+"")&&E(G,z),(!ne||W&1&&Z!==(Z=D[0].fwconsent===2))&&(U.checked=Z),(!ne||W&2)&&Q!==(Q=(((be=D[1].consent)==null?void 0:be.no)??"No")+"")&&E(K,Q),(!ne||W&2)&&Y!==(Y=(((ke=D[1].btn)==null?void 0:ke.save)??"Save")+"")&&E(le,Y);const $={};W&4&&($.active=D[2]),W&2&&($.message=((Ee=D[1].consent)==null?void 0:Ee.mask_saving)??"Saving"),fe.$set($)},i(D){ne||(X(fe.$$.fragment,D),ne=!0)},o(D){ee(fe.$$.fragment,D),ne=!1},d(D){D&&(N(e),N(ue)),Me(fe,D),de=!1,oe()}}}function T_(t,e,l){let{basepath:n="/"}=e,{sysinfo:i={}}=e,o={};Nl.subscribe(f=>{l(1,o=f)});let a=!1;async function r(f){l(2,a=!0);const c=new FormData(f.target),m=new URLSearchParams;for(let h of c){const[g,b]=h;m.append(g,b)}let d=await(await fetch("save",{method:"POST",body:m})).json();l(2,a=!1),dl.update(h=>(h.fwconsent=c.sf===!0?1:c.sf===!1?2:0,h.booting=d.reboot,h)),nn(n)}return t.$$set=f=>{"basepath"in f&&l(4,n=f.basepath),"sysinfo"in f&&l(0,i=f.sysinfo)},[i,o,a,r,n]}class q_ extends Tt{constructor(e){super(),Pt(this,e,T_,P_,Ct,{basepath:4,sysinfo:0})}}function Rf(t,e,l){const n=t.slice();return n[30]=e[l],n[31]=e,n[32]=l,n}function Ff(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function E_(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function Bf(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function D_(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function Uf(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function zf(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function jf(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function Hf(t,e,l){const n=t.slice();return n[33]=e[l],n[35]=l,n}function Wf(t){let e,l=at(t[1].o),n=[];for(let i=0;i0?"text-green-600":"text-gray-300"),u(Xe,"class",$e=t[32]{l(0,i=B)});let o=["mo","tu","we","th","fr","sa","su"],a={},r=!0,f=!1;Qu.subscribe(B=>{B.o&&(l(1,a=B),l(2,r=!1))}),_0();async function c(B){l(3,f=!0);const y=new URLSearchParams;y.append("r","true"),y.append("rc",a.o.length),a.o.forEach(function(te,Y){y.append("rt"+Y,te.t),y.append("rn"+Y,te.n),y.append("rd"+Y,te.d),y.append("ra"+Y,te.a),y.append("rh"+Y,te.h),y.append("rv"+Y,te.v),y.append("rsm"+Y,te.s.m),y.append("rsd"+Y,te.s.d),y.append("rem"+Y,te.e.m),y.append("red"+Y,te.e.d)}),await(await fetch("save",{method:"POST",body:y})).json(),l(3,f=!1),nn(n+"configuration")}let m=function(B,y){return B.includes(y)?B=B.filter(function(ie){return ie!==y}):B.push(y),B},_=function(){let B=a.o;B.push({t:1,n:"",d:3,a:[0,1,2,3,4,5,6,7],h:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],v:.001,s:{m:0,d:0},e:{m:0,d:0}}),l(1,a.o=B,a)},d=function(B){let y=a.o;y.splice(B,1),l(1,a.o=y,a)},h=function(B){if(B<=0)return;let y=a.o;var ie=y[B];y[B]=y[B-1],y[B-1]=ie,l(1,a.o=y,a)},g=function(B){let y=a.o;if(!(B>=y.length-1)){var ie=y[B];y[B]=y[B+1],y[B+1]=ie,l(1,a.o=y,a)}};function b(B,y){B[y].n=this.value,l(1,a)}function C(B,y){B[y].d=Yt(this),l(1,a)}function k(B,y){B[y].t=Yt(this),l(1,a)}function A(B,y){B[y].v=Be(this.value),l(1,a)}const I=(B,y,ie,te)=>l(1,ie[te].a=m(B.a,y),a),R=(B,y,ie,te)=>l(1,ie[te].h=m(B.h,y),a),T=(B,y,ie,te)=>l(1,ie[te].h=m(B.h,y+8),a),F=(B,y,ie,te)=>l(1,ie[te].h=m(B.h,y+16),a);function L(B,y){B[y].s.d=Yt(this),l(1,a)}function z(B,y){B[y].s.m=Yt(this),l(1,a)}function G(B,y){B[y].e.d=Yt(this),l(1,a)}function H(B,y){B[y].e.m=Yt(this),l(1,a)}const q=B=>h(B),U=B=>h(B),Z=B=>g(B),V=B=>g(B),Q=B=>d(B),K=B=>d(B);return t.$$set=B=>{"basepath"in B&&l(11,n=B.basepath)},[i,a,r,f,o,c,m,_,d,h,g,n,b,C,k,A,I,R,T,F,L,z,G,H,q,U,Z,V,Q,K]}class R_ extends Tt{constructor(e){super(),Pt(this,e,I_,O_,Ct,{basepath:11},null,[-1,-1])}}function Zf(t,e,l){const n=t.slice();return n[13]=e[l],n[14]=e,n[15]=l,n}function Jf(t,e,l){const n=t.slice();return n[13]=e[l],n[16]=e,n[17]=l,n}function $f(t){let e,l,n,i=at(t[1]),o=[];for(let a=0;a{l(3,r=C)});let f=!1,c,m;async function _(){if(confirm("Clear all data?"))for(let C in i)(C.startsWith("i")||C.startsWith("e"))&&l(0,i[C]=0,i)}let d=!1;async function h(C){l(5,d=!0);const k=new FormData(C.target),A=new URLSearchParams;for(let R of k){const[T,F]=R;A.append(T,F)}await(await fetch(o,{method:"POST",body:A})).json(),l(5,d=!1),nn(a)}function g(C){i[C.key]=Be(this.value),l(0,i)}function b(C){i[C.key]=Be(this.value),l(0,i)}return t.$$set=C=>{"prefix"in C&&l(8,n=C.prefix),"data"in C&&l(0,i=C.data),"url"in C&&l(9,o=C.url),"basepath"in C&&l(10,a=C.basepath)},t.$$.update=()=>{if(t.$$.dirty&263){l(1,c=[]),l(2,m=[]);for(let C in i){let k=[];C.startsWith("i")?k=c:C.startsWith("e")&&(k=m,i[C]&&l(4,f=!0)),k.push({key:C,name:n+" "+C.substring(1),value:i[C]})}}},[i,c,m,r,f,d,_,h,n,o,a,g,b]}class Ju extends Tt{constructor(e){super(),Pt(this,e,B_,F_,Ct,{prefix:8,data:0,url:9,basepath:10})}}function U_(t){let e,l;return e=new r0({props:{data:t[7],sysinfo:t[8],importPrices:t[1],exportPrices:t[2],dayPlot:t[3],monthPlot:t[4],temperatures:t[5],translations:t[6],tariffData:t[9]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&128&&(o.data=n[7]),i&256&&(o.sysinfo=n[8]),i&2&&(o.importPrices=n[1]),i&4&&(o.exportPrices=n[2]),i&8&&(o.dayPlot=n[3]),i&16&&(o.monthPlot=n[4]),i&32&&(o.temperatures=n[5]),i&64&&(o.translations=n[6]),i&512&&(o.tariffData=n[9]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function z_(t){let e,l;return e=new e_({props:{sysinfo:t[8],basepath:t[0],data:t[7]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&256&&(o.sysinfo=n[8]),i&1&&(o.basepath=n[0]),i&128&&(o.data=n[7]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function j_(t){let e,l;return e=new R_({props:{basepath:t[0]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&1&&(o.basepath=n[0]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function H_(t){let e,l;return e=new __({props:{sysinfo:t[8],data:t[7]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&256&&(o.sysinfo=n[8]),i&128&&(o.data=n[7]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function W_(t){let e,l;return e=new vo({props:{title:"CA",action:"/mqtt-ca"}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p:ze,i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function y_(t){let e,l;return e=new vo({props:{title:"certificate",action:"/mqtt-cert"}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p:ze,i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function G_(t){let e,l;return e=new vo({props:{title:"private key",action:"/mqtt-key"}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p:ze,i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function V_(t){let e,l;return e=new q_({props:{sysinfo:t[8],basepath:t[0]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&256&&(o.sysinfo=n[8]),i&1&&(o.basepath=n[0]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function K_(t){let e,l;return e=new S_({props:{sysinfo:t[8]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&256&&(o.sysinfo=n[8]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function Y_(t){let e,l;return e=new b_({props:{sysinfo:t[8],basepath:t[0]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&256&&(o.sysinfo=n[8]),i&1&&(o.basepath=n[0]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function Q_(t){let e,l;return e=new Ju({props:{prefix:"UTC Hour",data:t[3],url:"/dayplot",basepath:t[0]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&8&&(o.data=n[3]),i&1&&(o.basepath=n[0]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function X_(t){let e,l;return e=new Ju({props:{prefix:"Day",data:t[4],url:"/monthplot",basepath:t[0]}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&16&&(o.data=n[4]),i&1&&(o.basepath=n[0]),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function Z_(t){let e,l,n,i,o,a,r,f,c,m,_,d,h,g,b,C,k,A,I,R,T,F,L,z,G,H;return e=new fc({props:{data:t[7],basepath:t[0]}}),n=new Cl({props:{path:"/",$$slots:{default:[U_]},$$scope:{ctx:t}}}),o=new Cl({props:{path:"/configuration",$$slots:{default:[z_]},$$scope:{ctx:t}}}),r=new Cl({props:{path:"/priceconfig",$$slots:{default:[j_]},$$scope:{ctx:t}}}),c=new Cl({props:{path:"/status",$$slots:{default:[H_]},$$scope:{ctx:t}}}),_=new Cl({props:{path:"/mqtt-ca",$$slots:{default:[W_]},$$scope:{ctx:t}}}),h=new Cl({props:{path:"/mqtt-cert",$$slots:{default:[y_]},$$scope:{ctx:t}}}),b=new Cl({props:{path:"/mqtt-key",$$slots:{default:[G_]},$$scope:{ctx:t}}}),k=new Cl({props:{path:"/consent",$$slots:{default:[V_]},$$scope:{ctx:t}}}),I=new Cl({props:{path:"/setup",$$slots:{default:[K_]},$$scope:{ctx:t}}}),T=new Cl({props:{path:"/vendor",$$slots:{default:[Y_]},$$scope:{ctx:t}}}),L=new Cl({props:{path:"/edit-day",$$slots:{default:[Q_]},$$scope:{ctx:t}}}),G=new Cl({props:{path:"/edit-month",$$slots:{default:[X_]},$$scope:{ctx:t}}}),{c(){Ne(e.$$.fragment),l=v(),Ne(n.$$.fragment),i=v(),Ne(o.$$.fragment),a=v(),Ne(r.$$.fragment),f=v(),Ne(c.$$.fragment),m=v(),Ne(_.$$.fragment),d=v(),Ne(h.$$.fragment),g=v(),Ne(b.$$.fragment),C=v(),Ne(k.$$.fragment),A=v(),Ne(I.$$.fragment),R=v(),Ne(T.$$.fragment),F=v(),Ne(L.$$.fragment),z=v(),Ne(G.$$.fragment)},m(q,U){Se(e,q,U),P(q,l,U),Se(n,q,U),P(q,i,U),Se(o,q,U),P(q,a,U),Se(r,q,U),P(q,f,U),Se(c,q,U),P(q,m,U),Se(_,q,U),P(q,d,U),Se(h,q,U),P(q,g,U),Se(b,q,U),P(q,C,U),Se(k,q,U),P(q,A,U),Se(I,q,U),P(q,R,U),Se(T,q,U),P(q,F,U),Se(L,q,U),P(q,z,U),Se(G,q,U),H=!0},p(q,U){const Z={};U&128&&(Z.data=q[7]),U&1&&(Z.basepath=q[0]),e.$set(Z);const V={};U&5118&&(V.$$scope={dirty:U,ctx:q}),n.$set(V);const Q={};U&4481&&(Q.$$scope={dirty:U,ctx:q}),o.$set(Q);const K={};U&4097&&(K.$$scope={dirty:U,ctx:q}),r.$set(K);const B={};U&4480&&(B.$$scope={dirty:U,ctx:q}),c.$set(B);const y={};U&4096&&(y.$$scope={dirty:U,ctx:q}),_.$set(y);const ie={};U&4096&&(ie.$$scope={dirty:U,ctx:q}),h.$set(ie);const te={};U&4096&&(te.$$scope={dirty:U,ctx:q}),b.$set(te);const Y={};U&4353&&(Y.$$scope={dirty:U,ctx:q}),k.$set(Y);const le={};U&4352&&(le.$$scope={dirty:U,ctx:q}),I.$set(le);const ue={};U&4353&&(ue.$$scope={dirty:U,ctx:q}),T.$set(ue);const fe={};U&4105&&(fe.$$scope={dirty:U,ctx:q}),L.$set(fe);const ne={};U&4113&&(ne.$$scope={dirty:U,ctx:q}),G.$set(ne)},i(q){H||(X(e.$$.fragment,q),X(n.$$.fragment,q),X(o.$$.fragment,q),X(r.$$.fragment,q),X(c.$$.fragment,q),X(_.$$.fragment,q),X(h.$$.fragment,q),X(b.$$.fragment,q),X(k.$$.fragment,q),X(I.$$.fragment,q),X(T.$$.fragment,q),X(L.$$.fragment,q),X(G.$$.fragment,q),H=!0)},o(q){ee(e.$$.fragment,q),ee(n.$$.fragment,q),ee(o.$$.fragment,q),ee(r.$$.fragment,q),ee(c.$$.fragment,q),ee(_.$$.fragment,q),ee(h.$$.fragment,q),ee(b.$$.fragment,q),ee(k.$$.fragment,q),ee(I.$$.fragment,q),ee(T.$$.fragment,q),ee(L.$$.fragment,q),ee(G.$$.fragment,q),H=!1},d(q){q&&(N(l),N(i),N(a),N(f),N(m),N(d),N(g),N(C),N(A),N(R),N(F),N(z)),Me(e,q),Me(n,q),Me(o,q),Me(r,q),Me(c,q),Me(_,q),Me(h,q),Me(b,q),Me(k,q),Me(I,q),Me(T,q),Me(L,q),Me(G,q)}}}function lu(t){let e,l,n,i;const o=[$_,J_],a=[];function r(f,c){return f[8].trying?0:1}return e=r(t),l=a[e]=o[e](t),{c(){l.c(),n=yt()},m(f,c){a[e].m(f,c),P(f,n,c),i=!0},p(f,c){let m=e;e=r(f),e===m?a[e].p(f,c):(rt(),ee(a[m],1,1,()=>{a[m]=null}),ct(),l=a[e],l?l.p(f,c):(l=a[e]=o[e](f),l.c()),X(l,1),l.m(n.parentNode,n))},i(f){i||(X(l),i=!0)},o(f){ee(l),i=!1},d(f){f&&N(n),a[e].d(f)}}}function J_(t){let e,l;return e=new pl({props:{active:"true",message:"Device is booting, please wait"}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p:ze,i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function $_(t){let e,l;return e=new pl({props:{active:"true",message:"Device is booting, please wait. Trying to reach it on "+t[8].trying}}),{c(){Ne(e.$$.fragment)},m(n,i){Se(e,n,i),l=!0},p(n,i){const o={};i&256&&(o.message="Device is booting, please wait. Trying to reach it on "+n[8].trying),e.$set(o)},i(n){l||(X(e.$$.fragment,n),l=!0)},o(n){ee(e.$$.fragment,n),l=!1},d(n){Me(e,n)}}}function x_(t){let e,l,n,i;l=new qu({props:{basepath:t[0],$$slots:{default:[Z_]},$$scope:{ctx:t}}});let o=t[8].booting&&lu(t);return{c(){e=p("div"),Ne(l.$$.fragment),n=v(),o&&o.c(),u(e,"class","container mx-auto m-3")},m(a,r){P(a,e,r),Se(l,e,null),s(e,n),o&&o.m(e,null),i=!0},p(a,[r]){const f={};r&1&&(f.basepath=a[0]),r&5119&&(f.$$scope={dirty:r,ctx:a}),l.$set(f),a[8].booting?o?(o.p(a,r),r&256&&X(o,1)):(o=lu(a),o.c(),X(o,1),o.m(e,null)):o&&(rt(),ee(o,1,1,()=>{o=null}),ct())},i(a){i||(X(l.$$.fragment,a),X(o),i=!0)},o(a){ee(l.$$.fragment,a),ee(o),i=!1},d(a){a&&N(e),Me(l),o&&o.d()}}}function em(t,e,l){let n=document.getElementsByTagName("base")[0].getAttribute("href");n||(n="/");let i;Ru.subscribe(b=>{l(1,i=b)});let o;Fu.subscribe(b=>{l(2,o=b)});let a;Uu.subscribe(b=>{l(3,a=b)});let r;zu.subscribe(b=>{l(4,r=b)});let f;ju.subscribe(b=>{l(5,f=b)});let c={};Nl.subscribe(b=>{l(6,c=b)});let m,_={},d={},h;dl.subscribe(b=>{var C;l(8,d=b),d.vndcfg===!1?nn(n+"vendor"):d.usrcfg===!1?nn(n+"setup"):d.fwconsent===0&&nn(n+"consent"),d.ui.k===1?document.documentElement.classList.add("dark"):d.ui.k===0?document.documentElement.classList.remove("dark"):window.matchMedia("(prefers-color-scheme: dark)").matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"),d.ui.lang&&d.ui.lang!=((C=c==null?void 0:c.language)==null?void 0:C.code)&&yu(d.ui.lang),d.version&&h&&d.version!=h&&window.location.reload(),h=d.version,m&&clearTimeout(m),m=setTimeout(Ti,!_||!_.u||_.u<30||d!=null&&d.upgrading?1e4:3e5)}),q1.subscribe(b=>{l(7,_=b),$c(b)});let g={};return Wu.subscribe(b=>{l(9,g=b)}),Hu(),[n,i,o,a,r,f,c,_,d,g]}class tm extends Tt{constructor(e){super(),Pt(this,e,em,x_,Ct,{})}}new tm({target:document.getElementById("app")}); diff --git a/lib/SvelteUi/app/src/App.svelte b/lib/SvelteUi/app/src/App.svelte index 111f72d9..8da41223 100644 --- a/lib/SvelteUi/app/src/App.svelte +++ b/lib/SvelteUi/app/src/App.svelte @@ -1,6 +1,6 @@ - +{#if config.points && config.points.length > 0} + +{/if} \ No newline at end of file diff --git a/lib/SvelteUi/app/src/lib/RealtimePlot.svelte b/lib/SvelteUi/app/src/lib/RealtimePlot.svelte index 2b2e7a73..0a6d37cb 100644 --- a/lib/SvelteUi/app/src/lib/RealtimePlot.svelte +++ b/lib/SvelteUi/app/src/lib/RealtimePlot.svelte @@ -41,12 +41,6 @@ min = 0; max = 0; - /* - console.log("\n--Realtime plot debug--") - console.log("Data length: %d\nSize: %d", realtime?.data?.length, realtime?.size); - console.log("Height: %d\nWidth: %d\nBar width: %s", heightAvailable, widthAvailable, barWidth); - */ - if(realtime.data && heightAvailable > 10 && widthAvailable > 100 && barWidth > 0.1) { visible = true; for(let p in realtime.data) { @@ -90,9 +84,6 @@ } else { visible = false; } - /* - console.log("Min: %d\nMax: %d\nShow: %s", min, max, visible); - */ } diff --git a/lib/SvelteUi/app/src/lib/TariffPeakChart.svelte b/lib/SvelteUi/app/src/lib/TariffPeakChart.svelte index dfcfc453..f2e42b13 100644 --- a/lib/SvelteUi/app/src/lib/TariffPeakChart.svelte +++ b/lib/SvelteUi/app/src/lib/TariffPeakChart.svelte @@ -25,8 +25,6 @@ label: 0 }); - console.log(realtime); - if(tariffData && !isNaN(realtime?.h?.u)) { points.push({ label: realtime.h.u.toFixed(2), diff --git a/lib/SvelteUi/app/translations.json b/lib/SvelteUi/app/translations.json index 43ae0915..0f2fc9ef 100644 --- a/lib/SvelteUi/app/translations.json +++ b/lib/SvelteUi/app/translations.json @@ -40,6 +40,8 @@ "tariffpeak" : "Tariff peaks", "realtime" : "Real-time plot", "price" : "Future energy price", + "price_import" : "Future import price", + "price_export" : "Future export price", "day" : "Energy use last 24 hours", "month" : "Energy use last {0} days", "temperature" : "Temperature sensors" diff --git a/lib/SvelteUi/app/vite.config.js b/lib/SvelteUi/app/vite.config.js index 7775bc0b..e2b847e3 100644 --- a/lib/SvelteUi/app/vite.config.js +++ b/lib/SvelteUi/app/vite.config.js @@ -19,6 +19,8 @@ export default defineConfig({ proxy: { "/data.json": "http://192.168.21.122", "/energyprice.json": "http://192.168.21.122", + "/importprice.json": "http://192.168.21.122", + "/exportprice.json": "http://192.168.21.122", "/dayplot.json": "http://192.168.21.122", "/monthplot.json": "http://192.168.21.122", "/temperature.json": "http://192.168.21.122", diff --git a/lib/SvelteUi/include/AmsWebServer.h b/lib/SvelteUi/include/AmsWebServer.h index 5266c93a..81a30e77 100644 --- a/lib/SvelteUi/include/AmsWebServer.h +++ b/lib/SvelteUi/include/AmsWebServer.h @@ -125,7 +125,10 @@ private: void dataJson(); void dayplotJson(); void monthplotJson(); - void energyPriceJson(); + void energyPriceJson(); // Deprecated + void importPriceJson(); + void exportPriceJson(); + void priceJson(uint8_t direction); void temperatureJson(); void tariffJson(); void realtimeJson(); diff --git a/lib/SvelteUi/json/conf_price.json b/lib/SvelteUi/json/conf_price.json index 93ab567c..e8d0125c 100644 --- a/lib/SvelteUi/json/conf_price.json +++ b/lib/SvelteUi/json/conf_price.json @@ -2,5 +2,6 @@ "e": %s, "t": "%s", "r": "%s", - "c": "%s" + "c": "%s", + "m": %d }, \ No newline at end of file diff --git a/lib/SvelteUi/src/AmsWebServer.cpp b/lib/SvelteUi/src/AmsWebServer.cpp index fc42969e..c5bc6bb3 100644 --- a/lib/SvelteUi/src/AmsWebServer.cpp +++ b/lib/SvelteUi/src/AmsWebServer.cpp @@ -127,6 +127,8 @@ void AmsWebServer::setup(AmsConfiguration* config, GpioConfig* gpioConfig, AmsDa server.on(context + F("/dayplot.json"), HTTP_GET, std::bind(&AmsWebServer::dayplotJson, this)); server.on(context + F("/monthplot.json"), HTTP_GET, std::bind(&AmsWebServer::monthplotJson, this)); server.on(context + F("/energyprice.json"), HTTP_GET, std::bind(&AmsWebServer::energyPriceJson, this)); + server.on(context + F("/importprice.json"), HTTP_GET, std::bind(&AmsWebServer::importPriceJson, this)); + server.on(context + F("/exportprice.json"), HTTP_GET, std::bind(&AmsWebServer::exportPriceJson, this)); server.on(context + F("/temperature.json"), HTTP_GET, std::bind(&AmsWebServer::temperatureJson, this)); server.on(context + F("/tariff.json"), HTTP_GET, std::bind(&AmsWebServer::tariffJson, this)); server.on(context + F("/realtime.json"), HTTP_GET, std::bind(&AmsWebServer::realtimeJson, this)); @@ -584,8 +586,8 @@ void AmsWebServer::dataJson() { mqttStatus = 3; } - float price = ea->getPriceForHour(PRICE_DIRECTION_IMPORT, 0); - float exportPrice = ea->getPriceForHour(PRICE_DIRECTION_EXPORT, 0); + float price = ps == NULL ? PRICE_NO_VALUE : ps->getCurrentPrice(PRICE_DIRECTION_IMPORT); + float exportPrice = ps == NULL ? PRICE_NO_VALUE : ps->getCurrentPrice(PRICE_DIRECTION_EXPORT); String peaks = ""; for(uint8_t i = 1; i <= ea->getConfig()->hours; i++) { @@ -712,18 +714,24 @@ void AmsWebServer::monthplotJson() { } } +// Deprecated void AmsWebServer::energyPriceJson() { if(!checkSecurity(2)) return; + if(ps == NULL || !ps->hasPrice()) { + notFound(); + return; + } + float prices[36]; for(int i = 0; i < 36; i++) { - prices[i] = ps == NULL ? PRICE_NO_VALUE : ps->getValueForHour(PRICE_DIRECTION_IMPORT, i); + prices[i] = ps->getPriceForRelativeHour(PRICE_DIRECTION_IMPORT, i); } uint16_t pos = snprintf_P(buf, BufferSize, PSTR("{\"currency\":\"%s\",\"source\":\"%s\""), - ps == NULL ? "" : ps->getCurrency(), - ps == NULL ? "" : ps->getSource() + ps->getCurrency(), + ps->getSource() ); for(uint8_t i = 0;i < 36; i++) { @@ -744,6 +752,58 @@ void AmsWebServer::energyPriceJson() { server.send(200, MIME_JSON, buf); } +void AmsWebServer::importPriceJson() { + priceJson(PRICE_DIRECTION_IMPORT); +} + +void AmsWebServer::exportPriceJson() { + priceJson(PRICE_DIRECTION_EXPORT); +} + +void AmsWebServer::priceJson(uint8_t direction) { + if(!checkSecurity(2)) + return; + + if(ps == NULL || !ps->hasPrice()) { + notFound(); + return; + } + + uint8_t numberOfPoints = ps->getNumberOfPointsAvailable(); + + float prices[numberOfPoints]; + for(int i = 0; i < numberOfPoints; i++) { + prices[i] = ps->getPricePoint(direction, i); + } + + snprintf_P(buf, BufferSize, PSTR("{\"currency\":\"%s\",\"source\":\"%s\",\"resolution\":%d,\"direction\":\"%s\",\"importExportPriceDifferent\":%s,\"prices\":["), + ps->getCurrency(), + ps->getSource(), + ps->getResolutionInMinutes(), + direction == PRICE_DIRECTION_IMPORT ? "import" : direction == PRICE_DIRECTION_EXPORT ? "export" : "both", + ps->isExportPricesDifferentFromImport() ? "true" : "false" + ); + + addConditionalCloudHeaders(); + server.sendHeader(HEADER_CACHE_CONTROL, CACHE_CONTROL_NO_CACHE); + server.sendHeader(HEADER_PRAGMA, PRAGMA_NO_CACHE); + server.sendHeader(HEADER_EXPIRES, EXPIRES_OFF); + + server.setContentLength(CONTENT_LENGTH_UNKNOWN); + server.send(200, MIME_JSON, buf); + + for(uint8_t i = 0;i < numberOfPoints; i++) { + if(prices[i] == PRICE_NO_VALUE) { + snprintf_P(buf, BufferSize, PSTR("%snull"), i == 0 ? "" : ","); + server.sendContent(buf); + } else { + snprintf_P(buf, BufferSize, PSTR("%s%.4f"), i == 0 ? "" : ",", prices[i]); + server.sendContent(buf); + } + } + server.sendContent_P(PSTR("]}")); +} + void AmsWebServer::temperatureJson() { if(!checkSecurity(2)) return; @@ -988,7 +1048,8 @@ void AmsWebServer::configurationJson() { price.enabled ? "true" : "false", price.entsoeToken, price.area, - price.currency + price.currency, + price.resolutionInMinutes ); server.sendContent(buf); snprintf_P(buf, BufferSize, CONF_DEBUG_JSON, @@ -1333,18 +1394,20 @@ void AmsWebServer::handleSave() { if(server.hasArg(F("w")) && server.arg(F("w")) == F("true")) { long mode = server.arg(F("nc")).toInt(); - if(mode > 0 && mode < 3) { + if(mode > 0) { NetworkConfig network; config->getNetworkConfig(network); network.mode = mode; - strcpy(network.ssid, server.arg(F("ws")).c_str()); - String psk = server.arg(F("wp")); - if(!psk.equals("***")) { - strcpy(network.psk, psk.c_str()); + if(mode < 3) { + strcpy(network.ssid, server.arg(F("ws")).c_str()); + String psk = server.arg(F("wp")); + if(!psk.equals("***")) { + strcpy(network.psk, psk.c_str()); + } + network.power = server.arg(F("ww")).toFloat() * 10; + network.sleep = server.arg(F("wz")).toInt(); + network.use11b = server.hasArg(F("wb")) && server.arg(F("wb")) == F("true"); } - network.power = server.arg(F("ww")).toFloat() * 10; - network.sleep = server.arg(F("wz")).toInt(); - network.use11b = server.hasArg(F("wb")) && server.arg(F("wb")) == F("true"); if(server.hasArg(F("nm"))) { if(server.arg(F("nm")) == "static") { @@ -1564,6 +1627,7 @@ void AmsWebServer::handleSave() { strcpy(price.entsoeToken, server.arg(F("pt")).c_str()); strcpy(price.area, priceRegion.c_str()); strcpy(price.currency, server.arg(F("pc")).c_str()); + price.resolutionInMinutes = server.arg(F("pm")).toInt(); config->setPriceServiceConfig(price); } diff --git a/src/AmsToMqttBridge.cpp b/src/AmsToMqttBridge.cpp index 03cdf8aa..913df77f 100644 --- a/src/AmsToMqttBridge.cpp +++ b/src/AmsToMqttBridge.cpp @@ -253,6 +253,7 @@ void WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info) { if(setupMode) return; // None of this necessary in setup mode if(ch != NULL) ch->eventHandler(event, info); switch(event) { + case ARDUINO_EVENT_ETH_CONNECTED: case ARDUINO_EVENT_WIFI_STA_CONNECTED: { dnsState = 0; if(ch != NULL) { @@ -265,6 +266,7 @@ void WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info) { } break; } + case ARDUINO_EVENT_ETH_GOT_IP: case ARDUINO_EVENT_WIFI_STA_GOT_IP: { if(dnsState == 0) { const ip_addr_t* dns = dns_getserver(0); @@ -282,6 +284,7 @@ void WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info) { } break; } + case ARDUINO_EVENT_ETH_DISCONNECTED: case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: { if(WiFi.getMode() == WIFI_STA) { wifi_err_reason_t reason = (wifi_err_reason_t) info.wifi_sta_disconnected.reason; @@ -1631,7 +1634,7 @@ void MQTT_connect() { HomeAssistantConfig haconf; config.getHomeAssistantConfig(haconf); NetworkConfig network; - ch->getCurrentConfig(network); + config.getNetworkConfig(network); HomeAssistantMqttHandler* hamh = (HomeAssistantMqttHandler*) &mqttHandler; hamh->setHomeAssistantConfig(haconf, network.hostname); break; @@ -1660,7 +1663,7 @@ void MQTT_connect() { HomeAssistantConfig haconf; config.getHomeAssistantConfig(haconf); NetworkConfig network; - ch->getCurrentConfig(network); + config.getNetworkConfig(network); mqttHandler = new HomeAssistantMqttHandler(mqttConfig, &Debug, (char*) commonBuffer, sysConfig.boardType, haconf, &hw, &updater, network.hostname); break; case 255: @@ -1673,7 +1676,7 @@ void MQTT_connect() { if(mqttHandler != NULL) { mqttHandler->connect(); mqttHandler->publishSystem(&hw, ps, &ea); - if(ps != NULL && ps->getValueForHour(PRICE_DIRECTION_IMPORT, 0) != PRICE_NO_VALUE) { + if(ps != NULL && ps->hasPrice()) { mqttHandler->publishPrices(ps); } } @@ -1966,12 +1969,6 @@ void configFileParse() { } else if(strncmp_P(buf, PSTR("entsoeCurrency "), 15) == 0) { if(!lPrice) { config.getPriceServiceConfig(price); lPrice = true; }; strcpy(price.currency, buf+15); - } else if(strncmp_P(buf, PSTR("entsoeMultiplier "), 17) == 0) { - if(!lPrice) { config.getPriceServiceConfig(price); lPrice = true; }; - price.unused1 = String(buf+17).toFloat() * 1000; - } else if(strncmp_P(buf, PSTR("entsoeFixedPrice "), 17) == 0) { - if(!lPrice) { config.getPriceServiceConfig(price); lPrice = true; }; - price.unused2 = String(buf+17).toFloat() * 1000; } else if(strncmp_P(buf, PSTR("priceEnabled "), 13) == 0) { if(!lPrice) { config.getPriceServiceConfig(price); lPrice = true; }; price.enabled = String(buf+13).toInt() == 1; @@ -1984,12 +1981,6 @@ void configFileParse() { } else if(strncmp_P(buf, PSTR("priceCurrency "), 14) == 0) { if(!lPrice) { config.getPriceServiceConfig(price); lPrice = true; }; strcpy(price.currency, buf+14); - } else if(strncmp_P(buf, PSTR("priceMultiplier "), 16) == 0) { - if(!lPrice) { config.getPriceServiceConfig(price); lPrice = true; }; - price.unused1 = String(buf+16).toFloat() * 1000; - } else if(strncmp_P(buf, PSTR("priceFixedPrice "), 16) == 0) { - if(!lPrice) { config.getPriceServiceConfig(price); lPrice = true; }; - price.unused2 = String(buf+16).toFloat() * 1000; } else if(strncmp_P(buf, PSTR("priceModifier "), 14) == 0) { PriceConfig pc; memset(&pc, 0, sizeof(PriceConfig));