diff --git a/.github/weekly-digest.yml b/.github/weekly-digest.yml deleted file mode 100644 index fe502fbc9..000000000 --- a/.github/weekly-digest.yml +++ /dev/null @@ -1,7 +0,0 @@ -# Configuration for weekly-digest - https://github.com/apps/weekly-digest -publishDay: sun -canPublishIssues: true -canPublishPullRequests: true -canPublishContributors: true -canPublishStargazers: true -canPublishCommits: true diff --git a/cscope.out b/cscope.out new file mode 100644 index 000000000..1241e87cc --- /dev/null +++ b/cscope.out @@ -0,0 +1,419870 @@ +cscope 15 $HOME/DevCurrent/ems-esp/EMS-ESP 0002356847 + @.pio/libdeps/esp8266/ArduinoJson/ArduinoJson.h + +5  + ~"c/ArduoJs.h +" + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.h + +5 #agm + + + +7 #ifde +__lulus + + +9  + ~"ArduoJs.h +" + +11 +usg + +mea + + gArduoJs +; + +15 #r +ArduoJs + +ques + +a + +C +++ +comp +, + + +chge + +fe + +exnsi + +to + . +cc + + + . +p + + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.hpp + +5 #agm + + + +7  + ~"ArduoJs/Cfiguti.h +" + +9 #i! +ARDUINOJSON_DEBUG + + +10 #ifde +__g__ + + +11 #agm +g + +syem_hd + + +12 #i +defed + +__GNUC__ + + +13 #agm +GCC + +syem_hd + + +17  + ~"ArduoJs/Aay/AayRef.h +" + +18  + ~"ArduoJs/Obje/ObjeRef.h +" + +19  + ~"ArduoJs/V/VRef.h +" + +21  + ~"ArduoJs/Documt/DymicJsDocumt.h +" + +22  + ~"ArduoJs/Documt/SticJsDocumt.h +" + +24  + ~"ArduoJs/Aay/AayIm.h +" + +25  + ~"ArduoJs/Aay/EmtProxy.h +" + +26  + ~"ArduoJs/Aay/Uts.h +" + +27  + ~"ArduoJs/Ci/CiIm.h +" + +28  + ~"ArduoJs/Obje/MembProxy.h +" + +29  + ~"ArduoJs/Obje/ObjeIm.h +" + +30  + ~"ArduoJs/V/VAsIm.h +" + +31  + ~"ArduoJs/V/VCom.h +" + +32  + ~"ArduoJs/V/VIm.h +" + +34  + ~"ArduoJs/Js/JsDerliz.h +" + +35  + ~"ArduoJs/Js/JsSliz.h +" + +36  + ~"ArduoJs/Js/PyJsSliz.h +" + +37  + ~"ArduoJs/MsgPack/MsgPackDerliz.h +" + +38  + ~"ArduoJs/MsgPack/MsgPackSliz.h +" + +40  + ~"ArduoJs/comtiby.h +" + +42 +mea + + gArduoJs + { + +43  + gARDUINOJSON_NAMESPACE +:: + tAayCڡRef + + tJsAayCڡ +; + +44  + gARDUINOJSON_NAMESPACE +:: + tAayRef + + tJsAay +; + +45  + gARDUINOJSON_NAMESPACE +:: + tFlt + + tJsFlt +; + +46  + gARDUINOJSON_NAMESPACE +:: + tIeg + + tJsIeg +; + +47  + gARDUINOJSON_NAMESPACE +:: + tObjeCڡRef + + tJsObjeCڡ +; + +48  + gARDUINOJSON_NAMESPACE +:: + tObjeRef + + tJsObje +; + +49  + gARDUINOJSON_NAMESPACE +:: + tPa + + tJsPa +; + +50  + gARDUINOJSON_NAMESPACE +:: + tPaCڡ + + tJsPaCڡ +; + +51  + gARDUINOJSON_NAMESPACE +:: + tSg + + tJsSg +; + +52  + gARDUINOJSON_NAMESPACE +:: + tUI + + tJsUI +; + +53  + gARDUINOJSON_NAMESPACE +:: + tVCڡRef + + tJsVCڡ +; + +54  + gARDUINOJSON_NAMESPACE +:: + tVRef + + tJsV +; + +55 +usg + + gARDUINOJSON_NAMESPACE +:: +BasicJsDocumt +; + +56 +usg + + gARDUINOJSON_NAMESPACE +:: +cyAay +; + +57 +usg + + gARDUINOJSON_NAMESPACE +:: +DerliziE +; + +58 +usg + + gARDUINOJSON_NAMESPACE +:: +derlizeJs +; + +59 +usg + + gARDUINOJSON_NAMESPACE +:: +derlizeMsgPack +; + +60 +usg + + gARDUINOJSON_NAMESPACE +:: +DymicJsDocumt +; + +61 +usg + + gARDUINOJSON_NAMESPACE +:: +JsDocumt +; + +62 +usg + + gARDUINOJSON_NAMESPACE +:: +msuJs +; + +63 +usg + + gARDUINOJSON_NAMESPACE +:: +rlized +; + +64 +usg + + gARDUINOJSON_NAMESPACE +:: +rlizeJs +; + +65 +usg + + gARDUINOJSON_NAMESPACE +:: +rlizeJsPy +; + +66 +usg + + gARDUINOJSON_NAMESPACE +:: +rlizeMsgPack +; + +67 +usg + + gARDUINOJSON_NAMESPACE +:: +SticJsDocumt +; + +69 +mea + + gDerliziOi + { + +70 +usg + + gARDUINOJSON_NAMESPACE +:: +Fr +; + +71 +usg + + gARDUINOJSON_NAMESPACE +:: +NegLim +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayFunctions.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 +le + +VDa + * +yAdd +( +CiDa + * +r +, +MemyPo + * +po +) { + +12  + gr + ?-> +addEmt +( +po +) : 0; + +15 + gme + < +tyme + + gTVis +> + +16 +le + +tyme + + gTVis +:: +su_ty + +yAc +(cڡ +CiDa + * +r +, + +17 +TVis + & +vis +) { + +18 i( + gr +) + +19  + gvis +. +visAay +(* +r +); + +21  + gvis +. +visNu +(); + +24 +le + +bo + +yEqus +(cڡ +CiDa + * +lhs +, cڡ CiD* +rhs +) { + +25 i( + glhs + = +rhs +) + +26  +ue +; + +27 i(! + glhs + || ! + grhs +) + +28  + gl +; + +29  + glhs +-> +equsAay +(* +rhs +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTAay +> + +13 +le + +AayRef + + gAayShtcuts +< + gTAay +>:: +NeedAay +() const { + +14  +im +()-> +addEmt +(). +me + +to +< +AayRef +>(); + +17 + gme + < +tyme + + gTAay +> + +18 +le + +ObjeRef + + gAayShtcuts +< + gTAay +>:: +NeedObje +() const { + +19  +im +()-> +addEmt +(). +me + +to +< +ObjeRef +>(); + +22 + gme + < +tyme + + gTAay +> + +23 +le + + gEmtProxy +< + gTAay +> + gAayShtcuts +:: +ݔ +[]( + +24 +size_t + +dex +) const { + +25  +EmtProxy +< +TAay +>(* +im +(), + gdex +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayIterator.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cVP + { + +13 + gpublic +: + +14 +VP +( +MemyPo + * +po +, +VDa + * +da +: +_v +(pool, data) {} + +16 +VRef + * + gݔ +->() { + +17  & + g_v +; + +20 + gVRef + & + gݔ +*() { + +21  + g_v +; + +24 + give +: + +25 +VRef + +_v +; + +28 as + cAayIt + { + +29 + gpublic +: + +30 +AayIt +(: +_ +(0) {} + +31 +exic + +AayIt +( +MemyPo + * +po +, +VSl + * + +) + +32 : +_po +( +po +), +_ +( + +) {} + +34 +VRef + + gݔ +*() const { + +35  +VRef +( +_po +, +_ +-> +da +()); + +37 +VP + + gݔ +->() { + +38  +VP +( +_po +, +_ +-> +da +()); + +41 +bo + + gݔ +==(cڡ +AayIt + & +h +) const { + +42  +_ + = +h +._slot; + +45 +bo + + gݔ +!=(cڡ +AayIt + & +h +) const { + +46  +_ + ! +h +._slot; + +49 + gAayIt + & + gݔ +++() { + +50 + g_ + = +_ +-> +xt +(); + +51  * + gthis +; + +54 + gAayIt + & + gݔ ++=( +size_t + +di +) { + +55 +_ + = _-> +xt +( +di +); + +56  * + gthis +; + +59 +VSl + * + +() { + +60  + g_ +; + +63 + give +: + +64 +MemyPo + * +_po +; + +65 +VSl + * + g_ +; + +68 as + cVCڡP + { + +69 + gpublic +: + +70 +VCڡP +(cڡ +VDa + * +da +: +_v +(data) {} + +72 +VCڡRef + * +ݔ +->() { + +73  & +_v +; + +76 + gVCڡRef + & + gݔ +*() { + +77  + g_v +; + +80 + give +: + +81 +VCڡRef + +_v +; + +84 as + cAayCڡRefIt + { + +85 + gpublic +: + +86 +AayCڡRefIt +(: +_ +(0) {} + +87 +exic + +AayCڡRefIt +(cڡ +VSl + * + +: +_ +(slot) {} + +89 +VCڡRef + +ݔ +*() const { + +90  +VCڡRef +( +_ +-> +da +()); + +92 +VCڡP + + gݔ +->() { + +93  +VCڡP +( +_ +-> +da +()); + +96 +bo + + gݔ +==(cڡ +AayCڡRefIt + & +h +) const { + +97  +_ + = +h +._slot; + +100 +bo + + gݔ +!=(cڡ +AayCڡRefIt + & +h +) const { + +101  +_ + ! +h +._slot; + +104 + gAayCڡRefIt + & + gݔ +++() { + +105 + g_ + = +_ +-> +xt +(); + +106  * + gthis +; + +109 + gAayCڡRefIt + & + gݔ ++=( +size_t + +di +) { + +110 +_ + = _-> +xt +( +di +); + +111  * + gthis +; + +114 cڡ +VSl + * + +() { + +115  + g_ +; + +118 + give +: + +119 cڡ +VSl + * +_ +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayRef.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +13  + #JSON_ARRAY_SIZE +( +NUMBER_OF_ELEMENTS +) \ + +14 (( +NUMBER_OF_ELEMENTS +* ( +ARDUINOJSON_NAMESPACE +:: +VSl +)) + + ) + +16 +mea + + gARDUINOJSON_NAMESPACE + { + +18 +ass + + gObjeRef +; + +19 + gme + < + gtyme +> + +20 +ass + + gEmtProxy +; + +22 + gme + < +tyme + + gTDa +> + +23 as + cAayRefBa + { + +24 + gpublic +: + +25 +ݔ + +VCڡRef +() const { + +26 cڡ * +da + = +_da +; + +27  +VCڡRef +( +t_ +( +da +)); + +30 + gme + < +tyme + + gTVis +> + +31 +FORCE_INLINE + +tyme + + gTVis +:: +su_ty + +ac +( +TVis +& +vis +) const { + +32  +yAc +( +_da +, +vis +); + +35 +FORCE_INLINE + +bo + +isNu +() const { + +36  + g_da + == 0; + +39 +FORCE_INLINE + +ݔ + +bo +() const { + +40  + g_da + != 0; + +43 +FORCE_INLINE + +size_t + +memyUge +() const { + +44  + g_da + ? _da-> +memyUge +() : 0; + +47 +FORCE_INLINE + +size_t + +ág +() const { + +48  + g_da + ? _da-> +ág +() : 0; + +51 +FORCE_INLINE + +size_t + +size +() const { + +52  + g_da + ? _da-> +size +() : 0; + +55 + geed +: + +56 +AayRefBa +( +TDa +* +da +: +_da +(data) {} + +57 +TDa +* +_da +; + +60 +ass + + gAayCڡRef + : +public + +AayRefBa +, + +61 +public + + gVisab + { + +62 +nd + +ass + + gAayRef +; + +63  + gAayRefBa + + tba_ty +; + +65 + gpublic +: + +66  +AayCڡRefIt + + t +; + +68 +FORCE_INLINE + + + +beg +() const { + +69 i(! + g_da +) + +70  + +(); + +71  + +( +_da +-> +hd +()); + +74 +FORCE_INLINE + + + +d +() const { + +75  + +(); + +78 +FORCE_INLINE + +AayCڡRef +(: +ba_ty +(0) {} + +79 +FORCE_INLINE + +AayCڡRef +(cڡ +CiDa +* +da +: +ba_ty +(data) {} + +81 +FORCE_INLINE + +bo + +ݔ +==( +AayCڡRef + +rhs +) const { + +82  +yEqus +( +_da +, +rhs +._data); + +85 +FORCE_INLINE + +VCڡRef + + gݔ +[]( +size_t + + gdex +) const { + +86  +gEmt +( +dex +); + +89 +FORCE_INLINE + +VCڡRef + +gEmt +( +size_t + +dex +) const { + +90  +VCڡRef +( +_da + ? _da-> +gEmt +( +dex +) : 0); + +94 +ass + + gAayRef + : +public + +AayRefBa +< +CiDa +>, + +95 +public + + gAayShtcuts +< + gAayRef +>, + +96 +public + + gVisab + { + +97  + gAayRefBa +< + tCiDa +> + tba_ty +; + +99 + gpublic +: + +100  +AayIt + + t +; + +102 +FORCE_INLINE + +AayRef +(: +ba_ty +(0), +_po +(0) {} + +103 +FORCE_INLINE + +AayRef +( +MemyPo +* +po +, +CiDa +* +da +) + +104 : +ba_ty +( +da +), +_po +( +po +) {} + +106 +ݔ + +VRef +() { + +107 * + gda + = +_da +; + +108  +VRef +( +_po +, +t_ +< +VDa +*>( +da +)); + +111 +ݔ + +AayCڡRef +() const { + +112  +AayCڡRef +( +_da +); + +115 +VRef + +addEmt +() const { + +116  +VRef +( +_po +, +yAdd +( +_da +, _pool)); + +119 +FORCE_INLINE + + + +beg +() const { + +120 i(! + g_da +) + +121  + +(); + +122  + +( +_po +, +_da +-> +hd +()); + +125 +FORCE_INLINE + + + +d +() const { + +126  + +(); + +130 +FORCE_INLINE + +bo + +t +( +AayCڡRef + +c +) const { + +131 i(! + g_da + || ! + gc +._data) + +132  + gl +; + +133  + g_da +-> +cyFrom +(* +c +. +_da +, +_po +); + +136 +FORCE_INLINE + +bo + + gݔ +==( +AayRef + +rhs +) const { + +137  +yEqus +( +_da +, +rhs +._data); + +141 +FORCE_INLINE + +VRef + +gOrAddEmt +( +size_t + +dex +) const { + +142  +VRef +( +_po +, +_da + ? _da-> +gOrAddEmt +( +dex +, _pool) : 0); + +146 +FORCE_INLINE + +VRef + +gEmt +( +size_t + +dex +) const { + +147  +VRef +( +_po +, +_da + ? _da-> +gEmt +( +dex +) : 0); + +151 +FORCE_INLINE +  +move +( + + + +) const { + +152 i(! + g_da +) + +154 + g_da +-> +moveSl +( + +. + +()); + +158 +FORCE_INLINE +  +move +( +size_t + +dex +) const { + +159 i(! + g_da +) + +161 + g_da +-> +moveEmt +( +dex +); + +164 + give +: + +165 +MemyPo +* +_po +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayShortcuts.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < + gtyme +> + +13 +ass + + gEmtProxy +; + +15 + gme + < +tyme + + gTAay +> + +16 as + cAayShtcuts + { + +17 + gpublic +: + +19 +FORCE_INLINE + +EmtProxy +< +TAay +> +ݔ +[]( +size_t + +dex +) const; + +21 +FORCE_INLINE + +ObjeRef + +NeedObje +() const; + +23 +FORCE_INLINE + +AayRef + +NeedAay +() const; + +30 + gme + < +tyme + + gT +> + +31 +FORCE_INLINE + +bo + +add +(cڡ +T + & +vue +) const { + +32  +im +()-> +addEmt +(). +t +( +vue +); + +37 + gme + < +tyme + + gT +> + +38 +FORCE_INLINE + +bo + +add +( +T + * +vue +) const { + +39  +im +()-> +addEmt +(). +t +( +vue +); + +42 + give +: + +43 cڡ +TAay + * +im +() const { + +44  +ic_ +( +this +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 #ifde +_MSC_VER + + +13 #agm +wng +( +push +) + +14 #agm +wng +( +dib + : 4522) + +17 +mea + + gARDUINOJSON_NAMESPACE + { + +19 + gme + < +tyme + + gTAay +> + +20 +ass + + gEmtProxy + : +public + +VOts +< +EmtProxy +< +TAay +> >, + +21 +public + + gVShtcuts +< + gEmtProxy +< + gTAay +> >, + +22 +public + + gVisab + { + +23  + gEmtProxy +< + tTAay +> + tthis_ty +; + +25 + gpublic +: + +26 +FORCE_INLINE + +EmtProxy +( +TAay + +y +, +size_t + +dex +) + +27 : +_y +( +y +), +_dex +( +dex +) {} + +29 +FORCE_INLINE + +EmtProxy +(cڡ EmtProxy& +c +) + +30 : +_y +( +c +._y), +_dex +(src._index) {} + +32 +FORCE_INLINE + + gthis_ty +& + gݔ +=(cڡ +this_ty +& +c +) { + +33 +gOrAddUpamEmt +(). +t +( +c +. +as +< +VCڡRef +>()); + +34  * + gthis +; + +42 + gme + < +tyme + + gT +> + +43 +FORCE_INLINE + + gthis_ty +& + gݔ +=(cڡ +T +& +c +) { + +44 +gOrAddUpamEmt +(). +t +( +c +); + +45  * + gthis +; + +50 + gme + < +tyme + + gT +> + +51 +FORCE_INLINE + + gthis_ty +& + gݔ +=( +T +* +c +) { + +52 +gOrAddUpamEmt +(). +t +( +c +); + +53  * + gthis +; + +56 +FORCE_INLINE +  +r +() const { + +57 +gUpamEmt +(). +r +(); + +60 +FORCE_INLINE + +bo + +isNu +() const { + +61  +gUpamEmt +(). +isNu +(); + +64 + gme + < +tyme + + gT +> + +65 +FORCE_INLINE + +tyme + + gVAs +< + gT +>:: +ty + +as +() const { + +66  +gUpamEmt +(). +me + +as +< +T +>(); + +69 + gme + < +tyme + + gT +> + +70 +FORCE_INLINE + +ݔ + +T +() const { + +71  +gUpamEmt +(); + +74 + gme + < +tyme + + gT +> + +75 +FORCE_INLINE + +bo + +is +() const { + +76  +gUpamEmt +(). +me + + gis +< + gT +>(); + +79 + gme + < +tyme + + gT +> + +80 +FORCE_INLINE + +tyme + + gVTo +< + gT +>:: +ty + +to +() const { + +81  +gOrAddUpamEmt +(). +me + +to +< +T +>(); + +89 + gme + < +tyme + + gTVue +> + +90 +FORCE_INLINE + +bo + +t +(cڡ +TVue +& +vue +) const { + +91  +gOrAddUpamEmt +(). +t +( +vue +); + +96 + gme + < +tyme + + gTVue +> + +97 +FORCE_INLINE + +bo + +t +( +TVue +* +vue +) const { + +98  +gOrAddUpamEmt +(). +t +( +vue +); + +101 + gme + < +tyme + + gTVis +> + +102 +tyme + + gTVis +:: +su_ty + +ac +( +TVis +& +vis +) const { + +103  +gUpamEmt +(). +ac +( +vis +); + +106 +FORCE_INLINE + +size_t + +size +() const { + +107  +gUpamEmt +(). +size +(); + +110 + gme + < +tyme + + gTNeedKey +> + +111 +VRef + +gMemb +( +TNeedKey +* +key +) const { + +112  +gUpamEmt +(). +gMemb +( +key +); + +115 + gme + < +tyme + + gTNeedKey +> + +116 +VRef + +gMemb +(cڡ +TNeedKey +& +key +) const { + +117  +gUpamEmt +(). +gMemb +( +key +); + +120 + gme + < +tyme + + gTNeedKey +> + +121 +VRef + +gOrAddMemb +( +TNeedKey +* +key +) const { + +122  +gOrAddUpamEmt +(). +gOrAddMemb +( +key +); + +125 + gme + < +tyme + + gTNeedKey +> + +126 +VRef + +gOrAddMemb +(cڡ +TNeedKey +& +key +) const { + +127  +gOrAddUpamEmt +(). +gOrAddMemb +( +key +); + +130 +VRef + +addEmt +() const { + +131  +gOrAddUpamEmt +(). +addEmt +(); + +134 +VRef + +gEmt +( +size_t + +dex +) const { + +135  +gOrAddUpamEmt +(). +gEmt +( +dex +); + +138 +VRef + +gOrAddEmt +( +size_t + +dex +) const { + +139  +gOrAddUpamEmt +(). +gOrAddEmt +( +dex +); + +142 +FORCE_INLINE +  +move +( +size_t + +dex +) const { + +143 +gUpamEmt +(). +move +( +dex +); + +148 + gme + < +tyme + + gTCh +> + +149 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +>:: +ty + +move +( + +150 +TCh +* +key +) const { + +151 +gUpamEmt +(). +move +( +key +); + +155 + gme + < +tyme + + gTSg +> + +156 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +>:: +ty + +move +( + +157 cڡ +TSg +& +key +) const { + +158 +gUpamEmt +(). +move +( +key +); + +161 + give +: + +162 +FORCE_INLINE + +VRef + +gUpamEmt +() const { + +163  +_y +. +gEmt +( +_dex +); + +166 +FORCE_INLINE + +VRef + +gOrAddUpamEmt +() const { + +167  + g_y +. +gOrAddEmt +( +_dex +); + +170 +TAay + + g_y +; + +171 cڡ +size_t + + g_dex +; + +176 #ifde +_MSC_VER + + +177 #agm +wng +( +p +) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gT +, +size_t + + gN +,ym + gTDei +> + +14 +le + +tyme + + gab_if +:: +vue + && + +15 ! +is_ba_of +< +JsDocumt +, + gTDei +>:: +vue +, + +16 + gbo +>:: +ty + + +17 +cyAay +( +T + (& +c +)[ +N +], cڡ +TDei +& +d +) { + +18  +cyAay +( +c +, +N +, +d +); + +22 + gme + < +tyme + + gT +, +size_t + + gN +> + +23 +le + +bo + +cyAay +( +T + (& +c +)[ +N +], +JsDocumt +& +d +) { + +24  +cyAay +( +c +, +d +. +to +< +AayRef +>()); + +28 + gme + < +tyme + + gT +,ym + gTDei +> + +29 +le + +tyme + + gab_if +:: +vue + && + +30 ! +is_ba_of +< +JsDocumt +, + gTDei +>:: +vue +, + +31 + gbo +>:: +ty + + +32 +cyAay +( +T +* +c +, +size_t + +n +, cڡ +TDei +& +d +) { + +33 +bo + + gok + = +ue +; + +34  +size_t + + gi + = 0; i < + gn +; i++) { + +35 + gok + & +d +. +add +( +c +[ +i +]); + +37  + gok +; + +41 + gme + < +tyme + + gT +> + +42 +le + +bo + +cyAay +( +T +* +c +, +size_t + +n +, +JsDocumt +& +d +) { + +43  +cyAay +( +c +, +n +, +d +. +to +< +AayRef +>()); + +47 + gme + < +tyme + + gT +, +size_t + + gN1 +, size_ + gN2 +,ym + gTDei +> + +48 +le + +tyme + + gab_if +:: +vue +, + +49 + gbo +>:: +ty + + +50 +cyAay +( +T + (& +c +)[ +N1 +][ +N2 +], cڡ +TDei +& +d +) { + +51 +bo + + gok + = +ue +; + +52  +size_t + + gi + = 0; i < + gN1 +; i++) { + +53 +AayRef + + gáedAay + = +d +. +NeedAay +(); + +54  +size_t + + gj + = 0; j < + gN2 +; j++) { + +55 + gok + & +áedAay +. +add +( +c +[ +i +][ +j +]); + +58  + gok +; + +62 + gme + < +tyme + + gT +, +size_t + + gN1 +, size_ + gN2 +> + +63 +le + +bo + +cyAay +( +T + (& +c +)[ +N1 +][ +N2 +], +JsDocumt +& +d +) { + +64  +cyAay +( +c +, +d +. +to +< +AayRef +>()); + +67 + gme + < +tyme + + gT +> + +68 +ass + + gAayCݛr1D + : +public + +Vis +< +size_t +> { + +69 +public +: + +70 +AayCݛr1D +( +T +* +dei +, +size_t + +cy +) + +71 : +_dei +( +dei +), +_cy +( +cy +) {} + +73 +size_t + +visAay +(cڡ +CiDa +& +y +) { + +74 +size_t + + gsize + = 0; + +75 +VSl +* + g + = +y +. +hd +(); + +77  + g + !0 && +size + < +_cy +) { + +78 +_dei +[ +size +++] = +vAs +< +T +>( + +-> +da +()); + +79 + g + = + +-> +xt +(); + +81  + gsize +; + +84 +size_t + +visObje +(cڡ +CiDa +&) { + +88 +size_t + +visFlt +( +Flt +) { + +92 +size_t + +visSg +(const *) { + +96 +size_t + +visRawJs +(const *, size_t) { + +100 +size_t + +visNegiveIeg +( +UI +) { + +104 +size_t + +visPosiveIeg +( +UI +) { + +108 +size_t + +visBoޗn +( +bo +) { + +112 +size_t + +visNu +() { + +116 + give +: + +117 +T +* +_dei +; + +118 +size_t + + g_cy +; + +121 + gme + < +tyme + + gT +, +size_t + + gN1 +, size_ + gN2 +> + +122 +ass + + gAayCݛr2D + : +public + +Vis +<> { + +123 +public +: + +124 +AayCݛr2D +( +T + (* +dei +)[ +N1 +][ +N2 +]: +_dei +(destination) {} + +126  +visAay +(cڡ +CiDa +& +y +) { + +127 +VSl +* + + = +y +. +hd +(); + +128 +size_t + + gn + = 0; + +129  + g + !0 && +n + < +N1 +) { + +130 +AayCݛr1D +< +T +> +cݛr +((* +_dei +)[ +n +++], +N2 +); + +131 +vAc +( + +-> +da +(), +cݛr +); + +132 + g + = + +-> +xt +(); + +135  +visObje +(cڡ +CiDa +&) {} + +136  +visFlt +( +Flt +) {} + +137  +visSg +(const *) {} + +138  +visRawJs +(cڡ *, +size_t +) {} + +139  +visNegiveIeg +( +UI +) {} + +140  +visPosiveIeg +( +UI +) {} + +141  +visBoޗn +( +bo +) {} + +142  +visNu +() {} + +144 + give +: + +145 +T + (* +_dei +)[ +N1 +][ +N2 +]; + +146 +size_t + + g_cy1 +, + g_cy2 +; + +150 + gme + < +tyme + + gTSour +,ym + gT +, +size_t + + gN +> + +151 +le + +tyme + + gab_if +:: +vue +, + gsize_t +>:: +ty + +cyAay +( + +152 cڡ +TSour +& +c +, +T + (& +d +)[ +N +]) { + +153  +cyAay +( +c +, +d +, +N +); + +157 + gme + < +tyme + + gTSour +,ym + gT +> + +158 +le + +size_t + +cyAay +(cڡ +TSour +& +c +, +T +* +d +, size_ +n +) { + +159 + gAayCݛr1D +< + gT +> +cݛr +( +d +, +n +); + +161  + gc +. +ac +( +cݛr +); + +165 + gme + < +tyme + + gTSour +,ym + gT +, +size_t + + gN1 +, size_ + gN2 +> + +166 +le +  +cyAay +(cڡ +TSour +& +c +, +T + (& +d +)[ +N1 +][ +N2 +]) { + +167 + gAayCݛr2D +< + gT +, + gN1 +, + gN2 +> +cݛr +(& +d +); + +168 + gc +. +ac +( +cݛr +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 +ass + + gMemyPo +; + +15 +ass + + gVDa +; + +16 +ass + + gVSl +; + +18 as + cCiDa + { + +19 +VSl + * + g_hd +; + +20 +VSl + * + g_ +; + +22 + gpublic +: + +31 +VDa + * +addEmt +( +MemyPo + * +po +); + +33 +VDa + * +gEmt +( +size_t + +dex +) const; + +35 +VDa + * +gOrAddEmt +( +size_t + +dex +, +MemyPo + * +po +); + +37  +moveEmt +( +size_t + +dex +); + +39 +bo + +equsAay +(cڡ +CiDa + & +h +) const; + +43 + gme + < +tyme + + gTAddSg +> + +44 +VDa + * +addMemb +( +TAddSg + +key +, +MemyPo + * +po +); + +46 + gme + < +tyme + + gTAddSg +> + +47 +VDa + * +gMemb +( +TAddSg + +key +) const; + +49 + gme + < +tyme + + gTAddSg +> + +50 +VDa + * +gOrAddMemb +( +TAddSg + +key +, +MemyPo + * +po +); + +52 + gme + < +tyme + + gTAddSg +> + +53  +moveMemb +( +TAddSg + +key +) { + +54 +moveSl +( +gSl +( +key +)); + +57 + gme + < +tyme + + gTAddSg +> + +58 +bo + +cڏsKey +(cڡ +TAddSg + & +key +) const; + +60 +bo + +equsObje +(cڡ +CiDa + & +h +) const; + +64  +r +(); + +65 +size_t + +memyUge +() const; + +66 +size_t + +ág +() const; + +67 +size_t + +size +() const; + +69 +VSl + * +addSl +( +MemyPo + *); + +70  +moveSl +( +VSl + * + +); + +72 +bo + +cyFrom +(cڡ +CiDa + & +c +, +MemyPo + * +po +); + +74 +VSl + * +hd +() const { + +75  + g_hd +; + +78  +movePors +( +rdiff_t + +rgDi +,diff_ +vDi +); + +80 + give +: + +81 +VSl + * +gSl +( +size_t + +dex +) const; + +83 + gme + < +tyme + + gTAddSg +> + +84 +VSl + * +gSl +( +TAddSg + +key +) const; + +86 +VSl + * +gPviousSl +(VariantSlot *) const; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 +le + +bo + +vEqus +(cڡ +VDa +* +a +, cڡ VDa* +b +) { + +13  +vCom +( +a +, +b += +COMPARE_RESULT_EQUAL +; + +16 +le + +VSl +* + gCiDa +:: +addSl +( +MemyPo +* +po +) { + +17 +VSl +* + + = +po +-> +locV +(); + +18 i(! + g +) + +21 i( + g_ +) { + +22 + g_ +-> +tNextNNu +( + +); + +23 + g_ + = + +; + +25 + g_hd + = + +; + +26 + g_ + = + +; + +29 + g +-> +r +(); + +30  + g +; + +33 +le + +VDa +* + gCiDa +:: +addEmt +( +MemyPo +* +po +) { + +34  +Da +( +addSl +( +po +)); + +37 + gme + < +tyme + + gTAddSg +> + +38 +le + +VDa +* + gCiDa +:: +addMemb +( +TAddSg + +key +, + +39 +MemyPo +* +po +) { + +40 +VSl +* + g + = +addSl +( +po +); + +41 i(! +SKey +( + +, +key +, +po +)) { + +42 +moveSl +( + +); + +45  + g +-> +da +(); + +48 +le +  + gCiDa +:: +r +() { + +49 +_hd + = 0; + +50 + g_ + = 0; + +53 + gme + < +tyme + + gTAddSg +> + +54 +le + +bo + + gCiDa +:: +cڏsKey +(cڡ +TAddSg +& +key +) const { + +55  +gSl +( +key +) != 0; + +58 +le + +bo + + gCiDa +:: +cyFrom +(cڡ +CiDa +& +c +, + +59 +MemyPo +* +po +) { + +60 +r +(); + +61  +VSl +* + gs + = +c +. +_hd +; s; s = +s +-> +xt +()) { + +62 +VDa +* +v +; + +63 i( + gs +-> +key +() != 0) { + +64 i( +s +-> +ownsKey +()) + +65 +v + = +addMemb +( +RamSgAdr +( +s +-> +key +()), +po +); + +67 + gv + = +addMemb +( +CڡRamSgAdr +( +s +-> +key +()), +po +); + +69 + gv + = +addEmt +( +po +); + +71 i(! + gv +) + +72  + gl +; + +73 i(! + gv +-> +cyFrom +(* +s +-> +da +(), +po +)) + +74  + gl +; + +76  + gue +; + +79 +le + +bo + + gCiDa +:: +equsObje +(cڡ +CiDa +& +h +) const { + +80 +size_t + +cou + = 0; + +81  +VSl +* + g + = +_hd +; sl; sl = + +-> +xt +()) { + +82 +VDa +* +v1 + = + +-> +da +(); + +83 +VDa +* + gv2 + = +h +. +gMemb +( +adtSg +( + +-> +key +())); + +84 i(! +vEqus +( +v1 +, +v2 +)) + +85  + gl +; + +86 + gcou +++; + +88  + gcou + = +h +. +size +(); + +91 +le + +bo + + gCiDa +:: +equsAay +(cڡ +CiDa +& +h +) const { + +92 +VSl +* +s1 + = +_hd +; + +93 +VSl +* + gs2 + = +h +. +_hd +; + +95 i( + gs1 + = +s2 +) + +96  +ue +; + +97 i(! + gs1 + || ! + gs2 +) + +98  + gl +; + +99 i(! +vEqus +( +s1 +-> +da +(), +s2 +->data())) + +100  + gl +; + +101 + gs1 + = +s1 +-> +xt +(); + +102 + gs2 + = +s2 +-> +xt +(); + +106 + gme + < +tyme + + gTAddSg +> + +107 +le + +VSl +* + gCiDa +:: +gSl +( +TAddSg + +key +) const { + +108 +VSl +* + + = +_hd +; + +109  + g +) { + +110 i( + gkey +. +equs +( + +-> +key +())) + +112 + g + = + +-> +xt +(); + +114  + g +; + +117 +le + +VSl +* + gCiDa +:: +gSl +( +size_t + +dex +) const { + +118  +_hd +-> +xt +( +dex +); + +121 +le + +VSl +* + gCiDa +:: +gPviousSl +(VSl* +rg +) const { + +122 +VSl +* +cut + = +_hd +; + +123  + gcut +) { + +124 +VSl +* + gxt + = +cut +-> +xt +(); + +125 i( + gxt + = +rg +) + +126  +cut +; + +127 + gcut + = +xt +; + +132 + gme + < +tyme + + gTAddSg +> + +133 +le + +VDa +* + gCiDa +:: +gMemb +( +TAddSg + +key +) const { + +134 +VSl +* + + = +gSl +( +key +); + +135  + g + ? sl-> +da +() : 0; + +138 + gme + < +tyme + + gTAddSg +> + +139 +le + +VDa +* + gCiDa +:: +gOrAddMemb +( +TAddSg + +key +, + +140 +MemyPo +* +po +) { + +142 i( + gkey +. +isNu +()) + +146 +VSl +* + g + = +gSl +( +key +); + +147 i( + g +) + +148  + g +-> +da +(); + +150  +addMemb +( +key +, +po +); + +153 +le + +VDa +* + gCiDa +:: +gEmt +( +size_t + +dex +) const { + +154 +VSl +* + + = +gSl +( +dex +); + +155  + g + ? sl-> +da +() : 0; + +158 +le + +VDa +* + gCiDa +:: +gOrAddEmt +( +size_t + +dex +, + +159 +MemyPo +* +po +) { + +160 +VSl +* + g + = +_hd +; + +161  + g + && + gdex + > 0) { + +162 + g + = + +-> +xt +(); + +163 + gdex +--; + +165 i(! + g +) + +166 + gdex +++; + +167  + gdex + > 0) { + +168 + g + = +addSl +( +po +); + +169 + gdex +--; + +171  +Da +( + +); + +174 +le +  + gCiDa +:: +moveSl +( +VSl +* + +) { + +175 i(! + +) + +177 +VSl +* + gev + = +gPviousSl +( + +); + +178 +VSl +* + gxt + = + +-> +xt +(); + +179 i( + gev +) + +180 + gev +-> +tNext +( +xt +); + +182 + g_hd + = +xt +; + +183 i(! + gxt +) + +184 + g_ + = +ev +; + +187 +le +  + gCiDa +:: +moveEmt +( +size_t + +dex +) { + +188 +moveSl +( +gSl +( +dex +)); + +191 +le + +size_t + + gCiDa +:: +memyUge +() const { + +192 +size_t + +tٮ + = 0; + +193  +VSl +* + gs + = +_hd +; s; s = +s +-> +xt +()) { + +194 +tٮ + +( +VSl ++ +s +-> +da +()-> +memyUge +(); + +195 i( + gs +-> +ownsKey +()) + +196 + gtٮ + + + +( +s +-> +key +()) + 1; + +198  + gtٮ +; + +201 +le + +size_t + + gCiDa +:: +ág +() const { + +202 +size_t + +maxChdNeg + = 0; + +203  +VSl +* + gs + = +_hd +; s; s = +s +-> +xt +()) { + +204 +size_t + +chdNeg + = +s +-> +da +()-> +ág +(); + +205 i( + gchdNeg + > + gmaxChdNeg +) + +206 + gmaxChdNeg + = +chdNeg +; + +208  + gmaxChdNeg + + 1; + +211 +le + +size_t + + gCiDa +:: +size +() const { + +212  +Size +( +_hd +); + +215 + gme + < +tyme + + gT +> + +216 +le +  +movePor +( +T +*& +p +, +rdiff_t + +offt +) { + +217 i(! + gp +) + +219 + gp + = +t_ +< +T +*>( + +220 +t_ +<*>et_<*>( +p ++ +offt +)); + +221 +ARDUINOJSON_ASSERT +( +isAligd +( +p +)); + +224 +le +  + gCiDa +:: +movePors +( +rdiff_t + +rgDi +, + +225 +rdiff_t + +vDi +) { + +226 +movePor +( +_hd +, +vDi +); + +227 +movePor +( +_ +, +vDi +); + +228  +VSl +* + g + = +_hd +; sl; sl = + +-> +xt +()) + +229 + +-> +movePors +( +rgDi +, +vDi +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Configuration.hpp + +5 #agm + + + +7 #i +__lulus + >= 201103L + +8  + #ARDUINOJSON_HAS_LONG_LONG + 1 + + ) + +9  + #ARDUINOJSON_HAS_NULLPTR + 1 + + ) + +10  + #ARDUINOJSON_HAS_RVALUE_REFERENCES + 1 + + ) + +12  + #ARDUINOJSON_HAS_LONG_LONG + 0 + + ) + +13  + #ARDUINOJSON_HAS_NULLPTR + 0 + + ) + +14  + #ARDUINOJSON_HAS_RVALUE_REFERENCES + 0 + + ) + +17 #i +defed +( +_MSC_VER +&& ! +ARDUINOJSON_HAS_LONG_LONG + + +18  + #ARDUINOJSON_HAS_INT64 + 1 + + ) + +20  + #ARDUINOJSON_HAS_INT64 + 0 + + ) + +24 #ide +ARDUINOJSON_EMBEDDED_MODE + + +25 #i +defed +( +ARDUINO +) \ + +26 || +defed +( +__IAR_SYSTEMS_ICC__ +) \ + +27 || +defed +( +__XC +) \ + +28 || +defed +( +__ARMCC_VERSION +) \ + +29 || + $defed +( +__AVR +) + +30  + #ARDUINOJSON_EMBEDDED_MODE + 1 + + ) + +32  + #ARDUINOJSON_EMBEDDED_MODE + 0 + + ) + +38 #i! + `defed +( +ARDUINOJSON_ENABLE_STD_STREAM +&& defed( +__has_ude +) + +39 #i + `__has_ude +(< +iam +>) && \ + +40 + `__has_ude +(< +oam +>) && \ + +41 ! + `defed +( +m +) && \ + +42 ! + $defed +( +max +) + +43  + #ARDUINOJSON_ENABLE_STD_STREAM + 1 + + ) + +45  + #ARDUINOJSON_ENABLE_STD_STREAM + 0 + + ) + +51 #i! + `defed +( +ARDUINOJSON_ENABLE_STD_STRING +&& defed( +__has_ude +) + +52 #i + `__has_ude +(< +rg +>&& ! + `defed +( +m +&& !defed( +max +) + +53  + #ARDUINOJSON_ENABLE_STD_STRING + 1 + + ) + +55  + #ARDUINOJSON_ENABLE_STD_STRING + 0 + + ) + +59 #i +ARDUINOJSON_EMBEDDED_MODE + + +62 #ide +ARDUINOJSON_USE_DOUBLE + + +63  + #ARDUINOJSON_USE_DOUBLE + 0 + + ) + +67 #ide +ARDUINOJSON_USE_LONG_LONG + + +68  + #ARDUINOJSON_USE_LONG_LONG + 0 + + ) + +72 #ide +ARDUINOJSON_ENABLE_STD_STRING + + +73  + #ARDUINOJSON_ENABLE_STD_STRING + 0 + + ) + +77 #ide +ARDUINOJSON_ENABLE_STD_STREAM + + +78  + #ARDUINOJSON_ENABLE_STD_STREAM + 0 + + ) + +82 #ide +ARDUINOJSON_DEFAULT_NESTING_LIMIT + + +83  + #ARDUINOJSON_DEFAULT_NESTING_LIMIT + 10 + + ) + +89 #ide +ARDUINOJSON_USE_DOUBLE + + +90  + #ARDUINOJSON_USE_DOUBLE + 1 + + ) + +94 #ide +ARDUINOJSON_USE_LONG_LONG + + +95 #i +ARDUINOJSON_HAS_LONG_LONG + || +ARDUINOJSON_HAS_INT64 + + +96  + #ARDUINOJSON_USE_LONG_LONG + 1 + + ) + +98  + #ARDUINOJSON_USE_LONG_LONG + 0 + + ) + +103 #ide +ARDUINOJSON_ENABLE_STD_STRING + + +104  + #ARDUINOJSON_ENABLE_STD_STRING + 1 + + ) + +108 #ide +ARDUINOJSON_ENABLE_STD_STREAM + + +109  + #ARDUINOJSON_ENABLE_STD_STREAM + 1 + + ) + +113 #ide +ARDUINOJSON_DEFAULT_NESTING_LIMIT + + +114  + #ARDUINOJSON_DEFAULT_NESTING_LIMIT + 50 + + ) + +119 #ifde +ARDUINO + + +121  + ~ + +124 #ide +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +125  + #ARDUINOJSON_ENABLE_ARDUINO_STRING + 1 + + ) + +129 #ide +ARDUINOJSON_ENABLE_ARDUINO_STREAM + + +130  + #ARDUINOJSON_ENABLE_ARDUINO_STREAM + 1 + + ) + +134 #ide +ARDUINOJSON_ENABLE_ARDUINO_PRINT + + +135  + #ARDUINOJSON_ENABLE_ARDUINO_PRINT + 1 + + ) + +141 #ide +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +142  + #ARDUINOJSON_ENABLE_ARDUINO_STRING + 0 + + ) + +146 #ide +ARDUINOJSON_ENABLE_ARDUINO_STREAM + + +147  + #ARDUINOJSON_ENABLE_ARDUINO_STREAM + 0 + + ) + +151 #ide +ARDUINOJSON_ENABLE_ARDUINO_PRINT + + +152  + #ARDUINOJSON_ENABLE_ARDUINO_PRINT + 0 + + ) + +157 #ide +ARDUINOJSON_ENABLE_PROGMEM + + +158 #ifde +PROGMEM + + +159  + #ARDUINOJSON_ENABLE_PROGMEM + 1 + + ) + +161  + #ARDUINOJSON_ENABLE_PROGMEM + 0 + + ) + +166 #ide +ARDUINOJSON_DECODE_UNICODE + + +167  + #ARDUINOJSON_DECODE_UNICODE + 1 + + ) + +171 #ide +ARDUINOJSON_ENABLE_COMMENTS + + +172  + #ARDUINOJSON_ENABLE_COMMENTS + 0 + + ) + +176 #ide +ARDUINOJSON_ENABLE_NAN + + +177  + #ARDUINOJSON_ENABLE_NAN + 0 + + ) + +181 #ide +ARDUINOJSON_ENABLE_INFINITY + + +182  + #ARDUINOJSON_ENABLE_INFINITY + 0 + + ) + +187 #ide +ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD + + +188  + #ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD + 1e7 + + ) + +192 #ide +ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD + + +193  + #ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD + 1e-5 + + ) + +196 #ide +ARDUINOJSON_LITTLE_ENDIAN + + +197 #i + `defed +( +_MSC_VER +) || \ + +198 ( + `defed +( +__BYTE_ORDER__ +&& __BYTE_ORDER__ = +__ORDER_LITTLE_ENDIAN__ +) || \ + +199 + `defed +( +__LITTLE_ENDIAN__ +|| defed( +__i386 +|| + $defed +( +__x86_64 +) + +200  + #ARDUINOJSON_LITTLE_ENDIAN + 1 + + ) + +202  + #ARDUINOJSON_LITTLE_ENDIAN + 0 + + ) + +206 #ide +ARDUINOJSON_ENABLE_ALIGNMENT + + +207 #i + `defed +( +__AVR +) + +208  + #ARDUINOJSON_ENABLE_ALIGNMENT + 0 + + ) + +210  + #ARDUINOJSON_ENABLE_ALIGNMENT + 1 + + ) + +214 #ide +ARDUINOJSON_TAB + + +215  + #ARDUINOJSON_TAB + " " + + ) + +218 #ide +ARDUINOJSON_ENABLE_STRING_DEDUPLICATION + + +219  + #ARDUINOJSON_ENABLE_STRING_DEDUPLICATION + 1 + + ) + +222 #ide +ARDUINOJSON_STRING_BUFFER_SIZE + + +223  + #ARDUINOJSON_STRING_BUFFER_SIZE + 32 + + ) + +226 #ide +ARDUINOJSON_DEBUG + + +227 #ifde +__PLATFORMIO_BUILD_DEBUG__ + + +228  + #ARDUINOJSON_DEBUG + 1 + + ) + +230  + #ARDUINOJSON_DEBUG + 0 + + ) + +234 #i +ARDUINOJSON_HAS_NULLPTR + && + `defed +( +nuαr +) + +235  +nuαr + +is + +defed + +as + +a + +mao +. +Remove + +the + +uy + #def + # + #unde + ) +nullptr + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +12  + ~ + +15 +mea + + gARDUINOJSON_NAMESPACE + { + +17 as + cDerliziE + { + +19 ( + gDerliziE +::* + tbo_ty +)() const; + +20  +BoHr +() const {} + +22 + gpublic +: + +23 + eCode + { + +24 +Ok +, + +25 + gEmyIut +, + +26 + gIncomeIut +, + +27 + gInvidIut +, + +28 + gNoMemy +, + +29 + gNSu܋d +, + +30 + gTooDp + + +33 +DerliziE +() {} + +34 +DerliziE +( +Code + +c +: +_code +(c) {} + +37 +nd + +bo + +ݔ +==(cڡ +DerliziE +& +lhs +, + +38 cڡ + gDerliziE +& + grhs +) { + +39  + glhs +. + g_code + = +rhs +. +_code +; + +41 +nd + +bo + + gݔ +!=(cڡ +DerliziE +& +lhs +, + +42 cڡ + gDerliziE +& + grhs +) { + +43  + glhs +. + g_code + ! +rhs +. +_code +; + +47 +nd + +bo + + gݔ +==(cڡ +DerliziE +& +lhs +, +Code + + grhs +) { + +48  + glhs +. + g_code + = +rhs +; + +50 +nd + +bo + + gݔ +==( +Code + +lhs +, cڡ + gDerliziE +& + grhs +) { + +51  + glhs + = +rhs +. +_code +; + +53 +nd + +bo + + gݔ +!=(cڡ +DerliziE +& +lhs +, +Code + + grhs +) { + +54  + glhs +. + g_code + ! +rhs +; + +56 +nd + +bo + + gݔ +!=( +Code + +lhs +, cڡ + gDerliziE +& + grhs +) { + +57  + glhs + ! +rhs +. +_code +; + +61 +ݔ + +bo_ty +() const { + +62  + g_code + ! +Ok + ? & +DerliziE +:: +BoHr + : 0; + +64 +nd + +bo + + gݔ +==(bo +vue +, cڡ + gDerliziE +& + gr +) { + +65  + gic_ +< + gbo +>( + gr += +vue +; + +67 +nd + +bo + + gݔ +==(cڡ +DerliziE +& +r +, bo + gvue +) { + +68  + gic_ +< + gbo +>( + gr += +vue +; + +70 +nd + +bo + + gݔ +!=(bo +vue +, cڡ + gDerliziE +& + gr +) { + +71  + gic_ +< + gbo +>( + gr +! +vue +; + +73 +nd + +bo + + gݔ +!=(cڡ +DerliziE +& +r +, bo + gvue +) { + +74  + gic_ +< + gbo +>( + gr +! +vue +; + +78 +Code + +code +() const { + +79  + g_code +; + +82 cڡ * +c_r +() const { + +83 cڡ * + gmesges +[] = { + +86 +ARDUINOJSON_ASSERT +( +ic_ +< +size_t +>( +_code +) < + +87 ( +mesges +) / (messages[0])); + +88  + gmesges +[ +_code +]; + +91 #i +ARDUINOJSON_ENABLE_PROGMEM + + +92 cڡ +__FshSgHr +* +f_r +() const { + +93 +ARDUINOJSON_DEFINE_STATIC_ARRAY +(, +s0 +, "Ok"); + +94 +ARDUINOJSON_DEFINE_STATIC_ARRAY +(, +s1 +, "EmptyInput"); + +95 +ARDUINOJSON_DEFINE_STATIC_ARRAY +(, +s2 +, "IncompleteInput"); + +96 +ARDUINOJSON_DEFINE_STATIC_ARRAY +(, +s3 +, "InvalidInput"); + +97 +ARDUINOJSON_DEFINE_STATIC_ARRAY +(, +s4 +, "NoMemory"); + +98 +ARDUINOJSON_DEFINE_STATIC_ARRAY +(, +s5 +, "NotSupported"); + +99 +ARDUINOJSON_DEFINE_STATIC_ARRAY +(, +s6 +, "TooDeep"); + +100 +ARDUINOJSON_DEFINE_STATIC_ARRAY +( + +101 cڡ *, +mesges +, + +102 +ARDUINOJSON_EXPAND7 +({ +s0 +, +s1 +, +s2 +, +s3 +, +s4 +, +s5 +, +s6 +})); + +103  +ARDUINOJSON_READ_STATIC_ARRAY +(cڡ +__FshSgHr +*, +mesges +, + +104 +_code +); + +108 + give +: + +109 +Code + +_code +; + +112 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +113 +le + + gd +:: +oam +& +ݔ +<<( +d +::oam& +s +, + +114 cڡ + gDerliziE +& + ge +) { + +115 + gs + << + ge +. +c_r +(); + +116  + gs +; + +119 +le + + gd +:: +oam +& +ݔ +<<( +d +::oam& +s +, + gDerliziE +:: +Code + +c +) { + +120 +s + << +DerliziE +( +c +). +c_r +(); + +121  + gs +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 as + cFr + { + +12 + gpublic +: + +13 +exic + +Fr +( +VCڡRef + +v +: +_v +(v) {} + +15 +bo + +low +() const { + +16  +_v +; + +19 +bo + +lowAay +() const { + +20  + g_v + = +ue + || +_v +. +is +< +AayRef +>(); + +23 +bo + +lowObje +() const { + +24  + g_v + = +ue + || +_v +. +is +< +ObjeRef +>(); + +27 +bo + +lowVue +() const { + +28  + g_v + = +ue +; + +31 + gme + < +tyme + + gTKey +> + +32 +Fr + + gݔ +[](cڡ + gTKey +& + gkey +) const { + +33 i( + g_v + = +ue +) + +34  * +this +; + +36  +Fr +( +_v +[ +key +] | _variant["*"]); + +39 + give +: + +40 +VCڡRef + +_v +; + +43  + sAowAFr + { + +44 +bo + +low +() const { + +45  + gue +; + +48 +bo + +lowAay +() const { + +49  + gue +; + +52 +bo + +lowObje +() const { + +53  + gue +; + +56 +bo + +lowVue +() const { + +57  + gue +; + +60 + gme + < +tyme + + gTKey +> + +61 +AowAFr + + gݔ +[](cڡ + gTKey +&) const { + +62  +AowAFr +(); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cNegLim + { + +13 + gpublic +: + +14 +NegLim +(: +_vue +( +ARDUINOJSON_DEFAULT_NESTING_LIMIT +) {} + +15 +exic + +NegLim +( +ut8_t + +n +: +_vue +(n) {} + +17 +NegLim + +deemt +() const { + +18 +ARDUINOJSON_ASSERT +( +_vue + > 0); + +19  +NegLim +( +ic_ +< +ut8_t +>( +_vue + - 1)); + +22 +bo + +ached +() const { + +23  + g_vue + == 0; + +26 + give +: + +27 +ut8_t + +_vue +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +tyme + + gTSour +,ym + gEb + = > + +15  + sRd + { + +16 +public +: + +17 +Rd +( +TSour +& +sour +: +_sour +(&source) {} + +19  +ad +() { + +20  +_sour +-> +ad +(); + +23 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +24  + g_sour +-> +adBys +( +bufr +, +ngth +); + +27 + give +: + +28 +TSour +* +_sour +; + +31 + gme + < +tyme + + gTSour +,ym + gEb + = > + +32  + sBoundedRd + { + +38  + ~ + +39  + ~ + +40  + ~ + +42 #i +ARDUINOJSON_ENABLE_ARDUINO_STREAM + + +43  + ~ + +46 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +47  + ~ + +50 #i +ARDUINOJSON_ENABLE_PROGMEM + + +51  + ~ + +54 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +55  + ~ + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTSour +> + +12  + gRd +< + gTSour +, + +13 +tyme + + gab_if +< + gis_ba_of +< + gSm +, + gTSour +>:: +vue +>:: +ty +> { + +14 +public +: + +15 +exic + +Rd +( +Sm +& +am +: +_am +(&stream) {} + +17  +ad +() { + +19  +c +; + +20  + g_am +-> +adBys +(& +c +, 1? + gic_ +<>( + gc +) : -1; + +23 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +24  + g_am +-> +adBys +( +bufr +, +ngth +); + +27 + give +: + +28 +Sm +* +_am +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 + gme + < +tyme + + gTSour +> + +10  + gRd +< + gTSour +, + +11 +tyme + + gab_if +< + gis_ba_of +< :: +Sg +, + gTSour +>:: +vue +>:: +ty +> + +12 : +BoundedRd + { + +13 +exic + +Rd +(cڡ :: +Sg +& +s +) + +14 : +BoundedRd +( +s +. +c_r +(), + gs +. +ngth +()) {} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 + gme + <> + +10  + gRd + { + +11 cڡ * + g_r +; + +13 + gpublic +: + +14 +exic + +Rd +(cڡ +__FshSgHr +* +r +) + +15 : +_r +( +t_ +( +r +)) {} + +17  +ad +() { + +18  +pgm_ad_by +( +_r +++); + +21 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +22 +memy_P +( +bufr +, +_r +, +ngth +); + +23 + g_r + + +ngth +; + +24  + gngth +; + +28 + gme + <> + +29  + gBoundedRd + { + +30 cڡ * + g_r +; + +31 cڡ * + g_d +; + +33 + gpublic +: + +34 +exic + +BoundedRd +(cڡ +__FshSgHr +* +r +, +size_t + +size +) + +35 : +_r +( +t_ +( +r +)), +_d +(_+ +size +) {} + +37  +ad +() { + +38 i( + g_r + < + g_d +) + +39  +pgm_ad_by +( +_r +++); + +44 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +45 +size_t + + gavaab + = +ic_ +( +_d + - +_r +); + +46 i( + gavaab + < + gngth +) + +47 + gngth + = +avaab +; + +48 +memy_P +( +bufr +, +_r +, +ngth +); + +49 + g_r + + +ngth +; + +50  + gngth +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 + gme + < +tyme + + gTIt +> + +10 as + cItRd + { + +11 +TIt + + g_r +, + g_d +; + +13 + gpublic +: + +14 +exic + +ItRd +( +TIt + +beg +, TIt +d +) + +15 : +_r +( +beg +), +_d +( +d +) {} + +17  +ad +() { + +18 i( + g_r + < + g_d +) + +19  + gic_ +<>(* + g_r +++); + +24 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +25 +size_t + + gi + = 0; + +26  + gi + < + gngth + && + g_r + < + g_d + + gbufr +[ +i +++] = * +_r +++; + +27  + gi +; + +31 + gme + < +tyme + + gT +> + +32  + svoid_ + { + +33  + tty +; + +36 + gme + < +tyme + + gTSour +> + +37  + gRd +< + gTSour +, +tyme + + gvoid_ +:: +ty +> + +38 : +ItRd +< +tyme + +TSour +:: +cڡ_ +> { + +39 +exic + +Rd +(cڡ +TSour +& +sour +) + +40 : +ItRd +< +tyme + +TSour +:: +cڡ_ +>( +sour +. +beg +(), + +41 + gsour +. +d +()) {} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +> + +12  + sIsChOrVoid + { + +13 cڡ +bo + + gvue + = + +14 +is_me +< +T +, >:: +vue + || is_same::value || + +15 +is_me +< +T +, >:: +vue + || is_same::value; + +18 + gme + < +tyme + + gT +> + +19  + gIsChOrVoid + : +IsChOrVoid +< +T +> {}; + +21 + gme + < +tyme + + gTSour +> + +22  + gRd +< + gTSour +*, + +23 +tyme + + gab_if +< + gIsChOrVoid +< + gTSour +>:: +vue +>:: +ty +> { + +24 cڡ * +_r +; + +26 + gpublic +: + +27 +exic + +Rd +(cڡ * +r +) + +28 : +_r +( +r + ? +t_ +(ptr) : "") {} + +30  +ad +() { + +31  +ic_ +<>(* +_r +++); + +34 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +35  +size_t + + gi + = 0; i < + gngth +; i++ + gbufr +[ +i +] = * +_r +++; + +36  + gngth +; + +40 + gme + < +tyme + + gTSour +> + +41  + gBoundedRd +< + gTSour +*, + +42 +tyme + + gab_if +< + gIsChOrVoid +< + gTSour +>:: +vue +>:: +ty +> + +43 : +public + +ItRd + { + +44 +public +: + +45 +exic + +BoundedRd +(cڡ * +r +, +size_t + +n +) + +46 : +ItRd +( +t_ +( +r +), + +47 + gt_ +( + gr ++ + gn +) {} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTSour +> + +12  + gRd +< + gTSour +, +tyme + + gab_if +< + +13 + gis_ba_of +< + gd +:: +iam +, + gTSour +>:: +vue +>:: +ty +> { + +14 +public +: + +15 +exic + +Rd +( +d +:: +iam +& +am +: +_am +(&stream) {} + +17  +ad +() { + +18  +_am +-> +g +(); + +21 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +22 + g_am +-> +ad +( +bufr +, +ic_ +< +d +:: +amsize +>( +ngth +)); + +23  + gic_ +< + gsize_t +>( + g_am +-> +gcou +()); + +26 + give +: + +27 +d +:: +iam +* +_am +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTAay +> + +13  + gRd +< + gEmtProxy +< + gTAay +>, > : +Rd +<*, > { + +14 +exic + +Rd +(cڡ +EmtProxy +< +TAay +>& +x +) + +15 : +Rd +<*, >( + gx +. +me + + gas +()) {} + +18 + gme + < +tyme + + gTObje +,ym + gTSgRef +> + +19  + gRd +< + gMembProxy +< + gTObje +, + gTSgRef +>, > : +Rd +<*, > { + +20 +exic + +Rd +(cڡ +MembProxy +< +TObje +, +TSgRef +>& +x +) + +21 : +Rd +<*, >( + gx +. +me + + gas +()) {} + +24 + gme + <> + +25  + gRd +< + gVRef +, > : +Rd +<*, > { + +26 +exic + +Rd +( +VRef + +x +: Rd<*, >( + gx +. + gas +()) {} + +29 + gme + <> + +30  + gRd +< + gVCڡRef +, > : +Rd +<*, > { + +31 +exic + +Rd +( +VCڡRef + +x +) + +32 : +Rd +<*, >( + gx +. + gas +()) {} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 + gme + +ass + + gTDerliz +, +tyme + + gTRd +, + +16 +tyme + + gTWr +> + +17 + gTDerliz +< + gTRd +, + gTWr +> +makeDerliz +( +MemyPo + & +po +, + +18 +TRd + +ad +, + +19 +TWr + +wr +) { + +20  + gTDerliz +< + gTRd +, + gTWr +>( + gpo +, + gad +, + gwr +); + +28 + gme + +ass + + gTDerliz +, +tyme + + gTSg +, + +29 +tyme + + gTFr +> + +30 +tyme + + gab_if +:: +vue +, + gDerliziE +>:: +ty + + +31 +derlize +( +JsDocumt + & +doc +, cڡ +TSg + & +put +, +NegLim + +ágLim +, + +32 +TFr + +fr +) { + +33 + gRd +< + gTSg +> +ad +( +put +); + +34 + gdoc +. +r +(); + +35  + gmakeDerliz +< + gTDerliz +>( + +36 + gdoc +. +memyPo +(), + gad +, + +37 +makeSgStage +( +put +, +doc +. +memyPo +())) + +38 . +r +( +doc +. +da +(), +fr +, +ágLim +); + +44 + gme + +ass + + gTDerliz +, +tyme + + gTCh +, + +45 +tyme + + gTFr +> + +46 +DerliziE + +derlize +( +JsDocumt + & +doc +, +TCh + * +put +, + +47 +size_t + +putSize +, +NegLim + +ágLim +, + +48 +TFr + +fr +) { + +49 + gBoundedRd +< + gTCh + *> +ad +( +put +, +putSize +); + +50 + gdoc +. +r +(); + +51  + gmakeDerliz +< + gTDerliz +>( + +52 + gdoc +. +memyPo +(), + gad +, + +53 +makeSgStage +( +put +, +doc +. +memyPo +())) + +54 . +r +( +doc +. +da +(), +fr +, +ágLim +); + +59 + gme + +ass + + gTDerliz +, +tyme + + gTSm +, + +60 +tyme + + gTFr +> + +61 +DerliziE + +derlize +( +JsDocumt + & +doc +, +TSm + & +put +, + +62 +NegLim + +ágLim +, +TFr + +fr +) { + +63 + gRd +< + gTSm +> +ad +( +put +); + +64 + gdoc +. +r +(); + +65  + gmakeDerliz +< + gTDerliz +>( + +66 + gdoc +. +memyPo +(), + gad +, + +67 +makeSgStage +( +put +, +doc +. +memyPo +())) + +68 . +r +( +doc +. +da +(), +fr +, +ágLim +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gTAot +> + +14 as + cAotOwr + { + +15 + gpublic +: + +16 +AotOwr +() {} + +17 +AotOwr +(cڡ AotOwr& +c +: +_lot +(src._allocator) {} + +18 +AotOwr +( +TAot + +a +: +_lot +(a) {} + +20 * +lo +( +size_t + +size +) { + +21  +_lot +. +lo +( +size +); + +24  +do +(* +r +) { + +25 i( + gr +) + +26 + g_lot +. +do +( +r +); + +29 * +lo +(* +r +, +size_t + +w_size +) { + +30  + g_lot +. +lo +( +r +, +w_size +); + +33 + gTAot +& +lot +() { + +34  + g_lot +; + +37 + give +: + +38 +TAot + +_lot +; + +41 + gme + < +tyme + + gTAot +> + +42 +ass + + gBasicJsDocumt + : +AotOwr +< +TAot +>, +public + + gJsDocumt + { + +43 + gpublic +: + +44 +exic + +BasicJsDocumt +( +size_t + + +, +TAot + +loc + = TAllocator()) + +45 : +AotOwr +< +TAot +>( +loc +), +JsDocumt +( +locPo +( + +)) {} + +48 +BasicJsDocumt +(cڡ BasicJsDocumt& +c +) + +49 : +AotOwr +< +TAot +>( +c +), +JsDocumt +() { + +50 +cyAssignFrom +( +c +); + +54 #i +ARDUINOJSON_HAS_RVALUE_REFERENCES + + +55 +BasicJsDocumt +(BasicJsDocumt&& +c +: +AotOwr +< +TAot +>(src) { + +56 +moveAssignFrom +( +c +); + +60 +BasicJsDocumt +(cڡ +JsDocumt +& +c +) { + +61 +cyAssignFrom +( +c +); + +65 + gme + < +tyme + + gT +> + +66 +BasicJsDocumt +( + +67 cڡ +T +& +c +, + +68 +tyme + +ab_if +< + +69 +is_me +< +T +, +VRef +>:: +vue + || is_me::value || + +70 +is_me +< +T +, +AayRef +>:: +vue + || is_me::value || + +71 +is_me +< +T +, +ObjeRef +>:: +vue + || + +72 +is_me +< +T +, +ObjeCڡRef +>:: +vue +>:: +ty +* = 0) + +73 : +JsDocumt +( +locPo +( +c +. +memyUge +())) { + +74 +t +( +c +); + +78 +BasicJsDocumt +( +VRef + +c +) + +79 : +JsDocumt +( +locPo +( +c +. +memyUge +())) { + +80 +t +( +c +); + +83 ~ +BasicJsDocumt +() { + +84 +Po +(); + +87 + gBasicJsDocumt +& + gݔ +=(cڡ +BasicJsDocumt +& +c +) { + +88 +cyAssignFrom +( +c +); + +89  * + gthis +; + +92 #i +ARDUINOJSON_HAS_RVALUE_REFERENCES + + +93 + gBasicJsDocumt +& + gݔ +=( +BasicJsDocumt +&& +c +) { + +94 +moveAssignFrom +( +c +); + +95  * + gthis +; + +99 + gme + < +tyme + + gT +> + +100 + gBasicJsDocumt +& + gݔ +=(cڡ +T +& +c +) { + +101 +locPoIfTooSml +( +c +. +memyUge +()); + +102 +t +( +c +); + +103  * + gthis +; + +106  +shrkToF +() { + +107 +rdiff_t + + gbys_aimed + = +_po +. +squash +(); + +108 i( + gbys_aimed + == 0) + +111 * + gd_r + = +_po +. +bufr +(); + +112 * + gw_r + = +this +-> +lo +( +d_r +, +_po +. +cy +()); + +114 +rdiff_t + + gr_offt + = + +115 +ic_ +<*>( +w_r +- stic_<*>( +d_r +); + +117 + g_po +. +movePors +( +r_offt +); + +118 + g_da +. +movePors +( +r_offt +,_off- +bys_aimed +); + +121 +bo + +gbageC +() { + +123 +BasicJsDocumt + +tmp +(* +this +); + +124 i(! + gtmp +. +cy +()) + +125  + gl +; + +126 + gtmp +. +t +(* +this +); + +127 +moveAssignFrom +( +tmp +); + +128  + gue +; + +131 +usg + + gAotOwr +< + gTAot +>:: +lot +; + +133 + give +: + +134 +MemyPo + +locPo +( +size_t + +quedSize +) { + +135 +size_t + + + = +addPaddg +( +quedSize +); + +136  +MemyPo +( +t_ +<*>( +this +-> +lo +( + +)), capa); + +139  +locPoIfTooSml +( +size_t + +quedSize +) { + +140 i( + gquedSize + < +cy +()) + +142 +Po +(); + +143 +aPo +( +locPo +( +addPaddg +( +quedSize +))); + +146  +Po +() { + +147 + gthis +-> +do +( +memyPo +(). +bufr +()); + +150  +cyAssignFrom +(cڡ +JsDocumt +& +c +) { + +151 +locPoIfTooSml +( +c +. +cy +()); + +152 +t +( +c +); + +155  +moveAssignFrom +( +BasicJsDocumt +& +c +) { + +156 +Po +(); + +157 + g_da + = +c +. +_da +; + +158 + g_po + = +c +. +_po +; + +159 + gc +. + g_da +. +tNu +(); + +160 + gc +. + g_po + = +MemyPo +(0, 0); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13  + sDeuAot + { + +14 * +lo +( +size_t + +size +) { + +15  +mloc +( +size +); + +18  +do +(* +r +) { + +19 + +( +r +); + +22 * +lo +(* +r +, +size_t + +w_size +) { + +23  +loc +( +r +, +w_size +); + +27  + gBasicJsDocumt +< + tDeuAot +> + tDymicJsDocumt +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +16 as + cJsDocumt + : +public + +Visab + { + +17 +public +: + +18 +me + < +tyme + +TVis +> + +19 +tyme + +TVis +:: +su_ty + +ac +(TVis& +vis +) const { + +20  +gV +(). +ac +( +vis +); + +23 + gme + < +tyme + + gT +> + +24 +tyme + + gVAs +< + gT +>:: +ty + +as +() { + +25  +gV +(). +me + +as +< +T +>(); + +28 + gme + < +tyme + + gT +> + +29 +tyme + + gVCڡAs +< + gT +>:: +ty + +as +() const { + +30  +gV +(). +me + +as +< +T +>(); + +33  +r +() { + +34 + g_po +. +r +(); + +35 + g_da +. +tNu +(); + +38 + gme + < +tyme + + gT +> + +39 +bo + +is +() const { + +40  +gV +(). +me + + gis +< + gT +>(); + +43 +bo + +isNu +() const { + +44  +gV +(). +isNu +(); + +47 +size_t + +memyUge +() const { + +48  + g_po +. +size +(); + +51 +bo + +ovowed +() const { + +52  + g_po +. +ovowed +(); + +55 +size_t + +ág +() const { + +56  + g_da +. +ág +(); + +59 +size_t + +cy +() const { + +60  + g_po +. +cy +(); + +63 +size_t + +size +() const { + +64  + g_da +. +size +(); + +67 +bo + +t +(cڡ +JsDocumt +& +c +) { + +68  + gto +< + gVRef +>(). +t +( +c +. +as +< +VRef +>()); + +71 + gme + < +tyme + + gT +> + +72 +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +t +( + +73 cڡ +T +& +c +) { + +74  +to +< +VRef +>(). +t +( +c +); + +77 + gme + < +tyme + + gT +> + +78 +tyme + + gVTo +< + gT +>:: +ty + +to +() { + +79 +r +(); + +80  +gV +(). +me + + gto +< + gT +>(); + +84 + gMemyPo +& +memyPo +() { + +85  + g_po +; + +89 + gVDa +& +da +() { + +90  + g_da +; + +93 +AayRef + +NeedAay +() { + +94  +addEmt +(). + gto +< + gAayRef +>(); + +100 + gme + < +tyme + + gTCh +> + +101 +AayRef + +NeedAay +( +TCh +* +key +) { + +102  +gOrAddMemb +( +key +). +me + + gto +< + gAayRef +>(); + +107 + gme + < +tyme + + gTSg +> + +108 +AayRef + +NeedAay +(cڡ +TSg +& +key +) { + +109  +gOrAddMemb +( +key +). +me + + gto +< + gAayRef +>(); + +112 +ObjeRef + +NeedObje +() { + +113  +addEmt +(). + gto +< + gObjeRef +>(); + +119 + gme + < +tyme + + gTCh +> + +120 +ObjeRef + +NeedObje +( +TCh +* +key +) { + +121  +gOrAddMemb +( +key +). +me + + gto +< + gObjeRef +>(); + +126 + gme + < +tyme + + gTSg +> + +127 +ObjeRef + +NeedObje +(cڡ +TSg +& +key +) { + +128  +gOrAddMemb +( +key +). +me + + gto +< + gObjeRef +>(); + +134 + gme + < +tyme + + gTCh +> + +135 +bo + +cڏsKey +( +TCh +* +key +) const { + +136  ! +gMemb +( +key +). +isUndefed +(); + +141 + gme + < +tyme + + gTSg +> + +142 +bo + +cڏsKey +(cڡ +TSg +& +key +) const { + +143  ! +gMemb +( +key +). +isUndefed +(); + +148 + gme + < +tyme + + gTSg +> + +149 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + +150 + gMembProxy +< + gJsDocumt +&, + gTSg +> >:: +ty + + +151 +ݔ +[](cڡ +TSg +& +key +) { + +152  +MembProxy +< +JsDocumt +&, + gTSg +>(* + gthis +, + gkey +); + +158 + gme + < +tyme + + gTCh +> + +159 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +, + +160 + gMembProxy +< + gJsDocumt +&, + gTCh +*> >:: +ty + + +161 +ݔ +[]( +TCh +* +key +) { + +162  +MembProxy +< +JsDocumt +&, + gTCh +*>(* + gthis +, + gkey +); + +167 + gme + < +tyme + + gTSg +> + +168 +FORCE_INLINE + + +169 +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVCڡRef +>:: +ty + + +170 +ݔ +[](cڡ +TSg +& +key +) const { + +171  +gMemb +( +key +); + +177 + gme + < +tyme + + gTCh +> + +178 +FORCE_INLINE + + +179 +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +, + gVCڡRef +>:: +ty + + +180 +ݔ +[]( +TCh +* +key +) const { + +181  +gMemb +( +key +); + +184 +FORCE_INLINE + + gEmtProxy +< + gJsDocumt +&> + gݔ +[]( +size_t + + gdex +) { + +185  + gEmtProxy +< + gJsDocumt +&>(* + gthis +, + gdex +); + +188 +FORCE_INLINE + +VCڡRef + + gݔ +[]( +size_t + + gdex +) const { + +189  +gEmt +( +dex +); + +192 +FORCE_INLINE + +VRef + +gEmt +( +size_t + +dex +) { + +193  +VRef +(& +_po +, +_da +. +gEmt +( +dex +)); + +196 +FORCE_INLINE + +VCڡRef + +gEmt +( +size_t + +dex +) const { + +197  +VCڡRef +( +_da +. +gEmt +( +dex +)); + +200 +FORCE_INLINE + +VRef + +gOrAddEmt +( +size_t + +dex +) { + +201  +VRef +(& +_po +, +_da +. +gOrAddEmt +( +dex +, &_pool)); + +207 + gme + < +tyme + + gTCh +> + +208 +FORCE_INLINE + +VCڡRef + +gMemb +( +TCh +* +key +) const { + +209  +VCڡRef +( +_da +. +gMemb +( +adtSg +( +key +))); + +214 + gme + < +tyme + + gTSg +> + +215 +FORCE_INLINE + + +216 +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVCڡRef +>:: +ty + + +217 +gMemb +(cڡ +TSg +& +key +) const { + +218  +VCڡRef +( +_da +. +gMemb +( +adtSg +( +key +))); + +224 + gme + < +tyme + + gTCh +> + +225 +FORCE_INLINE + +VRef + +gMemb +( +TCh +* +key +) { + +226  +VRef +(& +_po +, +_da +. +gMemb +( +adtSg +( +key +))); + +231 + gme + < +tyme + + gTSg +> + +232 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVRef +>:: +ty + + +233 +gMemb +(cڡ +TSg +& +key +) { + +234  +VRef +(& +_po +, +_da +. +gMemb +( +adtSg +( +key +))); + +240 + gme + < +tyme + + gTCh +> + +241 +FORCE_INLINE + +VRef + +gOrAddMemb +( +TCh +* +key +) { + +242  +VRef +(& +_po +, +_da +. +gOrAddMemb +( +adtSg +( +key +), &_pool)); + +247 + gme + < +tyme + + gTSg +> + +248 +FORCE_INLINE + +VRef + +gOrAddMemb +(cڡ +TSg +& +key +) { + +249  +VRef +(& +_po +, +_da +. +gOrAddMemb +( +adtSg +( +key +), &_pool)); + +252 +FORCE_INLINE + +VRef + +addEmt +() { + +253  +VRef +(& +_po +, +_da +. +addEmt +(&_pool)); + +256 + gme + < +tyme + + gTVue +> + +257 +FORCE_INLINE + +bo + +add +(cڡ +TVue +& +vue +) { + +258  +addEmt +(). +t +( +vue +); + +264 + gme + < +tyme + + gTCh +> + +265 +FORCE_INLINE + +bo + +add +( +TCh +* +vue +) { + +266  +addEmt +(). +t +( +vue +); + +269 +FORCE_INLINE +  +move +( +size_t + +dex +) { + +270 + g_da +. +move +( +dex +); + +275 + gme + < +tyme + + gTCh +> + +276 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +>:: +ty + +move +( + +277 +TCh +* +key +) { + +278 +_da +. +move +( +adtSg +( +key +)); + +282 + gme + < +tyme + + gTSg +> + +283 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +>:: +ty + +move +( + +284 cڡ +TSg +& +key +) { + +285 +_da +. +move +( +adtSg +( +key +)); + +288 +FORCE_INLINE + +ݔ + +VCڡRef +() const { + +289  +VCڡRef +(& +_da +); + +292 +bo + + gݔ +==( +VCڡRef + +rhs +) const { + +293  +gV +(= +rhs +; + +296 +bo + + gݔ +!=( +VCڡRef + +rhs +) const { + +297  +gV +(! +rhs +; + +300 + geed +: + +301 +JsDocumt +(: +_po +(0, 0) { + +302 + g_da +. +tNu +(); + +305 +JsDocumt +( +MemyPo + +po +: +_po +(pool) { + +306 +_da +. +tNu +(); + +309 +JsDocumt +(* +buf +, +size_t + + +: +_po +(buf, capa) { + +310 + g_da +. +tNu +(); + +313  +aPo +( +MemyPo + +po +) { + +314 + g_po + = +po +; + +317 +VRef + +gV +() { + +318  +VRef +(& +_po +, & +_da +); + +321 +VCڡRef + +gV +() const { + +322  +VCڡRef +(& +_da +); + +325 +MemyPo + + g_po +; + +326 +VDa + + g_da +; + +328 + give +: + +329 +JsDocumt +(const JsonDocument&); + +330 + gJsDocumt +& + gݔ +=(cڡ +JsDocumt +&); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/StaticJsonDocument.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +size_t + + gdesedCacy +> + +12 as + cSticJsDocumt + : +public + +JsDocumt + { + +13 cڡ +size_t + +_cy + = + +14 +AddPaddg +< +Max +<1, + gdesedCacy +>:: +vue +>::value; + +16 + gpublic +: + +17 +SticJsDocumt +(: +JsDocumt +( +_bufr +, +_cy +) {} + +19 +SticJsDocumt +(cڡ SticJsDocumt& +c +) + +20 : +JsDocumt +( +_bufr +, +_cy +) { + +21 +t +( +c +); + +24 + gme + < +tyme + + gT +> + +25 +SticJsDocumt +(cڡ +T +& +c +, + +26 +tyme + +ab_if +< +IsVisab +< +T +>:: +vue +>:: +ty +* = 0) + +27 : +JsDocumt +( +_bufr +, +_cy +) { + +28 +t +( +c +); + +32 +SticJsDocumt +( +VRef + +c +: +JsDocumt +( +_bufr +, +_cy +) { + +33 +t +( +c +); + +36 +SticJsDocumt + + gݔ +=(cڡ SticJsDocumt& +c +) { + +37 +t +( +c +); + +38  * + gthis +; + +41 + gme + < +tyme + + gT +> + +42 +SticJsDocumt + + gݔ +=(cڡ +T +& +c +) { + +43 +t +( +c +); + +44  * + gthis +; + +47  +gbageC +() { + +48 +SticJsDocumt + +tmp +(* +this +); + +49 +t +( +tmp +); + +52 + give +: + +53  +_bufr +[ +_cy +]; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 as + cEsSequ + { + +12 + gpublic +: + +14  +esCh +( +c +) { + +15 cڡ * +p + = +esTab +( +ue +); + +16  + gp +[0] &&[1] ! +c +) { + +17 +p + += 2; + +19  + gp +[0]; + +23  +usCh +( +c +) { + +24 cڡ * + gp + = +esTab +( +l +); + +26 i( + gp +[0] == '\0') + +28 i( + gp +[0] = +c +) + +29  +p +[1]; + +30 + gp + += 2; + +34 + give +: + +35 cڡ * +esTab +( +bo + +exudeSidus +) { + +36  &"//\"\"\\\\b\bf\\\\t"[ +exudeSidus + ? 2 : 0]; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +16  + ~ + +18 +mea + + gARDUINOJSON_NAMESPACE + { + +20 + gme + < +tyme + + gTRd +,ym + gTSgStage +> + +21 as + cJsDerliz + { + +22 + gpublic +: + +23 +JsDerliz +( +MemyPo + & +po +, +TRd + +ad +, + +24 +TSgStage + +rgStage +) + +25 : +_rgStage +( +rgStage +), + +26 +_foundSomhg +( +l +), + +27 +_tch +( +ad +), + +28 +_po +(& +po +), + +29 +_r +( +DerliziE +:: +Ok +) {} + +31 +me + < +tyme + +TFr +> + +32 +DerliziE + +r +( +VDa + & +v +, +TFr + +fr +, + +33 +NegLim + +ágLim +) { + +34 +rV +( +v +, +fr +, +ágLim +); + +36 i(! + g_r + && + g_tch +. +ϡ +(!0 && ! +v +. +isEnod +()) { + +38  +DerliziE +:: +InvidIut +; + +41  + g_r +; + +44 + give +: + +45 +JsDerliz + & +ݔ +=(const JsonDeserializer &); + +47  +cut +() { + +48  + g_tch +. +cut +(); + +51  +move +() { + +52 + g_tch +. +r +(); + +55 +bo + +t +( +chToSk +) { + +56 i( +cut +(! +chToSk +) + +57  +l +; + +58 +move +(); + +59  + gue +; + +62 + gme + < +tyme + + gTFr +> + +63 +bo + +rV +( +VDa + & +v +, +TFr + +fr +, + +64 +NegLim + +ágLim +) { + +65 i(! +skSsAndCommts +()) + +66  + gl +; + +68  +cut +()) { + +70 i( +fr +. +lowAay +()) + +71  +rAay +( +v +. +toAay +(), +fr +, +ágLim +); + +73  +skAay +( +ágLim +); + +76 i( +fr +. +lowObje +()) + +77  +rObje +( +v +. +toObje +(), +fr +, +ágLim +); + +79  +skObje +( +ágLim +); + +83 i( +fr +. +lowVue +()) + +84  +rSgVue +( +v +); + +86  +skSg +(); + +89 i( +fr +. +lowVue +()) + +90  +rNumicVue +( +v +); + +92  +skNumicVue +(); + +96 +bo + +skV +( +NegLim + +ágLim +) { + +97 i(! +skSsAndCommts +()) + +98  + gl +; + +100  +cut +()) { + +102  +skAay +( +ágLim +); + +105  +skObje +( +ágLim +); + +109  +skSg +(); + +112  +skNumicVue +(); + +116 + gme + < +tyme + + gTFr +> + +117 +bo + +rAay +( +CiDa + & +y +, +TFr + +fr +, + +118 +NegLim + +ágLim +) { + +119 i( + gágLim +. +ached +()) { + +120 + g_r + = +DerliziE +:: +TooDp +; + +121  + gl +; + +125 +ARDUINOJSON_ASSERT +( +cut +() == '['); + +126 +move +(); + +129 i(! +skSsAndCommts +()) + +130  + gl +; + +133 i( +t +(']')) + +134  + gue +; + +136 +TFr + + gmembFr + = +fr +[0UL]; + +140 i( + gmembFr +. +low +()) { + +142 +VDa + * + gvue + = +y +. +addEmt +( +_po +); + +143 i(! + gvue +) { + +144 + g_r + = +DerliziE +:: +NoMemy +; + +145  + gl +; + +149 i(! +rV +(* +vue +, +membFr +, +ágLim +. +deemt +())) + +150  + gl +; + +152 i(! +skV +( +ágLim +. +deemt +())) + +153  + gl +; + +157 i(! +skSsAndCommts +()) + +158  + gl +; + +161 i( +t +(']')) + +162  + gue +; + +163 i(! +t +(',')) { + +164 + g_r + = +DerliziE +:: +InvidIut +; + +165  + gl +; + +170 +bo + +skAay +( +NegLim + +ágLim +) { + +171 i( + gágLim +. +ached +()) { + +172 + g_r + = +DerliziE +:: +TooDp +; + +173  + gl +; + +177 +ARDUINOJSON_ASSERT +( +cut +() == '['); + +178 +move +(); + +183 i(! +skV +( +ágLim +. +deemt +())) + +184  + gl +; + +187 i(! +skSsAndCommts +()) + +188  + gl +; + +191 i( +t +(']')) + +192  + gue +; + +193 i(! +t +(',')) { + +194 + g_r + = +DerliziE +:: +InvidIut +; + +195  + gl +; + +200 + gme + < +tyme + + gTFr +> + +201 +bo + +rObje +( +CiDa + & +obje +, +TFr + +fr +, + +202 +NegLim + +ágLim +) { + +203 i( + gágLim +. +ached +()) { + +204 + g_r + = +DerliziE +:: +TooDp +; + +205  + gl +; + +209 +ARDUINOJSON_ASSERT +( +cut +() == '{'); + +210 +move +(); + +213 i(! +skSsAndCommts +()) + +214  + gl +; + +217 i( +t +('}')) + +218  + gue +; + +223 i(! +rKey +()) + +224  + gl +; + +227 i(! +skSsAndCommts +()) + +228  + gl +; + +231 i(! +t +(':')) { + +232 + g_r + = +DerliziE +:: +InvidIut +; + +233  + gl +; + +236 cڡ * + gkey + = +_rgStage +. +c_r +(); + +238 +TFr + + gmembFr + = +fr +[ +key +]; + +240 i( + gmembFr +. +low +()) { + +241 +VDa + * + gv + = +obje +. +gMemb +( +adtSg +( +key +)); + +242 i(! + gv +) { + +245 + gkey + = +_rgStage +. +ve +(); + +248 +VSl + * + g + = +obje +. +addSl +( +_po +); + +249 i(! + g +) { + +250 + g_r + = +DerliziE +:: +NoMemy +; + +251  + gl +; + +254 + g +-> +tKey +( +key +, +tyme + +TSgStage +:: +age_picy +()); + +256 + gv + = + +-> +da +(); + +260 i(! +rV +(* +v +, +membFr +, +ágLim +. +deemt +())) + +261  + gl +; + +263 i(! +skV +( +ágLim +. +deemt +())) + +264  + gl +; + +268 i(! +skSsAndCommts +()) + +269  + gl +; + +272 i( +t +('}')) + +273  + gue +; + +274 i(! +t +(',')) { + +275 + g_r + = +DerliziE +:: +InvidIut +; + +276  + gl +; + +280 i(! +skSsAndCommts +()) + +281  + gl +; + +285 +bo + +skObje +( +NegLim + +ágLim +) { + +286 i( + gágLim +. +ached +()) { + +287 + g_r + = +DerliziE +:: +TooDp +; + +288  + gl +; + +292 +ARDUINOJSON_ASSERT +( +cut +() == '{'); + +293 +move +(); + +296 i(! +skSsAndCommts +()) + +297  + gl +; + +300 i( +t +('}')) + +301  + gue +; + +306 i(! +skV +( +ágLim +. +deemt +())) + +307  + gl +; + +310 i(! +skSsAndCommts +()) + +311  + gl +; + +314 i(! +t +(':')) { + +315 + g_r + = +DerliziE +:: +InvidIut +; + +316  + gl +; + +320 i(! +skV +( +ágLim +. +deemt +())) + +321  + gl +; + +324 i(! +skSsAndCommts +()) + +325  + gl +; + +328 i( +t +('}')) + +329  + gue +; + +330 i(! +t +(',')) { + +331 + g_r + = +DerliziE +:: +InvidIut +; + +332  + gl +; + +337 +bo + +rKey +() { + +338 + g_rgStage +. +tSg +(); + +339 i( +isQue +( +cut +())) { + +340  +rQuedSg +(); + +342  +rNQuedSg +(); + +346 +bo + +rSgVue +( +VDa + & +v +) { + +347 + g_rgStage +. +tSg +(); + +348 i(! +rQuedSg +()) + +349  + gl +; + +350 cڡ * + gvue + = +_rgStage +. +ve +(); + +351 + gv +. +tSgPor +( +vue +, +tyme + +TSgStage +:: +age_picy +()); + +352  + gue +; + +355 +bo + +rQuedSg +() { + +356 #i +ARDUINOJSON_DECODE_UNICODE + + +357 + gUtf16 +:: +Codot + +codot +; + +359 cڡ  + gCh + = +cut +(); + +361 +move +(); + +363  + gc + = +cut +(); + +364 +move +(); + +365 i( + gc + = +Ch +) + +368 i( + gc + == '\0') { + +369 +_r + = +DerliziE +:: +IncomeIut +; + +370  + gl +; + +373 i( + gc + == '\\') { + +374 +c + = +cut +(); + +376 i( + gc + == '\0') { + +377 +_r + = +DerliziE +:: +IncomeIut +; + +378  + gl +; + +381 i( + gc + == 'u') { + +382 #i +ARDUINOJSON_DECODE_UNICODE + + +383 +move +(); + +384 +ut16_t + + gcodeun +; + +385 i(! +rHex4 +( +codeun +)) + +386  + gl +; + +387 i( + gcodot +. +nd +( +codeun +)) + +388 + gUtf8 +:: +codeCodot +( +codot +. +vue +(), +_rgStage +); + +391 + g_r + = +DerliziE +:: +NSu܋d +; + +392  + gl +; + +397 + gc + = +EsSequ +:: +usCh +( +c +); + +398 i( + gc + == '\0') { + +399 +_r + = +DerliziE +:: +InvidIut +; + +400  + gl +; + +402 +move +(); + +405 + g_rgStage +. +nd +( +c +); + +408 + g_rgStage +. +nd +('\0'); + +410 i(! + g_rgStage +. +isVid +()) { + +411 + g_r + = +DerliziE +:: +NoMemy +; + +412  + gl +; + +415  + gue +; + +418 +bo + +rNQuedSg +() { + +419  + gc + = +cut +(); + +420 +ARDUINOJSON_ASSERT +( +c +); + +422 i( +nBeInNQuedSg +( +c +)) { + +424 +move +(); + +425 + g_rgStage +. +nd +( +c +); + +426 + gc + = +cut +(); + +427 }  +nBeInNQuedSg +( +c +)); + +429 + g_r + = +DerliziE +:: +InvidIut +; + +430  + gl +; + +433 + g_rgStage +. +nd +('\0'); + +435 i(! + g_rgStage +. +isVid +()) { + +436 + g_r + = +DerliziE +:: +NoMemy +; + +437  + gl +; + +440  + gue +; + +443 +bo + +skSg +() { + +444 cڡ  + gCh + = +cut +(); + +446 +move +(); + +448  + gc + = +cut +(); + +449 +move +(); + +450 i( + gc + = +Ch +) + +452 i( + gc + == '\0') { + +453 +_r + = +DerliziE +:: +IncomeIut +; + +454  + gl +; + +456 i( + gc + == '\\') { + +457 i( +cut +() != '\0') + +458 +move +(); + +462  + gue +; + +465 +bo + +rNumicVue +( +VDa + & +su +) { + +466 +ut8_t + + gn + = 0; + +468  + gc + = +cut +(); + +469  +nBeInNQuedSg +( +c +&& + gn + < 63) { + +470 +move +(); + +471 + g_bufr +[ +n +++] = +c +; + +472 + gc + = +cut +(); + +474 + g_bufr +[ +n +] = 0; + +476 + gc + = +_bufr +[0]; + +477 i( + gc + == 't') { + +478 +su +. +tBoޗn +( +ue +); + +479 i( + gn + != 4) { + +480 +_r + = +DerliziE +:: +IncomeIut +; + +481  + gl +; + +483  + gue +; + +485 i( + gc + == 'f') { + +486 +su +. +tBoޗn +( +l +); + +487 i( + gn + != 5) { + +488 +_r + = +DerliziE +:: +IncomeIut +; + +489  + gl +; + +491  + gue +; + +493 i( + gc + == 'n') { + +495 i( +n + != 4) { + +496 +_r + = +DerliziE +:: +IncomeIut +; + +497  + gl +; + +499  + gue +; + +502 i(! +rNumb +( +_bufr +, +su +)) { + +503 + g_r + = +DerliziE +:: +InvidIut +; + +504  + gl +; + +507  + gue +; + +510 +bo + +skNumicVue +() { + +511  + gc + = +cut +(); + +512  +nBeInNQuedSg +( +c +)) { + +513 +move +(); + +514 + gc + = +cut +(); + +516  + gue +; + +519 +bo + +rHex4 +( +ut16_t + & +su +) { + +520 + gsu + = 0; + +521  +ut8_t + + gi + = 0; i < 4; ++i) { + +522  + gdig + = +cut +(); + +523 i(! + gdig +) { + +524 + g_r + = +DerliziE +:: +IncomeIut +; + +525  + gl +; + +527 +ut8_t + + gvue + = +decodeHex +( +dig +); + +528 i( + gvue + > 0x0F) { + +529 + g_r + = +DerliziE +:: +InvidIut +; + +530  + gl +; + +532 + gsu + = +ut16_t +(( +su + << 4| +vue +); + +533 +move +(); + +535  + gue +; + +538  +le + +bo + +isBwn +( +c +,  +m +,  +max +) { + +539  + gm + < +c + && c < +max +; + +542  +le + +bo + +nBeInNQuedSg +( +c +) { + +543  +isBwn +( +c +, '0', '9') || isBetween(c, '_', 'z') || + +544 +isBwn +( +c +, 'A', 'Z'|| + gc + == '+' || c == '-' || c == '.'; + +547  +le + +bo + +isQue +( +c +) { + +548  + gc + ='\'' || +c + == '\"'; + +551  +le + +ut8_t + +decodeHex +( +c +) { + +552 i( + gc + < 'A') + +553  +ut8_t +( +c + - '0'); + +554 + gc + = ( +c + & ~0x20); + +555  +ut8_t +( +c + - 'A' + 10); + +558 +bo + +skSsAndCommts +() { + +560  +cut +()) { + +563 +_r + = +_foundSomhg + ? +DerliziE +:: +IncomeIut + + +564 : +DerliziE +:: +EmyIut +; + +565  + gl +; + +572 +move +(); + +575 #i +ARDUINOJSON_ENABLE_COMMENTS + + +578 +move +(); + +579  +cut +()) { + +582 +move +(); + +583 +bo + + gwasSr + = +l +; + +585  + gc + = +cut +(); + +586 i( + gc + == '\0') { + +587 +_r + = +DerliziE +:: +IncomeIut +; + +588  + gl +; + +590 i( + gc + ='/' && +wasSr +) { + +591 +move +(); + +594 + gwasSr + = +c + == '*'; + +595 +move +(); + +604 +move +(); + +605  + gc + = +cut +(); + +606 i( + gc + == '\0') { + +607 +_r + = +DerliziE +:: +IncomeIut +; + +608  + gl +; + +610 i( + gc + == '\n') + +617 +_r + = +DerliziE +:: +InvidIut +; + +618  + gl +; + +624 +_foundSomhg + = +ue +; + +625  + gue +; + +630 +TSgStage + + g_rgStage +; + +631 +bo + + g_foundSomhg +; + +632 + gLch +< + gTRd +> + g_tch +; + +633 +MemyPo + * + g_po +; + +634  + g_bufr +[64]; + +637 +DerliziE + + g_r +; + +644 + gme + < +tyme + + gTSg +> + +645 +DerliziE + +derlizeJs +( + +646 +JsDocumt + & +doc +, cڡ +TSg + & +put +, + +647 +NegLim + +ágLim + = + $NegLim +()) { + +648  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, + +649 + `AowAFr +()); + +650 + } +} + +652 + gme + < +tyme + + gTSg +> + +653 +DerliziE + +derlizeJs +( + +654 +JsDocumt + & +doc +, cڡ +TSg + & +put +, +Fr + +fr +, + +655 +NegLim + +ágLim + = + $NegLim +()) { + +656  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +657 + } +} + +659 + gme + < +tyme + + gTSg +> + +660 +DerliziE + + $derlizeJs +( +JsDocumt + & +doc +, cڡ +TSg + & +put +, + +661 +NegLim + +ágLim +, +Fr + +fr +) { + +662  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +663 + } +} + +669 + gme + < +tyme + + gTSm +> + +670 +DerliziE + +derlizeJs +( + +671 +JsDocumt + & +doc +, +TSm + & +put +, + +672 +NegLim + +ágLim + = + $NegLim +()) { + +673  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, + +674 + `AowAFr +()); + +675 + } +} + +677 + gme + < +tyme + + gTSm +> + +678 +DerliziE + +derlizeJs +( + +679 +JsDocumt + & +doc +, +TSm + & +put +, +Fr + +fr +, + +680 +NegLim + +ágLim + = + $NegLim +()) { + +681  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +682 + } +} + +684 + gme + < +tyme + + gTSm +> + +685 +DerliziE + + $derlizeJs +( +JsDocumt + & +doc +, +TSm + & +put +, + +686 +NegLim + +ágLim +, +Fr + +fr +) { + +687  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +688 + } +} + +694 + gme + < +tyme + + gTCh +> + +695 +DerliziE + +derlizeJs +( + +696 +JsDocumt + & +doc +, +TCh + * +put +, + +697 +NegLim + +ágLim + = + $NegLim +()) { + +698  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, + +699 + `AowAFr +()); + +700 + } +} + +702 + gme + < +tyme + + gTCh +> + +703 +DerliziE + +derlizeJs +( + +704 +JsDocumt + & +doc +, +TCh + * +put +, +Fr + +fr +, + +705 +NegLim + +ágLim + = + $NegLim +()) { + +706  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +707 + } +} + +709 + gme + < +tyme + + gTCh +> + +710 +DerliziE + + $derlizeJs +( +JsDocumt + & +doc +, +TCh + * +put +, + +711 +NegLim + +ágLim +, +Fr + +fr +) { + +712  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +713 + } +} + +719 + gme + < +tyme + + gTCh +> + +720 +DerliziE + +derlizeJs +( + +721 +JsDocumt + & +doc +, +TCh + * +put +, +size_t + +putSize +, + +722 +NegLim + +ágLim + = + $NegLim +()) { + +723  +derlize +< +JsDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +724 + `AowAFr +()); + +725 + } +} + +727 + gme + < +tyme + + gTCh +> + +728 +DerliziE + +derlizeJs +( + +729 +JsDocumt + & +doc +, +TCh + * +put +, +size_t + +putSize +, +Fr + +fr +, + +730 +NegLim + +ágLim + = + $NegLim +()) { + +731  +derlize +< +JsDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +732 +fr +); + +733 + } +} + +735 + gme + < +tyme + + gTCh +> + +736 +DerliziE + + $derlizeJs +( +JsDocumt + & +doc +, +TCh + * +put +, + +737 +size_t + +putSize +, + +738 +NegLim + +ágLim +, +Fr + +fr +) { + +739  +derlize +< +JsDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +740 +fr +); + +741 + } +} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +tyme + + gTWr +> + +15 +ass + + gJsSliz + : +public + +Vis +< +size_t +> { + +16 +public +: + +17 +JsSliz +( +TWr + +wr +: +_fmr +(writer) {} + +19 +FORCE_INLINE + +size_t + +visAay +(cڡ +CiDa + & +y +) { + +20 +wre +('['); + +22 +VSl + * + g + = +y +. +hd +(); + +24  + g + != 0) { + +25 + +-> +da +()-> +ac +(* +this +); + +27 + g + = + +-> +xt +(); + +28 i( + g + == 0) + +31 +wre +(','); + +34 +wre +(']'); + +35  +bysWrn +(); + +38 +size_t + +visObje +(cڡ +CiDa + & +obje +) { + +39 +wre +('{'); + +41 +VSl + * + g + = +obje +. +hd +(); + +43  + g + != 0) { + +44 +_fmr +. +wreSg +( + +-> +key +()); + +45 +wre +(':'); + +46 + g +-> +da +()-> +ac +(* +this +); + +48 + g + = + +-> +xt +(); + +49 i( + g + == 0) + +52 +wre +(','); + +55 +wre +('}'); + +56  +bysWrn +(); + +59 +size_t + +visFlt +( +Flt + +vue +) { + +60 + g_fmr +. +wreFlt +( +vue +); + +61  +bysWrn +(); + +64 +size_t + +visSg +(cڡ * +vue +) { + +65 + g_fmr +. +wreSg +( +vue +); + +66  +bysWrn +(); + +69 +size_t + +visRawJs +(cڡ * +da +, size_ +n +) { + +70 + g_fmr +. +wreRaw +( +da +, +n +); + +71  +bysWrn +(); + +74 +size_t + +visNegiveIeg +( +UI + +vue +) { + +75 + g_fmr +. +wreNegiveIeg +( +vue +); + +76  +bysWrn +(); + +79 +size_t + +visPosiveIeg +( +UI + +vue +) { + +80 + g_fmr +. +wrePosiveIeg +( +vue +); + +81  +bysWrn +(); + +84 +size_t + +visBoޗn +( +bo + +vue +) { + +85 + g_fmr +. +wreBoޗn +( +vue +); + +86  +bysWrn +(); + +89 +size_t + +visNu +() { + +90 + g_fmr +. +wreRaw +("null"); + +91  +bysWrn +(); + +94 + geed +: + +95 +size_t + +bysWrn +() const { + +96  +_fmr +. +bysWrn +(); + +99  +wre +( +c +) { + +100 + g_fmr +. +wreRaw +( +c +); + +103  +wre +(cڡ * +s +) { + +104 + g_fmr +. +wreRaw +( +s +); + +107 + give +: + +108 +TextFmr +< +TWr +> +_fmr +; + +111 + gme + < +tyme + + gTSour +,ym + gTDei +> + +112 +size_t + +rlizeJs +(cڡ +TSour + & +sour +, +TDei + & +dei +) { + +113  + grlize +< + gJsSliz +>( + gsour +, + gdei +); + +116 + gme + < +tyme + + gTSour +> + +117 +size_t + +rlizeJs +(cڡ +TSour + & +sour +, * +bufr +, size_ +bufrSize +) { + +118  + grlize +< + gJsSliz +>( + gsour +, + gbufr +, + gbufrSize +); + +121 + gme + < +tyme + + gTSour +> + +122 +size_t + +msuJs +(cڡ +TSour + & +sour +) { + +123  + gmsu +< + gJsSliz +>( + gsour +); + +126 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +127 + gme + < +tyme + + gT +> + +128 +le + +tyme + + gab_if +< + gIsVisab +< + gT +>:: +vue +, + gd +:: +oam + &>:: +ty + + +129 +ݔ +<<( +d +:: +oam + & +os +, cڡ + gT + & + gsour +) { + +130 +rlizeJs +( +sour +, +os +); + +131  + gos +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Latch.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTRd +> + +12 as + cLch + { + +13 + gpublic +: + +14 +Lch +( +TRd + +ad +: +_ad +ԗd), +_lded +( +l +) { + +15 #i +ARDUINOJSON_DEBUG + + +16 + g_ded + = +l +; + +20  +r +() { + +21 + g_lded + = +l +; + +24  +ϡ +() const { + +25  + g_cut +; + +28 +FORCE_INLINE +  +cut +() { + +29 i(! + g_lded +) { + +30 +ld +(); + +32  + g_cut +; + +35 + give +: + +36  +ld +() { + +37 +ARDUINOJSON_ASSERT +(! +_ded +); + +38  + gc + = +_ad +. +ad +(); + +39 #i +ARDUINOJSON_DEBUG + + +40 i( + gc + <= 0) + +41 +_ded + = +ue +; + +43 + g_cut + = +ic_ +<>( +c + > 0 ? c : 0); + +44 + g_lded + = +ue +; + +47 +TRd + + g_ad +; + +48  + g_cut +; + +49 +bo + + g_lded +; + +50 #i +ARDUINOJSON_DEBUG + + +51 +bo + + g_ded +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +tyme + + gTWr +> + +15 +ass + + gPyJsSliz + : +public + +JsSliz +< +TWr +> { + +16  +JsSliz +< + tTWr +> + tba +; + +18 + gpublic +: + +19 +PyJsSliz +( +TWr + & +wr +: +ba +(wr), +_ág +(0) {} + +21 +size_t + +visAay +(cڡ +CiDa + & +y +) { + +22 +VSl + * + g + = +y +. +hd +(); + +23 i( + g +) { + +24 + gba +:: +wre +("[\r\n"); + +25 + g_ág +++; + +26  + g + != 0) { + +27 +dt +(); + +28 + g +-> +da +()-> +ac +(* +this +); + +30 + g + = + +-> +xt +(); + +31 + gba +:: +wre +( + + ? ",\r\n" : "\r\n"); + +33 + g_ág +--; + +34 +dt +(); + +35 + gba +:: +wre +("]"); + +37 + gba +:: +wre +("[]"); + +39  + gthis +-> +bysWrn +(); + +42 +size_t + +visObje +(cڡ +CiDa + & +obje +) { + +43 +VSl + * + g + = +obje +. +hd +(); + +44 i( + g +) { + +45 + gba +:: +wre +("{\r\n"); + +46 + g_ág +++; + +47  + g + != 0) { + +48 +dt +(); + +49 + gba +:: +visSg +( + +-> +key +()); + +50 + gba +:: +wre +(": "); + +51 + g +-> +da +()-> +ac +(* +this +); + +53 + g + = + +-> +xt +(); + +54 + gba +:: +wre +( + + ? ",\r\n" : "\r\n"); + +56 + g_ág +--; + +57 +dt +(); + +58 + gba +:: +wre +("}"); + +60 + gba +:: +wre +("{}"); + +62  + gthis +-> +bysWrn +(); + +65 + give +: + +66  +dt +() { + +67  +ut8_t + +i + = 0; + gi + < + g_ág +; i++ + gba +:: +wre +( +ARDUINOJSON_TAB +); + +70 +ut8_t + + g_ág +; + +73 + gme + < +tyme + + gTSour +,ym + gTDei +> + +74 +size_t + +rlizeJsPy +(cڡ +TSour + & +sour +, +TDei + & +dei +) { + +75  + grlize +< + gPyJsSliz +>( + gsour +, + gdei +); + +78 + gme + < +tyme + + gTSour +> + +79 +size_t + +rlizeJsPy +(cڡ +TSour + & +sour +, * +bufr +, + +80 +size_t + +bufrSize +) { + +81  + grlize +< + gPyJsSliz +>( + gsour +, + gbufr +, + gbufrSize +); + +84 + gme + < +tyme + + gTSour +> + +85 +size_t + +msuJsPy +(cڡ +TSour + & +sour +) { + +86  + gmsu +< + gPyJsSliz +>( + gsour +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +17 +mea + + gARDUINOJSON_NAMESPACE + { + +19 + gme + < +tyme + + gTWr +> + +20 as + cTextFmr + { + +21 + gpublic +: + +22 +exic + +TextFmr +( +TWr + +wr +: +_wr +(writer) {} + +25 +size_t + +bysWrn +() const { + +26  +_wr +. +cou +(); + +29  +wreBoޗn +( +bo + +vue +) { + +30 i( + gvue +) + +31 +wreRaw +("true"); + +33 +wreRaw +("false"); + +36  +wreSg +(cڡ * +vue +) { + +37 +ARDUINOJSON_ASSERT +( +vue + ! +NULL +); + +38 +wreRaw +('\"'); + +39 * + gvue + +wreCh +(* +vue +++); + +40 +wreRaw +('\"'); + +43  +wreCh +( +c +) { + +44  + geclCh + = +EsSequ +:: +esCh +( +c +); + +45 i( + geclCh +) { + +46 +wreRaw +('\\'); + +47 +wreRaw +( +eclCh +); + +49 +wreRaw +( +c +); + +53 + gme + < +tyme + + gT +> + +54  +wreFlt +( +T + +vue +) { + +55 i( +i +( +vue +)) + +56  +wreRaw +( +ARDUINOJSON_ENABLE_NAN + ? "NaN" : "null"); + +58 #i +ARDUINOJSON_ENABLE_INFINITY + + +59 i( + gvue + < 0.0) { + +60 +wreRaw +('-'); + +61 + gvue + = - +vue +; + +64 i( +isf +( +vue +)) + +65  +wreRaw +("Infinity"); + +67 i( +isf +( +vue +)) + +68  +wreRaw +("null"); + +70 i( + gvue + < 0.0) { + +71 +wreRaw +('-'); + +72 + gvue + = - +vue +; + +76 + gFltPts +< + gT +> +s +( +vue +); + +78 +wrePosiveIeg +( +s +. +gl +); + +79 i( + gs +. + gdecimPs +) + +80 +wreDecims +( +s +. +decim +,ts. +decimPs +); + +82 i( + gs +. + gexpڒt + < 0) { + +83 +wreRaw +("e-"); + +84 +wrePosiveIeg +(- +s +. +expڒt +); + +87 i( + gs +. + gexpڒt + > 0) { + +88 +wreRaw +('e'); + +89 +wrePosiveIeg +( +s +. +expڒt +); + +93  +wreNegiveIeg +( +UI + +vue +) { + +94 +wreRaw +('-'); + +95 +wrePosiveIeg +( +vue +); + +98 + gme + < +tyme + + gT +> + +99  +wrePosiveIeg +( +T + +vue +) { + +100  + gbufr +[22]; + +101 * + gd + = +bufr + + (buffer); + +102 * + gbeg + = +d +; + +106 *-- + gbeg + = ( +vue + % 10 + '0'); + +107 + gvue + = +T +( +vue + / 10); + +108 }  + gvue +); + +111 +wreRaw +( +beg +, +d +); + +114  +wreDecims +( +ut32_t + +vue +, +t8_t + +width +) { + +116  + gbufr +[16]; + +117 * + gd + = +bufr + + (buffer); + +118 * + gbeg + = +d +; + +121  + gwidth +--) { + +122 *-- + gbeg + = ( +vue + % 10 + '0'); + +123 + gvue + /= 10; + +125 *-- + gbeg + = '.'; + +128 +wreRaw +( +beg +, +d +); + +131  +wreRaw +(cڡ * +s +) { + +132 + g_wr +. +wre +( +t_ +( +s +), + +(s)); + +135  +wreRaw +(cڡ * +s +, +size_t + +n +) { + +136 + g_wr +. +wre +( +t_ +( +s +), +n +); + +139  +wreRaw +(cڡ * +beg +, cڡ * +d +) { + +140 + g_wr +. +wre +( +t_ +( +beg +), + +141 +ic_ +< +size_t +>( +d + - +beg +)); + +144 + gme + < +size_t + + gN +> + +145  +wreRaw +(cڡ (& +s +)[ +N +]) { + +146 + g_wr +. +wre +( +t_ +( +s +), +N + - 1); + +148  +wreRaw +( +c +) { + +149 + g_wr +. +wre +( +ic_ +< +ut8_t +>( +c +)); + +152 + geed +: + +153 +CougDecܩ +< +TWr +> +_wr +; + +154 +size_t + + g_ngth +; + +156 + give +: + +157 +TextFmr + & +ݔ +=(const TextFormatter &); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +14 #i +defed +( +__GNUC__ +) + +15 #i +__GNUC__ + >= 7 + +16 #agm +GCC + +dgnoic + +push + + +17 #agm +GCC + +dgnoic + +igned + "-Wmaybe-uninitialized" + +21 +mea + + gARDUINOJSON_NAMESPACE + { + +23 +mea + + gUtf16 + { + +24 +le + +bo + +isHighSuoge +( +ut16_t + +codeun +) { + +25  + gcodeun + >0xD800 && +codeun + < 0xDC00; + +28 +le + +bo + +isLowSuoge +( +ut16_t + +codeun +) { + +29  + gcodeun + >0xDC00 && +codeun + < 0xE000; + +32 as + cCodot + { + +33 + gpublic +: + +34 +Codot +(: +_highSuoge +(0) {} + +36 +bo + +nd +( +ut16_t + +codeun +) { + +37 i( +isHighSuoge +( +codeun +)) { + +38 +_highSuoge + = +codeun + & 0x3FF; + +39  + gl +; + +42 i( +isLowSuoge +( +codeun +)) { + +43 + g_codot + = + +44 +ut32_t +(0x10000 + (( +_highSuoge + << 10| ( +codeun + & 0x3FF))); + +45  + gue +; + +48 + g_codot + = +codeun +; + +49  + gue +; + +52 +ut32_t + +vue +() const { + +53  + g_codot +; + +56 + give +: + +57 +ut16_t + +_highSuoge +; + +58 +ut32_t + + g_codot +; + +63 #i +defed +( +__GNUC__ +) + +64 #i +__GNUC__ + >= 8 + +65 #agm +GCC + +dgnoic + +p + + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 +mea + + gUtf8 + { + +12 + gme + < +tyme + + gTSgBud +> + +13 +le +  +codeCodot +( +ut32_t + +codot32 +, +TSgBud +& +r +) { + +17  + gbuf +[5]; + +18 * + gp + = +buf +; + +20 *( + gp +++) = 0; + +21 i( + gcodot32 + < 0x80) { + +22 *( + gp +++(( +codot32 +)); + +24 *( + gp +++(( +codot32 + | 0x80) & 0xBF); + +25 +ut16_t + + gcodot16 + = ut16_t( +codot32 + >> 6); + +26 i( + gcodot16 + < 0x20) { + +27 *( + gp +++( +codot16 + | 0xC0); + +29 *( + gp +++(( +codot16 + | 0x80) & 0xBF); + +30 + gcodot16 + = +ut16_t +( +codot16 + >> 6); + +31 i( + gcodot16 + < 0x10) { + +32 *( + gp +++( +codot16 + | 0xE0); + +34 *( + gp +++(( +codot16 + | 0x80) & 0xBF); + +35 + gcodot16 + = +ut16_t +( +codot16 + >> 6); + +36 *( + gp +++( +codot16 + | 0xF0); + +41 *(-- + gp +)) { + +42 + gr +. +nd +(* +p +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 #i +ARDUINOJSON_ENABLE_ALIGNMENT + + +15 +le + +bo + +isAligd +( +size_t + +vue +) { + +16 cڡ +size_t + + gmask + = (*) - 1; + +17 +size_t + + gaddr + = +vue +; + +18  ( + gaddr + & + gmask +) == 0; + +21 +le + +size_t + +addPaddg +(size_ +bys +) { + +22 cڡ +size_t + + gmask + = (*) - 1; + +23  ( + gbys + + + gmask +) & ~mask; + +26 + gme + < +size_t + + gbys +> + +27  + sAddPaddg + { + +28 cڡ +size_t + + gmask + = (*) - 1; + +29 cڡ +size_t + + gvue + = ( +bys + + +mask +) & ~mask; + +34 +le + +bo + +isAligd +( +size_t +) { + +35  + gue +; + +38 +le + +size_t + +addPaddg +(size_ +bys +) { + +39  + gbys +; + +42 + gme + < +size_t + + gbys +> + +43  + sAddPaddg + { + +44 cڡ +size_t + + gvue + = +bys +; + +49 + gme + < +tyme + + gT +> + +50 +le + +bo + +isAligd +( +T + * +r +) { + +51  +isAligd +( +t_ +< +size_t +>( +r +)); + +54 + gme + < +tyme + + gT +> + +55 +le + +T + * +addPaddg +(T * +p +) { + +56 +size_t + + gaddss + = +addPaddg +( +t_ +( +p +)); + +57  + gt_ +< + gT + *>( + gaddss +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12  + ~ + +14  + #JSON_STRING_SIZE +( +SIZE +(SIZE + 1) + + ) + +16 +mea + + gARDUINOJSON_NAMESPACE + { + +26 as + cMemyPo + { + +27 + gpublic +: + +28 +MemyPo +(* +buf +, +size_t + + +) + +29 : +_beg +( +buf +), + +30 +_ +( +buf +), + +31 +_right +( +buf + ? bu+ + + : 0), + +32 +_d +( +buf + ? bu+ + + : 0), + +33 +_ovowed +( +l +) { + +34 +ARDUINOJSON_ASSERT +( +isAligd +( +_beg +)); + +35 +ARDUINOJSON_ASSERT +( +isAligd +( +_right +)); + +36 +ARDUINOJSON_ASSERT +( +isAligd +( +_d +)); + +39 * +bufr +() { + +40  + g_beg +; + +44 +size_t + +cy +() const { + +45  +size_t +( +_d + - +_beg +); + +48 +size_t + +size +() const { + +49  +size_t +( +_ + - +_beg + + +_d + - +_right +); + +52 +bo + +ovowed +() const { + +53  + g_ovowed +; + +56 +VSl +* +locV +() { + +57  + glocRight +< + gVSl +>(); + +60 + gme + < +tyme + + gTAddSg +> + +61 cڡ * +veSg +(cڡ +TAddSg +& +r +) { + +62 i( + gr +. +isNu +()) + +65 #i +ARDUINOJSON_ENABLE_STRING_DEDUPLICATION + + +66 cڡ * + gexigCy + = +fdSg +( +r +. +beg +()); + +67 i( + gexigCy +) + +68  + gexigCy +; + +71 +size_t + + gn + = +r +. +size +(); + +73 * + gwCy + = +locSg +( +n + + 1); + +74 i( + gwCy +) { + +75 + gr +. +cyTo +( +wCy +, +n +); + +76 + gwCy +[ +n +] = 0; + +78  + gwCy +; + +81  +gFeZe +(** +zeS +, +size_t +* +zeSize +) const { + +82 * + gzeS + = +_ +; + +83 * + gzeSize + = +size_t +( +_right + - +_ +); + +86 cڡ * +veSgFromFeZe +( +size_t + +n +) { + +87 #i +ARDUINOJSON_ENABLE_STRING_DEDUPLICATION + + +88 cڡ * + gdup + = +fdSg +( +_ +); + +89 i( + gdup +) + +90  + gdup +; + +93 cڡ * + gr + = +_ +; + +94 + g_ + + +n +; + +95 +checkInvs +(); + +96  + gr +; + +99  +mkAsOvowed +() { + +100 + g_ovowed + = +ue +; + +103  +r +() { + +104 + g_ + = +_beg +; + +105 + g_right + = +_d +; + +106 + g_ovowed + = +l +; + +109 +bo + +nAoc +( +size_t + +bys +) const { + +110  + g_ + + + gbys + < +_right +; + +113 +bo + +owns +(* +p +) const { + +114  + g_beg + < +p + && < +_d +; + +118 * +ݔ + +w +( +size_t +, * +p +) { + +119  + gp +; + +133 +rdiff_t + +squash +() { + +134 * + gw_right + = +addPaddg +( +_ +); + +135 i( + gw_right + > +_right +) + +138 +size_t + + gright_size + = +ic_ +( +_d + - +_right +); + +139 +memmove +( +w_right +, +_right +, +right_size +); + +141 +rdiff_t + + gbys_aimed + = +_right + - +w_right +; + +142 + g_right + = +w_right +; + +143 + g_d + = +w_right + + +right_size +; + +144  + gbys_aimed +; + +149  +movePors +( +rdiff_t + +offt +) { + +150 + g_beg + + +offt +; + +151 + g_ + + +offt +; + +152 + g_right + + +offt +; + +153 + g_d + + +offt +; + +156 + give +: + +157  +checkInvs +() { + +158 +ARDUINOJSON_ASSERT +( +_beg + < +_ +); + +159 +ARDUINOJSON_ASSERT +( +_ + < +_right +); + +160 +ARDUINOJSON_ASSERT +( +_right + < +_d +); + +161 +ARDUINOJSON_ASSERT +( +isAligd +( +_right +)); + +164 #i +ARDUINOJSON_ENABLE_STRING_DEDUPLICATION + + +165 + gme + < +tyme + + gTIt +> + +166 cڡ * +fdSg +( +TIt + +r +) { + +167 * + gxt + = +_beg +;ex< + g_ +; ++next) { + +168 * + gbeg + = +xt +; + +171  +TIt + + g + = +r +; * =* +xt +; ++it) { + +172 i(* + gxt +++ == 0) + +173  +beg +; + +177 * + gxt +) ++next; + +183 * +locSg +( +size_t + +n +) { + +184 i(! +nAoc +( +n +)) { + +185 + g_ovowed + = +ue +; + +188 * + gs + = +_ +; + +189 + g_ + + +n +; + +190 +checkInvs +(); + +191  + gs +; + +194 + gme + < +tyme + + gT +> + +195 +T +* +locRight +() { + +196  + gt_ +< + gT +*>( +locRight +(( +T +))); + +199 * +locRight +( +size_t + +bys +) { + +200 i(! +nAoc +( +bys +)) { + +201 + g_ovowed + = +ue +; + +204 + g_right + - +bys +; + +205  + g_right +; + +208 * + g_beg +, * + g_ +, * + g_right +, * + g_d +; + +209 +bo + + g_ovowed +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13 as + cSlizedVue + { + +14 + gpublic +: + +15 +exic + +SlizedVue +( +T + +r +: +_r +(str) {} + +16 +ݔ + +T +() const { + +17  +_r +; + +20 cڡ * +da +() const { + +21  + g_r +. +c_r +(); + +24 +size_t + +size +() const { + +26  + g_r +. +ngth +(); + +29 + give +: + +30 +T + +_r +; + +33 + gme + < +tyme + + gTCh +> + +34 +ass + + gSlizedVue +< + gTCh +*> { + +35 + gpublic +: + +36 +exic + +SlizedVue +( +TCh +* +p +, +size_t + +n +: +_da +), +_size +(n) {} + +37 +ݔ + + gTCh +*() const { + +38  + g_da +; + +41 +TCh +* +da +() const { + +42  + g_da +; + +45 +size_t + +size +() const { + +46  + g_size +; + +49 + give +: + +50 +TCh +* +_da +; + +51 +size_t + + g_size +; + +54 + gme + < +tyme + + gT +> + +55 +le + + gSlizedVue +< + gT +> + $rlized +( +T + +r +) { + +56  +SlizedVue +< +T +>( +r +); + +57 + } +} + +59 + gme + < +tyme + + gTCh +> + +60 +le + + gSlizedVue +< + gTCh +*> + $rlized +( +TCh +* +p +) { + +61  +SlizedVue +< +TCh +*>( +p +, + `adtSg +). + `size +()); + +62 + } +} + +64 + gme + < +tyme + + gTCh +> + +65 +le + + gSlizedVue +< + gTCh +*> + $rlized +( +TCh +* +p +, +size_t + +n +) { + +66  +SlizedVue +< +TCh +*>( +p +, +n +); + +67 + } +} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/Visitable.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTResu +> + +12  + sVis + { + +13  +TResu + + tsu_ty +; + +16  + sVisab + { + +21 + gme + < +tyme + + gT +> + +22  + gIsVisab + : +is_ba_of +< +Visab +, + gT +> {}; + +24 + gme + < +tyme + + gT +> + +25  + gIsVisab +< + gT +&> : +IsVisab +< +T +> {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +16 + gme + < +tyme + + gTRd +,ym + gTSgStage +> + +17 as + cMsgPackDerliz + { + +18 + gpublic +: + +19 +MsgPackDerliz +( +MemyPo + & +po +, +TRd + +ad +, + +20 +TSgStage + +rgStage +) + +21 : +_po +(& +po +), + +22 +_ad +( +ad +), + +23 +_rgStage +( +rgStage +), + +24 +_r +( +DerliziE +:: +Ok +), + +25 +_foundSomhg +( +l +) {} + +27 + gme + < +tyme + + gTFr +> + +28 +DerliziE + +r +( +VDa + & +v +, +TFr + +fr +, + +29 +NegLim + +ágLim +) { + +30 +rV +( +v +, +fr +, +ágLim +); + +31  + g_foundSomhg + ? + g_r + : +DerliziE +:: +EmyIut +; + +34 + give +: + +36 +MsgPackDerliz + & +ݔ +=(const MsgPackDeserializer &); + +38 +bo + +vidIut +() { + +39 + g_r + = +DerliziE +:: +InvidIut +; + +40  + gl +; + +43 +bo + +nSu܋d +() { + +44 + g_r + = +DerliziE +:: +NSu܋d +; + +45  + gl +; + +48 + gme + < +tyme + + gTFr +> + +49 +bo + +rV +( +VDa + & +v +, +TFr + +fr +, + +50 +NegLim + +ágLim +) { + +51 +ut8_t + + gcode + = 0; + +52 i(! +adBy +( +code +)) + +53  + gl +; + +55 + g_foundSomhg + = +ue +; + +57 +bo + + glowVue + = +fr +. +lowVue +(); + +59  + gcode +) { + +62  +ue +; + +65  +vidIut +(); + +68 i( +lowVue +) + +69 +v +. +tBoޗn +( +l +); + +70  + gue +; + +73 i( +lowVue +) + +74 +v +. +tBoޗn +( +ue +); + +75  + gue +; + +78 i( +lowVue +) + +79  +nSu܋d +(); + +81  + gskSg +< + gut8_t +>(); + +84 i( +lowVue +) + +85  +nSu܋d +(); + +87  + gskSg +< + gut16_t +>(); + +90 i( +lowVue +) + +91  +nSu܋d +(); + +93  + gskSg +< + gut32_t +>(); + +96 i( +lowVue +) + +97  +nSu܋d +(); + +99  + gskExt +< + gut8_t +>(); + +102 i( +lowVue +) + +103  +nSu܋d +(); + +105  + gskExt +< + gut16_t +>(); + +108 i( +lowVue +) + +109  +nSu܋d +(); + +111  + gskExt +< + gut32_t +>(); + +114 i( +lowVue +) + +115  +adFlt +<>( +v +); + +117  +skBys +(4); + +120 i( +lowVue +) + +121  +adDoub +<>( +v +); + +123  +skBys +(8); + +126 i( +lowVue +) + +127  +adIeg +< +ut8_t +>( +v +); + +129  +skBys +(1); + +132 i( +lowVue +) + +133  +adIeg +< +ut16_t +>( +v +); + +135  +skBys +(2); + +138 i( +lowVue +) + +139  +adIeg +< +ut32_t +>( +v +); + +141  +skBys +(4); + +144 i( +lowVue +) + +145 #i +ARDUINOJSON_USE_LONG_LONG + + +146  +adIeg +< +ut64_t +>( +v +); + +148  +nSu܋d +(); + +151  +skBys +(8); + +154 i( +lowVue +) + +155  +adIeg +< +t8_t +>( +v +); + +157  +skBys +(1); + +160 i( +lowVue +) + +161  +adIeg +< +t16_t +>( +v +); + +163  +skBys +(2); + +166 i( +lowVue +) + +167  +adIeg +< +t32_t +>( +v +); + +169  +skBys +(4); + +172 i( +lowVue +) + +173 #i +ARDUINOJSON_USE_LONG_LONG + + +174  +adIeg +< +t64_t +>( +v +); + +176  +nSu܋d +(); + +179  +skBys +(8); + +182 i( +lowVue +) + +183  +nSu܋d +(); + +185  +skBys +(2); + +188 i( +lowVue +) + +189  +nSu܋d +(); + +191  +skBys +(3); + +194 i( +lowVue +) + +195  +nSu܋d +(); + +197  +skBys +(5); + +200 i( +lowVue +) + +201  +nSu܋d +(); + +203  +skBys +(9); + +206 i( +lowVue +) + +207  +nSu܋d +(); + +209  +skBys +(17); + +212 i( +lowVue +) + +213  +adSg +< +ut8_t +>( +v +); + +215  + gskSg +< + gut8_t +>(); + +218 i( +lowVue +) + +219  +adSg +< +ut16_t +>( +v +); + +221  + gskSg +< + gut16_t +>(); + +224 i( +lowVue +) + +225  +adSg +< +ut32_t +>( +v +); + +227  + gskSg +< + gut32_t +>(); + +230  +adAay +< +ut16_t +>( +v +, + gfr +, + gágLim +); + +233  +adAay +< +ut32_t +>( +v +, + gfr +, + gágLim +); + +236  +adObje +< +ut16_t +>( +v +, + gfr +, + gágLim +); + +239  +adObje +< +ut32_t +>( +v +, + gfr +, + gágLim +); + +242  + gcode + & 0xf0) { + +244  +adObje +( +v +, +code + & 0x0F, +fr +, +ágLim +); + +247  +adAay +( +v +, +code + & 0x0F, +fr +, +ágLim +); + +250 i(( + gcode + & 0xe0) == 0xa0) { + +251 i( +lowVue +) + +252  +adSg +( +v +, +code + & 0x1f); + +254  +skBys +( +code + & 0x1f); + +257 i( + glowVue +) + +258 + gv +. +tIeg +( +ic_ +< +t8_t +>( +code +)); + +260  + gue +; + +263 +bo + +adBy +( +ut8_t + & +vue +) { + +264  + gc + = +_ad +. +ad +(); + +265 i( + gc + < 0) { + +266 + g_r + = +DerliziE +:: +IncomeIut +; + +267  + gl +; + +269 + gvue + = +ic_ +< +ut8_t +>( +c +); + +270  + gue +; + +273 +bo + +adBys +( +ut8_t + * +p +, +size_t + +n +) { + +274 i( + g_ad +. +adBys +( +t_ +<*>( +p +), +n +) ==) + +275  +ue +; + +276 + g_r + = +DerliziE +:: +IncomeIut +; + +277  + gl +; + +280 + gme + < +tyme + + gT +> + +281 +bo + +adBys +( +T + & +vue +) { + +282  +adBys +( +t_ +< +ut8_t + *>(& +vue +), (value)); + +285 +bo + +skBys +( +size_t + +n +) { + +286 ; + gn +; --n) { + +287 i( + g_ad +. +ad +() < 0) { + +288 + g_r + = +DerliziE +:: +IncomeIut +; + +289  + gl +; + +292  + gue +; + +295 + gme + < +tyme + + gT +> + +296 +bo + +adIeg +( +T + & +vue +) { + +297 i(! +adBys +( +vue +)) + +298  + gl +; + +299 +fixEndss +( +vue +); + +300  + gue +; + +303 + gme + < +tyme + + gT +> + +304 +bo + +adIeg +( +VDa + & +v +) { + +305 +T + + gvue +; + +306 i(! +adIeg +( +vue +)) + +307  + gl +; + +308 + gv +. +tIeg +( +vue +); + +309  + gue +; + +312 + gme + < +tyme + + gT +> + +313 +tyme + + gab_if +<( + gT +=4, + gbo +>:: +ty + +adFlt +( + +314 +VDa + & +v +) { + +315 +T + +vue +; + +316 i(! +adBys +( +vue +)) + +317  + gl +; + +318 +fixEndss +( +vue +); + +319 + gv +. +tFlt +( +vue +); + +320  + gue +; + +323 + gme + < +tyme + + gT +> + +324 +tyme + + gab_if +<( + gT +=8, + gbo +>:: +ty + +adDoub +( + +325 +VDa + & +v +) { + +326 +T + +vue +; + +327 i(! +adBys +( +vue +)) + +328  + gl +; + +329 +fixEndss +( +vue +); + +330 + gv +. +tFlt +( +vue +); + +331  + gue +; + +334 + gme + < +tyme + + gT +> + +335 +tyme + + gab_if +<( + gT +=4, + gbo +>:: +ty + +adDoub +( + +336 +VDa + & +v +) { + +337 +ut8_t + +i +[8]; + +338 +T + + gvue +; + +339 +ut8_t + * + go + = +t_ +(& +vue +); + +340 i(! +adBys +( +i +, 8)) + +341  + gl +; + +342 +doubToFlt +( +i +, +o +); + +343 +fixEndss +( +vue +); + +344 + gv +. +tFlt +( +vue +); + +345  + gue +; + +348 + gme + < +tyme + + gT +> + +349 +bo + +adSg +( +VDa + & +v +) { + +350 +T + + gsize +; + +351 i(! +adIeg +( +size +)) + +352  + gl +; + +353  +adSg +( +v +, +size +); + +356 + gme + < +tyme + + gT +> + +357 +bo + +adSg +() { + +358 +T + + gsize +; + +359 i(! +adIeg +( +size +)) + +360  + gl +; + +361  +adSg +( +size +); + +364 + gme + < +tyme + + gT +> + +365 +bo + +skSg +() { + +366 +T + + gsize +; + +367 i(! +adIeg +( +size +)) + +368  + gl +; + +369  +skBys +( +size +); + +372 +bo + +adSg +( +VDa + & +v +, +size_t + +n +) { + +373 i(! +adSg +( +n +)) + +374  + gl +; + +375 + gv +. +tSgPor +( +_rgStage +. +ve +(), + +376 +tyme + +TSgStage +:: +age_picy +()); + +377  + gue +; + +380 +bo + +adSg +( +size_t + +n +) { + +381 + g_rgStage +. +tSg +(); + +382 ; + gn +; --n) { + +383 +ut8_t + + gc +; + +384 i(! +adBys +( +c +)) + +385  + gl +; + +386 + g_rgStage +. +nd +( +ic_ +<>( +c +)); + +388 + g_rgStage +. +nd +('\0'); + +389 i(! + g_rgStage +. +isVid +()) { + +390 + g_r + = +DerliziE +:: +NoMemy +; + +391  + gl +; + +394  + gue +; + +397 + gme + < +tyme + + gTSize +,ym + gTFr +> + +398 +bo + +adAay +( +VDa + & +v +, +TFr + +fr +, + +399 +NegLim + +ágLim +) { + +400 +TSize + + gsize +; + +401 i(! +adIeg +( +size +)) + +402  + gl +; + +403  +adAay +( +v +, +size +, +fr +, +ágLim +); + +406 + gme + < +tyme + + gTFr +> + +407 +bo + +adAay +( +VDa + & +v +, +size_t + +n +, +TFr + +fr +, + +408 +NegLim + +ágLim +) { + +409 i( + gágLim +. +ached +()) { + +410 + g_r + = +DerliziE +:: +TooDp +; + +411  + gl +; + +414 +bo + + glowAay + = +fr +. +lowAay +(); + +416 +CiDa + * + gy + = +lowAay + ? & +v +. +toAay +() : 0; + +418 +TFr + + gmembFr + = +fr +[0U]; + +420 ; + gn +; --n) { + +421 +VDa + * + gvue +; + +423 i( + gmembFr +. +low +()) { + +424 + gvue + = +y +-> +addEmt +( +_po +); + +425 i(! + gvue +) { + +426 + g_r + = +DerliziE +:: +NoMemy +; + +427  + gl +; + +430 + gvue + = 0; + +433 i(! +rV +(* +vue +, +membFr +, +ágLim +. +deemt +())) + +434  + gl +; + +437  + gue +; + +440 + gme + < +tyme + + gTSize +,ym + gTFr +> + +441 +bo + +adObje +( +VDa + & +v +, +TFr + +fr +, + +442 +NegLim + +ágLim +) { + +443 +TSize + + gsize +; + +444 i(! +adIeg +( +size +)) + +445  + gl +; + +446  +adObje +( +v +, +size +, +fr +, +ágLim +); + +449 + gme + < +tyme + + gTFr +> + +450 +bo + +adObje +( +VDa + & +v +, +size_t + +n +, +TFr + +fr +, + +451 +NegLim + +ágLim +) { + +452 i( + gágLim +. +ached +()) { + +453 + g_r + = +DerliziE +:: +TooDp +; + +454  + gl +; + +457 +CiDa + * + gobje + = +fr +. +lowObje +(? & +v +. +toObje +() : 0; + +459 ; + gn +; --n) { + +460 i(! +adKey +()) + +461  + gl +; + +463 cڡ * + gkey + = +_rgStage +. +c_r +(); + +464 +TFr + + gmembFr + = +fr +[ +key +]; + +465 +VDa + * + gmemb +; + +467 i( + gmembFr +. +low +()) { + +470 + gkey + = +_rgStage +. +ve +(); + +472 +VSl + * + g + = +obje +-> +addSl +( +_po +); + +473 i(! + g +) { + +474 + g_r + = +DerliziE +:: +NoMemy +; + +475  + gl +; + +478 + g +-> +tKey +( +key +, +tyme + +TSgStage +:: +age_picy +()); + +480 + gmemb + = + +-> +da +(); + +482 + gmemb + = 0; + +485 i(! +rV +(* +memb +, +membFr +, +ágLim +. +deemt +())) + +486  + gl +; + +489  + gue +; + +492 +bo + +adKey +() { + +493 +ut8_t + + gcode +; + +494 i(! +adBy +( +code +)) + +495  + gl +; + +497 i(( + gcode + & 0xe0) == 0xa0) + +498  +adSg +( +code + & 0x1f); + +500  + gcode +) { + +502  +adSg +< +ut8_t +>(); + +505  +adSg +< +ut16_t +>(); + +508  +adSg +< +ut32_t +>(); + +511  +nSu܋d +(); + +515 + gme + < +tyme + + gT +> + +516 +bo + +skExt +() { + +517 +T + + gsize +; + +518 i(! +adIeg +( +size +)) + +519  + gl +; + +520  +skBys +( +size + + 1); + +523 +MemyPo + * + g_po +; + +524 +TRd + + g_ad +; + +525 +TSgStage + + g_rgStage +; + +526 +DerliziE + + g_r +; + +527 +bo + + g_foundSomhg +; + +534 + gme + < +tyme + + gTSg +> + +535 +DerliziE + +derlizeMsgPack +( + +536 +JsDocumt + & +doc +, cڡ +TSg + & +put +, + +537 +NegLim + +ágLim + = + $NegLim +()) { + +538  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, + +539 + `AowAFr +()); + +540 + } +} + +542 + gme + < +tyme + + gTSg +> + +543 +DerliziE + +derlizeMsgPack +( + +544 +JsDocumt + & +doc +, cڡ +TSg + & +put +, +Fr + +fr +, + +545 +NegLim + +ágLim + = + $NegLim +()) { + +546  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +547 + } +} + +549 + gme + < +tyme + + gTSg +> + +550 +DerliziE + + $derlizeMsgPack +( +JsDocumt + & +doc +, cڡ +TSg + & +put +, + +551 +NegLim + +ágLim +, + +552 +Fr + +fr +) { + +553  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +554 + } +} + +560 + gme + < +tyme + + gTSm +> + +561 +DerliziE + +derlizeMsgPack +( + +562 +JsDocumt + & +doc +, +TSm + & +put +, + +563 +NegLim + +ágLim + = + $NegLim +()) { + +564  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, + +565 + `AowAFr +()); + +566 + } +} + +568 + gme + < +tyme + + gTSm +> + +569 +DerliziE + +derlizeMsgPack +( + +570 +JsDocumt + & +doc +, +TSm + & +put +, +Fr + +fr +, + +571 +NegLim + +ágLim + = + $NegLim +()) { + +572  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +573 + } +} + +575 + gme + < +tyme + + gTSm +> + +576 +DerliziE + + $derlizeMsgPack +( +JsDocumt + & +doc +, +TSm + & +put +, + +577 +NegLim + +ágLim +, + +578 +Fr + +fr +) { + +579  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +580 + } +} + +586 + gme + < +tyme + + gTCh +> + +587 +DerliziE + +derlizeMsgPack +( + +588 +JsDocumt + & +doc +, +TCh + * +put +, + +589 +NegLim + +ágLim + = + $NegLim +()) { + +590  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, + +591 + `AowAFr +()); + +592 + } +} + +594 + gme + < +tyme + + gTCh +> + +595 +DerliziE + +derlizeMsgPack +( + +596 +JsDocumt + & +doc +, +TCh + * +put +, +Fr + +fr +, + +597 +NegLim + +ágLim + = + $NegLim +()) { + +598  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +599 + } +} + +601 + gme + < +tyme + + gTCh +> + +602 +DerliziE + + $derlizeMsgPack +( +JsDocumt + & +doc +, +TCh + * +put +, + +603 +NegLim + +ágLim +, + +604 +Fr + +fr +) { + +605  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +606 + } +} + +612 + gme + < +tyme + + gTCh +> + +613 +DerliziE + +derlizeMsgPack +( + +614 +JsDocumt + & +doc +, +TCh + * +put +, +size_t + +putSize +, + +615 +NegLim + +ágLim + = + $NegLim +()) { + +616  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +617 + `AowAFr +()); + +618 + } +} + +620 + gme + < +tyme + + gTCh +> + +621 +DerliziE + +derlizeMsgPack +( + +622 +JsDocumt + & +doc +, +TCh + * +put +, +size_t + +putSize +, +Fr + +fr +, + +623 +NegLim + +ágLim + = + $NegLim +()) { + +624  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +625 +fr +); + +626 + } +} + +628 + gme + < +tyme + + gTCh +> + +629 +DerliziE + + $derlizeMsgPack +( +JsDocumt + & +doc +, +TCh + * +put +, + +630 +size_t + +putSize +, + +631 +NegLim + +ágLim +, + +632 +Fr + +fr +) { + +633  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +634 +fr +); + +635 + } +} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +15 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gme + < +tyme + + gTWr +> + +18 +ass + + gMsgPackSliz + : +public + +Vis +< +size_t +> { + +19 +public +: + +20 +MsgPackSliz +( +TWr + +wr +: +_wr +(writer) {} + +22 +me + < +tyme + +T +> + +23 +tyme + +ab_if +<( +T +=4, + gsize_t +>:: +ty + +visFlt +(T +vue32 +) { + +24 +wreBy +(0xCA); + +25 +wreIeg +( +vue32 +); + +26  +bysWrn +(); + +29 + gme + < +tyme + + gT +> + +30 +ARDUINOJSON_NO_SANITIZE +("float-cast-overflow") + +31 +tyme + + gab_if +<( + gT +=8, + gsize_t +>:: +ty + +visFlt +( +T + +vue64 +) { + +32  +vue32 + = ( +vue64 +); + +33 i( + gvue32 + = +vue64 +) { + +34 +wreBy +(0xCA); + +35 +wreIeg +( +vue32 +); + +37 +wreBy +(0xCB); + +38 +wreIeg +( +vue64 +); + +40  +bysWrn +(); + +43 +size_t + +visAay +(cڡ +CiDa +& +y +) { + +44 +size_t + + gn + = +y +. +size +(); + +45 i( + gn + < 0x10) { + +46 +wreBy +( +ut8_t +(0x90 + +y +. +size +())); + +47 } i( + gn + < 0x10000) { + +48 +wreBy +(0xDC); + +49 +wreIeg +( +ut16_t +( +n +)); + +51 +wreBy +(0xDD); + +52 +wreIeg +( +ut32_t +( +n +)); + +54  +VSl +* + g + = +y +. +hd +(); sl; sl = + +-> +xt +()) { + +55 + +-> +da +()-> +ac +(* +this +); + +57  +bysWrn +(); + +60 +size_t + +visObje +(cڡ +CiDa +& +obje +) { + +61 +size_t + + gn + = +obje +. +size +(); + +62 i( + gn + < 0x10) { + +63 +wreBy +( +ut8_t +(0x80 + +n +)); + +64 } i( + gn + < 0x10000) { + +65 +wreBy +(0xDE); + +66 +wreIeg +( +ut16_t +( +n +)); + +68 +wreBy +(0xDF); + +69 +wreIeg +( +ut32_t +( +n +)); + +71  +VSl +* + g + = +obje +. +hd +(); sl; sl = + +-> +xt +()) { + +72 +visSg +( + +-> +key +()); + +73 + g +-> +da +()-> +ac +(* +this +); + +75  +bysWrn +(); + +78 +size_t + +visSg +(cڡ * +vue +) { + +79 +ARDUINOJSON_ASSERT +( +vue + ! +NULL +); + +81 +size_t + + gn + = + +( +vue +); + +83 i( + gn + < 0x20) { + +84 +wreBy +( +ut8_t +(0xA0 + +n +)); + +85 } i( + gn + < 0x100) { + +86 +wreBy +(0xD9); + +87 +wreIeg +( +ut8_t +( +n +)); + +88 } i( + gn + < 0x10000) { + +89 +wreBy +(0xDA); + +90 +wreIeg +( +ut16_t +( +n +)); + +92 +wreBy +(0xDB); + +93 +wreIeg +( +ut32_t +( +n +)); + +95 +wreBys +( +t_ +( +vue +), +n +); + +96  +bysWrn +(); + +99 +size_t + +visRawJs +(cڡ * +da +, size_ +size +) { + +100 +wreBys +( +t_ +( +da +), +size +); + +101  +bysWrn +(); + +104 +size_t + +visNegiveIeg +( +UI + +vue +) { + +105 +UI + + gged + = UI(~ +vue + + 1); + +106 i( + gvue + <= 0x20) { + +107 +wreIeg +( +t8_t +( +ged +)); + +108 } i( + gvue + <= 0x80) { + +109 +wreBy +(0xD0); + +110 +wreIeg +( +t8_t +( +ged +)); + +111 } i( + gvue + <= 0x8000) { + +112 +wreBy +(0xD1); + +113 +wreIeg +( +t16_t +( +ged +)); + +114 } i( + gvue + <= 0x80000000) { + +115 +wreBy +(0xD2); + +116 +wreIeg +( +t32_t +( +ged +)); + +118 #i +ARDUINOJSON_USE_LONG_LONG + + +120 +wreBy +(0xD3); + +121 +wreIeg +( +t64_t +( +ged +)); + +124  +bysWrn +(); + +127 +size_t + +visPosiveIeg +( +UI + +vue +) { + +128 i( + gvue + <= 0x7F) { + +129 +wreIeg +( +ut8_t +( +vue +)); + +130 } i( + gvue + <= 0xFF) { + +131 +wreBy +(0xCC); + +132 +wreIeg +( +ut8_t +( +vue +)); + +133 } i( + gvue + <= 0xFFFF) { + +134 +wreBy +(0xCD); + +135 +wreIeg +( +ut16_t +( +vue +)); + +137 #i +ARDUINOJSON_USE_LONG_LONG + + +138 i( + gvue + <= 0xFFFFFFFF) + +143 +wreBy +(0xCE); + +144 +wreIeg +( +ut32_t +( +vue +)); + +146 #i +ARDUINOJSON_USE_LONG_LONG + + +148 +wreBy +(0xCF); + +149 +wreIeg +( +ut64_t +( +vue +)); + +152  +bysWrn +(); + +155 +size_t + +visBoޗn +( +bo + +vue +) { + +156 +wreBy +( +vue + ? 0xC3 : 0xC2); + +157  +bysWrn +(); + +160 +size_t + +visNu +() { + +161 +wreBy +(0xC0); + +162  +bysWrn +(); + +165 + give +: + +166 +size_t + +bysWrn +() const { + +167  +_wr +. +cou +(); + +170  +wreBy +( +ut8_t + +c +) { + +171 + g_wr +. +wre +( +c +); + +174  +wreBys +(cڡ +ut8_t +* +p +, +size_t + +n +) { + +175 + g_wr +. +wre +( +p +, +n +); + +178 + gme + < +tyme + + gT +> + +179  +wreIeg +( +T + +vue +) { + +180 +fixEndss +( +vue +); + +181 +wreBys +( +t_ +< +ut8_t +*>(& +vue +), (value)); + +184 + gCougDecܩ +< + gTWr +> + g_wr +; + +187 + gme + < +tyme + + gTSour +,ym + gTDei +> + +188 +le + +size_t + +rlizeMsgPack +(cڡ +TSour +& +sour +, +TDei +& +ouut +) { + +189  + grlize +< + gMsgPackSliz +>( + gsour +, + gouut +); + +192 + gme + < +tyme + + gTSour +> + +193 +le + +size_t + +rlizeMsgPack +(cڡ +TSour +& +sour +, * +ouut +, + +194 +size_t + +size +) { + +195  + grlize +< + gMsgPackSliz +>( + gsour +, + gouut +, + gsize +); + +198 + gme + < +tyme + + gTSour +> + +199 +le + +size_t + +msuMsgPack +(cڡ +TSour +& +sour +) { + +200  + gmsu +< + gMsgPackSliz +>( + gsour +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 #i +ARDUINOJSON_LITTLE_ENDIAN + + +13 +le +  +fixEndss +( +ut8_t + * +p +, +gl_cڡt +< +size_t +, 8>) { + +14 +sw +( +p +[0],[7]); + +15 +sw +( +p +[1],[6]); + +16 +sw +( +p +[2],[5]); + +17 +sw +( +p +[3],[4]); + +20 +le +  +fixEndss +( +ut8_t + * +p +, +gl_cڡt +< +size_t +, 4>) { + +21 +sw +( +p +[0],[3]); + +22 +sw +( +p +[1],[2]); + +25 +le +  +fixEndss +( +ut8_t + * +p +, +gl_cڡt +< +size_t +, 2>) { + +26 +sw +( +p +[0],[1]); + +29 +le +  +fixEndss +( +ut8_t + *, +gl_cڡt +< +size_t +, 1>) {} + +31 + gme + < +tyme + + gT +> + +32 +le +  +fixEndss +( +T + & +vue +) { + +33 +fixEndss +( +t_ +< +ut8_t + *>(& +vue +), + +34 +gl_cڡt +< +size_t +, ( +T +)>()); + +37 + gme + < +tyme + + gT +> + +38 +le +  +fixEndss +( +T + &) {} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 +le +  +doubToFlt +(cڡ +ut8_t + +d +[8], ut8_ +f +[4]) { + +12 + gf +[0] = +ut8_t +(( +d +[0] & 0xC0) | (d[0] << 3 & 0x3f) | (d[1] >> 5)); + +13 + gf +[1] = +ut8_t +(( +d +[1] << 3) | (d[2] >> 5)); + +14 + gf +[2] = +ut8_t +(( +d +[2] << 3) | (d[3] >> 5)); + +15 + gf +[3] = +ut8_t +(( +d +[3] << 3) | (d[4] >> 5)); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Namespace.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 #ide +ARDUINOJSON_NAMESPACE + + +13  + #ARDUINOJSON_NAMESPACE + \ + +14 + `ARDUINOJSON_CONCAT4 +( \ + +15 + `ARDUINOJSON_CONCAT4 +( +ArduoJs +, +ARDUINOJSON_VERSION_MAJOR +, \ + +16 +ARDUINOJSON_VERSION_MINOR +, \ + +17 +ARDUINOJSON_VERSION_REVISION +), \ + +18 +_ +, \ + +19 + `ARDUINOJSON_HEX_DIGIT +( +ARDUINOJSON_ENABLE_PROGMEM +, \ + +20 +ARDUINOJSON_USE_LONG_LONG +, +ARDUINOJSON_USE_DOUBLE +, \ + +21 +ARDUINOJSON_ENABLE_STRING_DEDUPLICATION +), \ + +22 + `ARDUINOJSON_HEX_DIGIT +( \ + +23 +ARDUINOJSON_ENABLE_NAN +, +ARDUINOJSON_ENABLE_INFINITY +, \ + +24 +ARDUINOJSON_ENABLE_COMMENTS +, +ARDUINOJSON_DECODE_UNICODE +)) + + ) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/Float.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 #i +ARDUINOJSON_USE_DOUBLE + + +13  + tFlt +; + +15  + tFlt +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gTFlt +> + +14  + sFltPts + { + +15 +ut32_t + + ggl +; + +16 +ut32_t + + gdecim +; + +17 +t16_t + + gexpڒt +; + +18 +t8_t + + gdecimPs +; + +20 +FltPts +( +TFlt + +vue +) { + +21 +ut32_t + + gmaxDecimPt + = ( +TFlt +) >= 8 ? 1000000000 : 1000000; + +22 + gdecimPs + = ( +TFlt +) >= 8 ? 9 : 6; + +24 + gexpڒt + = +nmize +( +vue +); + +26 + ggl + = +ut32_t +( +vue +); + +28  +ut32_t + + gtmp + = +gl +;mp >= 10;mp /= 10) { + +29 +maxDecimPt + /= 10; + +30 + gdecimPs +--; + +33 +TFlt + + gmad + = ( +vue + - TFlt( +gl +)* TFlt( +maxDecimPt +); + +35 + gdecim + = +ut32_t +( +mad +); + +36 + gmad + = +mad + - +TFlt +( +decim +); + +40 + gdecim + + +ut32_t +( +mad + * 2); + +41 i( + gdecim + > +maxDecimPt +) { + +42 +decim + = 0; + +43 + ggl +++; + +44 i( + gexpڒt + && + ggl + >= 10) { + +45 +expڒt +++; + +46 + ggl + = 1; + +51  + gdecim + % 10 =0 && +decimPs + > 0) { + +52 +decim + /= 10; + +53 + gdecimPs +--; + +57  +t16_t + +nmize +( +TFlt +& +vue +) { + +58  + gFltTs +< + tTFlt +> + tas +; + +59 +t16_t + + gpowsOf10 + = 0; + +61 +t8_t + + gdex + = ( +TFlt +) == 8 ? 8 : 5; + +62  + gb + = 1 << +dex +; + +64 i( + gvue + > +ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD +) { + +65 ; + gdex + >= 0; index--) { + +66 i( + gvue + > +as +:: +posiveByPowOfT +( +dex +)) { + +67 +vue + * +as +:: +giveByPowOfT +( +dex +); + +68 + gpowsOf10 + = +t16_t +( +powsOf10 + + +b +); + +70 + gb + >>= 1; + +74 i( + gvue + > 0 && vu< +ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD +) { + +75 ; + gdex + >= 0; index--) { + +76 i( + gvue + < + gas +:: +giveByPowOfTPlusO +( +dex +)) { + +77 +vue + * +as +:: +posiveByPowOfT +( +dex +); + +78 + gpowsOf10 + = +t16_t +( +powsOf10 + - +b +); + +80 + gb + >>= 1; + +84  + gpowsOf10 +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +16 +mea + + gARDUINOJSON_NAMESPACE + { + +18 + gme + < +tyme + + gT +, + gsize_t + = ( +T +)> + +19  + sFltTs + {}; + +21 + gme + < +tyme + + gT +> + +22  + gFltTs +< + gT +, 8 > { + +23  +ut64_t + + tmtis_ty +; + +24 cڡ  + gmtis_bs + = 52; + +25 cڡ +mtis_ty + + gmtis_max + = + +26 ( +mtis_ty +(1<< +mtis_bs +) - 1; + +28  +t16_t + + texpڒt_ty +; + +29 cڡ +expڒt_ty + + gexpڒt_max + = 308; + +31 + gme + < +tyme + + gTExpڒt +> + +32  +T + +make_t +(T +m +, +TExpڒt + +e +) { + +33 i( + ge + > 0) { + +34  +ut8_t + + gdex + = 0; + ge + != 0; index++) { + +35 i( + ge + & 1) + +36 + gm + * +posiveByPowOfT +( +dex +); + +37 + ge + >>= 1; + +40 + ge + = +TExpڒt +(- +e +); + +41  +ut8_t + + gdex + = 0; + ge + != 0; index++) { + +42 i( + ge + & 1) + +43 + gm + * +giveByPowOfT +( +dex +); + +44 + ge + >>= 1; + +47  + gm +; + +50  +T + +posiveByPowOfT +( +dex +) { + +51 +ARDUINOJSON_DEFINE_STATIC_ARRAY +( + +52 +ut32_t +, +s +, + +53 +ARDUINOJSON_EXPAND18 +({ + +64  +fge +( + +65 +ARDUINOJSON_READ_STATIC_ARRAY +( +ut32_t +, +s +, 2 * +dex +), + +66 +ARDUINOJSON_READ_STATIC_ARRAY +( +ut32_t +, +s +, 2 * +dex + + 1)); + +69  +T + +giveByPowOfT +( +dex +) { + +70 +ARDUINOJSON_DEFINE_STATIC_ARRAY +( + +71 +ut32_t +, +s +, + +72 +ARDUINOJSON_EXPAND18 +({ + +83  +fge +( + +84 +ARDUINOJSON_READ_STATIC_ARRAY +( +ut32_t +, +s +, 2 * +dex +), + +85 +ARDUINOJSON_READ_STATIC_ARRAY +( +ut32_t +, +s +, 2 * +dex + + 1)); + +88  +T + +giveByPowOfTPlusO +( +dex +) { + +89 +ARDUINOJSON_DEFINE_STATIC_ARRAY +( + +90 +ut32_t +, +s +, + +91 +ARDUINOJSON_EXPAND18 +({ + +102  +fge +( + +103 +ARDUINOJSON_READ_STATIC_ARRAY +( +ut32_t +, +s +, 2 * +dex +), + +104 +ARDUINOJSON_READ_STATIC_ARRAY +( +ut32_t +, +s +, 2 * +dex + + 1)); + +107  +T + +n +() { + +108  +fge +(0x7ff80000, 0x00000000); + +111  +T + +f +() { + +112  +fge +(0x7ff00000, 0x00000000); + +115  +T + +highe +() { + +116  +fge +(0x7FEFFFFF, 0xFFFFFFFF); + +119  +T + +lowe +() { + +120  +fge +(0xFFEFFFFF, 0xFFFFFFFF); + +126  +T + +fge +( +ut32_t + +msb +, ut32_ +lsb +) { + +127  + gs_ +< + gT +>(( +ut64_t +( +msb +<< 32| + glsb +); + +131 + gme + < +tyme + + gT +> + +132  + gFltTs +< + gT +, 4 > { + +133  +ut32_t + + tmtis_ty +; + +134 cڡ  + gmtis_bs + = 23; + +135 cڡ +mtis_ty + + gmtis_max + = + +136 ( +mtis_ty +(1<< +mtis_bs +) - 1; + +138  +t8_t + + texpڒt_ty +; + +139 cڡ +expڒt_ty + + gexpڒt_max + = 38; + +141 + gme + < +tyme + + gTExpڒt +> + +142  +T + +make_t +(T +m +, +TExpڒt + +e +) { + +143 i( + ge + > 0) { + +144  +ut8_t + + gdex + = 0; + ge + != 0; index++) { + +145 i( + ge + & 1) + +146 + gm + * +posiveByPowOfT +( +dex +); + +147 + ge + >>= 1; + +150 + ge + = - +e +; + +151  +ut8_t + + gdex + = 0; + ge + != 0; index++) { + +152 i( + ge + & 1) + +153 + gm + * +giveByPowOfT +( +dex +); + +154 + ge + >>= 1; + +157  + gm +; + +160  +T + +posiveByPowOfT +( +dex +) { + +161 +ARDUINOJSON_DEFINE_STATIC_ARRAY +( + +162 +T +, +s +, + +163 +ARDUINOJSON_EXPAND6 +({1e1f, 1e2f, 1e4f, 1e8f, 1e16f, 1e32f})); + +164  +ARDUINOJSON_READ_STATIC_ARRAY +( +T +, +s +, +dex +); + +167  +T + +giveByPowOfT +( +dex +) { + +168 +ARDUINOJSON_DEFINE_STATIC_ARRAY +( + +169 +T +, +s +, + +170 +ARDUINOJSON_EXPAND6 +({1e-1f, 1e-2f, 1e-4f, 1e-8f, 1e-16f, 1e-32f})); + +171  +ARDUINOJSON_READ_STATIC_ARRAY +( +T +, +s +, +dex +); + +174  +T + +giveByPowOfTPlusO +( +dex +) { + +175 +ARDUINOJSON_DEFINE_STATIC_ARRAY +( + +176 +T +, +s +, + +177 +ARDUINOJSON_EXPAND6 +({1e0f, 1e-1f, 1e-3f, 1e-7f, 1e-15f, 1e-31f})); + +178  +ARDUINOJSON_READ_STATIC_ARRAY +( +T +, +s +, +dex +); + +181  +T + +fge +( +ut32_t + +bs +) { + +182  + gs_ +< + gT +>( + gbs +); + +185  +T + +n +() { + +186  +fge +(0x7fc00000); + +189  +T + +f +() { + +190  +fge +(0x7f800000); + +193  +T + +highe +() { + +194  +fge +(0x7f7fffff); + +197  +T + +lowe +() { + +198  +fge +(0xFf7fffff); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/Integer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 #i +ARDUINOJSON_USE_LONG_LONG + + +15  +t64_t + + tIeg +; + +16  +ut64_t + + tUI +; + +18  + tIeg +; + +19  + tUI +; + +24 #i +ARDUINOJSON_HAS_LONG_LONG + && ! +ARDUINOJSON_USE_LONG_LONG + + +25  + #ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED +( +T +) \ + +26 + `ic_as +(( +T +<( +ARDUINOJSON_NAMESPACE +:: +Ieg +), \ + +29 "hps://duojs.g/v6/i/cfig/u_lg_lg/"); + + ) + +31  + #ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED +( +T +) + + ) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + eComResu + { + +13 + gCOMPARE_RESULT_DIFFER + = 0, + +14 + gCOMPARE_RESULT_EQUAL + = 1, + +15 + gCOMPARE_RESULT_GREATER + = 2, + +16 + gCOMPARE_RESULT_LESS + = 4, + +18 + gCOMPARE_RESULT_GREATER_OR_EQUAL + = 3, + +19 + gCOMPARE_RESULT_LESS_OR_EQUAL + = 5 + +22 + gme + < +tyme + + gT +> + +23 +ComResu + +hmicCom +(cڡ +T + & +lhs +, cڡ T & +rhs +) { + +24 i( + glhs + < + grhs +) + +25  + gCOMPARE_RESULT_LESS +; + +26 i( + glhs + > + grhs +) + +27  + gCOMPARE_RESULT_GREATER +; + +29  + gCOMPARE_RESULT_EQUAL +; + +32 + gme + < +tyme + + gT1 +,ym + gT2 +> + +33 +ComResu + +hmicCom +( + +34 cڡ +T1 + & +lhs +, cڡ +T2 + & +rhs +, + +35 +tyme + +ab_if +< +is_gl +< +T1 +>:: +vue + && is_gl< +T2 +>::value && + +36 ( +T1 +< ( +T2 +), + +39 >:: +ty + * = 0) { + +40  +hmicCom +< +T2 +>( +ic_ +( +lhs +), +rhs +); + +43 + gme + < +tyme + + gT1 +,ym + gT2 +> + +44 +ComResu + +hmicCom +( + +45 cڡ +T1 + & +lhs +, cڡ +T2 + & +rhs +, + +46 +tyme + +ab_if +< +is_gl +< +T1 +>:: +vue + && is_gl< +T2 +>::value && + +47 ( +T2 +< ( +T1 +)>:: +ty + * = 0) { + +48  +hmicCom +< +T1 +>( +lhs +, +ic_ +( +rhs +)); + +51 + gme + < +tyme + + gT1 +,ym + gT2 +> + +52 +ComResu + +hmicCom +( + +53 cڡ +T1 + & +lhs +, cڡ +T2 + & +rhs +, + +54 +tyme + +ab_if +< +is_gl +< +T1 +>:: +vue + && is_gl< +T2 +>::value && + +55 +is_sigd +< +T1 +>:: +vue + =is_sigd< +T2 +>::value && + +56 ( +T2 +=( +T1 +)>:: +ty + * = 0) { + +57  +hmicCom +< +T1 +>( +lhs +, +ic_ +( +rhs +)); + +60 + gme + < +tyme + + gT1 +,ym + gT2 +> + +61 +ComResu + +hmicCom +( + +62 cڡ +T1 + & +lhs +, cڡ +T2 + & +rhs +, + +63 +tyme + +ab_if +< +is_gl +< +T1 +>:: +vue + && is_gl< +T2 +>::value && + +64 +is_unsigd +< +T1 +>:: +vue + && +is_sigd +< +T2 +>::value && + +65 ( +T2 +=( +T1 +)>:: +ty + * = 0) { + +66 i( +rhs + < 0) + +67  +COMPARE_RESULT_GREATER +; + +68  + ghmicCom +< + gT1 +>( + glhs +, + gic_ +( + grhs +)); + +71 + gme + < +tyme + + gT1 +,ym + gT2 +> + +72 +ComResu + +hmicCom +( + +73 cڡ +T1 + & +lhs +, cڡ +T2 + & +rhs +, + +74 +tyme + +ab_if +< +is_gl +< +T1 +>:: +vue + && is_gl< +T2 +>::value && + +75 +is_sigd +< +T1 +>:: +vue + && +is_unsigd +< +T2 +>::value && + +76 ( +T2 +=( +T1 +)>:: +ty + * = 0) { + +77 i( +lhs + < 0) + +78  +COMPARE_RESULT_LESS +; + +79  + ghmicCom +< + gT2 +>( + gic_ +( + glhs +), + grhs +); + +82 + gme + < +tyme + + gT1 +,ym + gT2 +> + +83 +ComResu + +hmicCom +( + +84 cڡ +T1 + & +lhs +, cڡ +T2 + & +rhs +, + +85 +tyme + +ab_if +< +is_tg_pot +< +T1 +>:: +vue + || + +86 +is_tg_pot +< +T2 +>:: +vue +>:: +ty + * = 0) { + +87  +hmicCom +<>( +ic_ +<>( +lhs +), + +88 +ic_ +<>( +rhs +)); + +91 + gme + < +tyme + + gT2 +> + +92 +ComResu + +hmicComNegeLe +( + +93 +UI +, cڡ +T2 + &, +tyme + +ab_if +< +is_unsigd +:: +vue +>:: +ty + * = 0) { + +94  +COMPARE_RESULT_LESS +; + +97 + gme + < +tyme + + gT2 +> + +98 +ComResu + +hmicComNegeLe +( + +99 +UI + +lhs +, cڡ +T2 + & +rhs +, + +100 +tyme + +ab_if +< +is_sigd +< +T2 +>:: +vue +>:: +ty + * = 0) { + +101 i( +rhs + > 0) + +102  +COMPARE_RESULT_LESS +; + +103  +hmicCom +(- +rhs +, +ic_ +< +T2 +>( +lhs +)); + +106 + gme + < +tyme + + gT1 +> + +107 +ComResu + +hmicComNegeRight +( + +108 cڡ +T1 + &, +UI +, +tyme + +ab_if +< +is_unsigd +:: +vue +>:: +ty + * = 0) { + +109  +COMPARE_RESULT_GREATER +; + +112 + gme + < +tyme + + gT1 +> + +113 +ComResu + +hmicComNegeRight +( + +114 cڡ +T1 + & +lhs +, +UI + +rhs +, + +115 +tyme + +ab_if +< +is_sigd +< +T1 +>:: +vue +>:: +ty + * = 0) { + +116 i( +lhs + > 0) + +117  +COMPARE_RESULT_GREATER +; + +118  +hmicCom +( +ic_ +< +T1 +>( +rhs +), - +lhs +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp + +5 #agm + + + +7 #i +defed +( +__g__ +) + +8 #agm +g + +dgnoic + +push + + +9 #agm +g + +dgnoic + +igned + "-Wconversion" + +10 #i +defed +( +__GNUC__ +) + +11 #i +__GNUC__ + > 4 || (__GNUC__ =4 && +__GNUC_MINOR__ + >= 6) + +12 #agm +GCC + +dgnoic + +push + + +14 #agm +GCC + +dgnoic + +igned + "-Wconversion" + +17  + ~ + +18  + ~ + +19  + ~ + +20  + ~ + +22 +mea + + gARDUINOJSON_NAMESPACE + { + +24 + gme + < +tyme + + gTOut +,ym + gTIn +> + +25 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && ( +TOut +<( +TIn +), + +26 + gbo +>:: +ty + + +27 +nStePosiveIeg +( +TIn + +vue +) { + +28  +vue + < +TIn +( +numic_lims +< +TOut +>:: +highe +()); + +31 + gme + < +tyme + + gTOut +,ym + gTIn +> + +32 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && ( +TIn +< ( +TOut +), + +33 + gbo +>:: +ty + + +34 +nStePosiveIeg +( +TIn +) { + +35  +ue +; + +38 + gme + < +tyme + + gTOut +,ym + gTIn +> + +39 +tyme + + gab_if +< + gis_tg_pot +< + gTOut +>:: +vue +, + gbo +>:: +ty + + +40 +nStePosiveIeg +( +TIn +) { + +41  +ue +; + +44 + gme + < +tyme + + gTOut +,ym + gTIn +> + +45 +tyme + + gab_if +< + gis_tg_pot +< + gTOut +>:: +vue +, + gbo +>:: +ty + + +46 +nSteNegiveIeg +( +TIn +) { + +47  +ue +; + +50 + gme + < +tyme + + gTOut +,ym + gTIn +> + +51 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && +is_sigd +< +TOut +>::value && + +52 ( +TOut +<( +TIn +), + +53 + gbo +>:: +ty + + +54 +nSteNegiveIeg +( +TIn + +vue +) { + +55  +vue + < +TIn +( +numic_lims +< +TOut +>:: +highe +()) + 1; + +58 + gme + < +tyme + + gTOut +,ym + gTIn +> + +59 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && +is_sigd +< +TOut +>::value && + +60 ( +TIn +< ( +TOut +), + +61 + gbo +>:: +ty + + +62 +nSteNegiveIeg +( +TIn +) { + +63  +ue +; + +66 + gme + < +tyme + + gTOut +,ym + gTIn +> + +67 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && +is_unsigd +< +TOut +>::value, + +68 + gbo +>:: +ty + + +69 +nSteNegiveIeg +( +TIn +) { + +70  +l +; + +73 + gme + < +tyme + + gTOut +,ym + gTIn +> + +74 +TOut + +cvtPosiveIeg +( +TIn + +vue +) { + +75  + gnStePosiveIeg +< + gTOut +>( + gvue +? +TOut +( +vue +) : 0; + +78 + gme + < +tyme + + gTOut +,ym + gTIn +> + +79 +TOut + +cvtNegiveIeg +( +TIn + +vue +) { + +80  + gnSteNegiveIeg +< + gTOut +>( + gvue +? +TOut +(~ +vue + + 1) : 0; + +83 + gme + < +tyme + + gTOut +,ym + gTIn +> + +84 +tyme + + gab_if +< + gis_tg_pot +< + gTOut +>:: +vue +, TOut>:: +ty + +cvtFlt +( + +85 +TIn + +vue +) { + +86  +TOut +( +vue +); + +89 + gme + < +tyme + + gTOut +,ym + gTIn +> + +90 +tyme + + gab_if +:: +vue +, TOut>:: +ty + +cvtFlt +( + +91 +TIn + +vue +) { + +92  +vue + > +numic_lims +< +TOut +>:: +lowe +() && + +93 +vue + < +numic_lims +< +TOut +>:: +highe +() + +94 ? +TOut +( +vue +) + +99 #i +defed +( +__g__ +) + +100 #agm +g + +dgnoic + +p + + +101 #i +defed +( +__GNUC__ +) + +102 #i +__GNUC__ + > 4 || (__GNUC__ =4 && +__GNUC_MINOR__ + >= 6) + +103 #agm +GCC + +dgnoic + +p + + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +16 +mea + + gARDUINOJSON_NAMESPACE + { + +18 + gme + < +tyme + + gA +,ym + gB +> + +19  + gchoo_rge + : +cdiڮ +<(( +A +> ( +B +)), + gA +, + gB +> {}; + +21 +le + +bo + +rNumb +(cڡ * +s +, +VDa +& +su +) { + +22  + gFltTs +< + tFlt +> + tas +; + +23  + gchoo_rge +< + tas +:: + tmtis_ty +, + tUI +>:: + tty + + tmtis_t +; + +24  + gas +:: + texpڒt_ty + + texpڒt_t +; + +26 +ARDUINOJSON_ASSERT +( +s + != 0); + +28 +bo + + gis_give + = +l +; + +29 * + gs +) { + +31 +is_give + = +ue +; + +32 + gs +++; + +35 +s +++; + +39 #i +ARDUINOJSON_ENABLE_NAN + + +40 i(* + gs + ='n' || * +s + == 'N') { + +41 +su +. +tFlt +( +as +:: +n +()); + +42  + gue +; + +46 #i +ARDUINOJSON_ENABLE_INFINITY + + +47 i(* + gs + ='i' || * +s + == 'I') { + +48 +su +. +tFlt +( +is_give + ? - +as +:: +f +() :raits::inf()); + +49  + gue +; + +53 i(! +isdig +(* +s +&& * + gs + != '.') + +54  +l +; + +56 +mtis_t + + gmtis + = 0; + +57 +expڒt_t + + gexpڒt_offt + = 0; + +58 cڡ +mtis_t + + gmaxUt + = +UI +(-1); + +60  +isdig +(* +s +)) { + +61 +ut8_t + + gdig + = ut8_t(* +s + - '0'); + +62 i( + gmtis + > + gmaxUt + / 10) + +64 + gmtis + *= 10; + +65 i( + gmtis + > + gmaxUt + - + gdig +) + +67 + gmtis + + +dig +; + +68 + gs +++; + +71 i(* + gs + == '\0') { + +72 i( +is_give +) + +73 +su +. +tNegiveIeg +( +UI +( +mtis +)); + +75 + gsu +. +tPosiveIeg +( +UI +( +mtis +)); + +76  + gue +; + +80  + gmtis + > + gas +:: +mtis_max +) { + +81 +mtis + /= 10; + +82 + gexpڒt_offt +++; + +86  +isdig +(* +s +)) { + +87 + gexpڒt_offt +++; + +88 + gs +++; + +91 i(* + gs + == '.') { + +92 +s +++; + +93  +isdig +(* +s +)) { + +94 i( + gmtis + < + gas +:: +mtis_max + / 10) { + +95 +mtis + = mtis * 10 + +ut8_t +(* +s + - '0'); + +96 + gexpڒt_offt +--; + +98 + gs +++; + +102  + gexpڒt + = 0; + +103 i(* + gs + ='e' || * +s + == 'E') { + +104 +s +++; + +105 +bo + + ggive_expڒt + = +l +; + +106 i(* + gs + == '-') { + +107 +give_expڒt + = +ue +; + +108 + gs +++; + +109 } i(* + gs + == '+') { + +110 +s +++; + +113  +isdig +(* +s +)) { + +114 + gexpڒt + = +expڒt + * 10 + (* +s + - '0'); + +115 i( + gexpڒt + + + gexpڒt_offt + > + gas +:: +expڒt_max +) { + +116 i( +give_expڒt +) + +117 +su +. +tFlt +( +is_give + ? -0.0f : 0.0f); + +119 + gsu +. +tFlt +( +is_give + ? - +as +:: +f +() :raits::inf()); + +120  + gue +; + +122 + gs +++; + +124 i( + ggive_expڒt +) + +125 + gexpڒt + = - +expڒt +; + +127 + gexpڒt + + +expڒt_offt +; + +130 i(* + gs + != '\0') + +131  +l +; + +133 +Flt + + gf_su + = + +134 +as +:: +make_t +( +ic_ +< +Flt +>( +mtis +), +expڒt +); + +136 + gsu +. +tFlt +( +is_give + ? - +f_su + : final_result); + +137  + gue +; + +140 + gme + < +tyme + + gT +> + +141 +le + +T + +rNumb +(cڡ * +s +) { + +142 +VDa + + gvue +; + +143 + gvue +. + +(); + +144 +rNumb +( +s +, +vue +); + +145  + gvAs +< + gT +>(& + gvue +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 #ifde +_MSC_VER + + +15 #agm +wng +( +push +) + +16 #agm +wng +( +dib + : 4522) + +19 +mea + + gARDUINOJSON_NAMESPACE + { + +21 + gme + < +tyme + + gTObje +,ym + gTSgRef +> + +22 +ass + + gMembProxy + : +public + +VOts +< +MembProxy +< +TObje +, + gTSgRef +> >, + +23 +public + + gVShtcuts +< + gMembProxy +< + gTObje +, + gTSgRef +> >, + +24 +public + + gVisab + { + +25  + gMembProxy +< + tTObje +, + tTSgRef +> + tthis_ty +; + +27 + gpublic +: + +28 +FORCE_INLINE + +MembProxy +( +TObje + +v +, +TSgRef + +key +) + +29 : +_obje +( +v +), +_key +( +key +) {} + +31 +FORCE_INLINE + +MembProxy +(cڡ MembProxy & +c +) + +32 : +_obje +( +c +._obje), +_key +(src._key) {} + +34 +FORCE_INLINE + +ݔ + +VCڡRef +() const { + +35  +gUpamMemb +(); + +38 +FORCE_INLINE + + gthis_ty + & + gݔ +=(cڡ +this_ty + & +c +) { + +39 +gOrAddUpamMemb +(). +t +( +c +); + +40  * + gthis +; + +43 + gme + < +tyme + + gTVue +> + +44 +FORCE_INLINE + +tyme + + gab_if +:: +vue +, + gthis_ty + &>:: +ty + + +45 +ݔ +=(cڡ +TVue + & +c +) { + +46 +gOrAddUpamMemb +(). +t +( +c +); + +47  * + gthis +; + +53 + gme + < +tyme + + gTCh +> + +54 +FORCE_INLINE + + gthis_ty + & + gݔ +=( +TCh + * +c +) { + +55 +gOrAddUpamMemb +(). +t +( +c +); + +56  * + gthis +; + +59 +FORCE_INLINE +  +r +() const { + +60 +gUpamMemb +(). +r +(); + +63 +FORCE_INLINE + +bo + +isNu +() const { + +64  +gUpamMemb +(). +isNu +(); + +67 + gme + < +tyme + + gTVue +> + +68 +FORCE_INLINE + +tyme + + gVAs +< + gTVue +>:: +ty + +as +() const { + +69  +gUpamMemb +(). +me + +as +< +TVue +>(); + +72 + gme + < +tyme + + gT +> + +73 +FORCE_INLINE + +ݔ + +T +() const { + +74  +gUpamMemb +(); + +77 + gme + < +tyme + + gTVue +> + +78 +FORCE_INLINE + +bo + +is +() const { + +79  +gUpamMemb +(). +me + + gis +< + gTVue +>(); + +82 +FORCE_INLINE + +size_t + +size +() const { + +83  +gUpamMemb +(). +size +(); + +86 +FORCE_INLINE +  +move +( +size_t + +dex +) const { + +87 +gUpamMemb +(). +move +( +dex +); + +92 + gme + < +tyme + + gTCh +> + +93 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +>:: +ty + +move +( + +94 +TCh + * +key +) const { + +95 +gUpamMemb +(). +move +( +key +); + +99 + gme + < +tyme + + gTSg +> + +100 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +>:: +ty + +move +( + +101 cڡ +TSg + & +key +) const { + +102 +gUpamMemb +(). +move +( +key +); + +105 + gme + < +tyme + + gTVue +> + +106 +FORCE_INLINE + +tyme + + gVTo +< + gTVue +>:: +ty + +to +() { + +107  +gOrAddUpamMemb +(). +me + +to +< +TVue +>(); + +110 + gme + < +tyme + + gTVue +> + +111 +FORCE_INLINE + +bo + +t +(cڡ +TVue + & +vue +) { + +112  +gOrAddUpamMemb +(). +t +( +vue +); + +118 + gme + < +tyme + + gTCh +> + +119 +FORCE_INLINE + +bo + +t +( +TCh + * +vue +) { + +120  +gOrAddUpamMemb +(). +t +( +vue +); + +123 + gme + < +tyme + + gTVis +> + +124 +tyme + + gTVis +:: +su_ty + +ac +( +TVis + & +vis +) const { + +125  +gUpamMemb +(). +ac +( +vis +); + +128 +FORCE_INLINE + +VRef + +addEmt +() const { + +129  +gOrAddUpamMemb +(). +addEmt +(); + +132 +FORCE_INLINE + +VRef + +gEmt +( +size_t + +dex +) const { + +133  +gUpamMemb +(). +gEmt +( +dex +); + +136 +FORCE_INLINE + +VRef + +gOrAddEmt +( +size_t + +dex +) const { + +137  +gOrAddUpamMemb +(). +gOrAddEmt +( +dex +); + +143 + gme + < +tyme + + gTCh +> + +144 +FORCE_INLINE + +VRef + +gMemb +( +TCh + * +key +) const { + +145  +gUpamMemb +(). +gMemb +( +key +); + +150 + gme + < +tyme + + gTSg +> + +151 +FORCE_INLINE + +VRef + +gMemb +(cڡ +TSg + & +key +) const { + +152  +gUpamMemb +(). +gMemb +( +key +); + +158 + gme + < +tyme + + gTCh +> + +159 +FORCE_INLINE + +VRef + +gOrAddMemb +( +TCh + * +key +) const { + +160  +gOrAddUpamMemb +(). +gOrAddMemb +( +key +); + +165 + gme + < +tyme + + gTSg +> + +166 +FORCE_INLINE + +VRef + +gOrAddMemb +(cڡ +TSg + & +key +) const { + +167  +gOrAddUpamMemb +(). +gOrAddMemb +( +key +); + +170 + give +: + +171 +FORCE_INLINE + +VRef + +gUpamMemb +() const { + +172  +_obje +. +gMemb +( +_key +); + +175 +FORCE_INLINE + +VRef + +gOrAddUpamMemb +() const { + +176  + g_obje +. +gOrAddMemb +( +_key +); + +179 +TObje + + g_obje +; + +180 +TSgRef + + g_key +; + +185 #ifde +_MSC_VER + + +186 #agm +wng +( +p +) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectFunctions.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTVis +> + +12 +tyme + + gTVis +:: +su_ty + +objeAc +(cڡ +CiDa + * +obj +, + +13 +TVis + & +vis +) { + +14 i( + gobj +) + +15  + gvis +. +visObje +(* +obj +); + +17  + gvis +. +visNu +(); + +20 +le + +bo + +objeEqus +(cڡ +CiDa + * +lhs +, cڡ CiD* +rhs +) { + +21 i( + glhs + = +rhs +) + +22  +ue +; + +23 i(! + glhs + || ! + grhs +) + +24  + gl +; + +25  + glhs +-> +equsObje +(* +rhs +); + +28 + gme + < +tyme + + gTAddSg +> + +29 +le + +VDa + * +objeGMemb +(cڡ +CiDa + * +obj +, + +30 +TAddSg + +key +) { + +31 i(! + gobj +) + +33  + gobj +-> +gMemb +( +key +); + +36 + gme + < +tyme + + gTAddSg +> + +37  +objeRemove +( +CiDa + * +obj +, +TAddSg + +key +) { + +38 i(! + gobj +) + +40 + gobj +-> +moveMemb +( +key +); + +43 + gme + < +tyme + + gTAddSg +> + +44 +le + +VDa + * +objeGOrAddMemb +( +CiDa + * +obj +, + +45 +TAddSg + +key +, +MemyPo + * +po +) { + +46 i(! + gobj +) + +49  + gobj +-> +gOrAddMemb +( +key +, +po +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTObje +> + +13 + gme + < +tyme + + gTSg +> + +14 +le + +AayRef + + gObjeShtcuts +< + gTObje +>:: +NeedAay +( + +15 cڡ +TSg +& +key +) const { + +16  +im +()-> +gOrAddMemb +( +key +). +me + +to +< +AayRef +>(); + +19 + gme + < +tyme + + gTObje +> + +20 + gme + < +tyme + + gTCh +> + +21 +le + +AayRef + + gObjeShtcuts +< + gTObje +>:: +NeedAay +( +TCh +* +key +) const { + +22  +im +()-> +gOrAddMemb +( +key +). +me + +to +< +AayRef +>(); + +25 + gme + < +tyme + + gTObje +> + +26 + gme + < +tyme + + gTSg +> + +27 +le + +ObjeRef + + gObjeShtcuts +< + gTObje +>:: +NeedObje +( + +28 cڡ +TSg +& +key +) const { + +29  +im +()-> +gOrAddMemb +( +key +). +me + +to +< +ObjeRef +>(); + +32 + gme + < +tyme + + gTObje +> + +33 + gme + < +tyme + + gTCh +> + +34 +le + +ObjeRef + + gObjeShtcuts +< + gTObje +>:: +NeedObje +( + +35 +TCh +* +key +) const { + +36  +im +()-> +gOrAddMemb +( +key +). +me + +to +< +ObjeRef +>(); + +39 + gme + < +tyme + + gTObje +> + +40 + gme + < +tyme + + gTSg +> + +41 +le + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gbo +>:: +ty + + +42 +ObjeShtcuts +< +TObje +>:: +cڏsKey +(cڡ +TSg +& +key +) const { + +43  ! +im +()-> +gMemb +( +key +). +isUndefed +(); + +46 + gme + < +tyme + + gTObje +> + +47 + gme + < +tyme + + gTCh +> + +48 +le + +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +, + gbo +>:: +ty + + +49 +ObjeShtcuts +< +TObje +>:: +cڏsKey +( +TCh +* +key +) const { + +50  ! +im +()-> +gMemb +( +key +). +isUndefed +(); + +53 + gme + < +tyme + + gTObje +> + +54 + gme + < +tyme + + gTSg +> + +55 +le + +tyme + + gab_if +< + gIsSg +< + gTSg +*>:: +vue +, + +56 + gMembProxy +< + gTObje +, + gTSg +*> >:: +ty + + +57 +ObjeShtcuts +< +TObje +>:: +ݔ +[]( +TSg +* +key +) const { + +58  +MembProxy +< +TObje +, + gTSg +*>(* +im +(), + gkey +); + +61 + gme + < +tyme + + gTObje +> + +62 + gme + < +tyme + + gTSg +> + +63 +le + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + +64 + gMembProxy +< + gTObje +, + gTSg +> >:: +ty + + +65 +ObjeShtcuts +< +TObje +>:: +ݔ +[](cڡ +TSg +& +key +) const { + +66  +MembProxy +< +TObje +, + gTSg +>(* +im +(), + gkey +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectIterator.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cPaP + { + +13 + gpublic +: + +14 +PaP +( +MemyPo + * +po +, +VSl + * + +: +_ +(pool, slot) {} + +16 cڡ +Pa + * + gݔ +->() const { + +17  & + g_ +; + +20 cڡ + gPa + & + gݔ +*() const { + +21  + g_ +; + +24 + give +: + +25 +Pa + +_ +; + +28 as + cObjeIt + { + +29 + gpublic +: + +30 +ObjeIt +(: +_ +(0) {} + +32 +exic + +ObjeIt +( +MemyPo + * +po +, +VSl + * + +) + +33 : +_po +( +po +), +_ +( + +) {} + +35 +Pa + + gݔ +*() const { + +36  +Pa +( +_po +, +_ +); + +38 +PaP + + gݔ +->() { + +39  +PaP +( +_po +, +_ +); + +42 +bo + + gݔ +==(cڡ +ObjeIt + & +h +) const { + +43  +_ + = +h +._slot; + +46 +bo + + gݔ +!=(cڡ +ObjeIt + & +h +) const { + +47  +_ + ! +h +._slot; + +50 + gObjeIt + & + gݔ +++() { + +51 + g_ + = +_ +-> +xt +(); + +52  * + gthis +; + +55 + gObjeIt + & + gݔ ++=( +size_t + +di +) { + +56 +_ + = _-> +xt +( +di +); + +57  * + gthis +; + +60 +VSl + * + +() { + +61  + g_ +; + +64 + give +: + +65 +MemyPo + * +_po +; + +66 +VSl + * + g_ +; + +69 as + cPaCڡP + { + +70 + gpublic +: + +71 +PaCڡP +(cڡ +VSl + * + +: +_ +(slot) {} + +73 cڡ +PaCڡ + * +ݔ +->() const { + +74  & +_ +; + +77 cڡ + gPaCڡ + & + gݔ +*() const { + +78  + g_ +; + +81 + give +: + +82 +PaCڡ + +_ +; + +85 as + cObjeCڡIt + { + +86 + gpublic +: + +87 +ObjeCڡIt +(: +_ +(0) {} + +89 +exic + +ObjeCڡIt +(cڡ +VSl + * + +: +_ +(slot) {} + +91 +PaCڡ + +ݔ +*() const { + +92  +PaCڡ +( +_ +); + +94 +PaCڡP + + gݔ +->() { + +95  +PaCڡP +( +_ +); + +98 +bo + + gݔ +==(cڡ +ObjeCڡIt + & +h +) const { + +99  +_ + = +h +._slot; + +102 +bo + + gݔ +!=(cڡ +ObjeCڡIt + & +h +) const { + +103  +_ + ! +h +._slot; + +106 + gObjeCڡIt + & + gݔ +++() { + +107 + g_ + = +_ +-> +xt +(); + +108  * + gthis +; + +111 + gObjeCڡIt + & + gݔ ++=( +size_t + +di +) { + +112 +_ + = _-> +xt +( +di +); + +113  * + gthis +; + +116 cڡ +VSl + * + +() { + +117  + g_ +; + +120 + give +: + +121 cڡ +VSl + * +_ +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectRef.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +12  + #JSON_OBJECT_SIZE +( +NUMBER_OF_ELEMENTS +) \ + +13 (( +NUMBER_OF_ELEMENTS +* ( +ARDUINOJSON_NAMESPACE +:: +VSl +)) + + ) + +15 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gme + < +tyme + + gTDa +> + +18 as + cObjeRefBa + { + +19 + gpublic +: + +20 +ݔ + +VCڡRef +() const { + +21 cڡ * +da + = +_da +; + +22  +VCڡRef +( +t_ +( +da +)); + +25 + gme + < +tyme + + gTVis +> + +26 +tyme + + gTVis +:: +su_ty + +ac +( +TVis +& +vis +) const { + +27  +objeAc +( +_da +, +vis +); + +30 +FORCE_INLINE + +bo + +isNu +() const { + +31  + g_da + == 0; + +34 +FORCE_INLINE + +ݔ + +bo +() const { + +35  + g_da + != 0; + +38 +FORCE_INLINE + +size_t + +memyUge +() const { + +39  + g_da + ? _da-> +memyUge +() : 0; + +42 +FORCE_INLINE + +size_t + +ág +() const { + +43  + g_da + ? _da-> +ág +() : 0; + +46 +FORCE_INLINE + +size_t + +size +() const { + +47  + g_da + ? _da-> +size +() : 0; + +50 + geed +: + +51 +ObjeRefBa +( +TDa +* +da +: +_da +(data) {} + +52 +TDa +* +_da +; + +55 +ass + + gObjeCڡRef + : +public + +ObjeRefBa +, + +56 +public + + gVisab + { + +57 +nd + +ass + + gObjeRef +; + +58  + gObjeRefBa + + tba_ty +; + +60 + gpublic +: + +61  +ObjeCڡIt + + t +; + +63 +ObjeCڡRef +(: +ba_ty +(0) {} + +64 +ObjeCڡRef +(cڡ +CiDa +* +da +: +ba_ty +(data) {} + +66 +FORCE_INLINE + + + +beg +() const { + +67 i(! +_da +) + +68  + +(); + +69  + +( +_da +-> +hd +()); + +72 +FORCE_INLINE + + + +d +() const { + +73  + +(); + +78 + gme + < +tyme + + gTSg +> + +79 +FORCE_INLINE + +bo + +cڏsKey +(cڡ +TSg +& +key +) const { + +80  ! +gMemb +( +key +). +isUndefed +(); + +86 + gme + < +tyme + + gTCh +> + +87 +FORCE_INLINE + +bo + +cڏsKey +( +TCh +* +key +) const { + +88  ! +gMemb +( +key +). +isUndefed +(); + +93 + gme + < +tyme + + gTSg +> + +94 +FORCE_INLINE + +VCڡRef + +gMemb +(cڡ +TSg +& +key +) const { + +95  +g_im +( +adtSg +( +key +)); + +101 + gme + < +tyme + + gTCh +> + +102 +FORCE_INLINE + +VCڡRef + +gMemb +( +TCh +* +key +) const { + +103  +g_im +( +adtSg +( +key +)); + +108 + gme + < +tyme + + gTSg +> + +109 +FORCE_INLINE + + +110 +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVCڡRef +>:: +ty + + +111 +ݔ +[](cڡ +TSg +& +key +) const { + +112  +g_im +( +adtSg +( +key +)); + +118 + gme + < +tyme + + gTCh +> + +119 +FORCE_INLINE + + +120 +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +, + gVCڡRef +>:: +ty + + +121 +ݔ +[]( +TCh +* +key +) const { + +122  +g_im +( +adtSg +( +key +)); + +125 +FORCE_INLINE + +bo + + gݔ +==( +ObjeCڡRef + +rhs +) const { + +126  +objeEqus +( +_da +, +rhs +._data); + +129 + give +: + +130 +me + < +tyme + +TAddSg +> + +131 +FORCE_INLINE + +VCڡRef + +g_im +( +TAddSg + +key +) const { + +132  +VCڡRef +( +objeGMemb +( +_da +, +key +)); + +136 +ass + + gObjeRef + : +public + +ObjeRefBa +< +CiDa +>, + +137 +public + + gObjeShtcuts +< + gObjeRef +>, + +138 +public + + gVisab + { + +139  + gObjeRefBa +< + tCiDa +> + tba_ty +; + +141 + gpublic +: + +142  +ObjeIt + + t +; + +144 +FORCE_INLINE + +ObjeRef +(: +ba_ty +(0), +_po +(0) {} + +145 +FORCE_INLINE + +ObjeRef +( +MemyPo +* +buf +, +CiDa +* +da +) + +146 : +ba_ty +( +da +), +_po +( +buf +) {} + +148 +ݔ + +VRef +() const { + +149 * + gda + = +_da +; + +150  +VRef +( +_po +, +t_ +< +VDa +*>( +da +)); + +153 +ݔ + +ObjeCڡRef +() const { + +154  +ObjeCڡRef +( +_da +); + +157 +FORCE_INLINE + + + +beg +() const { + +158 i(! + g_da +) + +159  + +(); + +160  + +( +_po +, +_da +-> +hd +()); + +163 +FORCE_INLINE + + + +d +() const { + +164  + +(); + +167  +r +() const { + +168 i(! + g_da +) + +170 + g_da +-> +r +(); + +173 +FORCE_INLINE + +bo + +t +( +ObjeCڡRef + +c +) { + +174 i(! + g_da + || ! + gc +._data) + +175  + gl +; + +176  + g_da +-> +cyFrom +(* +c +. +_da +, +_po +); + +181 + gme + < +tyme + + gTSg +> + +182 +FORCE_INLINE + +VRef + +gMemb +(cڡ +TSg +& +key +) const { + +183  +VRef +( +_po +, +objeGMemb +( +_da +, +adtSg +( +key +))); + +189 + gme + < +tyme + + gTCh +> + +190 +FORCE_INLINE + +VRef + +gMemb +( +TCh +* +key +) const { + +191  +VRef +( +_po +, +objeGMemb +( +_da +, +adtSg +( +key +))); + +196 + gme + < +tyme + + gTSg +> + +197 +FORCE_INLINE + +VRef + +gOrAddMemb +(cڡ +TSg +& +key +) const { + +198  +VRef +( +_po +, + +199 +objeGOrAddMemb +( +_da +, +adtSg +( +key +), +_po +)); + +205 + gme + < +tyme + + gTCh +> + +206 +FORCE_INLINE + +VRef + +gOrAddMemb +( +TCh +* +key +) const { + +207  +VRef +( +_po +, + +208 +objeGOrAddMemb +( +_da +, +adtSg +( +key +), +_po +)); + +211 +FORCE_INLINE + +bo + + gݔ +==( +ObjeRef + +rhs +) const { + +212  +objeEqus +( +_da +, +rhs +._data); + +215 +FORCE_INLINE +  +move +( + + + +) const { + +216 i(! + g_da +) + +218 + g_da +-> +moveSl +( + +. + +()); + +223 + gme + < +tyme + + gTSg +> + +224 +FORCE_INLINE +  +move +(cڡ +TSg +& +key +) const { + +225 +objeRemove +( +_da +, +adtSg +( +key +)); + +231 + gme + < +tyme + + gTCh +> + +232 +FORCE_INLINE +  +move +( +TCh +* +key +) const { + +233 +objeRemove +( +_da +, +adtSg +( +key +)); + +236 + give +: + +237 +MemyPo +* +_po +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectShortcuts.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTPt +,ym + gTSgRef +> + +13 +ass + + gMembProxy +; + +15 + gme + < +tyme + + gTObje +> + +16 as + cObjeShtcuts + { + +17 + gpublic +: + +20 +me + < +tyme + +TSg +> + +21 +FORCE_INLINE + +tyme + +ab_if +< +IsSg +< +TSg +>:: +vue +, + gbo +>:: +ty + + +22 +cڏsKey +(cڡ +TSg + & +key +) const; + +27 + gme + < +tyme + + gTCh +> + +28 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +, + gbo +>:: +ty + + +29 +cڏsKey +( +TCh + * +key +) const; + +33 + gme + < +tyme + + gTSg +> + +34 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + +35 + gMembProxy +< + gTObje +, + gTSg +> >:: +ty + + +36 +ݔ +[](cڡ +TSg + & +key +) const; + +41 + gme + < +tyme + + gTCh +> + +42 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +, + +43 + gMembProxy +< + gTObje +, + gTCh + *> >:: +ty + + +44 +ݔ +[]( +TCh + * +key +) const; + +48 + gme + < +tyme + + gTSg +> + +49 +FORCE_INLINE + +AayRef + +NeedAay +(cڡ +TSg + & +key +) const; + +54 + gme + < +tyme + + gTCh +> + +55 +FORCE_INLINE + +AayRef + +NeedAay +( +TCh + * +key +) const; + +59 + gme + < +tyme + + gTSg +> + +60 +ObjeRef + +NeedObje +(cڡ +TSg + & +key +) const; + +65 + gme + < +tyme + + gTCh +> + +66 +ObjeRef + +NeedObje +( +TCh + * +key +) const; + +68 + give +: + +69 cڡ +TObje + * +im +() const { + +70  +ic_ +( +this +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/Pair.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cPa + { + +13 + gpublic +: + +14 +Pa +( +MemyPo +* +po +, +VSl +* + +) { + +15 i( + g +) { + +16 + g_key + = +Sg +( + +-> +key +(), !-> +ownsKey +()); + +17 + g_vue + = +VRef +( +po +, + +-> +da +()); + +21 +Sg + +key +() const { + +22  + g_key +; + +25 +VRef + +vue +() const { + +26  + g_vue +; + +29 + give +: + +30 +Sg + +_key +; + +31 +VRef + + g_vue +; + +34 as + cPaCڡ + { + +35 + gpublic +: + +36 +PaCڡ +(cڡ +VSl +* + +) { + +37 i( + +) { + +38 +_key + = +Sg +( + +-> +key +(), !-> +ownsKey +()); + +39 + g_vue + = +VCڡRef +( + +-> +da +()); + +43 +Sg + +key +() const { + +44  + g_key +; + +47 +VCڡRef + +vue +() const { + +48  + g_vue +; + +51 + give +: + +52 +Sg + +_key +; + +53 +VCڡRef + + g_vue +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~"mh.h +" + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 + gme + < +tyme + + gT +,ym + gF +> + +16  + ss__t + { + +18 +F + + gw +; + +19 +T + + gda +; + +23 + gme + < +tyme + + gT +,ym + gF +> + +24 +T + +s_ +( +F + +w_da +) { + +25 + gs__t +< + gT +, + gF +> + gac +; + +26 + gac +. + gw + = +w_da +; + +27  + gac +. + gda +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp + +5 #agm + + + +7  + ~ + +9 #i +ARDUINOJSON_DEBUG + + +10  + ~ + +11  + #ARDUINOJSON_ASSERT +( +X + + `as +(X) + + ) + +13  + #ARDUINOJSON_ASSERT +( +X +(()0) + + ) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp + +5 #agm + + + +7 #ifde +_MSC_VER + + +9  + #FORCE_INLINE + + +10  + #NO_INLINE + + `__deec +( +nole +) + + ) + +11  + #DEPRECATED +( +msg + + `__deec +( + `dd +(msg)) + + ) + +13 #i +defed +( +__GNUC__ +) + +15  + #FORCE_INLINE + + `__ibu__ +(( +ways_le +)) + + ) + +16  + #NO_INLINE + + `__ibu__ +(( +nole +)) + + ) + +17 #i +__GNUC__ + > 4 || (__GNUC__ =4 && +__GNUC_MINOR__ + >= 5) + +18  + #DEPRECATED +( +msg + + `__ibu__ +(( + `dd +(msg))) + + ) + +20  + #DEPRECATED +( +msg + + `__ibu__ +(( +dd +)) + + ) + +25  + #FORCE_INLINE + + + ) + +26  + #NO_INLINE + + + ) + +27  + #DEPRECATED +( +msg +) + + ) + +31 #i +__lulus + >= 201103L + +32  + #NOEXCEPT + +nx + + + ) + +34  + #NOEXCEPT + + `throw +() + + ) + +37 #i +defed +( +__has_ibu +) + +38 #i +__has_ibu +( +no_nize +) + +39  + #ARDUINOJSON_NO_SANITIZE +( +check + + `__ibu__ +(( + `no_nize +(check))) + + ) + +41  + #ARDUINOJSON_NO_SANITIZE +( +check +) + + ) + +44  + #ARDUINOJSON_NO_SANITIZE +( +check +) + + ) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 +le + +bo + +isdig +( +c +) { + +12  '0' < +c + && c <= '9'; + +15 +le + +bo + +issign +( +c +) { + +16  '-' = +c + || c == '+'; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp + +5 #agm + + + +7  + ~"ty_as.h +" + +9 #ifde +_MSC_VER + + +10 #agm +wng +( +push +) + +11 #agm +wng +( +dib + : 4310) + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gme + < +tyme + + gT +,ym + gEb + = > + +18  +numic_lims +; + +20 + gme + < +tyme + + gT +> + +21  + gnumic_lims +< + gT +, +tyme + + gab_if +< + gis_unsigd +:: +vue +>:: +ty +> { + +22  +T + +lowe +() { + +25  +T + +highe +() { + +26  +T +(-1); + +30 + gme + < +tyme + + gT +> + +31  + gnumic_lims +< + +32 + gT +, +tyme + + gab_if +< + gis_gl +:: +vue + && +is_sigd +< +T +>::vue>:: +ty +> { + +33  +T + +lowe +() { + +34  +T +(T(1) << ((T) * 8 - 1)); + +36  +T + +highe +() { + +37  +T +(~ +lowe +()); + +43 #ifde +_MSC_VER + + +44 #agm +wng +( +p +) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +14 #ide +i + + +15 + gme + < +tyme + + gT +> + +16 +bo + +i +( +T + +x +) { + +17  + gx + ! +x +; + +21 #ide +isf + + +22 + gme + < +tyme + + gT +> + +23 +bo + +isf +( +T + +x +) { + +24  + gx + !0.0 && +x + * 2 == x; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +size_t + + gX +, size_ + gY +, +bo + + gMaxIsX + = ( +X + > +Y +)> + +15  + sMax + {}; + +17 + gme + < +size_t + + gX +, size_ + gY +> + +18  + gMax +< + gX +, + gY +, + gue +> { + +19 cڡ +size_t + + gvue + = +X +; + +22 + gme + < +size_t + + gX +, size_ + gY +> + +23  + gMax +< + gX +, + gY +, + gl +> { + +24 cڡ +size_t + + gvue + = +Y +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +14  + spgm_p + { + +15 +pgm_p +(cڡ * +p +: +addss +(p) {} + +16 cڡ * +addss +; + +20 #ide +_P + + +21 +le + +size_t + + $_P +( +ARDUINOJSON_NAMESPACE +:: +pgm_p + +s +) { + +22 cڡ * +p + = +s +. +addss +; + +23 + `ARDUINOJSON_ASSERT +( +p + ! +NULL +); + +24  + `pgm_ad_by +( +p +))++; + +25  + `size_t +( +p + - +s +. +addss +); + +26 + } +} + +29 #ide +cmp_P + + +30 +le +  + $cmp_P +(cڡ * +a +, +ARDUINOJSON_NAMESPACE +:: +pgm_p + +b +, +size_t + +n +) { + +31 cڡ * +s1 + = +a +; + +32 cڡ * +s2 + = +b +. +addss +; + +33 + `ARDUINOJSON_ASSERT +( +s1 + ! +NULL +); + +34 + `ARDUINOJSON_ASSERT +( +s2 + ! +NULL +); + +35  +n +-- > 0) { + +36  +c1 + = * +s1 +++; + +37  +c2 + = +ic_ +<>( + `pgm_ad_by +( +s2 +++)); + +38 i( +c1 + < +c2 +) + +40 i( +c1 + > +c2 +) + +42 i( +c1 + == 0 ) + +46 + } +} + +49 #ide +rcmp_P + + +50 +le +  + $rcmp_P +(cڡ * +a +, +ARDUINOJSON_NAMESPACE +:: +pgm_p + +b +) { + +51 cڡ * +s1 + = +a +; + +52 cڡ * +s2 + = +b +. +addss +; + +53 + `ARDUINOJSON_ASSERT +( +s1 + ! +NULL +); + +54 + `ARDUINOJSON_ASSERT +( +s2 + ! +NULL +); + +56  +c1 + = * +s1 +++; + +57  +c2 + = +ic_ +<>( + `pgm_ad_by +( +s2 +++)); + +58 i( +c1 + < +c2 +) + +60 i( +c1 + > +c2 +) + +62 i( +c1 + == 0 ) + +65 + } +} + +68 #ide +memy_P + + +69 +le + * + $memy_P +(* +d +, +ARDUINOJSON_NAMESPACE +:: +pgm_p + +c +, +size_t + +n +) { + +70 +ut8_t +* +d + = +t_ +( +d +); + +71 cڡ * +s + = +c +. +addss +; + +72 + `ARDUINOJSON_ASSERT +( +d + ! +NULL +); + +73 + `ARDUINOJSON_ASSERT +( +s + ! +NULL +); + +74  +n +-- > 0) { + +75 * +d +++ = + `pgm_ad_by +( +s +++); + +77  +d +; + +78 + } +} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13 +tyme + + gab_if +< + gis_por +< + gT +>:: +vue +, T>:: +ty + +pgm_ad +(cڡ * +p +) { + +14  +t_ +< +T +>( +pgm_ad_r +( +p +)); + +17 + gme + < +tyme + + gT +> + +18 +tyme + + gab_if +< + gis_tg_pot +< + gT +>:: +vue + && + +19 ( +T +) == (), + +21 + gT +>:: +ty + + +22 +pgm_ad +(cڡ * +p +) { + +23  +pgm_ad_t +( +p +); + +26 + gme + < +tyme + + gT +> + +27 +tyme + + gab_if +< + gis_me +< + gT +, + gut32_t +>:: +vue +, T>:: +ty + +pgm_ad +( + +28 cڡ * +p +) { + +29  +pgm_ad_dwd +( +p +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp + +5 #agm + + + +7  + #ARDUINOJSON_EXPAND6 +( +a +, +b +, +c +, +d +, +e +, +f +a, b, c, d,, + ) +f + +8  + #ARDUINOJSON_EXPAND7 +( +a +, +b +, +c +, +d +, +e +, +f +, +g +a, b, c, d,, f, + ) +g + +9  + #ARDUINOJSON_EXPAND9 +( +a +, +b +, +c +, +d +, +e +, +f +, +g +, +h +, +i +a, b, c, d,, f, g, h, + ) +i + +10  + #ARDUINOJSON_EXPAND18 +( +a +, +b +, +c +, +d +, +e +, +f +, +g +, +h +, +i +, +j +, +k +, +l +, +m +, +n +, +o +, +p +, \ + +11 +q +, +r +) \ + +12 +a +, +b +, +c +, +d +, +e +, +f +, +g +, +h +, +i +, +j +, +k +, +l +, +m +, +n +, +o +, +p +, +q +, +r + + + ) + +14  + #ARDUINOJSON_CONCAT_ +( +A +, +B +A## + ) +B + +15  + #ARDUINOJSON_CONCAT2 +( +A +, +B + + `ARDUINOJSON_CONCAT_ +(A, B) + + ) + +16  + #ARDUINOJSON_CONCAT4 +( +A +, +B +, +C +, +D +) \ + +17 + `ARDUINOJSON_CONCAT2 +(ARDUINOJSON_CONCAT2( +A +, +B +), ARDUINOJSON_CONCAT2( +C +, +D +)) + + ) + +19  + #ARDUINOJSON_HEX_DIGIT_0000 +(0 + + ) + +20  + #ARDUINOJSON_HEX_DIGIT_0001 +(1 + + ) + +21  + #ARDUINOJSON_HEX_DIGIT_0010 +(2 + + ) + +22  + #ARDUINOJSON_HEX_DIGIT_0011 +(3 + + ) + +23  + #ARDUINOJSON_HEX_DIGIT_0100 +(4 + + ) + +24  + #ARDUINOJSON_HEX_DIGIT_0101 +(5 + + ) + +25  + #ARDUINOJSON_HEX_DIGIT_0110 +(6 + + ) + +26  + #ARDUINOJSON_HEX_DIGIT_0111 +(7 + + ) + +27  + #ARDUINOJSON_HEX_DIGIT_1000 +(8 + + ) + +28  + #ARDUINOJSON_HEX_DIGIT_1001 +(9 + + ) + +29  + #ARDUINOJSON_HEX_DIGIT_1010 +( +A + + + ) + +30  + #ARDUINOJSON_HEX_DIGIT_1011 +( +B + + + ) + +31  + #ARDUINOJSON_HEX_DIGIT_1100 +( +C + + + ) + +32  + #ARDUINOJSON_HEX_DIGIT_1101 +( +D + + + ) + +33  + #ARDUINOJSON_HEX_DIGIT_1110 +( +E + + + ) + +34  + #ARDUINOJSON_HEX_DIGIT_1111 +( +F + + + ) + +35  + #ARDUINOJSON_HEX_DIGIT_ +( +A +, +B +, +C +, +D + +ARDUINOJSON_HEX_DIGIT_ +##A##B##C## + `D +() + + ) + +36  + #ARDUINOJSON_HEX_DIGIT +( +A +, +B +, +C +, +D + + `ARDUINOJSON_HEX_DIGIT_ +(A, B, C, D) + + ) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/safe_strcmp.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 +le +  +_rcmp +(cڡ * +a +, cڡ * +b +) { + +14 i( + ga + = +b +) + +16 i(! + ga +) + +18 i(! + gb +) + +20  +rcmp +( +a +, +b +); + +23 +le +  +_cmp +(cڡ * +a +, cڡ * +b +, +size_t + +n +) { + +24 i( + ga + = +b +) + +26 i(! + ga +) + +28 i(! + gb +) + +30  +cmp +( +a +, +b +, +n +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/static_array.hpp + +5 #agm + + + +7  + ~ + +9 #i +ARDUINOJSON_ENABLE_PROGMEM + + +11  + ~ + +13 #ide +ARDUINOJSON_DEFINE_STATIC_ARRAY + + +14  + #ARDUINOJSON_DEFINE_STATIC_ARRAY +( +ty +, +me +, +vue +) \ + +15  +ty + cڡ +me +[] +PROGMEM + = +vue +; + + ) + +18 #ide +ARDUINOJSON_READ_STATIC_ARRAY + + +19  + #ARDUINOJSON_READ_STATIC_ARRAY +( +ty +, +me +, +dex +) \ + +20 +pgm_ad +< +ty +>( +me + + +dex +) + + ) + +25 #ide +ARDUINOJSON_DEFINE_STATIC_ARRAY + + +26  + #ARDUINOJSON_DEFINE_STATIC_ARRAY +( +ty +, +me +, +vue +) \ + +27  +ty + cڡ +me +[] = +vue +; + + ) + +30 #ide +ARDUINOJSON_READ_STATIC_ARRAY + + +31  + #ARDUINOJSON_READ_STATIC_ARRAY +( +ty +, +me +, +dex +me[dex] + + ) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp + +5 #agm + + + +7  + ~"ty_as/cdiڮ.h +" + +8  + ~"ty_as/ab_if.h +" + +9  + ~"ty_as/gl_cڡt.h +" + +10  + ~"ty_as/is_y.h +" + +11  + ~"ty_as/is_ba_of.h +" + +12  + ~"ty_as/is_ass.h +" + +13  + ~"ty_as/is_cڡ.h +" + +14  + ~"ty_as/is_cvtib.h +" + +15  + ~"ty_as/is_um.h +" + +16  + ~"ty_as/is_tg_pot.h +" + +17  + ~"ty_as/is_gl.h +" + +18  + ~"ty_as/is_por.h +" + +19  + ~"ty_as/is_me.h +" + +20  + ~"ty_as/is_sigd.h +" + +21  + ~"ty_as/is_unsigd.h +" + +22  + ~"ty_as/make_unsigd.h +" + +23  + ~"ty_as/move_cڡ.h +" + +24  + ~"ty_as/move_n.h +" + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +bo + + gCdi +, +ass + + gTrueTy +, cs + gFTy +> + +12  + scdiڮ + { + +13  +TrueTy + + tty +; + +16 + gme + < +ass + + gTrueTy +, cs + gFTy +> + +17  + gcdiڮ +< + gl +, + gTrueTy +, + gFTy +> { + +18  +FTy + + tty +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +> + +12 +T + +dev +(); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +bo + + gCdi +, +tyme + + gT + = > + +13  + sab_if + {}; + +15 + gme + < +tyme + + gT +> + +16  + gab_if +< + gue +, + gT +> { + +17  +T + + tty +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +, +T + + gv +> + +12  + sgl_cڡt + { + +13 cڡ +T + + gvue + = +v +; + +16  + ggl_cڡt +< + tbo +, + tue +> + tue_ty +; + +17  + ggl_cڡt +< + tbo +, + tl +> + tl_ty +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gT +> + +14  + gis_y + : +l_ty + {}; + +16 + gme + < +tyme + + gT +> + +17  + gis_y +< + gT +[]> : +ue_ty + {}; + +19 + gme + < +tyme + + gT +, +size_t + + gN +> + +20  + gis_y +< + gT +[ +N +]> : +ue_ty + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gTBa +,ym + gTDived +> + +14 as + cis_ba_of + { + +15 + geed +: + +16  + tYes +[1]; + +17  + tNo +[2]; + +19  + gYes + & +obe +(cڡ +TBa + *); + +20  + gNo + & +obe +(...); + +22 + gpublic +: + +23 cڡ +bo + +vue + = + +24 ( +obe +( +t_ +< +TDived + *>(0))=( +Yes +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp + +5 #agm + + + +7  + ~"dev.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +> + +12  + sis_ass + { + +13 + geed +: + +14  + tYes +[1]; + +15  + tNo +[2]; + +17 + gme + < +tyme + + gU +> + +18  + gYes + & +obe +(( +U +::*)()); + +19 + gme + < + gtyme +> + +20  + gNo + & +obe +(...); + +22 + gpublic +: + +23 cڡ +bo + +vue + = ( +obe +< +T +>(0)=( +Yes +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13  + gis_cڡ + : +l_ty + {}; + +15 + gme + < +tyme + + gT +> + +16  + gis_cڡ + : +ue_ty + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp + +5 #agm + + + +7  + ~"dev.h +" + +9 #ifde +_MSC_VER + + +10 #agm +wng +( +push +) + +12 #agm +wng +( +dib + : 4244) + +15 #ifde +__ICCARM__ + + +17 #agm +dg_suss += +Pa093 + + +20 +mea + + gARDUINOJSON_NAMESPACE + { + +22 + gme + < +tyme + + gFrom +,ym + gTo +> + +23  + sis_cvtib + { + +24 + geed +: + +25  + tYes +[1]; + +26  + tNo +[2]; + +28  + gYes + & +obe +( +To +); + +29  + gNo + & +obe +(...); + +31 + gpublic +: + +32 cڡ +bo + +vue + = ( +obe +( +dev +< +From +>())=( +Yes +); + +37 #ifde +_MSC_VER + + +38 #agm +wng +( +p +) + +41 #ifde +__ICCARM__ + + +42 #agm +dg_deu += +Pa093 + + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp + +5 #agm + + + +7  + ~"is_ass.h +" + +8  + ~"is_cvtib.h +" + +9  + ~"is_tg_pot.h +" + +10  + ~"is_gl.h +" + +11  + ~"is_me.h +" + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 + gme + < +tyme + + gT +> + +16  + sis_um + { + +17 cڡ +bo + + gvue + = +is_cvtib +< +T +, >:: +vue + && + +18 ! +is_ass +< +T +>:: +vue + && ! +is_gl +::value && + +19 ! +is_tg_pot +< +T +>:: +vue +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < + gtyme +> + +12  + gis_tg_pot + : +l_ty + {}; + +14 + gme + <> + +15  + gis_tg_pot +<> : +ue_ty + {}; + +17 + gme + <> + +18  + gis_tg_pot +<> : +ue_ty + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp + +5 #agm + + + +7  + ~ + +8  + ~"is_me.h +" + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gT +> + +14  + sis_gl + { + +15 cڡ +bo + + gvue + = + +16 +is_me +< +T +, sigd >:: +vue + || is_same::value || + +17 +is_me +< +T +, sigd >:: +vue + || is_same::value || + +18 +is_me +< +T +, sigd >:: +vue + || is_same::value || + +19 +is_me +< +T +, sigd >:: +vue + || is_same::value || + +20 #i +ARDUINOJSON_HAS_LONG_LONG + + +21 +is_me +< +T +, sigd >:: +vue + || + +22 +is_me +< +T +, >:: +vue + || + +24 #i +ARDUINOJSON_HAS_INT64 + + +25 +is_me +< +T +, sigd + g__t64 +>:: +vue + || + +26 +is_me +< +T +,  + g__t64 +>:: +vue + || + +28 +is_me +< +T +, >:: +vue + || is_me::value; + +31 + gme + < +tyme + + gT +> + +32  + gis_gl + : +is_gl +< +T +> {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +> + +12  + gis_por + : +l_ty + {}; + +14 + gme + < +tyme + + gT +> + +15  + gis_por +< + gT +*> : +ue_ty + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +,ym + gU +> + +13  + gis_me + : +l_ty + {}; + +15 + gme + < +tyme + + gT +> + +16  + gis_me +< + gT +, T> : +ue_ty + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +8 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < + gtyme +> + +11  + gis_sigd + : +l_ty + {}; + +13 + gme + <> + +14  + gis_sigd +<> : +ue_ty + {}; + +16 + gme + <> + +17  + gis_sigd + : +ue_ty + {}; + +19 + gme + <> + +20  + gis_sigd + : +ue_ty + {}; + +22 + gme + <> + +23  + gis_sigd + : +ue_ty + {}; + +25 + gme + <> + +26  + gis_sigd + : +ue_ty + {}; + +28 + gme + <> + +29  + gis_sigd +<> : +ue_ty + {}; + +31 + gme + <> + +32  + gis_sigd +<> : +ue_ty + {}; + +34 #i +ARDUINOJSON_HAS_LONG_LONG + + +35 + gme + <> + +36  + gis_sigd + : +ue_ty + {}; + +39 #i +ARDUINOJSON_HAS_INT64 + + +40 + gme + <> + +41  + gis_sigd + : +ue_ty + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +8 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < + gtyme +> + +11  + gis_unsigd + : +l_ty + {}; + +13 + gme + <> + +14  + gis_unsigd +< + gbo +> : +ue_ty + {}; + +16 + gme + <> + +17  + gis_unsigd +<> : +ue_ty + {}; + +19 + gme + <> + +20  + gis_unsigd +<> : +ue_ty + {}; + +22 + gme + <> + +23  + gis_unsigd +<> : +ue_ty + {}; + +25 + gme + <> + +26  + gis_unsigd +<> : +ue_ty + {}; + +28 #i +ARDUINOJSON_HAS_INT64 + + +29 + gme + <> + +30  + gis_unsigd +< + g__t64 +> : +ue_ty + {}; + +33 #i +ARDUINOJSON_HAS_LONG_LONG + + +34 + gme + <> + +35  + gis_unsigd +<> : +ue_ty + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp + +5 #agm + + + +7  + ~"ty_idty.h +" + +8 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < +tyme + + gT +> + +11  + gmake_unsigd +; + +13 + gme + <> + +14  + gmake_unsigd +<> : +ty_idty +<> {}; + +16 + gme + <> + +17  + gmake_unsigd + : +ty_idty +<> {}; + +18 + gme + <> + +19  + gmake_unsigd +<> : +ty_idty +<> {}; + +21 + gme + <> + +22  + gmake_unsigd + : +ty_idty +<> {}; + +23 + gme + <> + +24  + gmake_unsigd +<> : +ty_idty +<> {}; + +26 + gme + <> + +27  + gmake_unsigd + : +ty_idty +<> {}; + +28 + gme + <> + +29  + gmake_unsigd +<> : +ty_idty +<> {}; + +31 + gme + <> + +32  + gmake_unsigd + : +ty_idty +<> {}; + +33 + gme + <> + +34  + gmake_unsigd +<> : +ty_idty +<> {}; + +36 #i +ARDUINOJSON_HAS_LONG_LONG + + +37 + gme + <> + +38  + gmake_unsigd + : +ty_idty +<> {}; + +39 + gme + <> + +40  + gmake_unsigd +<> : +ty_idty +<> {}; + +43 #i +ARDUINOJSON_HAS_INT64 + + +44 + gme + <> + +45  + gmake_unsigd + : +ty_idty +< +__t64 +> {}; + +46 + gme + <> + +47  + gmake_unsigd +< + g__t64 +> : +ty_idty +< +__t64 +> {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13  + smove_cڡ + { + +14  +T + + tty +; + +16 + gme + < +tyme + + gT +> + +17  + gmove_cڡ + { + +18  +T + + tty +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13  + smove_n + { + +14  +T + + tty +; + +16 + gme + < +tyme + + gT +> + +17  + gmove_n +< + gT +&> { + +18  +T + + tty +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +> + +12  + sty_idty + { + +13  +T + + tty +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp + +5 #agm + + + +7  + ~"ty_as.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < +tyme + + gT +> + +11 +le +  +sw +( +T +& +a +, T& +b +) { + +12 +T + +t +( +a +); + +13 + ga + = +b +; + +14 + gb + = +t +; + +17 #i +ARDUINOJSON_HAS_RVALUE_REFERENCES + + +18 + gme + < +tyme + + gT +> + +19 +tyme + + gmove_n +< + gT +>:: +ty +&& +move +( +T +&& +t +) { + +20  +ic_ +< +tyme + +move_n +< +T +>:: +ty +&&>( +t +); + +23 + gme + < +tyme + + gT +> + +24 + gT +& +move +( +T +& +t +) { + +25  + gt +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTWr +> + +12 as + cCougDecܩ + { + +13 + gpublic +: + +14 +exic + +CougDecܩ +( +TWr +& +wr +: +_wr +(wr), +_cou +(0) {} + +16  +wre +( +ut8_t + +c +) { + +17 + g_cou + + +_wr +. +wre +( +c +); + +20  +wre +(cڡ +ut8_t +* +s +, +size_t + +n +) { + +21 + g_cou + + +_wr +. +wre +( +s +, +n +); + +24 +size_t + +cou +() const { + +25  + g_cou +; + +28 + give +: + +29 +TWr + +_wr +; + +30 +size_t + + g_cou +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTDei +,ym + gEb + = > + +13 as + cWr + { + +14 +public +: + +15 +exic + +Wr +( +TDei +& +de +: +_de +(&dest) {} + +17 +size_t + +wre +( +ut8_t + +c +) { + +18  +_de +-> +wre +( +c +); + +21 +size_t + +wre +(cڡ +ut8_t +* +s +, size_ +n +) { + +22  + g_de +-> +wre +( +s +, +n +); + +25 + give +: + +26 +TDei +* +_de +; + +31  + ~ + +33 #i +ARDUINOJSON_ENABLE_STD_STRING + + +34  + ~ + +37 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +38  + ~ + +41 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +42  + ~ + +45 #i +ARDUINOJSON_ENABLE_ARDUINO_PRINT + + +46  + ~ + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + <> + +12 +ass + + gWr +< :: +Sg +, > { + +13 cڡ +size_t + + gbufrCacy + = +ARDUINOJSON_STRING_BUFFER_SIZE +; + +15 + gpublic +: + +16 +exic + +Wr +(:: +Sg + & +r +: +_dei +(&str) { + +17 +_size + = 0; + +20 ~ +Wr +() { + +21 +ush +(); + +24 +size_t + +wre +( +ut8_t + +c +) { + +25 +ARDUINOJSON_ASSERT +( +_size + < +bufrCacy +); + +26 + g_bufr +[ +_size +++] = +ic_ +<>( +c +); + +27 i( + g_size + + 1 > +bufrCacy +) + +28 +ush +(); + +32 +size_t + +wre +(cڡ +ut8_t + * +s +, size_ +n +) { + +33  +size_t + + gi + = 0; i < + gn +; i++) { + +34 +wre +( +s +[ +i +]); + +36  + gn +; + +39 + give +: + +40  +ush +() { + +41 +ARDUINOJSON_ASSERT +( +_size + < +bufrCacy +); + +42 + g_bufr +[ +_size +] = 0; + +43 * + g_dei + + +_bufr +; + +44 + g_size + = 0; + +47 :: +Sg + * +_dei +; + +48  + g_bufr +[ +bufrCacy +]; + +49 +size_t + + g_size +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 as + cDummyWr + { + +12 + gpublic +: + +13 +size_t + +wre +( +ut8_t +) { + +17 +size_t + +wre +(cڡ +ut8_t +*, size_ +n +) { + +18  + gn +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 + gme + < +tyme + + gTDei +> + +10 +ass + + gWr +< + +11 + gTDei +, + +12 +tyme + + gab_if +< + gis_ba_of +< :: +Prt +, + gTDei +>:: +vue +>:: +ty +> { + +13 +public +: + +14 +exic + +Wr +(:: +Prt +& +t +: +_t +(&print) {} + +16 +size_t + +wre +( +ut8_t + +c +) { + +17  +_t +-> +wre +( +c +); + +20 +size_t + +wre +(cڡ +ut8_t +* +s +, size_ +n +) { + +21  + g_t +-> +wre +( +s +, +n +); + +24 + give +: + +25 :: +Prt +* +_t +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cSticSgWr + { + +13 + gpublic +: + +14 +SticSgWr +(* +buf +, +size_t + +size +: +d +(bu+ siz- 1), +p +(buf) { + +15 * + gp + = '\0'; + +18 +size_t + +wre +( +ut8_t + +c +) { + +19 i( + gp + > +d +) + +21 * + gp +++ = +ic_ +<>( +c +); + +22 * + gp + = '\0'; + +26 +size_t + +wre +(cڡ +ut8_t + * +s +, size_ +n +) { + +27 * + gbeg + = +p +; + +28  + gp + < + gd + && + gn + > 0) { + +29 * + gp +++ = +ic_ +<>(* +s +++); + +30 + gn +--; + +32 * + gp + = '\0'; + +33  +size_t +( +p + - +beg +); + +36 + give +: + +37 * +d +; + +38 * + gp +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTDei +> + +12 +ass + + gWr +< + +13 + gTDei +, + +14 +tyme + + gab_if +< + gis_ba_of +< + gd +:: +oam +, + gTDei +>:: +vue +>:: +ty +> { + +15 +public +: + +16 +exic + +Wr +( +d +:: +oam +& +os +: +_os +(&os) {} + +18 +size_t + +wre +( +ut8_t + +c +) { + +19 +_os +-> +put +( +ic_ +<>( +c +)); + +23 +size_t + +wre +(cڡ +ut8_t +* +s +, size_ +n +) { + +24 + g_os +-> +wre +( +t_ +( +s +), + +25 +ic_ +< +d +:: +amsize +>( +n +)); + +26  + gn +; + +29 + give +: + +30 +d +:: +oam +* +_os +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +ass + + gT +> + +15  + gis_d_rg + : +l_ty + {}; + +17 + gme + < +ass + + gTChTs +, cs + gTAot +> + +18  + gis_d_rg +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> > + +19 : +ue_ty + {}; + +21 + gme + < +tyme + + gTDei +> + +22 +ass + + gWr +< + gTDei +, + +23 +tyme + + gab_if +< + gis_d_rg +< + gTDei +>:: +vue +>:: +ty +> { + +24 +public +: + +25 +Wr +( +TDei + & +r +: +_r +(&str) {} + +27 +size_t + +wre +( +ut8_t + +c +) { + +28 +_r +-> +ݔ ++=( +ic_ +<>( +c +)); + +32 +size_t + +wre +(cڡ +ut8_t + * +s +, size_ +n +) { + +33 + g_r +-> +nd +( +t_ +( +s +), +n +); + +34  + gn +; + +37 + give +: + +38 +TDei + * +_r +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + +ass + + gTSliz +, +tyme + + gTSour +> + +12 +size_t + +msu +(cڡ +TSour + & +sour +) { + +13 +DummyWr + + gdp +; + +14 + gTSliz +< + gDummyWr +> +rliz +( +dp +); + +15  + gsour +. +ac +( +rliz +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + +ass + + gTSliz +, +tyme + + gTSour +, + +12 +tyme + + gTWr +> + +13 +size_t + +doSlize +(cڡ +TSour + & +sour +, +TWr + +wr +) { + +14 + gTSliz +< + gTWr +> +rliz +( +wr +); + +15  + gsour +. +ac +( +rliz +); + +18 + gme + +ass + + gTSliz +, +tyme + + gTSour +, + +19 +tyme + + gTDei +> + +20 +size_t + +rlize +(cڡ +TSour + & +sour +, +TDei + & +dei +) { + +21 + gWr +< + gTDei +> +wr +( +dei +); + +22  + gdoSlize +< + gTSliz +>( + gsour +, + gwr +); + +25 + gme + +ass + + gTSliz +, +tyme + + gTSour +> + +26 +size_t + +rlize +(cڡ +TSour + & +sour +, * +bufr +, size_ +bufrSize +) { + +27 +SticSgWr + +wr +( +t_ +<*>( +bufr +), +bufrSize +); + +28  + gdoSlize +< + gTSliz +>( + gsour +, + gwr +); + +31 + gme + +ass + + gTSliz +, +tyme + + gTSour +, + +32 +tyme + + gTCh +, +size_t + + gN +> + +33 #i +defed + +_MSC_VER + && _MSC_VER < 1900 + +34 +tyme + + gab_if +<( + gmove_n +< + gTCh +>:: +ty +=1, + gsize_t +>::type + +36 +tyme + +ab_if +<( +TCh +=1, + gsize_t +>:: +ty + + +38 +rlize +(cڡ +TSour + & +sour +, +TCh + (& +bufr +)[ +N +]) { + +39 +SticSgWr + +wr +( +t_ +<*>( +bufr +), +N +); + +40  + gdoSlize +< + gTSliz +>( + gsour +, + gwr +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringCopier.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 as + cSgCݛr + { + +12 + gpublic +: + +13 +SgCݛr +( +MemyPo +& +po +: +_po +(&pool) {} + +15  +tSg +() { + +16 +_po +-> +gFeZe +(& +_r +, & +_cy +); + +17 + g_size + = 0; + +20 cڡ * +ve +() { + +21 +ARDUINOJSON_ASSERT +( +_r +); + +22  + g_po +-> +veSgFromFeZe +( +_size +); + +25  +nd +(cڡ * +s +) { + +26 * + gs + +nd +(* +s +++); + +29  +nd +(cڡ * +s +, +size_t + +n +) { + +30  + gn +-- > 0 +nd +(* +s +++); + +33  +nd +( +c +) { + +34 i(! + g_r +) + +37 i( + g_size + > +_cy +) { + +38 +_r + = 0; + +39 + g_po +-> +mkAsOvowed +(); + +43 + g_r +[ +_size +++] = +c +; + +46 +bo + +isVid +() { + +47  + g_r + != 0; + +50 cڡ * +c_r +() { + +51  + g_r +; + +54  + gage_pics +:: + te_by_cy + + tage_picy +; + +56 + give +: + +57 +MemyPo +* +_po +; + +58 * + g_r +; + +59 +size_t + + g_size +; + +60 +size_t + + g_cy +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringMover.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cSgMov + { + +13 + gpublic +: + +14 +SgMov +(* +r +: +_wreP +(ptr) {} + +16  +tSg +() { + +17 +_tP + = +_wreP +; + +20 cڡ * +ve +() const { + +21  + g_tP +; + +24  +nd +( +c +) { + +25 * + g_wreP +++ = +c +; + +28 +bo + +isVid +() const { + +29  + gue +; + +32 cڡ * +c_r +() const { + +33  + g_tP +; + +36  + gage_pics +:: + te_by_addss + + tage_picy +; + +38 + give +: + +39 * +_wreP +; + +40 * + g_tP +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringStorage.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTIut +> + +13 +SgCݛr + +makeSgStage +( +TIut +&, +MemyPo +& +po +) { + +14  +SgCݛr +( +po +); + +17 + gme + < +tyme + + gTCh +> + +18 +SgMov + +makeSgStage +( + +19 +TCh +* +put +, +MemyPo +&, + +20 +tyme + +ab_if +:: +vue +>:: +ty +* = 0) { + +21  +SgMov +( +t_ +<*>( +put +)); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/ArduinoStringAdapter.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 as + cArduoSgAdr + { + +16 + gpublic +: + +17 +ArduoSgAdr +(cڡ :: +Sg +& +r +: +_r +(&str) {} + +19  +cyTo +(* +p +, +size_t + +n +) const { + +20 +memy +( +p +, +_r +-> +c_r +(), +n +); + +23 +bo + +isNu +() const { + +25  ! + g_r +-> +c_r +(); + +28  +com +(cڡ * +h +) const { + +30 cڡ * + gme + = +_r +-> +c_r +(); + +31  +_rcmp +( +me +, +h +); + +34 +bo + +equs +(cڡ * +exed +) const { + +35  +com +( +exed +) == 0; + +38 +size_t + +size +() const { + +39  + g_r +-> +ngth +(); + +42 cڡ * +beg +() const { + +43  + g_r +-> +c_r +(); + +46  + gage_pics +:: + te_by_cy + + tage_picy +; + +48 + give +: + +49 cڡ :: +Sg +* +_r +; + +52 + gme + <> + +53  + gIsSg +< :: +Sg +> : +ue_ty + {}; + +55 + gme + <> + +56  + gIsSg +< :: +SgSumHr +> : +ue_ty + {}; + +58 +le + +ArduoSgAdr + + $adtSg +(cڡ :: +Sg +& +r +) { + +59  + `ArduoSgAdr +( +r +); + +60 + } +} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/ConstRamStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +16 as + cCڡRamSgAdr + { + +17 + gpublic +: + +18 +CڡRamSgAdr +(cڡ * +r + = 0: +_r +(str) {} + +20  +com +(cڡ * +h +) const { + +21  +_rcmp +( +_r +, +h +); + +24 +bo + +equs +(cڡ * +exed +) const { + +25  +com +( +exed +) == 0; + +28 +bo + +isNu +() const { + +29  ! + g_r +; + +32 +size_t + +size +() const { + +33 i(! + g_r +) + +35  + +( +_r +); + +38 cڡ * +da +() const { + +39  + g_r +; + +42 cڡ * +beg +() const { + +43  + g_r +; + +46  + gage_pics +:: + te_by_addss + + tage_picy +; + +48 + geed +: + +49 cڡ * +_r +; + +52 + gme + <> + +53  + gIsSg + : +ue_ty + {}; + +55 + gme + < + gN +> + +56  + gIsSg + : +ue_ty + {}; + +58 +le + +CڡRamSgAdr + + $adtSg +(cڡ * +r +) { + +59  + `CڡRamSgAdr +( +r +); + +60 + } +} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/FlashStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 as + cFshSgAdr + { + +15 + gpublic +: + +16 +FshSgAdr +(cڡ +__FshSgHr +* +r +: +_r +(str) {} + +18  +com +(cڡ * +h +) const { + +19 i(! +h + && ! +_r +) + +21 i(! + g_r +) + +23 i(! + gh +) + +25  - +rcmp_P +( +h +, +t_ +( +_r +)); + +28 +bo + +equs +(cڡ * +exed +) const { + +29  +com +( +exed +) == 0; + +32 +bo + +isNu +() const { + +33  ! + g_r +; + +36  +cyTo +(* +p +, +size_t + +n +) const { + +37 +memy_P +( +p +, +t_ +( +_r +), +n +); + +40 +size_t + +size +() const { + +41 i(! + g_r +) + +43  +_P +( +t_ +( +_r +)); + +46 +FshSgIt + +beg +() const { + +47  +FshSgIt +( +_r +); + +50  + gage_pics +:: + te_by_cy + + tage_picy +; + +52 + give +: + +53 cڡ +__FshSgHr +* +_r +; + +56 +le + +FshSgAdr + + $adtSg +(cڡ +__FshSgHr +* +r +) { + +57  + `FshSgAdr +( +r +); + +58 + } +} + +60 + gme + <> + +61  + gIsSg + : +ue_ty + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/FlashStringIterator.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 as + cFshSgIt + { + +10 + gpublic +: + +11 +exic + +FshSgIt +(cڡ +__FshSgHr +* +r +) + +12 : +_r +( +t_ +( +r +)) {} + +14 +exic + +FshSgIt +(cڡ * +r +: +_r +(ptr) {} + +16 +FshSgIt + +ݔ ++( +rdiff_t + +d +) const { + +17  +FshSgIt +( +_r + + +d +); + +20 +rdiff_t + + gݔ +-( +FshSgIt + + gh +) const { + +21  + g_r + - + gh +._ptr; + +24 +FshSgIt + + gݔ +++() { + +25  +FshSgIt +( +_r +++); + +28 +FshSgIt + + gݔ +++() { + +29  +FshSgIt +(++ +_r +); + +32 +bo + + gݔ +!=( +FshSgIt + +h +) const { + +33  +_r + ! +h +._ptr; + +36  + gݔ +*() const { + +37  ( +pgm_ad_by +( +_r +)); + +40 + give +: + +41 cڡ * +_r +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < + gtyme +> + +11  + gIsSg + : +l_ty + {}; + +13 + gme + < +tyme + + gT +> + +14  + gIsSg + : +IsSg +< +T +> {}; + +16 + gme + < +tyme + + gT +> + +17  + gIsSg +< + gT +&> : +IsSg +< +T +> {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsWriteableString.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +11  + ~ + +14 #i +ARDUINOJSON_ENABLE_STD_STRING + + +15  + ~ + +18 +mea + + gARDUINOJSON_NAMESPACE + { + +20 + gme + < + gtyme +> + +21  + gIsWrbSg + : +l_ty + {}; + +23 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +25 + gme + <> + +26  + gIsWrbSg +< :: +Sg +> : +ue_ty + {}; + +30 #i +ARDUINOJSON_ENABLE_STD_STRING + + +32 + gme + < +tyme + + gTChTs +,ym + gTAot +> + +33  + gIsWrbSg +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> > + +34 : +ue_ty + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/RamStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 as + cRamSgAdr + : +public + +CڡRamSgAdr + { + +14 +public +: + +15 +RamSgAdr +(cڡ * +r +: +CڡRamSgAdr +(str) {} + +17  +cyTo +(* +p +, +size_t + +n +) const { + +18 +memy +( +p +, +_r +, +n +); + +21  + gARDUINOJSON_NAMESPACE +:: + tage_pics +:: + te_by_cy + + tage_picy +; + +24 + gme + < +tyme + + gTCh +> + +25 +le + +RamSgAdr + + $adtSg +(cڡ +TCh +* +r +) { + +26  + `RamSgAdr +( +t_ +( +r +)); + +27 + } +} + +29 +le + +RamSgAdr + + $adtSg +(* +r +) { + +30  + `RamSgAdr +( +r +); + +31 + } +} + +33 + gme + < +tyme + + gTCh +> + +34  + gIsSg +< + gTCh +*> { + +35 cڡ +bo + + gvue + = ( +TCh +) == 1; + +38 + gme + <> + +39  + gIsSg +<*> { + +40 cڡ +bo + + gvue + = +l +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/SizedFlashStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 as + cSizedFshSgAdr + { + +15 + gpublic +: + +16 +SizedFshSgAdr +(cڡ +__FshSgHr +* +r +, +size_t + +sz +) + +17 : +_r +( +r +), +_size +( +sz +) {} + +19  +com +(cڡ * +h +) const { + +20 i(! + gh + && ! + g_r +) + +22 i(! + g_r +) + +24 i(! + gh +) + +26  - +cmp_P +( +h +, +t_ +( +_r +), +_size +); + +29 +bo + +equs +(cڡ * +exed +) const { + +30  +com +( +exed +) == 0; + +33 +bo + +isNu +() const { + +34  ! + g_r +; + +37  +cyTo +(* +p +, +size_t + +n +) const { + +38 +memy_P +( +p +, +t_ +( +_r +), +n +); + +41 +size_t + +size +() const { + +42  + g_size +; + +45 +FshSgIt + +beg +() const { + +46  +FshSgIt +( +_r +); + +49  + gage_pics +:: + te_by_cy + + tage_picy +; + +51 + give +: + +52 cڡ +__FshSgHr +* +_r +; + +53 +size_t + + g_size +; + +56 +le + +SizedFshSgAdr + + $adtSg +(cڡ +__FshSgHr +* +r +, + +57 +size_t + +sz +) { + +58  + `SizedFshSgAdr +( +r +, +sz +); + +59 + } +} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/SizedRamStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 as + cSizedRamSgAdr + { + +16 + gpublic +: + +17 +SizedRamSgAdr +(cڡ * +r +, +size_t + +n +: +_r +(r), +_size +(n) {} + +19  +com +(cڡ * +h +) const { + +20  +_cmp +( +_r +, +h +, +_size +); + +23 +bo + +equs +(cڡ * +exed +) const { + +24  +com +( +exed +) == 0; + +27 +bo + +isNu +() const { + +28  ! + g_r +; + +31  +cyTo +(* +p +, +size_t + +n +) const { + +32 +memy +( +p +, +_r +, +n +); + +35 +size_t + +size +() const { + +36  + g_size +; + +39 cڡ * +beg +() const { + +40  + g_r +; + +43  + gage_pics +:: + te_by_cy + + tage_picy +; + +45 + give +: + +46 cڡ * +_r +; + +47 +size_t + + g_size +; + +50 + gme + < +tyme + + gTCh +> + +51 +le + +SizedRamSgAdr + + $adtSg +(cڡ +TCh +* +r +, +size_t + +size +) { + +52  + `SizedRamSgAdr +( +t_ +( +r +), +size +); + +53 + } +} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StdStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 + gme + < +tyme + + gTSg +> + +16 as + cStdSgAdr + { + +17 + gpublic +: + +18 +StdSgAdr +(cڡ +TSg +& +r +: +_r +(&str) {} + +20  +cyTo +(* +p +, +size_t + +n +) const { + +21 +memy +( +p +, +_r +-> +c_r +(), +n +); + +24 +bo + +isNu +() const { + +25  + gl +; + +28  +com +(cڡ * +h +) const { + +29 i(! + gh +) + +31  + g_r +-> +com +( +h +); + +34 +bo + +equs +(cڡ * +exed +) const { + +35 i(! + gexed +) + +36  + gl +; + +37  * + g_r + = +exed +; + +40 +size_t + +size +() const { + +41  + g_r +-> +size +(); + +44 cڡ * +beg +() const { + +45  + g_r +-> +c_r +(); + +48  + gage_pics +:: + te_by_cy + + tage_picy +; + +50 + give +: + +51 cڡ +TSg +* +_r +; + +54 + gme + < +tyme + + gTChTs +,ym + gTAot +> + +55  + gIsSg +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> > : +ue_ty + { + +58 + gme + < +tyme + + gTChTs +,ym + gTAot +> + +59 +le + + gStdSgAdr +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> > + +60 +adtSg +(cڡ +d +:: +basic_rg +<, +TChTs +, +TAot +>& +r +) { + +61  + gStdSgAdr +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> >( + +62 + gr +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StoragePolicy.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 +mea + + gage_pics + { + +10  + se_by_addss + {}; + +11  + se_by_cy + {}; + +12  + sdecide__ruime + {}; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/String.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 as + cSg + { + +14 + gpublic +: + +15 +Sg +(: +_da +(0), +_isStic +( +ue +) {} + +16 +Sg +(cڡ * +da +, +bo + +isSticDa + = +ue +) + +17 : +_da +( +da +), +_isStic +( +isSticDa +) {} + +19 cڡ * +c_r +() const { + +20  + g_da +; + +23 +bo + +isNu +() const { + +24  ! + g_da +; + +27 +bo + +isStic +() const { + +28  + g_isStic +; + +31 +nd + +bo + + gݔ +==( +Sg + +lhs +, Sg + grhs +) { + +32 i( + glhs +. + g_da + = +rhs +. +_da +) + +33  +ue +; + +34 i(! + glhs +. + g_da +) + +35  + gl +; + +36 i(! + grhs +. + g_da +) + +37  + gl +; + +38  +rcmp +( +lhs +. +_da +, +rhs +._data) == 0; + +41 +nd + +bo + + gݔ +!=( +Sg + +lhs +, Sg + grhs +) { + +42 i( + glhs +. + g_da + = +rhs +. +_da +) + +43  +l +; + +44 i(! + glhs +. + g_da +) + +45  + gue +; + +46 i(! + grhs +. + g_da +) + +47  + gue +; + +48  +rcmp +( +lhs +. +_da +, +rhs +._data) != 0; + +51 + give +: + +52 cڡ * +_da +; + +53 +bo + + g_isStic +; + +56 as + cSgAdr + : +public + +RamSgAdr + { + +57 +public +: + +58 +SgAdr +(cڡ +Sg +& +r +) + +59 : +RamSgAdr +( +r +. +c_r +()), +_isStic +(r. +isStic +()) {} + +61 +bo + +isStic +() const { + +62  + g_isStic +; + +65  + gage_pics +:: + tdecide__ruime + + tage_picy +; + +67 + give +: + +68 +bo + +_isStic +; + +71 + gme + <> + +72  + gIsSg +< + gSg +> : +ue_ty + {}; + +74 +le + +SgAdr + + $adtSg +(cڡ +Sg +& +r +) { + +75  + `SgAdr +( +r +); + +76 + } +} + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 #i +ARDUINOJSON_ENABLE_STD_STRING + + +12  + ~ + +15 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +16  + ~ + +19 #i +ARDUINOJSON_ENABLE_PROGMEM + + +20  + ~ + +21  + ~ + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/SlotFunctions.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTAddSg +> + +13 +le + +bo + +SKey +( +VSl +* +v +, +TAddSg + +key +, +MemyPo +* +po +) { + +14 i(! + gv +) + +15  + gl +; + +16  +SKey +( +v +, +key +, +po +, +tyme + +TAddSg +:: +age_picy +()); + +19 + gme + < +tyme + + gTAddSg +> + +20 +le + +bo + +SKey +( +VSl +* +v +, +TAddSg + +key +, +MemyPo +* +po +, + +21 +age_pics +:: +decide__ruime +) { + +22 i( +key +. +isStic +()) { + +23  +SKey +( +v +, +key +, +po +, +age_pics +:: +e_by_addss +()); + +25  +SKey +( +v +, +key +, +po +, +age_pics +:: +e_by_cy +()); + +29 + gme + < +tyme + + gTAddSg +> + +30 +le + +bo + +SKey +( +VSl +* +v +, +TAddSg + +key +, +MemyPo +*, + +31 +age_pics +:: +e_by_addss +) { + +32 +ARDUINOJSON_ASSERT +( +v +); + +33 + gv +-> +tKey +( +key +. +da +(), +age_pics +:: +e_by_addss +()); + +34  + gue +; + +37 + gme + < +tyme + + gTAddSg +> + +38 +le + +bo + +SKey +( +VSl +* +v +, +TAddSg + +key +, +MemyPo +* +po +, + +39 +age_pics +:: +e_by_cy +) { + +40 cڡ * +dup + = +po +-> +veSg +( +key +); + +41 i(! + gdup +) + +42  + gl +; + +43 +ARDUINOJSON_ASSERT +( +v +); + +44 + gv +-> +tKey +( +dup +, +age_pics +:: +e_by_cy +()); + +45  + gue +; + +48 +le + +size_t + +Size +(cڡ +VSl +* +v +) { + +49 +size_t + + gn + = 0; + +50  + gv +) { + +51 + gn +++; + +52 + gv + = +v +-> +xt +(); + +54  + gn +; + +57 +le + +VDa +* +Da +( +VSl +* + +) { + +58  + gt_ +< + gVDa +*>( + g +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAs.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 +ass + + gAayRef +; + +13 +ass + + gAayCڡRef +; + +14 +ass + + gObjeRef +; + +15 +ass + + gObjeCڡRef +; + +16 +ass + + gVRef +; + +17 +ass + + gVCڡRef +; + +21 + gme + < +tyme + + gT +> + +22  + sVAs + { + +23  +T + + tty +; + +26 + gme + <> + +27  + gVAs +<*> { + +28 cڡ * + tty +; + +33 + gme + < +tyme + + gT +> + +34  + sVCڡAs + { + +35  +tyme + + tVAs +< + tT +>:: + tty +ype; + +38 + gme + <> + +39  + gVCڡAs +< + gVRef +> { + +40  +VCڡRef + + tty +; + +43 + gme + <> + +44  + gVCڡAs +< + gObjeRef +> { + +45  +ObjeCڡRef + + tty +; + +48 + gme + <> + +49  + gVCڡAs +< + gAayRef +> { + +50  +AayCڡRef + + tty +; + +55 + gme + < +tyme + + gT +> + +56 +le + +tyme + + gab_if +< + gis_gl +< + gT +>:: +vue + && ! +is_me +< +bo +, T>::value, + +57 + gT +>:: +ty + + +58 +vAs +(cڡ +VDa +* +da +) { + +59 +ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED +( +T +); + +60  + gda + !0 ? +da +-> +asIegl +< +T +>() : T(0); + +63 + gme + < +tyme + + gT +> + +64 +le + +tyme + + gab_if +< + gis_um +< + gT +>:: +vue +, T>:: +ty + +vAs +( + +65 cڡ +VDa +* +da +) { + +66  +da + !0 ? +ic_ +< +T +>(da-> +asIegl +<>()) : T(); + +69 + gme + < +tyme + + gT +> + +70 +le + +tyme + + gab_if +< + gis_me +< + gT +, + gbo +>:: +vue +, T>:: +ty + +vAs +( + +71 cڡ +VDa +* +da +) { + +72  +da + !0 ? da-> +asBoޗn +(: +l +; + +75 + gme + < +tyme + + gT +> + +76 +le + +tyme + + gab_if +< + gis_tg_pot +< + gT +>:: +vue +, T>:: +ty + +vAs +( + +77 cڡ +VDa +* +da +) { + +78  +da + !0 ? da-> +asFlt +< +T +>() : T(0); + +81 + gme + < +tyme + + gT +> + +82 +le + +tyme + + gab_if +< + gis_me +< + gT +, cڡ *>:: +vue + || + +83 +is_me +< +T +, *>:: +vue +, + +84 cڡ *>:: +ty + + +85 +vAs +(cڡ +VDa +* +da +) { + +86  +da + !0 ? da-> +asSg +() : 0; + +89 + gme + < +tyme + + gT +> + +90 +T + +vAs +( +VDa +* +da +, +MemyPo +*) { + +94  + gvAs +< + gT +>( + gda +); + +97 + gme + < +tyme + + gT +> + +98 +le + +tyme + + gab_if +< + gis_me +< + gAayCڡRef +, + gT +>:: +vue +, T>:: +ty + +vAs +( + +99 cڡ +VDa +* +da +); + +101 + gme + < +tyme + + gT +> + +102 +le + +tyme + + gab_if +< + gis_me +< + gObjeCڡRef +, + gT +>:: +vue +, T>:: +ty + +vAs +( + +103 cڡ +VDa +* +da +); + +105 + gme + < +tyme + + gT +> + +106 +le + +tyme + + gab_if +< + gis_me +< + gVCڡRef +, + gT +>:: +vue +, T>:: +ty + + +107 +vAs +(cڡ +VDa +* +da +); + +109 + gme + < +tyme + + gT +> + +110 +le + +tyme + + gab_if +< + gIsWrbSg +< + gT +>:: +vue +, T>:: +ty + +vAs +( + +111 cڡ +VDa +* +da +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAsImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gT +> + +14 +le + +tyme + + gab_if +< + gis_me +< + gAayCڡRef +, + gT +>:: +vue +, T>:: +ty + +vAs +( + +15 cڡ +VDa +* +_da +) { + +16  +AayCڡRef +( +vAsAay +( +_da +)); + +19 + gme + < +tyme + + gT +> + +20 +le + +tyme + + gab_if +< + gis_me +< + gObjeCڡRef +, + gT +>:: +vue +, T>:: +ty + +vAs +( + +21 cڡ +VDa +* +_da +) { + +22  +ObjeCڡRef +( +vAsObje +( +_da +)); + +25 + gme + < +tyme + + gT +> + +26 +le + +tyme + + gab_if +< + gis_me +< + gVCڡRef +, + gT +>:: +vue +, T>:: +ty + + +27 +vAs +(cڡ +VDa +* +_da +) { + +28  +VCڡRef +( +_da +); + +31 + gme + < +tyme + + gT +> + +32 +le + +tyme + + gab_if +< + gIsWrbSg +< + gT +>:: +vue +, T>:: +ty + +vAs +( + +33 cڡ +VDa +* +_da +) { + +34 cڡ * +cr + = +_da + !0 ? _da-> +asSg +() : 0; + +35 i( + gcr +) + +36  +T +( +cr +); + +37 +T + + gs +; + +38 +rlizeJs +( +VCڡRef +( +_da +), +s +); + +39  + gs +; + +42 + gme + <> + +43 +le + +AayRef + + gvAs +< + gAayRef +>( +VDa +* + gda +, +MemyPo +* + gpo +) { + +44  +AayRef +( +po +, +da + !0 ? da-> +asAay +() : 0); + +47 + gme + <> + +48 +le + +ObjeRef + + gvAs +< + gObjeRef +>( +VDa +* + gda +, +MemyPo +* + gpo +) { + +49  +ObjeRef +( +po +, +da + !0 ? da-> +asObje +() : 0); + +52 + gme + <> + +53 +le + +VRef + + gvAs +< + gVRef +>( +VDa +* + gda +, +MemyPo +* + gpo +) { + +54  +VRef +( +po +, +da +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 +ass + + gCiDa +; + +17  + gComrBa + : +Vis +< +ComResu +> { + +18 +ComResu + +visAay +(cڡ +CiDa + &) { + +19  +COMPARE_RESULT_DIFFER +; + +21 +ComResu + +visBoޗn +( +bo +) { + +22  + gCOMPARE_RESULT_DIFFER +; + +24 +ComResu + +visFlt +( +Flt +) { + +25  + gCOMPARE_RESULT_DIFFER +; + +27 +ComResu + +visNegiveIeg +( +UI +) { + +28  + gCOMPARE_RESULT_DIFFER +; + +30 +ComResu + +visNu +() { + +31  + gCOMPARE_RESULT_DIFFER +; + +33 +ComResu + +visObje +(cڡ +CiDa + &) { + +34  + gCOMPARE_RESULT_DIFFER +; + +36 +ComResu + +visPosiveIeg +( +UI +) { + +37  + gCOMPARE_RESULT_DIFFER +; + +39 +ComResu + +visRawJs +(cڡ *, +size_t +) { + +40  + gCOMPARE_RESULT_DIFFER +; + +42 +ComResu + +visSg +(const *) { + +43  + gCOMPARE_RESULT_DIFFER +; + +47 + gme + < +tyme + + gT +,ym + gEb + = > + +48  +Comr +; + +50 + gme + < +tyme + + gT +> + +51  + gComr +< + gT +, +tyme + + gab_if +< + gIsSg +:: +vue +>:: +ty +> + +52 : +ComrBa + { + +53 +T + +rhs +; + +55 +exic + +Comr +( +T + +vue +: +rhs +(value) {} + +57 +ComResu + +visSg +(cڡ * +lhs +) { + +58  +i + = +adtSg +( +rhs +). +com +( +lhs +); + +59 i( + gi + < 0) + +60  + gCOMPARE_RESULT_GREATER +; + +61 i( + gi + > 0) + +62  + gCOMPARE_RESULT_LESS +; + +64  + gCOMPARE_RESULT_EQUAL +; + +67 +ComResu + +visNu +() { + +68 i( +adtSg +( +rhs +). +isNu +()) + +69  + gCOMPARE_RESULT_EQUAL +; + +71  + gCOMPARE_RESULT_DIFFER +; + +75 + gme + < +tyme + + gT +> + +76  + gComr +< + gT +, +tyme + + gab_if +< + gis_gl +:: +vue + || + +77 +is_tg_pot +< +T +>:: +vue +>:: +ty +> + +78 : +ComrBa + { + +79 +T + +rhs +; + +81 +exic + +Comr +( +T + +vue +: +rhs +(value) {} + +83 +ComResu + +visFlt +( +Flt + +lhs +) { + +84  +hmicCom +( +lhs +, +rhs +); + +87 +ComResu + +visNegiveIeg +( +UI + +lhs +) { + +88  +hmicComNegeLe +( +lhs +, +rhs +); + +91 +ComResu + +visPosiveIeg +( +UI + +lhs +) { + +92  +hmicCom +( +lhs +, +rhs +); + +95 +ComResu + +visBoޗn +( +bo + +lhs +) { + +96  +visPosiveIeg +( +ic_ +< +UI +>( +lhs +)); + +100  + gNuComr + : +ComrBa + { + +101 +ComResu + +visNu +() { + +102  +COMPARE_RESULT_EQUAL +; + +106 #i +ARDUINOJSON_HAS_NULLPTR + + +107 + gme + <> + +108  + gComr +< +dety +( +nuαr +), > : +NuComr + { + +109 +exic + +Comr +( +dety +( +nuαr +): +NuComr +() {} + +113  + gAayComr + : +ComrBa + { + +114 cڡ +CiDa + * +_rhs +; + +116 +exic + +AayComr +(cڡ +CiDa + & +rhs +: +_rhs +(&rhs) {} + +118 +ComResu + +visAay +(cڡ +CiDa + & +lhs +) { + +119 i( +lhs +. +equsAay +(* +_rhs +)) + +120  +COMPARE_RESULT_EQUAL +; + +122  + gCOMPARE_RESULT_DIFFER +; + +126  + gNegiveIegComr + : +ComrBa + { + +127 +UI + +_rhs +; + +129 +exic + +NegiveIegComr +( +UI + +rhs +: +_rhs +(rhs) {} + +131 +ComResu + +visFlt +( +Flt + +lhs +) { + +132  +hmicComNegeRight +( +lhs +, +_rhs +); + +135 +ComResu + +visNegiveIeg +( +UI + +lhs +) { + +136  +hmicCom +( +_rhs +, +lhs +); + +139 +ComResu + +visPosiveIeg +( +UI +) { + +140  + gCOMPARE_RESULT_GREATER +; + +143 +ComResu + +visBoޗn +( +bo +) { + +144  + gCOMPARE_RESULT_GREATER +; + +148  + gObjeComr + : +ComrBa + { + +149 cڡ +CiDa + * +_rhs +; + +151 +exic + +ObjeComr +(cڡ +CiDa + & +rhs +: +_rhs +(&rhs) {} + +153 +ComResu + +visObje +(cڡ +CiDa + & +lhs +) { + +154 i( +lhs +. +equsObje +(* +_rhs +)) + +155  +COMPARE_RESULT_EQUAL +; + +157  + gCOMPARE_RESULT_DIFFER +; + +161  + gRawComr + : +ComrBa + { + +162 cڡ * +_rhsDa +; + +163 +size_t + + g_rhsSize +; + +165 +exic + +RawComr +(cڡ * +rhsDa +, +size_t + +rhsSize +) + +166 : +_rhsDa +( +rhsDa +), +_rhsSize +( +rhsSize +) {} + +168 +ComResu + +visRawJs +(cڡ * +lhsDa +, +size_t + +lhsSize +) { + +169 +size_t + + gsize + = +_rhsSize + < +lhsSize + ? _rhsSize :hsSize; + +170  + gn + = +memcmp +( +lhsDa +, +_rhsDa +, +size +); + +171 i( + gn + < 0) + +172  + gCOMPARE_RESULT_LESS +; + +173 i( + gn + > 0) + +174  + gCOMPARE_RESULT_GREATER +; + +176  + gCOMPARE_RESULT_EQUAL +; + +180 + gme + < +tyme + + gT +> + +181  + gComr +< + gT +, +tyme + + gab_if +< + gIsVisab +:: +vue +>:: +ty +> + +182 : +ComrBa + { + +183 +T + +rhs +; + +185 +exic + +Comr +( +T + +vue +: +rhs +(value) {} + +187 +ComResu + +visAay +(cڡ +CiDa + & +lhs +) { + +188 +AayComr + +comr +( +lhs +); + +189  +ac +( +comr +); + +192 +ComResu + +visObje +(cڡ +CiDa + & +lhs +) { + +193 +ObjeComr + +comr +( +lhs +); + +194  +ac +( +comr +); + +197 +ComResu + +visFlt +( +Flt + +lhs +) { + +198 + gComr +< + gFlt +> +comr +( +lhs +); + +199  +ac +( +comr +); + +202 +ComResu + +visSg +(cڡ * +lhs +) { + +203 + gComr + +comr +( +lhs +); + +204  +ac +( +comr +); + +207 +ComResu + +visRawJs +(cڡ * +lhsDa +, +size_t + +lhsSize +) { + +208 +RawComr + +comr +( +lhsDa +, +lhsSize +); + +209  +ac +( +comr +); + +212 +ComResu + +visNegiveIeg +( +UI + +lhs +) { + +213 +NegiveIegComr + +comr +( +lhs +); + +214  +ac +( +comr +); + +217 +ComResu + +visPosiveIeg +( +UI + +lhs +) { + +218 + gComr +< + gUI +> +comr +( +lhs +); + +219  +ac +( +comr +); + +222 +ComResu + +visBoޗn +( +bo + +lhs +) { + +223 + gComr +< + gbo +> +comr +( +lhs +); + +224  +ac +( +comr +); + +227 +ComResu + +visNu +() { + +228 +NuComr + + gcomr +; + +229  +ac +( +comr +); + +232 + give +: + +233 +me + < +tyme + +TComr +> + +234 +ComResu + +ac +( +TComr + & +comr +) { + +235 +ComResu + +vdResu + = +rhs +. +ac +( +comr +); + +236  + gvdResu +) { + +237  + gCOMPARE_RESULT_GREATER +: + +238  +COMPARE_RESULT_LESS +; + +239  + gCOMPARE_RESULT_LESS +: + +240  +COMPARE_RESULT_GREATER +; + +242  +vdResu +; + +247 + gme + < +tyme + + gT1 +,ym + gT2 +> + +248 +ComResu + +com +(cڡ +T1 + & +lhs +, cڡ +T2 + & +rhs +) { + +249 + gComr +< + gT2 +> +comr +( +rhs +); + +250  + glhs +. +ac +( +comr +); + +253 +le +  +vCom +(cڡ +VDa + * +a +, cڡ VD* +b +) { + +254  +com +( +VCڡRef +( +a +), VCڡRef( +b +)); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gVALUE_MASK + = 0x7F, + +19 + gVALUE_IS_OWNED + = 0x01, + +20 + gVALUE_IS_NULL + = 0, + +21 + gVALUE_IS_LINKED_RAW + = 0x02, + +22 + gVALUE_IS_OWNED_RAW + = 0x03, + +23 + gVALUE_IS_LINKED_STRING + = 0x04, + +24 + gVALUE_IS_OWNED_STRING + = 0x05, + +27 + gVALUE_IS_BOOLEAN + = 0x06, + +28 + gVALUE_IS_POSITIVE_INTEGER + = 0x08, + +29 + gVALUE_IS_NEGATIVE_INTEGER + = 0x0A, + +30 + gVALUE_IS_FLOAT + = 0x0C, + +32 + gCOLLECTION_MASK + = 0x60, + +33 + gVALUE_IS_OBJECT + = 0x20, + +34 + gVALUE_IS_ARRAY + = 0x40, + +36 + gKEY_IS_OWNED + = 0x80 + +39  + sRawDa + { + +40 cڡ * + gda +; + +41 +size_t + + gsize +; + +44  + uVCڋ + { + +45 +Flt + + gasFlt +; + +46 +UI + + gasIeg +; + +47 +CiDa + + gasCi +; + +48 cڡ * + gasSg +; + +50 cڡ * + gda +; + +51 +size_t + + gsize +; + +52 } + gasRaw +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +15 #i +defed +( +__GNUC__ +) + +16 #i +__GNUC__ + >= 7 + +17 #agm +GCC + +dgnoic + +push + + +18 #agm +GCC + +dgnoic + +igned + "-Wmaybe-uninitialized" + +19 #agm +GCC + +dgnoic + +igned + "-Wuninitialized" + +23 +mea + + gARDUINOJSON_NAMESPACE + { + +25 as + cVDa + { + +26 +VCڋ + + g_cڋ +; + +27 +ut8_t + + g_ags +; + +29 + gpublic +: + +35  + +() { + +36 +_ags + = 0; + +39 + gme + < +tyme + + gTVis +> + +40 +tyme + + gTVis +:: +su_ty + +ac +( +TVis + & +vis +) const { + +41  +ty +()) { + +42  +VALUE_IS_FLOAT +: + +43  +vis +. +visFlt +( +_cڋ +. +asFlt +); + +45  + gVALUE_IS_ARRAY +: + +46  +vis +. +visAay +( +_cڋ +. +asCi +); + +48  + gVALUE_IS_OBJECT +: + +49  +vis +. +visObje +( +_cڋ +. +asCi +); + +51  + gVALUE_IS_LINKED_STRING +: + +52  +VALUE_IS_OWNED_STRING +: + +53  +vis +. +visSg +( +_cڋ +. +asSg +); + +55  + gVALUE_IS_OWNED_RAW +: + +56  +VALUE_IS_LINKED_RAW +: + +57  +vis +. +visRawJs +( +_cڋ +. +asRaw +. +da +, _cڋ.asRaw. +size +); + +59  + gVALUE_IS_NEGATIVE_INTEGER +: + +60  +vis +. +visNegiveIeg +( +_cڋ +. +asIeg +); + +62  + gVALUE_IS_POSITIVE_INTEGER +: + +63  +vis +. +visPosiveIeg +( +_cڋ +. +asIeg +); + +65  + gVALUE_IS_BOOLEAN +: + +66  +vis +. +visBoޗn +( +_cڋ +. +asIeg + != 0); + +69  +vis +. +visNu +(); + +73 + gme + < +tyme + + gT +> + +74 +T + +asIegl +() const; + +76 + gme + < +tyme + + gT +> + +77 +T + +asFlt +() const; + +79 cڡ * +asSg +() const; + +81 +bo + +asBoޗn +() const; + +83 +CiDa + * +asAay +() { + +84  +isAay +(? & + g_cڋ +. + gasCi + : 0; + +87 cڡ +CiDa + * +asAay +() const { + +88  + gcڡ_ +< + gVDa + *>( + gthis +)-> +asAay +(); + +91 +CiDa + * +asObje +() { + +92  +isObje +(? & + g_cڋ +. + gasCi + : 0; + +95 cڡ +CiDa + * +asObje +() const { + +96  + gcڡ_ +< + gVDa + *>( + gthis +)-> +asObje +(); + +99 +bo + +cyFrom +(cڡ +VDa + & +c +, +MemyPo + * +po +) { + +100  + gc +. +ty +()) { + +101  + gVALUE_IS_ARRAY +: + +102  +toAay +(). +cyFrom +( +c +. +_cڋ +. +asCi +, +po +); + +103  + gVALUE_IS_OBJECT +: + +104  +toObje +(). +cyFrom +( +c +. +_cڋ +. +asCi +, +po +); + +105  + gVALUE_IS_OWNED_STRING +: + +106  +tSg +( +RamSgAdr +( +c +. +_cڋ +. +asSg +), +po +); + +107  + gVALUE_IS_OWNED_RAW +: + +108  +tOwdRaw +( + +109 +rlized +( +c +. +_cڋ +. +asRaw +. +da +, src._cڋ.asRaw. +size +), +po +); + +111 +tTy +( +c +. +ty +()); + +112 + g_cڋ + = +c +. +_cڋ +; + +113  + gue +; + +117 +bo + +isAay +() const { + +118  ( + g_ags + & + gVALUE_IS_ARRAY +) != 0; + +121 +bo + +isBoޗn +() const { + +122  +ty +(= +VALUE_IS_BOOLEAN +; + +125 +bo + +isCi +() const { + +126  ( + g_ags + & + gCOLLECTION_MASK +) != 0; + +129 + gme + < +tyme + + gT +> + +130 +bo + +isIeg +() const { + +131  +ty +()) { + +132  + gVALUE_IS_POSITIVE_INTEGER +: + +133  +nStePosiveIeg +< +T +>( +_cڋ +. +asIeg +); + +135  + gVALUE_IS_NEGATIVE_INTEGER +: + +136  +nSteNegiveIeg +< +T +>( +_cڋ +. +asIeg +); + +139  +l +; + +143 +bo + +isFlt +() const { + +144  +ty +(= +VALUE_IS_FLOAT + ||y(= +VALUE_IS_POSITIVE_INTEGER + || + +145 +ty +(= +VALUE_IS_NEGATIVE_INTEGER +; + +148 +bo + +isSg +() const { + +149  +ty +(= +VALUE_IS_LINKED_STRING + ||y(= +VALUE_IS_OWNED_STRING +; + +152 +bo + +isObje +() const { + +153  ( + g_ags + & + gVALUE_IS_OBJECT +) != 0; + +156 +bo + +isNu +() const { + +157  +ty +(= +VALUE_IS_NULL +; + +160 +bo + +isEnod +() const { + +161  ! +isFlt +(); + +164  +move +( +size_t + +dex +) { + +165 i( +isAay +()) + +166 + g_cڋ +. + gasCi +. +moveEmt +( +dex +); + +169 + gme + < +tyme + + gTAddSg +> + +170  +move +( +TAddSg + +key +) { + +171 i( +isObje +()) + +172 + g_cڋ +. + gasCi +. +moveMemb +( +key +); + +175  +tBoޗn +( +bo + +vue +) { + +176 +tTy +( +VALUE_IS_BOOLEAN +); + +177 + g_cڋ +. + gasIeg + = +ic_ +< +UI +>( +vue +); + +180  +tFlt +( +Flt + +vue +) { + +181 +tTy +( +VALUE_IS_FLOAT +); + +182 + g_cڋ +. + gasFlt + = +vue +; + +185  +tLkedRaw +( +SlizedVue + +vue +) { + +186 i( + gvue +. +da +()) { + +187 +tTy +( +VALUE_IS_LINKED_RAW +); + +188 + g_cڋ +. + gasRaw +. + gda + = +vue +. +da +(); + +189 + g_cڋ +. + gasRaw +. + gsize + = +vue +. +size +(); + +191 +tTy +( +VALUE_IS_NULL +); + +195 + gme + < +tyme + + gT +> + +196 +bo + +tOwdRaw +( +SlizedVue +< +T +> +vue +, +MemyPo + * +po +) { + +197 cڡ * + gdup + = +po +-> +veSg +( +adtSg +( +vue +. +da +(), vue. +size +())); + +198 i( + gdup +) { + +199 +tTy +( +VALUE_IS_OWNED_RAW +); + +200 + g_cڋ +. + gasRaw +. + gda + = +dup +; + +201 + g_cڋ +. + gasRaw +. + gsize + = +vue +. +size +(); + +202  + gue +; + +204 +tTy +( +VALUE_IS_NULL +); + +205  + gl +; + +209 + gme + < +tyme + + gT +> + +210 +tyme + + gab_if +< + gis_unsigd +< + gT +>:: +vue +>:: +ty + +tIeg +( +T + value) { + +211 +tUnsigdIeg +( +vue +); + +214 + gme + < +tyme + + gT +> + +215 +tyme + + gab_if +< + gis_sigd +< + gT +>:: +vue +>:: +ty + +tIeg +( +T + value) { + +216 +tSigdIeg +( +vue +); + +219 + gme + < +tyme + + gT +> + +220  +tSigdIeg +( +T + +vue +) { + +221 i( + gvue + >= 0) { + +222 +tPosiveIeg +( +ic_ +< +UI +>( +vue +)); + +224 +tNegiveIeg +(~ +ic_ +< +UI +>( +vue +) + 1); + +228  +tUnsigdIeg +( +UI + +vue +) { + +229 +tTy +( +VALUE_IS_POSITIVE_INTEGER +); + +230 + g_cڋ +. + gasIeg + = +ic_ +< +UI +>( +vue +); + +233  +tPosiveIeg +( +UI + +vue +) { + +234 +tTy +( +VALUE_IS_POSITIVE_INTEGER +); + +235 + g_cڋ +. + gasIeg + = +vue +; + +238  +tNegiveIeg +( +UI + +vue +) { + +239 +tTy +( +VALUE_IS_NEGATIVE_INTEGER +); + +240 + g_cڋ +. + gasIeg + = +vue +; + +243  +tNu +() { + +244 +tTy +( +VALUE_IS_NULL +); + +247  +tSgPor +(cڡ * +s +, +age_pics +:: +e_by_cy +) { + +248 +tTy +( +VALUE_IS_OWNED_STRING +); + +249 + g_cڋ +. + gasSg + = +s +; + +252  +tSgPor +(cڡ * +s +, +age_pics +:: +e_by_addss +) { + +253 +tTy +( +VALUE_IS_LINKED_STRING +); + +254 + g_cڋ +. + gasSg + = +s +; + +257 + gme + < +tyme + + gTAddSg +> + +258 +bo + +tSg +( +TAddSg + +vue +, +MemyPo + * +po +) { + +259  +tSg +( +vue +, +po +, +tyme + +TAddSg +:: +age_picy +()); + +262 + gme + < +tyme + + gTAddSg +> + +263 +le + +bo + +tSg +( +TAddSg + +vue +, +MemyPo + * +po +, + +264 +age_pics +:: +decide__ruime +) { + +265 i( +vue +. +isStic +()) + +266  +tSg +( +vue +, +po +, +age_pics +:: +e_by_addss +()); + +268  +tSg +( +vue +, +po +, +age_pics +:: +e_by_cy +()); + +271 + gme + < +tyme + + gTAddSg +> + +272 +le + +bo + +tSg +( +TAddSg + +vue +, +MemyPo + *, + +273 +age_pics +:: +e_by_addss +) { + +274 i( +vue +. +isNu +()) + +275 +tNu +(); + +277 +tSgPor +( +vue +. +da +(), +age_pics +:: +e_by_addss +()); + +278  + gue +; + +281 + gme + < +tyme + + gTAddSg +> + +282 +le + +bo + +tSg +( +TAddSg + +vue +, +MemyPo + * +po +, + +283 +age_pics +:: +e_by_cy +) { + +284 i( +vue +. +isNu +()) { + +285 +tNu +(); + +286  + gue +; + +288 cڡ * + gcy + = +po +-> +veSg +( +vue +); + +289 i(! + gcy +) { + +290 +tNu +(); + +291  + gl +; + +293 +tSgPor +( +cy +, +age_pics +:: +e_by_cy +()); + +294  + gue +; + +297 + gCiDa + & +toAay +() { + +298 +tTy +( +VALUE_IS_ARRAY +); + +299 + g_cڋ +. + gasCi +. +r +(); + +300  + g_cڋ +. + gasCi +; + +303 + gCiDa + & +toObje +() { + +304 +tTy +( +VALUE_IS_OBJECT +); + +305 + g_cڋ +. + gasCi +. +r +(); + +306  + g_cڋ +. + gasCi +; + +309 +size_t + +memyUge +() const { + +310  +ty +()) { + +311  + gVALUE_IS_OWNED_STRING +: + +312  + +( +_cڋ +. +asSg +) + 1; + +313  + gVALUE_IS_OWNED_RAW +: + +314  +_cڋ +. +asRaw +. +size +; + +315  + gVALUE_IS_OBJECT +: + +316  +VALUE_IS_ARRAY +: + +317  +_cڋ +. +asCi +. +memyUge +(); + +323 +size_t + +ág +() const { + +324  +isCi +(? + g_cڋ +. + gasCi +. +ág +() : 0; + +327 +size_t + +size +() const { + +328  +isCi +(? + g_cڋ +. + gasCi +. +size +() : 0; + +331 +VDa + * +addEmt +( +MemyPo + * +po +) { + +332 i( +isNu +()) + +333 +toAay +(); + +334 i(! +isAay +()) + +336  + g_cڋ +. + gasCi +. +addEmt +( +po +); + +339 +VDa + * +gEmt +( +size_t + +dex +) const { + +340  +isAay +(? + g_cڋ +. + gasCi +. +gEmt +( +dex +) : 0; + +343 +VDa + * +gOrAddEmt +( +size_t + +dex +, +MemyPo + * +po +) { + +344 i( +isNu +()) + +345 +toAay +(); + +346 i(! +isAay +()) + +348  + g_cڋ +. + gasCi +. +gOrAddEmt +( +dex +, +po +); + +351 + gme + < +tyme + + gTAddSg +> + +352 +VDa + * +gMemb +( +TAddSg + +key +) const { + +353  +isObje +(? + g_cڋ +. + gasCi +. +gMemb +( +key +) : 0; + +356 + gme + < +tyme + + gTAddSg +> + +357 +VDa + * +gOrAddMemb +( +TAddSg + +key +, +MemyPo + * +po +) { + +358 i( +isNu +()) + +359 +toObje +(); + +360 i(! +isObje +()) + +362  + g_cڋ +. + gasCi +. +gOrAddMemb +( +key +, +po +); + +365  +movePors +( +rdiff_t + +rgDi +,diff_ +vDi +) { + +366 i( + g_ags + & + gVALUE_IS_OWNED +) + +367 + g_cڋ +. + gasSg + + +rgDi +; + +368 i( + g_ags + & + gCOLLECTION_MASK +) + +369 + g_cڋ +. + gasCi +. +movePors +( +rgDi +, +vDi +); + +372 +ut8_t + +ty +() const { + +373  + g_ags + & + gVALUE_MASK +; + +376 + give +: + +377  +tTy +( +ut8_t + +t +) { + +378 +_ags + & +KEY_IS_OWNED +; + +379 + g_ags + | +t +; + +385 #i +defed +( +__GNUC__ +) + +386 #i +__GNUC__ + >= 8 + +387 #agm +GCC + +dgnoic + +p + + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantFunctions.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTVis +> + +13 +le + +tyme + + gTVis +:: +su_ty + +vAc +(cڡ +VDa + * +v +, + +14 +TVis + & +vis +) { + +15 i( + gv + != 0) + +16  +v +-> +ac +( +vis +); + +18  + gvis +. +visNu +(); + +21 +le + cڡ +CiDa + * +vAsAay +(cڡ +VDa + * +v +) { + +22  + gv + !0 ? +v +-> +asAay +() : 0; + +25 +le + cڡ +CiDa + * +vAsObje +(cڡ +VDa + * +v +) { + +26  + gv + !0 ? +v +-> +asObje +() : 0; + +29 +le + +CiDa + * +vAsObje +( +VDa + * +v +) { + +30  + gv + !0 ? +v +-> +asObje +() : 0; + +33 +le + +bo + +vCyFrom +( +VDa + * +d +, cڡ VD* +c +, + +34 +MemyPo + * +po +) { + +35 i(! + gd +) + +36  + gl +; + +37 i(! + gc +) { + +38 + gd +-> +tNu +(); + +39  + gue +; + +41  + gd +-> +cyFrom +(* +c +, +po +); + +44 +le +  +vCom +(cڡ +VDa + * +a +, cڡ VD* +b +); + +46 +le + +bo + +vIsAay +(cڡ +VDa + * +v +) { + +47  + gv + && v-> +isAay +(); + +50 +le + +bo + +vIsBoޗn +(cڡ +VDa + * +v +) { + +51  + gv + && v-> +isBoޗn +(); + +54 + gme + < +tyme + + gT +> + +55 +le + +bo + +vIsIeg +(cڡ +VDa + * +v +) { + +56  + gv + && v-> + gisIeg +< + gT +>(); + +59 +le + +bo + +vIsFlt +(cڡ +VDa + * +v +) { + +60  + gv + && v-> +isFlt +(); + +63 +le + +bo + +vIsSg +(cڡ +VDa + * +v +) { + +64  + gv + && v-> +isSg +(); + +67 +le + +bo + +vIsObje +(cڡ +VDa + * +v +) { + +68  + gv + && v-> +isObje +(); + +71 +le + +bo + +vIsNu +(cڡ +VDa + * +v +) { + +72  + gv + =0 || +v +-> +isNu +(); + +75 +le + +bo + +vSBoޗn +( +VDa + * +v +, bo +vue +) { + +76 i(! + gv +) + +77  + gl +; + +78 + gv +-> +tBoޗn +( +vue +); + +79  + gue +; + +82 +le + +bo + +vSFlt +( +VDa + * +v +, +Flt + +vue +) { + +83 i(! + gv +) + +84  + gl +; + +85 + gv +-> +tFlt +( +vue +); + +86  + gue +; + +89 +le + +bo + +vSLkedRaw +( +VDa + * +v +, + +90 +SlizedVue + +vue +) { + +91 i(! + gv +) + +92  + gl +; + +93 + gv +-> +tLkedRaw +( +vue +); + +94  + gue +; + +97 + gme + < +tyme + + gT +> + +98 +le + +bo + +vSOwdRaw +( +VDa + * +v +, +SlizedVue +< +T +> +vue +, + +99 +MemyPo + * +po +) { + +100  + gv + !0 && +v +-> +tOwdRaw +( +vue +, +po +); + +103 +le +  +vSNu +( +VDa + * +v +) { + +104 i(! + gv +) + +106 + gv +-> +tNu +(); + +109 + gme + < +tyme + + gTAddSg +> + +110 +le + +bo + +vSSg +( +VDa + * +v +, +TAddSg + +vue +, + +111 +MemyPo + * +po +) { + +112 i(! + gv +) + +113  + gl +; + +114  + gv +-> +tSg +( +vue +, +po +); + +117 + gme + < +tyme + + gT +> + +118 +le + +bo + +vSIeg +( +VDa + * +v +, +T + +vue +) { + +119 +ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED +( +T +); + +120 i(! + gv +) + +121  + gl +; + +122 + gv +-> +tIeg +( +vue +); + +123  + gue +; + +126 +le + +size_t + +vSize +(cڡ +VDa + * +v +) { + +127  + gv + !0 ? +v +-> +size +() : 0; + +130 +le + +CiDa + * +vToAay +( +VDa + * +v +) { + +131 i(! + gv +) + +133  & + gv +-> +toAay +(); + +136 +le + +CiDa + * +vToObje +( +VDa + * +v +) { + +137 i(! + gv +) + +139  & + gv +-> +toObje +(); + +142 +le + +NO_INLINE + +VDa + * +vAddEmt +(VD* +v +, + +143 +MemyPo + * +po +) { + +144  + gv + !0 ? +v +-> +addEmt +( +po +) : 0; + +147 +le + +NO_INLINE + +VDa + * +vGOrAddEmt +(VD* +v +, + +148 +size_t + +dex +, + +149 +MemyPo + * +po +) { + +150  + gv + !0 ? +v +-> +gOrAddEmt +( +dex +, +po +) : 0; + +153 + gme + < +tyme + + gTCh +> + +154 +NO_INLINE + +VDa + * +vGOrAddMemb +(VD* +v +, +TCh + * +key +, + +155 +MemyPo + * +po +) { + +156  + gv + !0 ? +v +-> +gOrAddMemb +( +adtSg +( +key +), +po +) : 0; + +159 + gme + < +tyme + + gTSg +> + +160 +NO_INLINE + +VDa + * +vGOrAddMemb +(VD* +v +, + +161 cڡ +TSg + & +key +, + +162 +MemyPo + * +po +) { + +163  + gv + !0 ? +v +-> +gOrAddMemb +( +adtSg +( +key +), +po +) : 0; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14  + ~ + +16 +mea + + gARDUINOJSON_NAMESPACE + { + +18 + gme + < +tyme + + gT +> + +19 +le + +T + + gVDa +:: +asIegl +() const { + +20  +ty +()) { + +21  +VALUE_IS_POSITIVE_INTEGER +: + +22  +VALUE_IS_BOOLEAN +: + +23  +cvtPosiveIeg +< +T +>( +_cڋ +. +asIeg +); + +24  + gVALUE_IS_NEGATIVE_INTEGER +: + +25  +cvtNegiveIeg +< +T +>( +_cڋ +. +asIeg +); + +26  + gVALUE_IS_LINKED_STRING +: + +27  +VALUE_IS_OWNED_STRING +: + +28  +rNumb +< +T +>( +_cڋ +. +asSg +); + +29  + gVALUE_IS_FLOAT +: + +30  +cvtFlt +< +T +>( +_cڋ +. +asFlt +); + +36 +le + +bo + + gVDa +:: +asBoޗn +() const { + +37  +ty +()) { + +38  +VALUE_IS_POSITIVE_INTEGER +: + +39  +VALUE_IS_BOOLEAN +: + +40  +VALUE_IS_NEGATIVE_INTEGER +: + +41  +_cڋ +. +asIeg + != 0; + +42  + gVALUE_IS_FLOAT +: + +43  +_cڋ +. +asFlt + != 0; + +44  + gVALUE_IS_NULL +: + +45  +l +; + +47  +ue +; + +52 + gme + < +tyme + + gT +> + +53 +le + +T + + gVDa +:: +asFlt +() const { + +54  +ty +()) { + +55  +VALUE_IS_POSITIVE_INTEGER +: + +56  +VALUE_IS_BOOLEAN +: + +57  +ic_ +< +T +>( +_cڋ +. +asIeg +); + +58  + gVALUE_IS_NEGATIVE_INTEGER +: + +59  - +ic_ +< +T +>( +_cڋ +. +asIeg +); + +60  + gVALUE_IS_LINKED_STRING +: + +61  +VALUE_IS_OWNED_STRING +: + +62  +rNumb +< +T +>( +_cڋ +. +asSg +); + +63  + gVALUE_IS_FLOAT +: + +64  +ic_ +< +T +>( +_cڋ +. +asFlt +); + +70 +le + cڡ * + gVDa +:: +asSg +() const { + +71  +ty +()) { + +72  +VALUE_IS_LINKED_STRING +: + +73  +VALUE_IS_OWNED_STRING +: + +74  +_cڋ +. +asSg +; + +80 + gme + < +tyme + + gTV +> + +81 +tyme + + gab_if +< + gIsVisab +< + gTV +>:: +vue +, + gbo +>:: +ty + +VRef +:: +t +( + +82 cڡ +TV + & +vue +) const { + +83 +VCڡRef + +v + = +vue +; + +84  +vCyFrom +( +_da +, +v +._da, +_po +); + +87 + gme + < +tyme + + gT +> + +88 +le + +tyme + + gab_if +< + gis_me +< + gT +, + gAayRef +>:: +vue +, AayRef>:: +ty + + +89 +VRef +:: +to +() const { + +90  +AayRef +( +_po +, +vToAay +( +_da +)); + +93 + gme + < +tyme + + gT +> + +94 +tyme + + gab_if +< + gis_me +< + gT +, + gObjeRef +>:: +vue +, ObjeRef>:: +ty + + +95 +VRef +:: +to +() const { + +96  +ObjeRef +( +_po +, +vToObje +( +_da +)); + +99 + gme + < +tyme + + gT +> + +100 +tyme + + gab_if +< + gis_me +< + gT +, + gVRef +>:: +vue +, VRef>:: +ty + + +101 +VRef +:: +to +() const { + +102 +vSNu +( +_da +); + +103  * + gthis +; + +106 +le + +VCڡRef + + gVCڡRef +:: +gEmt +( +size_t + +dex +) const { + +107  +AayCڡRef +( +_da + !0 ? _da-> +asAay +(: 0)[ +dex +]; + +110 +le + +VRef + + gVRef +:: +addEmt +() const { + +111  +VRef +( +_po +, +vAddEmt +( +_da +, _pool)); + +114 +le + +VRef + + gVRef +:: +gEmt +( +size_t + +dex +) const { + +115  +VRef +( +_po +, +_da + !0 ? _da-> +gEmt +( +dex +) : 0); + +118 +le + +VRef + + gVRef +:: +gOrAddEmt +( +size_t + +dex +) const { + +119  +VRef +( +_po +, +vGOrAddEmt +( +_da +, +dex +, _pool)); + +122 + gme + < +tyme + + gTCh +> + +123 +le + +VRef + + gVRef +:: +gMemb +( +TCh + * +key +) const { + +124  +VRef +( +_po +, +_da + !0 ? _da-> +gMemb +( +adtSg +( +key +)) : 0); + +127 + gme + < +tyme + + gTSg +> + +128 +le + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVRef +>:: +ty + + +129 +VRef +:: +gMemb +(cڡ +TSg + & +key +) const { + +130  +VRef +( +_po +, +_da + !0 ? _da-> +gMemb +( +adtSg +( +key +)) : 0); + +133 + gme + < +tyme + + gTCh +> + +134 +le + +VRef + + gVRef +:: +gOrAddMemb +( +TCh + * +key +) const { + +135  +VRef +( +_po +, +vGOrAddMemb +( +_da +, +key +, _pool)); + +138 + gme + < +tyme + + gTSg +> + +139 +le + +VRef + + gVRef +:: +gOrAddMemb +(cڡ +TSg + & +key +) const { + +140  +VRef +( +_po +, +vGOrAddMemb +( +_da +, +key +, _pool)); + +143 +le + +VCڡRef + + gݔ +|(VCڡRe + gedVue +, + +144 +VCڡRef + + gdeuVue +) { + +145  + gedVue + ?dVu: +deuVue +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 + gme + < +tyme + + gT1 +,ym + gT2 +> + +16 +ComResu + +com +(cڡ +T1 + & +lhs +, cڡ +T2 + & +rhs +); + +18 + gme + < +tyme + + gTV +> + +19  + sVOts + { + +21 + gme + < +tyme + + gT +> + +22 +nd + +tyme + + gab_if +:: +vue +, T>:: +ty + +ݔ +|( + +23 cڡ +TV + & +v +, cڡ + gT + & + gdeuVue +) { + +24 i( + gv +. +me + + gis +< + gT +>()) + +25  + gv +. +me + + gas +< + gT +>(); + +27  + gdeuVue +; + +32 + gme + < +tyme + + gT +> + +33 +nd + +tyme + + gab_if +< + gis_me +< + gT +, cڡ *>:: +vue +, T>:: +ty + +ݔ +|( + +34 cڡ +TV + & +v +, +T + + gdeuVue +) { + +35 cڡ * + gvue + = +v +. +me + +as +(); + +36  + gvue + ? vu: +deuVue +; + +40 + gme + < +tyme + + gT +> + +41 +nd + +bo + + gݔ +==( +T + * +lhs +, +TV + + grhs +) { + +42  +com +( +rhs +, +lhs += +COMPARE_RESULT_EQUAL +; + +44 + gme + < +tyme + + gT +> + +45 +nd + +bo + + gݔ +==(cڡ +T + & +lhs +, +TV + + grhs +) { + +46  +com +( +rhs +, +lhs += +COMPARE_RESULT_EQUAL +; + +50 + gme + < +tyme + + gT +> + +51 +nd + +bo + + gݔ +==( +TV + +lhs +, +T + * + grhs +) { + +52  +com +( +lhs +, +rhs += +COMPARE_RESULT_EQUAL +; + +54 + gme + < +tyme + + gT +> + +55 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +==( + +56 +TV + +lhs +, cڡ + gT + & + grhs +) { + +57  +com +( +lhs +, +rhs += +COMPARE_RESULT_EQUAL +; + +61 + gme + < +tyme + + gT +> + +62 +nd + +bo + + gݔ +!=( +T + * +lhs +, +TV + + grhs +) { + +63  +com +( +rhs +, +lhs +! +COMPARE_RESULT_EQUAL +; + +65 + gme + < +tyme + + gT +> + +66 +nd + +bo + + gݔ +!=(cڡ +T + & +lhs +, +TV + + grhs +) { + +67  +com +( +rhs +, +lhs +! +COMPARE_RESULT_EQUAL +; + +71 + gme + < +tyme + + gT +> + +72 +nd + +bo + + gݔ +!=( +TV + +lhs +, +T + * + grhs +) { + +73  +com +( +lhs +, +rhs +! +COMPARE_RESULT_EQUAL +; + +75 + gme + < +tyme + + gT +> + +76 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +!=( + +77 +TV + +lhs +, cڡ + gT + & + grhs +) { + +78  +com +( +lhs +, +rhs +! +COMPARE_RESULT_EQUAL +; + +82 + gme + < +tyme + + gT +> + +83 +nd + +bo + + gݔ +<( +T + * + glhs +, +TV + + grhs +) { + +84  +com +( +rhs +, +lhs += +COMPARE_RESULT_GREATER +; + +86 + gme + < +tyme + + gT +> + +87 +nd + +bo + + gݔ +<(cڡ + gT + & + glhs +, +TV + + grhs +) { + +88  +com +( +rhs +, +lhs += +COMPARE_RESULT_GREATER +; + +92 + gme + < +tyme + + gT +> + +93 +nd + +bo + + gݔ +<( +TV + + glhs +, +T + * + grhs +) { + +94  +com +( +lhs +, +rhs += +COMPARE_RESULT_LESS +; + +96 + gme + < +tyme + + gT +> + +97 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +<( + +98 +TV + +lhs +, cڡ + gT + & + grhs +) { + +99  +com +( +lhs +, +rhs += +COMPARE_RESULT_LESS +; + +103 + gme + < +tyme + + gT +> + +104 +nd + +bo + + gݔ +<=( +T + * +lhs +, +TV + + grhs +) { + +105  ( +com +( +rhs +, +lhs +& + gCOMPARE_RESULT_GREATER_OR_EQUAL +) != 0; + +107 + gme + < +tyme + + gT +> + +108 +nd + +bo + + gݔ +<=(cڡ +T + & +lhs +, +TV + + grhs +) { + +109  ( +com +( +rhs +, +lhs +& + gCOMPARE_RESULT_GREATER_OR_EQUAL +) != 0; + +113 + gme + < +tyme + + gT +> + +114 +nd + +bo + + gݔ +<=( +TV + +lhs +, +T + * + grhs +) { + +115  ( +com +( +lhs +, +rhs +& + gCOMPARE_RESULT_LESS_OR_EQUAL +) != 0; + +117 + gme + < +tyme + + gT +> + +118 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +<=( + +119 +TV + +lhs +, cڡ + gT + & + grhs +) { + +120  ( +com +( +lhs +, +rhs +& + gCOMPARE_RESULT_LESS_OR_EQUAL +) != 0; + +124 + gme + < +tyme + + gT +> + +125 +nd + +bo + + gݔ +>( +T + * + glhs +, +TV + + grhs +) { + +126  +com +( +rhs +, +lhs += +COMPARE_RESULT_LESS +; + +128 + gme + < +tyme + + gT +> + +129 +nd + +bo + + gݔ +>(cڡ + gT + & + glhs +, +TV + + grhs +) { + +130  +com +( +rhs +, +lhs += +COMPARE_RESULT_LESS +; + +134 + gme + < +tyme + + gT +> + +135 +nd + +bo + + gݔ +>( +TV + + glhs +, +T + * + grhs +) { + +136  +com +( +lhs +, +rhs += +COMPARE_RESULT_GREATER +; + +138 + gme + < +tyme + + gT +> + +139 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +>( + +140 +TV + +lhs +, cڡ + gT + & + grhs +) { + +141  +com +( +lhs +, +rhs += +COMPARE_RESULT_GREATER +; + +145 + gme + < +tyme + + gT +> + +146 +nd + +bo + + gݔ +>=( +T + * +lhs +, +TV + + grhs +) { + +147  ( +com +( +rhs +, +lhs +& + gCOMPARE_RESULT_LESS_OR_EQUAL +) != 0; + +149 + gme + < +tyme + + gT +> + +150 +nd + +bo + + gݔ +>=(cڡ +T + & +lhs +, +TV + + grhs +) { + +151  ( +com +( +rhs +, +lhs +& + gCOMPARE_RESULT_LESS_OR_EQUAL +) != 0; + +155 + gme + < +tyme + + gT +> + +156 +nd + +bo + + gݔ +>=( +TV + +lhs +, +T + * + grhs +) { + +157  ( +com +( +lhs +, +rhs +& + gCOMPARE_RESULT_GREATER_OR_EQUAL +) != 0; + +159 + gme + < +tyme + + gT +> + +160 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +>=( + +161 +TV + +lhs +, cڡ + gT + & + grhs +) { + +162  ( +com +( +lhs +, +rhs +& + gCOMPARE_RESULT_GREATER_OR_EQUAL +) != 0; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRef.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +16  + ~ + +17  + ~ + +18  + ~ + +20 +mea + + gARDUINOJSON_NAMESPACE + { + +23 +ass + + gAayRef +; + +24 +ass + + gObjeRef +; + +26 + gme + < + gtyme +,ypename> + +27 +ass + + gMembProxy +; + +30 + gme + < +tyme + + gTDa +> + +31 as + cVRefBa + { + +32 + gpublic +: + +45 +me + < +tyme + +T +> + +46 +FORCE_INLINE + + +47 +tyme + +ab_if +< +is_gl +< +T +>:: +vue + && ! +is_me +< +bo +, + gT +>::value, + +48 + gbo +>:: +ty + + +49 +is +() const { + +50  +vIsIeg +< +T +>( +_da +); + +55 + gme + < +tyme + + gT +> + +56 +FORCE_INLINE + +tyme + + gab_if +< + gis_tg_pot +< + gT +>:: +vue +, + gbo +>:: +ty + +is +() + +58  +vIsFlt +( +_da +); + +62 + gme + < +tyme + + gT +> + +63 +FORCE_INLINE + +tyme + + gab_if +< + gis_me +< + gT +, + gbo +>:: +vue +, bo>:: +ty + +is +() + +65  +vIsBoޗn +( +_da +); + +72 + gme + < +tyme + + gT +> + +73 +FORCE_INLINE + +tyme + + gab_if +< + gis_me +< + gT +, cڡ *>:: +vue + || + +74 +is_me +< +T +, *>:: +vue + || + +75 +IsWrbSg +< +T +>:: +vue +, + +76 + gbo +>:: +ty + + +77 +is +() const { + +78  +vIsSg +( +_da +); + +83 + gme + < +tyme + + gT +> + +84 +FORCE_INLINE + +tyme + + gab_if +< + +85 + gis_me +< +tyme + + gmove_cڡ +< + gT +>:: +ty +, + gAayRef +>:: +vue +, + gbo +>::type + +86 +is +() const { + +87  +vIsAay +( +_da +); + +92 + gme + < +tyme + + gT +> + +93 +FORCE_INLINE + +tyme + + gab_if +< + +94 + gis_me +< +tyme + + gmove_cڡ +< + gT +>:: +ty +, + gObjeRef +>:: +vue +, + gbo +>::type + +95 +is +() const { + +96  +vIsObje +( +_da +); + +98 #i +ARDUINOJSON_HAS_NULLPTR + + +101 + gme + < +tyme + + gT +> + +102 +FORCE_INLINE + + +103 +tyme + + gab_if +< + gis_me +< + gT +, +dety +( +nuαr +)>:: +vue +, + gbo +>:: +ty + + +104 +is +() const { + +105  +vIsNu +( +_da +); + +109 + gme + < +tyme + + gT +> + +110 +FORCE_INLINE + +tyme + + gab_if +< + gis_um +< + gT +>:: +vue +, + gbo +>:: +ty + +is +() const { + +111  +vIsIeg +<>( +_da +); + +114 +FORCE_INLINE + +bo + +isNu +() const { + +115  +vIsNu +( +_da +); + +118 +FORCE_INLINE + +bo + +isUndefed +() const { + +119  ! + g_da +; + +122 +FORCE_INLINE + +size_t + +memyUge +() const { + +123  + g_da + ? _da-> +memyUge +() : 0; + +126 +FORCE_INLINE + +size_t + +ág +() const { + +127  + g_da + ? _da-> +ág +() : 0; + +130 +size_t + +size +() const { + +131  +vSize +( +_da +); + +134 + geed +: + +135 +VRefBa +( +TDa + * +da +: +_da +(data) {} + +136 +TDa + * +_da +; + +146 +ass + + gVRef + : +public + +VRefBa +< +VDa +>, + +147 +public + + gVOts +< + gVRef +>, + +148 +public + + gVShtcuts +< + gVRef +>, + +149 +public + + gVisab + { + +150  + gVRefBa +< + tVDa +> + tba_ty +; + +151 +nd + +ass + + gVCڡRef +; + +153 + gpublic +: + +155 +FORCE_INLINE + +VRef +( +MemyPo + * +po +, +VDa + * +da +) + +156 : +ba_ty +( +da +), +_po +( +po +) {} + +159 +FORCE_INLINE + +VRef +(: +ba_ty +(0), +_po +(0) {} + +161 +FORCE_INLINE +  +r +() const { + +162  +vSNu +( +_da +); + +166 + gme + < +tyme + + gT +> + +167 +FORCE_INLINE + +bo + +t +( + +168 +T + +vue +, +tyme + +ab_if +< +is_me +::vue>:: +ty + * = 0) const { + +169  +vSBoޗn +( +_da +, +vue +); + +174 + gme + < +tyme + + gT +> + +175 +FORCE_INLINE + +bo + +t +( + +176 +T + +vue +, + +177 +tyme + +ab_if +< +is_tg_pot +< +T +>:: +vue +>:: +ty + * = 0) const { + +178  +vSFlt +( +_da +, +ic_ +< +Flt +>( +vue +)); + +189 + gme + < +tyme + + gT +> + +190 +FORCE_INLINE + +bo + +t +( + +191 +T + +vue +, +tyme + +ab_if +< +is_gl +::value && + +192 ! +is_me +< +bo +, +T +>:: +vue +>:: +ty + * = 0) const { + +193  +vSIeg +< +T +>( +_da +, +vue +); + +197 +FORCE_INLINE + +bo + +t +( +SlizedVue + +vue +) const { + +198  +vSLkedRaw +( +_da +, +vue +); + +204 + gme + < +tyme + + gT +> + +205 +FORCE_INLINE + +bo + +t +( + +206 +SlizedVue +< +T +> +vue +, + +207 +tyme + +ab_if +:: +vue +>:: +ty + * = 0) const { + +208  +vSOwdRaw +( +_da +, +vue +, +_po +); + +213 + gme + < +tyme + + gT +> + +214 +FORCE_INLINE + +bo + +t +( + +215 cڡ +T + & +vue +, + +216 +tyme + +ab_if +< +IsSg +< +T +>:: +vue +>:: +ty + * = 0) const { + +217  +vSSg +( +_da +, +adtSg +( +vue +), +_po +); + +222 + gme + < +tyme + + gT +> + +223 +FORCE_INLINE + +bo + +t +( + +224 +T + * +vue +, +tyme + +ab_if +< +IsSg +::vue>:: +ty + * = 0) const { + +225  +vSSg +( +_da +, +adtSg +( +vue +), +_po +); + +235 + gme + < +tyme + + gTV +> + +236 +tyme + + gab_if +< + gIsVisab +< + gTV +>:: +vue +, + gbo +>:: +ty + +t +( + +237 cڡ +TV + & +vue +) const; + +240 + gme + < +tyme + + gT +> + +241 +FORCE_INLINE + +bo + +t +( + +242 +T + +vue +, +tyme + +ab_if +< +is_um +::vue>:: +ty + * = 0) const { + +243  +vSIeg +( +_da +, +ic_ +< +Ieg +>( +vue +)); + +246 #i +ARDUINOJSON_HAS_NULLPTR + + +248 +FORCE_INLINE + +bo + +t +( +dety +( +nuαr +)) const { + +249 +vSNu +( +_da +); + +250  + gue +; + +254 + gme + < +tyme + + gT +> + +255 +FORCE_INLINE + +tyme + + gVAs +< + gT +>:: +ty + +as +() const { + +256  +vAs +< +tyme + +VAs +< +T +>:: +ty +>( +_da +, + g_po +); + +259 + gme + < +tyme + + gT +> + +260 +FORCE_INLINE + +ݔ + +T +() const { + +261  + gvAs +< + gT +>( + g_da +, + g_po +); + +264 + gme + < +tyme + + gTVis +> + +265 +tyme + + gTVis +:: +su_ty + +ac +( +TVis + & +vis +) const { + +266  +vAc +( +_da +, +vis +); + +272 + gme + < +tyme + + gT +> + +273 +tyme + + gab_if +< + gis_me +< + gT +, + gAayRef +>:: +vue +, AayRef>:: +ty + +to +() const; + +276 + gme + < +tyme + + gT +> + +277 +tyme + + gab_if +< + gis_me +< + gT +, + gObjeRef +>:: +vue +, ObjeRef>:: +ty + +to +() const; + +280 + gme + < +tyme + + gT +> + +281 +tyme + + gab_if +< + gis_me +< + gT +, + gVRef +>:: +vue +, VRef>:: +ty + +to +() + +284 +VRef + +addEmt +() const; + +286 +FORCE_INLINE + +VRef + +gEmt +( +size_t +) const; + +288 +FORCE_INLINE + +VRef + +gOrAddEmt +( +size_t +) const; + +292 + gme + < +tyme + + gTCh +> + +293 +FORCE_INLINE + +VRef + +gMemb +( +TCh + *) const; + +297 + gme + < +tyme + + gTSg +> + +298 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVRef +>:: +ty + + +299 +gMemb +(cڡ +TSg + &) const; + +304 + gme + < +tyme + + gTCh +> + +305 +FORCE_INLINE + +VRef + +gOrAddMemb +( +TCh + *) const; + +309 + gme + < +tyme + + gTSg +> + +310 +FORCE_INLINE + +VRef + +gOrAddMemb +(cڡ +TSg + &) const; + +312 +FORCE_INLINE +  +move +( +size_t + +dex +) const { + +313 i( + g_da +) + +314 + g_da +-> +move +( +dex +); + +319 + gme + < +tyme + + gTCh +> + +320 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +>:: +ty + +move +( + +321 +TCh + * +key +) const { + +322 i( +_da +) + +323 +_da +-> +move +( +adtSg +( +key +)); + +327 + gme + < +tyme + + gTSg +> + +328 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +>:: +ty + +move +( + +329 cڡ +TSg + & +key +) const { + +330 i( +_da +) + +331 +_da +-> +move +( +adtSg +( +key +)); + +334 + give +: + +335 +MemyPo + * +_po +; + +338 +ass + + gVCڡRef + : +public + +VRefBa +, + +339 +public + + gVOts +< + gVCڡRef +>, + +340 +public + + gVShtcuts +< + gVCڡRef +>, + +341 +public + + gVisab + { + +342  + gVRefBa + + tba_ty +; + +343 +nd + +ass + + gVRef +; + +345 + gpublic +: + +346 +VCڡRef +(: +ba_ty +(0) {} + +347 +VCڡRef +(cڡ +VDa + * +da +: +ba_ty +(data) {} + +348 +VCڡRef +( +VRef + +v +: +ba_ty +(v. +_da +) {} + +350 +me + < +tyme + +TVis +> + +351 +tyme + +TVis +:: +su_ty + +ac +(TVis & +vis +) const { + +352  +vAc +( +_da +, +vis +); + +355 + gme + < +tyme + + gT +> + +356 +FORCE_INLINE + +tyme + + gVCڡAs +< + gT +>:: +ty + +as +() const { + +357  +vAs +< +tyme + +VCڡAs +< +T +>:: +ty +>( +_da +); + +360 + gme + < +tyme + + gT +> + +361 +FORCE_INLINE + +ݔ + +T +() const { + +362  + gvAs +< + gT +>( + g_da +); + +365 +FORCE_INLINE + +VCڡRef + +gEmt +( +size_t +) const; + +367 +FORCE_INLINE + +VCڡRef + + gݔ +[]( +size_t + + gdex +) const { + +368  +gEmt +( +dex +); + +373 + gme + < +tyme + + gTSg +> + +374 +FORCE_INLINE + +VCڡRef + +gMemb +(cڡ +TSg + & +key +) const { + +375  +VCڡRef +( + +376 +objeGMemb +( +vAsObje +( +_da +), +adtSg +( +key +))); + +382 + gme + < +tyme + + gTCh +> + +383 +FORCE_INLINE + +VCڡRef + +gMemb +( +TCh + * +key +) const { + +384 cڡ +CiDa + * + gobj + = +vAsObje +( +_da +); + +385  +VCڡRef +( +obj + ? obj-> +gMemb +( +adtSg +( +key +)) : 0); + +390 + gme + < +tyme + + gTSg +> + +391 +FORCE_INLINE + + +392 +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVCڡRef +>:: +ty + + +393 +ݔ +[](cڡ +TSg + & +key +) const { + +394  +gMemb +( +key +); + +400 + gme + < +tyme + + gTCh +> + +401 +FORCE_INLINE + + +402 +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +, + gVCڡRef +>:: +ty + + +403 +ݔ +[]( +TCh + * +key +) const { + +404  +gMemb +( +key +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantShortcuts.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTV +> + +13 +ass + + gVShtcuts + : +public + +ObjeShtcuts +< +TV +>, + +14 +public + + gAayShtcuts +< + gTV +> { + +15 + gpublic +: + +16 +usg + +AayShtcuts +< +TV +>:: +NeedAay +; + +17 +usg + + gAayShtcuts +< + gTV +>:: +NeedObje +; + +18 +usg + + gAayShtcuts +< + gTV +>:: +ݔ +[]; + +19 +usg + + gObjeShtcuts +< + gTV +>:: +NeedAay +; + +20 +usg + + gObjeShtcuts +< + gTV +>:: +NeedObje +; + +21 +usg + + gObjeShtcuts +< + gTV +>:: +ݔ +[]; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15  + gcdiڮ +<(*<2, + tt8_t +, + tt16_t +>:: + tty + + tVSlDiff +; + +17 as + cVSl + { + +21 +VCڋ + + g_cڋ +; + +22 +ut8_t + + g_ags +; + +23 +VSlDiff + + g_xt +; + +24 cڡ * + g_key +; + +26 + gpublic +: + +33 +VDa +* +da +() { + +34  +t_ +< +VDa +*>(& +_cڋ +); + +37 cڡ +VDa +* +da +() const { + +38  + gt_ +(& + g_cڋ +); + +41 +VSl +* +xt +() { + +42  + g_xt + ? + gthis + + _next : 0; + +45 cڡ +VSl +* +xt +() const { + +46  + gcڡ_ +< + gVSl +*>( + gthis +)-> +xt +(); + +49 +VSl +* +xt +( +size_t + +di +) { + +50 +VSl +* + g + = +this +; + +51  + gdi +--) { + +52 i(! + g +-> + g_xt +) + +54 + g + + + +-> +_xt +; + +56  + g +; + +59 cڡ +VSl +* +xt +( +size_t + +di +) const { + +60  + gcڡ_ +< + gVSl +*>( + gthis +)-> +xt +( +di +); + +63  +tNext +( +VSl +* + +) { + +64 + g_xt + = +VSlDiff +( + + ? sl - +this + : 0); + +67  +tNextNNu +( +VSl +* + +) { + +68 +ARDUINOJSON_ASSERT +( + + != 0); + +69 + g_xt + = +VSlDiff +( + + - +this +); + +72  +tKey +(cڡ * +k +, +age_pics +:: +e_by_cy +) { + +73 +ARDUINOJSON_ASSERT +( +k + ! +NULL +); + +74 + g_ags + | +KEY_IS_OWNED +; + +75 + g_key + = +k +; + +78  +tKey +(cڡ * +k +, +age_pics +:: +e_by_addss +) { + +79 +ARDUINOJSON_ASSERT +( +k + ! +NULL +); + +80 + g_ags + & +VALUE_MASK +; + +81 + g_key + = +k +; + +84 cڡ * +key +() const { + +85  + g_key +; + +88 +bo + +ownsKey +() const { + +89  ( + g_ags + & + gKEY_IS_OWNED +) != 0; + +92  +r +() { + +93 + g_xt + = 0; + +94 + g_ags + = 0; + +95 + g_key + = 0; + +98  +movePors +( +rdiff_t + +rgDi +,diff_ +vDi +) { + +99 i( + g_ags + & + gKEY_IS_OWNED +) + +100 + g_key + + +rgDi +; + +101 i( + g_ags + & + gVALUE_IS_OWNED +) + +102 + g_cڋ +. + gasSg + + +rgDi +; + +103 i( + g_ags + & + gCOLLECTION_MASK +) + +104 + g_cڋ +. + gasCi +. +movePors +( +rgDi +, +vDi +); + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +10 +ass + + gAayRef +; + +11 +ass + + gObjeRef +; + +12 +ass + + gVRef +; + +16 + gme + < +tyme + + gT +> + +17  + sVTo + {}; + +19 + gme + <> + +20  + gVTo +< + gAayRef +> { + +21  +AayRef + + tty +; + +23 + gme + <> + +24  + gVTo +< + gObjeRef +> { + +25  +ObjeRef + + tty +; + +27 + gme + <> + +28  + gVTo +< + gVRef +> { + +29  +VRef + + tty +; + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/compatibility.hpp + +7 #ifde +__GNUC__ + + +9  + #ARDUINOJSON_PRAGMA +( +x + + `_Pgma +(#x) + + ) + +11  + #ARDUINOJSON_COMPILE_ERROR +( +msg + + `ARDUINOJSON_PRAGMA +( +GCC + +r + msg) + + ) + +13  + #ARDUINOJSON_STRINGIFY +( +S +#S + + ) + +15  + #ARDUINOJSON_DEPRECATION_ERROR +( +X +, +Y +) \ + +16 + `ARDUINOJSON_COMPILE_ERROR +( + `ARDUINOJSON_STRINGIFY +( +X + +is + +a + +Y + +om + +ArduoJs + 5. +Pa + +e + +duojs +. +g +/ +upgde + +to + +ˬn + +how +upgd +your + +ogm +ArduoJs +vsi + 6)) + + ) + +18  + #SticJsBufr + + `ARDUINOJSON_DEPRECATION_ERROR +( +SticJsBufr +, +ass +) + + ) + +19  + #DymicJsBufr + + `ARDUINOJSON_DEPRECATION_ERROR +( +DymicJsBufr +, +ass +) + + ) + +20  + #JsBufr + + `ARDUINOJSON_DEPRECATION_ERROR +( +JsBufr +, +ass +) + + ) + +21  + #RawJs + + `ARDUINOJSON_DEPRECATION_ERROR +( +RawJs +, +funi +) + + ) + + @.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/version.hpp + +5 #agm + + + +7  + #ARDUINOJSON_VERSION + "6.17.0" + + ) + +8  + #ARDUINOJSON_VERSION_MAJOR + 6 + + ) + +9  + #ARDUINOJSON_VERSION_MINOR + 17 + + ) + +10  + #ARDUINOJSON_VERSION_REVISION + 0 + + ) + + @.pio/libdeps/esp8266/AsyncMqttClient/examples/FullyFeaturedSSL/src/main.cpp + +6  + ~ + +7  + ~ + +8  + ~ + +9  + ~ + +11  + #WIFI_SSID + "My_Wi-Fi" + + ) + +12  + #WIFI_PASSWORD + "my-awesome-sswd" + + ) + +14  + #MQTT_HOST + + `IPAddss +(192, 168, 1, 10) + + ) + +16 #i +ASYNC_TCP_SSL_ENABLED + + +17  + #MQTT_SECURE + +ue + + + ) + +18  + #MQTT_SERVER_FINGERPRINT + {0x7e, 0x36, 0x22, 0x01, 0xf9, 0x7e, 0x99, 0x2f, 0xc5, 0xdb, 0x3d, 0xbe, 0xac, 0x48, 0x67, 0x5b, 0x5d, 0x47, 0x94, 0xd2} + + ) + +19  + #MQTT_PORT + 8883 + + ) + +21  + #MQTT_PORT + 1883 + + ) + +24 +AsyncMqCl + + gmqCl +; + +25 +Tick + + gmqRecTim +; + +27 +WiFiEvtHdr + + gwifiCHdr +; + +28 +WiFiEvtHdr + + gwifiDiscHdr +; + +29 +Tick + + gwifiRecTim +; + +31  + $cToWifi +() { + +32 +Sl +. + `n +("Connectingo Wi-Fi..."); + +33 +WiFi +. + `beg +( +WIFI_SSID +, +WIFI_PASSWORD +); + +34 + } +} + +36  + $cToMq +() { + +37 +Sl +. + `n +("Connectingo MQTT..."); + +38 +mqCl +. + `c +(); + +39 + } +} + +41  + $WifiC +(cڡ +WiFiEvtStiModeGIP +& +evt +) { + +42 +Sl +. + `n +("Connectedo Wi-Fi."); + +43 + `cToMq +(); + +44 + } +} + +46  + $WifiDisc +(cڡ +WiFiEvtStiModeDisced +& +evt +) { + +47 +Sl +. + `n +("Disconnected from Wi-Fi."); + +48 +mqRecTim +. + `dach +(); + +49 +wifiRecTim +. + ` +(2, +cToWifi +); + +50 + } +} + +52  + $MqC +( +bo + +ssiP +) { + +53 +Sl +. + `n +("Connectedo MQTT."); + +54 +Sl +. + `t +("Sessionresent: "); + +55 +Sl +. + `n +( +ssiP +); + +56 +ut16_t + +ckIdSub + = +mqCl +. + `subsibe +("test/lol", 2); + +57 +Sl +. + `t +("Subscribingt QoS 2,acketId: "); + +58 +Sl +. + `n +( +ckIdSub +); + +59 +mqCl +. + `publish +("/l", 0, +ue +, "test 1"); + +60 +Sl +. + `n +("Publishingt QoS 0"); + +61 +ut16_t + +ckIdPub1 + = +mqCl +. + `publish +("/l", 1, +ue +, "test 2"); + +62 +Sl +. + `t +("Publishingt QoS 1,acketId: "); + +63 +Sl +. + `n +( +ckIdPub1 +); + +64 +ut16_t + +ckIdPub2 + = +mqCl +. + `publish +("/l", 2, +ue +, "test 3"); + +65 +Sl +. + `t +("Publishingt QoS 2,acketId: "); + +66 +Sl +. + `n +( +ckIdPub2 +); + +67 + } +} + +69  + $MqDisc +( +AsyncMqClDiscRs + +as +) { + +70 +Sl +. + `n +("Disconnected from MQTT."); + +72 i( +as + = +AsyncMqClDiscRs +:: +TLS_BAD_FINGERPRINT +) { + +73 +Sl +. + `n +("Bad server fingerprint."); + +76 i( +WiFi +. + `isCed +()) { + +77 +mqRecTim +. + ` +(2, +cToMq +); + +79 + } +} + +81  + $MqSubsibe +( +ut16_t + +ckId +, +ut8_t + +qos +) { + +82 +Sl +. + `n +("Subscribecknowledged."); + +83 +Sl +. + `t +("acketId: "); + +84 +Sl +. + `n +( +ckId +); + +85 +Sl +. + `t +(" qos: "); + +86 +Sl +. + `n +( +qos +); + +87 + } +} + +89  + $MqUnsubsibe +( +ut16_t + +ckId +) { + +90 +Sl +. + `n +("Unsubscribecknowledged."); + +91 +Sl +. + `t +("acketId: "); + +92 +Sl +. + `n +( +ckId +); + +93 + } +} + +95  + $MqMesge +(* +tic +, * +yld +, +AsyncMqClMesgePrݔts + +ݔts +, +size_t + +n +, size_ +dex +, size_ +tٮ +) { + +96 +Sl +. + `n +("Publisheceived."); + +97 +Sl +. + `t +("opic: "); + +98 +Sl +. + `n +( +tic +); + +99 +Sl +. + `t +(" qos: "); + +100 +Sl +. + `n +( +ݔts +. +qos +); + +101 +Sl +. + `t +(" dup: "); + +102 +Sl +. + `n +( +ݔts +. +dup +); + +103 +Sl +. + `t +("etain: "); + +104 +Sl +. + `n +( +ݔts +. + +); + +105 +Sl +. + `t +("en: "); + +106 +Sl +. + `n +( +n +); + +107 +Sl +. + `t +(" index: "); + +108 +Sl +. + `n +( +dex +); + +109 +Sl +. + `t +("otal: "); + +110 +Sl +. + `n +( +tٮ +); + +111 + } +} + +113  + $MqPublish +( +ut16_t + +ckId +) { + +114 +Sl +. + `n +("Publishcknowledged."); + +115 +Sl +. + `t +("acketId: "); + +116 +Sl +. + `n +( +ckId +); + +117 + } +} + +119  + $tup +() { + +120 +Sl +. + `beg +(115200); + +121 +Sl +. + `n +(); + +122 +Sl +. + `n +(); + +124 +wifiCHdr + = +WiFi +. + `StiModeGIP +( +WifiC +); + +125 +wifiDiscHdr + = +WiFi +. + `StiModeDisced +( +WifiDisc +); + +127 +mqCl +. + `C +( +MqC +); + +128 +mqCl +. + `Disc +( +MqDisc +); + +129 +mqCl +. + `Subsibe +( +MqSubsibe +); + +130 +mqCl +. + `Unsubsibe +( +MqUnsubsibe +); + +131 +mqCl +. + `Mesge +( +MqMesge +); + +132 +mqCl +. + `Publish +( +MqPublish +); + +133 +mqCl +. + `tSv +( +MQTT_HOST +, +MQTT_PORT +); + +134 #i +ASYNC_TCP_SSL_ENABLED + + +135 +mqCl +. + `tSecu +( +MQTT_SECURE +); + +136 i( +MQTT_SECURE +) { + +137 +mqCl +. + `addSvFgt +((cڡ +ut8_t +[]) +MQTT_SERVER_FINGERPRINT +); + +141 + `cToWifi +(); + +142 + } +} + +144  + $lo +() { + +145 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.cpp + +1  + ~"AsyncMqCl.h +" + +3 + gAsyncMqCl +:: + $AsyncMqCl +() + +4 : + `_ced +( +l +) + +5 , + `_cPackNEnoughS +( +l +) + +6 , + `_discOnPl +( +l +) + +7 , + `_sBadFgt +( +l +) + +8 , + `_ϡClAivy +(0) + +9 , + `_ϡSvAivy +(0) + +10 , + `_ϡPgRequeTime +(0) + +11 , + `_ho +( +nuαr +) + +12 , + $_uIp +( +l +) + +13 #i +ASYNC_TCP_SSL_ENABLED + + +14 , + $_cu +( +l +) + +16 , + `_pt +(0) + +17 , + `_kpAlive +(15) + +18 , + `_nSessi +( +ue +) + +19 , + `_Id +( +nuαr +) + +20 , + `_uame +( +nuαr +) + +21 , + `_sswd +( +nuαr +) + +22 , + `_wlTic +( +nuαr +) + +23 , + `_wlPayld +( +nuαr +) + +24 , + `_wlPayldLgth +(0) + +25 , + `_wlQos +(0) + +26 , + `_wlRa +( +l +) + +27 , +_rsgInfmi + { . +bufrS + = +AsyncMqClIls +:: +BufrS +:: +NONE + + } +} + +28 , +_cutPdPack +( +nuαr +) + +29 , +_magLgthBufrPosi +(0) + +30 , + $_xtPackId +(1) { + +31 +_ +. + `C +([](* +obj +, +AsyncCl +* +c +{ ( +ic_ +< +AsyncMqCl +*>(obj))-> + `_C +(c); }, +this +); + +32 +_ +. + `Disc +([](* +obj +, +AsyncCl +* +c +{ ( +ic_ +< +AsyncMqCl +*>(obj))-> + `_Disc +(c); }, +this +); + +33 +_ +. + `E +([](* +obj +, +AsyncCl +* +c +, +t8_t + +r +{ ( +ic_ +< +AsyncMqCl +*>(obj))-> + `_E +(c,); }, +this +); + +34 +_ +. + `Timeout +([](* +obj +, +AsyncCl +* +c +, +ut32_t + +time +{ ( +ic_ +< +AsyncMqCl +*>(obj))-> + `_Timeout +(c,ime); }, +this +); + +35 +_ +. + `Ack +([](* +obj +, +AsyncCl +* +c +, +size_t + +n +, +ut32_t + +time +{ ( +ic_ +< +AsyncMqCl +*>(obj))-> + `_Ack +(c,,ime); }, +this +); + +36 +_ +. + `Da +([](* +obj +, +AsyncCl +* +c +, * +da +, +size_t + +n +{ ( +ic_ +< +AsyncMqCl +*>(obj))-> + `_Da +(c, stic_<*>(da),); }, +this +); + +37 +_ +. + `Pl +([](* +obj +, +AsyncCl +* +c +{ ( +ic_ +< +AsyncMqCl +*>(obj))-> + `_Pl +(c); }, +this +); + +39 #ifde +ESP32 + + +40 + `rtf +( +_gedClId +, "e32-%06x", +ESP +. + `gEfuMac +()); + +41 +_xSemhe + = + `xSemheCeMux +(); + +42 #i + `defed +( +ESP8266 +) + +43 + `rtf +( +_gedClId +, "e8266-%06x", +ESP +. + `gChId +()); + +45 +_Id + = +_gedClId +; + +47 + `tMaxTicLgth +(128); + +48 + } +} + +50 + gAsyncMqCl +::~ + $AsyncMqCl +() { + +51 +de + +_cutPdPack +; + +52 +de +[] +_rsgInfmi +. +ticBufr +; + +53 #ifde +ESP32 + + +54 + `vSemheDe +( +_xSemhe +); + +56 + } +} + +58 + gAsyncMqCl +& AsyncMqCl:: + $tKpAlive +( +ut16_t + +kpAlive +) { + +59 +_kpAlive + = +kpAlive +; + +60  * +this +; + +61 + } +} + +63 + gAsyncMqCl +& AsyncMqCl:: + $tClId +(cڡ * +Id +) { + +64 +_Id + = +Id +; + +65  * +this +; + +66 + } +} + +68 + gAsyncMqCl +& AsyncMqCl:: + $tC˪Sessi +( +bo + +nSessi +) { + +69 +_nSessi + = +nSessi +; + +70  * +this +; + +71 + } +} + +73 + gAsyncMqCl +& AsyncMqCl:: + $tMaxTicLgth +( +ut16_t + +maxTicLgth +) { + +74 +_rsgInfmi +. +maxTicLgth + = maxTopicLength; + +75 +de +[] +_rsgInfmi +. +ticBufr +; + +76 +_rsgInfmi +. +ticBufr + = +w + [ +maxTicLgth + + 1]; + +77  * +this +; + +78 + } +} + +80 + gAsyncMqCl +& AsyncMqCl:: + $tCdtls +(cڡ * +uame +, cڡ * +sswd +) { + +81 +_uame + = +uame +; + +82 +_sswd + = +sswd +; + +83  * +this +; + +84 + } +} + +86 + gAsyncMqCl +& AsyncMqCl:: + $tWl +(cڡ * +tic +, +ut8_t + +qos +, +bo + + +, cڡ * +yld +, +size_t + +ngth +) { + +87 +_wlTic + = +tic +; + +88 +_wlQos + = +qos +; + +89 +_wlRa + = + +; + +90 +_wlPayld + = +yld +; + +91 +_wlPayldLgth + = +ngth +; + +92  * +this +; + +93 + } +} + +95 + gAsyncMqCl +& AsyncMqCl:: + $tSv +( +IPAddss + + +, +ut16_t + +pt +) { + +96 +_uIp + = +ue +; + +97 +_ + = + +; + +98 +_pt + = +pt +; + +99  * +this +; + +100 + } +} + +102 + gAsyncMqCl +& AsyncMqCl:: + $tSv +(cڡ * +ho +, +ut16_t + +pt +) { + +103 +_uIp + = +l +; + +104 +_ho + = +ho +; + +105 +_pt + = +pt +; + +106  * +this +; + +107 + } +} + +109 #i +ASYNC_TCP_SSL_ENABLED + + +110 + gAsyncMqCl +& AsyncMqCl:: + $tSecu +( +bo + +cu +) { + +111 +_cu + = +cu +; + +112  * +this +; + +113 + } +} + +115 + gAsyncMqCl +& AsyncMqCl:: + $addSvFgt +(cڡ +ut8_t +* +fgt +) { + +116 +d +:: +y +< +ut8_t +, +SHA1_SIZE +> +wFgt +; + +117 + `memy +( +wFgt +. + `da +(), +fgt +, +SHA1_SIZE +); + +118 +_cuSvFgts +. + `push_back +( +wFgt +); + +119  * +this +; + +120 + } +} + +123 + gAsyncMqCl +& AsyncMqCl:: + $C +( +AsyncMqClIls +:: +OnCUrClback + +back +) { + +124 +_CUrClbacks +. + `push_back +( +back +); + +125  * +this +; + +126 + } +} + +128 + gAsyncMqCl +& AsyncMqCl:: + $Disc +( +AsyncMqClIls +:: +OnDiscUrClback + +back +) { + +129 +_DiscUrClbacks +. + `push_back +( +back +); + +130  * +this +; + +131 + } +} + +133 + gAsyncMqCl +& AsyncMqCl:: + $Subsibe +( +AsyncMqClIls +:: +OnSubsibeUrClback + +back +) { + +134 +_SubsibeUrClbacks +. + `push_back +( +back +); + +135  * +this +; + +136 + } +} + +138 + gAsyncMqCl +& AsyncMqCl:: + $Unsubsibe +( +AsyncMqClIls +:: +OnUnsubsibeUrClback + +back +) { + +139 +_UnsubsibeUrClbacks +. + `push_back +( +back +); + +140  * +this +; + +141 + } +} + +143 + gAsyncMqCl +& AsyncMqCl:: + $Mesge +( +AsyncMqClIls +:: +OnMesgeUrClback + +back +) { + +144 +_MesgeUrClbacks +. + `push_back +( +back +); + +145  * +this +; + +146 + } +} + +148 + gAsyncMqCl +& AsyncMqCl:: + $Publish +( +AsyncMqClIls +:: +OnPublishUrClback + +back +) { + +149 +_PublishUrClbacks +. + `push_back +( +back +); + +150  * +this +; + +151 + } +} + +153  + gAsyncMqCl +:: + $_CutPdPack +() { + +154 +de + +_cutPdPack +; + +155 +_cutPdPack + = +nuαr +; + +156 + } +} + +158  + gAsyncMqCl +:: + $_r +() { + +159 +_ϡPgRequeTime + = 0; + +160 +_ced + = +l +; + +161 +_discOnPl + = +l +; + +162 +_cPackNEnoughS + = +l +; + +163 +_sBadFgt + = +l +; + +164 + `_CutPdPack +(); + +166 +_ndgPubRs +. + `r +(); + +167 +_ndgPubRs +. + `shrk_to_f +(); + +169 +_toSdAcks +. + `r +(); + +170 +_toSdAcks +. + `shrk_to_f +(); + +172 +_xtPackId + = 1; + +173 +_rsgInfmi +. +bufrS + = +AsyncMqClIls +:: +BufrS +:: +NONE +; + +174 + } +} + +177  + gAsyncMqCl +:: + $_C +( +AsyncCl +* + +) { + +178 () + +; + +180 #i +ASYNC_TCP_SSL_ENABLED + + +181 i( +_cu + && +_cuSvFgts +. + `size +() > 0) { + +182 +SSL +* +S + = +_ +. + `gSSL +(); + +184 +bo + +sFoundFgt + = +l +; + +185  +d +:: +y +< +ut8_t +, +SHA1_SIZE +> +fgt + : +_cuSvFgts +) { + +186 i( + `s_mch_fgt +( +S +, +fgt +. + `da +()= +SSL_OK +) { + +187 +sFoundFgt + = +ue +; + +192 i(! +sFoundFgt +) { + +193 +_sBadFgt + = +ue +; + +194 +_ +. + `o +( +ue +); + +200  +fixedHd +[5]; + +201 +fixedHd +[0] = +AsyncMqClIls +:: +PackTy +. +CONNECT +; + +202 +fixedHd +[0] = fixedHeader[0] << 4; + +203 +fixedHd +[0] = fixedHd[0] | +AsyncMqClIls +:: +HdFg +. +CONNECT_RESERVED +; + +205 +ut16_t + +ocNameLgth + = 4; + +206  +ocNameLgthBys +[2]; + +207 +ocNameLgthBys +[0] = +ocNameLgth + >> 8; + +208 +ocNameLgthBys +[1] = +ocNameLgth + & 0xFF; + +210  +ocLev +[1]; + +211 +ocLev +[0] = 0x04; + +213  +cFgs +[1]; + +214 +cFgs +[0] = 0; + +215 i( +_nSessi + +cFgs +[0] | +AsyncMqClIls +:: +CFg +. +CLEAN_SESSION +; + +216 i( +_uame + ! +nuαr + +cFgs +[0] | +AsyncMqClIls +:: +CFg +. +USERNAME +; + +217 i( +_sswd + ! +nuαr + +cFgs +[0] | +AsyncMqClIls +:: +CFg +. +PASSWORD +; + +218 i( +_wlTic + ! +nuαr +) { + +219 +cFgs +[0] | +AsyncMqClIls +:: +CFg +. +WILL +; + +220 i( +_wlRa + +cFgs +[0] | +AsyncMqClIls +:: +CFg +. +WILL_RETAIN +; + +221  +_wlQos +) { + +223 +cFgs +[0] | +AsyncMqClIls +:: +CFg +. +WILL_QOS0 +; + +226 +cFgs +[0] | +AsyncMqClIls +:: +CFg +. +WILL_QOS1 +; + +229 +cFgs +[0] | +AsyncMqClIls +:: +CFg +. +WILL_QOS2 +; + +234  +kpAliveBys +[2]; + +235 +kpAliveBys +[0] = +_kpAlive + >> 8; + +236 +kpAliveBys +[1] = +_kpAlive + & 0xFF; + +238 +ut16_t + +IdLgth + = + ` +( +_Id +); + +239  +IdLgthBys +[2]; + +240 +IdLgthBys +[0] = +IdLgth + >> 8; + +241 +IdLgthBys +[1] = +IdLgth + & 0xFF; + +244 +ut16_t + +wlTicLgth + = 0; + +245  +wlTicLgthBys +[2]; + +246 +ut16_t + +wlPayldLgth + = +_wlPayldLgth +; + +247  +wlPayldLgthBys +[2]; + +248 i( +_wlTic + ! +nuαr +) { + +249 +wlTicLgth + = + ` +( +_wlTic +); + +250 +wlTicLgthBys +[0] = +wlTicLgth + >> 8; + +251 +wlTicLgthBys +[1] = +wlTicLgth + & 0xFF; + +253 i( +_wlPayld + ! +nuαr + && +wlPayldLgth + =0wlPayldLgth = + ` +(_willPayload); + +255 +wlPayldLgthBys +[0] = +wlPayldLgth + >> 8; + +256 +wlPayldLgthBys +[1] = +wlPayldLgth + & 0xFF; + +259 +ut16_t + +uameLgth + = 0; + +260  +uameLgthBys +[2]; + +261 i( +_uame + ! +nuαr +) { + +262 +uameLgth + = + ` +( +_uame +); + +263 +uameLgthBys +[0] = +uameLgth + >> 8; + +264 +uameLgthBys +[1] = +uameLgth + & 0xFF; + +267 +ut16_t + +sswdLgth + = 0; + +268  +sswdLgthBys +[2]; + +269 i( +_sswd + ! +nuαr +) { + +270 +sswdLgth + = + ` +( +_sswd +); + +271 +sswdLgthBys +[0] = +sswdLgth + >> 8; + +272 +sswdLgthBys +[1] = +sswdLgth + & 0xFF; + +275 +ut32_t + +magLgth + = 2 + +ocNameLgth + + 1 + 1 + 2 + 2 + +IdLgth +; + +276 i( +_wlTic + ! +nuαr + +magLgth + +2 + +wlTicLgth + + 2 + +wlPayldLgth +; + +277 i( +_uame + ! +nuαr + +magLgth + +2 + +uameLgth +; + +278 i( +_sswd + ! +nuαr + +magLgth + +2 + +sswdLgth +; + +279 +ut8_t + +magLgthLgth + = +AsyncMqClIls +:: +Hrs +:: + `codeRemagLgth +( +magLgth +, +fixedHd + + 1); + +281 +ut32_t + +ededS + = 1 + +magLgthLgth +; + +282 +ededS + += 2; + +283 +ededS + + +ocNameLgth +; + +284 +ededS + += 1; + +285 +ededS + += 1; + +286 +ededS + += 2; + +287 +ededS + += 2; + +288 +ededS + + +IdLgth +; + +289 i( +_wlTic + ! +nuαr +) { + +290 +ededS + += 2; + +291 +ededS + + +wlTicLgth +; + +293 +ededS + += 2; + +294 i( +_wlPayld + ! +nuαr + +ededS + + +wlPayldLgth +; + +296 i( +_uame + ! +nuαr +) { + +297 +ededS + += 2; + +298 +ededS + + +uameLgth +; + +300 i( +_sswd + ! +nuαr +) { + +301 +ededS + += 2; + +302 +ededS + + +sswdLgth +; + +305 + `SEMAPHORE_TAKE +(); + +306 i( +_ +. + `a +(< +ededS +) { + +307 +_cPackNEnoughS + = +ue +; + +308 +_ +. + `o +( +ue +); + +309 + `SEMAPHORE_GIVE +(); + +313 +_ +. + `add +( +fixedHd +, 1 + +magLgthLgth +); + +316  +ndbufr +[12]; + +317 +ndbufr +[0] = +ocNameLgthBys +[0]; + +318 +ndbufr +[1] = +ocNameLgthBys +[1]; + +320 +ndbufr +[2] = 'M'; + +321 +ndbufr +[3] = 'Q'; + +322 +ndbufr +[4] = 'T'; + +323 +ndbufr +[5] = 'T'; + +325 +ndbufr +[6] = +ocLev +[0]; + +326 +ndbufr +[7] = +cFgs +[0]; + +327 +ndbufr +[8] = +kpAliveBys +[0]; + +328 +ndbufr +[9] = +kpAliveBys +[1]; + +329 +ndbufr +[10] = +IdLgthBys +[0]; + +330 +ndbufr +[11] = +IdLgthBys +[1]; + +332 +_ +. + `add +( +ndbufr +, 12); + +334 +_ +. + `add +( +_Id +, +IdLgth +); + +335 i( +_wlTic + ! +nuαr +) { + +336 +_ +. + `add +( +wlTicLgthBys +, 2); + +337 +_ +. + `add +( +_wlTic +, +wlTicLgth +); + +339 +_ +. + `add +( +wlPayldLgthBys +, 2); + +340 i( +_wlPayld + ! +nuαr + +_ +. + `add +(_wlPayld, +wlPayldLgth +); + +342 i( +_uame + ! +nuαr +) { + +343 +_ +. + `add +( +uameLgthBys +, 2); + +344 +_ +. + `add +( +_uame +, +uameLgth +); + +346 i( +_sswd + ! +nuαr +) { + +347 +_ +. + `add +( +sswdLgthBys +, 2); + +348 +_ +. + `add +( +_sswd +, +sswdLgth +); + +350 +_ +. + `nd +(); + +351 +_ϡClAivy + = + `mlis +(); + +352 + `SEMAPHORE_GIVE +(); + +353 + } +} + +355  + gAsyncMqCl +:: + $_Disc +( +AsyncCl +* + +) { + +356 () + +; + +357 +AsyncMqClDiscRs + +as +; + +359 i( +_cPackNEnoughS +) { + +360 +as + = +AsyncMqClDiscRs +:: +ESP8266_NOT_ENOUGH_SPACE +; + +361 } i( +_sBadFgt +) { + +362 +as + = +AsyncMqClDiscRs +:: +TLS_BAD_FINGERPRINT +; + +364 +as + = +AsyncMqClDiscRs +:: +TCP_DISCONNECTED +; + +367 + `_r +(); + +369 aut +back + : +_DiscUrClbacks + + `back +( +as +); + +370 + } +} + +372  + gAsyncMqCl +:: + $_E +( +AsyncCl +* + +, +t8_t + +r +) { + +373 () + +; + +374 () +r +; + +376 + } +} + +378  + gAsyncMqCl +:: + $_Timeout +( +AsyncCl +* + +, +ut32_t + +time +) { + +379 () + +; + +380 () +time +; + +382 + } +} + +384  + gAsyncMqCl +:: + $_Ack +( +AsyncCl +* + +, +size_t + +n +, +ut32_t + +time +) { + +385 () + +; + +386 () +n +; + +387 () +time +; + +388 + } +} + +390  + gAsyncMqCl +:: + $_Da +( +AsyncCl +* + +, * +da +, +size_t + +n +) { + +391 () + +; + +392 +size_t + +cutByPosi + = 0; + +393  +cutBy +; + +395  +_rsgInfmi +. +bufrS +) { + +396  +AsyncMqClIls +:: +BufrS +:: +NONE +: + +397 +cutBy + = +da +[ +cutByPosi +++]; + +398 +_rsgInfmi +. +ckTy + = +cutBy + >> 4; + +399 +_rsgInfmi +. +ckFgs + = ( +cutBy + << 4) >> 4; + +400 +_rsgInfmi +. +bufrS + = +AsyncMqClIls +:: +BufrS +:: +REMAINING_LENGTH +; + +401 +_ϡSvAivy + = + `mlis +(); + +402  +_rsgInfmi +. +ckTy +) { + +403  +AsyncMqClIls +:: +PackTy +. +CONNACK +: + +404 +_cutPdPack + = +w + +AsyncMqClIls +:: + `CnAckPack +(& +_rsgInfmi +, +d +:: + `bd +(& +AsyncMqCl +:: +_CnAck +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +)); + +406  +AsyncMqClIls +:: +PackTy +. +PINGRESP +: + +407 +_cutPdPack + = +w + +AsyncMqClIls +:: + `PgRePack +(& +_rsgInfmi +, +d +:: + `bd +(& +AsyncMqCl +:: +_PgRe +, +this +)); + +409  +AsyncMqClIls +:: +PackTy +. +SUBACK +: + +410 +_cutPdPack + = +w + +AsyncMqClIls +:: + `SubAckPack +(& +_rsgInfmi +, +d +:: + `bd +(& +AsyncMqCl +:: +_SubAck +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +)); + +412  +AsyncMqClIls +:: +PackTy +. +UNSUBACK +: + +413 +_cutPdPack + = +w + +AsyncMqClIls +:: + `UnsubAckPack +(& +_rsgInfmi +, +d +:: + `bd +(& +AsyncMqCl +:: +_UnsubAck +, +this +, std:: +ahds +:: +_1 +)); + +415  +AsyncMqClIls +:: +PackTy +. +PUBLISH +: + +416 +_cutPdPack + = +w + +AsyncMqClIls +:: + `PublishPack +(& +_rsgInfmi +, +d +:: + `bd +(& +AsyncMqCl +:: +_Mesge +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +, std::ahds:: +_3 +, std::ahds:: +_4 +, std::ahds:: +_5 +, std::ahds:: +_6 +, std::ahds:: +_7 +, std::ahds:: +_8 +, std::ahds:: +_9 +), std::bd(&AsyncMqCl:: +_Publish +,his, std::placeholders::_1, std::placeholders::_2)); + +418  +AsyncMqClIls +:: +PackTy +. +PUBREL +: + +419 +_cutPdPack + = +w + +AsyncMqClIls +:: + `PubRPack +(& +_rsgInfmi +, +d +:: + `bd +(& +AsyncMqCl +:: +_PubR +, +this +, std:: +ahds +:: +_1 +)); + +421  +AsyncMqClIls +:: +PackTy +. +PUBACK +: + +422 +_cutPdPack + = +w + +AsyncMqClIls +:: + `PubAckPack +(& +_rsgInfmi +, +d +:: + `bd +(& +AsyncMqCl +:: +_PubAck +, +this +, std:: +ahds +:: +_1 +)); + +424  +AsyncMqClIls +:: +PackTy +. +PUBREC +: + +425 +_cutPdPack + = +w + +AsyncMqClIls +:: + `PubRecPack +(& +_rsgInfmi +, +d +:: + `bd +(& +AsyncMqCl +:: +_PubRec +, +this +, std:: +ahds +:: +_1 +)); + +427  +AsyncMqClIls +:: +PackTy +. +PUBCOMP +: + +428 +_cutPdPack + = +w + +AsyncMqClIls +:: + `PubCompPack +(& +_rsgInfmi +, +d +:: + `bd +(& +AsyncMqCl +:: +_PubComp +, +this +, std:: +ahds +:: +_1 +)); + +434  +AsyncMqClIls +:: +BufrS +:: +REMAINING_LENGTH +: + +435 +cutBy + = +da +[ +cutByPosi +++]; + +436 +_magLgthBufr +[ +_magLgthBufrPosi +++] = +cutBy +; + +437 i( +cutBy + >> 7 == 0) { + +438 +_rsgInfmi +. +magLgth + = +AsyncMqClIls +:: +Hrs +:: + `decodeRemagLgth +( +_magLgthBufr +); + +439 +_magLgthBufrPosi + = 0; + +440 i( +_rsgInfmi +. +magLgth + > 0) { + +441 +_rsgInfmi +. +bufrS + = +AsyncMqClIls +:: +BufrS +:: +VARIABLE_HEADER +; + +444 +_rsgInfmi +. +bufrS + = +AsyncMqClIls +:: +BufrS +:: +NONE +; + +445 + `_PgRe +(); + +449  +AsyncMqClIls +:: +BufrS +:: +VARIABLE_HEADER +: + +450 +_cutPdPack +-> + `rVbHd +( +da +, +n +, & +cutByPosi +); + +452  +AsyncMqClIls +:: +BufrS +:: +PAYLOAD +: + +453 +_cutPdPack +-> + `rPayld +( +da +, +n +, & +cutByPosi +); + +456 +cutByPosi + = +n +; + +458 }  +cutByPosi + ! +n +); + +459 + } +} + +461  + gAsyncMqCl +:: + $_Pl +( +AsyncCl +* + +) { + +462 i(! +_ced +) ; + +465 i( +_ϡPgRequeTime + !0 && ( + `mlis +(- _ϡPgRequeTime>( +_kpAlive + * 1000 * 2)) { + +466 + `disc +(); + +469 } i( +_ϡPgRequeTime + =0 && ( + `mlis +(- +_ϡClAivy +>( +_kpAlive + * 1000 * 0.7)) { + +470 + `_ndPg +(); + +473 } i( +_ced + && +_ϡPgRequeTime + =0 && ( + `mlis +(- +_ϡSvAivy +>( +_kpAlive + * 1000 * 0.7)) { + +474 + `_ndPg +(); + +480 + `_ndAcks +(); + +484 i( +_discOnPl +) { + +485 + `_ndDisc +(); + +487 + } +} + +490  + gAsyncMqCl +:: + $_PgRe +() { + +491 + `_CutPdPack +(); + +492 +_ϡPgRequeTime + = 0; + +493 + } +} + +495  + gAsyncMqCl +:: + $_CnAck +( +bo + +ssiP +, +ut8_t + +cRuCode +) { + +496 () +ssiP +; + +497 + `_CutPdPack +(); + +499 i( +cRuCode + == 0) { + +500 +_ced + = +ue +; + +501 aut +back + : +_CUrClbacks + + `back +( +ssiP +); + +505 + } +} + +507  + gAsyncMqCl +:: + $_SubAck +( +ut16_t + +ckId +,  +us +) { + +508 + `_CutPdPack +(); + +510 aut +back + : +_SubsibeUrClbacks + + `back +( +ckId +, +us +); + +511 + } +} + +513  + gAsyncMqCl +:: + $_UnsubAck +( +ut16_t + +ckId +) { + +514 + `_CutPdPack +(); + +516 aut +back + : +_UnsubsibeUrClbacks + + `back +( +ckId +); + +517 + } +} + +519  + gAsyncMqCl +:: + $_Mesge +(* +tic +, * +yld +, +ut8_t + +qos +, +bo + +dup +, bo + +, +size_t + +n +, size_ +dex +, size_ +tٮ +, +ut16_t + +ckId +) { + +520 +bo + +nifyPublish + = +ue +; + +522 i( +qos + == 2) { + +523  +AsyncMqClIls +:: +PdgPubR + +ndgPubR + : +_ndgPubRs +) { + +524 i( +ndgPubR +. +ckId + ==acketId) { + +525 +nifyPublish + = +l +; + +531 i( +nifyPublish +) { + +532 +AsyncMqClMesgePrݔts + +ݔts +; + +533 +ݔts +. +qos + = qos; + +534 +ݔts +. +dup + = dup; + +535 +ݔts +. + + =etain; + +537 aut +back + : +_MesgeUrClbacks + + `back +( +tic +, +yld +, +ݔts +, +n +, +dex +, +tٮ +); + +539 + } +} + +541  + gAsyncMqCl +:: + $_Publish +( +ut16_t + +ckId +, +ut8_t + +qos +) { + +542 +AsyncMqClIls +:: +PdgAck + +ndgAck +; + +544 i( +qos + == 1) { + +545 +ndgAck +. +ckTy + = +AsyncMqClIls +:: +PackTy +. +PUBACK +; + +546 +ndgAck +. +hdFg + = +AsyncMqClIls +:: +HdFg +. +PUBACK_RESERVED +; + +547 +ndgAck +. +ckId + =acketId; + +548 +_toSdAcks +. + `push_back +( +ndgAck +); + +549 } i( +qos + == 2) { + +550 +ndgAck +. +ckTy + = +AsyncMqClIls +:: +PackTy +. +PUBREC +; + +551 +ndgAck +. +hdFg + = +AsyncMqClIls +:: +HdFg +. +PUBREC_RESERVED +; + +552 +ndgAck +. +ckId + =acketId; + +553 +_toSdAcks +. + `push_back +( +ndgAck +); + +555 +bo + +pubRAwag + = +l +; + +556  +AsyncMqClIls +:: +PdgPubR + +ndgPubR + : +_ndgPubRs +) { + +557 i( +ndgPubR +. +ckId + ==acketId) { + +558 +pubRAwag + = +ue +; + +563 i(! +pubRAwag +) { + +564 +AsyncMqClIls +:: +PdgPubR + +ndgPubR +; + +565 +ndgPubR +. +ckId + =acketId; + +566 +_ndgPubRs +. + `push_back +( +ndgPubR +); + +569 + `_ndAcks +(); + +572 + `_CutPdPack +(); + +573 + } +} + +575  + gAsyncMqCl +:: + $_PubR +( +ut16_t + +ckId +) { + +576 + `_CutPdPack +(); + +578 +AsyncMqClIls +:: +PdgAck + +ndgAck +; + +579 +ndgAck +. +ckTy + = +AsyncMqClIls +:: +PackTy +. +PUBCOMP +; + +580 +ndgAck +. +hdFg + = +AsyncMqClIls +:: +HdFg +. +PUBCOMP_RESERVED +; + +581 +ndgAck +. +ckId + =acketId; + +582 +_toSdAcks +. + `push_back +( +ndgAck +); + +584  +size_t + +i + = 0; i < +_ndgPubRs +. + `size +(); i++) { + +585 i( +_ndgPubRs +[ +i +]. +ckId + ==acketId) { + +586 +_ndgPubRs +. + `a +(_ndgPubRs. + `beg +(+ +i +); + +587 +_ndgPubRs +. + `shrk_to_f +(); + +591 + `_ndAcks +(); + +592 + } +} + +594  + gAsyncMqCl +:: + $_PubAck +( +ut16_t + +ckId +) { + +595 + `_CutPdPack +(); + +597 aut +back + : +_PublishUrClbacks + + `back +( +ckId +); + +598 + } +} + +600  + gAsyncMqCl +:: + $_PubRec +( +ut16_t + +ckId +) { + +601 + `_CutPdPack +(); + +603 +AsyncMqClIls +:: +PdgAck + +ndgAck +; + +604 +ndgAck +. +ckTy + = +AsyncMqClIls +:: +PackTy +. +PUBREL +; + +605 +ndgAck +. +hdFg + = +AsyncMqClIls +:: +HdFg +. +PUBREL_RESERVED +; + +606 +ndgAck +. +ckId + =acketId; + +607 +_toSdAcks +. + `push_back +( +ndgAck +); + +609 + `_ndAcks +(); + +610 + } +} + +612  + gAsyncMqCl +:: + $_PubComp +( +ut16_t + +ckId +) { + +613 + `_CutPdPack +(); + +615 aut +back + : +_PublishUrClbacks + + `back +( +ckId +); + +616 + } +} + +618 +bo + + gAsyncMqCl +:: + $_ndPg +() { + +619  +fixedHd +[2]; + +620 +fixedHd +[0] = +AsyncMqClIls +:: +PackTy +. +PINGREQ +; + +621 +fixedHd +[0] = fixedHeader[0] << 4; + +622 +fixedHd +[0] = fixedHd[0] | +AsyncMqClIls +:: +HdFg +. +PINGREQ_RESERVED +; + +623 +fixedHd +[1] = 0; + +625 +size_t + +ededS + = 2; + +627 + `SEMAPHORE_TAKE +( +l +); + +628 i( +_ +. + `a +(< +ededS +{ + `SEMAPHORE_GIVE +();  +l +; } + +630 +_ +. + `add +( +fixedHd +, 2); + +631 +_ +. + `nd +(); + +632 +_ϡClAivy + = + `mlis +(); + +633 +_ϡPgRequeTime + = + `mlis +(); + +635 + `SEMAPHORE_GIVE +(); + +636  +ue +; + +637 + } +} + +639  + gAsyncMqCl +:: + $_ndAcks +() { + +640 +ut8_t + +ededAckS + = 2 + 2; + +642 + `SEMAPHORE_TAKE +(); + +643  +size_t + +i + = 0; i < +_toSdAcks +. + `size +(); i++) { + +644 i( +_ +. + `a +(< +ededAckS +) ; + +646 +AsyncMqClIls +:: +PdgAck + +ndgAck + = +_toSdAcks +[ +i +]; + +648  +fixedHd +[2]; + +649 +fixedHd +[0] = +ndgAck +. +ckTy +; + +650 +fixedHd +[0] = fixedHeader[0] << 4; + +651 +fixedHd +[0] = fixedHd[0] | +ndgAck +. +hdFg +; + +652 +fixedHd +[1] = 2; + +654  +ckIdBys +[2]; + +655 +ckIdBys +[0] = +ndgAck +. +ckId + >> 8; + +656 +ckIdBys +[1] = +ndgAck +. +ckId + & 0xFF; + +658 +_ +. + `add +( +fixedHd +, 2); + +659 +_ +. + `add +( +ckIdBys +, 2); + +660 +_ +. + `nd +(); + +662 +_toSdAcks +. + `a +(_toSdAcks. + `beg +(+ +i +); + +663 +_toSdAcks +. + `shrk_to_f +(); + +665 +_ϡClAivy + = + `mlis +(); + +667 + `SEMAPHORE_GIVE +(); + +668 + } +} + +670 +bo + + gAsyncMqCl +:: + $_ndDisc +() { + +671 i(! +_ced + +ue +; + +673 cڡ +ut8_t + +ededS + = 2; + +675 + `SEMAPHORE_TAKE +( +l +); + +677 i( +_ +. + `a +(< +ededS +{ + `SEMAPHORE_GIVE +();  +l +; } + +679  +fixedHd +[2]; + +680 +fixedHd +[0] = +AsyncMqClIls +:: +PackTy +. +DISCONNECT +; + +681 +fixedHd +[0] = fixedHeader[0] << 4; + +682 +fixedHd +[0] = fixedHd[0] | +AsyncMqClIls +:: +HdFg +. +DISCONNECT_RESERVED +; + +683 +fixedHd +[1] = 0; + +685 +_ +. + `add +( +fixedHd +, 2); + +686 +_ +. + `nd +(); + +687 +_ +. + `o +( +ue +); + +689 +_discOnPl + = +l +; + +691 + `SEMAPHORE_GIVE +(); + +692  +ue +; + +693 + } +} + +695 +ut16_t + + gAsyncMqCl +:: + $_gNextPackId +() { + +696 +ut16_t + +xtPackId + = +_xtPackId +; + +698 i( +_xtPackId + == 65535) _nextPacketId = 0; + +699 +_xtPackId +++; + +701  +xtPackId +; + +702 + } +} + +704 +bo + + gAsyncMqCl +:: + $ced +() const { + +705  +_ced +; + +706 + } +} + +708  + gAsyncMqCl +:: + $c +() { + +709 i( +_ced +) ; + +711 #i +ASYNC_TCP_SSL_ENABLED + + +712 i( +_uIp +) { + +713 +_ +. + `c +( +_ +, +_pt +, +_cu +); + +715 +_ +. + `c +( +_ho +, +_pt +, +_cu +); + +718 i( +_uIp +) { + +719 +_ +. + `c +( +_ +, +_pt +); + +721 +_ +. + `c +( +_ho +, +_pt +); + +724 + } +} + +726  + gAsyncMqCl +:: + $disc +( +bo + +f +) { + +727 i(! +_ced +) ; + +729 i( +f +) { + +730 +_ +. + `o +( +ue +); + +732 + `_ndDisc +(); + +733 +_discOnPl + = +l +; + +735 + } +} + +737 +ut16_t + + gAsyncMqCl +:: + $subsibe +(cڡ * +tic +, +ut8_t + +qos +) { + +738 i(! +_ced +)  0; + +740  +fixedHd +[5]; + +741 +fixedHd +[0] = +AsyncMqClIls +:: +PackTy +. +SUBSCRIBE +; + +742 +fixedHd +[0] = fixedHeader[0] << 4; + +743 +fixedHd +[0] = fixedHd[0] | +AsyncMqClIls +:: +HdFg +. +SUBSCRIBE_RESERVED +; + +745 +ut16_t + +ticLgth + = + ` +( +tic +); + +746  +ticLgthBys +[2]; + +747 +ticLgthBys +[0] = +ticLgth + >> 8; + +748 +ticLgthBys +[1] = +ticLgth + & 0xFF; + +750  +qosBy +[1]; + +751 +qosBy +[0] = +qos +; + +753 +ut8_t + +magLgthLgth + = +AsyncMqClIls +:: +Hrs +:: + `codeRemagLgth +(2 + 2 + +ticLgth + + 1, +fixedHd + + 1); + +755 +size_t + +ededS + = 0; + +756 +ededS + +1 + +magLgthLgth +; + +757 +ededS + += 2; + +758 +ededS + += 2; + +759 +ededS + + +ticLgth +; + +760 +ededS + += 1; + +762 + `SEMAPHORE_TAKE +(0); + +763 i( +_ +. + `a +(< +ededS +{ + `SEMAPHORE_GIVE +();  0; } + +765 +ut16_t + +ckId + = + `_gNextPackId +(); + +766  +ckIdBys +[2]; + +767 +ckIdBys +[0] = +ckId + >> 8; + +768 +ckIdBys +[1] = +ckId + & 0xFF; + +770 +_ +. + `add +( +fixedHd +, 1 + +magLgthLgth +); + +771 +_ +. + `add +( +ckIdBys +, 2); + +772 +_ +. + `add +( +ticLgthBys +, 2); + +773 +_ +. + `add +( +tic +, +ticLgth +); + +774 +_ +. + `add +( +qosBy +, 1); + +775 +_ +. + `nd +(); + +776 +_ϡClAivy + = + `mlis +(); + +778 + `SEMAPHORE_GIVE +(); + +779  +ckId +; + +780 + } +} + +782 +ut16_t + + gAsyncMqCl +:: + $unsubsibe +(cڡ * +tic +) { + +783 i(! +_ced +)  0; + +785  +fixedHd +[5]; + +786 +fixedHd +[0] = +AsyncMqClIls +:: +PackTy +. +UNSUBSCRIBE +; + +787 +fixedHd +[0] = fixedHeader[0] << 4; + +788 +fixedHd +[0] = fixedHd[0] | +AsyncMqClIls +:: +HdFg +. +UNSUBSCRIBE_RESERVED +; + +790 +ut16_t + +ticLgth + = + ` +( +tic +); + +791  +ticLgthBys +[2]; + +792 +ticLgthBys +[0] = +ticLgth + >> 8; + +793 +ticLgthBys +[1] = +ticLgth + & 0xFF; + +795 +ut8_t + +magLgthLgth + = +AsyncMqClIls +:: +Hrs +:: + `codeRemagLgth +(2 + 2 + +ticLgth +, +fixedHd + + 1); + +797 +size_t + +ededS + = 0; + +798 +ededS + +1 + +magLgthLgth +; + +799 +ededS + += 2; + +800 +ededS + += 2; + +801 +ededS + + +ticLgth +; + +803 + `SEMAPHORE_TAKE +(0); + +804 i( +_ +. + `a +(< +ededS +{ + `SEMAPHORE_GIVE +();  0; } + +806 +ut16_t + +ckId + = + `_gNextPackId +(); + +807  +ckIdBys +[2]; + +808 +ckIdBys +[0] = +ckId + >> 8; + +809 +ckIdBys +[1] = +ckId + & 0xFF; + +811 +_ +. + `add +( +fixedHd +, 1 + +magLgthLgth +); + +812 +_ +. + `add +( +ckIdBys +, 2); + +813 +_ +. + `add +( +ticLgthBys +, 2); + +814 +_ +. + `add +( +tic +, +ticLgth +); + +815 +_ +. + `nd +(); + +816 +_ϡClAivy + = + `mlis +(); + +818 + `SEMAPHORE_GIVE +(); + +819  +ckId +; + +820 + } +} + +822 +ut16_t + + gAsyncMqCl +:: + $publish +(cڡ * +tic +, +ut8_t + +qos +, +bo + + +, cڡ * +yld +, +size_t + +ngth +, bo +dup +, +ut16_t + +mesge_id +) { + +823 i(! +_ced +)  0; + +825  +fixedHd +[5]; + +826 +fixedHd +[0] = +AsyncMqClIls +:: +PackTy +. +PUBLISH +; + +827 +fixedHd +[0] = fixedHeader[0] << 4; + +828 i( +dup + +fixedHd +[0] | +AsyncMqClIls +:: +HdFg +. +PUBLISH_DUP +; + +829 i( + + +fixedHd +[0] | +AsyncMqClIls +:: +HdFg +. +PUBLISH_RETAIN +; + +830  +qos +) { + +832 +fixedHd +[0] | +AsyncMqClIls +:: +HdFg +. +PUBLISH_QOS0 +; + +835 +fixedHd +[0] | +AsyncMqClIls +:: +HdFg +. +PUBLISH_QOS1 +; + +838 +fixedHd +[0] | +AsyncMqClIls +:: +HdFg +. +PUBLISH_QOS2 +; + +842 +ut16_t + +ticLgth + = + ` +( +tic +); + +843  +ticLgthBys +[2]; + +844 +ticLgthBys +[0] = +ticLgth + >> 8; + +845 +ticLgthBys +[1] = +ticLgth + & 0xFF; + +847 +ut32_t + +yldLgth + = +ngth +; + +848 i( +yld + ! +nuαr + && +yldLgth + =0yldLgth = + ` +(payload); + +850 +ut32_t + +magLgth + = 2 + +ticLgth + + +yldLgth +; + +851 i( +qos + !0 +magLgth + += 2; + +852 +ut8_t + +magLgthLgth + = +AsyncMqClIls +:: +Hrs +:: + `codeRemagLgth +( +magLgth +, +fixedHd + + 1); + +854 +size_t + +ededS + = 0; + +855 +ededS + +1 + +magLgthLgth +; + +856 +ededS + += 2; + +857 +ededS + + +ticLgth +; + +858 i( +qos + !0 +ededS + += 2; + +859 i( +yld + ! +nuαr + +ededS + + +yldLgth +; + +861 + `SEMAPHORE_TAKE +(0); + +862 i( +_ +. + `a +(< +ededS +{ + `SEMAPHORE_GIVE +();  0; } + +864 +ut16_t + +ckId + = 0; + +865  +ckIdBys +[2]; + +866 i( +qos + != 0) { + +867 i( +dup + && +mesge_id + > 0) { + +868 +ckId + = +mesge_id +; + +870 +ckId + = + `_gNextPackId +(); + +873 +ckIdBys +[0] = +ckId + >> 8; + +874 +ckIdBys +[1] = +ckId + & 0xFF; + +877 +_ +. + `add +( +fixedHd +, 1 + +magLgthLgth +); + +878 +_ +. + `add +( +ticLgthBys +, 2); + +879 +_ +. + `add +( +tic +, +ticLgth +); + +880 i( +qos + !0 +_ +. + `add +( +ckIdBys +, 2); + +881 i( +yld + ! +nuαr + +_ +. + `add +ayld, +yldLgth +); + +882 +_ +. + `nd +(); + +883 +_ϡClAivy + = + `mlis +(); + +885 + `SEMAPHORE_GIVE +(); + +886 i( +qos + != 0) { + +887  +ckId +; + +891 + } +} + +893 cڡ * + gAsyncMqCl +:: + $gClId +() { + +894  +_Id +; + +895 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.h + +1 #ide +SRC_ASYNCMQTTCLIENT_H_ + + +2  + #SRC_ASYNCMQTTCLIENT_H_ + + + ) + +4  + ~"AsyncMqCl.h +" + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.hpp + +1 #agm + + + +3  + ~ + +4  + ~ + +6  + ~"Arduo.h +" + +8 #ifde +ESP32 + + +9  + ~ + +10  + ~<䓹os/mphr.h +> + +11 #i +defed +( +ESP8266 +) + +12  + ~ + +14 #r +Ptfm + +n + +su܋d + + +17 #i +ASYNC_TCP_SSL_ENABLED + + +18  + ~ + +19  + #SHA1_SIZE + 20 + + ) + +22  + ~"AsyncMqCl/Fgs.h +" + +23  + ~"AsyncMqCl/PsgInfmi.h +" + +24  + ~"AsyncMqCl/MesgePrݔts.h +" + +25  + ~"AsyncMqCl/Hrs.h +" + +26  + ~"AsyncMqCl/Clbacks.h +" + +27  + ~"AsyncMqCl/DiscRss.h +" + +28  + ~"AsyncMqCl/Stage.h +" + +30  + ~"AsyncMqCl/Packs/Pack.h +" + +31  + ~"AsyncMqCl/Packs/CnAckPack.h +" + +32  + ~"AsyncMqCl/Packs/PgRePack.h +" + +33  + ~"AsyncMqCl/Packs/SubAckPack.h +" + +34  + ~"AsyncMqCl/Packs/UnsubAckPack.h +" + +35  + ~"AsyncMqCl/Packs/PublishPack.h +" + +36  + ~"AsyncMqCl/Packs/PubRPack.h +" + +37  + ~"AsyncMqCl/Packs/PubAckPack.h +" + +38  + ~"AsyncMqCl/Packs/PubRecPack.h +" + +39  + ~"AsyncMqCl/Packs/PubCompPack.h +" + +41 #i +ESP32 + + +42  + #SEMAPHORE_TAKE +( +X +i( + `xSemheTake +( +_xSemhe +, 1000 / +ptTICK_PERIOD_MS +! +pdTRUE +) {  X; } + +43  + #SEMAPHORE_GIVE +( + `xSemheGive +( +_xSemhe +); + + ) + +44 #i +defed +( +ESP8266 +) + +45  + #SEMAPHORE_TAKE +( +X +() + + ) + +46  + #SEMAPHORE_GIVE +(() + + ) + +49 as + cAsyncMqCl + { + +50 + mpublic +: + +51 +AsyncMqCl +(); + +52 ~ +AsyncMqCl +(); + +54 + mAsyncMqCl +& +tKpAlive +( +ut16_t + +kpAlive +); + +55 + mAsyncMqCl +& +tClId +(cڡ * +Id +); + +56 + mAsyncMqCl +& +tC˪Sessi +( +bo + +nSessi +); + +57 + mAsyncMqCl +& +tMaxTicLgth +( +ut16_t + +maxTicLgth +); + +58 + mAsyncMqCl +& +tCdtls +(cڡ * +uame +, cڡ * +sswd + = +nuαr +); + +59 + mAsyncMqCl +& +tWl +(cڡ * +tic +, +ut8_t + +qos +, +bo + + +, cڡ * +yld + = +nuαr +, +size_t + +ngth + = 0); + +60 + mAsyncMqCl +& +tSv +( +IPAddss + + +, +ut16_t + +pt +); + +61 + mAsyncMqCl +& +tSv +(cڡ * +ho +, +ut16_t + +pt +); + +62 #i +ASYNC_TCP_SSL_ENABLED + + +63 + mAsyncMqCl +& +tSecu +( +bo + +cu +); + +64 + mAsyncMqCl +& +addSvFgt +(cڡ +ut8_t +* +fgt +); + +67 + mAsyncMqCl +& +C +( +AsyncMqClIls +:: +OnCUrClback + +back +); + +68 + mAsyncMqCl +& +Disc +( +AsyncMqClIls +:: +OnDiscUrClback + +back +); + +69 + mAsyncMqCl +& +Subsibe +( +AsyncMqClIls +:: +OnSubsibeUrClback + +back +); + +70 + mAsyncMqCl +& +Unsubsibe +( +AsyncMqClIls +:: +OnUnsubsibeUrClback + +back +); + +71 + mAsyncMqCl +& +Mesge +( +AsyncMqClIls +:: +OnMesgeUrClback + +back +); + +72 + mAsyncMqCl +& +Publish +( +AsyncMqClIls +:: +OnPublishUrClback + +back +); + +74 +bo + + $ced +() const; + +75  + `c +(); + +76  + `disc +( +bo + +f + = +l +); + +77 +ut16_t + + `subsibe +(cڡ * +tic +, +ut8_t + +qos +); + +78 +ut16_t + + `unsubsibe +(cڡ * +tic +); + +79 +ut16_t + + `publish +(cڡ * +tic +, +ut8_t + +qos +, +bo + + +, cڡ * +yld + = +nuαr +, +size_t + +ngth + = 0, bo +dup + = +l +, ut16_ +mesge_id + = 0); + +81 cڡ * + `gClId +(); + +83 +ive +: + +84 +AsyncCl + +_ +; + +86 +bo + +_ced +; + +87 +bo + +_cPackNEnoughS +; + +88 +bo + +_discOnPl +; + +89 +bo + +_sBadFgt +; + +90 +ut32_t + +_ϡClAivy +; + +91 +ut32_t + +_ϡSvAivy +; + +92 +ut32_t + +_ϡPgRequeTime +; + +94  +_gedClId +[18 + 1]; + +95 +IPAddss + +_ +; + +96 cڡ * +_ho +; + +97 +bo + +_uIp +; + +98 #i +ASYNC_TCP_SSL_ENABLED + + +99 +bo + +_cu +; + +101 +ut16_t + +_pt +; + +102 +ut16_t + +_kpAlive +; + +103 +bo + +_nSessi +; + +104 cڡ * +_Id +; + +105 cڡ * +_uame +; + +106 cڡ * +_sswd +; + +107 cڡ * +_wlTic +; + +108 cڡ * +_wlPayld +; + +109 +ut16_t + +_wlPayldLgth +; + +110 +ut8_t + +_wlQos +; + +111 +bo + +_wlRa +; + +113 #i +ASYNC_TCP_SSL_ENABLED + + +114 +d +:: +ve +> +_cuSvFgts +; + +117 +d +:: +ve +< +AsyncMqClIls +:: +OnCUrClback +> +_CUrClbacks +; + +118 +d +:: +ve +< +AsyncMqClIls +:: +OnDiscUrClback +> +_DiscUrClbacks +; + +119 +d +:: +ve +< +AsyncMqClIls +:: +OnSubsibeUrClback +> +_SubsibeUrClbacks +; + +120 +d +:: +ve +< +AsyncMqClIls +:: +OnUnsubsibeUrClback +> +_UnsubsibeUrClbacks +; + +121 +d +:: +ve +< +AsyncMqClIls +:: +OnMesgeUrClback +> +_MesgeUrClbacks +; + +122 +d +:: +ve +< +AsyncMqClIls +:: +OnPublishUrClback +> +_PublishUrClbacks +; + +124 +AsyncMqClIls +:: +PsgInfmi + +_rsgInfmi +; + +125 +AsyncMqClIls +:: +Pack +* +_cutPdPack +; + +126 +ut8_t + +_magLgthBufrPosi +; + +127  +_magLgthBufr +[4]; + +129 +ut16_t + +_xtPackId +; + +131 +d +:: +ve +< +AsyncMqClIls +:: +PdgPubR +> +_ndgPubRs +; + +133 +d +:: +ve +< +AsyncMqClIls +:: +PdgAck +> +_toSdAcks +; + +135 #ifde +ESP32 + + +136 +SemheHd_t + +_xSemhe + = +nuαr +; + +139  + `_r +(); + +140  + `_CutPdPack +(); + +143  + `_C +( +AsyncCl +* + +); + +144  + `_Disc +( +AsyncCl +* + +); + +145  + `_E +( +AsyncCl +* + +, +t8_t + +r +); + +146  + `_Timeout +( +AsyncCl +* + +, +ut32_t + +time +); + +147  + `_Ack +( +AsyncCl +* + +, +size_t + +n +, +ut32_t + +time +); + +148  + `_Da +( +AsyncCl +* + +, * +da +, +size_t + +n +); + +149  + `_Pl +( +AsyncCl +* + +); + +152  + `_PgRe +(); + +153  + `_CnAck +( +bo + +ssiP +, +ut8_t + +cRuCode +); + +154  + `_SubAck +( +ut16_t + +ckId +,  +us +); + +155  + `_UnsubAck +( +ut16_t + +ckId +); + +156  + `_Mesge +(* +tic +, * +yld +, +ut8_t + +qos +, +bo + +dup +, bo + +, +size_t + +n +, size_ +dex +, size_ +tٮ +, +ut16_t + +ckId +); + +157  + `_Publish +( +ut16_t + +ckId +, +ut8_t + +qos +); + +158  + `_PubR +( +ut16_t + +ckId +); + +159  + `_PubAck +( +ut16_t + +ckId +); + +160  + `_PubRec +( +ut16_t + +ckId +); + +161  + `_PubComp +( +ut16_t + +ckId +); + +163 +bo + + `_ndPg +(); + +164  + `_ndAcks +(); + +165 +bo + + `_ndDisc +(); + +167 +ut16_t + + `_gNextPackId +(); + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Callbacks.hpp + +1 #agm + + + +3  + ~ + +5  + ~"DiscRss.h +" + +6  + ~"MesgePrݔts.h +" + +8 +mea + + gAsyncMqClIls + { + +10  + gd +:: + tfuni +<( + tbo + + tssiP +)> + tOnCUrClback +; + +11  + gd +:: + tfuni +<( + tAsyncMqClDiscRs + + tas +)> + tOnDiscUrClback +; + +12  + gd +:: + tfuni +<( + tut16_t + + tckId +, + tut8_t + + tqos +)> + tOnSubsibeUrClback +; + +13  + gd +:: + tfuni +<( + tut16_t + + tckId +)> + tOnUnsubsibeUrClback +; + +14  + gd +:: + tfuni +<(* + ttic +, * + tyld +, + tAsyncMqClMesgePrݔts + + tݔts +, + tsize_t + + tn +, size_ + tdex +, size_ + ttٮ +)> + tOnMesgeUrClback +; + +15  + gd +:: + tfuni +<( + tut16_t + + tckId +)> + tOnPublishUrClback +; + +18  + gd +:: + tfuni +<( + tbo + + tssiP +, + tut8_t + + tcRuCode +)> + tOnCnAckIlClback +; + +19  + gd +:: + tfuni +<()> + tOnPgReIlClback +; + +20  + gd +:: + tfuni +<( + tut16_t + + tckId +,  + tus +)> + tOnSubAckIlClback +; + +21  + gd +:: + tfuni +<( + tut16_t + + tckId +)> + tOnUnsubAckIlClback +; + +22  + gd +:: + tfuni +<(* + ttic +, * + tyld +, + tut8_t + + tqos +, + tbo + + tdup +, bo + t +, + tsize_t + + tn +, size_ + tdex +, size_ + ttٮ +, + tut16_t + + tckId +)> + tOnMesgeIlClback +; + +23  + gd +:: + tfuni +<( + tut16_t + + tckId +, + tut8_t + + tqos +)> + tOnPublishIlClback +; + +24  + gd +:: + tfuni +<( + tut16_t + + tckId +)> + tOnPubRIlClback +; + +25  + gd +:: + tfuni +<( + tut16_t + + tckId +)> + tOnPubAckIlClback +; + +26  + gd +:: + tfuni +<( + tut16_t + + tckId +)> + tOnPubRecIlClback +; + +27  + gd +:: + tfuni +<( + tut16_t + + tckId +)> + tOnPubCompIlClback +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/DisconnectReasons.hpp + +1 #agm + + + +3 as + cAsyncMqClDiscRs + : +t8_t + { + +4 +TCP_DISCONNECTED + = 0, + +6 + mMQTT_UNACCEPTABLE_PROTOCOL_VERSION + = 1, + +7 + mMQTT_IDENTIFIER_REJECTED + = 2, + +8 + mMQTT_SERVER_UNAVAILABLE + = 3, + +9 + mMQTT_MALFORMED_CREDENTIALS + = 4, + +10 + mMQTT_NOT_AUTHORIZED + = 5, + +12 + mESP8266_NOT_ENOUGH_SPACE + = 6, + +14 + mTLS_BAD_FINGERPRINT + = 7 + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Flags.hpp + +1 #agm + + + +3 +mea + + gAsyncMqClIls + { + +4 +cڡex + struct { + +5 cڡ +ut8_t + + gRESERVED + = 0; + +6 cڡ +ut8_t + + gCONNECT + = 1; + +7 cڡ +ut8_t + + gCONNACK + = 2; + +8 cڡ +ut8_t + + gPUBLISH + = 3; + +9 cڡ +ut8_t + + gPUBACK + = 4; + +10 cڡ +ut8_t + + gPUBREC + = 5; + +11 cڡ +ut8_t + + gPUBREL + = 6; + +12 cڡ +ut8_t + + gPUBCOMP + = 7; + +13 cڡ +ut8_t + + gSUBSCRIBE + = 8; + +14 cڡ +ut8_t + + gSUBACK + = 9; + +15 cڡ +ut8_t + + gUNSUBSCRIBE + = 10; + +16 cڡ +ut8_t + + gUNSUBACK + = 11; + +17 cڡ +ut8_t + + gPINGREQ + = 12; + +18 cڡ +ut8_t + + gPINGRESP + = 13; + +19 cڡ +ut8_t + + gDISCONNECT + = 14; + +20 cڡ +ut8_t + + gRESERVED2 + = 1; + +21 } + gPackTy +; + +23 +cڡex + struct { + +24 cڡ +ut8_t + + gCONNECT_RESERVED + = 0x00; + +25 cڡ +ut8_t + + gCONNACK_RESERVED + = 0x00; + +26 cڡ +ut8_t + + gPUBLISH_DUP + = 0x08; + +27 cڡ +ut8_t + + gPUBLISH_QOS0 + = 0x00; + +28 cڡ +ut8_t + + gPUBLISH_QOS1 + = 0x02; + +29 cڡ +ut8_t + + gPUBLISH_QOS2 + = 0x04; + +30 cڡ +ut8_t + + gPUBLISH_QOSRESERVED + = 0x06; + +31 cڡ +ut8_t + + gPUBLISH_RETAIN + = 0x01; + +32 cڡ +ut8_t + + gPUBACK_RESERVED + = 0x00; + +33 cڡ +ut8_t + + gPUBREC_RESERVED + = 0x00; + +34 cڡ +ut8_t + + gPUBREL_RESERVED + = 0x02; + +35 cڡ +ut8_t + + gPUBCOMP_RESERVED + = 0x00; + +36 cڡ +ut8_t + + gSUBSCRIBE_RESERVED + = 0x02; + +37 cڡ +ut8_t + + gSUBACK_RESERVED + = 0x00; + +38 cڡ +ut8_t + + gUNSUBSCRIBE_RESERVED + = 0x02; + +39 cڡ +ut8_t + + gUNSUBACK_RESERVED + = 0x00; + +40 cڡ +ut8_t + + gPINGREQ_RESERVED + = 0x00; + +41 cڡ +ut8_t + + gPINGRESP_RESERVED + = 0x00; + +42 cڡ +ut8_t + + gDISCONNECT_RESERVED + = 0x00; + +43 cڡ +ut8_t + + gRESERVED2_RESERVED + = 0x00; + +44 } + gHdFg +; + +46 +cڡex + struct { + +47 cڡ +ut8_t + + gUSERNAME + = 0x80; + +48 cڡ +ut8_t + + gPASSWORD + = 0x40; + +49 cڡ +ut8_t + + gWILL_RETAIN + = 0x20; + +50 cڡ +ut8_t + + gWILL_QOS0 + = 0x00; + +51 cڡ +ut8_t + + gWILL_QOS1 + = 0x08; + +52 cڡ +ut8_t + + gWILL_QOS2 + = 0x10; + +53 cڡ +ut8_t + + gWILL + = 0x04; + +54 cڡ +ut8_t + + gCLEAN_SESSION + = 0x02; + +55 cڡ +ut8_t + + gRESERVED + = 0x00; + +56 } + gCFg +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Helpers.hpp + +1 #agm + + + +3 +mea + + gAsyncMqClIls + { + +4 as + cHrs + { + +5 + gpublic +: + +6  +ut32_t + +decodeRemagLgth +(* +bys +) { + +7 +ut32_t + +muɝlr + = 1; + +8 +ut32_t + + gvue + = 0; + +9 +ut8_t + + gcutBy + = 0; + +10 +ut8_t + + gcodedBy +; + +12 + gcodedBy + = +bys +[ +cutBy +++]; + +13 + gvue + +( +codedBy + & 127* +muɝlr +; + +14 + gmuɝlr + *= 128; + +15 } ( + gcodedBy + & 128) != 0); + +17  + gvue +; + +20  +ut8_t + +codeRemagLgth +( +ut32_t + +magLgth +, * +dei +) { + +21 +ut8_t + + gcutBy + = 0; + +22 +ut8_t + + gbysNded + = 0; + +25 +ut8_t + + gcodedBy + = +magLgth + % 128; + +26 + gmagLgth + /= 128; + +27 i( + gmagLgth + > 0) { + +28 + gcodedBy + = +codedBy + | 128; + +31 + gdei +[ +cutBy +++] = +codedBy +; + +32 + gbysNded +++; + +33 }  + gmagLgth + > 0); + +35  + gbysNded +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/MessageProperties.hpp + +1 #agm + + + +3  + sAsyncMqClMesgePrݔts + { + +4 +ut8_t + + mqos +; + +5 +bo + + mdup +; + +6 +bo + + m +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/ConnAckPacket.cpp + +1  + ~"CnAckPack.h +" + +3 +usg + + gAsyncMqClIls +:: +CnAckPack +; + +5 + gCnAckPack +:: + $CnAckPack +( +PsgInfmi +* +rsgInfmi +, +OnCnAckIlClback + +back +) + +6 : + `_rsgInfmi +( +rsgInfmi +) + +7 , + `_back +( +back +) + +8 , + `_byPosi +(0) + +9 , + `_ssiP +( +l +) + +10 , + $_cRuCode +(0) { + +11 + } +} + +13 + gCnAckPack +::~ + $CnAckPack +() { + +14 + } +} + +16  +CnAckPack +:: + $rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +17  +cutBy + = +da +[(* +cutByPosi +)++]; + +18 i( +_byPosi +++ == 0) { + +19 +_ssiP + = ( +cutBy + << 7) >> 7; + +21 +_cRuCode + = +cutBy +; + +22 +_rsgInfmi +-> +bufrS + = +BufrS +:: +NONE +; + +23 + `_back +( +_ssiP +, +_cRuCode +); + +25 + } +} + +27  + gCnAckPack +:: + $rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +28 () +da +; + +29 () +cutByPosi +; + +30 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/ConnAckPacket.hpp + +1 #agm + + + +3  + ~"Arduo.h +" + +4  + ~"Pack.h +" + +5  + ~"../PsgInfmi.h +" + +6  + ~"../Clbacks.h +" + +8 +mea + + gAsyncMqClIls + { + +9 as + cCnAckPack + : +public + +Pack + { + +10 +public +: + +11 +exic + +CnAckPack +( +PsgInfmi +* +rsgInfmi +, +OnCnAckIlClback + +back +); + +12 ~ +CnAckPack +(); + +14  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +15  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +17 + give +: + +18 +PsgInfmi +* +_rsgInfmi +; + +19 +OnCnAckIlClback + + g_back +; + +21 +ut8_t + + g_byPosi +; + +22 +bo + + g_ssiP +; + +23 +ut8_t + + g_cRuCode +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/Packet.hpp + +1 #agm + + + +3 +mea + + gAsyncMqClIls + { + +4 as + cPack + { + +5 + gpublic +: + +6 +vtu + ~ +Pack +() {} + +8 +vtu +  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) = 0; + +9 +vtu +  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) = 0; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PingRespPacket.cpp + +1  + ~"PgRePack.h +" + +3 +usg + + gAsyncMqClIls +:: +PgRePack +; + +5 + gPgRePack +:: + $PgRePack +( +PsgInfmi +* +rsgInfmi +, +OnPgReIlClback + +back +) + +6 : + `_rsgInfmi +( +rsgInfmi +) + +7 , + $_back +( +back +) { + +8 + } +} + +10 + gPgRePack +::~ + $PgRePack +() { + +11 + } +} + +13  +PgRePack +:: + $rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +14 () +da +; + +15 () +cutByPosi +; + +16 + } +} + +18  + gPgRePack +:: + $rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +19 () +da +; + +20 () +cutByPosi +; + +21 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PingRespPacket.hpp + +1 #agm + + + +3  + ~"Arduo.h +" + +4  + ~"Pack.h +" + +5  + ~"../PsgInfmi.h +" + +6  + ~"../Clbacks.h +" + +8 +mea + + gAsyncMqClIls + { + +9 as + cPgRePack + : +public + +Pack + { + +10 +public +: + +11 +exic + +PgRePack +( +PsgInfmi +* +rsgInfmi +, +OnPgReIlClback + +back +); + +12 ~ +PgRePack +(); + +14  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +15  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +17 + give +: + +18 +PsgInfmi +* +_rsgInfmi +; + +19 +OnPgReIlClback + + g_back +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubAckPacket.cpp + +1  + ~"PubAckPack.h +" + +3 +usg + + gAsyncMqClIls +:: +PubAckPack +; + +5 + gPubAckPack +:: + $PubAckPack +( +PsgInfmi +* +rsgInfmi +, +OnPubAckIlClback + +back +) + +6 : + `_rsgInfmi +( +rsgInfmi +) + +7 , + `_back +( +back +) + +8 , + `_byPosi +(0) + +9 , + `_ckIdMsb +(0) + +10 , + $_ckId +(0) { + +11 + } +} + +13 + gPubAckPack +::~ + $PubAckPack +() { + +14 + } +} + +16  +PubAckPack +:: + $rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +17  +cutBy + = +da +[(* +cutByPosi +)++]; + +18 i( +_byPosi +++ == 0) { + +19 +_ckIdMsb + = +cutBy +; + +21 +_ckId + = +cutBy + | +_ckIdMsb + << 8; + +22 +_rsgInfmi +-> +bufrS + = +BufrS +:: +NONE +; + +23 + `_back +( +_ckId +); + +25 + } +} + +27  + gPubAckPack +:: + $rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +28 () +da +; + +29 () +cutByPosi +; + +30 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubAckPacket.hpp + +1 #agm + + + +3  + ~"Arduo.h +" + +4  + ~"Pack.h +" + +5  + ~"../PsgInfmi.h +" + +6  + ~"../Clbacks.h +" + +8 +mea + + gAsyncMqClIls + { + +9 as + cPubAckPack + : +public + +Pack + { + +10 +public +: + +11 +exic + +PubAckPack +( +PsgInfmi +* +rsgInfmi +, +OnPubAckIlClback + +back +); + +12 ~ +PubAckPack +(); + +14  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +15  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +17 + give +: + +18 +PsgInfmi +* +_rsgInfmi +; + +19 +OnPubAckIlClback + + g_back +; + +21 +ut8_t + + g_byPosi +; + +22  + g_ckIdMsb +; + +23 +ut16_t + + g_ckId +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubCompPacket.cpp + +1  + ~"PubCompPack.h +" + +3 +usg + + gAsyncMqClIls +:: +PubCompPack +; + +5 + gPubCompPack +:: + $PubCompPack +( +PsgInfmi +* +rsgInfmi +, +OnPubCompIlClback + +back +) + +6 : + `_rsgInfmi +( +rsgInfmi +) + +7 , + `_back +( +back +) + +8 , + `_byPosi +(0) + +9 , + `_ckIdMsb +(0) + +10 , + $_ckId +(0) { + +11 + } +} + +13 + gPubCompPack +::~ + $PubCompPack +() { + +14 + } +} + +16  +PubCompPack +:: + $rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +17  +cutBy + = +da +[(* +cutByPosi +)++]; + +18 i( +_byPosi +++ == 0) { + +19 +_ckIdMsb + = +cutBy +; + +21 +_ckId + = +cutBy + | +_ckIdMsb + << 8; + +22 +_rsgInfmi +-> +bufrS + = +BufrS +:: +NONE +; + +23 + `_back +( +_ckId +); + +25 + } +} + +27  + gPubCompPack +:: + $rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +28 () +da +; + +29 () +cutByPosi +; + +30 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubCompPacket.hpp + +1 #agm + + + +3  + ~"Arduo.h +" + +4  + ~"Pack.h +" + +5  + ~"../PsgInfmi.h +" + +6  + ~"../Clbacks.h +" + +8 +mea + + gAsyncMqClIls + { + +9 as + cPubCompPack + : +public + +Pack + { + +10 +public +: + +11 +exic + +PubCompPack +( +PsgInfmi +* +rsgInfmi +, +OnPubCompIlClback + +back +); + +12 ~ +PubCompPack +(); + +14  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +15  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +17 + give +: + +18 +PsgInfmi +* +_rsgInfmi +; + +19 +OnPubCompIlClback + + g_back +; + +21 +ut8_t + + g_byPosi +; + +22  + g_ckIdMsb +; + +23 +ut16_t + + g_ckId +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRecPacket.cpp + +1  + ~"PubRecPack.h +" + +3 +usg + + gAsyncMqClIls +:: +PubRecPack +; + +5 + gPubRecPack +:: + $PubRecPack +( +PsgInfmi +* +rsgInfmi +, +OnPubRecIlClback + +back +) + +6 : + `_rsgInfmi +( +rsgInfmi +) + +7 , + `_back +( +back +) + +8 , + `_byPosi +(0) + +9 , + `_ckIdMsb +(0) + +10 , + $_ckId +(0) { + +11 + } +} + +13 + gPubRecPack +::~ + $PubRecPack +() { + +14 + } +} + +16  +PubRecPack +:: + $rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +17  +cutBy + = +da +[(* +cutByPosi +)++]; + +18 i( +_byPosi +++ == 0) { + +19 +_ckIdMsb + = +cutBy +; + +21 +_ckId + = +cutBy + | +_ckIdMsb + << 8; + +22 +_rsgInfmi +-> +bufrS + = +BufrS +:: +NONE +; + +23 + `_back +( +_ckId +); + +25 + } +} + +27  + gPubRecPack +:: + $rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +28 () +da +; + +29 () +cutByPosi +; + +30 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRecPacket.hpp + +1 #agm + + + +3  + ~"Arduo.h +" + +4  + ~"Pack.h +" + +5  + ~"../PsgInfmi.h +" + +6  + ~"../Clbacks.h +" + +8 +mea + + gAsyncMqClIls + { + +9 as + cPubRecPack + : +public + +Pack + { + +10 +public +: + +11 +exic + +PubRecPack +( +PsgInfmi +* +rsgInfmi +, +OnPubRecIlClback + +back +); + +12 ~ +PubRecPack +(); + +14  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +15  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +17 + give +: + +18 +PsgInfmi +* +_rsgInfmi +; + +19 +OnPubRecIlClback + + g_back +; + +21 +ut8_t + + g_byPosi +; + +22  + g_ckIdMsb +; + +23 +ut16_t + + g_ckId +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRelPacket.cpp + +1  + ~"PubRPack.h +" + +3 +usg + + gAsyncMqClIls +:: +PubRPack +; + +5 + gPubRPack +:: + $PubRPack +( +PsgInfmi +* +rsgInfmi +, +OnPubRIlClback + +back +) + +6 : + `_rsgInfmi +( +rsgInfmi +) + +7 , + `_back +( +back +) + +8 , + `_byPosi +(0) + +9 , + `_ckIdMsb +(0) + +10 , + $_ckId +(0) { + +11 + } +} + +13 + gPubRPack +::~ + $PubRPack +() { + +14 + } +} + +16  +PubRPack +:: + $rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +17  +cutBy + = +da +[(* +cutByPosi +)++]; + +18 i( +_byPosi +++ == 0) { + +19 +_ckIdMsb + = +cutBy +; + +21 +_ckId + = +cutBy + | +_ckIdMsb + << 8; + +22 +_rsgInfmi +-> +bufrS + = +BufrS +:: +NONE +; + +23 + `_back +( +_ckId +); + +25 + } +} + +27  + gPubRPack +:: + $rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +28 () +da +; + +29 () +cutByPosi +; + +30 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRelPacket.hpp + +1 #agm + + + +3  + ~"Arduo.h +" + +4  + ~"Pack.h +" + +5  + ~"../PsgInfmi.h +" + +6  + ~"../Clbacks.h +" + +8 +mea + + gAsyncMqClIls + { + +9 as + cPubRPack + : +public + +Pack + { + +10 +public +: + +11 +exic + +PubRPack +( +PsgInfmi +* +rsgInfmi +, +OnPubRIlClback + +back +); + +12 ~ +PubRPack +(); + +14  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +15  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +17 + give +: + +18 +PsgInfmi +* +_rsgInfmi +; + +19 +OnPubRIlClback + + g_back +; + +21 +ut8_t + + g_byPosi +; + +22  + g_ckIdMsb +; + +23 +ut16_t + + g_ckId +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PublishPacket.cpp + +1  + ~"PublishPack.h +" + +3 +usg + + gAsyncMqClIls +:: +PublishPack +; + +5 + gPublishPack +:: + $PublishPack +( +PsgInfmi +* +rsgInfmi +, +OnMesgeIlClback + +daClback +, +OnPublishIlClback + +comeClback +) + +6 : + `_rsgInfmi +( +rsgInfmi +) + +7 , + `_daClback +( +daClback +) + +8 , + `_comeClback +( +comeClback +) + +9 , + `_dup +( +l +) + +10 , + `_qos +(0) + +11 , + `_ +(0) + +12 , + `_byPosi +(0) + +13 , + `_ticLgthMsb +(0) + +14 , + `_ticLgth +(0) + +15 , + `_igne +( +l +) + +16 , + `_ckIdMsb +(0) + +17 , + `_ckId +(0) + +18 , + `_yldLgth +(0) + +19 , + $_yldBysRd +(0) { + +20 +_dup + = +_rsgInfmi +-> +ckFgs + & +HdFg +. +PUBLISH_DUP +; + +21 +_ + = +_rsgInfmi +-> +ckFgs + & +HdFg +. +PUBLISH_RETAIN +; + +22  +qosMasked + = +_rsgInfmi +-> +ckFgs + & 0x06; + +23  +qosMasked +) { + +24  +HdFg +. +PUBLISH_QOS0 +: + +25 +_qos + = 0; + +27  +HdFg +. +PUBLISH_QOS1 +: + +28 +_qos + = 1; + +30  +HdFg +. +PUBLISH_QOS2 +: + +31 +_qos + = 2; + +34 + } +} + +36 + gPublishPack +::~ + $PublishPack +() { + +37 + } +} + +39  +PublishPack +:: + $rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +40  +cutBy + = +da +[(* +cutByPosi +)++]; + +41 i( +_byPosi + == 0) { + +42 +_ticLgthMsb + = +cutBy +; + +43 } i( +_byPosi + == 1) { + +44 +_ticLgth + = +cutBy + | +_ticLgthMsb + << 8; + +45 i( +_ticLgth + > +_rsgInfmi +-> +maxTicLgth +) { + +46 +_igne + = +ue +; + +48 +_rsgInfmi +-> +ticBufr +[ +_ticLgth +] = '\0'; + +50 } i( +_byPosi + >2 && _byPosi < 2 + +_ticLgth +) { + +52 i(! +_igne + +_rsgInfmi +-> +ticBufr +[ +_byPosi + - 2] = +cutBy +; + +53 i( +_byPosi + =2 + +_ticLgth + - 1 && +_qos + == 0) { + +54 + `_ePayldHdlg +( +_rsgInfmi +-> +magLgth + - ( +_byPosi + + 1)); + +57 } i( +_byPosi + =2 + +_ticLgth +) { + +58 +_ckIdMsb + = +cutBy +; + +60 +_ckId + = +cutBy + | +_ckIdMsb + << 8; + +61 + `_ePayldHdlg +( +_rsgInfmi +-> +magLgth + - ( +_byPosi + + 1)); + +63 +_byPosi +++; + +64 + } +} + +66  + gPublishPack +:: + $_ePayldHdlg +( +ut32_t + +yldLgth +) { + +67 +_yldLgth + = +yldLgth +; + +68 i( +yldLgth + == 0) { + +69 +_rsgInfmi +-> +bufrS + = +BufrS +:: +NONE +; + +70 i(! +_igne +) { + +71 + `_daClback +( +_rsgInfmi +-> +ticBufr +, +nuαr +, +_qos +, +_dup +, +_ +, 0, 0, 0, +_ckId +); + +72 + `_comeClback +( +_ckId +, +_qos +); + +75 +_rsgInfmi +-> +bufrS + = +BufrS +:: +PAYLOAD +; + +77 + } +} + +79  + gPublishPack +:: + $rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +80 +size_t + +maToRd + = +n + - (* +cutByPosi +); + +81 i( +_yldBysRd + + +maToRd + > +_yldLgth +)emainToRead = _payloadLength - _payloadBytesRead; + +83 i(! +_igne + + `_daClback +( +_rsgInfmi +-> +ticBufr +, +da + + (* +cutByPosi +), +_qos +, +_dup +, +_ +, +maToRd +, +_yldBysRd +, +_yldLgth +, +_ckId +); + +84 +_yldBysRd + + +maToRd +; + +85 (* +cutByPosi ++ +maToRd +; + +87 i( +_yldBysRd + = +_yldLgth +) { + +88 +_rsgInfmi +-> +bufrS + = +BufrS +:: +NONE +; + +89 i(! +_igne + + `_comeClback +( +_ckId +, +_qos +); + +91 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PublishPacket.hpp + +1 #agm + + + +3  + ~"Arduo.h +" + +4  + ~"Pack.h +" + +5  + ~"../Fgs.h +" + +6  + ~"../PsgInfmi.h +" + +7  + ~"../Clbacks.h +" + +9 +mea + + gAsyncMqClIls + { + +10 as + cPublishPack + : +public + +Pack + { + +11 +public +: + +12 +exic + +PublishPack +( +PsgInfmi +* +rsgInfmi +, +OnMesgeIlClback + +daClback +, +OnPublishIlClback + +comeClback +); + +13 ~ +PublishPack +(); + +15  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +16  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +18 + give +: + +19 +PsgInfmi +* +_rsgInfmi +; + +20 +OnMesgeIlClback + + g_daClback +; + +21 +OnPublishIlClback + + g_comeClback +; + +23  +_ePayldHdlg +( +ut32_t + +yldLgth +); + +25 +bo + + g_dup +; + +26 +ut8_t + + g_qos +; + +27 +bo + + g_ +; + +29 +ut8_t + + g_byPosi +; + +30  + g_ticLgthMsb +; + +31 +ut16_t + + g_ticLgth +; + +32 +bo + + g_igne +; + +33  + g_ckIdMsb +; + +34 +ut16_t + + g_ckId +; + +35 +ut32_t + + g_yldLgth +; + +36 +ut32_t + + g_yldBysRd +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/SubAckPacket.cpp + +1  + ~"SubAckPack.h +" + +3 +usg + + gAsyncMqClIls +:: +SubAckPack +; + +5 + gSubAckPack +:: + $SubAckPack +( +PsgInfmi +* +rsgInfmi +, +OnSubAckIlClback + +back +) + +6 : + `_rsgInfmi +( +rsgInfmi +) + +7 , + `_back +( +back +) + +8 , + `_byPosi +(0) + +9 , + `_ckIdMsb +(0) + +10 , + $_ckId +(0) { + +11 + } +} + +13 + gSubAckPack +::~ + $SubAckPack +() { + +14 + } +} + +16  +SubAckPack +:: + $rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +17  +cutBy + = +da +[(* +cutByPosi +)++]; + +18 i( +_byPosi +++ == 0) { + +19 +_ckIdMsb + = +cutBy +; + +21 +_ckId + = +cutBy + | +_ckIdMsb + << 8; + +22 +_rsgInfmi +-> +bufrS + = +BufrS +:: +PAYLOAD +; + +24 + } +} + +26  + gSubAckPack +:: + $rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +27  +us + = +da +[(* +cutByPosi +)++]; + +44 +_rsgInfmi +-> +bufrS + = +BufrS +:: +NONE +; + +45 + `_back +( +_ckId +, +us +); + +46 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/SubAckPacket.hpp + +1 #agm + + + +3  + ~"Arduo.h +" + +4  + ~"Pack.h +" + +5  + ~"../PsgInfmi.h +" + +6  + ~"../Clbacks.h +" + +8 +mea + + gAsyncMqClIls + { + +9 as + cSubAckPack + : +public + +Pack + { + +10 +public +: + +11 +exic + +SubAckPack +( +PsgInfmi +* +rsgInfmi +, +OnSubAckIlClback + +back +); + +12 ~ +SubAckPack +(); + +14  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +15  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +17 + give +: + +18 +PsgInfmi +* +_rsgInfmi +; + +19 +OnSubAckIlClback + + g_back +; + +21 +ut8_t + + g_byPosi +; + +22  + g_ckIdMsb +; + +23 +ut16_t + + g_ckId +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/UnsubAckPacket.cpp + +1  + ~"UnsubAckPack.h +" + +3 +usg + + gAsyncMqClIls +:: +UnsubAckPack +; + +5 + gUnsubAckPack +:: + $UnsubAckPack +( +PsgInfmi +* +rsgInfmi +, +OnUnsubAckIlClback + +back +) + +6 : + `_rsgInfmi +( +rsgInfmi +) + +7 , + `_back +( +back +) + +8 , + `_byPosi +(0) + +9 , + `_ckIdMsb +(0) + +10 , + $_ckId +(0) { + +11 + } +} + +13 + gUnsubAckPack +::~ + $UnsubAckPack +() { + +14 + } +} + +16  +UnsubAckPack +:: + $rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +17  +cutBy + = +da +[(* +cutByPosi +)++]; + +18 i( +_byPosi +++ == 0) { + +19 +_ckIdMsb + = +cutBy +; + +21 +_ckId + = +cutBy + | +_ckIdMsb + << 8; + +22 +_rsgInfmi +-> +bufrS + = +BufrS +:: +NONE +; + +23 + `_back +( +_ckId +); + +25 + } +} + +27  + gUnsubAckPack +:: + $rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +) { + +28 () +da +; + +29 () +cutByPosi +; + +30 + } +} + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/UnsubAckPacket.hpp + +1 #agm + + + +3  + ~"Arduo.h +" + +4  + ~"Pack.h +" + +5  + ~"../PsgInfmi.h +" + +6  + ~"../Clbacks.h +" + +8 +mea + + gAsyncMqClIls + { + +9 as + cUnsubAckPack + : +public + +Pack + { + +10 +public +: + +11 +exic + +UnsubAckPack +( +PsgInfmi +* +rsgInfmi +, +OnUnsubAckIlClback + +back +); + +12 ~ +UnsubAckPack +(); + +14  +rVbHd +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +15  +rPayld +(* +da +, +size_t + +n +, size_t* +cutByPosi +); + +17 + give +: + +18 +PsgInfmi +* +_rsgInfmi +; + +19 +OnUnsubAckIlClback + + g_back +; + +21 +ut8_t + + g_byPosi +; + +22  + g_ckIdMsb +; + +23 +ut16_t + + g_ckId +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/ParsingInformation.hpp + +1 #agm + + + +3 +mea + + gAsyncMqClIls + { + +4 as + cBufrS + : +ut8_t + { + +5 +NONE + = 0, + +6 + gREMAINING_LENGTH + = 2, + +7 + gVARIABLE_HEADER + = 3, + +8 + gPAYLOAD + = 4 + +11  + sPsgInfmi + { + +12 +BufrS + + gbufrS +; + +14 +ut16_t + + gmaxTicLgth +; + +15 * + gticBufr +; + +17 +ut8_t + + gckTy +; + +18 +ut16_t + + gckFgs +; + +19 +ut32_t + + gmagLgth +; + + @.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Storage.hpp + +1 #agm + + + +3 +mea + + gAsyncMqClIls + { + +4  + sPdgPubR + { + +5 +ut16_t + + gckId +; + +8  + sPdgAck + { + +9 +ut8_t + + gckTy +; + +10 +ut8_t + + ghdFg +; + +11 +ut16_t + + gckId +; + + @.pio/libdeps/esp8266/AsyncTCP/src/AsyncTCP.cpp + +22  + ~"Arduo.h +" + +24  + ~"AsyncTCP.h +" + +26  + ~"lw/t.h +" + +27  + ~"lw/t.h +" + +28  + ~"lw/.h +" + +29  + ~"lw/dns.h +" + +30  + ~"lw/r.h +" + +32  + ~"e_sk_wdt.h +" + +39 +LWIP_TCP_SENT +, +LWIP_TCP_RECV +, +LWIP_TCP_FIN +, +LWIP_TCP_ERROR +, +LWIP_TCP_POLL +, +LWIP_TCP_CLEAR +, +LWIP_TCP_ACCEPT +, +LWIP_TCP_CONNECTED +, +LWIP_TCP_DNS + + +40 } + tlw_evt_t +; + +43 +lw_evt_t + + mevt +; + +44 * + mg +; + +47 * + mpcb +; + +48 +t8_t + + mr +; + +49 } + mced +; + +51 +t8_t + + mr +; + +52 } + mr +; + +54 +t_pcb + * + mpcb +; + +55 +ut16_t + + mn +; + +56 } + m +; + +58 +t_pcb + * + mpcb +; + +59 +pbuf + * + mpb +; + +60 +t8_t + + mr +; + +61 } + mcv +; + +63 +t_pcb + * + mpcb +; + +64 +t8_t + + mr +; + +65 } + mf +; + +67 +t_pcb + * + mpcb +; + +68 } + mpl +; + +70 +AsyncCl + * + m +; + +71 } + mac +; + +73 cڡ * + mme +; + +74 +_addr_t + + maddr +; + +75 } + mdns +; + +77 } + tlw_evt_ck_t +; + +79  +xQueueHd + + g_async_queue +; + +80  +TaskHd_t + + g_async_rvi_sk_hd + = +NULL +; + +83 +SemheHd_t + + g_s_lock +; + +84 cڡ  + g_numb_of_od_s + = +CONFIG_LWIP_MAX_ACTIVE_TCP +; + +85  + g_od_s +[ +_numb_of_od_s +]; + +86  + g_od_dex + = []() { + +87 +_s_lock + = +xSemheCeBy +(); + +88 +xSemheGive +( +_s_lock +); + +89  + gi + = 0; i < + g_numb_of_od_s +; ++ i) { + +90 + g_od_s +[ +i +] = 1; + +96  +le + +bo + + $__async_evt_queue +(){ + +97 if(! +_async_queue +){ + +98 +_async_queue + = + `xQueueCe +(32, ( +lw_evt_ck_t + *)); + +99 if(! +_async_queue +){ + +100  +l +; + +103  +ue +; + +104 + } +} + +106  +le + +bo + + $_nd_async_evt +( +lw_evt_ck_t + ** +e +){ + +107  +_async_queue + && + `xQueueSd +(_async_queue, +e +, +ptMAX_DELAY += +pdPASS +; + +108 + } +} + +110  +le + +bo + + $_d_async_evt +( +lw_evt_ck_t + ** +e +){ + +111  +_async_queue + && + `xQueueSdToFrt +(_async_queue, +e +, +ptMAX_DELAY += +pdPASS +; + +112 + } +} + +114  +le + +bo + + $_g_async_evt +( +lw_evt_ck_t + ** +e +){ + +115  +_async_queue + && + `xQueueReive +(_async_queue, +e +, +ptMAX_DELAY += +pdPASS +; + +116 + } +} + +118  +bo + + $_move_evts_wh_g +(* +g +){ + +119 +lw_evt_ck_t + * +f_ck + = +NULL +; + +120 +lw_evt_ck_t + * +ck + = +NULL +; + +122 if(! +_async_queue +){ + +123  +l +; + +126 ! +f_ck +){ + +127 if( + `xQueueReive +( +_async_queue +, & +f_ck +, 0! +pdPASS +){ + +128  +l +; + +131 if(() +f_ck +-> +g + == ()arg){ + +132 + ` +( +f_ck +); + +133 +f_ck + = +NULL +; + +135 } if( + `xQueueSd +( +_async_queue +, & +f_ck +, +ptMAX_DELAY +! +pdPASS +){ + +136  +l +; + +140  + `xQueuePk +( +_async_queue +, & +ck +, 0= +pdPASS + &&ack ! +f_ck +){ + +141 if( + `xQueueReive +( +_async_queue +, & +ck +, 0! +pdPASS +){ + +142  +l +; + +144 if(() +ck +-> +g + == ()arg){ + +145 + ` +( +ck +); + +146 +ck + = +NULL +; + +147 } if( + `xQueueSd +( +_async_queue +, & +ck +, +ptMAX_DELAY +! +pdPASS +){ + +148  +l +; + +151  +ue +; + +152 + } +} + +154  + $_hd_async_evt +( +lw_evt_ck_t + * +e +){ + +155 if( +e +-> +evt + = +LWIP_TCP_CLEAR +){ + +156 + `_move_evts_wh_g +( +e +-> +g +); + +157 } if( +e +-> +evt + = +LWIP_TCP_RECV +){ + +159 +AsyncCl +:: + `_s_cv +( +e +-> +g +,-> +cv +. +pcb +,->cv. +pb +,->cv. +r +); + +160 } if( +e +-> +evt + = +LWIP_TCP_FIN +){ + +162 +AsyncCl +:: + `_s_f +( +e +-> +g +,-> +f +. +pcb +,->f. +r +); + +163 } if( +e +-> +evt + = +LWIP_TCP_SENT +){ + +165 +AsyncCl +:: + `_s_ +( +e +-> +g +,-> + +. +pcb +,->. +n +); + +166 } if( +e +-> +evt + = +LWIP_TCP_POLL +){ + +168 +AsyncCl +:: + `_s_pl +( +e +-> +g +,-> +pl +. +pcb +); + +169 } if( +e +-> +evt + = +LWIP_TCP_ERROR +){ + +171 +AsyncCl +:: + `_s_r +( +e +-> +g +,-> +r +. +r +); + +172 } if( +e +-> +evt + = +LWIP_TCP_CONNECTED +){ + +174 +AsyncCl +:: + `_s_ced +( +e +-> +g +,-> +ced +. +pcb +,->ced. +r +); + +175 } if( +e +-> +evt + = +LWIP_TCP_ACCEPT +){ + +177 +AsyncSv +:: + `_s_aced +( +e +-> +g +,-> +ac +. + +); + +178 } if( +e +-> +evt + = +LWIP_TCP_DNS +){ + +180 +AsyncCl +:: + `_s_dns_found +( +e +-> +dns +. +me +, &e->dns. +addr +,-> +g +); + +182 + ` +((*)( +e +)); + +183 + } +} + +185  + $_async_rvi_sk +(* +pvPams +){ + +186 +lw_evt_ck_t + * +ck + = +NULL +; + +188 if( + `_g_async_evt +(& +ck +)){ + +189 #i +CONFIG_ASYNC_TCP_USE_WDT + + +190 if( + `e_sk_wdt_add +( +NULL +! +ESP_OK +){ + +191 + `log_e +("Failedoddsyncasko WDT"); + +194 + `_hd_async_evt +( +ck +); + +195 #i +CONFIG_ASYNC_TCP_USE_WDT + + +196 if( + `e_sk_wdt_de +( +NULL +! +ESP_OK +){ + +197 + `log_e +("Failedoemoveoopask from WDT"); + +202 + `vTaskDe +( +NULL +); + +203 +_async_rvi_sk_hd + = +NULL +; + +204 + } +} + +213  +bo + + $_t_async_sk +(){ + +214 if(! + `__async_evt_queue +()){ + +215  +l +; + +217 if(! +_async_rvi_sk_hd +){ + +218 + `xTaskCeUnivl +( +_async_rvi_sk +, "async_t", 8192 * 2, +NULL +, 3, & +_async_rvi_sk_hd +, +CONFIG_ASYNC_TCP_RUNNING_CORE +); + +219 if(! +_async_rvi_sk_hd +){ + +220  +l +; + +223  +ue +; + +224 + } +} + +230  +t8_t + + $_t_r_evts +(* +g +) { + +231 +lw_evt_ck_t + * +e + = (lw_evt_ck_*) + `mloc +((lwip_event_packet_t)); + +232 +e +-> +evt + = +LWIP_TCP_CLEAR +; + +233 +e +-> +g + =rg; + +234 i(! + `_d_async_evt +(& +e +)) { + +235 + ` +((*)( +e +)); + +237  +ERR_OK +; + +238 + } +} + +240  +t8_t + + $_t_ced +(* +g +, +t_pcb + * +pcb +, +t8_t + +r +) { + +242 +lw_evt_ck_t + * +e + = (lw_evt_ck_*) + `mloc +((lwip_event_packet_t)); + +243 +e +-> +evt + = +LWIP_TCP_CONNECTED +; + +244 +e +-> +g + =rg; + +245 +e +-> +ced +. +pcb + =cb; + +246 +e +-> +ced +. +r + =rr; + +247 i(! + `_d_async_evt +(& +e +)) { + +248 + ` +((*)( +e +)); + +250  +ERR_OK +; + +251 + } +} + +253  +t8_t + + $_t_pl +(* +g +,  +t_pcb + * +pcb +) { + +255 +lw_evt_ck_t + * +e + = (lw_evt_ck_*) + `mloc +((lwip_event_packet_t)); + +256 +e +-> +evt + = +LWIP_TCP_POLL +; + +257 +e +-> +g + =rg; + +258 +e +-> +pl +. +pcb + =cb; + +259 i(! + `_nd_async_evt +(& +e +)) { + +260 + ` +((*)( +e +)); + +262  +ERR_OK +; + +263 + } +} + +265  +t8_t + + $_t_cv +(* +g +,  +t_pcb + * +pcb +,  +pbuf + * +pb +, +t8_t + +r +) { + +266 +lw_evt_ck_t + * +e + = (lw_evt_ck_*) + `mloc +((lwip_event_packet_t)); + +267 +e +-> +g + =rg; + +268 if( +pb +){ + +270 +e +-> +evt + = +LWIP_TCP_RECV +; + +271 +e +-> +cv +. +pcb + =cb; + +272 +e +-> +cv +. +pb + =b; + +273 +e +-> +cv +. +r + =rr; + +276 +e +-> +evt + = +LWIP_TCP_FIN +; + +277 +e +-> +f +. +pcb + =cb; + +278 +e +-> +f +. +r + =rr; + +280 +AsyncCl +:: + `_s_lw_f +( +e +-> +g +,-> +f +. +pcb +,->f. +r +); + +282 i(! + `_nd_async_evt +(& +e +)) { + +283 + ` +((*)( +e +)); + +285  +ERR_OK +; + +286 + } +} + +288  +t8_t + + $_t_ +(* +g +,  +t_pcb + * +pcb +, +ut16_t + +n +) { + +290 +lw_evt_ck_t + * +e + = (lw_evt_ck_*) + `mloc +((lwip_event_packet_t)); + +291 +e +-> +evt + = +LWIP_TCP_SENT +; + +292 +e +-> +g + =rg; + +293 +e +-> + +. +pcb + =cb; + +294 +e +-> + +. +n + =en; + +295 i(! + `_nd_async_evt +(& +e +)) { + +296 + ` +((*)( +e +)); + +298  +ERR_OK +; + +299 + } +} + +301  + $_t_r +(* +g +, +t8_t + +r +) { + +303 +lw_evt_ck_t + * +e + = (lw_evt_ck_*) + `mloc +((lwip_event_packet_t)); + +304 +e +-> +evt + = +LWIP_TCP_ERROR +; + +305 +e +-> +g + =rg; + +306 +e +-> +r +. +r + =rr; + +307 i(! + `_nd_async_evt +(& +e +)) { + +308 + ` +((*)( +e +)); + +310 + } +} + +312  + $_t_dns_found +(cڡ * +me +,  +_addr + * +addr +, * +g +) { + +313 +lw_evt_ck_t + * +e + = (lw_evt_ck_*) + `mloc +((lwip_event_packet_t)); + +315 +e +-> +evt + = +LWIP_TCP_DNS +; + +316 +e +-> +g + =rg; + +317 +e +-> +dns +. +me + =ame; + +318 i( +addr +) { + +319 + `memy +(& +e +-> +dns +. +addr +, +addr +, ( +_addr +)); + +321 + `memt +(& +e +-> +dns +. +addr +, 0, (e->dns.addr)); + +323 i(! + `_nd_async_evt +(& +e +)) { + +324 + ` +((*)( +e +)); + +326 + } +} + +329  +t8_t + + $_t_ac +(* +g +, +AsyncCl + * + +) { + +330 +lw_evt_ck_t + * +e + = (lw_evt_ck_*) + `mloc +((lwip_event_packet_t)); + +331 +e +-> +evt + = +LWIP_TCP_ACCEPT +; + +332 +e +-> +g + =rg; + +333 +e +-> +ac +. + + = client; + +334 i(! + `_d_async_evt +(& +e +)) { + +335 + ` +((*)( +e +)); + +337  +ERR_OK +; + +338 + } +} + +344  + ~"lw/iv/t_iv.h +" + +347  +t_i__da + + m +; + +348 +t_pcb + * + mpcb +; + +349 +t8_t + + mod_ +; + +350 +t8_t + + mr +; + +353 cڡ * + mda +; + +354 +size_t + + msize +; + +355 +ut8_t + + miags +; + +356 } + mwre +; + +357 +size_t + + mived +; + +359 +_addr_t + * + maddr +; + +360 +ut16_t + + mpt +; + +361 +t_ced_ + + mcb +; + +362 } + mc +; + +364 +_addr_t + * + maddr +; + +365 +ut16_t + + mpt +; + +366 } + mbd +; + +367 +ut8_t + + mbacklog +; + +369 } + tt_i__t +; + +371  +r_t + + $_t_ouut_i +( +t_i__da + * +i__msg +){ + +372 +t_i__t + * +msg + = (t_i__*) +i__msg +; + +373 +msg +-> +r + = +ERR_CONN +; + +374 if( +msg +-> +od_ + =-1 || ! +_od_s +[msg->closed_slot]) { + +375 +msg +-> +r + = + `t_ouut +(msg-> +pcb +); + +377  +msg +-> +r +; + +378 + } +} + +380  +e_r_t + + $_t_ouut +( +t_pcb + * +pcb +, +t8_t + +od_ +) { + +381 if(! +pcb +){ + +382  +ERR_CONN +; + +384 +t_i__t + +msg +; + +385 +msg +. +pcb + =cb; + +386 +msg +. +od_ + = closed_slot; + +387 + `t_i_ +( +_t_ouut_i +, ( +t_i__da +*)& +msg +); + +388  +msg +. +r +; + +389 + } +} + +391  +r_t + + $_t_wre_i +( +t_i__da + * +i__msg +){ + +392 +t_i__t + * +msg + = (t_i__*) +i__msg +; + +393 +msg +-> +r + = +ERR_CONN +; + +394 if( +msg +-> +od_ + =-1 || ! +_od_s +[msg->closed_slot]) { + +395 +msg +-> +r + = + `t_wre +(msg-> +pcb +, msg-> +wre +. +da +, msg->wre. +size +, msg->wre. +iags +); + +397  +msg +-> +r +; + +398 + } +} + +400  +e_r_t + + $_t_wre +( +t_pcb + * +pcb +, +t8_t + +od_ +, cڡ * +da +, +size_t + +size +, +ut8_t + +iags +) { + +401 if(! +pcb +){ + +402  +ERR_CONN +; + +404 +t_i__t + +msg +; + +405 +msg +. +pcb + =cb; + +406 +msg +. +od_ + = closed_slot; + +407 +msg +. +wre +. +da + = data; + +408 +msg +. +wre +. +size + = size; + +409 +msg +. +wre +. +iags + =piflags; + +410 + `t_i_ +( +_t_wre_i +, ( +t_i__da +*)& +msg +); + +411  +msg +. +r +; + +412 + } +} + +414  +r_t + + $_t_cved_i +( +t_i__da + * +i__msg +){ + +415 +t_i__t + * +msg + = (t_i__*) +i__msg +; + +416 +msg +-> +r + = +ERR_CONN +; + +417 if( +msg +-> +od_ + =-1 || ! +_od_s +[msg->closed_slot]) { + +418 +msg +-> +r + = 0; + +419 + `t_cved +( +msg +-> +pcb +, msg-> +ived +); + +421  +msg +-> +r +; + +422 + } +} + +424  +e_r_t + + $_t_cved +( +t_pcb + * +pcb +, +t8_t + +od_ +, +size_t + +n +) { + +425 if(! +pcb +){ + +426  +ERR_CONN +; + +428 +t_i__t + +msg +; + +429 +msg +. +pcb + =cb; + +430 +msg +. +od_ + = closed_slot; + +431 +msg +. +ived + = +n +; + +432 + `t_i_ +( +_t_cved_i +, ( +t_i__da +*)& +msg +); + +433  +msg +. +r +; + +434 + } +} + +436  +r_t + + $_t_o_i +( +t_i__da + * +i__msg +){ + +437 +t_i__t + * +msg + = (t_i__*) +i__msg +; + +438 +msg +-> +r + = +ERR_CONN +; + +439 if( +msg +-> +od_ + =-1 || ! +_od_s +[msg->closed_slot]) { + +440 +msg +-> +r + = + `t_o +(msg-> +pcb +); + +442  +msg +-> +r +; + +443 + } +} + +445  +e_r_t + + $_t_o +( +t_pcb + * +pcb +, +t8_t + +od_ +) { + +446 if(! +pcb +){ + +447  +ERR_CONN +; + +449 +t_i__t + +msg +; + +450 +msg +. +pcb + =cb; + +451 +msg +. +od_ + = closed_slot; + +452 + `t_i_ +( +_t_o_i +, ( +t_i__da +*)& +msg +); + +453  +msg +. +r +; + +454 + } +} + +456  +r_t + + $_t_abt_i +( +t_i__da + * +i__msg +){ + +457 +t_i__t + * +msg + = (t_i__*) +i__msg +; + +458 +msg +-> +r + = +ERR_CONN +; + +459 if( +msg +-> +od_ + =-1 || ! +_od_s +[msg->closed_slot]) { + +460 + `t_abt +( +msg +-> +pcb +); + +462  +msg +-> +r +; + +463 + } +} + +465  +e_r_t + + $_t_abt +( +t_pcb + * +pcb +, +t8_t + +od_ +) { + +466 if(! +pcb +){ + +467  +ERR_CONN +; + +469 +t_i__t + +msg +; + +470 +msg +. +pcb + =cb; + +471 +msg +. +od_ + = closed_slot; + +472 + `t_i_ +( +_t_abt_i +, ( +t_i__da +*)& +msg +); + +473  +msg +. +r +; + +474 + } +} + +476  +r_t + + $_t_c_i +( +t_i__da + * +i__msg +){ + +477 +t_i__t + * +msg + = (t_i__*) +i__msg +; + +478 +msg +-> +r + = + `t_c +(msg-> +pcb +, msg-> +c +. +addr +, msg->c. +pt +, msg->c. +cb +); + +479  +msg +-> +r +; + +480 + } +} + +482  +e_r_t + + $_t_c +( +t_pcb + * +pcb +, +t8_t + +od_ +, +_addr_t + * +addr +, +ut16_t + +pt +, +t_ced_ + +cb +) { + +483 if(! +pcb +){ + +484  +ESP_FAIL +; + +486 +t_i__t + +msg +; + +487 +msg +. +pcb + =cb; + +488 +msg +. +od_ + = closed_slot; + +489 +msg +. +c +. +addr + =ddr; + +490 +msg +. +c +. +pt + =ort; + +491 +msg +. +c +. +cb + = cb; + +492 + `t_i_ +( +_t_c_i +, ( +t_i__da +*)& +msg +); + +493  +msg +. +r +; + +494 + } +} + +496  +r_t + + $_t_bd_i +( +t_i__da + * +i__msg +){ + +497 +t_i__t + * +msg + = (t_i__*) +i__msg +; + +498 +msg +-> +r + = + `t_bd +(msg-> +pcb +, msg-> +bd +. +addr +, msg->bd. +pt +); + +499  +msg +-> +r +; + +500 + } +} + +502  +e_r_t + + $_t_bd +( +t_pcb + * +pcb +, +_addr_t + * +addr +, +ut16_t + +pt +) { + +503 if(! +pcb +){ + +504  +ESP_FAIL +; + +506 +t_i__t + +msg +; + +507 +msg +. +pcb + =cb; + +508 +msg +. +od_ + = -1; + +509 +msg +. +bd +. +addr + =ddr; + +510 +msg +. +bd +. +pt + =ort; + +511 + `t_i_ +( +_t_bd_i +, ( +t_i__da +*)& +msg +); + +512  +msg +. +r +; + +513 + } +} + +515  +r_t + + $_t_li_i +( +t_i__da + * +i__msg +){ + +516 +t_i__t + * +msg + = (t_i__*) +i__msg +; + +517 +msg +-> +r + = 0; + +518 +msg +-> +pcb + = + `t_li_wh_backlog +(msg->pcb, msg-> +backlog +); + +519  +msg +-> +r +; + +520 + } +} + +522  +t_pcb + * + $_t_li_wh_backlog +( +t_pcb + * +pcb +, +ut8_t + +backlog +) { + +523 if(! +pcb +){ + +524  +NULL +; + +526 +t_i__t + +msg +; + +527 +msg +. +pcb + =cb; + +528 +msg +. +od_ + = -1; + +529 +msg +. +backlog + = backlog?backlog:0xFF; + +530 + `t_i_ +( +_t_li_i +, ( +t_i__da +*)& +msg +); + +531  +msg +. +pcb +; + +532 + } +} + +540 + gAsyncCl +:: + $AsyncCl +( +t_pcb +* +pcb +) + +541 : + `_c_cb +(0) + +542 , + `_c_cb_g +(0) + +543 , + `_disrd_cb +(0) + +544 , + `_disrd_cb_g +(0) + +545 , + `__cb +(0) + +546 , + `__cb_g +(0) + +547 , + `_r_cb +(0) + +548 , + `_r_cb_g +(0) + +549 , + `_cv_cb +(0) + +550 , + `_cv_cb_g +(0) + +551 , + `_pb_cb +(0) + +552 , + `_pb_cb_g +(0) + +553 , + `_timeout_cb +(0) + +554 , + `_timeout_cb_g +(0) + +555 , + `_pcb_busy +( +l +) + +556 , + `_pcb__ +(0) + +557 , + `_ack_pcb +( +ue +) + +558 , + `_rx_ϡ_ck +(0) + +559 , + `_rx_s_timeout +(0) + +560 , + `_ack_timeout +( +ASYNC_MAX_ACK_TIME +) + +561 , + `_c_pt +(0) + +562 , + `ev +( +NULL +) + +563 , + $xt +( +NULL +) + +565 +_pcb + = +pcb +; + +566 +_od_ + = -1; + +567 if( +_pcb +){ + +568 + `xSemheTake +( +_s_lock +, +ptMAX_DELAY +); + +569  +od__m_dex + = 0; + +570  +i + = 0; i < +_numb_of_od_s +; ++ i) { + +571 i(( +_od_ + =-1 || +_od_s +[ +i +] < +od__m_dex +) && _closed_slots[i] != 0) { + +572 +od__m_dex + = +_od_s +[ +i +]; + +573 +_od_ + = +i +; + +576 +_od_s +[ +_od_ +] = 0; + +577 + `xSemheGive +( +_s_lock +); + +579 +_rx_ϡ_ck + = + `mlis +(); + +580 + `t_g +( +_pcb +, +this +); + +581 + `t_cv +( +_pcb +, & +_t_cv +); + +582 + `t_ +( +_pcb +, & +_t_ +); + +583 + `t_r +( +_pcb +, & +_t_r +); + +584 + `t_pl +( +_pcb +, & +_t_pl +, 1); + +586 + } +} + +588 + gAsyncCl +::~ + $AsyncCl +(){ + +589 if( +_pcb +) { + +590 + `_o +(); + +592 + } +} + +598 + gAsyncCl +& AsyncCl:: +ݔ +=(cڡ +AsyncCl +& +h +){ + +599 i( +_pcb +) { + +600 +_o +(); + +603 + g_pcb + = +h +. +_pcb +; + +604 + g_od_ + = +h +. +_od_ +; + +605 i( + g_pcb +) { + +606 + g_rx_ϡ_ck + = +mlis +(); + +607 +t_g +( +_pcb +, +this +); + +608 +t_cv +( +_pcb +, & +_t_cv +); + +609 +t_ +( +_pcb +, & +_t_ +); + +610 +t_r +( +_pcb +, & +_t_r +); + +611 +t_pl +( +_pcb +, & +_t_pl +, 1); + +613  * + gthis +; + +616 +bo + + gAsyncCl +:: +ݔ +==(cڡ +AsyncCl + & +h +) { + +617  +_pcb + = +h +._pcb; + +620 + gAsyncCl + & AsyncCl:: +ݔ ++=(cڡ +AsyncCl + & +h +) { + +621 if( +xt + = +NULL +){ + +622 +xt + = ( +AsyncCl +*)(& +h +); + +623 + gxt +-> + gev + = +this +; + +625 +AsyncCl + * + gc + = +xt +; + +626  + gc +-> + gxt + ! +NULL +) { + +627 +c + = c-> +xt +; + +629 + gc +-> + gxt + =( +AsyncCl +*)(& +h +); + +630 + gc +-> + gxt +-> + gev + = +c +; + +632  * + gthis +; + +639  + gAsyncCl +:: + $C +( +AcCHdr + +cb +, * +g +){ + +640 +_c_cb + = +cb +; + +641 +_c_cb_g + = +g +; + +642 + } +} + +644  + gAsyncCl +:: + $Disc +( +AcCHdr + +cb +, * +g +){ + +645 +_disrd_cb + = +cb +; + +646 +_disrd_cb_g + = +g +; + +647 + } +} + +649  + gAsyncCl +:: + $Ack +( +AcAckHdr + +cb +, * +g +){ + +650 +__cb + = +cb +; + +651 +__cb_g + = +g +; + +652 + } +} + +654  + gAsyncCl +:: + $E +( +AcEHdr + +cb +, * +g +){ + +655 +_r_cb + = +cb +; + +656 +_r_cb_g + = +g +; + +657 + } +} + +659  + gAsyncCl +:: + $Da +( +AcDaHdr + +cb +, * +g +){ + +660 +_cv_cb + = +cb +; + +661 +_cv_cb_g + = +g +; + +662 + } +} + +664  + gAsyncCl +:: + $Pack +( +AcPackHdr + +cb +, * +g +){ + +665 +_pb_cb + = +cb +; + +666 +_pb_cb_g + = +g +; + +667 + } +} + +669  + gAsyncCl +:: + $Timeout +( +AcTimeoutHdr + +cb +, * +g +){ + +670 +_timeout_cb + = +cb +; + +671 +_timeout_cb_g + = +g +; + +672 + } +} + +674  + gAsyncCl +:: + $Pl +( +AcCHdr + +cb +, * +g +){ + +675 +_pl_cb + = +cb +; + +676 +_pl_cb_g + = +g +; + +677 + } +} + +683 +bo + + gAsyncCl +:: + $c +( +IPAddss + + +, +ut16_t + +pt +){ + +684 i( +_pcb +){ + +685 + `log_w +("ady ced, s %d", +_pcb +-> +e +); + +686  +l +; + +688 if(! + `_t_async_sk +()){ + +689 + `log_e +("failedo startask"); + +690  +l +; + +693 +_addr_t + +addr +; + +694 +addr +. +ty + = +IPADDR_TYPE_V4 +; + +695 +addr +. +u_addr +. +4 +.add + +; + +697 +t_pcb +* +pcb + = + `t_w__ty +( +IPADDR_TYPE_V4 +); + +698 i(! +pcb +){ + +699 + `log_e +("pcb == NULL"); + +700  +l +; + +703 + `t_g +( +pcb +, +this +); + +704 + `t_r +( +pcb +, & +_t_r +); + +705 + `t_cv +( +pcb +, & +_t_cv +); + +706 + `t_ +( +pcb +, & +_t_ +); + +707 + `t_pl +( +pcb +, & +_t_pl +, 1); + +709 + `_t_c +( +pcb +, +_od_ +, & +addr +, +pt +,( +t_ced_ +)& +_t_ced +); + +710  +ue +; + +711 + } +} + +713 +bo + + gAsyncCl +:: + $c +(cڡ * +ho +, +ut16_t + +pt +){ + +714 +_addr_t + +addr +; + +716 if(! + `_t_async_sk +()){ + +717 +Sl +. + `n +("failedo startask"); + +718 + `log_e +("failedo startask"); + +719  +l +; + +722 +r_t + +r + = + `dns_ghobyme +( +ho +, & +addr +, ( +dns_found_back +)& +_t_dns_found +, +this +); + +723 if( +r + = +ERR_OK +) { + +724  + `c +( + `IPAddss +( +addr +. +u_addr +. +4 +.addr), +pt +); + +725 } if( +r + = +ERR_INPROGRESS +) { + +726 +_c_pt + = +pt +; + +727  +ue +; + +729 + `log_e +("r: %d", +r +); + +730  +l +; + +731 + } +} + +733  + gAsyncCl +:: + $o +( +bo + +now +){ + +734 if( +_pcb +){ + +735 + `_t_cved +( +_pcb +, +_od_ +, +_rx_ack_n +); + +737 + `_o +(); + +738 + } +} + +740 +t8_t + + gAsyncCl +:: + $abt +(){ + +741 if( +_pcb +) { + +742 + `_t_abt +( +_pcb +, +_od_ + ); + +743 +_pcb + = +NULL +; + +745  +ERR_ABRT +; + +746 + } +} + +748 +size_t + + gAsyncCl +:: + $a +(){ + +749 if(( +_pcb + ! +NULL +&& (_pcb-> +e + == 4)){ + +750  + `t_dbuf +( +_pcb +); + +753 + } +} + +755 +size_t + + gAsyncCl +:: + $add +(cڡ * +da +, +size_t + +size +, +ut8_t + +iags +) { + +756 if(! +_pcb + || +size + =0 || +da + = +NULL +) { + +759 +size_t + +room + = + `a +(); + +760 if(! +room +) { + +763 +size_t + +wl_nd + = ( +room + < +size +) ?oom : size; + +764 +t8_t + +r + = +ERR_OK +; + +765 +r + = + `_t_wre +( +_pcb +, +_od_ +, +da +, +wl_nd +, +iags +); + +766 if( +r + ! +ERR_OK +) { + +769  +wl_nd +; + +770 + } +} + +772 +bo + + gAsyncCl +:: + $nd +(){ + +773 +t8_t + +r + = +ERR_OK +; + +774 +r + = + `_t_ouut +( +_pcb +, +_od_ +); + +775 if( +r + = +ERR_OK +){ + +776 +_pcb_busy + = +ue +; + +777 +_pcb__ + = + `mlis +(); + +778  +ue +; + +780  +l +; + +781 + } +} + +783 +size_t + + gAsyncCl +:: + $ack +( +size_t + +n +){ + +784 if( +n + > +_rx_ack_n +) + +785 +n + = +_rx_ack_n +; + +786 if( +n +){ + +787 + `_t_cved +( +_pcb +, +_od_ +, +n +); + +789 +_rx_ack_n + - +n +; + +790  +n +; + +791 + } +} + +793  + gAsyncCl +:: + $ackPack +( +pbuf + * +pb +){ + +794 if(! +pb +){ + +797 + `_t_cved +( +_pcb +, +_od_ +, +pb +-> +n +); + +798 + `pbuf_ +( +pb +); + +799 + } +} + +805 +t8_t + + gAsyncCl +:: + $_o +(){ + +807 +t8_t + +r + = +ERR_OK +; + +808 if( +_pcb +) { + +810 + `t_g +( +_pcb +, +NULL +); + +811 + `t_ +( +_pcb +, +NULL +); + +812 + `t_cv +( +_pcb +, +NULL +); + +813 + `t_r +( +_pcb +, +NULL +); + +814 + `t_pl +( +_pcb +, +NULL +, 0); + +815 + `_t_r_evts +( +this +); + +816 +r + = + `_t_o +( +_pcb +, +_od_ +); + +817 if( +r + ! +ERR_OK +) { + +818 +r + = + `abt +(); + +820 +_pcb + = +NULL +; + +821 if( +_disrd_cb +) { + +822 + `_disrd_cb +( +_disrd_cb_g +, +this +); + +825  +r +; + +826 + } +} + +832 +t8_t + + gAsyncCl +:: + $_ced +(* +pcb +, +t8_t + +r +){ + +833 +_pcb + = +t_ +< +t_pcb +*>( +pcb +); + +834 if( +_pcb +){ + +835 +_rx_ϡ_ck + = + `mlis +(); + +836 +_pcb_busy + = +l +; + +841 if( +_c_cb +) { + +842 + `_c_cb +( +_c_cb_g +, +this +); + +844  +ERR_OK +; + +845 + } +} + +847  + gAsyncCl +:: + $_r +( +t8_t + +r +) { + +848 if( +_pcb +){ + +849 + `t_g +( +_pcb +, +NULL +); + +850 + `t_ +( +_pcb +, +NULL +); + +851 + `t_cv +( +_pcb +, +NULL +); + +852 + `t_r +( +_pcb +, +NULL +); + +853 + `t_pl +( +_pcb +, +NULL +, 0); + +854 +_pcb + = +NULL +; + +856 if( +_r_cb +) { + +857 + `_r_cb +( +_r_cb_g +, +this +, +r +); + +859 if( +_disrd_cb +) { + +860 + `_disrd_cb +( +_disrd_cb_g +, +this +); + +862 + } +} + +865 +t8_t + + gAsyncCl +:: + $_lw_f +( +t_pcb +* +pcb +, +t8_t + +r +) { + +866 if(! +_pcb + || +pcb + != _pcb){ + +867 + `log_e +("0x%08x !0x%08x", ( +ut32_t +) +pcb +, (ut32_t) +_pcb +); + +868  +ERR_OK +; + +870 + `t_g +( +_pcb +, +NULL +); + +871 + `t_ +( +_pcb +, +NULL +); + +872 + `t_cv +( +_pcb +, +NULL +); + +873 + `t_r +( +_pcb +, +NULL +); + +874 + `t_pl +( +_pcb +, +NULL +, 0); + +875 if( + `t_o +( +_pcb +! +ERR_OK +) { + +876 + `t_abt +( +_pcb +); + +878 +_od_s +[ +_od_ +] = +_od_dex +; + +879 ++ +_od_dex +; + +880 +_pcb + = +NULL +; + +881  +ERR_OK +; + +882 + } +} + +885 +t8_t + + gAsyncCl +:: + $_f +( +t_pcb +* +pcb +, +t8_t + +r +) { + +886 + `_t_r_evts +( +this +); + +887 if( +_disrd_cb +) { + +888 + `_disrd_cb +( +_disrd_cb_g +, +this +); + +890  +ERR_OK +; + +891 + } +} + +893 +t8_t + + gAsyncCl +:: + $_ +( +t_pcb +* +pcb +, +ut16_t + +n +) { + +894 +_rx_ϡ_ck + = + `mlis +(); + +896 +_pcb_busy + = +l +; + +897 if( +__cb +) { + +898 + `__cb +( +__cb_g +, +this +, +n +, ( + `mlis +(- +_pcb__ +)); + +900  +ERR_OK +; + +901 + } +} + +903 +t8_t + + gAsyncCl +:: + $_cv +( +t_pcb +* +pcb +, +pbuf +* +pb +, +t8_t + +r +) { + +904  +pb + ! +NULL +) { + +905 +_rx_ϡ_ck + = + `mlis +(); + +907 +_ack_pcb + = +ue +; + +908 +pbuf + * +b + = +pb +; + +909 +pb + = +b +-> +xt +; + +910 +b +-> +xt + = +NULL +; + +911 if( +_pb_cb +){ + +912 + `_pb_cb +( +_pb_cb_g +, +this +, +b +); + +914 if( +_cv_cb +) { + +915 + `_cv_cb +( +_cv_cb_g +, +this +, +b +-> +yld +, b-> +n +); + +917 if(! +_ack_pcb +) { + +918 +_rx_ack_n + + +b +-> +n +; + +919 } if( +_pcb +) { + +920 + `_t_cved +( +_pcb +, +_od_ +, +b +-> +n +); + +922 + `pbuf_ +( +b +); + +925  +ERR_OK +; + +926 + } +} + +928 +t8_t + + gAsyncCl +:: + $_pl +( +t_pcb +* +pcb +){ + +929 if(! +_pcb +){ + +930 + `log_w +("pcb is NULL"); + +931  +ERR_OK +; + +933 if( +pcb + ! +_pcb +){ + +934 + `log_e +("0x%08x !0x%08x", ( +ut32_t +) +pcb +, (ut32_t) +_pcb +); + +935  +ERR_OK +; + +938 +ut32_t + +now + = + `mlis +(); + +941 if( +_pcb_busy + && +_ack_timeout + && ( +now + - +_pcb__ +) >= _ack_timeout){ + +942 +_pcb_busy + = +l +; + +943 + `log_w +("ackimeou%d", +pcb +-> +e +); + +944 if( +_timeout_cb +) + +945 + `_timeout_cb +( +_timeout_cb_g +, +this +, ( +now + - +_pcb__ +)); + +946  +ERR_OK +; + +949 if( +_rx_s_timeout + && ( +now + - +_rx_ϡ_ck +) >= (_rx_since_timeout * 1000)){ + +950 + `log_w +("rximeou%d", +pcb +-> +e +); + +951 + `_o +(); + +952  +ERR_OK +; + +955 if( +_pl_cb +) { + +956 + `_pl_cb +( +_pl_cb_g +, +this +); + +958  +ERR_OK +; + +959 + } +} + +961  + gAsyncCl +:: + $_dns_found +( +_addr + * +addr +){ + +962 if( +addr + && iddr-> +u_addr +. +4 +. +addr +){ + +963 + `c +( + `IPAddss +( +addr +-> +u_addr +. +4 +. +addr +), +_c_pt +); + +965 if( +_r_cb +) { + +966 + `_r_cb +( +_r_cb_g +, +this +, -55); + +968 if( +_disrd_cb +) { + +969 + `_disrd_cb +( +_disrd_cb_g +, +this +); + +972 + } +} + +978  + gAsyncCl +:: + $ +() { + +979 + `o +( +l +); + +980 + } +} + +982 +bo + + gAsyncCl +:: + $ +(){ + +983 if(! +_pcb +) { + +984  +ue +; + +986 if( +_pcb +-> +e + == 0 || _pcb->state > 4) { + +987  +ue +; + +989  +l +; + +990 + } +} + +992 +size_t + + gAsyncCl +:: + $wre +(cڡ * +da +) { + +993 if( +da + = +NULL +) { + +996  + `wre +( +da +, + ` +(data)); + +997 + } +} + +999 +size_t + + gAsyncCl +:: + $wre +(cڡ * +da +, +size_t + +size +, +ut8_t + +iags +) { + +1000 +size_t + +wl_nd + = + `add +( +da +, +size +, +iags +); + +1001 if(! +wl_nd + || ! + `nd +()) { + +1004  +wl_nd +; + +1005 + } +} + +1007  + gAsyncCl +:: + $tRxTimeout +( +ut32_t + +timeout +){ + +1008 +_rx_s_timeout + = +timeout +; + +1009 + } +} + +1011 +ut32_t + + gAsyncCl +:: + $gRxTimeout +(){ + +1012  +_rx_s_timeout +; + +1013 + } +} + +1015 +ut32_t + + gAsyncCl +:: + $gAckTimeout +(){ + +1016  +_ack_timeout +; + +1017 + } +} + +1019  + gAsyncCl +:: + $tAckTimeout +( +ut32_t + +timeout +){ + +1020 +_ack_timeout + = +timeout +; + +1021 + } +} + +1023  + gAsyncCl +:: + $tNoDay +( +bo + +noday +){ + +1024 if(! +_pcb +) { + +1027 if( +noday +) { + +1028 + `t_g_dib +( +_pcb +); + +1030 + `t_g_ab +( +_pcb +); + +1032 + } +} + +1034 +bo + + gAsyncCl +:: + $gNoDay +(){ + +1035 if(! +_pcb +) { + +1036  +l +; + +1038  + `t_g_dibd +( +_pcb +); + +1039 + } +} + +1041 +ut16_t + + gAsyncCl +:: + $gMss +(){ + +1042 if(! +_pcb +) { + +1045  + `t_mss +( +_pcb +); + +1046 + } +} + +1048 +ut32_t + + gAsyncCl +:: + $gRemeAddss +() { + +1049 if(! +_pcb +) { + +1052  +_pcb +-> +me_ +. +u_addr +. +4 +. +addr +; + +1053 + } +} + +1055 +ut16_t + + gAsyncCl +:: + $gRemePt +() { + +1056 if(! +_pcb +) { + +1059  +_pcb +-> +me_pt +; + +1060 + } +} + +1062 +ut32_t + + gAsyncCl +:: + $gLolAddss +() { + +1063 if(! +_pcb +) { + +1066  +_pcb +-> +lol_ +. +u_addr +. +4 +. +addr +; + +1067 + } +} + +1069 +ut16_t + + gAsyncCl +:: + $gLolPt +() { + +1070 if(! +_pcb +) { + +1073  +_pcb +-> +lol_pt +; + +1074 + } +} + +1076 +IPAddss + + gAsyncCl +:: + $meIP +() { + +1077  + `IPAddss +( + `gRemeAddss +()); + +1078 + } +} + +1080 +ut16_t + + gAsyncCl +:: + $mePt +() { + +1081  + `gRemePt +(); + +1082 + } +} + +1084 +IPAddss + + gAsyncCl +:: + $lolIP +() { + +1085  + `IPAddss +( + `gLolAddss +()); + +1086 + } +} + +1088 +ut16_t + + gAsyncCl +:: + $lolPt +() { + +1089  + `gLolPt +(); + +1090 + } +} + +1092 +ut8_t + + gAsyncCl +:: + $e +() { + +1093 if(! +_pcb +) { + +1096  +_pcb +-> +e +; + +1097 + } +} + +1099 +bo + + gAsyncCl +:: + $ced +(){ + +1100 i(! +_pcb +) { + +1101  +l +; + +1103  +_pcb +-> +e + == 4; + +1104 + } +} + +1106 +bo + + gAsyncCl +:: + $cg +(){ + +1107 i(! +_pcb +) { + +1108  +l +; + +1110  +_pcb +-> +e + > 0 && _pcb->state < 4; + +1111 + } +} + +1113 +bo + + gAsyncCl +:: + $discg +(){ + +1114 i(! +_pcb +) { + +1115  +l +; + +1117  +_pcb +-> +e + > 4 && _pcb->state < 10; + +1118 + } +} + +1120 +bo + + gAsyncCl +:: + $disced +(){ + +1121 i(! +_pcb +) { + +1122  +ue +; + +1124  +_pcb +-> +e + == 0 || _pcb->state == 10; + +1125 + } +} + +1127 +bo + + gAsyncCl +:: + $ab +(){ + +1128 i(! +_pcb +) { + +1129  +ue +; + +1131  +_pcb +-> +e + == 0 || _pcb->state > 4; + +1132 + } +} + +1134 +bo + + gAsyncCl +:: + $nSd +(){ + +1135  + `a +() > 0; + +1136 + } +} + +1138 cڡ * + gAsyncCl +:: + $rToSg +( +t8_t + +r +){ + +1139  +r +){ + +1140  +ERR_OK +:  "OK"; + +1141  +ERR_MEM +:  "Out of memoryrror"; + +1142  +ERR_BUF +:  "Bufferrror"; + +1143  +ERR_TIMEOUT +:  "Timeout"; + +1144  +ERR_RTE +:  "Routingroblem"; + +1145  +ERR_INPROGRESS +:  "Operation inrogress"; + +1146  +ERR_VAL +:  "Illegal value"; + +1147  +ERR_WOULDBLOCK +:  "Operation would block"; + +1148  +ERR_USE +:  "Address in use"; + +1149  +ERR_ALREADY +:  "Already connected"; + +1150  +ERR_CONN +:  "Not connected"; + +1151  +ERR_IF +:  "Low-leveletifrror"; + +1152  +ERR_ABRT +:  "Connectionborted"; + +1153  +ERR_RST +:  "Connectioneset"; + +1154  +ERR_CLSD +:  "Connection closed"; + +1155  +ERR_ARG +:  "Illegalrgument"; + +1159 + } +} + +1161 cڡ * + gAsyncCl +:: + $eToSg +(){ + +1162  + `e +()){ + +1176 + } +} + +1182  + gAsyncCl +:: + $_s_dns_found +(cڡ * +me +,  +_addr + * +addr +, * +g +){ + +1183 +t_ +< +AsyncCl +*>( +g +)-> + `_dns_found +( +addr +); + +1184 + } +} + +1186 +t8_t + + gAsyncCl +:: + $_s_pl +(* +g +,  +t_pcb + * +pcb +) { + +1187  +t_ +< +AsyncCl +*>( +g +)-> + `_pl +( +pcb +); + +1188 + } +} + +1190 +t8_t + + gAsyncCl +:: + $_s_cv +(* +g +,  +t_pcb + * +pcb +,  +pbuf + * +pb +, +t8_t + +r +) { + +1191  +t_ +< +AsyncCl +*>( +g +)-> + `_cv +( +pcb +, +pb +, +r +); + +1192 + } +} + +1194 +t8_t + + gAsyncCl +:: + $_s_f +(* +g +,  +t_pcb + * +pcb +, +t8_t + +r +) { + +1195  +t_ +< +AsyncCl +*>( +g +)-> + `_f +( +pcb +, +r +); + +1196 + } +} + +1198 +t8_t + + gAsyncCl +:: + $_s_lw_f +(* +g +,  +t_pcb + * +pcb +, +t8_t + +r +) { + +1199  +t_ +< +AsyncCl +*>( +g +)-> + `_lw_f +( +pcb +, +r +); + +1200 + } +} + +1202 +t8_t + + gAsyncCl +:: + $_s_ +(* +g +,  +t_pcb + * +pcb +, +ut16_t + +n +) { + +1203  +t_ +< +AsyncCl +*>( +g +)-> + `_ +( +pcb +, +n +); + +1204 + } +} + +1206  + gAsyncCl +:: + $_s_r +(* +g +, +t8_t + +r +) { + +1207 +t_ +< +AsyncCl +*>( +g +)-> + `_r +( +r +); + +1208 + } +} + +1210 +t8_t + + gAsyncCl +:: + $_s_ced +(* +g +, * +pcb +, +t8_t + +r +){ + +1211  +t_ +< +AsyncCl +*>( +g +)-> + `_ced +( +pcb +, +r +); + +1212 + } +} + +1218 + gAsyncSv +:: + $AsyncSv +( +IPAddss + +addr +, +ut16_t + +pt +) + +1219 : + `_pt +( +pt +) + +1220 , + `_addr +( +addr +) + +1221 , + `_noDay +( +l +) + +1222 , + `_pcb +(0) + +1223 , + `_c_cb +(0) + +1224 , + $_c_cb_g +(0) + +1225 { + } +} + +1227 + gAsyncSv +:: + $AsyncSv +( +ut16_t + +pt +) + +1228 : + `_pt +( +pt +) + +1229 , + `_addr +(( +ut32_t + +IPADDR_ANY +) + +1230 , + `_noDay +( +l +) + +1231 , + `_pcb +(0) + +1232 , + `_c_cb +(0) + +1233 , + $_c_cb_g +(0) + +1234 { + } +} + +1236 + gAsyncSv +::~ + $AsyncSv +(){ + +1237 + `d +(); + +1238 + } +} + +1240  + gAsyncSv +:: + $Cl +( +AcCHdr + +cb +, * +g +){ + +1241 +_c_cb + = +cb +; + +1242 +_c_cb_g + = +g +; + +1243 + } +} + +1245  + gAsyncSv +:: + $beg +(){ + +1246 if( +_pcb +) { + +1250 if(! + `_t_async_sk +()){ + +1251 + `log_e +("failedo startask"); + +1254 +t8_t + +r +; + +1255 +_pcb + = + `t_w__ty +( +IPADDR_TYPE_V4 +); + +1256 i(! +_pcb +){ + +1257 + `log_e +("_pcb == NULL"); + +1261 +_addr_t + +lol_addr +; + +1262 +lol_addr +. +ty + = +IPADDR_TYPE_V4 +; + +1263 +lol_addr +. +u_addr +. +4 +. +addr + = ( +ut32_t + +_addr +; + +1264 +r + = + `_t_bd +( +_pcb +, & +lol_addr +, +_pt +); + +1266 i( +r + ! +ERR_OK +) { + +1267 + `_t_o +( +_pcb +, -1); + +1268 + `log_e +("bd: %d", +r +); + +1272  +ut8_t + +backlog + = 5; + +1273 +_pcb + = + `_t_li_wh_backlog +(_pcb, +backlog +); + +1274 i(! +_pcb +) { + +1275 + `log_e +("listen_pcb == NULL"); + +1278 + `t_g +( +_pcb +, (* +this +); + +1279 + `t_ac +( +_pcb +, & +_s_ac +); + +1280 + } +} + +1282  + gAsyncSv +:: + $d +(){ + +1283 if( +_pcb +){ + +1284 + `t_g +( +_pcb +, +NULL +); + +1285 + `t_ac +( +_pcb +, +NULL +); + +1286 if( + `t_o +( +_pcb +! +ERR_OK +){ + +1287 + `_t_abt +( +_pcb +, -1); + +1289 +_pcb + = +NULL +; + +1291 + } +} + +1294 +t8_t + + gAsyncSv +:: + $_ac +( +t_pcb +* +pcb +, +t8_t + +r +){ + +1296 if( +_c_cb +){ + +1297 +AsyncCl + * +c + = +w + + `AsyncCl +( +pcb +); + +1298 if( +c +){ + +1299 +c +-> + `tNoDay +( +_noDay +); + +1300  + `_t_ac +( +this +, +c +); + +1303 if( + `t_o +( +pcb +! +ERR_OK +){ + +1304 + `t_abt +( +pcb +); + +1306 + `log_e +("FAIL"); + +1307  +ERR_OK +; + +1308 + } +} + +1310 +t8_t + + gAsyncSv +:: + $_aced +( +AsyncCl +* + +){ + +1311 if( +_c_cb +){ + +1312 + `_c_cb +( +_c_cb_g +, + +); + +1314  +ERR_OK +; + +1315 + } +} + +1317  + gAsyncSv +:: + $tNoDay +( +bo + +noday +){ + +1318 +_noDay + = +noday +; + +1319 + } +} + +1321 +bo + + gAsyncSv +:: + $gNoDay +(){ + +1322  +_noDay +; + +1323 + } +} + +1325 +ut8_t + + gAsyncSv +:: + $us +(){ + +1326 i(! +_pcb +) { + +1329  +_pcb +-> +e +; + +1330 + } +} + +1332 +t8_t + + gAsyncSv +:: + $_s_ac +(* +g +, +t_pcb + * +pcb +, +t8_t + +r +){ + +1333  +t_ +< +AsyncSv +*>( +g +)-> + `_ac +( +pcb +, +r +); + +1334 + } +} + +1336 +t8_t + + gAsyncSv +:: + $_s_aced +(* +g +, +AsyncCl +* + +){ + +1337  +t_ +< +AsyncSv +*>( +g +)-> + `_aced +( + +); + +1338 + } +} + + @.pio/libdeps/esp8266/AsyncTCP/src/AsyncTCP.h + +22 #ide +ASYNCTCP_H_ + + +23  + #ASYNCTCP_H_ + + + ) + +25  + ~"IPAddss.h +" + +26  + ~"sdkcfig.h +" + +27  + ~ + +29  + ~"䓹os/mphr.h +" + +30  + ~"lw/pbuf.h +" + +34 #ide +CONFIG_ASYNC_TCP_RUNNING_CORE + + +35  + #CONFIG_ASYNC_TCP_RUNNING_CORE + -1 + +36  + #CONFIG_ASYNC_TCP_USE_WDT + 1 + +38 + + ) + +39 +ass + +AsyncCl +; + +41  + #ASYNC_MAX_ACK_TIME + 5000 + + ) + +42  + #ASYNC_WRITE_FLAG_COPY + 0x01 + +43  + #ASYNC_WRITE_FLAG_MORE + 0x02 + +44 + + ) + +45  + gd +:: + tfuni +<(*, + tAsyncCl +*)> + tAcCHdr +; + +46  + gd +:: + tfuni +<(*, + tAsyncCl +*, + tsize_t + + tn +, + tut32_t + + ttime +)> + tAcAckHdr +; + +47  + gd +:: + tfuni +<(*, + tAsyncCl +*, + tt8_t + + tr +)> + tAcEHdr +; + +48  + gd +:: + tfuni +<(*, + tAsyncCl +*, * + tda +, + tsize_t + + tn +)> + tAcDaHdr +; + +49  + gd +:: + tfuni +<(*, + tAsyncCl +*,  + tpbuf + * + tpb +)> + tAcPackHdr +; + +50  + gd +:: + tfuni +<(*, + tAsyncCl +*, + tut32_t + + ttime +)> + tAcTimeoutHdr +; + +52  + gt_pcb +; + +53  + g_addr +; + +55 as + cAsyncCl + { + +56 + mpublic +: + +57 +AsyncCl +( +t_pcb +* +pcb + = 0); + +58 ~ +AsyncCl +(); + +60 + mAsyncCl + & + mݔ +=(cڡ +AsyncCl + & +h +); + +61 + mAsyncCl + & + mݔ ++=(cڡ +AsyncCl + & +h +); + +63 +bo + + mݔ +==(cڡ +AsyncCl + & +h +); + +65 +bo + + mݔ +!=(cڡ +AsyncCl + & +h +) { + +66  !(* +this + = +h +); + +68 +bo + +c +( +IPAddss + + +, +ut16_t + +pt +); + +69 +bo + +c +(cڡ * +ho +, +ut16_t + +pt +); + +70  +o +( +bo + +now + = +l +); + +71  + +(); + +72 +t8_t + +abt +(); + +73 +bo + + +(); + +75 +bo + +nSd +(); + +76 +size_t + +a +(); + +77 +size_t + +add +(cڡ * +da +, size_ +size +, +ut8_t + +iags += +ASYNC_WRITE_FLAG_COPY +); + +78 +bo + +nd +(); + +81 +size_t + +wre +(cڡ * +da +); + +82 +size_t + +wre +(cڡ * +da +, size_ +size +, +ut8_t + +iags += +ASYNC_WRITE_FLAG_COPY +); + +84 +ut8_t + +e +(); + +85 +bo + +cg +(); + +86 +bo + +ced +(); + +87 +bo + +discg +(); + +88 +bo + +disced +(); + +89 +bo + +ab +(); + +91 +ut16_t + +gMss +(); + +93 +ut32_t + +gRxTimeout +(); + +94  +tRxTimeout +( +ut32_t + +timeout +); + +96 +ut32_t + +gAckTimeout +(); + +97  +tAckTimeout +( +ut32_t + +timeout +); + +99  +tNoDay +( +bo + +noday +); + +100 +bo + +gNoDay +(); + +102 +ut32_t + +gRemeAddss +(); + +103 +ut16_t + +gRemePt +(); + +104 +ut32_t + +gLolAddss +(); + +105 +ut16_t + +gLolPt +(); + +108 +IPAddss + +meIP +(); + +109 +ut16_t + +mePt +(); + +110 +IPAddss + +lolIP +(); + +111 +ut16_t + +lolPt +(); + +113  +C +( +AcCHdr + +cb +, * +g + = 0); + +114  +Disc +( +AcCHdr + +cb +, * +g + = 0); + +115  +Ack +( +AcAckHdr + +cb +, * +g + = 0); + +116  +E +( +AcEHdr + +cb +, * +g + = 0); + +117  +Da +( +AcDaHdr + +cb +, * +g + = 0); + +118  +Pack +( +AcPackHdr + +cb +, * +g + = 0); + +119  +Timeout +( +AcTimeoutHdr + +cb +, * +g + = 0); + +120  +Pl +( +AcCHdr + +cb +, * +g + = 0); + +122  +ackPack +( +pbuf + * +pb +); + +123 +size_t + +ack +(size_ +n +); + +124  + $ackL +(){ +_ack_pcb + = +l +; + } +} + +126 cڡ * +rToSg +( +t8_t + +r +); + +127 cڡ * +eToSg +(); + +130  +t8_t + +_s_pl +(* +g +,  +t_pcb + * +cb +); + +131  +t8_t + +_s_cv +(* +g +,  +t_pcb + * +cb +,  +pbuf + * +pb +, i8_ +r +); + +132  +t8_t + +_s_f +(* +g +,  +t_pcb + * +cb +, i8_ +r +); + +133  +t8_t + +_s_lw_f +(* +g +,  +t_pcb + * +cb +, i8_ +r +); + +134  +_s_r +(* +g +, +t8_t + +r +); + +135  +t8_t + +_s_ +(* +g +,  +t_pcb + * +cb +, +ut16_t + +n +); + +136  +t8_t + +_s_ced +(* +g +, * +cb +, i8_ +r +); + +137  +_s_dns_found +(cڡ * +me +,  +_addr + * +addr +, * +g +); + +139 +t8_t + +_cv +( +t_pcb +* +pcb +, +pbuf +* +pb +, i8_ +r +); + +140 +t_pcb + * + $pcb +(){  +_pcb +; + } +} + +142 + geed +: + +143 +t_pcb +* +_pcb +; + +144 +t8_t + + g_od_ +; + +146 +AcCHdr + + g_c_cb +; + +147 * + g_c_cb_g +; + +148 +AcCHdr + + g_disrd_cb +; + +149 * + g_disrd_cb_g +; + +150 +AcAckHdr + + g__cb +; + +151 * + g__cb_g +; + +152 +AcEHdr + + g_r_cb +; + +153 * + g_r_cb_g +; + +154 +AcDaHdr + + g_cv_cb +; + +155 * + g_cv_cb_g +; + +156 +AcPackHdr + + g_pb_cb +; + +157 * + g_pb_cb_g +; + +158 +AcTimeoutHdr + + g_timeout_cb +; + +159 * + g_timeout_cb_g +; + +160 +AcCHdr + + g_pl_cb +; + +161 * + g_pl_cb_g +; + +163 +bo + + g_pcb_busy +; + +164 +ut32_t + + g_pcb__ +; + +165 +bo + + g_ack_pcb +; + +166 +ut32_t + + g_rx_ack_n +; + +167 +ut32_t + + g_rx_ϡ_ck +; + +168 +ut32_t + + g_rx_s_timeout +; + +169 +ut32_t + + g_ack_timeout +; + +170 +ut16_t + + g_c_pt +; + +172 +t8_t + +_o +(); + +173 +t8_t + +_ced +(* +pcb +, i8_ +r +); + +174  +_r +( +t8_t + +r +); + +175 +t8_t + +_pl +( +t_pcb +* +pcb +); + +176 +t8_t + +_ +( +t_pcb +* +pcb +, +ut16_t + +n +); + +177 +t8_t + +_f +( +t_pcb +* +pcb +, i8_ +r +); + +178 +t8_t + +_lw_f +( +t_pcb +* +pcb +, i8_ +r +); + +179  +_dns_found +( +_addr + * +addr +); + +181 + gpublic +: + +182 +AsyncCl +* +ev +; + +183 +AsyncCl +* + gxt +; + +186 as + cAsyncSv + { + +187 + mpublic +: + +188 +AsyncSv +( +IPAddss + +addr +, +ut16_t + +pt +); + +189 +AsyncSv +( +ut16_t + +pt +); + +190 ~ +AsyncSv +(); + +191  +Cl +( +AcCHdr + +cb +, * +g +); + +192  +beg +(); + +193  +d +(); + +194  +tNoDay +( +bo + +noday +); + +195 +bo + +gNoDay +(); + +196 +ut8_t + +us +(); + +199  +t8_t + +_s_ac +(* +g +, +t_pcb +* +wpcb +, i8_ +r +); + +200  +t8_t + +_s_aced +(* +g +, +AsyncCl +* + +); + +202 + meed +: + +203 +ut16_t + +_pt +; + +204 +IPAddss + + m_addr +; + +205 +bo + + m_noDay +; + +206 +t_pcb +* + m_pcb +; + +207 +AcCHdr + + m_c_cb +; + +208 * + m_c_cb_g +; + +210 +t8_t + +_ac +( +t_pcb +* +wpcb +, i8_ +r +); + +211 +t8_t + +_aced +( +AsyncCl +* + +); + + @.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/config.h + +1 #ide +CONFIG_H + + +2  + #CONFIG_H + + + ) + +15  + #SSID + "ESP-TEST" + + ) + +16  + #PASSWORD + "123456789" + + ) + +18  + #SERVER_HOST_NAME + "e_rv" + + ) + +20  + #TCP_PORT + 7050 + + ) + +21  + #DNS_PORT + 53 + + ) + + @.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/config.h + +1 #ide +CONFIG_H + + +2  + #CONFIG_H + + + ) + +15  + #SSID + "ESP-TEST" + + ) + +16  + #PASSWORD + "123456789" + + ) + +18  + #SERVER_HOST_NAME + "e_rv" + + ) + +20  + #TCP_PORT + 7050 + + ) + +21  + #DNS_PORT + 53 + + ) + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.cpp + +22  + ~"AsyncPrr.h +" + +24 + gAsyncPrr +:: + $AsyncPrr +() + +25 : + `_ +( +NULL +) + +26 , + `_da_cb +( +NULL +) + +27 , + `_da_g +( +NULL +) + +28 , + `_o_cb +( +NULL +) + +29 , + `_o_g +( +NULL +) + +30 , + `_tx_bufr +( +NULL +) + +31 , + `_tx_bufr_size +(1460) + +32 , + $xt +( +NULL +) + +33 { + } +} + +35 + gAsyncPrr +:: + $AsyncPrr +( +AsyncCl + * + +, +size_t + +txBufL +) + +36 : + `_ +( + +) + +37 , + `_da_cb +( +NULL +) + +38 , + `_da_g +( +NULL +) + +39 , + `_o_cb +( +NULL +) + +40 , + `_o_g +( +NULL +) + +41 , + `_tx_bufr +( +NULL +) + +42 , + `_tx_bufr_size +( +txBufL +) + +43 , + $xt +( +NULL +) + +45 + `_chClbacks +(); + +46 +_tx_bufr + = +w + + `cbuf +( +_tx_bufr_size +); + +47 + } +} + +49 + gAsyncPrr +::~ + $AsyncPrr +(){ + +50 + `__o +(); + +51 + } +} + +53  + gAsyncPrr +:: + $Da +( +ApDaHdr + +cb +, * +g +){ + +54 +_da_cb + = +cb +; + +55 +_da_g + = +g +; + +56 + } +} + +58  + gAsyncPrr +:: + $Clo +( +ApCloHdr + +cb +, * +g +){ + +59 +_o_cb + = +cb +; + +60 +_o_g + = +g +; + +61 + } +} + +63  + gAsyncPrr +:: + $c +( +IPAddss + + +, +ut16_t + +pt +){ + +64 if( +_ + ! +NULL + && + `ced +()) + +66 +_ + = +w + + `AsyncCl +(); + +67 +_ +-> + `C +([](* +obj +, +AsyncCl + * +c +){ (( +AsyncPrr +*)(obj))-> + `_C +(c); }, +this +); + +68 if( +_ +-> + `c +( + +, +pt +)){ + +69  +_ +-> + `e +() < 4) + +70 + `day +(1); + +71  + `ced +(); + +74 + } +} + +76  + gAsyncPrr +:: + $c +(cڡ * +ho +, +ut16_t + +pt +){ + +77 if( +_ + ! +NULL + && + `ced +()) + +79 +_ + = +w + + `AsyncCl +(); + +80 +_ +-> + `C +([](* +obj +, +AsyncCl + * +c +){ (( +AsyncPrr +*)(obj))-> + `_C +(c); }, +this +); + +81 if( +_ +-> + `c +( +ho +, +pt +)){ + +82  +_ +-> + `e +() < 4) + +83 + `day +(1); + +84  + `ced +(); + +87 + } +} + +89  + gAsyncPrr +:: + $_C +( +AsyncCl + * +c +){ + +90 if( +_tx_bufr + ! +NULL +){ + +91 +cbuf + * +b + = +_tx_bufr +; + +92 +_tx_bufr + = +NULL +; + +93 +de + +b +; + +95 +_tx_bufr + = +w + + `cbuf +( +_tx_bufr_size +); + +96 + `_chClbacks +(); + +97 + } +} + +99 + gAsyncPrr +:: +ݔ + + $bo +(){  + `ced +(); + } +} + +101 + gAsyncPrr + & AsyncPrr:: +ݔ +=(cڡ +AsyncPrr + & +h +){ + +102 if( +_ + ! +NULL +){ + +103 +_ +-> +o +( +ue +); + +104 + g_ + = +NULL +; + +106 + g_tx_bufr_size + = +h +. +_tx_bufr_size +; + +107 if( + g_tx_bufr + ! +NULL +){ + +108 +cbuf + * +b + = +_tx_bufr +; + +109 + g_tx_bufr + = +NULL +; + +110 +de + + gb +; + +112 + g_tx_bufr + = +w + +cbuf +( +h +. +_tx_bufr_size +); + +113 + g_ + = +h +. +_ +; + +114 +_chClbacks +(); + +115  * + gthis +; + +118 +size_t + + gAsyncPrr +:: + $wre +( +ut8_t + +da +){ + +119  + `wre +(& +da +, 1); + +120 + } +} + +122 +size_t + + gAsyncPrr +:: + $wre +(cڡ +ut8_t + * +da +, +size_t + +n +){ + +123 if( +_tx_bufr + = +NULL + || ! + `ced +()) + +125 +size_t + +toWre + = 0; + +126 +size_t + +toSd + = +n +; + +127  +_tx_bufr +-> + `room +(< +toSd +){ + +128 +toWre + = +_tx_bufr +-> + `room +(); + +129 +_tx_bufr +-> + `wre +((cڡ *) +da +, +toWre +); + +130 ! +_ +-> + `nSd +()) + +131 + `day +(0); + +132 + `_ndBufr +(); + +133 +toSd + - +toWre +; + +135 +_tx_bufr +-> + `wre +((cڡ *)( +da ++( +n + - +toSd +)),oSend); + +136 ! +_ +-> + `nSd +() + `day +(0); + +137 + `_ndBufr +(); + +138  +n +; + +139 + } +} + +141 +bo + + gAsyncPrr +:: + $ced +(){ + +142  ( +_ + ! +NULL + && _-> + `ced +()); + +143 + } +} + +145  + gAsyncPrr +:: + $o +(){ + +146 if( +_ + ! +NULL +) + +147 +_ +-> + `o +( +ue +); + +148 + } +} + +150 +size_t + + gAsyncPrr +:: + $_ndBufr +(){ + +151 +size_t + +avaab + = +_tx_bufr +-> + `avaab +(); + +152 if(! + `ced +(|| ! +_ +-> + `nSd +(|| +avaab + == 0) + +154 +size_t + +ndab + = +_ +-> + `a +(); + +155 if( +ndab + < +avaab +) + +156 +avaab + +ndab +; + +157 * +out + = +w + [ +avaab +]; + +158 +_tx_bufr +-> + `ad +( +out +, +avaab +); + +159 +size_t + + + = +_ +-> + `wre +( +out +, +avaab +); + +160 +de + +out +; + +161  + +; + +162 + } +} + +164  + gAsyncPrr +:: + $_Da +(* +da +, +size_t + +n +){ + +165 if( +_da_cb +) + +166 + `_da_cb +( +_da_g +, +this +, ( +ut8_t +*) +da +, +n +); + +167 + } +} + +169  + gAsyncPrr +:: + $__o +(){ + +170 if( +_ + ! +NULL +){ + +171 +_ + = +NULL +; + +173 if( +_tx_bufr + ! +NULL +){ + +174 +cbuf + * +b + = +_tx_bufr +; + +175 +_tx_bufr + = +NULL +; + +176 +de + +b +; + +178 if( +_o_cb +) + +179 + `_o_cb +( +_o_g +, +this +); + +180 + } +} + +182  + gAsyncPrr +:: + $_chClbacks +(){ + +183 +_ +-> + `Pl +([](* +obj +, +AsyncCl +* +c +){ (( +AsyncPrr +*)(obj))-> + `_ndBufr +(); }, +this +); + +184 +_ +-> + `Ack +([](* +obj +, +AsyncCl +* +c +, +size_t + +n +, +ut32_t + +time +){ (( +AsyncPrr +*)(obj))-> + `_ndBufr +(); }, +this +); + +185 +_ +-> + `Disc +([](* +obj +, +AsyncCl +* +c +){ (( +AsyncPrr +*)(obj))-> + `__o +(); +de + c; }, +this +); + +186 +_ +-> + `Da +([](* +obj +, +AsyncCl +* +c +, * +da +, +size_t + +n +){ (( +AsyncPrr +*)(obj))-> + `_Da +(da,); }, +this +); + +187 + } +} + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.h + +22 #ide +ASYNCPRINTER_H_ + + +23  + #ASYNCPRINTER_H_ + + + ) + +25  + ~"Arduo.h +" + +26  + ~"ESPAsyncTCP.h +" + +27  + ~"cbuf.h +" + +29 +ass + + gAsyncPrr +; + +31  + gd +:: + tfuni +<(*, + tAsyncPrr +*, + tut8_t +*, + tsize_t +)> + tApDaHdr +; + +32  + gd +:: + tfuni +<(*, + tAsyncPrr +*)> + tApCloHdr +; + +34 as + cAsyncPrr +: +public + +Prt + { + +35 +ive +: + +36 +AsyncCl + * +_ +; + +37 +ApDaHdr + + m_da_cb +; + +38 * + m_da_g +; + +39 +ApCloHdr + + m_o_cb +; + +40 * + m_o_g +; + +41 +cbuf + * + m_tx_bufr +; + +42 +size_t + + m_tx_bufr_size +; + +44  +_C +( +AsyncCl + * +c +); + +45 + mpublic +: + +46 +AsyncPrr + * +xt +; + +48 +AsyncPrr +(); + +49 +AsyncPrr +( +AsyncCl + * + +, +size_t + +txBufL + = 1460); + +50 + mvtu + ~ +AsyncPrr +(); + +52  +c +( +IPAddss + + +, +ut16_t + +pt +); + +53  +c +(cڡ * +ho +, +ut16_t + +pt +); + +55  +Da +( +ApDaHdr + +cb +, * +g +); + +56  +Clo +( +ApCloHdr + +cb +, * +g +); + +58 +ݔ + +bo +(); + +59 + mAsyncPrr + & + mݔ +=(cڡ +AsyncPrr + & +h +); + +61 +size_t + +wre +( +ut8_t + +da +); + +62 +size_t + +wre +(cڡ +ut8_t + * +da +, size_ +n +); + +64 +bo + +ced +(); + +65  +o +(); + +67 +size_t + +_ndBufr +(); + +68  +_Da +(* +da +, +size_t + +n +); + +69  +__o +(); + +70  +_chClbacks +(); + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.cpp + +22  + ~"Arduo.h +" + +24  + ~"ESPAsyncTCP.h +" + +26  + ~"lw/t.h +" + +27  + ~"lw/t.h +" + +28  + ~"lw/.h +" + +29  + ~"lw/dns.h +" + +30  + ~"lw/.h +" + +32  + ~ + +38 #i +ASYNC_TCP_SSL_ENABLED + + +39 +AsyncCl +:: + $AsyncCl +( +t_pcb +* +pcb +, +SSL_CTX + * +s_x +): + +41 +AsyncCl +:: + $AsyncCl +( +t_pcb +* +pcb +): + +43 + `_c_cb +(0) + +44 , + `_c_cb_g +(0) + +45 , + `_disrd_cb +(0) + +46 , + `_disrd_cb_g +(0) + +47 , + `__cb +(0) + +48 , + `__cb_g +(0) + +49 , + `_r_cb +(0) + +50 , + `_r_cb_g +(0) + +51 , + `_cv_cb +(0) + +52 , + `_cv_cb_g +(0) + +53 , + `_pb_cb +(0) + +54 , + `_pb_cb_g +(0) + +55 , + `_timeout_cb +(0) + +56 , + `_timeout_cb_g +(0) + +57 , + $_pcb_busy +( +l +) + +58 #i +ASYNC_TCP_SSL_ENABLED + + +59 , + `_pcb_cu +( +l +) + +60 , + $_hdshake_de +( +ue +) + +62 , + `_pcb__ +(0) + +63 , + `_o_pcb +( +l +) + +64 , + `_ack_pcb +( +ue +) + +65 , + `_tx_ucked_n +(0) + +66 , + `_tx_acked_n +(0) + +67 , + `_tx_un_n +(0) + +68 , + `_rx_ϡ_ck +(0) + +69 , + `_rx_s_timeout +(0) + +70 , + `_ack_timeout +( +ASYNC_MAX_ACK_TIME +) + +71 , + `_c_pt +(0) + +72 , + `ev +( +NULL +) + +73 , + $xt +( +NULL +) + +75 +_pcb + = +pcb +; + +76 if( +_pcb +){ + +77 +_rx_ϡ_ck + = + `mlis +(); + +78 + `t_rio +( +_pcb +, +TCP_PRIO_MIN +); + +79 + `t_g +( +_pcb +, +this +); + +80 + `t_cv +( +_pcb +, & +_s_cv +); + +81 + `t_ +( +_pcb +, & +_s_ +); + +82 + `t_r +( +_pcb +, & +_s_r +); + +83 + `t_pl +( +_pcb +, & +_s_pl +, 1); + +84 #i +ASYNC_TCP_SSL_ENABLED + + +85 if( +s_x +){ + +86 if( + `t_s_w_rv +( +_pcb +, +s_x +) < 0){ + +87 + `_o +(); + +90 + `t_s_g +( +_pcb +, +this +); + +91 + `t_s_da +( +_pcb +, & +_s_da +); + +92 + `t_s_hdshake +( +_pcb +, & +_s_hdshake +); + +93 + `t_s_r +( +_pcb +, & +_s_s_r +); + +95 +_pcb_cu + = +ue +; + +96 +_hdshake_de + = +l +; + +100 + } +} + +102 +AsyncCl +::~ + $AsyncCl +(){ + +103 if( +_pcb +) + +104 + `_o +(); + +105 + } +} + +107 #i +ASYNC_TCP_SSL_ENABLED + + +108 +bo + +AsyncCl +:: + $c +( +IPAddss + + +, +ut16_t + +pt +, +bo + +cu +){ + +110 +bo + +AsyncCl +:: + $c +( +IPAddss + + +, +ut16_t + +pt +){ + +112 i( +_pcb +) + +113  +l +; + +114 +_addr_t + +addr +; + +115 +addr +.add + +; + +116 #i +LWIP_VERSION_MAJOR + == 1 + +117 +tif +* +r + = + `_rou +(& +addr +); + +118 i(! +r +){ + +119  +l +; + +122 +t_pcb +* +pcb + = + `t_w +(); + +123 i(! +pcb +){ + +124  +l +; + +127 #i +ASYNC_TCP_SSL_ENABLED + + +128 +_pcb_cu + = +cu +; + +129 +_hdshake_de + = ! +cu +; + +131 + `t_g +( +pcb +, +this +); + +132 + `t_r +( +pcb +, & +_s_r +); + +133 + `t_c +( +pcb +, & +addr +, +pt +,( +t_ced_ +)& +_s_ced +); + +134  +ue +; + +135 + } +} + +137 #i +ASYNC_TCP_SSL_ENABLED + + +138 +bo + +AsyncCl +:: + $c +(cڡ * +ho +, +ut16_t + +pt +, +bo + +cu +){ + +140 +bo + +AsyncCl +:: + $c +(cڡ * +ho +, +ut16_t + +pt +){ + +142 +_addr_t + +addr +; + +143 +r_t + +r + = + `dns_ghobyme +( +ho +, & +addr +, ( +dns_found_back +)& +_s_dns_found +, +this +); + +144 if( +r + = +ERR_OK +) { + +145 #i +ASYNC_TCP_SSL_ENABLED + + +146  + `c +( + `IPAddss +( +addr +.addr), +pt +, +cu +); + +148  + `c +( + `IPAddss +( +addr +.addr), +pt +); + +150 } if( +r + = +ERR_INPROGRESS +) { + +151 #i +ASYNC_TCP_SSL_ENABLED + + +152 +_pcb_cu + = +cu +; + +153 +_hdshake_de + = ! +cu +; + +155 +_c_pt + = +pt +; + +156  +ue +; + +158  +l +; + +159 + } +} + +161 +AsyncCl +& AsyncCl:: +ݔ +=(cڡ AsyncCl& +h +){ + +162 i( +_pcb +) + +163 +_o +(); + +165 +_pcb + = +h +._pcb; + +166 i( +_pcb +) { + +167 +_rx_ϡ_ck + = +mlis +(); + +168 +t_rio +( +_pcb +, +TCP_PRIO_MIN +); + +169 +t_g +( +_pcb +, +this +); + +170 +t_cv +( +_pcb +, & +_s_cv +); + +171 +t_ +( +_pcb +, & +_s_ +); + +172 +t_r +( +_pcb +, & +_s_r +); + +173 +t_pl +( +_pcb +, & +_s_pl +, 1); + +174 #i +ASYNC_TCP_SSL_ENABLED + + +175 if( +t_s_has +( +_pcb +)){ + +176 +_pcb_cu + = +ue +; + +177 +_hdshake_de + = +l +; + +178 +t_s_g +( +_pcb +, +this +); + +179 +t_s_da +( +_pcb +, & +_s_da +); + +180 +t_s_hdshake +( +_pcb +, & +_s_hdshake +); + +181 +t_s_r +( +_pcb +, & +_s_s_r +); + +183 +_pcb_cu + = +l +; + +184 +_hdshake_de + = +ue +; + +188  * +this +; + +191 +bo + +AsyncCl +:: +ݔ +==(cڡ AsyncCl & +h +) { + +192  ( +_pcb + ! +NULL + && +h +._pcb !NULL && (_pcb-> +me_ +. +addr + =h._pcb->me_.addr&& (_pcb-> +me_pt + == other._pcb->remote_port)); + +195 +t8_t + +AsyncCl +:: + $abt +(){ + +196 if( +_pcb +) { + +197 + `t_abt +( +_pcb +); + +198 +_pcb + = +NULL +; + +200  +ERR_ABRT +; + +201 + } +} + +203  +AsyncCl +:: + $o +( +bo + +now +){ + +204 if( +_pcb +) + +205 + `t_cved +( +_pcb +, +_rx_ack_n +); + +206 if( +now +) + +207 + `_o +(); + +209 +_o_pcb + = +ue +; + +210 + } +} + +212  +AsyncCl +:: + $ +() { + +213 + `o +( +l +); + +214 + } +} + +216 +bo + +AsyncCl +:: + $ +(){ + +217 if(! +_pcb +) + +218  +ue +; + +219 if( +_pcb +-> +e + == 0 || _pcb->state > 4) + +220  +ue +; + +221  +l +; + +222 + } +} + +224 +size_t + +AsyncCl +:: + $wre +(cڡ * +da +) { + +225 if( +da + = +NULL +) + +227  + `wre +( +da +, + ` +(data)); + +228 + } +} + +230 +size_t + +AsyncCl +:: + $wre +(cڡ * +da +, +size_t + +size +, +ut8_t + +iags +) { + +231 +size_t + +wl_nd + = + `add +( +da +, +size +, +iags +); + +232 if(! +wl_nd + || ! + `nd +()) + +234  +wl_nd +; + +235 + } +} + +237 +size_t + +AsyncCl +:: + $add +(cڡ * +da +, +size_t + +size +, +ut8_t + +iags +) { + +238 if(! +_pcb + || +size + =0 || +da + = +NULL +) + +240 +size_t + +room + = + `a +(); + +241 if(! +room +) + +243 #i +ASYNC_TCP_SSL_ENABLED + + +244 if( +_pcb_cu +){ + +245  + + = + `t_s_wre +( +_pcb +, ( +ut8_t +*) +da +, +size +); + +246 if( + + >= 0){ + +247 +_tx_ucked_n + + + +; + +248  + +; + +250 + `_o +(); + +254 +size_t + +wl_nd + = ( +room + < +size +) ?oom : size; + +255 +t8_t + +r + = + `t_wre +( +_pcb +, +da +, +wl_nd +, +iags +); + +256 if( +r + ! +ERR_OK +) + +258 +_tx_un_n + + +wl_nd +; + +259  +wl_nd +; + +260 + } +} + +262 +bo + +AsyncCl +:: + $nd +(){ + +263 #i +ASYNC_TCP_SSL_ENABLED + + +264 if( +_pcb_cu +) + +265  +ue +; + +267 if( + `t_ouut +( +_pcb += +ERR_OK +){ + +268 +_pcb_busy + = +ue +; + +269 +_pcb__ + = + `mlis +(); + +270 +_tx_ucked_n + + +_tx_un_n +; + +271 +_tx_un_n + = 0; + +272  +ue +; + +274 +_tx_un_n + = 0; + +275  +l +; + +276 + } +} + +278 +size_t + +AsyncCl +:: + $ack +( +size_t + +n +){ + +279 if( +n + > +_rx_ack_n +) + +280 +n + = +_rx_ack_n +; + +281 if( +n +) + +282 + `t_cved +( +_pcb +, +n +); + +283 +_rx_ack_n + - +n +; + +284  +n +; + +285 + } +} + +289 +r_t + +AsyncCl +:: + $_ced +(* +pcb +, +r_t + +r +){ + +290 +_pcb + = +t_ +< +t_pcb +*>( +pcb +); + +291 if( +_pcb +){ + +292 +_pcb_busy + = +l +; + +293 +_rx_ϡ_ck + = + `mlis +(); + +294 + `t_rio +( +_pcb +, +TCP_PRIO_MIN +); + +295 + `t_cv +( +_pcb +, & +_s_cv +); + +296 + `t_ +( +_pcb +, & +_s_ +); + +297 + `t_pl +( +_pcb +, & +_s_pl +, 1); + +298 #i +ASYNC_TCP_SSL_ENABLED + + +299 if( +_pcb_cu +){ + +300 if( + `t_s_w_ +( +_pcb +) < 0){ + +301  + `_o +(); + +303 + `t_s_g +( +_pcb +, +this +); + +304 + `t_s_da +( +_pcb +, & +_s_da +); + +305 + `t_s_hdshake +( +_pcb +, & +_s_hdshake +); + +306 + `t_s_r +( +_pcb +, & +_s_s_r +); + +309 if(! +_pcb_cu + && +_c_cb +) + +312 if( +_c_cb +) + +314 + `_c_cb +( +_c_cb_g +, +this +); + +315  +ERR_OK +; + +316 + } +} + +318 +t8_t + +AsyncCl +:: + $_o +(){ + +319 +t8_t + +r + = +ERR_OK +; + +320 if( +_pcb +) { + +321 #i +ASYNC_TCP_SSL_ENABLED + + +322 if( +_pcb_cu +){ + +323 + `t_s_ +( +_pcb +); + +326 + `t_g +( +_pcb +, +NULL +); + +327 + `t_ +( +_pcb +, +NULL +); + +328 + `t_cv +( +_pcb +, +NULL +); + +329 + `t_r +( +_pcb +, +NULL +); + +330 + `t_pl +( +_pcb +, +NULL +, 0); + +331 +r + = + `t_o +( +_pcb +); + +332 if( +r + ! +ERR_OK +) { + +333 +r + = + `abt +(); + +335 +_pcb + = +NULL +; + +336 if( +_disrd_cb +) + +337 + `_disrd_cb +( +_disrd_cb_g +, +this +); + +339  +r +; + +340 + } +} + +342  +AsyncCl +:: + $_r +( +r_t + +r +) { + +343 if( +_pcb +){ + +344 #i +ASYNC_TCP_SSL_ENABLED + + +345 if( +_pcb_cu +){ + +346 + `t_s_ +( +_pcb +); + +349 + `t_g +( +_pcb +, +NULL +); + +350 + `t_ +( +_pcb +, +NULL +); + +351 + `t_cv +( +_pcb +, +NULL +); + +352 + `t_r +( +_pcb +, +NULL +); + +353 + `t_pl +( +_pcb +, +NULL +, 0); + +354 +_pcb + = +NULL +; + +356 if( +_r_cb +) + +357 + `_r_cb +( +_r_cb_g +, +this +, +r +); + +358 if( +_disrd_cb +) + +359 + `_disrd_cb +( +_disrd_cb_g +, +this +); + +360 + } +} + +362 #i +ASYNC_TCP_SSL_ENABLED + + +363  +AsyncCl +:: + $_s_r +( +t8_t + +r +){ + +364 if( +_r_cb +) + +365 + `_r_cb +( +_r_cb_g +, +this +, +r ++64); + +366 + } +} + +369 +r_t + +AsyncCl +:: + $_ +( +t_pcb +* +pcb +, +ut16_t + +n +) { + +370 #i +ASYNC_TCP_SSL_ENABLED + + +371 i( +_pcb_cu + && ! +_hdshake_de +) + +372  +ERR_OK +; + +374 +_rx_ϡ_ck + = + `mlis +(); + +375 +_tx_ucked_n + - +n +; + +376 +_tx_acked_n + + +n +; + +377 + `ASYNC_TCP_DEBUG +("_: %u (%d %d)\n", +n +, +_tx_ucked_n +, +_tx_acked_n +); + +378 if( +_tx_ucked_n + == 0){ + +379 +_pcb_busy + = +l +; + +380 if( +__cb +) + +381 + `__cb +( +__cb_g +, +this +, +_tx_acked_n +, ( + `mlis +(- +_pcb__ +)); + +382 +_tx_acked_n + = 0; + +384  +ERR_OK +; + +385 + } +} + +387 +r_t + +AsyncCl +:: + $_cv +( +t_pcb +* +pcb +, +pbuf +* +pb +, +r_t + +r +) { + +388 if( +pb + = +NULL +){ + +389 + `ASYNC_TCP_DEBUG +("_cv:b =NULL! Closg... %d\n", +r +); + +390  + `_o +(); + +393 +_rx_ϡ_ck + = + `mlis +(); + +394 #i +ASYNC_TCP_SSL_ENABLED + + +395 if( +_pcb_cu +){ + +396 + `ASYNC_TCP_DEBUG +("_cv: %d\n", +pb +-> +t_n +); + +397  +ad_bys + = + `t_s_ad +( +pcb +, +pb +); + +398 if( +ad_bys + < 0){ + +399 i( +ad_bys + ! +SSL_CLOSE_NOTIFY +) { + +400 + `ASYNC_TCP_DEBUG +("_cv: %d\n", +ad_bys +); + +401 + `_o +(); + +405  +ERR_OK +; + +408  +pb + ! +NULL +){ + +410 +_ack_pcb + = +ue +; + +411 +pbuf + * +b + = +pb +; + +412 +pb + = +b +-> +xt +; + +413 +b +-> +xt + = +NULL +; + +414 + `ASYNC_TCP_DEBUG +("_cv: %d\n", +b +-> +n +); + +415 if( +_pb_cb +){ + +416 + `_pb_cb +( +_pb_cb_g +, +this +, +b +); + +418 if( +_cv_cb +) + +419 + `_cv_cb +( +_cv_cb_g +, +this +, +b +-> +yld +, b-> +n +); + +420 if(! +_ack_pcb +) + +421 +_rx_ack_n + + +b +-> +n +; + +423 + `t_cved +( +pcb +, +b +-> +n +); + +424 + `pbuf_ +( +b +); + +427  +ERR_OK +; + +428 + } +} + +430 +r_t + +AsyncCl +:: + $_pl +( +t_pcb +* +pcb +){ + +432 if( +_o_pcb +){ + +433 +_o_pcb + = +l +; + +434 + `_o +(); + +435  +ERR_OK +; + +437 +ut32_t + +now + = + `mlis +(); + +440 if( +_pcb_busy + && +_ack_timeout + && ( +now + - +_pcb__ +) >= _ack_timeout){ + +441 +_pcb_busy + = +l +; + +442 if( +_timeout_cb +) + +443 + `_timeout_cb +( +_timeout_cb_g +, +this +, ( +now + - +_pcb__ +)); + +444  +ERR_OK +; + +447 if( +_rx_s_timeout + && ( +now + - +_rx_ϡ_ck +) >= (_rx_since_timeout * 1000)){ + +448 + `_o +(); + +449  +ERR_OK +; + +451 #i +ASYNC_TCP_SSL_ENABLED + + +453 if( +_pcb_cu + && ! +_hdshake_de + && ( +now + - +_rx_ϡ_ck +) >= 2000){ + +454 + `_o +(); + +455  +ERR_OK +; + +459 if( +_pl_cb +) + +460 + `_pl_cb +( +_pl_cb_g +, +this +); + +461  +ERR_OK +; + +462 + } +} + +464 #i +LWIP_VERSION_MAJOR + == 1 + +465  +AsyncCl +:: + $_dns_found +( +_addr + * +addr +){ + +467  +AsyncCl +:: + $_dns_found +(cڡ +_addr + * +addr +){ + +469 if( +addr +){ + +470 #i +ASYNC_TCP_SSL_ENABLED + + +471 + `c +( + `IPAddss +( +addr +-> +addr +), +_c_pt +, +_pcb_cu +); + +473 + `c +( + `IPAddss +( +addr +-> +addr +), +_c_pt +); + +476 if( +_r_cb +) + +477 + `_r_cb +( +_r_cb_g +, +this +, -55); + +478 if( +_disrd_cb +) + +479 + `_disrd_cb +( +_disrd_cb_g +, +this +); + +481 + } +} + +484 #i +LWIP_VERSION_MAJOR + == 1 + +485  +AsyncCl +:: + $_s_dns_found +(cڡ * +me +, +_addr_t + * +addr +, * +g +){ + +487  +AsyncCl +:: + $_s_dns_found +(cڡ * +me +, cڡ +_addr + * +addr +, * +g +){ + +489 +t_ +< +AsyncCl +*>( +g +)-> + `_dns_found +( +addr +); + +490 + } +} + +492 +r_t + +AsyncCl +:: + $_s_pl +(* +g +,  +t_pcb + * +cb +) { + +493  +t_ +< +AsyncCl +*>( +g +)-> + `_pl +( +cb +); + +494 + } +} + +496 +r_t + +AsyncCl +:: + $_s_cv +(* +g +,  +t_pcb + * +cb +,  +pbuf + * +pb +, +r_t + +r +) { + +497  +t_ +< +AsyncCl +*>( +g +)-> + `_cv +( +cb +, +pb +, +r +); + +498 + } +} + +500  +AsyncCl +:: + $_s_r +(* +g +, +r_t + +r +) { + +501 +t_ +< +AsyncCl +*>( +g +)-> + `_r +( +r +); + +502 + } +} + +504 +r_t + +AsyncCl +:: + $_s_ +(* +g +,  +t_pcb + * +cb +, +ut16_t + +n +) { + +505  +t_ +< +AsyncCl +*>( +g +)-> + `_ +( +cb +, +n +); + +506 + } +} + +508 +r_t + +AsyncCl +:: + $_s_ced +(* +g +, * +cb +, +r_t + +r +){ + +509  +t_ +< +AsyncCl +*>( +g +)-> + `_ced +( +cb +, +r +); + +510 + } +} + +512 #i +ASYNC_TCP_SSL_ENABLED + + +513  +AsyncCl +:: + $_s_da +(* +g +,  +t_pcb + * +t +, +ut8_t + * +da +, +size_t + +n +){ + +514 +AsyncCl + * +c + = +t_ +( +g +); + +515 if( +c +-> +_cv_cb +) + +516 +c +-> + `_cv_cb +(c-> +_cv_cb_g +, c, +da +, +n +); + +517 + } +} + +519  +AsyncCl +:: + $_s_hdshake +(* +g +,  +t_pcb + * +t +, +SSL + * +s +){ + +520 +AsyncCl + * +c + = +t_ +( +g +); + +521 +c +-> +_hdshake_de + = +ue +; + +522 if( +c +-> +_c_cb +) + +523 +c +-> + `_c_cb +(c-> +_c_cb_g +, c); + +524 + } +} + +526  +AsyncCl +:: + $_s_s_r +(* +g +,  +t_pcb + * +t +, +t8_t + +r +){ + +527 +t_ +< +AsyncCl +*>( +g +)-> + `_s_r +( +r +); + +528 + } +} + +533 +AsyncCl + & AsyncCl:: +ݔ ++=(cڡ AsyncCl & +h +) { + +534 if( +xt + = +NULL +){ + +535 +xt + = ( +AsyncCl +*)(& +h +); + +536 +xt +-> +ev + = +this +; + +538 +AsyncCl + * +c + = +xt +; + +539  +c +-> +xt + ! +NULL +) c = c->next; + +540 +c +-> +xt + =( +AsyncCl +*)(& +h +); + +541 +c +-> +xt +-> +ev + = c; + +543  * +this +; + +546  +AsyncCl +:: + $tRxTimeout +( +ut32_t + +timeout +){ + +547 +_rx_s_timeout + = +timeout +; + +548 + } +} + +550 +ut32_t + +AsyncCl +:: + $gRxTimeout +(){ + +551  +_rx_s_timeout +; + +552 + } +} + +554 +ut32_t + +AsyncCl +:: + $gAckTimeout +(){ + +555  +_ack_timeout +; + +556 + } +} + +558  +AsyncCl +:: + $tAckTimeout +( +ut32_t + +timeout +){ + +559 +_ack_timeout + = +timeout +; + +560 + } +} + +562  +AsyncCl +:: + $tNoDay +( +bo + +noday +){ + +563 if(! +_pcb +) + +565 if( +noday +) + +566 + `t_g_dib +( +_pcb +); + +568 + `t_g_ab +( +_pcb +); + +569 + } +} + +571 +bo + +AsyncCl +:: + $gNoDay +(){ + +572 if(! +_pcb +) + +573  +l +; + +574  + `t_g_dibd +( +_pcb +); + +575 + } +} + +577 +ut16_t + +AsyncCl +:: + $gMss +(){ + +578 if( +_pcb +) + +579  + `t_mss +( +_pcb +); + +581 + } +} + +583 +ut32_t + +AsyncCl +:: + $gRemeAddss +() { + +584 if(! +_pcb +) + +586  +_pcb +-> +me_ +. +addr +; + +587 + } +} + +589 +ut16_t + +AsyncCl +:: + $gRemePt +() { + +590 if(! +_pcb +) + +592  +_pcb +-> +me_pt +; + +593 + } +} + +595 +ut32_t + +AsyncCl +:: + $gLolAddss +() { + +596 if(! +_pcb +) + +598  +_pcb +-> +lol_ +. +addr +; + +599 + } +} + +601 +ut16_t + +AsyncCl +:: + $gLolPt +() { + +602 if(! +_pcb +) + +604  +_pcb +-> +lol_pt +; + +605 + } +} + +607 +IPAddss + +AsyncCl +:: + $meIP +() { + +608  + `IPAddss +( + `gRemeAddss +()); + +609 + } +} + +611 +ut16_t + +AsyncCl +:: + $mePt +() { + +612  + `gRemePt +(); + +613 + } +} + +615 +IPAddss + +AsyncCl +:: + $lolIP +() { + +616  + `IPAddss +( + `gLolAddss +()); + +617 + } +} + +619 +ut16_t + +AsyncCl +:: + $lolPt +() { + +620  + `gLolPt +(); + +621 + } +} + +623 #i +ASYNC_TCP_SSL_ENABLED + + +624 +SSL + * +AsyncCl +:: + $gSSL +(){ + +625 if( +_pcb + && +_pcb_cu +){ + +626  + `t_s_g_s +( +_pcb +); + +628  +NULL +; + +629 + } +} + +632 +ut8_t + +AsyncCl +:: + $e +() { + +633 if(! +_pcb +) + +635  +_pcb +-> +e +; + +636 + } +} + +638 +bo + +AsyncCl +:: + $ced +(){ + +639 i(! +_pcb +) + +640  +l +; + +641 #i +ASYNC_TCP_SSL_ENABLED + + +642  +_pcb +-> +e + =4 && +_hdshake_de +; + +644  +_pcb +-> +e + == 4; + +646 + } +} + +648 +bo + +AsyncCl +:: + $cg +(){ + +649 i(! +_pcb +) + +650  +l +; + +651  +_pcb +-> +e + > 0 && _pcb->state < 4; + +652 + } +} + +654 +bo + +AsyncCl +:: + $discg +(){ + +655 i(! +_pcb +) + +656  +l +; + +657  +_pcb +-> +e + > 4 && _pcb->state < 10; + +658 + } +} + +660 +bo + +AsyncCl +:: + $disced +(){ + +661 i(! +_pcb +) + +662  +ue +; + +663  +_pcb +-> +e + == 0 || _pcb->state == 10; + +664 + } +} + +666 +bo + +AsyncCl +:: + $ab +(){ + +667 i(! +_pcb +) + +668  +ue +; + +669  +_pcb +-> +e + == 0 || _pcb->state > 4; + +670 + } +} + +672 +bo + +AsyncCl +:: + $nSd +(){ + +673  ! +_pcb_busy + && ( + `a +() > 0); + +674 + } +} + +679  +AsyncCl +:: + $C +( +AcCHdr + +cb +, * +g +){ + +680 +_c_cb + = +cb +; + +681 +_c_cb_g + = +g +; + +682 + } +} + +684  +AsyncCl +:: + $Disc +( +AcCHdr + +cb +, * +g +){ + +685 +_disrd_cb + = +cb +; + +686 +_disrd_cb_g + = +g +; + +687 + } +} + +689  +AsyncCl +:: + $Ack +( +AcAckHdr + +cb +, * +g +){ + +690 +__cb + = +cb +; + +691 +__cb_g + = +g +; + +692 + } +} + +694  +AsyncCl +:: + $E +( +AcEHdr + +cb +, * +g +){ + +695 +_r_cb + = +cb +; + +696 +_r_cb_g + = +g +; + +697 + } +} + +699  +AsyncCl +:: + $Da +( +AcDaHdr + +cb +, * +g +){ + +700 +_cv_cb + = +cb +; + +701 +_cv_cb_g + = +g +; + +702 + } +} + +704  +AsyncCl +:: + $Pack +( +AcPackHdr + +cb +, * +g +){ + +705 +_pb_cb + = +cb +; + +706 +_pb_cb_g + = +g +; + +707 + } +} + +709  +AsyncCl +:: + $Timeout +( +AcTimeoutHdr + +cb +, * +g +){ + +710 +_timeout_cb + = +cb +; + +711 +_timeout_cb_g + = +g +; + +712 + } +} + +714  +AsyncCl +:: + $Pl +( +AcCHdr + +cb +, * +g +){ + +715 +_pl_cb + = +cb +; + +716 +_pl_cb_g + = +g +; + +717 + } +} + +720 +size_t + +AsyncCl +:: + $a +(){ + +721 #i +ASYNC_TCP_SSL_ENABLED + + +722 if(( +_pcb + ! +NULL +&& (_pcb-> +e + =4&& +_hdshake_de +){ + +723 +ut16_t + +s + = + `t_dbuf +( +_pcb +); + +724 if( +_pcb_cu +){ + +725 #ifde +AXTLS_2_0_0_SNDBUF + + +726  + `t_s_dbuf +( +_pcb +); + +728 if( +s + >= 128) + +729  +s + - 128; + +733  +s +; + +736 if(( +_pcb + ! +NULL +&& (_pcb-> +e + == 4)){ + +737  + `t_dbuf +( +_pcb +); + +741 + } +} + +743  +AsyncCl +:: + $ackPack +( +pbuf + * +pb +){ + +744 if(! +pb +){ + +747 + `t_cved +( +_pcb +, +pb +-> +n +); + +748 + `pbuf_ +( +pb +); + +749 + } +} + +751 cڡ * +AsyncCl +:: + $rToSg +( +t8_t + +r +) { + +752  +r +) { + +753  +ERR_OK +: + +755  +ERR_MEM +: + +757  +ERR_BUF +: + +759  +ERR_TIMEOUT +: + +761  +ERR_RTE +: + +763  +ERR_INPROGRESS +: + +765  +ERR_VAL +: + +767  +ERR_WOULDBLOCK +: + +769  +ERR_ABRT +: + +771  +ERR_RST +: + +773  +ERR_CLSD +: + +775  +ERR_CONN +: + +777  +ERR_ARG +: + +779  +ERR_USE +: + +781  +ERR_IF +: + +783  +ERR_ISCONN +: + +788 + } +} + +790 cڡ * +AsyncCl +:: + $eToSg +(){ + +791  + `e +()){ + +805 + } +} + +810  + sndg_pcb + { + +811 +t_pcb +* +pcb +; + +812 +pbuf + * +pb +; + +813  +ndg_pcb + * +xt +; + +816 + gAsyncSv +:: + $AsyncSv +( +IPAddss + +addr +, +ut16_t + +pt +) + +817 : + `_pt +( +pt +) + +818 , + `_addr +( +addr +) + +819 , + `_noDay +( +l +) + +820 , + `_pcb +(0) + +821 , + `_c_cb +(0) + +822 , + $_c_cb_g +(0) + +823 #i +ASYNC_TCP_SSL_ENABLED + + +824 , + `_ndg +( +NULL +) + +825 , + `_s_x +( +NULL +) + +826 , + `_fe_cb +(0) + +827 , + $_fe_cb_g +(0) + +829 { + } +} + +831 + gAsyncSv +:: + $AsyncSv +( +ut16_t + +pt +) + +832 : + `_pt +( +pt +) + +833 , + `_addr +(( +ut32_t + +IPADDR_ANY +) + +834 , + `_noDay +( +l +) + +835 , + `_pcb +(0) + +836 , + `_c_cb +(0) + +837 , + $_c_cb_g +(0) + +838 #i +ASYNC_TCP_SSL_ENABLED + + +839 , + `_ndg +( +NULL +) + +840 , + `_s_x +( +NULL +) + +841 , + `_fe_cb +(0) + +842 , + $_fe_cb_g +(0) + +844 { + } +} + +846 + gAsyncSv +::~ + $AsyncSv +(){ + +847 + `d +(); + +848 + } +} + +850  + gAsyncSv +:: + $Cl +( +AcCHdr + +cb +, * +g +){ + +851 +_c_cb + = +cb +; + +852 +_c_cb_g + = +g +; + +853 + } +} + +855 #i +ASYNC_TCP_SSL_ENABLED + + +856  + gAsyncSv +:: + $SFeReque +( +AcSSlFeHdr + +cb +, * +g +){ + +857 +_fe_cb + = +cb +; + +858 +_fe_cb_g + = +g +; + +859 + } +} + +862  + gAsyncSv +:: + $beg +(){ + +863 if( +_pcb +) + +866 +t8_t + +r +; + +867 +t_pcb +* +pcb + = + `t_w +(); + +868 i(! +pcb +){ + +872 +_addr_t + +lol_addr +; + +873 +lol_addr +. +addr + = ( +ut32_t + +_addr +; + +874 +r + = + `t_bd +( +pcb +, & +lol_addr +, +_pt +); + +876 i( +r + ! +ERR_OK +) { + +877 + `t_o +( +pcb +); + +881 +t_pcb +* +li_pcb + = + `t_li +( +pcb +); + +882 i(! +li_pcb +) { + +883 + `t_o +( +pcb +); + +886 +_pcb + = +li_pcb +; + +887 + `t_g +( +_pcb +, (* +this +); + +888 + `t_ac +( +_pcb +, & +_s_ac +); + +889 + } +} + +891 #i +ASYNC_TCP_SSL_ENABLED + + +892  + gAsyncSv +:: + $begSecu +(cڡ * + +, cڡ * +key +, cڡ * +sswd +){ + +893 if( +_s_x +){ + +896 + `t_s_fe +( +_s_ +, +this +); + +897 +_s_x + = + `t_s_w_rv_x +( + +, +key +, +sswd +); + +898 if( +_s_x +){ + +899 + `beg +(); + +901 + } +} + +904  + gAsyncSv +:: + $d +(){ + +905 if( +_pcb +){ + +907 + `t_g +( +_pcb +, +NULL +); + +908 + `t_ac +( +_pcb +, +NULL +); + +909 if( + `t_o +( +_pcb +! +ERR_OK +){ + +910 + `t_abt +( +_pcb +); + +912 +_pcb + = +NULL +; + +914 #i +ASYNC_TCP_SSL_ENABLED + + +915 if( +_s_x +){ + +916 + `s_x_ +( +_s_x +); + +917 +_s_x + = +NULL +; + +918 if( +_ndg +){ + +919  +ndg_pcb + * +p +; + +920  +_ndg +){ + +921 +p + = +_ndg +; + +922 +_ndg + = _ndg-> +xt +; + +923 if( +p +-> +pb +){ + +924 + `pbuf_ +( +p +-> +pb +); + +926 + ` +( +p +); + +931 + } +} + +933  + gAsyncSv +:: + $tNoDay +( +bo + +noday +){ + +934 +_noDay + = +noday +; + +935 + } +} + +937 +bo + + gAsyncSv +:: + $gNoDay +(){ + +938  +_noDay +; + +939 + } +} + +941 +ut8_t + + gAsyncSv +:: + $us +(){ + +942 i(! +_pcb +) + +944  +_pcb +-> +e +; + +945 + } +} + +947 +r_t + + gAsyncSv +:: + $_ac +( +t_pcb +* +pcb +, +r_t + +r +){ + +948 if( +_c_cb +){ + +949 #i +ASYNC_TCP_SSL_ENABLED + + +950 i( +_noDay + || +_s_x +) + +952 i( +_noDay +) + +954 + `t_g_dib +( +pcb +); + +956 + `t_g_ab +( +pcb +); + +959 #i +ASYNC_TCP_SSL_ENABLED + + +960 if( +_s_x +){ + +961 if( + `t_s_has_ +(|| +_ndg +){ + +962  +ndg_pcb + * +w_em + = (ndg_pcb*) + `mloc +((pending_pcb)); + +963 if(! +w_em +){ + +964 + `ASYNC_TCP_DEBUG +("### mallocewending failed!\n"); + +965 if( + `t_o +( +pcb +! +ERR_OK +){ + +966 + `t_abt +( +pcb +); + +968  +ERR_OK +; + +970 + `ASYNC_TCP_DEBUG +("###utwa: %d\n", +_s_wag +); + +971 +w_em +-> +pcb + =cb; + +972 +w_em +-> +pb + = +NULL +; + +973 +w_em +-> +xt + = +NULL +; + +974 + `t_rio +( +_pcb +, +TCP_PRIO_MIN +); + +975 + `t_g +( +pcb +, +this +); + +976 + `t_pl +( +pcb +, & +_s_pl +, 1); + +977 + `t_cv +( +pcb +, & +_s_cv +); + +979 if( +_ndg + = +NULL +){ + +980 +_ndg + = +w_em +; + +982  +ndg_pcb + * +p + = +_ndg +; + +983  +p +-> +xt + ! +NULL +) + +984 +p + =-> +xt +; + +985 +p +-> +xt + = +w_em +; + +988 +AsyncCl + * +c + = +w + + `AsyncCl +( +pcb +, +_s_x +); + +989 if( +c +){ + +990 +c +-> + `C +([ +this +](* +g +, +AsyncCl + *c){ + +991 + `_c_cb +( +_c_cb_g +, +c +); + +992 }, +this +); + +995  +ERR_OK +; + +997 +AsyncCl + * +c + = +w + + `AsyncCl +( +pcb +, +NULL +); + +999 +AsyncCl + * +c + = +w + + `AsyncCl +( +pcb +); + +1001 if( +c +){ + +1002 + `_c_cb +( +_c_cb_g +, +c +); + +1003  +ERR_OK +; + +1005 #i +ASYNC_TCP_SSL_ENABLED + + +1009 if( + `t_o +( +pcb +! +ERR_OK +){ + +1010 + `t_abt +( +pcb +); + +1012  +ERR_OK +; + +1013 + } +} + +1015 +r_t + + gAsyncSv +:: + $_s_ac +(* +g +, +t_pcb +* +pcb +, +r_t + +r +){ + +1016  +t_ +< +AsyncSv +*>( +g +)-> + `_ac +( +pcb +, +r +); + +1017 + } +} + +1019 #i +ASYNC_TCP_SSL_ENABLED + + +1020 +r_t + + gAsyncSv +:: + $_pl +( +t_pcb +* +pcb +){ + +1021 if(! + `t_s_has_ +(&& +_ndg +){ + +1022  +ndg_pcb + * +p + = +_ndg +; + +1023 if( +p +-> +pcb + ==cb){ + +1024 +_ndg + = _ndg-> +xt +; + +1026  +p +-> +xt + &&->xt-> +pcb + !=cb) =->next; + +1027 if(! +p +-> +xt +)  0; + +1028  +ndg_pcb + * +b + = +p +-> +xt +; + +1029 +p +-> +xt + = +b +->next; + +1030 +p + = +b +; + +1032 + `ASYNC_TCP_DEBUG +("###emovom wa: %d\n", +_s_wag +); + +1033 +AsyncCl + * +c + = +w + + `AsyncCl +( +pcb +, +_s_x +); + +1034 if( +c +){ + +1035 +c +-> + `C +([ +this +](* +g +, +AsyncCl + *c){ + +1036 + `_c_cb +( +_c_cb_g +, +c +); + +1037 }, +this +); + +1038 if( +p +-> +pb +) + +1039 +c +-> + `_cv +( +pcb +, +p +-> +pb +, 0); + +1041 + ` +( +p +); + +1043  +ERR_OK +; + +1044 + } +} + +1046 +r_t + + gAsyncSv +:: + $_cv +( +t_pcb + * +pcb +,  +pbuf + * +pb +, +r_t + +r +){ + +1047 if(! +_ndg +) + +1048  +ERR_OK +; + +1050  +ndg_pcb + * +p +; + +1052 if(! +pb +){ + +1053 + `ASYNC_TCP_DEBUG +("### clo from wa: %d\n", +_s_wag +); + +1054 +p + = +_ndg +; + +1055 if( +p +-> +pcb + ==cb){ + +1056 +_ndg + = _ndg-> +xt +; + +1058  +p +-> +xt + &&->xt-> +pcb + !=cb) =->next; + +1059 if(! +p +-> +xt +)  0; + +1060  +ndg_pcb + * +b + = +p +-> +xt +; + +1061 +p +-> +xt + = +b +->next; + +1062 +p + = +b +; + +1064 if( +p +-> +pb +){ + +1065 + `pbuf_ +( +p +-> +pb +); + +1067 + ` +( +p +); + +1068 + `t_o +( +pcb +); + +1069 + `t_abt +( +pcb +); + +1071 + `ASYNC_TCP_DEBUG +("### wa _cv: %u %d\n", +pb +-> +t_n +, +_s_wag +); + +1072 +p + = +_ndg +; + +1073  +p + &&-> +pcb + !=cb) + +1074 +p + =-> +xt +; + +1075 if( +p +){ + +1076 if( +p +-> +pb +){ + +1077 + `pbuf_cha +( +p +-> +pb +,b); + +1079 +p +-> +pb + =b; + +1083  +ERR_OK +; + +1084 + } +} + +1086  + gAsyncSv +:: + $_ +(cڡ * +fame +, +ut8_t + ** +buf +){ + +1087 if( +_fe_cb +){ + +1088  + `_fe_cb +( +_fe_cb_g +, +fame +, +buf +); + +1090 * +buf + = 0; + +1092 + } +} + +1094  + gAsyncSv +:: + $_s_ +(* +g +, cڡ * +fame +, +ut8_t + ** +buf +){ + +1095  +t_ +< +AsyncSv +*>( +g +)-> + `_ +( +fame +, +buf +); + +1096 + } +} + +1098 +r_t + + gAsyncSv +:: + $_s_pl +(* +g +,  +t_pcb + * +pcb +){ + +1099  +t_ +< +AsyncSv +*>( +g +)-> + `_pl +( +pcb +); + +1100 + } +} + +1102 +r_t + + gAsyncSv +:: + $_s_cv +(* +g +,  +t_pcb + * +pcb +,  +pbuf + * +pb +, +r_t + +r +){ + +1103  +t_ +< +AsyncSv +*>( +g +)-> + `_cv +( +pcb +, +pb +, +r +); + +1104 + } +} + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.h + +22 #ide +ASYNCTCP_H_ + + +23  + #ASYNCTCP_H_ + + + ) + +25  + ~ + +26  + ~"IPAddss.h +" + +27  + ~ + +30  + ~"lw/.h +" + +31  + ~"lw/r.h +" + +32  + ~"lw/pbuf.h +" + +35 +ass + + gAsyncCl +; + +37  + #ASYNC_MAX_ACK_TIME + 5000 + + ) + +38  + #ASYNC_WRITE_FLAG_COPY + 0x01 + +39  + #ASYNC_WRITE_FLAG_MORE + 0x02 + +40 + + ) + +41  + gt_pcb +; + +42  + g_addr +; + +43 #i +ASYNC_TCP_SSL_ENABLED + + +44  + gSSL_ +; + +45  +SSL_ + + tSSL +; + +46  + gSSL_CTX_ +; + +47  +SSL_CTX_ + + tSSL_CTX +; + +50  + gd +:: + tfuni +<(*, + tAsyncCl +*)> + tAcCHdr +; + +51  + gd +:: + tfuni +<(*, + tAsyncCl +*, + tsize_t + + tn +, + tut32_t + + ttime +)> + tAcAckHdr +; + +52  + gd +:: + tfuni +<(*, + tAsyncCl +*, + tt8_t + + tr +)> + tAcEHdr +; + +53  + gd +:: + tfuni +<(*, + tAsyncCl +*, * + tda +, + tsize_t + + tn +)> + tAcDaHdr +; + +54  + gd +:: + tfuni +<(*, + tAsyncCl +*,  + tpbuf + * + tpb +)> + tAcPackHdr +; + +55  + gd +:: + tfuni +<(*, + tAsyncCl +*, + tut32_t + + ttime +)> + tAcTimeoutHdr +; + +57 as + cAsyncCl + { + +58 + meed +: + +59 +nd + +ass + +AsyncTCPbufr +; + +60 +t_pcb +* + m_pcb +; + +61 +AcCHdr + + m_c_cb +; + +62 * + m_c_cb_g +; + +63 +AcCHdr + + m_disrd_cb +; + +64 * + m_disrd_cb_g +; + +65 +AcAckHdr + + m__cb +; + +66 * + m__cb_g +; + +67 +AcEHdr + + m_r_cb +; + +68 * + m_r_cb_g +; + +69 +AcDaHdr + + m_cv_cb +; + +70 * + m_cv_cb_g +; + +71 +AcPackHdr + + m_pb_cb +; + +72 * + m_pb_cb_g +; + +73 +AcTimeoutHdr + + m_timeout_cb +; + +74 * + m_timeout_cb_g +; + +75 +AcCHdr + + m_pl_cb +; + +76 * + m_pl_cb_g +; + +77 +bo + + m_pcb_busy +; + +78 #i +ASYNC_TCP_SSL_ENABLED + + +79 +bo + + m_pcb_cu +; + +80 +bo + + m_hdshake_de +; + +82 +ut32_t + + m_pcb__ +; + +83 +bo + + m_o_pcb +; + +84 +bo + + m_ack_pcb +; + +85 +ut32_t + + m_tx_ucked_n +; + +86 +ut32_t + + m_tx_acked_n +; + +87 +ut32_t + + m_tx_un_n +; + +88 +ut32_t + + m_rx_ack_n +; + +89 +ut32_t + + m_rx_ϡ_ck +; + +90 +ut32_t + + m_rx_s_timeout +; + +91 +ut32_t + + m_ack_timeout +; + +92 +ut16_t + + m_c_pt +; + +94 +t8_t + +_o +(); + +95 +r_t + +_ced +(* +pcb +,_ +r +); + +96  +_r +( +r_t + +r +); + +97 #i +ASYNC_TCP_SSL_ENABLED + + +98  +_s_r +( +t8_t + +r +); + +100 +r_t + +_pl +( +t_pcb +* +pcb +); + +101 +r_t + +_ +( +t_pcb +* +pcb +, +ut16_t + +n +); + +102 #i +LWIP_VERSION_MAJOR + == 1 + +103  +_dns_found +( +_addr + * +addr +); + +105  +_dns_found +(cڡ +_addr + * +addr +); + +107  +r_t + +_s_pl +(* +g +,  +t_pcb + * +cb +); + +108  +r_t + +_s_cv +(* +g +,  +t_pcb + * +cb +,  +pbuf + * +pb +,_ +r +); + +109  +_s_r +(* +g +, +r_t + +r +); + +110  +r_t + +_s_ +(* +g +,  +t_pcb + * +cb +, +ut16_t + +n +); + +111  +r_t + +_s_ced +(* +g +, * +cb +,_ +r +); + +112 #i +LWIP_VERSION_MAJOR + == 1 + +113  +_s_dns_found +(cڡ * +me +,  +_addr + * +addr +, * +g +); + +115  +_s_dns_found +(cڡ * +me +, cڡ +_addr + * +addr +, * +g +); + +117 #i +ASYNC_TCP_SSL_ENABLED + + +118  +_s_da +(* +g +,  +t_pcb + * +t +, +ut8_t + * +da +, +size_t + +n +); + +119  +_s_hdshake +(* +g +,  +t_pcb + * +t +, +SSL + * +s +); + +120  +_s_s_r +(* +g +,  +t_pcb + * +t +, +t8_t + +r +); + +123 + mpublic +: + +124 +AsyncCl +* +ev +; + +125 +AsyncCl +* + mxt +; + +127 #i +ASYNC_TCP_SSL_ENABLED + + +128 +AsyncCl +( +t_pcb +* +pcb + = 0, +SSL_CTX + * +s_x + = +NULL +); + +130 +AsyncCl +( +t_pcb +* +pcb + = 0); + +132 ~ +AsyncCl +(); + +134 + mAsyncCl + & + mݔ +=(cڡ +AsyncCl + & +h +); + +135 + mAsyncCl + & + mݔ ++=(cڡ +AsyncCl + & +h +); + +137 +bo + + mݔ +==(cڡ +AsyncCl + & +h +); + +139 +bo + + mݔ +!=(cڡ +AsyncCl + & +h +) { + +140  !(* +this + = +h +); + +142 #i +ASYNC_TCP_SSL_ENABLED + + +143 +bo + +c +( +IPAddss + + +, +ut16_t + +pt +, bo +cu += +l +); + +144 +bo + +c +(cڡ * +ho +, +ut16_t + +pt +, bo +cu += +l +); + +146 +bo + +c +( +IPAddss + + +, +ut16_t + +pt +); + +147 +bo + +c +(cڡ * +ho +, +ut16_t + +pt +); + +149  +o +( +bo + +now + = +l +); + +150  + +(); + +151 +t8_t + +abt +(); + +152 +bo + + +(); + +154 +bo + +nSd +(); + +155 +size_t + +a +(); + +156 +size_t + +add +(cڡ * +da +, size_ +size +, +ut8_t + +iags +=0); + +157 +bo + +nd +(); + +158 +size_t + +ack +(size_ +n +); + +159  + $ackL +(){ +_ack_pcb + = +l +; + } +} + +161 #i +ASYNC_TCP_SSL_ENABLED + + +162 +SSL + * +gSSL +(); + +165 +size_t + +wre +(cڡ * +da +); + +166 +size_t + +wre +(cڡ * +da +, size_ +size +, +ut8_t + +iags +=0); + +168 +ut8_t + +e +(); + +169 +bo + +cg +(); + +170 +bo + +ced +(); + +171 +bo + +discg +(); + +172 +bo + +disced +(); + +173 +bo + +ab +(); + +175 +ut16_t + +gMss +(); + +176 +ut32_t + +gRxTimeout +(); + +177  +tRxTimeout +( +ut32_t + +timeout +); + +178 +ut32_t + +gAckTimeout +(); + +179  +tAckTimeout +( +ut32_t + +timeout +); + +180  +tNoDay +( +bo + +noday +); + +181 +bo + +gNoDay +(); + +182 +ut32_t + +gRemeAddss +(); + +183 +ut16_t + +gRemePt +(); + +184 +ut32_t + +gLolAddss +(); + +185 +ut16_t + +gLolPt +(); + +187 +IPAddss + +meIP +(); + +188 +ut16_t + +mePt +(); + +189 +IPAddss + +lolIP +(); + +190 +ut16_t + +lolPt +(); + +192  +C +( +AcCHdr + +cb +, * +g + = 0); + +193  +Disc +( +AcCHdr + +cb +, * +g + = 0); + +194  +Ack +( +AcAckHdr + +cb +, * +g + = 0); + +195  +E +( +AcEHdr + +cb +, * +g + = 0); + +196  +Da +( +AcDaHdr + +cb +, * +g + = 0); + +197  +Pack +( +AcPackHdr + +cb +, * +g + = 0); + +198  +Timeout +( +AcTimeoutHdr + +cb +, * +g + = 0); + +199  +Pl +( +AcCHdr + +cb +, * +g + = 0); + +201  +ackPack +( +pbuf + * +pb +); + +203 cڡ * +rToSg +( +t8_t + +r +); + +204 cڡ * +eToSg +(); + +206 +r_t + +_cv +( +t_pcb +* +pcb +, +pbuf +* +pb +,_ +r +); + +209 #i +ASYNC_TCP_SSL_ENABLED + + +210  + gd +:: + tfuni +<(* + tg +, cڡ * + tfame +, + tut8_t + ** + tbuf +)> + tAcSSlFeHdr +; + +211  + gndg_pcb +; + +214 as + cAsyncSv + { + +215 + meed +: + +216 +ut16_t + +_pt +; + +217 +IPAddss + + m_addr +; + +218 +bo + + m_noDay +; + +219 +t_pcb +* + m_pcb +; + +220 +AcCHdr + + m_c_cb +; + +221 * + m_c_cb_g +; + +222 #i +ASYNC_TCP_SSL_ENABLED + + +223  +ndg_pcb + * + m_ndg +; + +224 +SSL_CTX + * + m_s_x +; + +225 +AcSSlFeHdr + + m_fe_cb +; + +226 * + m_fe_cb_g +; + +229 + mpublic +: + +231 +AsyncSv +( +IPAddss + +addr +, +ut16_t + +pt +); + +232 +AsyncSv +( +ut16_t + +pt +); + +233 ~ +AsyncSv +(); + +234  +Cl +( +AcCHdr + +cb +, * +g +); + +235 #i +ASYNC_TCP_SSL_ENABLED + + +236  +SFeReque +( +AcSSlFeHdr + +cb +, * +g +); + +237  +begSecu +(cڡ * + +, cڡ * +ive_key_fe +, cڡ * +sswd +); + +239  +beg +(); + +240  +d +(); + +241  +tNoDay +( +bo + +noday +); + +242 +bo + +gNoDay +(); + +243 +ut8_t + +us +(); + +245 + meed +: + +246 +r_t + +_ac +( +t_pcb +* +wpcb +,_ +r +); + +247  +r_t + +_s_ac +(* +g +, +t_pcb +* +wpcb +,_ +r +); + +248 #i +ASYNC_TCP_SSL_ENABLED + + +249  +_ +(cڡ * +fame +, +ut8_t + ** +buf +); + +250 +r_t + +_pl +( +t_pcb +* +pcb +); + +251 +r_t + +_cv +( +t_pcb + * +pcb +,  +pbuf + * +pb +,_ +r +); + +252  +_s_ +(* +g +, cڡ * +fame +, +ut8_t + ** +buf +); + +253  +r_t + +_s_pl +(* +g +,  +t_pcb + * +cb +); + +254  +r_t + +_s_cv +(* +g +,  +t_pcb + * +cb +,  +pbuf + * +pb +,_ +r +); + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.cpp + +26  + ~ + +27  + ~ + +29  + ~"ESPAsyncTCPbufr.h +" + +32 + gAsyncTCPbufr +:: + $AsyncTCPbufr +( +AsyncCl +* + +) { + +33 if( + + = +NULL +) { + +34 + `DEBUG_ASYNC_TCP +("[A-TCP] client isull!!!\n"); + +35 + `nic +(); + +38 +_ + = + +; + +39 +_TXbufrWre + = +w + + `cbuf +(1460); + +40 +_TXbufrRd + = +_TXbufrWre +; + +41 +_RXbufr + = +w + + `cbuf +(100); + +42 +_RXmode + = +ATB_RX_MODE_FREE +; + +43 +_rxSize + = 0; + +44 +_rxTm + = 0x00; + +45 +_rxRdBysP + = +NULL +; + +46 +_rxRdSgP + = +NULL +; + +47 +_cbDisc + = +NULL +; + +49 +_cbRX + = +NULL +; + +50 +_cbDe + = +NULL +; + +51 + `_chClbacks +(); + +52 + } +} + +54 + gAsyncTCPbufr +::~ + $AsyncTCPbufr +() { + +55 if( +_ +) { + +56 +_ +-> + `o +(); + +59 if( +_RXbufr +) { + +60 +de + +_RXbufr +; + +61 +_RXbufr + = +NULL +; + +64 if( +_TXbufrWre +) { + +66 +_TXbufrWre + = +NULL +; + +69 if( +_TXbufrRd +) { + +70 +cbuf + * +xt + = +_TXbufrRd +->next; + +71 +de + +_TXbufrRd +; + +72  +xt + ! +NULL +) { + +73 +_TXbufrRd + = +xt +; + +74 +xt + = +_TXbufrRd +->next; + +75 +de + +_TXbufrRd +; + +77 +_TXbufrRd + = +NULL +; + +79 + } +} + +81 +size_t + + gAsyncTCPbufr +:: + $wre +( +Sg + & +da +) { + +82  + `wre +( +da +. + `c_r +(), da. + `ngth +()); + +83 + } +} + +85 +size_t + + gAsyncTCPbufr +:: + $wre +( +ut8_t + +da +) { + +86  + `wre +(& +da +, 1); + +87 + } +} + +89 +size_t + + gAsyncTCPbufr +:: + $wre +(cڡ * +da +) { + +90  + `wre +((cڡ +ut8_t + * +da +, + ` +(data)); + +91 + } +} + +93 +size_t + + gAsyncTCPbufr +:: + $wre +(cڡ * +da +, +size_t + +n +) { + +94  + `wre +((cڡ +ut8_t + * +da +, +n +); + +95 + } +} + +103 +size_t + + gAsyncTCPbufr +:: + $wre +(cڡ +ut8_t + * +da +, +size_t + +n +) { + +104 if( +_TXbufrWre + = +NULL + || +_ + =NULL || !_-> + `ced +(|| +da + =NULL || +n + == 0) { + +108 +size_t + +bysLe + = +n +; + +109  +bysLe +) { + +110 +size_t + +w + = +_TXbufrWre +-> + `wre +((cڡ * +da +, +bysLe +); + +111 +bysLe + - +w +; + +112 +da + + +w +; + +113 + `_ndBufr +(); + +116 if( +_TXbufrWre +-> + `fu +(&& +bysLe + > 0) { + +119 if( +ESP +. + `gFeHp +() < 4096) { + +120 + `DEBUG_ASYNC_TCP +("[A-TCP]un out of Heap canot sendll Data!\n"); + +121  ( +n + - +bysLe +); + +124 +cbuf + * +xt + = +w + + `cbuf +(1460); + +126 if( +xt + = +NULL +) { + +127 + `DEBUG_ASYNC_TCP +("[A-TCP]un out of Heap!\n"); + +128 + `nic +(); + +130 + `DEBUG_ASYNC_TCP +("[A-TCP]ew cbuf\n"); + +134 +_TXbufrWre +-> +xt + =ext; + +137 +_TXbufrWre + = +xt +; + +141  +n +; + +143 + } +} + +148  + gAsyncTCPbufr +:: + $ush +() { + +149 ! +_TXbufrWre +-> + `emy +()) { + +150 ! +_ +-> + `nSd +()) { + +151 + `day +(0); + +153 + `_ndBufr +(); + +155 + } +} + +157  + gAsyncTCPbufr +:: + $noClback +() { + +158 +_RXmode + = +ATB_RX_MODE_NONE +; + +159 + } +} + +161  + gAsyncTCPbufr +:: + $adSgU +( +rm +, +Sg + * +r +, +AsyncTCPbufrDeCb + +de +) { + +162 if( +_ + = +NULL +) { + +165 + `DEBUG_ASYNC_TCP +("[A-TCP]dSgUm: %02X\n", +rm +); + +166 +_RXmode + = +ATB_RX_MODE_NONE +; + +167 +_cbDe + = +de +; + +168 +_rxRdSgP + = +r +; + +169 +_rxTm + = +rm +; + +170 +_rxSize + = 0; + +171 +_RXmode + = +ATB_RX_MODE_TERMINATOR_STRING +; + +172 + } +} + +190  + gAsyncTCPbufr +:: + $adBys +(* +bufr +, +size_t + +ngth +, +AsyncTCPbufrDeCb + +de +) { + +191 if( +_ + = +NULL +) { + +194 + `DEBUG_ASYNC_TCP +("[A-TCP]dByngth: %d\n", +ngth +); + +195 +_RXmode + = +ATB_RX_MODE_NONE +; + +196 +_cbDe + = +de +; + +197 +_rxRdBysP + = ( +ut8_t + * +bufr +; + +198 +_rxSize + = +ngth +; + +199 +_RXmode + = +ATB_RX_MODE_READ_BYTES +; + +200 + } +} + +202  + gAsyncTCPbufr +:: + $adBys +( +ut8_t + * +bufr +, +size_t + +ngth +, +AsyncTCPbufrDeCb + +de +) { + +203 + `adBys +((* +bufr +, +ngth +, +de +); + +204 + } +} + +206  + gAsyncTCPbufr +:: + $Da +( +AsyncTCPbufrDaCb + +cb +) { + +207 if( +_ + = +NULL +) { + +210 + `DEBUG_ASYNC_TCP +("[A-TCP] onData\n"); + +211 +_RXmode + = +ATB_RX_MODE_NONE +; + +212 +_cbDe + = +NULL +; + +213 +_cbRX + = +cb +; + +214 +_RXmode + = +ATB_RX_MODE_FREE +; + +215 + } +} + +217  + gAsyncTCPbufr +:: + $Disc +( +AsyncTCPbufrDiscCb + +cb +) { + +218 +_cbDisc + = +cb +; + +219 + } +} + +221 +IPAddss + + gAsyncTCPbufr +:: + $meIP +() { + +222 if(! +_ +) { + +223  + `IPAddss +(0U); + +225  +_ +-> + `meIP +(); + +226 + } +} + +228 +ut16_t + + gAsyncTCPbufr +:: + $mePt +() { + +229 if(! +_ +) { + +232  +_ +-> + `mePt +(); + +233 + } +} + +235 +bo + + gAsyncTCPbufr +:: + $ced +() { + +236 if(! +_ +) { + +237  +l +; + +239  +_ +-> + `ced +(); + +240 + } +} + +242  + gAsyncTCPbufr +:: + $ +() { + +244 if(! +_ +) { + +247 +_ +-> + ` +(); + +248 +_ + = +NULL +; + +250 if( +_cbDe +) { + +251  +_RXmode +) { + +252  +ATB_RX_MODE_READ_BYTES +: + +253  +ATB_RX_MODE_TERMINATOR +: + +254  +ATB_RX_MODE_TERMINATOR_STRING +: + +255 +_RXmode + = +ATB_RX_MODE_NONE +; + +256 + `_cbDe +( +l +, +NULL +); + +262 +_RXmode + = +ATB_RX_MODE_NONE +; + +263 + } +} + +265  + gAsyncTCPbufr +:: + $o +() { + +266 + ` +(); + +267 + } +} + +275  + gAsyncTCPbufr +:: + $_chClbacks +() { + +276 if(! +_ +) { + +279 + `DEBUG_ASYNC_TCP +("[A-TCP]ttachCallbacks\n"); + +281 +_ +-> + `Pl +([](* +obj +, +AsyncCl +* +c +) { + +282 +AsyncTCPbufr +* +b + = ((AsyncTCPbufr*)( +obj +)); + +283 if(( +b +-> +_TXbufrRd + ! +NULL +&& !b->_TXbufrRd-> + `emy +()) { + +284 +b +-> + `_ndBufr +(); + +289 }, +this +); + +291 +_ +-> + `Ack +([](* +obj +, +AsyncCl +* +c +, +size_t + +n +, +ut32_t + +time +) { + +292 + `DEBUG_ASYNC_TCP +("[A-TCP] onAck\n"); + +293 (( +AsyncTCPbufr +*)( +obj +))-> + `_ndBufr +(); + +294 }, +this +); + +296 +_ +-> + `Disc +([](* +obj +, +AsyncCl +* +c +) { + +297 + `DEBUG_ASYNC_TCP +("[A-TCP] onDisconnect\n"); + +298 +AsyncTCPbufr +* +b + = ((AsyncTCPbufr*)( +obj +)); + +299 +b +-> +_ + = +NULL +; + +300 +bo + +d + = +ue +; + +301 if( +b +-> +_cbDisc +) { + +302 +d + = +b +-> + `_cbDisc +(b); + +304 +de + +c +; + +305 if( +d +) { + +306 +de + +b +; + +308 }, +this +); + +310 +_ +-> + `Da +([](* +obj +, +AsyncCl +* +c +, * +buf +, +size_t + +n +) { + +311 +AsyncTCPbufr +* +b + = ((AsyncTCPbufr*)( +obj +)); + +312 +b +-> + `_rxDa +(( +ut8_t + *) +buf +, +n +); + +313 }, +this +); + +315 +_ +-> + `Timeout +([](* +obj +, +AsyncCl +* +c +, +ut32_t + +time +){ + +316 + `DEBUG_ASYNC_TCP +("[A-TCP] onTimeout\n"); + +317 +c +-> + `o +(); + +318 }, +this +); + +320 + `DEBUG_ASYNC_TCP +("[A-TCP]ttachCallbacks Done.\n"); + +321 + } +} + +326  + gAsyncTCPbufr +:: + $_ndBufr +() { + +328 +size_t + +avaab + = +_TXbufrRd +-> + `avaab +(); + +329 if( +avaab + =0 || +_ + = +NULL + || !_-> + `ced +(|| !_-> + `nSd +()) { + +333 ( +_ +-> + `a +(> 0&& ( +_TXbufrRd +-> + `avaab +(> 0&& _-> + `nSd +()) { + +335 +avaab + = +_TXbufrRd +-> + `avaab +(); + +337 if( +avaab + > +_ +-> + `a +()) { + +338 +avaab + = +_ +-> + `a +(); + +341 * +out + = +w + [ +avaab +]; + +342 if( +out + = +NULL +) { + +343 + `DEBUG_ASYNC_TCP +("[A-TCP]oess heap,ryater.\n"); + +348 +_TXbufrRd +-> + `ek +( +out +, +avaab +); + +351 +size_t + +nd + = +_ +-> + `wre +((cڡ * +out +, +avaab +); + +352 if( +nd + ! +avaab +) { + +353 + `DEBUG_ASYNC_TCP +("[A-TCP] wred sd: %dvaab: %d \n", +nd +, +avaab +); + +357 +_TXbufrRd +-> + `move +( +nd +); + +360 if( +_TXbufrRd +-> + `avaab +(=0 && _TXbufrRd-> +xt + ! +NULL +) { + +361 +cbuf + * +d + = +_TXbufrRd +; + +362 +_TXbufrRd + = _TXbufrRd-> +xt +; + +363 +de + +d +; + +364 + `DEBUG_ASYNC_TCP +("[A-TCP] delete cbuf\n"); + +367 +de + +out +; + +370 + } +} + +377  + gAsyncTCPbufr +:: + $_rxDa +( +ut8_t + * +buf +, +size_t + +n +) { + +378 if(! +_ + || !_-> + `ced +()) { + +379 + `DEBUG_ASYNC_TCP +("[A-TCP]ot connected!\n"); + +382 if(! +_RXbufr +) { + +383 + `DEBUG_ASYNC_TCP +("[A-TCP] _rxDatao _RXbuffer!\n"); + +386 + `DEBUG_ASYNC_TCP +("[A-TCP] _rxDn: %d RXmode: %d\n", +n +, +_RXmode +); + +388 +size_t + +hdd + = 0; + +390 if( +_RXmode + ! +ATB_RX_MODE_NONE +) { + +391 +hdd + = + `_hdRxBufr +(( +ut8_t + * +buf +, +n +); + +392 +buf + + +hdd +; + +393 +n + - +hdd +; + +396 if( +_RXbufr +-> + `emy +()) { + +397  +_RXmode + ! +ATB_RX_MODE_NONE + && +hdd + !0 && +n + > 0) { + +398 +hdd + = + `_hdRxBufr +( +buf +, +n +); + +399 +buf + + +hdd +; + +400 +n + - +hdd +; + +405 if( +n + > 0) { + +407 if( +_RXbufr +-> + `room +(< +n +) { + +409 + `DEBUG_ASYNC_TCP +("[A-TCP] _rxData buffer fullryesize\n"); + +410 +_RXbufr +-> + `sizeAdd +(( +n + + _RXbufr-> + `room +())); + +412 if( +_RXbufr +-> + `room +(< +n +) { + +413 + `DEBUG_ASYNC_TCP +("[A-TCP] _rxDbuftfu c oy hd %d!!!\n", +_RXbufr +-> + `room +()); + +417 +_RXbufr +-> + `wre +((cڡ *( +buf +), +n +); + +420 if(! +_RXbufr +-> + `emy +(&& +_RXmode + ! +ATB_RX_MODE_NONE +) { + +422 +hdd + = + `_hdRxBufr +( +NULL +, 0); + +423  +_RXmode + ! +ATB_RX_MODE_NONE + && +hdd + != 0) { + +424 +hdd + = + `_hdRxBufr +( +NULL +, 0); + +429 if( +_RXbufr +-> + `emy +(&& _RXbufr-> + `room +() != 100) { + +430 +_RXbufr +-> + `size +(100); + +433 + } +} + +438 +size_t + + gAsyncTCPbufr +:: + $_hdRxBufr +( +ut8_t + * +buf +, +size_t + +n +) { + +439 if(! +_ + || !_-> + `ced +(|| +_RXbufr + = +NULL +) { + +443 + `DEBUG_ASYNC_TCP +("[A-TCP] _hdRxBufn: %d RXmode: %d\n", +n +, +_RXmode +); + +445 +size_t + +BufrAvaab + = +_RXbufr +-> + `avaab +(); + +446 +size_t + +r + = 0; + +448 if( +_RXmode + = +ATB_RX_MODE_NONE +) { + +450 } if( +_RXmode + = +ATB_RX_MODE_FREE +) { + +451 if( +_cbRX + = +NULL +) { + +455 if( +BufrAvaab + > 0) { + +456 +ut8_t + * +b + = +w + ut8_t[ +BufrAvaab +]; + +457 +_RXbufr +-> + `ek +((* +b +, +BufrAvaab +); + +458 +r + = + `_cbRX +( +b +, +BufrAvaab +); + +459 +_RXbufr +-> + `move +( +r +); + +462 if( +r + = +BufrAvaab + && +buf + && ( +n + > 0)) { + +463  + `_cbRX +( +buf +, +n +); + +468 } if( +_RXmode + = +ATB_RX_MODE_READ_BYTES +) { + +469 if( +_rxRdBysP + = +NULL + || +_cbDe + == NULL) { + +473 +size_t + +wRdCou + = 0; + +475 if( +BufrAvaab +) { + +476 +r + = +_RXbufr +-> + `ad +((* +_rxRdBysP +, +_rxSize +); + +477 +_rxSize + - +r +; + +478 +_rxRdBysP + + +r +; + +481 if( +_RXbufr +-> + `emy +(&& ( +n + > 0&& +buf +) { + +482 +r + = +n +; + +483 if( +r + > +_rxSize +) { + +484 +r + = +_rxSize +; + +486 + `memy +( +_rxRdBysP +, +buf +, +r +); + +487 +_rxRdBysP + + +r +; + +488 +_rxSize + - +r +; + +489 +wRdCou + + +r +; + +492 if( +_rxSize + == 0) { + +493 +_RXmode + = +ATB_RX_MODE_NONE +; + +494 + `_cbDe +( +ue +, +NULL +); + +498  +wRdCou +; + +500 } if( +_RXmode + = +ATB_RX_MODE_TERMINATOR +) { + +503 } if( +_RXmode + = +ATB_RX_MODE_TERMINATOR_STRING +) { + +504 if( +_rxRdSgP + = +NULL + || +_cbDe + == NULL) { + +509 if( +BufrAvaab + > 0) { + +510 ! +_RXbufr +-> + `emy +()) { + +511  +c + = +_RXbufr +-> + `ad +(); + +512 if( +c + = +_rxTm + || c == 0x00) { + +513 +_RXmode + = +ATB_RX_MODE_NONE +; + +514 + `_cbDe +( +ue +, +_rxRdSgP +); + +517 (* +_rxRdSgP ++ +c +; + +522 if( +_RXbufr +-> + `emy +(&& ( +n + > 0&& +buf +) { + +523 +size_t + +wRdCou + = 0; + +524  +wRdCou + < +n +) { + +525  +c + = (* +buf +; + +526 +buf +++; + +527 +wRdCou +++; + +528 if( +c + = +_rxTm + || c == 0x00) { + +529 +_RXmode + = +ATB_RX_MODE_NONE +; + +530 + `_cbDe +( +ue +, +_rxRdSgP +); + +531  +wRdCou +; + +533 (* +_rxRdSgP ++ +c +; + +536  +wRdCou +; + +541 + } +} + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.h + +25 #ide +ESPASYNCTCPBUFFER_H_ + + +26  + #ESPASYNCTCPBUFFER_H_ + + + ) + +30 #ide +DEBUG_ASYNC_TCP + + +31  + #DEBUG_ASYNC_TCP +(...) + + ) + +34  + ~ + +35  + ~ + +37  + ~"ESPAsyncTCP.h +" + +42 + mATB_RX_MODE_NONE +, + +43 + mATB_RX_MODE_FREE +, + +44 + mATB_RX_MODE_READ_BYTES +, + +45 + mATB_RX_MODE_TERMINATOR +, + +46 + mATB_RX_MODE_TERMINATOR_STRING + + +47 } + tbRxMode_t +; + +49 as + cAsyncTCPbufr +: +public + +Prt + { + +51 +public +: + +53  +d +:: + tfuni +< + tsize_t +( + tut8_t + * + tyld +, size_ + tngth +)> + tAsyncTCPbufrDaCb +; + +54  + md +:: + tfuni +<( + tbo + + tok +, * + tt +)> + tAsyncTCPbufrDeCb +; + +55  + md +:: + tfuni +< + tbo +( + tAsyncTCPbufr + * + tobj +)> + tAsyncTCPbufrDiscCb +; + +57 +AsyncTCPbufr +( +AsyncCl +* +c +); + +58 + mvtu + ~ +AsyncTCPbufr +(); + +60 +size_t + +wre +( +Sg + & +da +); + +61 +size_t + +wre +( +ut8_t + +da +); + +62 +size_t + +wre +(cڡ * +da +); + +63 +size_t + +wre +(cڡ * +da +, size_ +n +); + +64 +size_t + +wre +(cڡ +ut8_t + * +da +, size_ +n +); + +66  +ush +(); + +68  +noClback +(); + +70  +adSgU +( +rm +, +Sg + * +r +, +AsyncTCPbufrDeCb + +de +); + +76  +adBys +(* +bufr +, +size_t + +ngth +, +AsyncTCPbufrDeCb + +de +); + +77  +adBys +( +ut8_t + * +bufr +, +size_t + +ngth +, +AsyncTCPbufrDeCb + +de +); + +82  +Da +( +AsyncTCPbufrDaCb + +cb +); + +83  +Disc +( +AsyncTCPbufrDiscCb + +cb +); + +85 +IPAddss + +meIP +(); + +86 +ut16_t + +mePt +(); + +87 +IPAddss + +lolIP +(); + +88 +ut16_t + +lolPt +(); + +90 +bo + +ced +(); + +92  + +(); + +93  +o +(); + +95 + meed +: + +96 +AsyncCl +* +_ +; + +97 +cbuf + * + m_TXbufrRd +; + +98 +cbuf + * + m_TXbufrWre +; + +99 +cbuf + * + m_RXbufr +; + +100 +bRxMode_t + + m_RXmode +; + +101 +size_t + + m_rxSize +; + +102  + m_rxTm +; + +103 +ut8_t + * + m_rxRdBysP +; + +104 +Sg + * + m_rxRdSgP +; + +106 +AsyncTCPbufrDaCb + + m_cbRX +; + +107 +AsyncTCPbufrDeCb + + m_cbDe +; + +108 +AsyncTCPbufrDiscCb + + m_cbDisc +; + +110  +_chClbacks +(); + +111  +_ndBufr +(); + +112  +__o +(); + +113  +_rxDa +( +ut8_t + * +buf +, +size_t + +n +); + +114 +size_t + +_hdRxBufr +( +ut8_t + * +buf +, size_ +n +); + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.cpp + +21  + ~"SyncCl.h +" + +22  + ~"Arduo.h +" + +23  + ~"ESPAsyncTCP.h +" + +24  + ~"cbuf.h +" + +27 + gSyncCl +:: + $SyncCl +( +size_t + +txBufL +) + +28 : + `_ +( +NULL +) + +29 , + `_tx_bufr +( +NULL +) + +30 , + `_tx_bufr_size +( +txBufL +) + +31 , + $_rx_bufr +( +NULL +) + +32 { + } +} + +34 + gSyncCl +:: + $SyncCl +( +AsyncCl + * + +, +size_t + +txBufL +) + +35 : + `_ +( + +) + +36 , + `_tx_bufr +( +w + + `cbuf +( +txBufL +)) + +37 , + `_tx_bufr_size +( +txBufL +) + +38 , + $_rx_bufr +( +NULL +) + +40 + `_chClbacks +(); + +41 + } +} + +43 + gSyncCl +::~ + $SyncCl +(){ + +44 if( +_tx_bufr + ! +NULL +){ + +45 +cbuf + * +b + = +_tx_bufr +; + +46 +_tx_bufr + = +NULL +; + +47 +de + +b +; + +49  +_rx_bufr + ! +NULL +){ + +50 +cbuf + * +b + = +_rx_bufr +; + +51 +_rx_bufr + = _rx_bufr-> +xt +; + +52 +de + +b +; + +54 + } +} + +56 #i +ASYNC_TCP_SSL_ENABLED + + +57  + gSyncCl +:: + $c +( +IPAddss + + +, +ut16_t + +pt +, +bo + +cu +){ + +59  +SyncCl +:: + $c +( +IPAddss + + +, +ut16_t + +pt +){ + +61 if( +_ + ! +NULL + && + `ced +()) + +63 +_ + = +w + + `AsyncCl +(); + +64 +_ +-> + `C +([](* +obj +, +AsyncCl + * +c +){ (( +SyncCl +*)(obj))-> + `_C +(c); }, +this +); + +65 + `_chClbacks_Disc +(); + +66 #i +ASYNC_TCP_SSL_ENABLED + + +67 if( +_ +-> + `c +( + +, +pt +, +cu +)){ + +69 if( +_ +-> + `c +( + +, +pt +)){ + +71  +_ + ! +NULL + && !_-> + `ced +(&& !_-> + `discg +()) + +72 + `day +(1); + +73  + `ced +(); + +76 + } +} + +78 #i +ASYNC_TCP_SSL_ENABLED + + +79  + gSyncCl +:: + $c +(cڡ * +ho +, +ut16_t + +pt +, +bo + +cu +){ + +81  +SyncCl +:: + $c +(cڡ * +ho +, +ut16_t + +pt +){ + +83 if( +_ + ! +NULL + && + `ced +()){ + +86 +_ + = +w + + `AsyncCl +(); + +87 +_ +-> + `C +([](* +obj +, +AsyncCl + * +c +){ (( +SyncCl +*)(obj))-> + `_C +(c); }, +this +); + +88 + `_chClbacks_Disc +(); + +89 #i +ASYNC_TCP_SSL_ENABLED + + +90 if( +_ +-> + `c +( +ho +, +pt +, +cu +)){ + +92 if( +_ +-> + `c +( +ho +, +pt +)){ + +94  +_ + ! +NULL + && !_-> + `ced +(&& !_-> + `discg +()) + +95 + `day +(1); + +96  + `ced +(); + +99 + } +} + +101 + gSyncCl + & SyncCl:: +ݔ +=(cڡ +SyncCl + & +h +){ + +102 if( +_ + ! +NULL +){ + +103 +_ +-> +abt +(); + +104 + g_ +-> + +(); + +105 + g_ + = +NULL +; + +107 + g_tx_bufr_size + = +h +. +_tx_bufr_size +; + +108 if( + g_tx_bufr + ! +NULL +){ + +109 +cbuf + * +b + = +_tx_bufr +; + +110 + g_tx_bufr + = +NULL +; + +111 +de + + gb +; + +113  + g_rx_bufr + ! +NULL +){ + +114 +cbuf + * +b + = +_rx_bufr +; + +115 + g_rx_bufr + = +b +-> +xt +; + +116 +de + + gb +; + +118 + g_tx_bufr + = +w + +cbuf +( +h +. +_tx_bufr_size +); + +119 + g_ + = +h +. +_ +; + +120 +_chClbacks +(); + +121  * + gthis +; + +124  + gSyncCl +:: + $tTimeout +( +ut32_t + +cds +){ + +125 if( +_ + ! +NULL +) + +126 +_ +-> + `tRxTimeout +( +cds +); + +127 + } +} + +129 +ut8_t + + gSyncCl +:: + $us +(){ + +130 if( +_ + = +NULL +) + +132  +_ +-> + `e +(); + +133 + } +} + +135 +ut8_t + + gSyncCl +:: + $ced +(){ + +136  ( +_ + ! +NULL + && _-> + `ced +()); + +137 + } +} + +139  + gSyncCl +:: + $ +(){ + +140 if( +_ + ! +NULL +) + +141 +_ +-> + `o +( +ue +); + +142 + } +} + +144 +size_t + + gSyncCl +:: + $_ndBufr +(){ + +145 +size_t + +avaab + = +_tx_bufr +-> + `avaab +(); + +146 if(! + `ced +(|| ! +_ +-> + `nSd +(|| +avaab + == 0) + +148 +size_t + +ndab + = +_ +-> + `a +(); + +149 if( +ndab + < +avaab +) + +150 +avaab + +ndab +; + +151 * +out + = +w + [ +avaab +]; + +152 +_tx_bufr +-> + `ad +( +out +, +avaab +); + +153 +size_t + + + = +_ +-> + `wre +( +out +, +avaab +); + +154 +de +[] +out +; + +155  + +; + +156 + } +} + +158  + gSyncCl +:: + $_Da +(* +da +, +size_t + +n +){ + +159 +_ +-> + `ackL +(); + +160 +cbuf + * +b + = +w + + `cbuf +( +n ++1); + +161 if( +b + ! +NULL +){ + +162 +b +-> + `wre +((cڡ *) +da +, +n +); + +163 if( +_rx_bufr + = +NULL +) + +164 +_rx_bufr + = +b +; + +166 +cbuf + * +p + = +_rx_bufr +; + +167  +p +-> +xt + ! +NULL +) + +168 +p + =-> +xt +; + +169 +p +-> +xt + = +b +; + +172 + } +} + +174  + gSyncCl +:: + $_Disc +(){ + +175 if( +_ + ! +NULL +){ + +176 +_ + = +NULL +; + +178 if( +_tx_bufr + ! +NULL +){ + +179 +cbuf + * +b + = +_tx_bufr +; + +180 +_tx_bufr + = +NULL +; + +181 +de + +b +; + +183 + } +} + +185  + gSyncCl +:: + $_C +( +AsyncCl + * +c +){ + +186 +_ + = +c +; + +187 if( +_tx_bufr + ! +NULL +){ + +188 +cbuf + * +b + = +_tx_bufr +; + +189 +_tx_bufr + = +NULL +; + +190 +de + +b +; + +192 +_tx_bufr + = +w + + `cbuf +( +_tx_bufr_size +); + +193 + `_chClbacks_ACed +(); + +194 + } +} + +196  + gSyncCl +:: + $_chClbacks +(){ + +197 + `_chClbacks_Disc +(); + +198 + `_chClbacks_ACed +(); + +199 + } +} + +201  + gSyncCl +:: + $_chClbacks_ACed +(){ + +202 +_ +-> + `Ack +([](* +obj +, +AsyncCl +* +c +, +size_t + +n +, +ut32_t + +time +){ (( +SyncCl +*)(obj))-> + `_ndBufr +(); }, +this +); + +203 +_ +-> + `Da +([](* +obj +, +AsyncCl +* +c +, * +da +, +size_t + +n +){ (( +SyncCl +*)(obj))-> + `_Da +(da,); }, +this +); + +204 +_ +-> + `Timeout +([](* +obj +, +AsyncCl +* +c +, +ut32_t + +time +){ c-> + `o +(); }, +this +); + +205 + } +} + +207  + gSyncCl +:: + $_chClbacks_Disc +(){ + +208 +_ +-> + `Disc +([](* +obj +, +AsyncCl +* +c +){ (( +SyncCl +*)(obj))-> + `_Disc +(); +de + c; }, +this +); + +209 + } +} + +211 +size_t + + gSyncCl +:: + $wre +( +ut8_t + +da +){ + +212  + `wre +(& +da +, 1); + +213 + } +} + +215 +size_t + + gSyncCl +:: + $wre +(cڡ +ut8_t + * +da +, +size_t + +n +){ + +216 if( +_tx_bufr + = +NULL + || ! + `ced +()){ + +219 +size_t + +toWre + = 0; + +220 +size_t + +toSd + = +n +; + +221  +_tx_bufr +-> + `room +(< +toSd +){ + +222 +toWre + = +_tx_bufr +-> + `room +(); + +223 +_tx_bufr +-> + `wre +((cڡ *) +da +, +toWre +); + +224 ! +_ +-> + `nSd +(&& + `ced +()) + +225 + `day +(0); + +226 + `_ndBufr +(); + +227 +toSd + - +toWre +; + +229 +_tx_bufr +-> + `wre +((cڡ *)( +da ++( +n + - +toSd +)),oSend); + +230 if( +_ +-> + `nSd +(&& + `ced +()) + +231 + `_ndBufr +(); + +232  +n +; + +233 + } +} + +235  + gSyncCl +:: + $avaab +(){ + +236 if( +_rx_bufr + = +NULL +)  0; + +237 +size_t + +a + = 0; + +238 +cbuf + * +b + = +_rx_bufr +; + +239  +b + ! +NULL +){ + +240 +a + + +b +-> + `avaab +(); + +241 +b + = b-> +xt +; + +243  +a +; + +244 + } +} + +246  + gSyncCl +:: + $ek +(){ + +247 if( +_rx_bufr + = +NULL +)  -1; + +248  +_rx_bufr +-> + `ek +(); + +249 + } +} + +251  + gSyncCl +:: + $ad +( +ut8_t + * +da +, +size_t + +n +){ + +252 if( +_rx_bufr + = +NULL +)  -1; + +254 +size_t + +adSoF + = 0; + +255  +_rx_bufr + ! +NULL + && ( +n + - +adSoF +>_rx_bufr-> + `avaab +()){ + +256 +cbuf + * +b + = +_rx_bufr +; + +257 +_rx_bufr + = _rx_bufr-> +xt +; + +258 +size_t + +toRd + = +b +-> + `avaab +(); + +259 +adSoF + + +b +-> + `ad +((*)( +da ++adSoF), +toRd +); + +260 if( + `ced +()){ + +261 +_ +-> + `ack +( +b +-> + `size +() - 1); + +263 +de + +b +; + +265 if( +_rx_bufr + ! +NULL + && +adSoF + < +n +){ + +266 +adSoF + + +_rx_bufr +-> + `ad +((*)( +da ++adSoF), ( +n + -eadSoFar)); + +268  +adSoF +; + +269 + } +} + +271  + gSyncCl +:: + $ad +(){ + +272 +ut8_t + +s + = 0; + +273 if( + `ad +(& +s +, 1) != 1) + +275  +s +; + +276 + } +} + +278  + gSyncCl +:: + $ush +(){ + +279 if( +_tx_bufr + = +NULL + || ! + `ced +()) + +281 if( +_tx_bufr +-> + `avaab +()){ + +282 ! +_ +-> + `nSd +(&& + `ced +()) + +283 + `day +(0); + +284 + `_ndBufr +(); + +286 + } +} + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.h + +22 #ide +SYNCCLIENT_H_ + + +23  + #SYNCCLIENT_H_ + + + ) + +25  + ~"Cl.h +" + +26  + ~ + +27 +ass + + gcbuf +; + +28 +ass + + gAsyncCl +; + +30 as + cSyncCl +: +public + +Cl + { + +31 +ive +: + +32 +AsyncCl + * +_ +; + +33 +cbuf + * + m_tx_bufr +; + +34 +size_t + + m_tx_bufr_size +; + +35 +cbuf + * + m_rx_bufr +; + +37 +size_t + +_ndBufr +(); + +38  +_Da +(* +da +, +size_t + +n +); + +39  +_C +( +AsyncCl + * +c +); + +40  +_Disc +(); + +41  +_chClbacks +(); + +42  +_chClbacks_Disc +(); + +43  +_chClbacks_ACed +(); + +45 + mpublic +: + +46 +SyncCl +( +size_t + +txBufL + = 1460); + +47 +SyncCl +( +AsyncCl + * + +, +size_t + +txBufL + = 1460); + +48 + mvtu + ~ +SyncCl +(); + +50 +ݔ + + $bo +(){  + `ced +(); } + +51 +SyncCl + & +ݔ +=(cڡ SyncCl & +h +); + +53 #i +ASYNC_TCP_SSL_ENABLED + + +54  + `c +( +IPAddss + + +, +ut16_t + +pt +, +bo + +cu +); + +55  + `c +(cڡ * +ho +, +ut16_t + +pt +, +bo + +cu +); + +56  + $c +( +IPAddss + + +, +ut16_t + +pt +){ + +57  + `c +( + +, +pt +, +l +); + +58 + } +} + +59  + $c +(cڡ * +ho +, +ut16_t + +pt +){ + +60  + `c +( +ho +, +pt +, +l +); + +61 + } +} + +63  +c +( +IPAddss + + +, +ut16_t + +pt +); + +64  +c +(cڡ * +ho +, +ut16_t + +pt +); + +66  +tTimeout +( +ut32_t + +cds +); + +68 +ut8_t + +us +(); + +69 +ut8_t + +ced +(); + +70  + +(); + +72 +size_t + +wre +( +ut8_t + +da +); + +73 +size_t + +wre +(cڡ +ut8_t + * +da +, size_ +n +); + +75  +avaab +(); + +76  +ek +(); + +77  +ad +(); + +78  +ad +( +ut8_t + * +da +, +size_t + +n +); + +79  +ush +(); + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/async_config.h + +1 #ide +LIBRARIES_ESPASYNCTCP_SRC_ASYNC_CONFIG_H_ + + +2  + #LIBRARIES_ESPASYNCTCP_SRC_ASYNC_CONFIG_H_ + + + ) + +4 #ide +ASYNC_TCP_SSL_ENABLED + + +5  + #ASYNC_TCP_SSL_ENABLED + 0 + + ) + +8  + #ASYNC_TCP_DEBUG +(...) + +9  + #TCP_SSL_DEBUG +(...) + +10 + + ) + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.c + +25  + ~ + +26 #i +ASYNC_TCP_SSL_ENABLED + + +28  + ~"lw/t.h +" + +29  + ~"lw/t.h +" + +30  + ~"lw/.h +" + +31  + ~ + +32  + ~ + +33  + ~ + +34  + ~ + +36 +ut8_t + * + gdeu_ive_key + = +NULL +; + +37 +ut16_t + + gdeu_ive_key_n + = 0; + +39 +ut8_t + * + gdeu_ifi + = +NULL +; + +40 +ut16_t + + gdeu_ifi_n + = 0; + +42  +ut8_t + + g_t_s_has_ + = 0; + +44 +SSL_CTX + * + $t_s_w_rv_x +(cڡ * + +, cڡ * +ive_key_fe +, cڡ * +sswd +){ + +45 +ut32_t + +tis + = +SSL_CONNECT_IN_PARTS +; + +46 +SSL_CTX + * +s_x +; + +48 if( +ive_key_fe +){ + +49 +tis + | +SSL_NO_DEFAULT_KEY +; + +52 i(( +s_x + = + `s_x_w +( +tis +, +SSL_DEFAULT_SVR_SESS +)= +NULL +){ + +53 + `TCP_SSL_DEBUG +("tcp_ssl_new_server_ctx: failedollocate context\n"); + +54  +NULL +; + +57 i( +ive_key_fe +){ + +58  +obj_ty + = +SSL_OBJ_RSA_KEY +; + +59 i( + `rr +( +ive_key_fe +, ".p8")) + +60 +obj_ty + = +SSL_OBJ_PKCS8 +; + +61 i( + `rr +( +ive_key_fe +, ".p12")) + +62 +obj_ty + = +SSL_OBJ_PKCS12 +; + +64 i( + `s_obj_ld +( +s_x +, +obj_ty +, +ive_key_fe +, +sswd +)){ + +65 + `TCP_SSL_DEBUG +("t_s_w_rv_x:drivkey '%s' faed\n", +ive_key_fe +); + +66  +NULL +; + +70 i( + +){ + +71 i( + `s_obj_ld +( +s_x +, +SSL_OBJ_X509_CERT +, + +, +NULL +)){ + +72 + `TCP_SSL_DEBUG +("t_s_w_rv_x:d ctifi '%s' faed\n", + +); + +73  +NULL +; + +76  +s_x +; + +77 + } +} + +79  + st_s_pcb + { + +80  +t_pcb + * + mt +; + +81  + mfd +; + +82 +SSL_CTX +* + ms_x +; + +83 +SSL + * + ms +; + +84 +ut8_t + + mty +; + +85  + mhdshake +; + +86 * + mg +; + +87 +t_s_da_cb_t + + m_da +; + +88 +t_s_hdshake_cb_t + + m_hdshake +; + +89 +t_s_r_cb_t + + m_r +; + +90  + mϡ_wr +; + +91  +pbuf + * + mt_pbuf +; + +92  + mpbuf_offt +; + +93  +t_s_pcb + * + mxt +; + +96  +t_s_pcb + + tt_s_t +; + +98  +t_s_t + * + gt_s_y + = +NULL +; + +99  + gt_s_xt_fd + = 0; + +101 +ut8_t + + $t_s_has_ +(){ + +102  +_t_s_has_ +; + +103 + } +} + +105 +t_s_t + * + $t_s_w +( +t_pcb + * +t +) { + +107 if( +t_s_xt_fd + < 0){ + +108 +t_s_xt_fd + = 0; + +111 +t_s_t + * +w_em + = (t_s_t*) + `mloc +((tcp_ssl_t)); + +112 if(! +w_em +){ + +113 + `TCP_SSL_DEBUG +("tcp_ssl_new: failedollocatecp_ssl\n"); + +114  +NULL +; + +117 +w_em +-> +t + =cp; + +118 +w_em +-> +hdshake + = +SSL_NOT_OK +; + +119 +w_em +-> +g + = +NULL +; + +120 +w_em +-> +_da + = +NULL +; + +121 +w_em +-> +_hdshake + = +NULL +; + +122 +w_em +-> +_r + = +NULL +; + +123 +w_em +-> +t_pbuf + = +NULL +; + +124 +w_em +-> +pbuf_offt + = 0; + +125 +w_em +-> +xt + = +NULL +; + +126 +w_em +-> +s_x + = +NULL +; + +127 +w_em +-> +s + = +NULL +; + +128 +w_em +-> +ty + = +TCP_SSL_TYPE_CLIENT +; + +129 +w_em +-> +fd + = +t_s_xt_fd +++; + +131 if( +t_s_y + = +NULL +){ + +132 +t_s_y + = +w_em +; + +134 +t_s_t + * +em + = +t_s_y +; + +135  +em +-> +xt + ! +NULL +) + +136 +em + = im-> +xt +; + +137 +em +-> +xt + = +w_em +; + +140 + `TCP_SSL_DEBUG +("t_s_w: %d\n", +w_em +-> +fd +); + +141  +w_em +; + +142 + } +} + +144 +t_s_t +* + $t_s_g +( +t_pcb + * +t +) { + +145 if( +t + = +NULL +) { + +146  +NULL +; + +148 +t_s_t + * +em + = +t_s_y +; + +149  +em + && im-> +t + !=cp){ + +150 +em + = im-> +xt +; + +152  +em +; + +153 + } +} + +155  + $t_s_w_ +( +t_pcb + * +t +){ + +156 +SSL_CTX +* +s_x +; + +157 +t_s_t + * +t_s +; + +159 if( +t + = +NULL +) { + +163 if( + `t_s_g +( +t +! +NULL +){ + +164 + `TCP_SSL_DEBUG +("tcp_ssl_new_client:cp_ssllreadyxists\n"); + +168 +s_x + = + `s_x_w +( +SSL_CONNECT_IN_PARTS + | +SSL_SERVER_VERIFY_LATER +, 1); + +169 if( +s_x + = +NULL +){ + +170 + `TCP_SSL_DEBUG +("tcp_ssl_new_client: failedollocate ssl context\n"); + +174 +t_s + = + `t_s_w +( +t +); + +175 if( +t_s + = +NULL +){ + +176 + `s_x_ +( +s_x +); + +180 +t_s +-> +s_x + = ssl_ctx; + +182 +t_s +-> +s + = + `s__w +( +s_x +,_s-> +fd +, +NULL +, 0, NULL); + +183 if( +t_s +-> +s + = +NULL +){ + +184 + `TCP_SSL_DEBUG +("tcp_ssl_new_client: failedollocate ssl\n"); + +185 + `t_s_ +( +t +); + +189  +t_s +-> +fd +; + +190 + } +} + +192  + $t_s_w_rv +( +t_pcb + * +t +, +SSL_CTX +* +s_x +){ + +193 +t_s_t + * +t_s +; + +195 if( +t + = +NULL +) { + +199 if( +s_x + = +NULL +){ + +203 if( + `t_s_g +( +t +! +NULL +){ + +204 + `TCP_SSL_DEBUG +("tcp_ssl_new_server:cp_ssllreadyxists\n"); + +208 +t_s + = + `t_s_w +( +t +); + +209 if( +t_s + = +NULL +){ + +213 +t_s +-> +ty + = +TCP_SSL_TYPE_SERVER +; + +214 +t_s +-> +s_x + = ssl_ctx; + +216 +_t_s_has_ + = 1; + +217 +t_s +-> +s + = + `s_rv_w +( +s_x +,_s-> +fd +); + +218 if( +t_s +-> +s + = +NULL +){ + +219 + `TCP_SSL_DEBUG +("tcp_ssl_new_server: failedollocate ssl\n"); + +220 + `t_s_ +( +t +); + +224  +t_s +-> +fd +; + +225 + } +} + +227  + $t_s_ +( +t_pcb + * +t +) { + +229 if( +t + = +NULL +) { + +233 +t_s_t + * +em + = +t_s_y +; + +235 if( +em +-> +t + ==cp){ + +236 +t_s_y + =_s_y-> +xt +; + +237 if( +em +-> +t_pbuf + ! +NULL +){ + +238 + `pbuf_ +( +em +-> +t_pbuf +); + +240 + `TCP_SSL_DEBUG +("t_s_: %d\n", +em +-> +fd +); + +241 if( +em +-> +s +) + +242 + `s_ +( +em +-> +s +); + +243 if( +em +-> +ty + = +TCP_SSL_TYPE_CLIENT + && im-> +s_x +) + +244 + `s_x_ +( +em +-> +s_x +); + +245 if( +em +-> +ty + = +TCP_SSL_TYPE_SERVER +) + +246 +_t_s_has_ + = 0; + +247 + ` +( +em +); + +251  +em +-> +xt + && im->xt-> +t + !=cp) + +252 +em + = im-> +xt +; + +254 if( +em +-> +xt + = +NULL +){ + +255  +ERR_TCP_SSL_INVALID_CLIENTFD_DATA +; + +258 +t_s_t + * +i + = +em +-> +xt +; + +259 +em +-> +xt + = +i +->next; + +260 if( +i +-> +t_pbuf + ! +NULL +){ + +261 + `pbuf_ +( +i +-> +t_pbuf +); + +263 + `TCP_SSL_DEBUG +("t_s_: %d\n", +i +-> +fd +); + +264 if( +i +-> +s +) + +265 + `s_ +( +i +-> +s +); + +266 if( +i +-> +ty + = +TCP_SSL_TYPE_CLIENT + && i-> +s_x +) + +267 + `s_x_ +( +i +-> +s_x +); + +268 if( +i +-> +ty + = +TCP_SSL_TYPE_SERVER +) + +269 +_t_s_has_ + = 0; + +270 + ` +( +i +); + +272 + } +} + +274 #ifde +AXTLS_2_0_0_SNDBUF + + +275  + $t_s_dbuf +( +t_pcb + * +t +){ + +276  +exed +; + +277  +avaab +; + +278  +su + = -1; + +280 if( +t + = +NULL +) { + +281  +su +; + +283 +t_s_t + * +t_s + = + `t_s_g +( +t +); + +284 if(! +t_s +){ + +285 + `TCP_SSL_DEBUG +("tcp_ssl_sndbuf:cp_ssl is NULL\n"); + +286  +su +; + +288 +avaab + = + `t_dbuf +( +t +); + +289 if(! +avaab +){ + +290 + `TCP_SSL_DEBUG +("tcp_ssl_sndbuf:cp_sndbuf is zero\n"); + +293 +su + = +avaab +; + +294 ( +exed + = + `s_lcuϋ_wre_ngth +( +t_s +-> +s +, +su +)> +avaab +){ + +295 +su + -( +exed + - +avaab +) + 4; + +298 if( +exed + > 0){ + +300  +su +; + +304 + } +} + +307  + $t_s_wre +( +t_pcb + * +t +, +ut8_t + * +da +, +size_t + +n +) { + +308 if( +t + = +NULL +) { + +311 +t_s_t + * +t_s + = + `t_s_g +( +t +); + +312 if(! +t_s +){ + +313 + `TCP_SSL_DEBUG +("tcp_ssl_write:cp_ssl is NULL\n"); + +316 +t_s +-> +ϡ_wr + = 0; + +318 #ifde +AXTLS_2_0_0_SNDBUF + + +319  +exed_n + = + `s_lcuϋ_wre_ngth +( +t_s +-> +s +, +n +); + +320  +avaab_n + = + `t_dbuf +( +t +); + +321 if( +exed_n + < 0 ||xed_> +avaab_n +){ + +322 + `TCP_SSL_DEBUG +("t_s_wre: dwn f! %u < %d(%u)\r\n", +avaab_n +, +exed_n +, +n +); + +327  +rc + = + `s_wre +( +t_s +-> +s +, +da +, +n +); + +331 i( +rc + < 0){ + +332 if( +rc + ! +SSL_CLOSE_NOTIFY +) { + +333 + `TCP_SSL_DEBUG +("t_s_wrr: %d\r\n", +rc +); + +335  +rc +; + +338  +t_s +-> +ϡ_wr +; + +339 + } +} + +351  + $t_s_ad +( +t_pcb + * +t +,  +pbuf + * +p +) { + +352 if( +t + = +NULL +) { + +355 +t_s_t +* +fd_da + = +NULL +; + +357  +ad_bys + = 0; + +358  +tٮ_bys + = 0; + +359 +ut8_t + * +ad_buf +; + +361 +fd_da + = + `t_s_g +( +t +); + +362 if( +fd_da + = +NULL +) { + +363 + `TCP_SSL_DEBUG +("tcp_ssl_read:cp_ssl is NULL\n"); + +364  +ERR_TCP_SSL_INVALID_CLIENTFD_DATA +; + +367 if( +p + = +NULL +) { + +368 + `TCP_SSL_DEBUG +("tcp_ssl_read:p == NULL\n"); + +369  +ERR_TCP_SSL_INVALID_DATA +; + +374 +fd_da +-> +t_pbuf + = +p +; + +375 +fd_da +-> +pbuf_offt + = 0; + +378 +ad_bys + = + `s_ad +( +fd_da +-> +s +, & +ad_buf +); + +380 if( +ad_bys + < +SSL_OK +) { + +381 if( +ad_bys + ! +SSL_CLOSE_NOTIFY +) { + +382 + `TCP_SSL_DEBUG +("t_s_ad:d: %d\n", +ad_bys +); + +384 +tٮ_bys + = +ad_bys +; + +386 } if( +ad_bys + > 0){ + +387 if( +fd_da +-> +_da +){ + +388 +fd_da +-> + `_da +(fd_da-> +g +, +t +, +ad_buf +, +ad_bys +); + +390 +tٮ_bys ++ +ad_bys +; + +392 if( +fd_da +-> +hdshake + ! +SSL_OK +) { + +393 +fd_da +-> +hdshake + = + `s_hdshake_us +(fd_da-> +s +); + +394 if( +fd_da +-> +hdshake + = +SSL_OK +){ + +396 if( +fd_da +-> +_hdshake +) + +397 +fd_da +-> + `_hdshake +(fd_da-> +g +, fd_da-> +t +, fd_da-> +s +); + +398 } if( +fd_da +-> +hdshake + ! +SSL_NOT_OK +){ + +399 + `TCP_SSL_DEBUG +("t_s_ad: hdshakr: %d\n", +fd_da +-> +hdshake +); + +400 if( +fd_da +-> +_r +) + +401 +fd_da +-> + `_r +(fd_da-> +g +, fd_da-> +t +, fd_da-> +hdshake +); + +402  +fd_da +-> +hdshake +; + +406 }  +p +-> +t_n + - +fd_da +-> +pbuf_offt + > 0); + +408 + `t_cved +( +t +, +p +-> +t_n +); + +409 +fd_da +-> +t_pbuf + = +NULL +; + +410 + `pbuf_ +( +p +); + +412  +tٮ_bys +; + +413 + } +} + +415 +SSL + * + $t_s_g_s +( +t_pcb + * +t +){ + +416 +t_s_t + * +t_s + = + `t_s_g +( +t +); + +417 if( +t_s +){ + +418  +t_s +-> +s +; + +420  +NULL +; + +421 + } +} + +423 +bo + + $t_s_has +( +t_pcb + * +t +){ + +424  + `t_s_g +( +t +! +NULL +; + +425 + } +} + +427  + $t_s_is_rv +( +t_pcb + * +t +){ + +428 +t_s_t + * +t_s + = + `t_s_g +( +t +); + +429 if( +t_s +){ + +430  +t_s +-> +ty +; + +433 + } +} + +435  + $t_s_g +( +t_pcb + * +t +, * +g +){ + +436 +t_s_t + * +em + = + `t_s_g +( +t +); + +437 if( +em +) { + +438 +em +-> +g + =rg; + +440 + } +} + +442  + $t_s_da +( +t_pcb + * +t +, +t_s_da_cb_t + +g +){ + +443 +t_s_t + * +em + = + `t_s_g +( +t +); + +444 if( +em +) { + +445 +em +-> +_da + = +g +; + +447 + } +} + +449  + $t_s_hdshake +( +t_pcb + * +t +, +t_s_hdshake_cb_t + +g +){ + +450 +t_s_t + * +em + = + `t_s_g +( +t +); + +451 if( +em +) { + +452 +em +-> +_hdshake + = +g +; + +454 + } +} + +456  + $t_s_r +( +t_pcb + * +t +, +t_s_r_cb_t + +g +){ + +457 +t_s_t + * +em + = + `t_s_g +( +t +); + +458 if( +em +) { + +459 +em +-> +_r + = +g +; + +461 + } +} + +463  +t_s_fe_cb_t + + g_t_s_fe_cb + = +NULL +; + +464 * + g_t_s_fe_g + = +NULL +; + +466  + $t_s_fe +( +t_s_fe_cb_t + +cb +, * +g +){ + +467 +_t_s_fe_cb + = +cb +; + +468 +_t_s_fe_g + = +g +; + +469 + } +} + +471  + $ax_g_fe +(cڡ * +fame +, +ut8_t + ** +buf +) { + +473 if( +_t_s_fe_cb +){ + +474  + `_t_s_fe_cb +( +_t_s_fe_g +, +fame +, +buf +); + +476 * +buf + = 0; + +478 + } +} + +480 +t_s_t +* + $t_s_g_by_fd +( +fd +) { + +481 +t_s_t + * +em + = +t_s_y +; + +482  +em + && im-> +fd + != fd){ + +483 +em + = im-> +xt +; + +485  +em +; + +486 + } +} + +490  + $ax_pt_wre +( +fd +, +ut8_t + * +da +, +ut16_t + +n +) { + +491 +t_s_t + * +fd_da + = +NULL +; + +492  +t_n + = 0; + +493 +r_t + +r + = +ERR_OK +; + +497 +fd_da + = + `t_s_g_by_fd +( +fd +); + +498 if( +fd_da + = +NULL +) { + +500  +ERR_MEM +; + +503 i( +da + = +NULL + || +n + == 0) { + +507 i( + `t_dbuf +( +fd_da +-> +t +< +n +) { + +508 +t_n + = + `t_dbuf +( +fd_da +-> +t +); + +509 if( +t_n + == 0) { + +510 + `TCP_SSL_DEBUG +("ax_pt_wre:_dbuizo: %d\n", +n +); + +511  +ERR_MEM +; + +514 +t_n + = +n +; + +517 i( +t_n + > 2 * +fd_da +-> +t +-> +mss +) { + +518 +t_n + = 2 * +fd_da +-> +t +-> +mss +; + +521 +r + = + `t_wre +( +fd_da +-> +t +, +da +, +t_n +, +TCP_WRITE_FLAG_COPY +); + +522 if( +r + < +ERR_OK +) { + +523 i( +r + = +ERR_MEM +) { + +524 + `TCP_SSL_DEBUG +("ax_pt_wre: Nmemy %d (%d)\n", +t_n +, +n +); + +525  +r +; + +527 + `TCP_SSL_DEBUG +("ax_pt_wre:_wrr: %d\n", +r +); + +528  +r +; + +529 } i( +r + = +ERR_OK +) { + +531 +r + = + `t_ouut +( +fd_da +-> +t +); + +532 if( +r + ! +ERR_OK +) { + +533 + `TCP_SSL_DEBUG +("ax_pt_wre:_ouur: %d\n", +r +); + +534  +r +; + +538 +fd_da +-> +ϡ_wr + + +t_n +; + +540  +t_n +; + +541 + } +} + +546  + $ax_pt_ad +( +fd +, +ut8_t + * +da +,  +n +) { + +547 +t_s_t + * +fd_da + = +NULL +; + +548 +ut8_t + * +ad_buf + = +NULL +; + +549 +ut8_t + * +d_buf + = +NULL +; + +550 +u16_t + +cv_n + = 0; + +554 +fd_da + = + `t_s_g_by_fd +( +fd +); + +555 i( +fd_da + = +NULL +) { + +556 + `TCP_SSL_DEBUG +("ax_pt_ad:_s[%d] iNULL\n", +fd +); + +557  +ERR_TCP_SSL_INVALID_CLIENTFD_DATA +; + +560 if( +fd_da +-> +t_pbuf + = +NULL + || fd_da->t_pbuf-> +t_n + == 0) { + +564 +ad_buf + =( +ut8_t +*) + `oc +( +fd_da +-> +t_pbuf +-> +n + + 1, (uint8_t)); + +565 +d_buf + = +ad_buf +; + +566 i( +d_buf + ! +NULL +){ + +567 +cv_n + = + `pbuf_cy_l +( +fd_da +-> +t_pbuf +, +ad_buf +, +n +, fd_da-> +pbuf_offt +); + +568 +fd_da +-> +pbuf_offt + + +cv_n +; + +571 i( +cv_n + != 0) { + +572 + `memy +( +da +, +ad_buf +, +cv_n +); + +575 if( +n + < +cv_n +) { + +576 + `TCP_SSL_DEBUG +("ax_pt_ad: g %d bymܐthxed\n", +cv_n + - +n +); + +579 + ` +( +d_buf +); + +580 +d_buf + = +NULL +; + +582  +cv_n +; + +583 + } +} + +585  + $ax_wdt_ed +({ + } +} + + @.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.h + +26 #ide +LWIPR_COMPAT_H + + +27  + #LWIPR_COMPAT_H + + + ) + +29  + ~ + +31 #i +ASYNC_TCP_SSL_ENABLED + + +33  + ~"lwts.h +" + +37 #i +LWIP_RAW +==1 + +39 #ifde +__lulus + + +43  + ~ + +44  + ~"ude/s.h +" + +46  + #ERR_TCP_SSL_INVALID_SSL + -101 + + ) + +47  + #ERR_TCP_SSL_INVALID_TCP + -102 + + ) + +48  + #ERR_TCP_SSL_INVALID_CLIENTFD + -103 + + ) + +49  + #ERR_TCP_SSL_INVALID_CLIENTFD_DATA + -104 + + ) + +50  + #ERR_TCP_SSL_INVALID_DATA + -105 + + ) + +52  + #TCP_SSL_TYPE_CLIENT + 0 + + ) + +53  + #TCP_SSL_TYPE_SERVER + 1 + + ) + +55  + #t_s_s_wre +( +A +, +B +, +C + + `t_s_wre +(A, B, C) + + ) + +56  + #t_s_s_ad +( +A +, +B + + `t_s_ad +(A, B) + + ) + +58 (* +t_s_da_cb_t +)(* + tg +,  + tt_pcb + * + tt +, + tut8_t + * + tda +, + tsize_t + + tn +); + +59 (* +t_s_hdshake_cb_t +)(* + tg +,  + tt_pcb + * + tt +, + tSSL + * + ts +); + +60 (* +t_s_r_cb_t +)(* + tg +,  + tt_pcb + * + tt +, + tt8_t + + tr +); + +61 (* +t_s_fe_cb_t +)(* + tg +, cڡ * + tfame +, + tut8_t + ** + tbuf +); + +63 +ut8_t + +t_s_has_ +(); + +65  +t_s_w_ +( +t_pcb + * +t +); + +67 +SSL_CTX + * +t_s_w_rv_x +(cڡ * + +, cڡ * +ive_key_fe +, cڡ * +sswd +); + +68  +t_s_w_rv +( +t_pcb + * +t +, +SSL_CTX +* +s_x +); + +69  +t_s_is_rv +( +t_pcb + * +t +); + +71  +t_s_ +( +t_pcb + * +t +); + +72  +t_s_ad +( +t_pcb + * +t +,  +pbuf + * +p +); + +74 #ifde +AXTLS_2_0_0_SNDBUF + + +75  +t_s_dbuf +( +t_pcb + * +t +); + +78  +t_s_wre +( +t_pcb + * +t +, +ut8_t + * +da +, +size_t + +n +); + +80  +t_s_fe +( +t_s_fe_cb_t + +cb +, * +g +); + +82  +t_s_g +( +t_pcb + * +t +, * +g +); + +83  +t_s_da +( +t_pcb + * +t +, +t_s_da_cb_t + +g +); + +84  +t_s_hdshake +( +t_pcb + * +t +, +t_s_hdshake_cb_t + +g +); + +85  +t_s_r +( +t_pcb + * +t +, +t_s_r_cb_t + +g +); + +87 +SSL + * +t_s_g_s +( +t_pcb + * +t +); + +88 +bo + +t_s_has +( +t_pcb + * +t +); + +90 #ifde +__lulus + + + @interface/node_modules/jest-haste-map/node_modules/fsevents/fsevents.cc + +6  + ~"n.h +" + +7  + ~"uv.h +" + +8  + ~"v8.h +" + +9  + ~"CeFoundi/CeFoundi.h +" + +10  + ~"CeSvis/CeSvis.h +" + +11  + ~ + +12  + ~ + +14  + ~"c/age.cc +" + +15 +mea + + gf + { + +16 as + cFSEvts + : +public + +N +:: +ObjeWp + { + +17 +public +: + +18 +exic + +FSEvts +(cڡ * +th +); + +19 ~ +FSEvts +(); + +21 +uv_mux_t + + gmux +; + +24 +uv_async_t + + gasync +; + +25  +asyncS +(); + +26  +asyncTrigg +(); + +27  +asyncSt +(); + +30 +uv_thad_t + + gthad +; + +31 +CFRunLoRef + + gthadlo +; + +32  +thadS +(); + +33  +thadRun +(* +x +); + +34  +thadSt +(); + +37 + gN +:: +AsyncResour + +async_sour +; + +38  +emEvt +(cڡ * +th +, +UI32 + +ags +, +UI64 + +id +); + +41 +CFAayRef + + gths +; + +42 + gd +:: +ve +< +f_evt +*> +evts +; + +43  +Inlize +( +v8 +:: +Lol + +expts +); + +46  +NAN_METHOD +( +New +); + +47  +NAN_METHOD +( +St +); + +48  +NAN_METHOD +( +S +); + +53 +usg + +mea + + gf +; + +55 + gFSEvts +:: + $FSEvts +(cڡ * +th +) + +56 : + `async_sour +("fsevents:FSEvents") { + +57 +CFSgRef + +ds +[] = { + `CFSgCeWhCSg +( +NULL +, +th +, +kCFSgEncodgUTF8 +) }; + +58 +ths + = + `CFAayCe +( +NULL +, (cڡ **)& +ds +, 1, NULL); + +59 +thadlo + = +NULL +; + +60 i( + `uv_mux_ +(& +mux +) + `abt +(); + +61 + } +} + +62 + gFSEvts +::~ + $FSEvts +() { + +63 + `CFR +( +ths +); + +64 + `uv_mux_deroy +(& +mux +); + +65 + } +} + +67 #ide +kFSEvtSmEvtFgImCed + + +68  + #kFSEvtSmEvtFgImCed + 0x00000010 + + ) + +71  + ~"c/async.cc +" + +72  + ~"c/thad.cc +" + +73  + ~"c/cڡts.cc +" + +74  + ~"c/mhods.cc +" + +76  + gFSEvts +:: +Inlize +( +v8 +:: +Lol + +expts +) { + +77 +v8 +:: +Isީe +* +isީe + = +expts +-> +GIsީe +(); + +78 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +cڋxt + = +isީe +-> +GCutCڋxt +(); + +79 + gv8 +:: +Lol +< +v8 +:: +FuniTeme +> +l + = +N +:: +New +( +FSEvts +::New); + +80 + gl +-> +SCssName +( +N +:: +New +< +v8 +:: +Sg +>("FSEvts"). +ToLolChecked +()); + +81 + gl +-> +InTeme +()-> +SIlFldCou +(1); + +82 + gN +:: +SPryTeme +( +l +, "t", +N +:: +New +< +v8 +:: +FuniTeme +>( +FSEvts +:: +S +)); + +83 + gN +:: +SPryTeme +( +l +, "", +N +:: +New +< +v8 +:: +FuniTeme +>( +FSEvts +:: +St +)); + +84 + gN +:: +S +( +expts +, +N +:: +New +< +v8 +:: +Sg +>("Cڡts"). +ToLolChecked +(), +Cڡts +()); + +85 + gN +:: +S +( +expts +, +N +:: +New +< +v8 +:: +Sg +>("FSEvts"). +ToLolChecked +(), +l +-> +GFuni +( +cڋxt +).ToLocalChecked()); + +88 +NODE_MODULE +( +f +, +FSEvts +:: +Inlize +) + + @interface/node_modules/jest-haste-map/node_modules/fsevents/src/async.cc + +7  + $async_age +( +uv_async_t + * +async +) { + +8 i(! +async +-> +da +) ; + +9 +FSEvts + * +f + = (FSEvt*) +async +-> +da +; + +10 +CFIndex + +idx +, +t +; + +11 +f_evt + * +evt +; + +12  +thbuf +[1024]; + +13 cڡ * +thr + = +NULL +; + +14 + `uv_mux_lock +(& +f +-> +mux +); + +15 +t + = +f +-> +evts +. + `size +(); + +16  +idx +=0; idx< +t +; idx++) { + +17 +evt + = +f +-> +evts +. + ` +( +idx +); + +18 i( +evt + = +NULL +) ; + +19 +thr + = + `CFSgGCSgP +( +evt +-> +th +, +kCFSgEncodgUTF8 +); + +20 i(! +thr + + `CFSgGCSg +( +evt +-> +th +, +thbuf +, 1024, +kCFSgEncodgUTF8 +); + +21 +f +-> + `emEvt +( +thr + ?h: +thbuf +, +evt +-> +ags +,vt-> +id +); + +22 +de + +evt +; + +24 i( +t +>0 +f +-> +evts +. + `r +(); + +25 + `uv_mux_uock +(& +f +-> +mux +); + +26 + } +} + +28  + gFSEvts +:: + $asyncS +() { + +29 i( +async +. +da + = +this +) ; + +30 +async +. +da + = +this +; + +31 + `uv_async_ +( + `uv_deu_lo +(), & +async +, ( +uv_async_cb + +async_age +); + +32 + } +} + +34  + gFSEvts +:: + $asyncTrigg +() { + +35 i( +async +. +da + ! +this +) ; + +36 + `uv_async_nd +(& +async +); + +37 + } +} + +39  + gFSEvts +:: + $asyncSt +() { + +40 i( +async +. +da + ! +this +) ; + +41 +async +. +da + = +NULL +; + +42 + `uv_o +(( +uv_hd_t + *& +async +, +NULL +); + +43 + } +} + + @interface/node_modules/jest-haste-map/node_modules/fsevents/src/constants.cc + +7 #ide +kFSEvtSmEvtFgNe + + +8  + #kFSEvtSmEvtFgNe + 0x00000000 + + ) + +11 #ide +kFSEvtSmEvtFgMuSnSubDs + + +12  + #kFSEvtSmEvtFgMuSnSubDs + 0x00000001 + + ) + +15 #ide +kFSEvtSmEvtFgUrDrݳd + + +16  + #kFSEvtSmEvtFgUrDrݳd + 0x00000002 + + ) + +19 #ide +kFSEvtSmEvtFgKlDrݳd + + +20  + #kFSEvtSmEvtFgKlDrݳd + 0x00000004 + + ) + +23 #ide +kFSEvtSmEvtFgEvtIdsWed + + +24  + #kFSEvtSmEvtFgEvtIdsWed + 0x00000008 + + ) + +27 #ide +kFSEvtSmEvtFgHiyDe + + +28  + #kFSEvtSmEvtFgHiyDe + 0x00000010 + + ) + +31 #ide +kFSEvtSmEvtFgRoChged + + +32  + #kFSEvtSmEvtFgRoChged + 0x00000020 + + ) + +35 #ide +kFSEvtSmEvtFgMou + + +36  + #kFSEvtSmEvtFgMou + 0x00000040 + + ) + +39 #ide +kFSEvtSmEvtFgUnmou + + +40  + #kFSEvtSmEvtFgUnmou + 0x00000080 + + ) + +43 #ide +kFSEvtSmEvtFgImCed + + +44  + #kFSEvtSmEvtFgImCed + 0x00000100 + + ) + +47 #ide +kFSEvtSmEvtFgImRemoved + + +48  + #kFSEvtSmEvtFgImRemoved + 0x00000200 + + ) + +51 #ide +kFSEvtSmEvtFgImInodeMaMod + + +52  + #kFSEvtSmEvtFgImInodeMaMod + 0x00000400 + + ) + +55 #ide +kFSEvtSmEvtFgImRamed + + +56  + #kFSEvtSmEvtFgImRamed + 0x00000800 + + ) + +59 #ide +kFSEvtSmEvtFgImModifd + + +60  + #kFSEvtSmEvtFgImModifd + 0x00001000 + + ) + +63 #ide +kFSEvtSmEvtFgImFdInfoMod + + +64  + #kFSEvtSmEvtFgImFdInfoMod + 0x00002000 + + ) + +67 #ide +kFSEvtSmEvtFgImChgeOwr + + +68  + #kFSEvtSmEvtFgImChgeOwr + 0x00004000 + + ) + +71 #ide +kFSEvtSmEvtFgImXMod + + +72  + #kFSEvtSmEvtFgImXMod + 0x00008000 + + ) + +75 #ide +kFSEvtSmEvtFgImIsFe + + +76  + #kFSEvtSmEvtFgImIsFe + 0x00010000 + + ) + +79 #ide +kFSEvtSmEvtFgImIsD + + +80  + #kFSEvtSmEvtFgImIsD + 0x00020000 + + ) + +83 #ide +kFSEvtSmEvtFgImIsSymlk + + +84  + #kFSEvtSmEvtFgImIsSymlk + 0x00040000 + + ) + +87  + gv8 +:: +Lol +< +v8 +:: +Obje +> + $Cڡts +() { + +88 +v8 +:: +Lol + +obje + = +N +:: +New +(); + +89 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgNe"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgNe +)); + +90 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgMuSnSubDs"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgMuSnSubDs +)); + +91 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgUrDrݳd"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgUrDrݳd +)); + +92 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgKlDrݳd"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgKlDrݳd +)); + +93 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgEvtIdsWed"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgEvtIdsWed +)); + +94 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgHiyDe"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgHiyDe +)); + +95 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgRoChged"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgRoChged +)); + +96 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgMou"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgMou +)); + +97 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgUnmou"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgUnmou +)); + +98 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImCed"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImCed +)); + +99 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImRemoved"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImRemoved +)); + +100 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImInodeMaMod"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImInodeMaMod +)); + +101 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImRamed"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImRamed +)); + +102 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImModifd"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImModifd +)); + +103 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImFdInfoMod"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImFdInfoMod +)); + +104 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImChgeOwr"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImChgeOwr +)); + +105 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImXMod"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImXMod +)); + +106 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImIsFe"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImIsFe +)); + +107 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImIsD"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImIsD +)); + +108 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImIsSymlk"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImIsSymlk +)); + +109  +obje +; + +110 + } +} + + @interface/node_modules/jest-haste-map/node_modules/fsevents/src/methods.cc + +6  + gFSEvts +:: + $emEvt +(cڡ * +th +, +UI32 + +ags +, +UI64 + +id +) { + +7 +N +:: +HdSce + +hd_sce +; + +8 +v8 +:: +Lol + +obje + = + `hd +(); + +9 +v8 +:: +Lol + +key + = +N +:: +New +("hdr"). + `ToLolChecked +(); + +10 +N +:: +Clback + + `hdr +(N:: +To +< +v8 +:: +Funi +>(N:: + `G +( +obje +, +key +). + `ToLolChecked +()).ToLocalChecked()); + +11 +v8 +:: +Lol + +gv +[] = { + +12 +N +:: +New +< +v8 +:: +Sg +>( +th +). + `ToLolChecked +(), + +13 +N +:: +New +< +v8 +:: +Numb +>( +ags +), + +14 +N +:: +New +< +v8 +:: +Numb +>( +id +) + +16 +hdr +. + `Cl +(3, +gv +, & +async_sour +); + +17 + } +} + +19 + $NAN_METHOD +( +FSEvts +:: +New +) { + +20 +N +:: +Utf8Sg + + `th +( +fo +[0]); + +22 +FSEvts + * +f + = +w + + `FSEvts +(* +th +); + +23 +f +-> + `Wp +( +fo +. + `This +()); + +24 +N +:: + `S +( +fo +. + `This +(), N:: +New +< +v8 +:: +Sg +>("hdr"). + `ToLolChecked +(), info[1]); + +26 +fo +. + `GRuVue +(). + `S +(fo. + `This +()); + +27 + } +} + +29 + $NAN_METHOD +( +FSEvts +:: +St +) { + +30 +FSEvts +* +f + = +N +:: +ObjeWp +:: +Unwp +( +fo +. + `This +()); + +32 +f +-> + `thadSt +(); + +33 +f +-> + `asyncSt +(); + +35 +fo +. + `GRuVue +(). + `S +(fo. + `This +()); + +36 + } +} + +38 + $NAN_METHOD +( +FSEvts +:: +S +) { + +39 +FSEvts +* +f + = +N +:: +ObjeWp +:: +Unwp +( +fo +. + `This +()); + +40 +f +-> + `asyncS +(); + +41 +f +-> + `thadS +(); + +43 +fo +. + `GRuVue +(). + `S +(fo. + `This +()); + +44 + } +} + + @interface/node_modules/jest-haste-map/node_modules/fsevents/src/storage.cc + +6  + sf_evt + { + +7 +UI64 + + mid +; + +8 +UI32 + + mags +; + +9 +CFSgRef + + mth +; + +11 +f_evt +( +CFSgRef + +evtPh +, +UI32 + +evtFg +, +UI64 + +evtId +) { + +12 + mthis +-> + mth + = +evtPh +; + +13 + mthis +-> + mags + = +evtFg +; + +14 + mthis +-> + mid + = +evtId +; + +15 i( + mthis +-> + mth + ! +NULL +) + +16 +CFRa +( +this +-> +th +); + +19 ~ +f_evt +() { + +20 i( + mthis +-> + mth + ! +NULL +) + +21 +CFR +( +this +-> +th +); + +24 + mive +: + +25 +f_evt +(const fse_event&); + +26  + mݔ +=(cڡ +f_evt +&); + + @interface/node_modules/jest-haste-map/node_modules/fsevents/src/thread.cc + +7 #ide +kFSEvtSmCeFgNe + + +8  + #kFSEvtSmCeFgNe + 0x00000000 + + ) + +11 #ide +kFSEvtSmCeFgUCFTys + + +12  + #kFSEvtSmCeFgUCFTys + 0x00000001 + + ) + +15 #ide +kFSEvtSmCeFgNoDer + + +16  + #kFSEvtSmCeFgNoDer + 0x00000002 + + ) + +19 #ide +kFSEvtSmCeFgWchRo + + +20  + #kFSEvtSmCeFgWchRo + 0x00000004 + + ) + +23 #ide +kFSEvtSmCeFgIgneSf + + +24  + #kFSEvtSmCeFgIgneSf + 0x00000008 + + ) + +27 #ide +kFSEvtSmCeFgFeEvts + + +28  + #kFSEvtSmCeFgFeEvts + 0x00000010 + + ) + +31  + gFSEvts +:: + $thadS +() { + +32 i( +thadlo +) ; + +33 i( + `uv_thad_ +(& +thad +, & +FSEvts +:: +thadRun +, +this +) + `abt +(); + +34 + } +} + +36  + $HdSmEvts +( +CڡFSEvtSmRef + +am +, * +x +, +size_t + +numEvts +, * +evtPhs +, cڡ +FSEvtSmEvtFgs + +evtFgs +[], cڡ +FSEvtSmEvtId + +evtIds +[]) { + +37 +FSEvts + * +f + = (FSEvt*) +x +; + +38 +size_t + +idx +; + +39 + `uv_mux_lock +(& +f +-> +mux +); + +40  +idx +=0; idx < +numEvts +; idx++) { + +41 +f_evt + * +evt + = +w + + `f_evt +( + +42 ( +CFSgRef +) + `CFAayGVueAtIndex +(( +CFAayRef +) +evtPhs +, +idx +), + +43 +evtFgs +[ +idx +], + +44 +evtIds +[ +idx +] + +46 +f +-> +evts +. + `push_back +( +evt +); + +48 +f +-> + `asyncTrigg +(); + +49 + `uv_mux_uock +(& +f +-> +mux +); + +50 + } +} + +52  + gFSEvts +:: + $thadRun +(* +x +) { + +53 +FSEvts + * +f + = (FSEvts*) +x +; + +54 +FSEvtSmCڋxt + +cڋxt + = { 0, +x +, +NULL +, NULL, NULL }; + +55 +f +-> +thadlo + = + `CFRunLoGCut +(); + +56 +FSEvtSmRef + +am + = + `FSEvtSmCe +( +NULL +, & +HdSmEvts +, & +cڋxt +, +f +-> +ths +, +kFSEvtSmEvtIdSNow +, ( +CFAbsuTime +0.1, +kFSEvtSmCeFgNe + | +kFSEvtSmCeFgWchRo + | +kFSEvtSmCeFgFeEvts + | +kFSEvtSmCeFgUCFTys +); + +57 + `FSEvtSmScheduWhRunLo +( +am +, +f +-> +thadlo +, +kCFRunLoDeuMode +); + +58 + `FSEvtSmS +( +am +); + +59 + `CFRunLoRun +(); + +60 + `FSEvtSmSt +( +am +); + +61 + `FSEvtSmUnscheduFromRunLo +( +am +, +f +-> +thadlo +, +kCFRunLoDeuMode +); + +62 + `FSEvtSmInvide +( +am +); + +63 + `FSEvtSmR +( +am +); + +64 +f +-> +thadlo + = +NULL +; + +65 + } +} + +67  + gFSEvts +:: + $thadSt +() { + +68 i(! +thadlo +) ; + +69 + `CFRunLoSt +( +thadlo +); + +70 i( + `uv_thad_jo +(& +thad +) + `abt +(); + +71 + } +} + + @interface/node_modules/nan/nan.h + +21 #ide +NAN_H_ + + +22  + #NAN_H_ + + + ) + +24  + ~ + +26  + #NODE_0_10_MODULE_VERSION + 11 + + ) + +27  + #NODE_0_12_MODULE_VERSION + 14 + + ) + +28  + #ATOM_0_21_MODULE_VERSION + 41 + + ) + +29  + #IOJS_1_0_MODULE_VERSION + 42 + + ) + +30  + #IOJS_1_1_MODULE_VERSION + 43 + + ) + +31  + #IOJS_2_0_MODULE_VERSION + 44 + + ) + +32  + #IOJS_3_0_MODULE_VERSION + 45 + + ) + +33  + #NODE_4_0_MODULE_VERSION + 46 + + ) + +34  + #NODE_5_0_MODULE_VERSION + 47 + + ) + +35  + #NODE_6_0_MODULE_VERSION + 48 + + ) + +36  + #NODE_7_0_MODULE_VERSION + 51 + + ) + +37  + #NODE_8_0_MODULE_VERSION + 57 + + ) + +38  + #NODE_9_0_MODULE_VERSION + 59 + + ) + +39  + #NODE_10_0_MODULE_VERSION + 64 + + ) + +40  + #NODE_11_0_MODULE_VERSION + 67 + + ) + +41  + #NODE_12_0_MODULE_VERSION + 72 + + ) + +42  + #NODE_13_0_MODULE_VERSION + 79 + + ) + +43  + #NODE_14_0_MODULE_VERSION + 83 + + ) + +45 #ifde +_MSC_VER + + +46  + #NAN_HAS_CPLUSPLUS_11 + ( +_MSC_VER + >1800) + + ) + +48  + #NAN_HAS_CPLUSPLUS_11 + ( +__lulus + >201103L) + + ) + +51 #i +NODE_MODULE_VERSION + > +IOJS_3_0_MODULE_VERSION + && ! +NAN_HAS_CPLUSPLUS_11 + + +52 #r +This + +vsi + +of + +node +/ +NAN +/ +v8 + +ques + +a + +C +++11 +comp + + +55  + ~ + +56  + ~ + +57  + ~ + +58  + ~ + +59  + ~ + +60  + ~ + +61  + ~ + +62  + ~ + +63  + ~ + +64 #i +defed +( +_MSC_VER +) + +65 #agm +wng + +push + ) + +66 #agm +wng + +dib + : 4530 ) + +67  + ~ + +68  + ~ + +69  + ~ + +70 #agm +wng + +p + ) + +72  + ~ + +73  + ~ + +74  + ~ + +78 #ifde +UV_VERSION_MAJOR + + +79 #ide +UV_VERSION_PATCH + + +80  + #UV_VERSION_PATCH + 0 + + ) + +82  + #NAUV_UVVERSION + (( +UV_VERSION_MAJOR + << 16) | \ + +83 ( +UV_VERSION_MINOR + << 8) | \ + +84 ( +UV_VERSION_PATCH +)) + + ) + +86  + #NAUV_UVVERSION + 0x000b00 + + ) + +89 #i +NAUV_UVVERSION + < 0x000b0b + +90 #ifde +WIN32 + + +91  + ~ + +93  + ~ + +97 +mea + + gN + { + +99  + #NAN_CONCAT +( +a +, +b + + `NAN_CONCAT_HELPER +, b) + + ) + +100  + #NAN_CONCAT_HELPER +( +a +, +b +a## + ) +b + +102  + #NAN_INLINE + +le + + +103 + + ) + +104 #i +defed +( +__GNUC__ +) && \ + +105 !( +defed +( +V8_DISABLE_DEPRECATIONS +&& + gV8_DISABLE_DEPRECATIONS +) + +106  + #NAN_DEPRECATED + + `__ibu__ +(( +dd +)) + + ) + +107 #i +defed +( +_MSC_VER +) && \ + +108 !( +defed +( +V8_DISABLE_DEPRECATIONS +&& + gV8_DISABLE_DEPRECATIONS +) + +109  + #NAN_DEPRECATED + + `__deec +( +dd +) + + ) + +111  + #NAN_DEPRECATED + + + ) + +114 #i +NAN_HAS_CPLUSPLUS_11 + + +115  + #NAN_DISALLOW_ASSIGN +( +CLASS + +ݔ +=(cڡ CLASS& +de +; + + ) + +116  + #NAN_DISALLOW_COPY +( +CLASS + + `CLASS +(cڡ CLASS& +de +; + + ) + +117  + #NAN_DISALLOW_MOVE +( +CLASS +) \ + +118 + `CLASS +( +CLASS +&& +de +; \ + +119  +ݔ +=( +CLASS +&& +de +; + + ) + +121  + #NAN_DISALLOW_ASSIGN +( +CLASS + +ݔ +=(cڡ CLASS&); + + ) + +122  + #NAN_DISALLOW_COPY +( +CLASS + + `CLASS +(cڡ CLASS&); + + ) + +123  + #NAN_DISALLOW_MOVE +( +CLASS +) + + ) + +126  + #NAN_DISALLOW_ASSIGN_COPY +( +CLASS +) \ + +127 + `NAN_DISALLOW_ASSIGN +( +CLASS +) \ + +128 + `NAN_DISALLOW_COPY +( +CLASS +) + + ) + +130  + #NAN_DISALLOW_ASSIGN_MOVE +( +CLASS +) \ + +131 + `NAN_DISALLOW_ASSIGN +( +CLASS +) \ + +132 + `NAN_DISALLOW_MOVE +( +CLASS +) + + ) + +134  + #NAN_DISALLOW_COPY_MOVE +( +CLASS +) \ + +135 + `NAN_DISALLOW_COPY +( +CLASS +) \ + +136 + `NAN_DISALLOW_MOVE +( +CLASS +) + + ) + +138  + #NAN_DISALLOW_ASSIGN_COPY_MOVE +( +CLASS +) \ + +139 + `NAN_DISALLOW_ASSIGN +( +CLASS +) \ + +140 + `NAN_DISALLOW_COPY +( +CLASS +) \ + +141 + `NAN_DISALLOW_MOVE +( +CLASS +) + + ) + +143  + #TYPE_CHECK +( +T +, +S +) \ + +144  +l +) { \ + +145 *( +ic_ +< +T + *vީ*>(0)ic_< +S +*>(0); \ + +146 } + + ) + +150 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +151  + gv8 +:: + tHd +< + tv8 +:: + tObje +> + tADDON_REGISTER_FUNCTION_ARGS_TYPE +; + +153  + gv8 +:: + tLol +< + tv8 +:: + tObje +> + tADDON_REGISTER_FUNCTION_ARGS_TYPE +; + +156  + #NAN_MODULE_INIT +( +me +) \ + +157  + `me +( +N +:: +ADDON_REGISTER_FUNCTION_ARGS_TYPE + +rg +) + + ) + +159 #i +NODE_MAJOR_VERSION + >= 10 || \ + +160 + gNODE_MAJOR_VERSION + =9 && +NODE_MINOR_VERSION + >= 3 + +161  + #NAN_MODULE_WORKER_ENABLED +( +modu_me +, +giti +) \ + +162 "C" +NODE_MODULE_EXPORT + \ + +163 + `NAN_CONCAT +( +node_gi_modu_v +, +NODE_MODULE_VERSION +)( \ + +164 +v8 +:: +Lol + +expts +, v8::Lol +modu +, \ + +165 +v8 +:: +Lol + +cڋxt +) \ + +167 + `giti +( +expts +); \ + +168 } + + ) + +170  + #NAN_MODULE_WORKER_ENABLED +( +modu_me +, +giti +) \ + +171 + `NODE_MODULE +( +modu_me +, +giti +) + + ) + +176  + ~"n_backs.h +" + +180 #i( +NODE_MODULE_VERSION + < +NODE_0_12_MODULE_VERSION +) + +181  +v8 +:: + tSt + + tUnboundSt +; + +182  + gv8 +:: + tSt + + tBoundSt +; + +184  + gv8 +:: + tUnboundSt + UnboundScript; + +185  + gv8 +:: + tSt + + tBoundSt +; + +188 #i( +NODE_MODULE_VERSION + < +ATOM_0_21_MODULE_VERSION +) + +189  + gv8 +:: + tSg +:: + tExAsciiSgResour + + +190 + tExOBySgResour +; + +192  + gv8 +:: + tSg +:: + tExOBySgResour + + +193 + tExOBySgResour +; + +196 #i( +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION +) + +197 + gme +< +tyme + + gT +> + +198 +ass + + gNCyabPsitTs + : + +199 +public + +v8 +:: +NCyabPsitTs +< +T +> {}; + +200 + gme +< +tyme + + gT +> + +201 +ass + + gCyabPsitTs + : + +202 +public + +v8 +:: +CyabPsitTs +< +T +> {}; + +204 + gme +< +tyme + + gT +> + +205 +ass + + gPsitBa + : + +206 +public + +v8 +:: +PsitBa +< +T +> {}; + +208 + gme +< +tyme + + gT +,ym + gM + = +v8 +:: +NCyabPsitTs +< +T +> > + +209 +ass + +Psit +; + +211 + gme +< +tyme + + gT +> +ass + + gNCyabPsitTs +; + +212 + gme +< +tyme + + gT +> +ass + + gPsitBa +; + +213 + gme +< +tyme + + gT +,ym + gP +> +ass + + gWkClbackDa +; + +214 + gme +< +tyme + + gT +,ym + gM + = +NCyabPsitTs +< +T +> > + +215 +ass + +Psit +; + +218 + gme +< +tyme + + gT +> + +219 as + cMaybe + { + +220 + gpublic +: + +221 +le + +bo + +IsNhg +(cڡ {  ! +has_vue_ +; } + +222 +le + +bo + +IsJu +(cڡ {  + ghas_vue_ +; } + +224 +le + +T + +ToChecked +(cڡ {  +FromJu +(); } + +225 +le +  +Check +(cڡ { +FromJu +(); } + +227 +le + +bo + +To +( +T +* +out +) const { + +228 i( +IsJu +()* + gout + = +vue_ +; + +229  +IsJu +(); + +232 +le + +T + +FromJu +() const { + +233 #i +defed +( +V8_ENABLE_CHECKS +) + +234 +as +( +IsJu +() && "FromJust is Nothing"); + +236  + gvue_ +; + +239 +le + +T + +FromMaybe +(cڡ T& +deu_vue +) const { + +240  + ghas_vue_ + ? + gvue_ + : +deu_vue +; + +243 +le + +bo + + gݔ +==(cڡ +Maybe + & +h +) const { + +244  ( +IsJu +(= +h +.IsJust()) && + +245 (! +IsJu +(|| +FromJu +(= +h +.FromJust()); + +248 +le + +bo + + gݔ +!=(cڡ +Maybe + & +h +) const { + +249  ! +ݔ +==( +h +); + +252 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +253 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +255 +Maybe +(cڡ +v8 +::Maybe< +T +>& +th +) + +256 : +has_vue_ +( +th +. +IsJu +()) + +257 , +vue_ +( +th +. +FromMaybe +( +T +())) {} + +260 + give +: + +261 +Maybe +(: +has_vue_ +( +l +) {} + +262 +exic + +Maybe +(cڡ +T +& +t +: +has_vue_ +( +ue +), +vue_ +(t) {} + +263 +bo + + ghas_vue_ +; + +264 +T + + gvue_ +; + +266 + gme +< +tyme + + gU +> + +267 +nd + + gMaybe +< + gU +> +Nhg +(); + +268 + gme +< +tyme + + gU +> + +269 +nd + + gMaybe +< + gU +> +Ju +(cڡ +U +& +u +); + +272 + gme +< +tyme + + gT +> + +273 +le + + gMaybe +< + gT +> + $Nhg +() { + +274  +Maybe +< +T +>(); + +275 + } +} + +277 + gme +< +tyme + + gT +> + +278 +le + + gMaybe +< + gT +> + $Ju +(cڡ +T +& +t +) { + +279  +Maybe +< +T +>( +t +); + +280 + } +} + +282 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +283 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +284  + ~"n_maybe_43_l.h +" + +286  + ~"n_maybe_e_43_l.h +" + +289  + ~"n_cvrs.h +" + +290  + ~"n_w.h +" + +292 #i +NAUV_UVVERSION + < 0x000b17 + +293  + #NAUV_WORK_CB +( +func +) \ + +294  + $func +( +uv_async_t + * +async +, ) + + ) + +296  + #NAUV_WORK_CB +( +func +) \ + +297  + $func +( +uv_async_t + * +async +) + + ) + +300 #i +NAUV_UVVERSION + >= 0x000b0b + +302  +uv_key_t + + tuv_key_t +; + +304 +le +  + $uv_key_ +( +uv_key_t + * +key +) { + +305  + `uv_key_ +( +key +); + +306 + } +} + +308 +le +  + $uv_key_de +( +uv_key_t + * +key +) { + +309 + `uv_key_de +( +key +); + +310 + } +} + +312 +le + * + $uv_key_g +( +uv_key_t + * +key +) { + +313  + `uv_key_g +( +key +); + +314 + } +} + +316 +le +  + $uv_key_t +( +uv_key_t + * +key +, * +vue +) { + +317 + `uv_key_t +( +key +, +vue +); + +318 + } +} + +327 #ide +WIN32 + + +329  +had_key_t + + tuv_key_t +; + +331 +le +  + $uv_key_ +( +uv_key_t +* +key +) { + +332  - + `had_key_ +( +key +, +NULL +); + +333 + } +} + +335 +le +  + $uv_key_de +( +uv_key_t +* +key +) { + +336 i( + `had_key_de +(* +key +)) + +337 + `abt +(); + +338 + } +} + +340 +le + * + $uv_key_g +( +uv_key_t +* +key +) { + +341  + `had_gecific +(* +key +); + +342 + } +} + +344 +le +  + $uv_key_t +( +uv_key_t +* +key +, * +vue +) { + +345 i( + `had_tecific +(* +key +, +vue +)) + +346 + `abt +(); + +347 + } +} + +352 +DWORD + + gs_dex +; + +353 } + tuv_key_t +; + +355 +le +  + $uv_key_ +( +uv_key_t +* +key +) { + +356 +key +-> +s_dex + = + `TlsAoc +(); + +357 i( +key +-> +s_dex + = +TLS_OUT_OF_INDEXES +) + +358  +UV_ENOMEM +; + +360 + } +} + +362 +le +  + $uv_key_de +( +uv_key_t +* +key +) { + +363 i( + `TlsFe +( +key +-> +s_dex += +FALSE +) + +364 + `abt +(); + +365 +key +-> +s_dex + = +TLS_OUT_OF_INDEXES +; + +366 + } +} + +368 +le + * + $uv_key_g +( +uv_key_t +* +key +) { + +369 * +vue + = + `TlsGVue +( +key +-> +s_dex +); + +370 i( +vue + = +NULL +) + +371 i( + `GLaE +(! +ERROR_SUCCESS +) + +372 + `abt +(); + +373  +vue +; + +374 + } +} + +376 +le +  + $uv_key_t +( +uv_key_t +* +key +, * +vue +) { + +377 i( + `TlsSVue +( +key +-> +s_dex +, +vue += +FALSE +) + +378 + `abt +(); + +379 + } +} + +384 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +385 + gme +< +tyme + + gT +> + +386 + gv8 +:: +Lol +< +T +> +New +( +v8 +:: +Hd +); + +389 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +390 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +391  +v8 +:: + tWkClbackTy + WeakCallbackType; + +393  + sWkClbackTy + { + +394 + eE + { + gkPam +, + gkIlFlds +}; + +395 +E + + gty +; + +396 +WkClbackTy +( +E + +h +: +ty +(other) {} + +397 +le + +bo + +ݔ +==( +E + +h +{  oth = +this +-> +ty +; } + +398 +le + +bo + + gݔ +!=( +E + +h +{  ! +ݔ +==(other); } + +402 + gme +< +tyme + + gP +> +ass + + gWkClbackInfo +; + +404 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +405  + ~"n_rsit_12_l.h +" + +407  + ~"n_rsit_e_12_l.h +" + +410 +mea + + gimp + { + +411 cڡ +size_t + + gkMaxLgth + = 0x3fffffff; + +414 #i +NODE_MAJOR_VERSION + > 0 || \ + +415 + gNODE_MINOR_VERSION + > 10 || \ + +416 + gNODE_MINOR_VERSION + =10 && +NODE_PATCH_VERSION + >= 29 || \ + +417 +NODE_MINOR_VERSION + =8 && +NODE_PATCH_VERSION + >= 27 + +418 cڡ  +kRInvidUtf8 + = +v8 +:: +Sg +:: +REPLACE_INVALID_UTF8 +; + +420 cڡ  + gkRInvidUtf8 + = 0; + +426 as + cHdSce + { + +427 + gv8 +:: +HdSce + +sce +; + +429 + gpublic +: + +430 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +431 +le + +HdSce +(: +sce +( +v8 +:: +Isީe +:: +GCut +()) {} + +432 +le +  +NumbOfHds +() { + +433  +v8 +:: +HdSce +:: +NumbOfHds +(v8:: +Isީe +:: +GCut +()); + +436 +le + +HdSce +(: +sce +() {} + +437 +le +  +NumbOfHds +() { + +438  +v8 +:: +HdSce +:: +NumbOfHds +(); + +442 + give +: + +445 +HdSce +(const HandleScope &); + +446  + gݔ +=(cڡ +HdSce + &); + +447 * +ݔ + +w +( +size_t + +size +); + +448  +ݔ + +de +(*, +size_t +) { + +449 +abt +(); + +453 as + cEsbHdSce + { + +454 + gpublic +: + +455 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +456 +le + +EsbHdSce +(: +sce +( +v8 +:: +Isީe +:: +GCut +()) {} + +458 +le +  +NumbOfHds +() { + +459  +v8 +:: +EsbHdSce +:: +NumbOfHds +(v8:: +Isީe +:: +GCut +()); + +462 + gme +< +tyme + + gT +> + +463 +le + + gv8 +:: +Lol +< +T +> +Es +( +v8 +::Lol +vue +) { + +464  +sce +. +Es +( +vue +); + +467 + give +: + +468 +v8 +:: +EsbHdSce + +sce +; + +470 +le + +EsbHdSce +(: +sce +() {} + +472 +le +  +NumbOfHds +() { + +473  +v8 +:: +HdSce +:: +NumbOfHds +(); + +476 + gme +< +tyme + + gT +> + +477 +le + + gv8 +:: +Lol +< +T +> +Es +( +v8 +::Lol +vue +) { + +478  +sce +. +Clo +( +vue +); + +481 + give +: + +482 +v8 +:: +HdSce + +sce +; + +485 + give +: + +488 +EsbHdSce +(const EscapableHandleScope &); + +489  + gݔ +=(cڡ +EsbHdSce + &); + +490 * +ݔ + +w +( +size_t + +size +); + +491  +ݔ + +de +(*, +size_t +) { + +492 +abt +(); + +498 as + cTryCch + { + +499 + gv8 +:: +TryCch + +y_tch_ +; + +500 +nd +  +FExi +(cڡ +TryCch +&); + +502 + gpublic +: + +503 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +504 +TryCch +(: +y_tch_ +( +v8 +:: +Isީe +:: +GCut +()) {} + +507 +le + +bo + +HasCaught +(cڡ {  +y_tch_ +.HasCaught(); } + +509 +le + +bo + +CCtue +(cڡ {  + gy_tch_ +.CanContinue(); } + +511 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +ReThrow +() { + +512 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +513  +New +( +y_tch_ +. +ReThrow +()); + +515  + gy_tch_ +. +ReThrow +(); + +519 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +Exi +() const { + +520  +y_tch_ +. +Exi +(); + +523 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +524 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +525 +le + +v8 +:: +MaybeLol + +SckT +() const { + +526 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +527 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +528  + gsce +. +Es +( +y_tch_ +. +SckT +( +isީe +-> +GCutCڋxt +()) + +529 . +FromMaybe +( +v8 +:: +Lol +())); + +532 +le + + gMaybeLol +< + gv8 +:: +Vue +> +SckT +() const { + +533  +y_tch_ +. +SckT +(); + +537 +le + + gv8 +:: +Lol +< +v8 +:: +Mesge +> Message() const { + +538  +y_tch_ +. +Mesge +(); + +541 +le +  +Ret +({ + gy_tch_ +.Reset(); } + +543 +le +  +SVbo +( +bo + +vue +{ + gy_tch_ +.SetVerbose(value); } + +545 +le +  +SCtuMesge +( +bo + +vue +) { + +546 + gy_tch_ +. +SCtuMesge +( +vue +); + +550 + gv8 +:: +Lol +< +v8 +:: +Vue +> +MakeClback +(v8::Lol +rg +, + +551 +v8 +:: +Lol + +func +, + +552  +gc +, + +553 +v8 +:: +Lol +* +gv +); + +554 + gv8 +:: +Lol +< +v8 +:: +Vue +> +MakeClback +(v8::Lol +rg +, + +555 +v8 +:: +Lol + +symb +, + +556  +gc +, + +557 +v8 +:: +Lol +* +gv +); + +558 + gv8 +:: +Lol +< +v8 +:: +Vue +> +MakeClback +(v8::Lol +rg +, + +559 cڡ * +mhod +, + +560  +gc +, + +561 +v8 +:: +Lol +* +gv +); + +565 as + cAsyncResour + { + +566 + gpublic +: + +567 +AsyncResour +( + +568 +v8 +:: +Lol + +me + + +569 , +v8 +:: +Lol + +sour + = +New +()) { + +570 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +571 +v8 +:: +Isީe +* +isީe + = v8::Isީe:: +GCut +(); + +573 i( + gsour +. +IsEmy +()) { + +574 + gsour + = +New +< +v8 +:: +Obje +>(); + +577 + gcڋxt + = +node +:: +EmAsyncIn +( +isީe +, +sour +, +me +); + +581 +AsyncResour +( + +582 cڡ * +me + + +583 , +v8 +:: +Lol + +sour + = +New +()) { + +584 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +585 +v8 +:: +Isީe +* +isީe + = v8::Isީe:: +GCut +(); + +587 i( + gsour +. +IsEmy +()) { + +588 + gsour + = +New +< +v8 +:: +Obje +>(); + +591 + gv8 +:: +Lol +< +v8 +:: +Sg +> +me_rg + = + +592 +New +< +v8 +:: +Sg +>( +me +). +ToLolChecked +(); + +593 + gcڋxt + = +node +:: +EmAsyncIn +( +isީe +, +sour +, +me_rg +); + +597 ~ +AsyncResour +() { + +598 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +599 + gv8 +:: +Isީe +* +isީe + = +v8 +::Isީe:: +GCut +(); + +600 + gnode +:: +EmAsyncDeroy +( +isީe +, +cڋxt +); + +604 +le + + gMaybeLol +< + gv8 +:: +Vue +> +runInAsyncSce +( + +605 +v8 +:: +Lol + +rg + + +606 , +v8 +:: +Lol + +func + + +607 ,  +gc + + +608 , +v8 +:: +Lol +* +gv +) { + +609 #i +NODE_MODULE_VERSION + < +NODE_9_0_MODULE_VERSION + + +610  +MakeClback +( +rg +, +func +, +gc +, +gv +); + +612  + gnode +:: +MakeClback +( + +613 +v8 +:: +Isީe +:: +GCut +(), +rg +, +func +, +gc +, +gv +, +cڋxt +); + +617 +le + + gMaybeLol +< + gv8 +:: +Vue +> +runInAsyncSce +( + +618 +v8 +:: +Lol + +rg + + +619 , +v8 +:: +Lol + +symb + + +620 ,  +gc + + +621 , +v8 +:: +Lol +* +gv +) { + +622 #i +NODE_MODULE_VERSION + < +NODE_9_0_MODULE_VERSION + + +623  +MakeClback +( +rg +, +symb +, +gc +, +gv +); + +625  + gnode +:: +MakeClback +( + +626 +v8 +:: +Isީe +:: +GCut +(), +rg +, +symb +, +gc +, +gv +, +cڋxt +); + +630 +le + + gMaybeLol +< + gv8 +:: +Vue +> +runInAsyncSce +( + +631 +v8 +:: +Lol + +rg + + +632 , cڡ * +mhod + + +633 ,  +gc + + +634 , +v8 +:: +Lol +* +gv +) { + +635 #i +NODE_MODULE_VERSION + < +NODE_9_0_MODULE_VERSION + + +636  +MakeClback +( +rg +, +mhod +, +gc +, +gv +); + +638  + gnode +:: +MakeClback +( + +639 +v8 +:: +Isީe +:: +GCut +(), +rg +, +mhod +, +gc +, +gv +, +cڋxt +); + +643 + give +: + +644 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +AsyncResour +) + +645 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +646 +node +:: +async_cڋxt + +cڋxt +; + +650 +le + +uv_lo_t +* + $GCutEvtLo +() { + +651 #i +NODE_MAJOR_VERSION + >= 10 || \ + +652 +NODE_MAJOR_VERSION + =9 && +NODE_MINOR_VERSION + >= 3 || \ + +653 +NODE_MAJOR_VERSION + =8 && +NODE_MINOR_VERSION + >= 10 + +654  +node +:: + `GCutEvtLo +( +v8 +:: +Isީe +:: + `GCut +()); + +656  + `uv_deu_lo +(); + +658 + } +} + +663 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +664 +le + + +665  + $SCouFuni +( +v8 +:: +CouLookupClback + +cb +) { + +666 +v8 +:: +Isީe +:: + `GCut +()-> + `SCouFuni +( +cb +); + +667 + } +} + +669 +le + + +670  + $SCeHiogmFuni +( +v8 +:: +CeHiogmClback + +cb +) { + +671 +v8 +:: +Isީe +:: + `GCut +()-> + `SCeHiogmFuni +( +cb +); + +672 + } +} + +674 +le + + +675  + $SAddHiogmSameFuni +( +v8 +:: +AddHiogmSameClback + +cb +) { + +676 +v8 +:: +Isީe +:: + `GCut +()-> + `SAddHiogmSameFuni +( +cb +); + +677 + } +} + +679 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +680 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +681 +le + +bo + + $IdNifiti +( +id_time__ms +) { + +682  +v8 +:: +Isީe +:: + `GCut +()-> + `IdNifitiDdle +( + +683 +id_time__ms + * 0.001); + +684 + } +} + +686 +le + +bo + + $IdNifiti +( +id_time__ms +) { + +687  +v8 +:: +Isީe +:: + `GCut +()-> + `IdNifiti +( +id_time__ms +); + +688 + } +} + +691 +le +  + $LowMemyNifiti +() { + +692 +v8 +:: +Isީe +:: + `GCut +()-> + `LowMemyNifiti +(); + +693 + } +} + +695 +le +  + $CڋxtDiodNifiti +() { + +696 +v8 +:: +Isީe +:: + `GCut +()-> + `CڋxtDiodNifiti +(); + +697 + } +} + +699 +le + + +700  + $SCouFuni +( +v8 +:: +CouLookupClback + +cb +) { + +701 +v8 +:: +V8 +:: + `SCouFuni +( +cb +); + +702 + } +} + +704 +le + + +705  + $SCeHiogmFuni +( +v8 +:: +CeHiogmClback + +cb +) { + +706 +v8 +:: +V8 +:: + `SCeHiogmFuni +( +cb +); + +707 + } +} + +709 +le + + +710  + $SAddHiogmSameFuni +( +v8 +:: +AddHiogmSameClback + +cb +) { + +711 +v8 +:: +V8 +:: + `SAddHiogmSameFuni +( +cb +); + +712 + } +} + +714 +le + +bo + + $IdNifiti +( +id_time__ms +) { + +715  +v8 +:: +V8 +:: + `IdNifiti +( +id_time__ms +); + +716 + } +} + +718 +le +  + $LowMemyNifiti +() { + +719 +v8 +:: +V8 +:: + `LowMemyNifiti +(); + +720 + } +} + +722 +le +  + $CڋxtDiodNifiti +() { + +723 +v8 +:: +V8 +:: + `CڋxtDiodNifiti +(); + +724 + } +} + +727 #i( +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION +) + +728 +le + + gv8 +:: +Lol +< +v8 +:: +Primive +> + $Undefed +() { + +729 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +730 +EsbHdSce + +sce +; + +731  +sce +. + `Es +( + `New +( +v8 +:: + `Undefed +(v8:: +Isީe +:: + `GCut +()))); + +733  +v8 +:: + `Undefed +(v8:: +Isީe +:: + `GCut +()); + +735 + } +} + +737 +le + + gv8 +:: +Lol +< +v8 +:: +Primive +> + $Nu +() { + +738 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +739 +EsbHdSce + +sce +; + +740  +sce +. + `Es +( + `New +( +v8 +:: + `Nu +(v8:: +Isީe +:: + `GCut +()))); + +742  +v8 +:: + `Nu +(v8:: +Isީe +:: + `GCut +()); + +744 + } +} + +746 +le + + gv8 +:: +Lol +< +v8 +:: +Boޗn +> + $True +() { + +747 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +748 +EsbHdSce + +sce +; + +749  +sce +. + `Es +( + `New +( +v8 +:: + `True +(v8:: +Isީe +:: + `GCut +()))); + +751  +v8 +:: + `True +(v8:: +Isީe +:: + `GCut +()); + +753 + } +} + +755 +le + + gv8 +:: +Lol +< +v8 +:: +Boޗn +> + $F +() { + +756 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +757 +EsbHdSce + +sce +; + +758  +sce +. + `Es +( + `New +( +v8 +:: + `F +(v8:: +Isީe +:: + `GCut +()))); + +760  +v8 +:: + `F +(v8:: +Isީe +:: + `GCut +()); + +762 + } +} + +764 +le + + gv8 +:: +Lol +< +v8 +:: +Sg +> + $EmySg +() { + +765  +v8 +:: +Sg +:: + `Emy +(v8:: +Isީe +:: + `GCut +()); + +766 + } +} + +768 +le +  + $AdjuExMemy +( +bc +) { + +769  +ic_ +<>( + +770 +v8 +:: +Isީe +:: + `GCut +()-> + `AdjuAmouOfExAodMemy +( +bc +)); + +771 + } +} + +773 +le +  +STeme +( + +774 +v8 +:: +Lol + +m + + +775 , cڡ * +me + + +776 , +v8 +:: +Lol + +vue +) { + +777 +m +-> +S +( +v8 +:: +Isީe +:: +GCut +(), +me +, +vue +); + +780 +le +  +STeme +( + +781 +v8 +:: +Lol + +m + + +782 , +v8 +:: +Lol + +me + + +783 , +v8 +:: +Lol + +vue + + +784 , +v8 +:: +PrݔtyAribu + +ibus +) { + +785 +m +-> +S +( +me +, +vue +, +ibus +); + +788 +le + + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> + $GCutCڋxt +() { + +789  +v8 +:: +Isީe +:: + `GCut +()-> + `GCutCڋxt +(); + +790 + } +} + +792 +le + * +GIlFldPor +( + +793 +v8 +:: +Lol + +obje + + +794 ,  +dex +) { + +795  + gobje +-> +GAligdPorFromIlFld +( +dex +); + +798 +le +  +SIlFldPor +( + +799 +v8 +:: +Lol + +obje + + +800 ,  +dex + + +801 , * +vue +) { + +802 + gobje +-> +SAligdPorInIlFld +( +dex +, +vue +); + +805  + #NAN_GC_CALLBACK +( +me +) \ + +806  + $me +( +v8 +:: +Isީe + * +isީe +, v8:: +GCTy + +ty +, v8:: +GCClbackFgs + +ags +) + + ) + +808 #i +NODE_MODULE_VERSION + < +NODE_4_0_MODULE_VERSION + + +809  +v8 +:: + tIsީe +:: + tGCEpogueClback + GCEpilogueCallback; + +810  +v8 +:: + tIsީe +:: + tGCProgueClback + GCPrologueCallback; + +812  +v8 +:: + tIsީe +:: + tGCClback + + tGCEpogueClback +; + +813  +v8 +:: + tIsީe +:: + tGCClback + + tGCProgueClback +; + +816 +le +  + $AddGCEpogueClback +( + +817 +GCEpogueClback + +back + + +818 , +v8 +:: +GCTy + +gc_ty_fr + = v8:: +kGCTyA +) { + +819 +v8 +:: +Isީe +:: + `GCut +()-> + `AddGCEpogueClback +( +back +, +gc_ty_fr +); + +820 + } +} + +822 +le +  + $RemoveGCEpogueClback +( + +823 +GCEpogueClback + +back +) { + +824 +v8 +:: +Isީe +:: + `GCut +()-> + `RemoveGCEpogueClback +( +back +); + +825 + } +} + +827 +le +  + $AddGCProgueClback +( + +828 +GCProgueClback + +back + + +829 , +v8 +:: +GCTy + +gc_ty_fr + = v8:: +kGCTyA +) { + +830 +v8 +:: +Isީe +:: + `GCut +()-> + `AddGCProgueClback +( +back +, +gc_ty_fr +); + +831 + } +} + +833 +le +  + $RemoveGCProgueClback +( + +834 +GCProgueClback + +back +) { + +835 +v8 +:: +Isީe +:: + `GCut +()-> + `RemoveGCProgueClback +( +back +); + +836 + } +} + +838 +le +  + $GHpStiics +( + +839 +v8 +:: +HpStiics + * +hp_iics +) { + +840 +v8 +:: +Isީe +:: + `GCut +()-> + `GHpStiics +( +hp_iics +); + +841 + } +} + +843  + #X +( +NAME +) \ + +844 +le + +v8 +:: +Lol + + $NAME +(cڡ * +msg +) { \ + +845 +EsbHdSce + +sce +; \ + +846  +sce +. + `Es +( +v8 +:: +Exi +:: + `NAME +( + `New +( +msg +). + `ToLolChecked +())); \ + +847 + } +} \ + +849 +le + \ + +850 +v8 +:: +Lol + + `NAME +(v8::Lol +msg +) { \ + +851  +v8 +:: +Exi +:: + `NAME +( +msg +); \ + +854 +le +  +Throw + ## + $NAME +(cڡ * +msg +) { \ + +855 +HdSce + +sce +; \ + +856 +v8 +:: +Isީe +:: + `GCut +()-> + `ThrowExi +( \ + +857 +v8 +:: +Exi +:: + `NAME +( + `New +( +msg +). + `ToLolChecked +())); \ + +858 + } +} \ + +860 +le +  +Throw + ## + `NAME +( +v8 +:: +Lol + +msg +) { \ + +861 +HdSce + +sce +; \ + +862 +v8 +:: +Isީe +:: + `GCut +()-> + `ThrowExi +( \ + +863 +v8 +:: +Exi +:: + `NAME +( +msg +)); \ + +864 } + + ) + +866 + $X +( +E +) + +867 + $X +( +RgeE +) + +868 + $X +( +RenE +) + +869 + $X +( +SyaxE +) + +870 + $X +( +TyE +) + +872 #unde +X + + +874 +le +  + `ThrowE +( +v8 +:: +Lol + +r +) { + +875 +v8 +:: +Isީe +:: + `GCut +()-> + `ThrowExi +( +r +); + +876 + } +} + +878 +le + + gMaybeLol +< + gv8 +:: +Obje +> +NewBufr +( + +879 * +da + + +880 , +size_t + +ngth + + +881 #i +NODE_MODULE_VERSION + > +IOJS_2_0_MODULE_VERSION + + +882 , +node +:: +Bufr +:: +FeClback + +back + + +884 , +node +:: +smloc +:: +FeClback + +back + + +886 , * +ht + + +890 +as +( +ngth + < +imp +:: +kMaxLgth + && "tooarge buffer"); + +891 #i +NODE_MODULE_VERSION + > +IOJS_2_0_MODULE_VERSION + + +892  + gnode +:: +Bufr +:: +New +( + +893 +v8 +:: +Isީe +:: +GCut +(), +da +, +ngth +, +back +, +ht +); + +895  + gnode +:: +Bufr +:: +New +( +v8 +:: +Isީe +:: +GCut +(), +da +, +ngth +, +back +, + +896 +ht +); + +900 +le + + gMaybeLol +< + gv8 +:: +Obje +> + $CyBufr +( + +901 cڡ * +da + + +902 , +ut32_t + +size + + +906 + `as +( +size + < +imp +:: +kMaxLgth + && "tooarge buffer"); + +907 #i +NODE_MODULE_VERSION + > +IOJS_2_0_MODULE_VERSION + + +908  +node +:: +Bufr +:: + `Cy +( + +909 +v8 +:: +Isީe +:: + `GCut +(), +da +, +size +); + +911  +node +:: +Bufr +:: + `New +( +v8 +:: +Isީe +:: + `GCut +(), +da +, +size +); + +913 + } +} + +915 +le + + gMaybeLol +< + gv8 +:: +Obje +> + $NewBufr +( +ut32_t + +size +) { + +918 + `as +( +size + < +imp +:: +kMaxLgth + && "tooarge buffer"); + +919 #i +NODE_MODULE_VERSION + > +IOJS_2_0_MODULE_VERSION + + +920  +node +:: +Bufr +:: + `New +( + +921 +v8 +:: +Isީe +:: + `GCut +(), +size +); + +923  +node +:: +Bufr +:: + `New +( +v8 +:: +Isީe +:: + `GCut +(), +size +); + +925 + } +} + +927 +le + + gMaybeLol +< + gv8 +:: +Obje +> + $NewBufr +( + +928 * +da + + +929 , +ut32_t + +size + + +933 + `as +( +size + < +imp +:: +kMaxLgth + && "tooarge buffer"); + +934 #i +NODE_MODULE_VERSION + > +IOJS_2_0_MODULE_VERSION + + +935  +node +:: +Bufr +:: + `New +( +v8 +:: +Isީe +:: + `GCut +(), +da +, +size +); + +937  +node +:: +Bufr +:: + `U +( +v8 +:: +Isީe +:: + `GCut +(), +da +, +size +); + +939 + } +} + +941 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +942 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +943 +le + +MaybeLol +< +v8 +:: +Sg +> + +944 +NewOBySg +(cڡ +ut8_t + * +vue +,  +ngth + = -1) { + +945  +v8 +:: +Sg +:: +NewFromOBy +(v8:: +Isީe +:: +GCut +(), +vue +, + +946 +v8 +:: +NewSgTy +:: +kNm +, +ngth +); + +949 +le + + gMaybeLol +< + gBoundSt +> +CompeSt +( + +950 +v8 +:: +Lol + +s + + +951 , cڡ +v8 +:: +StOrig +& +ig + + +953 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +954 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +955 + gv8 +:: +StComp +:: +Sour + +sour +( +s +, +ig +); + +956  + gsce +. +Es +( + +957 +v8 +:: +StComp +:: +Compe +( +isީe +-> +GCutCڋxt +(), & +sour +) + +958 . +FromMaybe +( +v8 +:: +Lol +< +BoundSt +>())); + +961 +le + + gMaybeLol +< + gBoundSt +> +CompeSt +( + +962 +v8 +:: +Lol + +s + + +964 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +965 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +966 + gv8 +:: +StComp +:: +Sour + +sour +( +s +); + +967  + gsce +. +Es +( + +968 +v8 +:: +StComp +:: +Compe +( +isީe +-> +GCutCڋxt +(), & +sour +) + +969 . +FromMaybe +( +v8 +:: +Lol +< +BoundSt +>())); + +972 +le + + gMaybeLol +< + gv8 +:: +Vue +> +RunSt +( + +973 +v8 +:: +Lol +< +UnboundSt +> +st + + +975 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +976 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +977  + gsce +. +Es +( +st +-> +BdToCutCڋxt +() + +978 -> +Run +( +isީe +-> +GCutCڋxt +()) + +979 . +FromMaybe +( +v8 +:: +Lol +())); + +982 +le + + gMaybeLol +< + gv8 +:: +Vue +> +RunSt +( + +983 +v8 +:: +Lol +< +BoundSt +> +st + + +985 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +986 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +987  + gsce +. +Es +( +st +-> +Run +( +isީe +-> +GCutCڋxt +()) + +988 . +FromMaybe +( +v8 +:: +Lol +())); + +991 +le + + gMaybeLol +< + gv8 +:: +Sg +> + +992 +NewOBySg +(cڡ +ut8_t + * +vue +,  +ngth + = -1) { + +993  +v8 +:: +Sg +:: +NewFromOBy +(v8:: +Isީe +:: +GCut +(), +vue +, + +994 +v8 +:: +Sg +:: +kNmSg +, +ngth +); + +997 +le + + gMaybeLol +< + gBoundSt +> +CompeSt +( + +998 +v8 +:: +Lol + +s + + +999 , cڡ +v8 +:: +StOrig +& +ig + + +1001 +v8 +:: +StComp +:: +Sour + +sour +( +s +, +ig +); + +1002  + gv8 +:: +StComp +:: +Compe +( +v8 +:: +Isީe +:: +GCut +(), & +sour +); + +1005 +le + + gMaybeLol +< + gBoundSt +> +CompeSt +( + +1006 +v8 +:: +Lol + +s + + +1008 +v8 +:: +StComp +:: +Sour + +sour +( +s +); + +1009  + gv8 +:: +StComp +:: +Compe +( +v8 +:: +Isީe +:: +GCut +(), & +sour +); + +1012 +le + + gMaybeLol +< + gv8 +:: +Vue +> +RunSt +( + +1013 +v8 +:: +Lol +< +UnboundSt +> +st + + +1015 +EsbHdSce + +sce +; + +1016  + gsce +. +Es +( +st +-> +BdToCutCڋxt +()-> +Run +()); + +1019 +le + + gMaybeLol +< + gv8 +:: +Vue +> +RunSt +( + +1020 +v8 +:: +Lol +< +BoundSt +> +st + + +1022  +st +-> +Run +(); + +1026 +NAN_DEPRECATED + +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +MakeClback +( + +1027 +v8 +:: +Lol + +rg + + +1028 , +v8 +:: +Lol + +func + + +1029 ,  +gc + + +1030 , +v8 +:: +Lol +* +gv +) { + +1031 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +1032 +EsbHdSce + +sce +; + +1033  + gsce +. +Es +( +New +( +node +:: +MakeClback +( + +1034 +v8 +:: +Isީe +:: +GCut +(), +rg +, +func +, +gc +, +gv +))); + +1036 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1037 +AsyncResour + +s +("nan:makeCallback"); + +1038  + gs +. +runInAsyncSce +( +rg +, +func +, +gc +, +gv +) + +1039 . +FromMaybe +( +v8 +:: +Lol +()); + +1041  + gnode +:: +MakeClback +( + +1042 +v8 +:: +Isީe +:: +GCut +(), +rg +, +func +, +gc +, +gv +); + +1047 +NAN_DEPRECATED + +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +MakeClback +( + +1048 +v8 +:: +Lol + +rg + + +1049 , +v8 +:: +Lol + +symb + + +1050 ,  +gc + + +1051 , +v8 +:: +Lol +* +gv +) { + +1052 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +1053 +EsbHdSce + +sce +; + +1054  + gsce +. +Es +( +New +( +node +:: +MakeClback +( + +1055 +v8 +:: +Isީe +:: +GCut +(), +rg +, +symb +, +gc +, +gv +))); + +1057 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1058 +AsyncResour + +s +("nan:makeCallback"); + +1059  + gs +. +runInAsyncSce +( +rg +, +symb +, +gc +, +gv +) + +1060 . +FromMaybe +( +v8 +:: +Lol +()); + +1062  + gnode +:: +MakeClback +( + +1063 +v8 +:: +Isީe +:: +GCut +(), +rg +, +symb +, +gc +, +gv +); + +1068 +NAN_DEPRECATED + +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +MakeClback +( + +1069 +v8 +:: +Lol + +rg + + +1070 , cڡ * +mhod + + +1071 ,  +gc + + +1072 , +v8 +:: +Lol +* +gv +) { + +1073 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +1074 +EsbHdSce + +sce +; + +1075  + gsce +. +Es +( +New +( +node +:: +MakeClback +( + +1076 +v8 +:: +Isީe +:: +GCut +(), +rg +, +mhod +, +gc +, +gv +))); + +1078 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1079 +AsyncResour + +s +("nan:makeCallback"); + +1080  + gs +. +runInAsyncSce +( +rg +, +mhod +, +gc +, +gv +) + +1081 . +FromMaybe +( +v8 +:: +Lol +()); + +1083  + gnode +:: +MakeClback +( + +1084 +v8 +:: +Isީe +:: +GCut +(), +rg +, +mhod +, +gc +, +gv +); + +1089 +le +  + $FExi +(cڡ +TryCch +& +y_tch +) { + +1090 +node +:: + `FExi +( +v8 +:: +Isީe +:: + `GCut +(), +y_tch +. +y_tch_ +); + +1091 + } +} + +1093 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + $EnoExi +( + +1094  +rno + + +1095 , cڡ * +sys + = +NULL + + +1096 , cڡ * +mesge + = +NULL + + +1097 , cڡ * +th + = +NULL +) { + +1098  +node +:: + `EnoExi +( +v8 +:: +Isީe +:: + `GCut +(), +rno +, +sys +, + +1099 +mesge +, +th +); + +1100 + } +} + +1102 +NAN_DEPRECATED + +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + $NEnoExi +( + +1103  +rno + + +1104 , cڡ * +sys + = +NULL + + +1105 , cڡ * +mesge + = +NULL + + +1106 , cڡ * +th + = +NULL +) { + +1107  + `EnoExi +( +rno +, +sys +, +mesge +, +th +); + +1108 + } +} + +1110 + gme +< +tyme + + gT +> + +1111 +le +  + $SIsީeDa +( + +1112 +v8 +:: +Isީe + * +isީe + + +1113 , +T + * +da + + +1115 +isީe +-> + `SDa +(0, +da +); + +1116 + } +} + +1118 + gme +< +tyme + + gT +> + +1119 +le + +T + * + $GIsީeDa +( + +1120 +v8 +:: +Isީe + * +isީe + + +1122  +ic_ +< +T +*>( +isީe +-> + `GDa +(0)); + +1123 + } +} + +1125 as + cUtf8Sg + { + +1126 + gpublic +: + +1127 +le + +exic + +Utf8Sg +( +v8 +:: +Lol + +om +) : + +1128 +ngth_ +(0), +r_ +( +r__ +) { + +1129 +HdSce + + gsce +; + +1130 i(! + gom +. +IsEmy +()) { + +1131 #i +NODE_MAJOR_VERSION + >= 10 + +1132 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +cڋxt + = +GCutCڋxt +(); + +1133 + gv8 +:: +Lol +< +v8 +:: +Sg +> +rg + = + +1134 +om +-> +ToSg +( +cڋxt +). +FromMaybe +( +v8 +:: +Lol +()); + +1136 + gv8 +:: +Lol +< +v8 +:: +Sg +> +rg + = +om +-> +ToSg +(); + +1138 i(! + grg +. +IsEmy +()) { + +1139 +size_t + + gn + = 3 * +rg +-> +Lgth +() + 1; + +1140 +as +( +n + < +INT_MAX +); + +1141 i( + gn + >  ( + gr__ +)) { + +1142 + gr_ + = +ic_ +<*>( +mloc +( +n +)); + +1143 +as +( +r_ + != 0); + +1145 cڡ  + gags + = + +1146 +v8 +:: +Sg +:: +NO_NULL_TERMINATION + | +imp +:: +kRInvidUtf8 +; + +1147 #i +NODE_MAJOR_VERSION + >= 11 + +1148 + gngth_ + = +rg +-> +WreUtf8 +( +v8 +:: +Isީe +:: +GCut +(), +r_ +, + +1149 +ic_ +<>( +n +), 0, +ags +); + +1153 #ifde +_MSC_VER + + +1154 #agm +wng +( +push +) + +1155 #agm +wng +( +dib + : 4996) + +1157 #ifde +__GNUC__ + + +1158 #agm +GCC + +dgnoic + +push + + +1159 #agm +GCC + +dgnoic + +igned + "-Wdeprecated-declarations" + +1161 + gngth_ + = +rg +-> +WreUtf8 +( +r_ +, +ic_ +<>( +n +), 0, +ags +); + +1162 #ifde +__GNUC__ + + +1163 #agm +GCC + +dgnoic + +p + + +1165 #ifde +_MSC_VER + + +1166 #agm +wng +( +p +) + +1169 + gr_ +[ +ngth_ +] = '\0'; + +1174 +le +  +ngth +() const { + +1175  + gngth_ +; + +1178 +le + * + gݔ +*({  + gr_ +; } + +1179 +le + cڡ * + gݔ +*(cڡ {  + gr_ +; } + +1181 + gle + ~ +Utf8Sg +() { + +1182 i( + gr_ + ! +r__ +) { + +1183 + +( +r_ +); + +1187 + give +: + +1188 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +Utf8Sg +) + +1190  +ngth_ +; + +1191 * + gr_ +; + +1192  + gr__ +[1024]; + +1196 +le + + gv8 +:: +Lol +< +v8 +:: +Primive +> + $Undefed +() { + +1197 +EsbHdSce + +sce +; + +1198  +sce +. + `Es +( + `New +( +v8 +:: + `Undefed +())); + +1199 + } +} + +1201 +le + + gv8 +:: +Lol +< +v8 +:: +Primive +> + $Nu +() { + +1202 +EsbHdSce + +sce +; + +1203  +sce +. + `Es +( + `New +( +v8 +:: + `Nu +())); + +1204 + } +} + +1206 +le + + gv8 +:: +Lol +< +v8 +:: +Boޗn +> + $True +() { + +1207 +EsbHdSce + +sce +; + +1208  +sce +. + `Es +( + `New +( +v8 +:: + `True +())); + +1209 + } +} + +1211 +le + + gv8 +:: +Lol +< +v8 +:: +Boޗn +> + $F +() { + +1212 +EsbHdSce + +sce +; + +1213  +sce +. + `Es +( + `New +( +v8 +:: + `F +())); + +1214 + } +} + +1216 +le + + gv8 +:: +Lol +< +v8 +:: +Sg +> + $EmySg +() { + +1217  +v8 +:: +Sg +:: + `Emy +(); + +1218 + } +} + +1220 +le +  + $AdjuExMemy +( +bc +) { + +1221  +ic_ +<>( +v8 +:: +V8 +:: + `AdjuAmouOfExAodMemy +( +bc +)); + +1222 + } +} + +1224 +le +  +STeme +( + +1225 +v8 +:: +Lol + +m + + +1226 , cڡ * +me + + +1227 , +v8 +:: +Lol + +vue +) { + +1228 +m +-> +S +( +me +, +vue +); + +1231 +le +  +STeme +( + +1232 +v8 +:: +Lol + +m + + +1233 , +v8 +:: +Lol + +me + + +1234 , +v8 +:: +Lol + +vue + + +1235 , +v8 +:: +PrݔtyAribu + +ibus +) { + +1236 +m +-> +S +( +me +, +vue +, +ibus +); + +1239 +le + + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> + $GCutCڋxt +() { + +1240  +v8 +:: +Cڋxt +:: + `GCut +(); + +1241 + } +} + +1243 +le + * +GIlFldPor +( + +1244 +v8 +:: +Lol + +obje + + +1245 ,  +dex +) { + +1246  + gobje +-> +GPorFromIlFld +( +dex +); + +1249 +le +  +SIlFldPor +( + +1250 +v8 +:: +Lol + +obje + + +1251 ,  +dex + + +1252 , * +vue +) { + +1253 + gobje +-> +SPorInIlFld +( +dex +, +vue +); + +1256  + #NAN_GC_CALLBACK +( +me +) \ + +1257  + $me +( +v8 +:: +GCTy + +ty +, v8:: +GCClbackFgs + +ags +) + + ) + +1259 +le +  + $AddGCEpogueClback +( + +1260 +v8 +:: +GCEpogueClback + +back + + +1261 , +v8 +:: +GCTy + +gc_ty_fr + = v8:: +kGCTyA +) { + +1262 +v8 +:: +V8 +:: + `AddGCEpogueClback +( +back +, +gc_ty_fr +); + +1263 + } +} + +1264 +le +  + $RemoveGCEpogueClback +( + +1265 +v8 +:: +GCEpogueClback + +back +) { + +1266 +v8 +:: +V8 +:: + `RemoveGCEpogueClback +( +back +); + +1267 + } +} + +1268 +le +  + $AddGCProgueClback +( + +1269 +v8 +:: +GCProgueClback + +back + + +1270 , +v8 +:: +GCTy + +gc_ty_fr + = v8:: +kGCTyA +) { + +1271 +v8 +:: +V8 +:: + `AddGCProgueClback +( +back +, +gc_ty_fr +); + +1272 + } +} + +1273 +le +  + $RemoveGCProgueClback +( + +1274 +v8 +:: +GCProgueClback + +back +) { + +1275 +v8 +:: +V8 +:: + `RemoveGCProgueClback +( +back +); + +1276 + } +} + +1277 +le +  + $GHpStiics +( + +1278 +v8 +:: +HpStiics + * +hp_iics +) { + +1279 +v8 +:: +V8 +:: + `GHpStiics +( +hp_iics +); + +1280 + } +} + +1282  + #X +( +NAME +) \ + +1283 +le + +v8 +:: +Lol + + $NAME +(cڡ * +msg +) { \ + +1284 +EsbHdSce + +sce +; \ + +1285  +sce +. + `Es +( +v8 +:: +Exi +:: + `NAME +( + `New +( +msg +). + `ToLolChecked +())); \ + +1286 + } +} \ + +1288 +le + \ + +1289 +v8 +:: +Lol + + `NAME +(v8::Lol +msg +) { \ + +1290  +v8 +:: +Exi +:: + `NAME +( +msg +); \ + +1293 +le +  +Throw + ## + $NAME +(cڡ * +msg +) { \ + +1294 +HdSce + +sce +; \ + +1295 +v8 +:: + `ThrowExi +(v8:: +Exi +:: + `NAME +( + `New +( +msg +). + `ToLolChecked +())); \ + +1296 + } +} \ + +1298 +le + \ + +1299  +Throw + ## + `NAME +( +v8 +:: +Lol + +rmsg +) { \ + +1300 +HdSce + +sce +; \ + +1301 +v8 +:: + `ThrowExi +(v8:: +Exi +:: + `NAME +( +rmsg +)); \ + +1302 } + + ) + +1304 + $X +( +E +) + +1305 + $X +( +RgeE +) + +1306 + $X +( +RenE +) + +1307 + $X +( +SyaxE +) + +1308 + $X +( +TyE +) + +1310 #unde +X + + +1312 +le +  + `ThrowE +( +v8 +:: +Lol + +r +) { + +1313 +v8 +:: + `ThrowExi +( +r +); + +1314 + } +} + +1316 +le + + gMaybeLol +< + gv8 +:: +Obje +> + $NewBufr +( + +1317 * +da + + +1318 , +size_t + +ngth + + +1319 , +node +:: +Bufr +:: +_back + +back + + +1320 , * +ht + + +1322 +EsbHdSce + +sce +; + +1325 + `as +( +ngth + < +imp +:: +kMaxLgth + && "tooarge buffer"); + +1326  +sce +. + `Es +( + +1327 + `New +( +node +:: +Bufr +::New( +da +, +ngth +, +back +, +ht +)-> +hd_ +)); + +1328 + } +} + +1330 +le + + gMaybeLol +< + gv8 +:: +Obje +> + $CyBufr +( + +1331 cڡ * +da + + +1332 , +ut32_t + +size + + +1334 +EsbHdSce + +sce +; + +1337 + `as +( +size + < +imp +:: +kMaxLgth + && "tooarge buffer"); + +1338 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +1339  +sce +. + `Es +( + `New +( +node +:: +Bufr +::New( +da +, +size +)-> +hd_ +)); + +1341  +sce +. + `Es +( + +1342 + `New +( +node +:: +Bufr +::New( +cڡ_ +<*>( +da +), +size +)-> +hd_ +)); + +1344 + } +} + +1346 +le + + gMaybeLol +< + gv8 +:: +Obje +> + $NewBufr +( +ut32_t + +size +) { + +1349 +EsbHdSce + +sce +; + +1350 + `as +( +size + < +imp +:: +kMaxLgth + && "tooarge buffer"); + +1351  +sce +. + `Es +( + `New +( +node +:: +Bufr +::New( +size +)-> +hd_ +)); + +1352 + } +} + +1354 +le +  + $FeDa +(* +da +, * +ht +) { + +1355 ( +ht +; + +1356 +de +[] +da +; + +1357 + } +} + +1359 +le + + gMaybeLol +< + gv8 +:: +Obje +> + $NewBufr +( + +1360 * +da + + +1361 , +ut32_t + +size + + +1363 +EsbHdSce + +sce +; + +1366 + `as +( +size + < +imp +:: +kMaxLgth + && "tooarge buffer"); + +1367  +sce +. + `Es +( + +1368 + `New +( +node +:: +Bufr +::New( +da +, +size +, +FeDa +, +NULL +)-> +hd_ +)); + +1369 + } +} + +1371 +mea + + gimp + { + +1372 +le +  + +1373 +widSg +( +d +:: +ve +< +ut16_t +> * +ws +, cڡ +ut8_t + * +s +,  +l +) { + +1374 +size_t + + gn + = +ic_ +( +l +); + +1375 i( + gl + < 0) { + +1376 + gn + = + +( +t_ +( +s +)); + +1378 +as +( +n + < +INT_MAX + && "stringooong"); + +1379 + gws +-> +size +( +n +); + +1380 + gd +:: +cy +( +s +, s + +n +, +ws +-> +beg +()); + +1384 +le + + gMaybeLol +< + gv8 +:: +Sg +> + +1385 +NewOBySg +(cڡ +ut8_t + * +vue +,  +ngth + = -1) { + +1386 +d +:: +ve +< +ut16_t +> +wideSg +; + +1387 + gimp +:: +widSg +(& +wideSg +, +vue +, +ngth +); + +1388  + gv8 +:: +Sg +:: +New +( +wideSg +. +da +(), + +1389 +ic_ +<>( +wideSg +. +size +())); + +1392 +le + + gMaybeLol +< + gBoundSt +> +CompeSt +( + +1393 +v8 +:: +Lol + +s + + +1394 , cڡ +v8 +:: +StOrig +& +ig + + +1396  +v8 +:: +St +:: +Compe +( +s +, +cڡ_ +(& +ig +)); + +1399 +le + + gMaybeLol +< + gBoundSt +> +CompeSt +( + +1400 +v8 +:: +Lol + +s + + +1402  +v8 +:: +St +:: +Compe +( +s +); + +1405 +le + + +1406 + gMaybeLol +< + gv8 +:: +Vue +> +RunSt +( +v8 +:: +Lol + +st +) { + +1407  +st +-> +Run +(); + +1410 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +MakeClback +( + +1411 +v8 +:: +Lol + +rg + + +1412 , +v8 +:: +Lol + +func + + +1413 ,  +gc + + +1414 , +v8 +:: +Lol +* +gv +) { + +1415 +v8 +:: +HdSce + +sce +; + +1416  + gsce +. +Clo +( +New +( +node +:: +MakeClback +( +rg +, +func +, +gc +, +gv +))); + +1419 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +MakeClback +( + +1420 +v8 +:: +Lol + +rg + + +1421 , +v8 +:: +Lol + +symb + + +1422 ,  +gc + + +1423 , +v8 +:: +Lol +* +gv +) { + +1424 +v8 +:: +HdSce + +sce +; + +1425  + gsce +. +Clo +( +New +( +node +:: +MakeClback +( +rg +, +symb +, +gc +, +gv +))); + +1428 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +MakeClback +( + +1429 +v8 +:: +Lol + +rg + + +1430 , cڡ * +mhod + + +1431 ,  +gc + + +1432 , +v8 +:: +Lol +* +gv +) { + +1433 +v8 +:: +HdSce + +sce +; + +1434  + gsce +. +Clo +( +New +( +node +:: +MakeClback +( +rg +, +mhod +, +gc +, +gv +))); + +1437 +le +  + $FExi +(cڡ +TryCch +& +y_tch +) { + +1438 +node +:: + `FExi +( +cڡ_ +< +v8 +:: +TryCch + &>( +y_tch +. +y_tch_ +)); + +1439 + } +} + +1441 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + $EnoExi +( + +1442  +rno + + +1443 , cڡ * +sys + = +NULL + + +1444 , cڡ * +mesge + = +NULL + + +1445 , cڡ * +th + = +NULL +) { + +1446  +node +:: + `EnoExi +( +rno +, +sys +, +mesge +, +th +); + +1447 + } +} + +1449 +NAN_DEPRECATED + +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + $NEnoExi +( + +1450  +rno + + +1451 , cڡ * +sys + = +NULL + + +1452 , cڡ * +mesge + = +NULL + + +1453 , cڡ * +th + = +NULL +) { + +1454  + `EnoExi +( +rno +, +sys +, +mesge +, +th +); + +1455 + } +} + +1458 + gme +< +tyme + + gT +> + +1459 +le +  + $SIsީeDa +( + +1460 +v8 +:: +Isީe + * +isީe + + +1461 , +T + * +da + + +1463 +isީe +-> + `SDa +( +da +); + +1464 + } +} + +1466 + gme +< +tyme + + gT +> + +1467 +le + +T + * + $GIsީeDa +( + +1468 +v8 +:: +Isީe + * +isީe + + +1470  +ic_ +< +T +*>( +isީe +-> + `GDa +()); + +1471 + } +} + +1473 as + cUtf8Sg + { + +1474 + gpublic +: + +1475 +le + +exic + +Utf8Sg +( +v8 +:: +Lol + +om +) : + +1476 +ngth_ +(0), +r_ +( +r__ +) { + +1477 + gv8 +:: +HdSce + +sce +; + +1478 i(! + gom +. +IsEmy +()) { + +1479 + gv8 +:: +Lol +< +v8 +:: +Sg +> +rg + = +om +-> +ToSg +(); + +1480 i(! + grg +. +IsEmy +()) { + +1481 +size_t + + gn + = 3 * +rg +-> +Lgth +() + 1; + +1482 +as +( +n + < +INT_MAX +); + +1483 i( + gn + >  ( + gr__ +)) { + +1484 + gr_ + = +ic_ +<*>( +mloc +( +n +)); + +1485 +as +( +r_ + != 0); + +1487 cڡ  + gags + = + +1488 +v8 +:: +Sg +:: +NO_NULL_TERMINATION + | +imp +:: +kRInvidUtf8 +; + +1489 + gngth_ + = +rg +-> +WreUtf8 +( +r_ +, +ic_ +<>( +n +), 0, +ags +); + +1490 + gr_ +[ +ngth_ +] = '\0'; + +1495 +le +  +ngth +() const { + +1496  + gngth_ +; + +1499 +le + * + gݔ +*({  + gr_ +; } + +1500 +le + cڡ * + gݔ +*(cڡ {  + gr_ +; } + +1502 + gle + ~ +Utf8Sg +() { + +1503 i( + gr_ + ! +r__ +) { + +1504 + +( +r_ +); + +1508 + give +: + +1509 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +Utf8Sg +) + +1511  +ngth_ +; + +1512 * + gr_ +; + +1513  + gr__ +[1024]; + +1518 (* + tFeClback +)(* + tda +, * + tht +); + +1520 cڡ + tFuniClbackInfo +< + tv8 +:: + tVue +>& + tNAN_METHOD_ARGS_TYPE +; + +1521  + tNAN_METHOD_RETURN_TYPE +; + +1523 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tVue +>& + tNAN_GETTER_ARGS_TYPE +; + +1524  + tNAN_GETTER_RETURN_TYPE +; + +1526 cڡ + tPrݔtyClbackInfo +<>& + tNAN_SETTER_ARGS_TYPE +; + +1527  + tNAN_SETTER_RETURN_TYPE +; + +1529 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tVue +>& + +1530 + tNAN_PROPERTY_GETTER_ARGS_TYPE +; + +1531  + tNAN_PROPERTY_GETTER_RETURN_TYPE +; + +1533 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tVue +>& + +1534 + tNAN_PROPERTY_SETTER_ARGS_TYPE +; + +1535  + tNAN_PROPERTY_SETTER_RETURN_TYPE +; + +1537 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tAay +>& + +1538 + tNAN_PROPERTY_ENUMERATOR_ARGS_TYPE +; + +1539  + tNAN_PROPERTY_ENUMERATOR_RETURN_TYPE +; + +1541 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tBoޗn +>& + +1542 + tNAN_PROPERTY_DELETER_ARGS_TYPE +; + +1543  + tNAN_PROPERTY_DELETER_RETURN_TYPE +; + +1545 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tIeg +>& + +1546 + tNAN_PROPERTY_QUERY_ARGS_TYPE +; + +1547  + tNAN_PROPERTY_QUERY_RETURN_TYPE +; + +1549 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tVue +>& + tNAN_INDEX_GETTER_ARGS_TYPE +; + +1550  + tNAN_INDEX_GETTER_RETURN_TYPE +; + +1552 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tVue +>& + tNAN_INDEX_SETTER_ARGS_TYPE +; + +1553  + tNAN_INDEX_SETTER_RETURN_TYPE +; + +1555 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tAay +>& + +1556 + tNAN_INDEX_ENUMERATOR_ARGS_TYPE +; + +1557  + tNAN_INDEX_ENUMERATOR_RETURN_TYPE +; + +1559 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tBoޗn +>& + +1560 + tNAN_INDEX_DELETER_ARGS_TYPE +; + +1561  + tNAN_INDEX_DELETER_RETURN_TYPE +; + +1563 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tIeg +>& + +1564 + tNAN_INDEX_QUERY_ARGS_TYPE +; + +1565  + tNAN_INDEX_QUERY_RETURN_TYPE +; + +1567  + #NAN_METHOD +( +me +) \ + +1568 +N +:: +NAN_METHOD_RETURN_TYPE + + $me +( +N +:: +NAN_METHOD_ARGS_TYPE + +fo +) + + ) + +1569  + #NAN_GETTER +( +me +) \ + +1570 +N +:: +NAN_GETTER_RETURN_TYPE + + `me +( \ + +1571 +v8 +:: +Lol + +ݔty + \ + +1572 , +N +:: +NAN_GETTER_ARGS_TYPE + +fo +) + + ) + +1573  + #NAN_SETTER +( +me +) \ + +1574 +N +:: +NAN_SETTER_RETURN_TYPE + + `me +( \ + +1575 +v8 +:: +Lol + +ݔty + \ + +1576 , +v8 +:: +Lol + +vue + \ + +1577 , +N +:: +NAN_SETTER_ARGS_TYPE + +fo +) + + ) + +1578  + #NAN_PROPERTY_GETTER +( +me +) \ + +1579 +N +:: +NAN_PROPERTY_GETTER_RETURN_TYPE + + `me +( \ + +1580 +v8 +:: +Lol + +ݔty + \ + +1581 , +N +:: +NAN_PROPERTY_GETTER_ARGS_TYPE + +fo +) + + ) + +1582  + #NAN_PROPERTY_SETTER +( +me +) \ + +1583 +N +:: +NAN_PROPERTY_SETTER_RETURN_TYPE + + `me +( \ + +1584 +v8 +:: +Lol + +ݔty + \ + +1585 , +v8 +:: +Lol + +vue + \ + +1586 , +N +:: +NAN_PROPERTY_SETTER_ARGS_TYPE + +fo +) + + ) + +1587  + #NAN_PROPERTY_ENUMERATOR +( +me +) \ + +1588 +N +:: +NAN_PROPERTY_ENUMERATOR_RETURN_TYPE + + `me +( \ + +1589 +N +:: +NAN_PROPERTY_ENUMERATOR_ARGS_TYPE + +fo +) + + ) + +1590  + #NAN_PROPERTY_DELETER +( +me +) \ + +1591 +N +:: +NAN_PROPERTY_DELETER_RETURN_TYPE + + `me +( \ + +1592 +v8 +:: +Lol + +ݔty + \ + +1593 , +N +:: +NAN_PROPERTY_DELETER_ARGS_TYPE + +fo +) + + ) + +1594  + #NAN_PROPERTY_QUERY +( +me +) \ + +1595 +N +:: +NAN_PROPERTY_QUERY_RETURN_TYPE + + `me +( \ + +1596 +v8 +:: +Lol + +ݔty + \ + +1597 , +N +:: +NAN_PROPERTY_QUERY_ARGS_TYPE + +fo +) + + ) + +1598  + #NAN_INDEX_GETTER +( +me +) \ + +1599 +N +:: +NAN_INDEX_GETTER_RETURN_TYPE + + `me +( \ + +1600 +ut32_t + +dex + \ + +1601 , +N +:: +NAN_INDEX_GETTER_ARGS_TYPE + +fo +) + + ) + +1602  + #NAN_INDEX_SETTER +( +me +) \ + +1603 +N +:: +NAN_INDEX_SETTER_RETURN_TYPE + + `me +( \ + +1604 +ut32_t + +dex + \ + +1605 , +v8 +:: +Lol + +vue + \ + +1606 , +N +:: +NAN_INDEX_SETTER_ARGS_TYPE + +fo +) + + ) + +1607  + #NAN_INDEX_ENUMERATOR +( +me +) \ + +1608 +N +:: +NAN_INDEX_ENUMERATOR_RETURN_TYPE + \ + +1609 + $me +( +N +:: +NAN_INDEX_ENUMERATOR_ARGS_TYPE + +fo +) + + ) + +1610  + #NAN_INDEX_DELETER +( +me +) \ + +1611 +N +:: +NAN_INDEX_DELETER_RETURN_TYPE + + `me +( \ + +1612 +ut32_t + +dex + \ + +1613 , +N +:: +NAN_INDEX_DELETER_ARGS_TYPE + +fo +) + + ) + +1614  + #NAN_INDEX_QUERY +( +me +) \ + +1615 +N +:: +NAN_INDEX_QUERY_RETURN_TYPE + + `me +( \ + +1616 +ut32_t + +dex + \ + +1617 , +N +:: +NAN_INDEX_QUERY_ARGS_TYPE + +fo +) + + ) + +1619 as + cClback + { + +1620 +public +: + +1621 + `Clback +() {} + +1623 +exic + + `Clback +(cڡ +v8 +:: +Lol + & + +: + `hd_ +(fn) {} + +1625 ~ + `Clback +() { + +1626 +hd_ +. + `Ret +(); + +1629 +bo + +ݔ +==(cڡ +Clback + & +h +) const { + +1630  +hd_ + = +h +.handle_; + +1633 +bo + +ݔ +!=(cڡ +Clback + & +h +) const { + +1634  ! +ݔ +==( +h +); + +1637 +le + + +1638 +v8 +:: +Lol + +ݔ +*(cڡ {  + `GFuni +(); } + +1640 +NAN_DEPRECATED + +le + +v8 +:: +Lol + + `ݔ +()( + +1641 +v8 +:: +Lol + +rg + + +1642 ,  +gc + = 0 + +1643 , +v8 +:: +Lol + +gv +[] = 0) const { + +1644 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +1645 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); + +1646 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1647 +AsyncResour + + `async +("nan:Callback:operator()"); + +1648  + `Cl_ +( +isީe +, +rg +, +gc +, +gv +, & +async +) + +1649 . + `FromMaybe +( +v8 +:: +Lol +()); + +1651  + `Cl_ +( +isީe +, +rg +, +gc +, +gv +); + +1654  + `Cl_ +( +rg +, +gc +, +gv +); + +1658 +NAN_DEPRECATED + +le + +v8 +:: +Lol + + `ݔ +()( + +1659  +gc + = 0 + +1660 , +v8 +:: +Lol + +gv +[] = 0) const { + +1661 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +1662 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); + +1663 +v8 +:: +EsbHdSce + + `sce +( +isީe +); + +1664 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1665 +AsyncResour + + `async +("nan:Callback:operator()"); + +1666  +sce +. + `Es +( + `Cl_ +( +isީe +, isީe-> + `GCutCڋxt +()-> + `Glob +(), + +1667 +gc +, +gv +, & +async +) + +1668 . + `FromMaybe +( +v8 +:: +Lol +())); + +1670  +sce +. + `Es +( + +1671 + `Cl_ +( +isީe +, isީe-> + `GCutCڋxt +()-> + `Glob +(), +gc +, +gv +)); + +1674 +v8 +:: +HdSce + +sce +; + +1675  +sce +. + `Clo +( + `Cl_ +( +v8 +:: +Cڋxt +:: + `GCut +()-> + `Glob +(), +gc +, +gv +)); + +1679 +le + +MaybeLol +< +v8 +:: +Vue +> + `ݔ +()( + +1680 +AsyncResour +* +sour + + +1681 ,  +gc + = 0 + +1682 , +v8 +:: +Lol + +gv +[] = 0) const { + +1683  +this +-> + `Cl +( +gc +, +gv +, +sour +); + +1686 +le + +MaybeLol +< +v8 +:: +Vue +> + `ݔ +()( + +1687 +AsyncResour +* +sour + + +1688 , +v8 +:: +Lol + +rg + + +1689 ,  +gc + = 0 + +1690 , +v8 +:: +Lol + +gv +[] = 0) const { + +1691  +this +-> + `Cl +( +rg +, +gc +, +gv +, +sour +); + +1695 +le +  + `SFuni +(cڡ +v8 +:: +Lol + & + +) { + +1696 + `Ret +( + +); + +1699 +le +  + `Ret +(cڡ +v8 +:: +Lol + & + +) { + +1700 +hd_ +. + `Ret +( + +); + +1703 +le +  + `Ret +() { + +1704 +hd_ +. + `Ret +(); + +1707 +le + +v8 +:: +Lol + + `GFuni +() const { + +1708  + `New +( +hd_ +); + +1711 +le + +bo + + `IsEmy +() const { + +1712  +hd_ +. + `IsEmy +(); + +1719 +NAN_DEPRECATED + +le + +v8 +:: +Lol + + +1720 + `Cl +( +v8 +:: +Lol + +rg + + +1721 ,  +gc + + +1722 , +v8 +:: +Lol + +gv +[]) const { + +1723 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +1724 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); + +1725 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1726 +AsyncResour + + `async +("nan:Callback:Call"); + +1727  + `Cl_ +( +isީe +, +rg +, +gc +, +gv +, & +async +) + +1728 . + `FromMaybe +( +v8 +:: +Lol +()); + +1730  + `Cl_ +( +isީe +, +rg +, +gc +, +gv +); + +1733  + `Cl_ +( +rg +, +gc +, +gv +); + +1741 +NAN_DEPRECATED + +le + +v8 +:: +Lol + + +1742 + `Cl +( +gc +, +v8 +:: +Lol + +gv +[]) const { + +1743 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +1744 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); + +1745 +v8 +:: +EsbHdSce + + `sce +( +isީe +); + +1746 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1747 +AsyncResour + + `async +("nan:Callback:Call"); + +1748  +sce +. + `Es +( + `Cl_ +( +isީe +, isީe-> + `GCutCڋxt +()-> + `Glob +(), + +1749 +gc +, +gv +, & +async +) + +1750 . + `FromMaybe +( +v8 +:: +Lol +())); + +1752  +sce +. + `Es +( + +1753 + `Cl_ +( +isީe +, isީe-> + `GCutCڋxt +()-> + `Glob +(), +gc +, +gv +)); + +1756 +v8 +:: +HdSce + +sce +; + +1757  +sce +. + `Clo +( + `Cl_ +( +v8 +:: +Cڋxt +:: + `GCut +()-> + `Glob +(), +gc +, +gv +)); + +1761 +le + +MaybeLol +< +v8 +:: +Vue +> + +1762 + `Cl +( +v8 +:: +Lol + +rg + + +1763 ,  +gc + + +1764 , +v8 +:: +Lol + +gv +[] + +1765 , +AsyncResour +* +sour +) const { + +1766 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1767 +v8 +:: +Isީe +* +isީe + = v8::Isީe:: + `GCut +(); + +1768  + `Cl_ +( +isީe +, +rg +, +gc +, +gv +, +sour +); + +1769 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +1770 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); + +1771  + `Cl_ +( +isީe +, +rg +, +gc +, +gv +); + +1773  + `Cl_ +( +rg +, +gc +, +gv +); + +1777 +le + +MaybeLol +< +v8 +:: +Vue +> + +1778 + `Cl +( +gc +, +v8 +:: +Lol + +gv +[], +AsyncResour +* +sour +) const { + +1779 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1780 +v8 +:: +Isީe +* +isީe + = v8::Isީe:: + `GCut +(); + +1781  + `Cl +( +isީe +-> + `GCutCڋxt +()-> + `Glob +(), +gc +, +gv +, +sour +); + +1782 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +1783 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); + +1784 +v8 +:: +EsbHdSce + + `sce +( +isީe +); + +1785  +sce +. + `Es +( + +1786 + `Cl_ +( +isީe +, isީe-> + `GCutCڋxt +()-> + `Glob +(), +gc +, +gv +)); + +1788 +v8 +:: +HdSce + +sce +; + +1789  +sce +. + `Clo +( + `Cl_ +( +v8 +:: +Cڋxt +:: + `GCut +()-> + `Glob +(), +gc +, +gv +)); + +1793 +ive +: + +1794 + `NAN_DISALLOW_ASSIGN_COPY_MOVE +( +Clback +) + +1795 +Psit +< +v8 +:: +Funi +> +hd_ +; + +1797 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +1798 +MaybeLol +< +v8 +:: +Vue +> + `Cl_ +(v8:: +Isީe + * +isީe + + +1799 , +v8 +:: +Lol + +rg + + +1800 ,  +gc + + +1801 , +v8 +:: +Lol + +gv +[] + +1802 , +AsyncResour +* +sour +) const { + +1803 +EsbHdSce + +sce +; + +1804 +v8 +:: +Lol + +func + = + `New +( +hd_ +); + +1805 aut +maybe + = +sour +-> + `runInAsyncSce +( +rg +, +func +, +gc +, +gv +); + +1806 +v8 +:: +Lol + +lol +; + +1807 i(! +maybe +. + `ToLol +(& +lol +) +MaybeLol +< +v8 +:: +Vue +>(); + +1808  +sce +. + `Es +( +lol +); + +1810 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +1811 +v8 +:: +Lol + + `Cl_ +(v8:: +Isީe + * +isީe + + +1812 , +v8 +:: +Lol + +rg + + +1813 ,  +gc + + +1814 , +v8 +:: +Lol + +gv +[]) const { + +1815 +EsbHdSce + +sce +; + +1817 +v8 +:: +Lol + +back + = + `New +( +hd_ +); + +1818 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +1819  +sce +. + `Es +( + `New +( +node +:: + `MakeClback +( + +1820 +isީe + + +1821 , +rg + + +1822 , +back + + +1823 , +gc + + +1824 , +gv + + +1827  +sce +. + `Es +( +node +:: + `MakeClback +( + +1828 +isީe + + +1829 , +rg + + +1830 , +back + + +1831 , +gc + + +1832 , +gv + + +1837 +v8 +:: +Lol + + `Cl_ +(v8::Lol +rg + + +1838 ,  +gc + + +1839 , +v8 +:: +Lol + +gv +[]) const { + +1840 +EsbHdSce + +sce +; + +1842 +v8 +:: +Lol + +back + = + `New +( +hd_ +); + +1843  +sce +. + `Es +( + `New +( +node +:: + `MakeClback +( + +1844 +rg + + +1845 , +back + + +1846 , +gc + + +1847 , +gv + + +1851 + } +}; + +1853 +le + + gMaybeLol +< + gv8 +:: +Vue +> +Cl +( + +1854 cڡ +N +:: +Clback +& +back + + +1855 , +v8 +:: +Lol + +cv + + +1856 ,  +gc + + +1857 , +v8 +:: +Lol + +gv +[]) { + +1858  +Cl +(* +back +, +cv +, +gc +, +gv +); + +1861 +le + + gMaybeLol +< + gv8 +:: +Vue +> +Cl +( + +1862 cڡ +N +:: +Clback +& +back + + +1863 ,  +gc + + +1864 , +v8 +:: +Lol + +gv +[]) { + +1865 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +1866 +v8 +:: +Isީe +* +isީe + = v8::Isީe:: +GCut +(); + +1867 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +1868  + gsce +. +Es +( + +1869 +Cl +(* +back +, +isީe +-> +GCutCڋxt +()-> +Glob +(), +gc +, +gv +) + +1870 . +FromMaybe +( +v8 +:: +Lol +())); + +1872 +EsbHdSce + + gsce +; + +1873  + gsce +. +Es +( + +1874 +Cl +(* +back +, +v8 +:: +Cڋxt +:: +GCut +()-> +Glob +(), +gc +, +gv +) + +1875 . +FromMaybe +( +v8 +:: +Lol +())); + +1879 +le + + gMaybeLol +< + gv8 +:: +Vue +> +Cl +( + +1880 +v8 +:: +Lol + +symb + + +1881 , +v8 +:: +Lol + +cv + + +1882 ,  +gc + + +1883 , +v8 +:: +Lol + +gv +[]) { + +1884 +EsbHdSce + +sce +; + +1885 + gv8 +:: +Lol +< +v8 +:: +Vue +> +_v + = + +1886 +G +( +cv +, +symb +). +FromMaybe +( +v8 +:: +Lol +()); + +1887 i( + g_v +. +IsEmy +(|| !_v-> +IsFuni +() + gv8 +:: +Lol +< +v8 +:: +Vue +>(); + +1888 + gv8 +:: +Lol +< +v8 +:: +Funi +> + + = +_v +. +As +(); + +1889  + gsce +. +Es +( + +1890 +Cl +( + +, +cv +, +gc +, +gv +). +FromMaybe +( +v8 +:: +Lol +())); + +1893 +le + + gMaybeLol +< + gv8 +:: +Vue +> +Cl +( + +1894 cڡ * +mhod + + +1895 , +v8 +:: +Lol + +cv + + +1896 ,  +gc + + +1897 , +v8 +:: +Lol + +gv +[]) { + +1898 +EsbHdSce + +sce +; + +1899 + gv8 +:: +Lol +< +v8 +:: +Sg +> +mhod_rg + = + +1900 +New +< +v8 +:: +Sg +>( +mhod +). +ToLolChecked +(); + +1901  + gsce +. +Es +( + +1902 +Cl +( +mhod_rg +, +cv +, +gc +, +gv +). +FromMaybe +( +v8 +:: +Lol +())); + +1905 cs + cAsyncWk + { + +1906 + gpublic +: + +1907 +exic + +AsyncWk +( +Clback + * +back_ +, + +1908 cڡ * +sour_me + = "nan:AsyncWorker") + +1909 : +back +( +back_ +), +rmsg_ +( +NULL +) { + +1910 + gque +. + gda + = +this +; + +1912 +HdSce + + gsce +; + +1913 + gv8 +:: +Lol +< +v8 +:: +Obje +> +obj + = +New +(); + +1914 + grsitHd +. +Ret +( +obj +); + +1915 + gasync_sour + = +w + +AsyncResour +( +sour_me +, +obj +); + +1918 + gvtu + ~ +AsyncWk +() { + +1919 +HdSce + + gsce +; + +1921 i(! + grsitHd +. +IsEmy +()) + +1922 + grsitHd +. +Ret +(); + +1923 +de + + gback +; + +1924 + gde +[] + grmsg_ +; + +1925 +de + + gasync_sour +; + +1928 +vtu +  +WkCome +() { + +1929 +HdSce + + gsce +; + +1931 i( + grmsg_ + = +NULL +) + +1932 +HdOKClback +(); + +1934 +HdEClback +(); + +1935 +de + + gback +; + +1936 + gback + = +NULL +; + +1939 +le +  +SaveToPsit +( + +1940 cڡ * +key +, cڡ +v8 +:: +Lol + & +vue +) { + +1941 +HdSce + +sce +; + +1942 +S +( +New +( +rsitHd +), New( +key +). +ToLolChecked +(), +vue +). +FromJu +(); + +1945 +le +  +SaveToPsit +( + +1946 cڡ +v8 +:: +Lol + & +key +, cڡ v8::Lol & +vue +) { + +1947 +HdSce + +sce +; + +1948 +S +( +New +( +rsitHd +), +key +, +vue +). +FromJu +(); + +1951 +le +  +SaveToPsit +( + +1952 +ut32_t + +dex +, cڡ +v8 +:: +Lol + & +vue +) { + +1953 +HdSce + +sce +; + +1954 +S +( +New +( +rsitHd +), +dex +, +vue +). +FromJu +(); + +1957 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +GFromPsit +(cڡ * +key +) const { + +1958 +EsbHdSce + +sce +; + +1959  + gsce +. +Es +( + +1960 +G +( +New +( +rsitHd +), New( +key +). +ToLolChecked +()) + +1961 . +FromMaybe +( +v8 +:: +Lol +())); + +1964 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + +1965 +GFromPsit +(cڡ +v8 +:: +Lol + & +key +) const { + +1966 +EsbHdSce + +sce +; + +1967  + gsce +. +Es +( + +1968 +G +( +New +( +rsitHd +), +key +) + +1969 . +FromMaybe +( +v8 +:: +Lol +())); + +1972 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +GFromPsit +( +ut32_t + +dex +) const { + +1973 +EsbHdSce + +sce +; + +1974  + gsce +. +Es +( + +1975 +G +( +New +( +rsitHd +), +dex +) + +1976 . +FromMaybe +( +v8 +:: +Lol +())); + +1979 +vtu +  +Execu +() = 0; + +1981 +uv_wk_t + + gque +; + +1983 +vtu +  +Deroy +() { + +1984 +de + + gthis +; + +1987 + geed +: + +1988 +Psit +< +v8 +:: +Obje +> +rsitHd +; + +1989 +Clback + * + gback +; + +1990 +AsyncResour + * + gasync_sour +; + +1992 +vtu +  +HdOKClback +() { + +1993 +HdSce + + gsce +; + +1995 + gback +-> +Cl +(0, +NULL +, +async_sour +); + +1998 +vtu +  +HdEClback +() { + +1999 +HdSce + + gsce +; + +2001 + gv8 +:: +Lol +< +v8 +:: +Vue +> +gv +[] = { + +2002 +v8 +:: +Exi +:: +E +( +New +( +EMesge +()). +ToLolChecked +()) + +2004 + gback +-> +Cl +(1, +gv +, +async_sour +); + +2007  +SEMesge +(cڡ * +msg +) { + +2008 + gde +[] + grmsg_ +; + +2010 +size_t + + gsize + = + +( +msg +) + 1; + +2011 + grmsg_ + = +w + [ +size +]; + +2012 +memy +( +rmsg_ +, +msg +, +size +); + +2015 cڡ * +EMesge +() const { + +2016  + grmsg_ +; + +2019 + give +: + +2020 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +AsyncWk +) + +2021 * +rmsg_ +; + +2024 cs + cAsyncBeProgssWkBa + : +public + +AsyncWk + { + +2025 +public +: + +2026 +exic + +AsyncBeProgssWkBa +( + +2027 +Clback + * +back_ +, + +2028 cڡ * +sour_me + = "nan:AsyncBareProgressWorkerBase") + +2029 : +AsyncWk +( +back_ +, +sour_me +) { + +2030 +uv_async_ +( + +2031 +GCutEvtLo +() + +2032 , & +async + + +2033 , +AsyncProgss_ + + +2035 + gasync +. + gda + = +this +; + +2038 + gvtu + ~ +AsyncBeProgssWkBa +() { + +2041 +vtu +  +WkProgss +() = 0; + +2043 +vtu +  +Deroy +() { + +2044 +uv_o +( +t_ +< +uv_hd_t +*>(& +async +), +AsyncClo_ +); + +2047 + give +: + +2048 +le +  +NAUV_WORK_CB +( +AsyncProgss_ +) { + +2049 +AsyncBeProgssWkBa + * +wk + = + +2050 +ic_ +< +AsyncBeProgssWkBa +*>( +async +-> +da +); + +2051 + gwk +-> +WkProgss +(); + +2054 +le +  +AsyncClo_ +( +uv_hd_t +* +hd +) { + +2055 +AsyncBeProgssWkBa + * + gwk + = + +2056 +ic_ +< +AsyncBeProgssWkBa +*>( +hd +-> +da +); + +2057 +de + + gwk +; + +2060 + geed +: + +2061 +uv_async_t + +async +; + +2064 + gme +< +ass + + gT +> + +2066 as + cAsyncBeProgssWk + : +public + +AsyncBeProgssWkBa + { + +2067 +public +: + +2068 +exic + +AsyncBeProgssWk +( + +2069 +Clback + * +back_ +, + +2070 cڡ * +sour_me + = "nan:AsyncBareProgressWorker") + +2071 : +AsyncBeProgssWkBa +( +back_ +, +sour_me +) { + +2072 +uv_mux_ +(& +async_lock +); + +2075 + gvtu + ~ +AsyncBeProgssWk +() { + +2076 +uv_mux_deroy +(& +async_lock +); + +2079 as + cExecutiProgss + { + +2080 +nd + +ass + + gAsyncBeProgssWk +; + +2081 + gpublic +: + +2082  +Sigl +() const { + +2083 +uv_mux_lock +(& +th_ +-> +async_lock +); + +2084 +uv_async_nd +(& +th_ +-> +async +); + +2085 +uv_mux_uock +(& +th_ +-> +async_lock +); + +2088  +Sd +(cڡ +T +* +da +, +size_t + +cou +) const { + +2089 + gth_ +-> +SdProgss_ +( +da +, +cou +); + +2092 + give +: + +2093 +exic + +ExecutiProgss +( +AsyncBeProgssWk + * +th +: +th_ +(that) {} + +2094 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +ExecutiProgss +) + +2095 +AsyncBeProgssWk +* cڡ +th_ +; + +2098 +vtu +  +Execu +(cڡ +ExecutiProgss +& +ogss +) = 0; + +2099 +vtu +  +HdProgssClback +(cڡ +T + * +da +, +size_t + +size +) = 0; + +2101 + geed +: + +2102 +uv_mux_t + +async_lock +; + +2104 + give +: + +2105  +Execu +() { + +2106 +ExecutiProgss + +ogss +( +this +); + +2107 +Execu +( +ogss +); + +2110 +vtu +  +SdProgss_ +(cڡ +T + * +da +, +size_t + +cou +) = 0; + +2113 + gme +< +ass + + gT +> + +2115 +ass + + gAsyncProgssWkBa + : +public + +AsyncBeProgssWk +< +T +> { + +2116 +public +: + +2117 +exic + +AsyncProgssWkBa +( + +2118 +Clback + * +back_ +, + +2119 cڡ * +sour_me + = "nan:AsyncProgressWorkerBase") + +2120 : +AsyncBeProgssWk +< +T +>( +back_ +, + gsour_me +), +asyncda_ +( +NULL +), + +2121 +asyncsize_ +(0) { + +2124 + gvtu + ~ +AsyncProgssWkBa +() { + +2125 + gde +[] + gasyncda_ +; + +2128  +WkProgss +() { + +2129 +uv_mux_lock +(& +this +-> +async_lock +); + +2130 +T + * + gda + = +asyncda_ +; + +2131 +size_t + + gsize + = +asyncsize_ +; + +2132 + gasyncda_ + = +NULL +; + +2133 + gasyncsize_ + = 0; + +2134 +uv_mux_uock +(& +this +-> +async_lock +); + +2137 i( + gthis +-> + gback +) { + +2138 + gthis +-> +HdProgssClback +( +da +, +size +); + +2140 + gde +[] + gda +; + +2143 + give +: + +2144  +SdProgss_ +(cڡ +T + * +da +, +size_t + +cou +) { + +2145 +T + * + gw_da + = +w + T[ +cou +]; + +2146 + gd +:: +cy +( +da +, d+ +cou +, +w_da +); + +2148 +uv_mux_lock +(& +this +-> +async_lock +); + +2149 +T + * + gd_da + = +asyncda_ +; + +2150 + gasyncda_ + = +w_da +; + +2151 + gasyncsize_ + = +cou +; + +2152 +uv_async_nd +(& +this +-> +async +); + +2153 +uv_mux_uock +(& +this +-> +async_lock +); + +2155 + gde +[] + gd_da +; + +2158 +T + * + gasyncda_ +; + +2159 +size_t + + gasyncsize_ +; + +2164  + gAsyncProgssWkBa +<> + tAsyncProgssWk +; + +2166 + gme +< +ass + + gT +> + +2168 as + cAsyncBeProgssQueueWk + : +public + +AsyncBeProgssWkBa + { + +2169 +public +: + +2170 +exic + +AsyncBeProgssQueueWk +( + +2171 +Clback + * +back_ +, + +2172 cڡ * +sour_me + = "nan:AsyncBareProgressQueueWorker") + +2173 : +AsyncBeProgssWkBa +( +back_ +, +sour_me +) { + +2176 + gvtu + ~ +AsyncBeProgssQueueWk +() { + +2179 as + cExecutiProgss + { + +2180 +nd + +ass + + gAsyncBeProgssQueueWk +; + +2181 + gpublic +: + +2182  +Sd +(cڡ +T +* +da +, +size_t + +cou +) const { + +2183 + gth_ +-> +SdProgss_ +( +da +, +cou +); + +2186 + give +: + +2187 +exic + +ExecutiProgss +( +AsyncBeProgssQueueWk + * +th +) + +2188 : +th_ +( +th +) {} + +2189 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +ExecutiProgss +) + +2190 +AsyncBeProgssQueueWk +* cڡ +th_ +; + +2193 +vtu +  +Execu +(cڡ +ExecutiProgss +& +ogss +) = 0; + +2194 +vtu +  +HdProgssClback +(cڡ +T + * +da +, +size_t + +size +) = 0; + +2196 + give +: + +2197  +Execu +() { + +2198 +ExecutiProgss + +ogss +( +this +); + +2199 +Execu +( +ogss +); + +2202 +vtu +  +SdProgss_ +(cڡ +T + * +da +, +size_t + +cou +) = 0; + +2205 + gme +< +ass + + gT +> + +2207 +ass + + gAsyncProgssQueueWk + : +public + +AsyncBeProgssQueueWk +< +T +> { + +2208 +public +: + +2209 +exic + +AsyncProgssQueueWk +( + +2210 +Clback + * +back_ +, + +2211 cڡ * +sour_me + = "nan:AsyncProgressQueueWorker") + +2212 : +AsyncBeProgssQueueWk +< +T +>( +back_ +) { + +2213 +uv_mux_ +(& +async_lock +); + +2216 + gvtu + ~ +AsyncProgssQueueWk +() { + +2217 +uv_mux_lock +(& +async_lock +); + +2219 ! + gasyncda_ +. +emy +()) { + +2220 + gd +:: + +< +T +*, + gsize_t +> & + gda + = +asyncda_ +. +t +(); + +2221 +T + * + gda + = +da +. +f +; + +2223 + gasyncda_ +. +p +(); + +2225 + gde +[] + gda +; + +2228 +uv_mux_uock +(& +async_lock +); + +2229 +uv_mux_deroy +(& +async_lock +); + +2232  +WkCome +() { + +2233 +WkProgss +(); + +2234 + gAsyncWk +:: +WkCome +(); + +2237  +WkProgss +() { + +2238 +uv_mux_lock +(& +async_lock +); + +2240 ! + gasyncda_ +. +emy +()) { + +2241 + gd +:: + +< +T +*, + gsize_t +> & + gda + = +asyncda_ +. +t +(); + +2243 +T + * + gda + = +da +. +f +; + +2244 +size_t + + gsize + = +da +. +cd +; + +2246 + gasyncda_ +. +p +(); + +2247 +uv_mux_uock +(& +async_lock +); + +2250 i( + gthis +-> + gback +) { + +2251 + gthis +-> +HdProgssClback +( +da +, +size +); + +2254 + gde +[] + gda +; + +2256 +uv_mux_lock +(& +async_lock +); + +2259 +uv_mux_uock +(& +async_lock +); + +2262 + give +: + +2263  +SdProgss_ +(cڡ +T + * +da +, +size_t + +cou +) { + +2264 +T + * + gw_da + = +w + T[ +cou +]; + +2265 + gd +:: +cy +( +da +, d+ +cou +, +w_da +); + +2267 +uv_mux_lock +(& +async_lock +); + +2268 + gasyncda_ +. +push +( +d +:: + +< +T +*, +size_t +>( +w_da +, +cou +)); + +2269 +uv_mux_uock +(& +async_lock +); + +2271 +uv_async_nd +(& +this +-> +async +); + +2274 +uv_mux_t + + gasync_lock +; + +2275 + gd +:: +queue +< +d +:: + +< +T +*, + gsize_t +> > + gasyncda_ +; + +2278 +le +  + $AsyncExecu + ( +uv_wk_t +* +q +) { + +2279 +AsyncWk + * +wk + = +ic_ +( +q +-> +da +); + +2280 +wk +-> + `Execu +(); + +2281 + } +} + +2283 +le +  + $AsyncExecuCome + ( +uv_wk_t +* +q +) { + +2284 +AsyncWk +* +wk + = +ic_ +( +q +-> +da +); + +2285 +wk +-> + `WkCome +(); + +2286 +wk +-> + `Deroy +(); + +2287 + } +} + +2289 +le +  + $AsyncQueueWk + ( +AsyncWk +* +wk +) { + +2290 + `uv_queue_wk +( + +2291 + `GCutEvtLo +() + +2292 , & +wk +-> +que + + +2293 , +AsyncExecu + + +2294 , +t_ +< +uv_a_wk_cb +>( +AsyncExecuCome +) + +2296 + } +} + +2298 +mea + + gimp + { + +2300 +le + + +2301 +ExOBySgResour + const* + +2302 +GExResour +( +v8 +:: +Lol + +r +) { + +2303 #i +NODE_MODULE_VERSION + < +ATOM_0_21_MODULE_VERSION + + +2304  +r +-> +GExAsciiSgResour +(); + +2306  + gr +-> +GExOBySgResour +(); + +2310 +le + + +2311 +bo + + +2312 +IsEx +( +v8 +:: +Lol + +r +) { + +2313 #i +NODE_MODULE_VERSION + < +ATOM_0_21_MODULE_VERSION + + +2314  +r +-> +IsExAscii +(); + +2316  + gr +-> +IsExOBy +(); + +2322 + eEncodg + { + gASCII +, + gUTF8 +, + gBASE64 +, + gUCS2 +, + gBINARY +, + gHEX +, + gBUFFER +}; + +2324 #i +NODE_MODULE_VERSION + < +NODE_0_10_MODULE_VERSION + + +2325  + ~"n_rg_bys.h +" + +2328 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + $Encode +( + +2329 cڡ * +buf +, +size_t + +n +, +Encodg + +codg + = +BINARY +) { + +2330 #i( +NODE_MODULE_VERSION + > +ATOM_0_21_MODULE_VERSION +) + +2331 +v8 +:: +Isީe +* +isީe + = v8::Isީe:: + `GCut +(); + +2332 +node +:: +codg + +node_c + = +ic_ +(encoding); + +2334 i( +codg + = +UCS2 +) { + +2335  +node +:: + `Encode +( + +2336 +isީe + + +2337 , +t_ +( +buf +) + +2338 , +n + / 2); + +2340  +node +:: + `Encode +( + +2341 +isީe + + +2342 , +t_ +( +buf +) + +2343 , +n + + +2344 , +node_c +); + +2346 #i( +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION +) + +2347  +node +:: + `Encode +( + +2348 +v8 +:: +Isީe +:: + `GCut +() + +2349 , +buf +, +n + + +2350 , +ic_ +< +node +:: +codg +>(encoding)); + +2352 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +2353  +node +:: + `Encode +( +buf +, +n +, +ic_ +(encoding)); + +2355  +imp +:: + `Encode +( +t_ +( +buf +), +n +, +codg +); + +2358 + } +} + +2360 +le + +ssize_t + +DecodeBys +( + +2361 +v8 +:: +Lol + +v +, +Encodg + +codg + = +BINARY +) { + +2362 #i( +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION +) + +2363  +node +:: +DecodeBys +( + +2364 +v8 +:: +Isީe +:: +GCut +() + +2365 , +v + + +2366 , +ic_ +< +node +:: +codg +>(encoding)); + +2368 #i( +NODE_MODULE_VERSION + < +NODE_0_10_MODULE_VERSION +) + +2369 i( + gcodg + = +BUFFER +) { + +2370  +node +:: +DecodeBys +( +v +,ode:: +BINARY +); + +2373  + gnode +:: +DecodeBys +( +v +, +ic_ +< +node +:: +codg +>(encoding)); + +2377 +le + +ssize_t + +DecodeWre +( + +2378 * +buf + + +2379 , +size_t + +n + + +2380 , +v8 +:: +Lol + +v + + +2381 , +Encodg + +codg + = +BINARY +) { + +2382 #i( +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION +) + +2383  +node +:: +DecodeWre +( + +2384 +v8 +:: +Isީe +:: +GCut +() + +2385 , +buf + + +2386 , +n + + +2387 , +v + + +2388 , +ic_ +< +node +:: +codg +>(encoding)); + +2390 #i( +NODE_MODULE_VERSION + < +NODE_0_10_MODULE_VERSION +) + +2391 i( + gcodg + = +BUFFER +) { + +2392  +node +:: +DecodeWre +( +buf +, +n +, +v +,ode:: +BINARY +); + +2395  + gnode +:: +DecodeWre +( + +2396 +buf + + +2397 , +n + + +2398 , +v + + +2399 , +ic_ +< +node +:: +codg +>(encoding)); + +2403 +le +  +SPryTeme +( + +2404 +v8 +:: +Lol + +m + + +2405 , cڡ * +me + + +2406 , +v8 +:: +Lol + +vue + + +2408 +HdSce + +sce +; + +2409 +STeme +( +m +-> +PryTeme +(), +me +, +vue +); + +2412 +le +  +SPryTeme +( + +2413 +v8 +:: +Lol + +m + + +2414 , +v8 +:: +Lol + +me + + +2415 , +v8 +:: +Lol + +vue + + +2416 , +v8 +:: +PrݔtyAribu + +ibus + + +2418 +HdSce + +sce +; + +2419 +STeme +( +m +-> +PryTeme +(), +me +, +vue +, +ibus +); + +2422 +le +  +SInTeme +( + +2423 +v8 +:: +Lol + +m + + +2424 , cڡ * +me + + +2425 , +v8 +:: +Lol + +vue + + +2427 +HdSce + +sce +; + +2428 +STeme +( +m +-> +InTeme +(), +me +, +vue +); + +2431 +le +  +SInTeme +( + +2432 +v8 +:: +Lol + +m + + +2433 , +v8 +:: +Lol + +me + + +2434 , +v8 +:: +Lol + +vue + + +2435 , +v8 +:: +PrݔtyAribu + +ibus + + +2437 +HdSce + +sce +; + +2438 +STeme +( +m +-> +InTeme +(), +me +, +vue +, +ibus +); + +2441 +mea + + gimp + { + +2447 + gme + < +tyme + + gT +> + +2448 +le + + +2450 +SMhodAux +( +T + +cv +, + +2451 +v8 +:: +Lol + +me +, + +2452 +v8 +:: +Lol + +l +, + +2453 +v8 +:: +Teme + *) { + +2454 +cv +-> +S +( +me +, +l +); + +2457 + gme + < +tyme + + gT +> + +2458 +le + + +2460 +SMhodAux +( +T + +cv +, + +2461 +v8 +:: +Lol + +me +, + +2462 +v8 +:: +Lol + +l +, + +2464 +S +( +cv +, +me +, +GFuni +( +l +). +ToLolChecked +()); + +2469 + gme + < +tyme + + gT +,em< + gtyme +> +ass + + gHdTy +> + +2470 +le +  +SMhod +( + +2471 +HdTy +< +T +> +cv + + +2472 , cڡ * +me + + +2473 , +FuniClback + +back + + +2474 , +v8 +:: +Lol + +da + = v8::Local()) { + +2475 +HdSce + +sce +; + +2476 + gv8 +:: +Lol +< +v8 +:: +FuniTeme +> +t + = +New +( +back +, + gda +); + +2477 + gv8 +:: +Lol +< +v8 +:: +Sg +> +_me + = +New +( +me +). +ToLolChecked +(); + +2478 + gt +-> +SCssName +( +_me +); + +2481 + gimp +:: +SMhodAux +( +cv +, +_me +, +t +, +ic_ +< +T +*>(0)); + +2484 +le +  +SPryMhod +( + +2485 +v8 +:: +Lol + +cv + + +2486 , cڡ * +me + + +2487 , +FuniClback + +back + + +2488 , +v8 +:: +Lol + +da + = v8::Local()) { + +2489 +HdSce + +sce +; + +2490 + gv8 +:: +Lol +< +v8 +:: +FuniTeme +> +t + = +New +( + +2491 +back + + +2492 , + gda + + +2493 , + gNew +< + gv8 +:: +Sigtu +>( +cv +)); + +2494 + gv8 +:: +Lol +< +v8 +:: +Sg +> +_me + = +New +( +me +). +ToLolChecked +(); + +2495 + gcv +-> +PryTeme +()-> +S +( +_me +, +t +); + +2496 + gt +-> +SCssName +( +_me +); + +2501 +le +  +SAcss +( + +2502 +v8 +:: +Lol + +l + + +2503 , +v8 +:: +Lol + +me + + +2504 , +GrClback + +gr + + +2505 , +SrClback + + + = 0 + +2506 , +v8 +:: +Lol + +da + = v8::Local() + +2507 , +v8 +:: +AcssCڌ + +gs + = v8:: +DEFAULT + + +2508 , +v8 +:: +PrݔtyAribu + +ibu + = v8:: +Ne + + +2509 , +imp +:: +Sig + +sigtu + = imp:: + $Sig +()) { + +2510 +HdSce + +sce +; + +2512 +imp +:: +NiveGr + +gr_ + = + +2513 +imp +:: +GrClbackW +; + +2514 +imp +:: +NiveSr + +_ + = + +2515 + + ? +imp +:: +SrClbackW + : 0; + +2517 +v8 +:: +Lol + +ٶ + = +New +(); + +2518 +ٶ +-> + `SIlFldCou +( +imp +:: +kAcssFldCou +); + +2519 +v8 +:: +Lol + +obj + = + `NewIn +( +ٶ +). + `ToLolChecked +(); + +2521 +obj +-> + `SIlFld +( + +2522 +imp +:: +kGrIndex + + +2523 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +gr +))); + +2525 i( + + != 0) { + +2526 +obj +-> + `SIlFld +( + +2527 +imp +:: +kSrIndex + + +2528 , +New +< +v8 +:: +Ex +>( +t_ +<*>( + +))); + +2531 i(! +da +. + `IsEmy +()) { + +2532 +obj +-> + `SIlFld +( +imp +:: +kDaIndex +, +da +); + +2535 +l +-> + `SAcss +( + +2536 +me + + +2537 , +gr_ + + +2538 , +_ + + +2539 , +obj + + +2540 , +gs + + +2541 , +ibu + + +2542 , +sigtu +); + +2543 + } +} + +2545 +le + +bo + +SAcss +( + +2546 +v8 +:: +Lol + +obj + + +2547 , +v8 +:: +Lol + +me + + +2548 , +GrClback + +gr + + +2549 , +SrClback + + + = 0 + +2550 , +v8 +:: +Lol + +da + = v8::Local() + +2551 , +v8 +:: +AcssCڌ + +gs + = v8:: +DEFAULT + + +2552 , +v8 +:: +PrݔtyAribu + +ibu + = v8:: +Ne +) { + +2553 +HdSce + +sce +; + +2555 + gimp +:: +NiveGr + +gr_ + = + +2556 +imp +:: +GrClbackW +; + +2557 + gimp +:: +NiveSr + +_ + = + +2558 + + ? +imp +:: +SrClbackW + : 0; + +2560 + gv8 +:: +Lol +< +v8 +:: +ObjeTeme +> +ٶ + = +New +(); + +2561 + gٶ +-> +SIlFldCou +( +imp +:: +kAcssFldCou +); + +2562 + gv8 +:: +Lol +< +v8 +:: +Obje +> +daobj + = +NewIn +( +ٶ +). +ToLolChecked +(); + +2564 + gdaobj +-> +SIlFld +( + +2565 +imp +:: +kGrIndex + + +2566 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +gr +))); + +2568 i(! + gda +. +IsEmy +()) { + +2569 + gdaobj +-> +SIlFld +( +imp +:: +kDaIndex +, +da +); + +2572 i( + g +) { + +2573 + gdaobj +-> +SIlFld +( + +2574 +imp +:: +kSrIndex + + +2575 , +New +< +v8 +:: +Ex +>( +t_ +<*>( + +))); + +2578 #i( +NODE_MODULE_VERSION + > +NODE_6_0_MODULE_VERSION +) + +2579  + gobj +-> +SAcss +( + +2580 +GCutCڋxt +() + +2581 , +me + + +2582 , +gr_ + + +2583 , +_ + + +2584 , +daobj + + +2585 , +gs + + +2586 , +ibu +). +FromMaybe +( +l +); + +2588  + gobj +-> +SAcss +( + +2589 +me + + +2590 , +gr_ + + +2591 , +_ + + +2592 , +daobj + + +2593 , +gs + + +2594 , +ibu +); + +2598 +le +  +SNamedPrݔtyHdr +( + +2599 +v8 +:: +Lol + +l + + +2600 , +PrݔtyGrClback + +gr + + +2601 , +PrݔtySrClback + + + = 0 + +2602 , +PrݔtyQuyClback + +quy + = 0 + +2603 , +PrݔtyDClback + +d + = 0 + +2604 , +PrݔtyEnumClback + +um + = 0 + +2605 , +v8 +:: +Lol + +da + = v8::Local()) { + +2606 +HdSce + +sce +; + +2608 + gimp +:: +NivePrݔtyGr + +gr_ + = + +2609 +imp +:: +PrݔtyGrClbackW +; + +2610 + gimp +:: +NivePrݔtySr + +_ + = + +2611 + + ? +imp +:: +PrݔtySrClbackW + : 0; + +2612 + gimp +:: +NivePrݔtyQuy + +quy_ + = + +2613 +quy + ? +imp +:: +PrݔtyQuyClbackW + : 0; + +2614 + gimp +:: +NivePrݔtyD + * +d_ + = + +2615 +d + ? +imp +:: +PrݔtyDClbackW + : 0; + +2616 + gimp +:: +NivePrݔtyEnum + +um_ + = + +2617 +um + ? +imp +:: +PrݔtyEnumClbackW + : 0; + +2619 + gv8 +:: +Lol +< +v8 +:: +ObjeTeme +> +ٶ + = +New +(); + +2620 + gٶ +-> +SIlFldCou +( +imp +:: +kPrݔtyFldCou +); + +2621 + gv8 +:: +Lol +< +v8 +:: +Obje +> +obj + = +NewIn +( +ٶ +). +ToLolChecked +(); + +2622 + gobj +-> +SIlFld +( + +2623 +imp +:: +kPrݔtyGrIndex + + +2624 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +gr +))); + +2626 i( + g +) { + +2627 + gobj +-> +SIlFld +( + +2628 +imp +:: +kPrݔtySrIndex + + +2629 , +New +< +v8 +:: +Ex +>( +t_ +<*>( + +))); + +2632 i( + gquy +) { + +2633 + gobj +-> +SIlFld +( + +2634 +imp +:: +kPrݔtyQuyIndex + + +2635 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +quy +))); + +2638 i( + gd +) { + +2639 + gobj +-> +SIlFld +( + +2640 +imp +:: +kPrݔtyDIndex + + +2641 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +d +))); + +2644 i( + gum +) { + +2645 + gobj +-> +SIlFld +( + +2646 +imp +:: +kPrݔtyEnumIndex + + +2647 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +um +))); + +2650 i(! + gda +. +IsEmy +()) { + +2651 + gobj +-> +SIlFld +( +imp +:: +kDaIndex +, +da +); + +2654 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +2655 + gl +-> +SHdr +( +v8 +:: +NamedPrݔtyHdrCfiguti +( + +2656 +gr_ +, +_ +, +quy_ +, +d_ +, +um_ +, +obj +)); + +2658 + gl +-> +SNamedPrݔtyHdr +( + +2659 +gr_ + + +2660 , +_ + + +2661 , +quy_ + + +2662 , +d_ + + +2663 , +um_ + + +2664 , +obj +); + +2668 +le +  +SIndexedPrݔtyHdr +( + +2669 +v8 +:: +Lol + +l + + +2670 , +IndexGrClback + +gr + + +2671 , +IndexSrClback + + + = 0 + +2672 , +IndexQuyClback + +quy + = 0 + +2673 , +IndexDClback + +d + = 0 + +2674 , +IndexEnumClback + +um + = 0 + +2675 , +v8 +:: +Lol + +da + = v8::Local()) { + +2676 +HdSce + +sce +; + +2678 + gimp +:: +NiveIndexGr + +gr_ + = + +2679 +imp +:: +IndexGrClbackW +; + +2680 + gimp +:: +NiveIndexSr + +_ + = + +2681 + + ? +imp +:: +IndexSrClbackW + : 0; + +2682 + gimp +:: +NiveIndexQuy + +quy_ + = + +2683 +quy + ? +imp +:: +IndexQuyClbackW + : 0; + +2684 + gimp +:: +NiveIndexD + +d_ + = + +2685 +d + ? +imp +:: +IndexDClbackW + : 0; + +2686 + gimp +:: +NiveIndexEnum + +um_ + = + +2687 +um + ? +imp +:: +IndexEnumClbackW + : 0; + +2689 + gv8 +:: +Lol +< +v8 +:: +ObjeTeme +> +ٶ + = +New +(); + +2690 + gٶ +-> +SIlFldCou +( +imp +:: +kIndexPrݔtyFldCou +); + +2691 + gv8 +:: +Lol +< +v8 +:: +Obje +> +obj + = +NewIn +( +ٶ +). +ToLolChecked +(); + +2692 + gobj +-> +SIlFld +( + +2693 +imp +:: +kIndexPrݔtyGrIndex + + +2694 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +gr +))); + +2696 i( + g +) { + +2697 + gobj +-> +SIlFld +( + +2698 +imp +:: +kIndexPrݔtySrIndex + + +2699 , +New +< +v8 +:: +Ex +>( +t_ +<*>( + +))); + +2702 i( + gquy +) { + +2703 + gobj +-> +SIlFld +( + +2704 +imp +:: +kIndexPrݔtyQuyIndex + + +2705 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +quy +))); + +2708 i( + gd +) { + +2709 + gobj +-> +SIlFld +( + +2710 +imp +:: +kIndexPrݔtyDIndex + + +2711 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +d +))); + +2714 i( + gum +) { + +2715 + gobj +-> +SIlFld +( + +2716 +imp +:: +kIndexPrݔtyEnumIndex + + +2717 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +um +))); + +2720 i(! + gda +. +IsEmy +()) { + +2721 + gobj +-> +SIlFld +( +imp +:: +kDaIndex +, +da +); + +2724 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +2725 + gl +-> +SHdr +( +v8 +:: +IndexedPrݔtyHdrCfiguti +( + +2726 +gr_ +, +_ +, +quy_ +, +d_ +, +um_ +, +obj +)); + +2728 + gl +-> +SIndexedPrݔtyHdr +( + +2729 +gr_ + + +2730 , +_ + + +2731 , +quy_ + + +2732 , +d_ + + +2733 , +um_ + + +2734 , +obj +); + +2738 +le +  +SClHdr +( + +2739 +v8 +:: +Lol + +l + + +2740 , +FuniClback + +back + + +2741 , +v8 +:: +Lol + +da + = v8::Local()) { + +2742 +HdSce + +sce +; + +2744 + gv8 +:: +Lol +< +v8 +:: +ObjeTeme +> +ٶ + = +New +(); + +2745 + gٶ +-> +SIlFldCou +( +imp +:: +kFuniFldCou +); + +2746 + gv8 +:: +Lol +< +v8 +:: +Obje +> +obj + = +NewIn +( +ٶ +). +ToLolChecked +(); + +2748 + gobj +-> +SIlFld +( + +2749 +imp +:: +kFuniIndex + + +2750 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +back +))); + +2752 i(! + gda +. +IsEmy +()) { + +2753 + gobj +-> +SIlFld +( +imp +:: +kDaIndex +, +da +); + +2756 + gl +-> +SClHdr +( +imp +:: +FuniClbackW +, +obj +); + +2760 +le +  +SClAsFuniHdr +( + +2761 +v8 +:: +Lol + +l +, + +2762 +FuniClback + +back +, + +2763 +v8 +:: +Lol + +da + = v8::Local()) { + +2764 +HdSce + +sce +; + +2766 + gv8 +:: +Lol +< +v8 +:: +ObjeTeme +> +ٶ + = +New +(); + +2767 + gٶ +-> +SIlFldCou +( +imp +:: +kFuniFldCou +); + +2768 + gv8 +:: +Lol +< +v8 +:: +Obje +> +obj + = +NewIn +( +ٶ +). +ToLolChecked +(); + +2770 + gobj +-> +SIlFld +( + +2771 +imp +:: +kFuniIndex + + +2772 , +New +< +v8 +:: +Ex +>( +t_ +<*>( +back +))); + +2774 i(! + gda +. +IsEmy +()) { + +2775 + gobj +-> +SIlFld +( +imp +:: +kDaIndex +, +da +); + +2778 + gl +-> +SClAsFuniHdr +( +imp +:: +FuniClbackW +, +obj +); + +2783  + ~"n_wk.h +" + +2787  + ~"n_obje_wp.h +" + +2791  + ~"n_ive.h +" + +2795 +le + + +2797 + $Expt +( +ADDON_REGISTER_FUNCTION_ARGS_TYPE + +rg +, cڡ * +me +, + +2798 +FuniClback + +f +) { + +2799 +HdSce + +sce +; + +2801 + `S +( +rg +, +New +< +v8 +:: +Sg +>( +me +). + `ToLolChecked +(), + +2802 + `GFuni +( +New +< +v8 +:: +FuniTeme +>( +f +)). + `ToLolChecked +()); + +2803 + } +} + +2807  + sT + { + +2808 +exic + +T +( +v8 +:: +Lol + +t +: +t_ +() { + +2809 +HdSce + +sce +; + +2811 + gt_ +. +Ret +( +To +< +v8 +:: +Obje +>( +t +). +ToLolChecked +()); + +2814 ~ +T +({ + gt_ +. +Ret +(); } + +2816 +le +  + +( +i +) { + +2817 +HdSce + + gsce +; + +2818 + gv8 +:: +Lol +< +v8 +:: +Vue +> +g + = +New +( +i +); + +2819 +Cl +("", +New +( +t_ +), 1, & +g +); + +2822 +le +  +ok +( +bo + +isOk +, cڡ * +msg + = +NULL +) { + +2823 +HdSce + +sce +; + +2824 + gv8 +:: +Lol +< +v8 +:: +Vue +> +gs +[2]; + +2825 + ggs +[0] = +New +( +isOk +); + +2826 i( + gmsg + + ggs +[1] = +New +( +msg +). +ToLolChecked +(); + +2827 +Cl +("ok", +New +( +t_ +), +msg + ? 2 : 1, +gs +); + +2830 +le +  +ss +(cڡ * +msg + = +NULL +) { + +2831 +HdSce + +sce +; + +2832 + gv8 +:: +Lol +< +v8 +:: +Vue +> +hmsg +; + +2833 i( + gmsg + + ghmsg + = +New +( +msg +). +ToLolChecked +(); + +2834 +Cl +("ss", +New +( +t_ +), +msg + ? 1 : 0, & +hmsg +); + +2837 +le +  +d +() { + +2838 +HdSce + + gsce +; + +2839 +Cl +("d", +New +( +t_ +), 0, +NULL +); + +2842 + give +: + +2843 +Psit +< +v8 +:: +Obje +> +t_ +; + +2846  + #NAN_STRINGIZE2 +( +x +#x + + ) + +2847  + #NAN_STRINGIZE +( +x + + $NAN_STRINGIZE2 +( +x +) + + ) + +2848  + #NAN_TEST_EXPRESSION +( +exessi +) \ + +2849 +exessi + ), +__FILE__ + ":" + `NAN_STRINGIZE +( +__LINE__ +": " #exessi + + ) + +2851  + #NAN_EXPORT +( +rg +, +funi + + `Expt +Ѭg, #funi, funi) + + ) + +2853 #unde +TYPE_CHECK + + +2857 +mea + +imp + { + +2859 +me + < +tyme + +T +>  +Maybefr +; + +2861 +me + < +tyme + +T +>  +Maybefr +< +v8 +:: +Lol + > { + +2862 +le +  +MaybeLol +< +T +> + `cvt +( +v8 +:: +Lol + +v +) { + +2863  +v +; + +2867 +me + < +tyme + +T +>  +Maybefr +< +MaybeLol + > { + +2868 +le +  +MaybeLol +< +T +> + `cvt +(MaybeLol +v +) { + +2869  +v +; + +2873 + } +} + +2875 + gme + < +tyme + + gT +,em< + gtyme +> +ass + + gMaybeMaybe +> + +2876 +le + + gMaybeLol +< + gT +> + +2877 +MakeMaybe +( +MaybeMaybe +< +T +> +v +) { + +2878  + gimp +:: +Maybefr +< +MaybeMaybe +< +T +> >:: +cvt +( +v +); + +2883  + ~"n_tydy_cڋs.h +" + +2887  + ~"n_js.h +" + + @interface/node_modules/nan/nan_callbacks.h + +9 #ide +NAN_CALLBACKS_H_ + + +10  + #NAN_CALLBACKS_H_ + + + ) + +12 + gme +< +tyme + + gT +> +ass + + gFuniClbackInfo +; + +13 + gme +< +tyme + + gT +> +ass + + gPrݔtyClbackInfo +; + +14 + gme +< +tyme + + gT +> +ass + + gGlob +; + +16 (* + tFuniClback +)(cڡ + tFuniClbackInfo +< + tv8 +:: + tVue +>&); + +17 (* + tGrClback +) + +18 ( + tv8 +:: + tLol +, cڡ + tPrݔtyClbackInfo +&); + +19 (* + tSrClback +)( + +20 + tv8 +:: + tLol +, + +21 + tv8 +:: + tLol +, + +22 cڡ + tPrݔtyClbackInfo +<>&); + +23 (* + tPrݔtyGrClback +)( + +24 + tv8 +:: + tLol +, + +25 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tVue +>&); + +26 (* + tPrݔtySrClback +)( + +27 + tv8 +:: + tLol +, + +28 + tv8 +:: + tLol +, + +29 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tVue +>&); + +30 (* + tPrݔtyEnumClback +) + +31 (cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tAay +>&); + +32 (* + tPrݔtyDClback +)( + +33 + tv8 +:: + tLol +, + +34 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tBoޗn +>&); + +35 (* + tPrݔtyQuyClback +)( + +36 + tv8 +:: + tLol +, + +37 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tIeg +>&); + +38 (* + tIndexGrClback +)( + +39 + tut32_t +, + +40 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tVue +>&); + +41 (* + tIndexSrClback +)( + +42 + tut32_t +, + +43 + tv8 +:: + tLol +, + +44 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tVue +>&); + +45 (* + tIndexEnumClback +) + +46 (cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tAay +>&); + +47 (* + tIndexDClback +)( + +48 + tut32_t +, + +49 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tBoޗn +>&); + +50 (* + tIndexQuyClback +)( + +51 + tut32_t +, + +52 cڡ + tPrݔtyClbackInfo +< + tv8 +:: + tIeg +>&); + +54 +mea + +imp + { + +55  +v8 +:: + tLol +< + tv8 +:: + tAcssSigtu +> + tSig +; + +57 cڡ  +kDaIndex + = 0; + +59 cڡ  +kFuniIndex + = 1; + +60 cڡ  +kFuniFldCou + = 2; + +62 cڡ  +kGrIndex + = 1; + +63 cڡ  +kSrIndex + = 2; + +64 cڡ  +kAcssFldCou + = 3; + +66 cڡ  +kPrݔtyGrIndex + = 1; + +67 cڡ  +kPrݔtySrIndex + = 2; + +68 cڡ  +kPrݔtyEnumIndex + = 3; + +69 cڡ  +kPrݔtyDIndex + = 4; + +70 cڡ  +kPrݔtyQuyIndex + = 5; + +71 cڡ  +kPrݔtyFldCou + = 6; + +73 cڡ  +kIndexPrݔtyGrIndex + = 1; + +74 cڡ  +kIndexPrݔtySrIndex + = 2; + +75 cڡ  +kIndexPrݔtyEnumIndex + = 3; + +76 cڡ  +kIndexPrݔtyDIndex + = 4; + +77 cڡ  +kIndexPrݔtyQuyIndex + = 5; + +78 cڡ  +kIndexPrݔtyFldCou + = 6; + +80 + } +} + +82 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +83  + ~"n_backs_12_l.h +" + +85  + ~"n_backs_e_12_l.h +" + + @interface/node_modules/nan/nan_callbacks_12_inl.h + +9 #ide +NAN_CALLBACKS_12_INL_H_ + + +10  + #NAN_CALLBACKS_12_INL_H_ + + + ) + +12 + gme +< +tyme + + gT +> + +13 as + cRuVue + { + +14 + mv8 +:: +RuVue +< +T +> +vue_ +; + +16 + mpublic +: + +17 +me + < +ass + +S +> + +18 +exic + +le + +RuVue +(cڡ +v8 +::RuVue< +S +> & +vue +) : + +19 + $vue_ +( +vue +) {} + +20 +me + < +ass + +S +> + +21 +exic + +le + + `RuVue +(cڡ +RuVue +< +S +>& +th +) + +22 : + $vue_ +( +th +. +vue_ +) { + +23 + `TYPE_CHECK +( +T +, +S +); + +24 + } +} + +27 + gme + < +tyme + + gS +> +le +  +S +(cڡ +v8 +:: +Lol +< +S +> & +hd +) { + +28 +TYPE_CHECK +( +T +, +S +); + +29 + gvue_ +. +S +( +hd +); + +32 + gme + < +tyme + + gS +> +le +  +S +(cڡ +Glob +< +S +> & +hd +) { + +33 +TYPE_CHECK +( +T +, +S +); + +34 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +35 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && \ + +36 ( +V8_MINOR_VERSION + > 5 || (V8_MINOR_VERSION == 5 && \ + +37 +defed +( +V8_BUILD_NUMBER +) && V8_BUILD_NUMBER >= 8)))) + +38 +vue_ +. +S +( +hd +); + +40 + gvue_ +. +S +(* +t_ +*>(& +hd +)); + +41 + gcڡ_ +< + gGlob +< + gS +> &>( + ghd +). +Ret +(); + +46 +le +  + $S +( +bo + +vue +) { + +47 + `TYPE_CHECK +( +T +, +v8 +:: +Boޗn +); + +48 +vue_ +. + `S +( +vue +); + +49 + } +} + +51 +le +  + $S +( +i +) { + +52 + `TYPE_CHECK +( +T +, +v8 +:: +Numb +); + +53 +vue_ +. + `S +( +i +); + +54 + } +} + +56 +le +  + $S +( +t32_t + +i +) { + +57 + `TYPE_CHECK +( +T +, +v8 +:: +Ieg +); + +58 +vue_ +. + `S +( +i +); + +59 + } +} + +61 +le +  + $S +( +ut32_t + +i +) { + +62 + `TYPE_CHECK +( +T +, +v8 +:: +Ieg +); + +63 +vue_ +. + `S +( +i +); + +64 + } +} + +67 +le +  + $SNu +() { + +68 + `TYPE_CHECK +( +T +, +v8 +:: +Primive +); + +69 +vue_ +. + `SNu +(); + +70 + } +} + +72 +le +  + $SUndefed +() { + +73 + `TYPE_CHECK +( +T +, +v8 +:: +Primive +); + +74 +vue_ +. + `SUndefed +(); + +75 + } +} + +77 +le +  + $SEmySg +() { + +78 + `TYPE_CHECK +( +T +, +v8 +:: +Sg +); + +79 +vue_ +. + `SEmySg +(); + +80 + } +} + +83 +le + + gv8 +:: +Isީe + * + $GIsީe +() const { + +84  +vue_ +. + `GIsީe +(); + +85 + } +} + +88 + gme +< +tyme + + gS +> + +89 +le +  + $S +( +S + * +whev +{ + `TYPE_CHECK +(S*, +v8 +:: +Primive +); + } +} + +92 + gme +< +tyme + + gT +> + +93 as + cFuniClbackInfo + { + +94 cڡ + mv8 +:: +FuniClbackInfo +< +T +> & +fo_ +; + +95 cڡ + mv8 +:: +Lol +< +v8 +:: +Vue +> +da_ +; + +97 + mpublic +: + +98 +exic + +le + +FuniClbackInfo +( + +99 cڡ +v8 +:: +FuniClbackInfo +< +T +> & +fo + + +100 , +v8 +:: +Lol + +da +) : + +101 +fo_ +( +fo +) + +102 , + $da_ +( +da +) {} + +104 +le + +RuVue +< +T +> + $GRuVue +() const { + +105  +RuVue +< +T +>( +fo_ +. + `GRuVue +()); + +106 + } +} + +108 #i +NODE_MAJOR_VERSION + < 10 + +109 +le + + gv8 +:: +Lol +< +v8 +:: +Funi +> + $Ce +(cڡ {  +fo_ +. + `Ce +(); + } +} + +111 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + $Da +(cڡ {  +da_ +; + } +} + +112 +le + + gv8 +:: +Lol +< +v8 +:: +Obje +> + $Hd +(cڡ {  +fo_ +. + `Hd +(); + } +} + +113 +le + +bo + + $IsCڡruCl +(cڡ {  +fo_ +. + `IsCڡruCl +(); + } +} + +114 +le +  + $Lgth +(cڡ {  +fo_ +. + `Lgth +(); + } +} + +115 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +ݔ +[]( +i +cڡ {  +fo_ +[i]; } + +116 +le + + gv8 +:: +Lol +< +v8 +:: +Obje +> + $This +(cڡ {  +fo_ +. + `This +(); + } +} + +117 +le + + gv8 +:: +Isީe + * + $GIsީe +(cڡ {  +fo_ +. + `GIsީe +(); + } +} + +120 + geed +: + +121 cڡ  +kHdIndex + = 0; + +122 cڡ  + gkIsީeIndex + = 1; + +123 cڡ  + gkRuVueDeuVueIndex + = 2; + +124 cڡ  + gkRuVueIndex + = 3; + +125 cڡ  + gkDaIndex + = 4; + +126 cڡ  + gkCeIndex + = 5; + +127 cڡ  + gkCڋxtSaveIndex + = 6; + +128 cڡ  + gkArgsLgth + = 7; + +130 + give +: + +131 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +FuniClbackInfo +) + +134 + gme +< +tyme + + gT +> + +135 as + cPrݔtyClbackInfo + { + +136 cڡ + mv8 +:: +PrݔtyClbackInfo +< +T +> & +fo_ +; + +137 cڡ + mv8 +:: +Lol +< +v8 +:: +Vue +> +da_ +; + +139 + mpublic +: + +140 +exic + +le + +PrݔtyClbackInfo +( + +141 cڡ +v8 +:: +PrݔtyClbackInfo +< +T +> & +fo + + +142 , cڡ +v8 +:: +Lol + +da +) : + +143 +fo_ +( +fo +) + +144 , + $da_ +( +da +) {} + +146 +le + +v8 +:: +Isީe +* + $GIsީe +(cڡ {  +fo_ +. + `GIsީe +(); + } +} + +147 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + $Da +(cڡ {  +da_ +; + } +} + +148 +le + + gv8 +:: +Lol +< +v8 +:: +Obje +> + $This +(cڡ {  +fo_ +. + `This +(); + } +} + +149 +le + + gv8 +:: +Lol +< +v8 +:: +Obje +> + $Hd +(cڡ {  +fo_ +. + `Hd +(); + } +} + +150 +le + + gRuVue +< + gT +> + $GRuVue +() const { + +151  +RuVue +< +T +>( +fo_ +. + `GRuVue +()); + +152 + } +} + +154 + geed +: + +155 cڡ  +kHdIndex + = 0; + +156 cڡ  + gkIsީeIndex + = 1; + +157 cڡ  + gkRuVueDeuVueIndex + = 2; + +158 cڡ  + gkRuVueIndex + = 3; + +159 cڡ  + gkDaIndex + = 4; + +160 cڡ  + gkThisIndex + = 5; + +161 cڡ  + gkArgsLgth + = 6; + +163 + give +: + +164 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +PrݔtyClbackInfo +) + +167 +mea + + gimp + { + +169  +FuniClbackW +(cڡ +v8 +:: +FuniClbackInfo + & +fo +) { + +170 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +171 +FuniClback + + gback + = +t_ +( + +172 +t_ +< +_t +>( + +173 +obj +-> +GIlFld +( +kFuniIndex +). +As +< +v8 +:: +Ex +>()-> +Vue +())); + +174 + gFuniClbackInfo +< + gv8 +:: +Vue +> + +175 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +176 +back +( +cbfo +); + +179 (* + gNiveFuni +)(cڡ + tv8 +:: + tFuniClbackInfo + &); + +181 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +183  +GrClbackW +( + +184 +v8 +:: +Lol + +ݔty + + +185 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +186 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +187 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +188 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +189 +GrClback + + gback + = +t_ +( + +190 +t_ +< +_t +>( + +191 +obj +-> +GIlFld +( +kGrIndex +). +As +< +v8 +:: +Ex +>()-> +Vue +())); + +192 +back +( +ݔty +. +As +< +v8 +:: +Sg +>(), +cbfo +); + +195 (* + gNiveGr +) + +196 ( + tv8 +:: + tLol +, cڡ v8:: + tPrݔtyClbackInfo + &); + +199  +SrClbackW +( + +200 +v8 +:: +Lol + +ݔty + + +201 , +v8 +:: +Lol + +vue + + +202 , cڡ +v8 +:: +PrݔtyClbackInfo +<> & +fo +) { + +203 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +204 + gPrݔtyClbackInfo +<> + +205 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +206 +SrClback + + gback + = +t_ +( + +207 +t_ +< +_t +>( + +208 +obj +-> +GIlFld +( +kSrIndex +). +As +< +v8 +:: +Ex +>()-> +Vue +())); + +209 +back +( +ݔty +. +As +< +v8 +:: +Sg +>(), +vue +, +cbfo +); + +212 (* + gNiveSr +)( + +213 + tv8 +:: + tLol + + +214 , + tv8 +:: + tLol + + +215 , cڡ + tv8 +:: + tPrݔtyClbackInfo +<> &); + +218  +GrClbackW +( + +219 +v8 +:: +Lol + +ݔty + + +220 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +221 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +222 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +223 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +224 +GrClback + + gback + = +t_ +( + +225 +t_ +< +_t +>( + +226 +obj +-> +GIlFld +( +kGrIndex +). +As +< +v8 +:: +Ex +>()-> +Vue +())); + +227 +back +( +ݔty +, +cbfo +); + +230 (* + gNiveGr +) + +231 ( + tv8 +:: + tLol +, cڡ v8:: + tPrݔtyClbackInfo + &); + +234  +SrClbackW +( + +235 +v8 +:: +Lol + +ݔty + + +236 , +v8 +:: +Lol + +vue + + +237 , cڡ +v8 +:: +PrݔtyClbackInfo +<> & +fo +) { + +238 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +239 + gPrݔtyClbackInfo +<> + +240 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +241 +SrClback + + gback + = +t_ +( + +242 +t_ +< +_t +>( + +243 +obj +-> +GIlFld +( +kSrIndex +). +As +< +v8 +:: +Ex +>()-> +Vue +())); + +244 +back +( +ݔty +, +vue +, +cbfo +); + +247 (* + gNiveSr +)( + +248 + tv8 +:: + tLol + + +249 , + tv8 +:: + tLol + + +250 , cڡ + tv8 +:: + tPrݔtyClbackInfo +<> &); + +253 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +255  +PrݔtyGrClbackW +( + +256 +v8 +:: +Lol + +ݔty + + +257 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +258 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +259 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +260 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +261 +PrݔtyGrClback + + gback + = +t_ +( + +262 +t_ +< +_t +>( + +263 +obj +-> +GIlFld +( +kPrݔtyGrIndex +) + +264 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +265 +back +( +ݔty +. +As +< +v8 +:: +Sg +>(), +cbfo +); + +268 (* + gNivePrݔtyGr +) + +269 ( + tv8 +:: + tLol +, cڡ v8:: + tPrݔtyClbackInfo + &); + +272  +PrݔtySrClbackW +( + +273 +v8 +:: +Lol + +ݔty + + +274 , +v8 +:: +Lol + +vue + + +275 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +276 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +277 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +278 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +279 +PrݔtySrClback + + gback + = +t_ +( + +280 +t_ +< +_t +>( + +281 +obj +-> +GIlFld +( +kPrݔtySrIndex +) + +282 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +283 +back +( +ݔty +. +As +< +v8 +:: +Sg +>(), +vue +, +cbfo +); + +286 (* + gNivePrݔtySr +)( + +287 + tv8 +:: + tLol + + +288 , + tv8 +:: + tLol + + +289 , cڡ + tv8 +:: + tPrݔtyClbackInfo + &); + +292  +PrݔtyEnumClbackW +( + +293 cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +294 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +295 + gPrݔtyClbackInfo +< + gv8 +:: +Aay +> + +296 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +297 +PrݔtyEnumClback + + gback + = + +298 +t_ +< +PrݔtyEnumClback +>et_< +_t +>( + +299 +obj +-> +GIlFld +( +kPrݔtyEnumIndex +) + +300 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +301 +back +( +cbfo +); + +304 (* + gNivePrݔtyEnum +) + +305 (cڡ + tv8 +:: + tPrݔtyClbackInfo + &); + +308  +PrݔtyDClbackW +( + +309 +v8 +:: +Lol + +ݔty + + +310 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +311 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +312 + gPrݔtyClbackInfo +< + gv8 +:: +Boޗn +> + +313 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +314 +PrݔtyDClback + + gback + = +t_ +( + +315 +t_ +< +_t +>( + +316 +obj +-> +GIlFld +( +kPrݔtyDIndex +) + +317 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +318 +back +( +ݔty +. +As +< +v8 +:: +Sg +>(), +cbfo +); + +321 ( + gNivePrݔtyD +) + +322 ( + tv8 +:: + tLol +, cڡ v8:: + tPrݔtyClbackInfo + &); + +325  +PrݔtyQuyClbackW +( + +326 +v8 +:: +Lol + +ݔty + + +327 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +328 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +329 + gPrݔtyClbackInfo +< + gv8 +:: +Ieg +> + +330 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +331 +PrݔtyQuyClback + + gback + = +t_ +( + +332 +t_ +< +_t +>( + +333 +obj +-> +GIlFld +( +kPrݔtyQuyIndex +) + +334 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +335 +back +( +ݔty +. +As +< +v8 +:: +Sg +>(), +cbfo +); + +338 (* + gNivePrݔtyQuy +) + +339 ( + tv8 +:: + tLol +, cڡ v8:: + tPrݔtyClbackInfo + &); + +342  +PrݔtyGrClbackW +( + +343 +v8 +:: +Lol + +ݔty + + +344 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +345 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +346 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +347 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +348 +PrݔtyGrClback + + gback + = +t_ +( + +349 +t_ +< +_t +>( + +350 +obj +-> +GIlFld +( +kPrݔtyGrIndex +) + +351 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +352 +back +( +ݔty +, +cbfo +); + +355 (* + gNivePrݔtyGr +) + +356 ( + tv8 +:: + tLol +, cڡ v8:: + tPrݔtyClbackInfo + &); + +359  +PrݔtySrClbackW +( + +360 +v8 +:: +Lol + +ݔty + + +361 , +v8 +:: +Lol + +vue + + +362 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +363 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +364 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +365 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +366 +PrݔtySrClback + + gback + = +t_ +( + +367 +t_ +< +_t +>( + +368 +obj +-> +GIlFld +( +kPrݔtySrIndex +) + +369 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +370 +back +( +ݔty +, +vue +, +cbfo +); + +373 (* + gNivePrݔtySr +)( + +374 + tv8 +:: + tLol + + +375 , + tv8 +:: + tLol + + +376 , cڡ + tv8 +:: + tPrݔtyClbackInfo + &); + +379  +PrݔtyEnumClbackW +( + +380 cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +381 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +382 + gPrݔtyClbackInfo +< + gv8 +:: +Aay +> + +383 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +384 +PrݔtyEnumClback + + gback + = + +385 +t_ +< +PrݔtyEnumClback +>et_< +_t +>( + +386 +obj +-> +GIlFld +( +kPrݔtyEnumIndex +) + +387 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +388 +back +( +cbfo +); + +391 (* + gNivePrݔtyEnum +) + +392 (cڡ + tv8 +:: + tPrݔtyClbackInfo + &); + +395  +PrݔtyDClbackW +( + +396 +v8 +:: +Lol + +ݔty + + +397 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +398 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +399 + gPrݔtyClbackInfo +< + gv8 +:: +Boޗn +> + +400 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +401 +PrݔtyDClback + + gback + = +t_ +( + +402 +t_ +< +_t +>( + +403 +obj +-> +GIlFld +( +kPrݔtyDIndex +) + +404 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +405 +back +( +ݔty +, +cbfo +); + +408 ( + gNivePrݔtyD +) + +409 ( + tv8 +:: + tLol +, cڡ v8:: + tPrݔtyClbackInfo + &); + +412  +PrݔtyQuyClbackW +( + +413 +v8 +:: +Lol + +ݔty + + +414 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +415 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +416 + gPrݔtyClbackInfo +< + gv8 +:: +Ieg +> + +417 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +418 +PrݔtyQuyClback + + gback + = +t_ +( + +419 +t_ +< +_t +>( + +420 +obj +-> +GIlFld +( +kPrݔtyQuyIndex +) + +421 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +422 +back +( +ݔty +, +cbfo +); + +425 (* + gNivePrݔtyQuy +) + +426 ( + tv8 +:: + tLol +, cڡ v8:: + tPrݔtyClbackInfo + &); + +430  +IndexGrClbackW +( + +431 +ut32_t + +dex +, cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +432 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +433 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +434 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +435 +IndexGrClback + + gback + = +t_ +( + +436 +t_ +< +_t +>( + +437 +obj +-> +GIlFld +( +kIndexPrݔtyGrIndex +) + +438 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +439 +back +( +dex +, +cbfo +); + +442 (* + gNiveIndexGr +) + +443 ( + tut32_t +, cڡ + tv8 +:: + tPrݔtyClbackInfo + &); + +446  +IndexSrClbackW +( + +447 +ut32_t + +dex + + +448 , +v8 +:: +Lol + +vue + + +449 , cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +450 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +451 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +452 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +453 +IndexSrClback + + gback + = +t_ +( + +454 +t_ +< +_t +>( + +455 +obj +-> +GIlFld +( +kIndexPrݔtySrIndex +) + +456 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +457 +back +( +dex +, +vue +, +cbfo +); + +460 (* + gNiveIndexSr +)( + +461 + tut32_t + + +462 , + tv8 +:: + tLol + + +463 , cڡ + tv8 +:: + tPrݔtyClbackInfo + &); + +466  +IndexEnumClbackW +( + +467 cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +468 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +469 + gPrݔtyClbackInfo +< + gv8 +:: +Aay +> + +470 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +471 +IndexEnumClback + + gback + = +t_ +( + +472 +t_ +< +_t +>( + +473 +obj +-> +GIlFld +( + +474 +kIndexPrݔtyEnumIndex +). +As +< +v8 +:: +Ex +>()-> +Vue +())); + +475 +back +( +cbfo +); + +478 (* + gNiveIndexEnum +) + +479 (cڡ + tv8 +:: + tPrݔtyClbackInfo + &); + +482  +IndexDClbackW +( + +483 +ut32_t + +dex +, cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +484 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +485 + gPrݔtyClbackInfo +< + gv8 +:: +Boޗn +> + +486 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +487 +IndexDClback + + gback + = +t_ +( + +488 +t_ +< +_t +>( + +489 +obj +-> +GIlFld +( +kIndexPrݔtyDIndex +) + +490 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +491 +back +( +dex +, +cbfo +); + +494 (* + gNiveIndexD +) + +495 ( + tut32_t +, cڡ + tv8 +:: + tPrݔtyClbackInfo + &); + +498  +IndexQuyClbackW +( + +499 +ut32_t + +dex +, cڡ +v8 +:: +PrݔtyClbackInfo + & +fo +) { + +500 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +501 + gPrݔtyClbackInfo +< + gv8 +:: +Ieg +> + +502 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +503 +IndexQuyClback + + gback + = +t_ +( + +504 +t_ +< +_t +>( + +505 +obj +-> +GIlFld +( +kIndexPrݔtyQuyIndex +) + +506 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +507 +back +( +dex +, +cbfo +); + +510 (* + gNiveIndexQuy +) + +511 ( + tut32_t +, cڡ + tv8 +:: + tPrݔtyClbackInfo + &); + + @interface/node_modules/nan/nan_callbacks_pre_12_inl.h + +9 #ide +NAN_CALLBACKS_PRE_12_INL_H_ + + +10  + #NAN_CALLBACKS_PRE_12_INL_H_ + + + ) + +12 +mea + + gimp + { + +13 + gme +< +tyme + + gT +> +ass + + gRuVueImp +; + +16 + gme +< +tyme + + gT +> + +17 as + cRuVue + { + +18 + mv8 +:: +Isީe + * +isީe_ +; + +19 + mv8 +:: +Psit +< +T +> * +vue_ +; + +20 +nd + +ass + + mimp +:: +RuVueImp +< +T +>; + +22 + mpublic +: + +23 +me + < +ass + +S +> + +24 +exic + +le + +RuVue +( +v8 +:: +Isީe + * +isީe +, v8:: +Psit +< +S +> * +p +) : + +25 +isީe_ +( +isީe +), + $vue_ +( +p +) {} + +26 +me + < +ass + +S +> + +27 +exic + +le + + `RuVue +(cڡ +RuVue +< +S +>& +th +) + +28 : + `isީe_ +( +th +. +isީe_ +), + $vue_ +( +th +. +vue_ +) { + +29 + `TYPE_CHECK +( +T +, +S +); + +30 + } +} + +33 + gme + < +tyme + + gS +> +le +  +S +(cڡ +v8 +:: +Lol +< +S +> & +hd +) { + +34 +TYPE_CHECK +( +T +, +S +); + +35 + gvue_ +-> +Dio +(); + +36 * + gvue_ + = +v8 +:: +Psit +< +T +>:: +New +( +hd +); + +39 + gme + < +tyme + + gS +> +le +  +S +(cڡ +Glob +< +S +> & +hd +) { + +40 +TYPE_CHECK +( +T +, +S +); + +41 + gvue_ +-> +Dio +(); + +42 * + gvue_ + = +v8 +:: +Psit +< +T +>:: +New +( +hd +. +rsit +); + +43 + gcڡ_ +< + gGlob +< + gS +> &>( + ghd +). +Ret +(); + +47 +le +  + $S +( +bo + +vue +) { + +48 +v8 +:: +HdSce + +sce +; + +50 + `TYPE_CHECK +( +T +, +v8 +:: +Boޗn +); + +51 +vue_ +-> + `Dio +(); + +52 * +vue_ + = +v8 +:: +Psit +< +T +>:: + `New +(v8:: +Boޗn +::New( +vue +)); + +53 + } +} + +55 +le +  + $S +( +i +) { + +56 +v8 +:: +HdSce + +sce +; + +58 + `TYPE_CHECK +( +T +, +v8 +:: +Numb +); + +59 +vue_ +-> + `Dio +(); + +60 * +vue_ + = +v8 +:: +Psit +< +T +>:: + `New +(v8:: +Numb +::New( +i +)); + +61 + } +} + +63 +le +  + $S +( +t32_t + +i +) { + +64 +v8 +:: +HdSce + +sce +; + +66 + `TYPE_CHECK +( +T +, +v8 +:: +Ieg +); + +67 +vue_ +-> + `Dio +(); + +68 * +vue_ + = +v8 +:: +Psit +< +T +>:: + `New +(v8:: +I32 +::New( +i +)); + +69 + } +} + +71 +le +  + $S +( +ut32_t + +i +) { + +72 +v8 +:: +HdSce + +sce +; + +74 + `TYPE_CHECK +( +T +, +v8 +:: +Ieg +); + +75 +vue_ +-> + `Dio +(); + +76 * +vue_ + = +v8 +:: +Psit +< +T +>:: + `New +(v8:: +Ut32 +:: + `NewFromUnsigd +( +i +)); + +77 + } +} + +80 +le +  + $SNu +() { + +81 +v8 +:: +HdSce + +sce +; + +83 + `TYPE_CHECK +( +T +, +v8 +:: +Primive +); + +84 +vue_ +-> + `Dio +(); + +85 * +vue_ + = +v8 +:: +Psit +< +T +>:: + `New +(v8:: + `Nu +()); + +86 + } +} + +88 +le +  + $SUndefed +() { + +89 +v8 +:: +HdSce + +sce +; + +91 + `TYPE_CHECK +( +T +, +v8 +:: +Primive +); + +92 +vue_ +-> + `Dio +(); + +93 * +vue_ + = +v8 +:: +Psit +< +T +>:: + `New +(v8:: + `Undefed +()); + +94 + } +} + +96 +le +  + $SEmySg +() { + +97 +v8 +:: +HdSce + +sce +; + +99 + `TYPE_CHECK +( +T +, +v8 +:: +Sg +); + +100 +vue_ +-> + `Dio +(); + +101 * +vue_ + = +v8 +:: +Psit +< +T +>:: + `New +(v8:: +Sg +:: + `Emy +()); + +102 + } +} + +105 +le + + gv8 +:: +Isީe + * + $GIsީe +() const { + +106  +isީe_ +; + +107 + } +} + +110 + gme +< +tyme + + gS +> + +111 +le +  + $S +( +S + * +whev +{ + `TYPE_CHECK +(S*, +v8 +:: +Primive +); + } +} + +114 + gme +< +tyme + + gT +> + +115 as + cFuniClbackInfo + { + +116 cڡ + mv8 +:: +Argumts + & +gs_ +; + +117 + mv8 +:: +Lol +< +v8 +:: +Vue +> +da_ +; + +118 + mRuVue +< + mT +> + mtu_vue_ +; + +119 + mv8 +:: +Psit +< +T +> +tv_ +; + +121 + mpublic +: + +122 +exic + +le + +FuniClbackInfo +( + +123 cڡ +v8 +:: +Argumts + & +gs + + +124 , +v8 +:: +Lol + +da +) : + +125 +gs_ +( +gs +) + +126 , +da_ +( +da +) + +127 , +tu_vue_ +( +gs +. +GIsީe +(), & +tv_ +) + +128 , +tv_ +( +v8 +:: +Psit +< +T +>:: +New +(v8:: + $Undefed +())) {} + +130 +le + ~ + $FuniClbackInfo +() { + +131 +tv_ +. + `Dio +(); + +132 +tv_ +. + `Cˬ +(); + +133 + } +} + +135 +le + + gRuVue +< + gT +> + $GRuVue +() const { + +136  +RuVue +< +T +>( +tu_vue_ +); + +137 + } +} + +139 +le + + gv8 +:: +Lol +< +v8 +:: +Funi +> + $Ce +(cڡ {  +gs_ +. + `Ce +(); + } +} + +140 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + $Da +(cڡ {  +da_ +; + } +} + +141 +le + + gv8 +:: +Lol +< +v8 +:: +Obje +> + $Hd +(cڡ {  +gs_ +. + `Hd +(); + } +} + +142 +le + +bo + + $IsCڡruCl +(cڡ {  +gs_ +. + `IsCڡruCl +(); + } +} + +143 +le +  + $Lgth +(cڡ {  +gs_ +. + `Lgth +(); + } +} + +144 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +ݔ +[]( +i +cڡ {  +gs_ +[i]; } + +145 +le + + gv8 +:: +Lol +< +v8 +:: +Obje +> + $This +(cڡ {  +gs_ +. + `This +(); + } +} + +146 +le + + gv8 +:: +Isީe + * + $GIsީe +(cڡ {  +gs_ +. + `GIsީe +(); + } +} + +149 + geed +: + +150 cڡ  +kHdIndex + = 0; + +151 cڡ  + gkIsީeIndex + = 1; + +152 cڡ  + gkRuVueDeuVueIndex + = 2; + +153 cڡ  + gkRuVueIndex + = 3; + +154 cڡ  + gkDaIndex + = 4; + +155 cڡ  + gkCeIndex + = 5; + +156 cڡ  + gkCڋxtSaveIndex + = 6; + +157 cڡ  + gkArgsLgth + = 7; + +159 + give +: + +160 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +FuniClbackInfo +) + +163 + gme +< +tyme + + gT +> + +164 as + cPrݔtyClbackInfoBa + { + +165 cڡ + mv8 +:: +AcssInfo + & +fo_ +; + +166 cڡ + mv8 +:: +Lol +< +v8 +:: +Vue +> +da_ +; + +168 + mpublic +: + +169 +exic + +le + +PrݔtyClbackInfoBa +( + +170 cڡ +v8 +:: +AcssInfo + & +fo + + +171 , cڡ +v8 +:: +Lol + +da +) : + +172 +fo_ +( +fo +) + +173 , + $da_ +( +da +) {} + +175 +le + +v8 +:: +Isީe +* + $GIsީe +(cڡ {  +fo_ +. + `GIsީe +(); + } +} + +176 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> + $Da +(cڡ {  +da_ +; + } +} + +177 +le + + gv8 +:: +Lol +< +v8 +:: +Obje +> + $This +(cڡ {  +fo_ +. + `This +(); + } +} + +178 +le + + gv8 +:: +Lol +< +v8 +:: +Obje +> + $Hd +(cڡ {  +fo_ +. + `Hd +(); + } +} + +180 + geed +: + +181 cڡ  +kHdIndex + = 0; + +182 cڡ  + gkIsީeIndex + = 1; + +183 cڡ  + gkRuVueDeuVueIndex + = 2; + +184 cڡ  + gkRuVueIndex + = 3; + +185 cڡ  + gkDaIndex + = 4; + +186 cڡ  + gkThisIndex + = 5; + +187 cڡ  + gkArgsLgth + = 6; + +189 + give +: + +190 +NAN_DISALLOW_ASSIGN_COPY_MOVE +( +PrݔtyClbackInfoBa +) + +193 + gme +< +tyme + + gT +> + +194 +ass + + gPrݔtyClbackInfo + : +public + +PrݔtyClbackInfoBa +< +T +> { + +195 +RuVue +< +T +> +tu_vue_ +; + +196 + gv8 +:: +Psit +< +T +> +tv_ +; + +198 + gpublic +: + +199 +exic + +le + +PrݔtyClbackInfo +( + +200 cڡ +v8 +:: +AcssInfo + & +fo + + +201 , cڡ +v8 +:: +Lol + +da +) : + +202 +PrݔtyClbackInfoBa +< +T +>( +fo +, + gda +) + +203 , +tu_vue_ +( +fo +. +GIsީe +(), & +tv_ +) + +204 , +tv_ +( +v8 +:: +Psit +< +T +>:: +New +(v8:: +Undefed +())) {} + +206 +le + ~ +PrݔtyClbackInfo +() { + +207 +tv_ +. +Dio +(); + +208 + gtv_ +. +Cˬ +(); + +211 +le + + gRuVue +< + gT +> +GRuVue +(cڡ {  + gtu_vue_ +; } + +214 + gme +<> + +215 +ass + + gPrݔtyClbackInfo +< + gv8 +:: +Aay +> : + +216 +public + +PrݔtyClbackInfoBa +< +v8 +:: +Aay +> { + +217 +RuVue +< +v8 +:: +Aay +> +tu_vue_ +; + +218 + gv8 +:: +Psit +< +v8 +:: +Aay +> +tv_ +; + +220 + gpublic +: + +221 +exic + +le + +PrݔtyClbackInfo +( + +222 cڡ +v8 +:: +AcssInfo + & +fo + + +223 , cڡ +v8 +:: +Lol + +da +) : + +224 +PrݔtyClbackInfoBa +< +v8 +:: +Aay +>( +fo +, + gda +) + +225 , +tu_vue_ +( +fo +. +GIsީe +(), & +tv_ +) + +226 , +tv_ +( +v8 +:: +Psit +:: +New +(v8:: +Lol +())) {} + +228 +le + ~ +PrݔtyClbackInfo +() { + +229 +tv_ +. +Dio +(); + +230 + gtv_ +. +Cˬ +(); + +233 +le + + gRuVue +< + gv8 +:: +Aay +> +GRuVue +() const { + +234  +tu_vue_ +; + +238 + gme +<> + +239 +ass + + gPrݔtyClbackInfo +< + gv8 +:: +Boޗn +> : + +240 +public + +PrݔtyClbackInfoBa +< +v8 +:: +Boޗn +> { + +241 +RuVue +< +v8 +:: +Boޗn +> +tu_vue_ +; + +242 + gv8 +:: +Psit +< +v8 +:: +Boޗn +> +tv_ +; + +244 + gpublic +: + +245 +exic + +le + +PrݔtyClbackInfo +( + +246 cڡ +v8 +:: +AcssInfo + & +fo + + +247 , cڡ +v8 +:: +Lol + +da +) : + +248 +PrݔtyClbackInfoBa +< +v8 +:: +Boޗn +>( +fo +, + gda +) + +249 , +tu_vue_ +( +fo +. +GIsީe +(), & +tv_ +) + +250 , +tv_ +( +v8 +:: +Psit +:: +New +(v8:: +Lol +())) {} + +252 +le + ~ +PrݔtyClbackInfo +() { + +253 +tv_ +. +Dio +(); + +254 + gtv_ +. +Cˬ +(); + +257 +le + + gRuVue +< + gv8 +:: +Boޗn +> +GRuVue +() const { + +258  +tu_vue_ +; + +262 + gme +<> + +263 +ass + + gPrݔtyClbackInfo +< + gv8 +:: +Ieg +> : + +264 +public + +PrݔtyClbackInfoBa +< +v8 +:: +Ieg +> { + +265 +RuVue +< +v8 +:: +Ieg +> +tu_vue_ +; + +266 + gv8 +:: +Psit +< +v8 +:: +Ieg +> +tv_ +; + +268 + gpublic +: + +269 +exic + +le + +PrݔtyClbackInfo +( + +270 cڡ +v8 +:: +AcssInfo + & +fo + + +271 , cڡ +v8 +:: +Lol + +da +) : + +272 +PrݔtyClbackInfoBa +< +v8 +:: +Ieg +>( +fo +, + gda +) + +273 , +tu_vue_ +( +fo +. +GIsީe +(), & +tv_ +) + +274 , +tv_ +( +v8 +:: +Psit +:: +New +(v8:: +Lol +())) {} + +276 +le + ~ +PrݔtyClbackInfo +() { + +277 +tv_ +. +Dio +(); + +278 + gtv_ +. +Cˬ +(); + +281 +le + + gRuVue +< + gv8 +:: +Ieg +> +GRuVue +() const { + +282  +tu_vue_ +; + +286 +mea + + gimp + { + +287 + gme +< +tyme + + gT +> + +288 +ass + + gRuVueImp + : +public + +RuVue +< +T +> { + +289 +public +: + +290 +exic + +RuVueImp +( +RuVue +< +T +> +th +) : + +291 +RuVue +< +T +>( +th +) {} + +292 +le + +v8 +:: +Hd +< +T +> +Vue +() { + +293  * +RuVue +< +T +>:: +vue_ +; + +298 + gv8 +:: +Hd +< +v8 +:: +Vue +> +FuniClbackW +(cڡ v8:: +Argumts + & +gs +) { + +299 +v8 +:: +Lol + +obj + = +gs +. +Da +(). +As +(); + +300 +FuniClback + + gback + = +t_ +( + +301 +t_ +< +_t +>( + +302 +obj +-> +GIlFld +( +kFuniIndex +). +As +< +v8 +:: +Ex +>()-> +Vue +())); + +303 + gFuniClbackInfo +< + gv8 +:: +Vue +> + +304 +cbfo +( +gs +, +obj +-> +GIlFld +( +kDaIndex +)); + +305 +back +( +cbfo +); + +306  + gRuVueImp +< + gv8 +:: +Vue +>( +cbfo +. +GRuVue +()).Value(); + +309  + gv8 +:: + tHd +< + tv8 +:: + tVue +> (* + tNiveFuni +)(cڡ v8:: + tArgumts + &); + +312 + gv8 +:: +Hd +< +v8 +:: +Vue +> +GrClbackW +( + +313 +v8 +:: +Lol + +ݔty +, cڡ v8:: +AcssInfo + & +fo +) { + +314 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +315 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +316 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +317 +GrClback + + gback + = +t_ +( + +318 +t_ +< +_t +>( + +319 +obj +-> +GIlFld +( +kGrIndex +). +As +< +v8 +:: +Ex +>()-> +Vue +())); + +320 +back +( +ݔty +, +cbfo +); + +321  + gRuVueImp +< + gv8 +:: +Vue +>( +cbfo +. +GRuVue +()).Value(); + +324  + gv8 +:: + tHd +< + tv8 +:: + tVue +> (* + tNiveGr +) + +325 ( + tv8 +:: + tLol +, cڡ v8:: + tAcssInfo + &); + +328  +SrClbackW +( + +329 +v8 +:: +Lol + +ݔty + + +330 , +v8 +:: +Lol + +vue + + +331 , cڡ +v8 +:: +AcssInfo + & +fo +) { + +332 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +333 + gPrݔtyClbackInfo +<> + +334 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +335 +SrClback + + gback + = +t_ +( + +336 +t_ +< +_t +>( + +337 +obj +-> +GIlFld +( +kSrIndex +). +As +< +v8 +:: +Ex +>()-> +Vue +())); + +338 +back +( +ݔty +, +vue +, +cbfo +); + +341 (* + gNiveSr +) + +342 ( + tv8 +:: + tLol +, v8::Lol, cڡ v8:: + tAcssInfo + &); + +345 + gv8 +:: +Hd +< +v8 +:: +Vue +> +PrݔtyGrClbackW +( + +346 +v8 +:: +Lol + +ݔty +, cڡ v8:: +AcssInfo + & +fo +) { + +347 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +348 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +349 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +350 +PrݔtyGrClback + + gback + = +t_ +( + +351 +t_ +< +_t +>( + +352 +obj +-> +GIlFld +( +kPrݔtyGrIndex +) + +353 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +354 +back +( +ݔty +, +cbfo +); + +355  + gRuVueImp +< + gv8 +:: +Vue +>( +cbfo +. +GRuVue +()).Value(); + +358  + gv8 +:: + tHd +< + tv8 +:: + tVue +> (* + tNivePrݔtyGr +) + +359 ( + tv8 +:: + tLol +, cڡ v8:: + tAcssInfo + &); + +362 + gv8 +:: +Hd +< +v8 +:: +Vue +> +PrݔtySrClbackW +( + +363 +v8 +:: +Lol + +ݔty + + +364 , +v8 +:: +Lol + +vue + + +365 , cڡ +v8 +:: +AcssInfo + & +fo +) { + +366 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +367 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +368 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +369 +PrݔtySrClback + + gback + = +t_ +( + +370 +t_ +< +_t +>( + +371 +obj +-> +GIlFld +( +kPrݔtySrIndex +) + +372 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +373 +back +( +ݔty +, +vue +, +cbfo +); + +374  + gRuVueImp +< + gv8 +:: +Vue +>( +cbfo +. +GRuVue +()).Value(); + +377  + gv8 +:: + tHd +< + tv8 +:: + tVue +> (* + tNivePrݔtySr +) + +378 ( + tv8 +:: + tLol +, v8::Lol, cڡ v8:: + tAcssInfo + &); + +381 + gv8 +:: +Hd +< +v8 +:: +Aay +> +PrݔtyEnumClbackW +( + +382 cڡ +v8 +:: +AcssInfo + & +fo +) { + +383 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +384 + gPrݔtyClbackInfo +< + gv8 +:: +Aay +> + +385 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +386 +PrݔtyEnumClback + + gback + = + +387 +t_ +< +PrݔtyEnumClback +>et_< +_t +>( + +388 +obj +-> +GIlFld +( +kPrݔtyEnumIndex +) + +389 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +390 +back +( +cbfo +); + +391  + gRuVueImp +< + gv8 +:: +Aay +>( +cbfo +. +GRuVue +()). +Vue +(); + +394  + gv8 +:: + tHd +< + tv8 +:: + tAay +> (* + tNivePrݔtyEnum +) + +395 (cڡ + tv8 +:: + tAcssInfo + &); + +398 + gv8 +:: +Hd +< +v8 +:: +Boޗn +> +PrݔtyDClbackW +( + +399 +v8 +:: +Lol + +ݔty + + +400 , cڡ +v8 +:: +AcssInfo + & +fo +) { + +401 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +402 + gPrݔtyClbackInfo +< + gv8 +:: +Boޗn +> + +403 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +404 +PrݔtyDClback + + gback + = +t_ +( + +405 +t_ +< +_t +>( + +406 +obj +-> +GIlFld +( +kPrݔtyDIndex +) + +407 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +408 +back +( +ݔty +, +cbfo +); + +409  + gRuVueImp +< + gv8 +:: +Boޗn +>( +cbfo +. +GRuVue +()). +Vue +(); + +412  + gv8 +:: + tHd +< + tv8 +:: + tBoޗn +> ( + tNivePrݔtyD +) + +413 ( + tv8 +:: + tLol +, cڡ v8:: + tAcssInfo + &); + +416 + gv8 +:: +Hd +< +v8 +:: +Ieg +> +PrݔtyQuyClbackW +( + +417 +v8 +:: +Lol + +ݔty +, cڡ v8:: +AcssInfo + & +fo +) { + +418 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +419 + gPrݔtyClbackInfo +< + gv8 +:: +Ieg +> + +420 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +421 +PrݔtyQuyClback + + gback + = +t_ +( + +422 +t_ +< +_t +>( + +423 +obj +-> +GIlFld +( +kPrݔtyQuyIndex +) + +424 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +425 +back +( +ݔty +, +cbfo +); + +426  + gRuVueImp +< + gv8 +:: +Ieg +>( +cbfo +. +GRuVue +()). +Vue +(); + +429  + gv8 +:: + tHd +< + tv8 +:: + tIeg +> (* + tNivePrݔtyQuy +) + +430 ( + tv8 +:: + tLol +, cڡ v8:: + tAcssInfo + &); + +433 + gv8 +:: +Hd +< +v8 +:: +Vue +> +IndexGrClbackW +( + +434 +ut32_t + +dex +, cڡ +v8 +:: +AcssInfo + & +fo +) { + +435 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +436 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +437 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +438 +IndexGrClback + + gback + = +t_ +( + +439 +t_ +< +_t +>( + +440 +obj +-> +GIlFld +( +kIndexPrݔtyGrIndex +) + +441 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +442 +back +( +dex +, +cbfo +); + +443  + gRuVueImp +< + gv8 +:: +Vue +>( +cbfo +. +GRuVue +()).Value(); + +446  + gv8 +:: + tHd +< + tv8 +:: + tVue +> (* + tNiveIndexGr +) + +447 ( + tut32_t +, cڡ + tv8 +:: + tAcssInfo + &); + +450 + gv8 +:: +Hd +< +v8 +:: +Vue +> +IndexSrClbackW +( + +451 +ut32_t + +dex + + +452 , +v8 +:: +Lol + +vue + + +453 , cڡ +v8 +:: +AcssInfo + & +fo +) { + +454 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +455 + gPrݔtyClbackInfo +< + gv8 +:: +Vue +> + +456 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +457 +IndexSrClback + + gback + = +t_ +( + +458 +t_ +< +_t +>( + +459 +obj +-> +GIlFld +( +kIndexPrݔtySrIndex +) + +460 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +461 +back +( +dex +, +vue +, +cbfo +); + +462  + gRuVueImp +< + gv8 +:: +Vue +>( +cbfo +. +GRuVue +()).Value(); + +465  + gv8 +:: + tHd +< + tv8 +:: + tVue +> (* + tNiveIndexSr +) + +466 ( + tut32_t +, + tv8 +:: + tLol +, cڡ v8:: + tAcssInfo + &); + +469 + gv8 +:: +Hd +< +v8 +:: +Aay +> +IndexEnumClbackW +( + +470 cڡ +v8 +:: +AcssInfo + & +fo +) { + +471 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +472 + gPrݔtyClbackInfo +< + gv8 +:: +Aay +> + +473 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +474 +IndexEnumClback + + gback + = +t_ +( + +475 +t_ +< +_t +>( + +476 +obj +-> +GIlFld +( +kIndexPrݔtyEnumIndex +) + +477 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +478 +back +( +cbfo +); + +479  + gRuVueImp +< + gv8 +:: +Aay +>( +cbfo +. +GRuVue +()). +Vue +(); + +482  + gv8 +:: + tHd +< + tv8 +:: + tAay +> (* + tNiveIndexEnum +) + +483 (cڡ + tv8 +:: + tAcssInfo + &); + +486 + gv8 +:: +Hd +< +v8 +:: +Boޗn +> +IndexDClbackW +( + +487 +ut32_t + +dex +, cڡ +v8 +:: +AcssInfo + & +fo +) { + +488 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +489 + gPrݔtyClbackInfo +< + gv8 +:: +Boޗn +> + +490 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +491 +IndexDClback + + gback + = +t_ +( + +492 +t_ +< +_t +>( + +493 +obj +-> +GIlFld +( +kIndexPrݔtyDIndex +) + +494 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +495 +back +( +dex +, +cbfo +); + +496  + gRuVueImp +< + gv8 +:: +Boޗn +>( +cbfo +. +GRuVue +()). +Vue +(); + +499  + gv8 +:: + tHd +< + tv8 +:: + tBoޗn +> (* + tNiveIndexD +) + +500 ( + tut32_t +, cڡ + tv8 +:: + tAcssInfo + &); + +503 + gv8 +:: +Hd +< +v8 +:: +Ieg +> +IndexQuyClbackW +( + +504 +ut32_t + +dex +, cڡ +v8 +:: +AcssInfo + & +fo +) { + +505 +v8 +:: +Lol + +obj + = +fo +. +Da +(). +As +(); + +506 + gPrݔtyClbackInfo +< + gv8 +:: +Ieg +> + +507 +cbfo +( +fo +, +obj +-> +GIlFld +( +kDaIndex +)); + +508 +IndexQuyClback + + gback + = +t_ +( + +509 +t_ +< +_t +>( + +510 +obj +-> +GIlFld +( +kIndexPrݔtyQuyIndex +) + +511 . +As +< +v8 +:: +Ex +>()-> +Vue +())); + +512 +back +( +dex +, +cbfo +); + +513  + gRuVueImp +< + gv8 +:: +Ieg +>( +cbfo +. +GRuVue +()). +Vue +(); + +516  + gv8 +:: + tHd +< + tv8 +:: + tIeg +> (* + tNiveIndexQuy +) + +517 ( + tut32_t +, cڡ + tv8 +:: + tAcssInfo + &); + + @interface/node_modules/nan/nan_converters.h + +9 #ide +NAN_CONVERTERS_H_ + + +10  + #NAN_CONVERTERS_H_ + + + ) + +12 +mea + + gimp + { + +13 + gme +< +tyme + + gT +>  + sToFayBa + { + +14  + gMaybeLol +< + tT +> + ttu_t +; + +16 + gme +< +tyme + + gT +>  + sVueFayBa + {  + gMaybe +< + tT +> + ttu_t +; }; + +18 + gme +< +tyme + + gT +>  + gToFay +; + +20 + gme +<> + +21  + gToFay +< + gv8 +:: +Funi +> : +ToFayBa +< +v8 +::Function> { + +22  +le + +tu_t + +cvt +( +v8 +:: +Lol + +v +) { + +23 i( +v +. +IsEmy +(|| !v-> +IsFuni +() +MaybeLol +< +v8 +:: +Funi +>(); + +24  + gMaybeLol +< + gv8 +:: +Funi +>( +v +. +As +< +v8 +::Function>()); + +28  + #X +( +TYPE +) \ + +29 +me +<> \ + +30  +ToFay +< +v8 +:: +TYPE +> : +ToFayBa + { \ + +31  +le + +tu_t + + `cvt +( +v8 +:: +Lol + +v +); \ + +32 }; + + ) + +34 +X +( +Boޗn +) + +35 +X +( +Numb +) + +36 +X +( +Sg +) + +37 +X +( +Obje +) + +38 +X +( +Ieg +) + +39 +X +( +Ut32 +) + +40 +X +( +I32 +) + +42 #unde +X + + +44  + #X +( +TYPE +) \ + +45 +me +<> \ + +46  +ToFay +< +TYPE +> : +VueFayBa + { \ + +47  +le + +tu_t + + `cvt +( +v8 +:: +Lol + +v +); \ + +48 }; + + ) + +50 +X +( +bo +) + +51 +X +() + +52 +X +( +t64_t +) + +53 +X +( +ut32_t +) + +54 +X +( +t32_t +) + +56 #unde +X + + +59 + gme +< +tyme + + gT +> + +60 +le + + +61 +tyme + + gimp +:: +ToFay +< +T +>:: +tu_t + +To +( +v8 +:: +Lol + +v +) { + +62  +imp +:: +ToFay +< +T +>:: +cvt +( +v +); + +65 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +66 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +67  + ~"n_cvrs_43_l.h +" + +69  + ~"n_cvrs_e_43_l.h +" + + @interface/node_modules/nan/nan_converters_43_inl.h + +9 #ide +NAN_CONVERTERS_43_INL_H_ + + +10  + #NAN_CONVERTERS_43_INL_H_ + + + ) + +12  + #X +( +TYPE +) \ + +13 +imp +:: +ToFay +< +v8 +:: +TYPE +>:: +tu_t + \ + +14 +imp +:: +ToFay +< +v8 +:: +TYPE +>:: + `cvt +(v8:: +Lol + +v +) { \ + +15 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); \ + +16 +v8 +:: +EsbHdSce + + `sce +( +isީe +); \ + +17  +sce +. + `Es +( \ + +18 +v +-> +To + ## + `TYPE +( +isީe +-> + `GCutCڋxt +()) \ + +19 . + `FromMaybe +( +v8 +:: +Lol +())); \ + +20 } + + ) + +22 + $X +( +Numb +) + +23 + $X +( +Sg +) + +24 + $X +( +Obje +) + +25 + $X +( +Ieg +) + +26 + $X +( +Ut32 +) + +27 + $X +( +I32 +) + +29 #i +V8_MAJOR_VERSION + < 7 || (V8_MAJOR_VERSION =7 && +V8_MINOR_VERSION + == 0) + +30 + $X +( +Boޗn +) + +32 +imp +:: +ToFay +< +v8 +:: +Boޗn +>:: +tu_t + \ + +33 +imp +:: +ToFay +< +v8 +:: +Boޗn +>:: + `cvt +(v8:: +Lol + +v +) { \ + +34 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); \ + +35 +v8 +:: +EsbHdSce + + `sce +( +isީe +); \ + +36  +sce +. + `Es +( +v +-> + `ToBoޗn +( +isީe +)); \ + +37 + } +} + +40 #unde +X + + +42  + #X +( +TYPE +, +NAME +) \ + +43 +imp +:: +ToFay +< +TYPE +>:: +tu_t + \ + +44 +imp +:: +ToFay +< +TYPE +>:: + `cvt +( +v8 +:: +Lol + +v +) { \ + +45 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); \ + +46 +v8 +:: +HdSce + + `sce +( +isީe +); \ + +47  +v +-> +NAME + ## + `Vue +( +isީe +-> + `GCutCڋxt +()); \ + +48 } + + ) + +50 + $X +(, +Numb +) + +51 + $X +( +t64_t +, +Ieg +) + +52 + $X +( +ut32_t +, +Ut32 +) + +53 + $X +( +t32_t +, +I32 +) + +55 #i +V8_MAJOR_VERSION + < 7 || (V8_MAJOR_VERSION =7 && +V8_MINOR_VERSION + == 0) + +56 + $X +( +bo +, +Boޗn +) + +58 +imp +:: +ToFay +< +bo +>:: +tu_t + \ + +59 +imp +:: +ToFay +< +bo +>:: + `cvt +( +v8 +:: +Lol + +v +) { \ + +60 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: + `GCut +(); \ + +61 +v8 +:: +HdSce + + `sce +( +isީe +); \ + +62  +Ju +< +bo +>( +v +-> + `BoޗnVue +( +isީe +)); \ + +63 + } +} + +66 #unde +X + + + @interface/node_modules/nan/nan_converters_pre_43_inl.h + +9 #ide +NAN_CONVERTERS_PRE_43_INL_H_ + + +10  + #NAN_CONVERTERS_PRE_43_INL_H_ + + + ) + +12  + #X +( +TYPE +) \ + +13 +imp +:: +ToFay +< +v8 +:: +TYPE +>:: +tu_t + \ + +14 +imp +:: +ToFay +< +v8 +:: +TYPE +>:: + `cvt +(v8:: +Lol + +v +) { \ + +15  +v +-> +To + ## + `TYPE +(); \ + +16 } + + ) + +18 + $X +( +Boޗn +) + +19 + $X +( +Numb +) + +20 + $X +( +Sg +) + +21 + $X +( +Obje +) + +22 + $X +( +Ieg +) + +23 + $X +( +Ut32 +) + +24 + $X +( +I32 +) + +26 #unde +X + + +28  + #X +( +TYPE +, +NAME +) \ + +29 +imp +:: +ToFay +< +TYPE +>:: +tu_t + \ + +30 +imp +:: +ToFay +< +TYPE +>:: + `cvt +( +v8 +:: +Lol + +v +) { \ + +31  + `Ju +( +v +-> +NAME + ## + `Vue +()); \ + +32 + } + + ) +} + +34 + $X +( +bo +, +Boޗn +) + +35 + $X +(, +Numb +) + +36 + $X +( +t64_t +, +Ieg +) + +37 + $X +( +ut32_t +, +Ut32 +) + +38 + $X +( +t32_t +, +I32 +) + +40 #unde +X + + + @interface/node_modules/nan/nan_define_own_property_helper.h + +9 #ide +NAN_DEFINE_OWN_PROPERTY_HELPER_H_ + + +10  + #NAN_DEFINE_OWN_PROPERTY_HELPER_H_ + + + ) + +12 +mea + + gimp + { + +14 +le + + gMaybe +< + gbo +> +DefeOwnPrݔtyHr +( + +15 +v8 +:: +PrݔtyAribu + +cut + + +16 , +v8 +:: +Hd + +obj + + +17 , +v8 +:: +Hd + +key + + +18 , +v8 +:: +Hd + +vue + + +19 , +v8 +:: +PrݔtyAribu + +ibs + = v8:: +Ne +) { + +20  !( +cut + & +v8 +:: +DtDe +) || + +21 (!( +cut + & +v8 +:: +RdOy +) && + +22 !(( +ibs + ^ +cut +& ~ +v8 +:: +RdOy +)) + +23 ? +Ju +< +bo +>( +obj +-> +FS +( +key +, +vue +, +ibs +)) + +24 : +Nhg +< +bo +>(); + + @interface/node_modules/nan/nan_implementation_12_inl.h + +9 #ide +NAN_IMPLEMENTATION_12_INL_H_ + + +10  + #NAN_IMPLEMENTATION_12_INL_H_ + + + ) + +15 +mea + + gimp + { + +19 + gFay +< + gv8 +:: +Aay +>:: +tu_t + + +20 +Fay +< +v8 +:: +Aay +>:: +New +() { + +21  +v8 +:: +Aay +:: +New +(v8:: +Isީe +:: +GCut +()); + +24 + gFay +< + gv8 +:: +Aay +>:: +tu_t + + +25 +Fay +< +v8 +:: +Aay +>:: +New +( +ngth +) { + +26  +v8 +:: +Aay +:: +New +(v8:: +Isީe +:: +GCut +(), +ngth +); + +31 + gFay +< + gv8 +:: +Boޗn +>:: +tu_t + + +32 +Fay +< +v8 +:: +Boޗn +>:: +New +( +bo + +vue +) { + +33  +v8 +:: +Boޗn +:: +New +(v8:: +Isީe +:: +GCut +(), +vue +); + +38 + gFay +< + gv8 +:: +BoޗnObje +>:: +tu_t + + +39 +Fay +< +v8 +:: +BoޗnObje +>:: +New +( +bo + +vue +) { + +40 #i( +NODE_MODULE_VERSION + > +NODE_6_0_MODULE_VERSION +) + +41  +v8 +:: +BoޗnObje +:: +New +( + +42 +v8 +:: +Isީe +:: +GCut +(), +vue +). + gAs +< + gv8 +:: +BoޗnObje +>(); + +44  + gv8 +:: +BoޗnObje +:: +New +( +vue +). +As +< +v8 +::BooleanObject>(); + +50 + gFay +< + gv8 +:: +Cڋxt +>:: +tu_t + + +51 +Fay +< +v8 +:: +Cڋxt +>:: +New +v8:: +ExnsiCfiguti +* +exnsis + + +52 , +v8 +:: +Lol + +tm + + +53 , +v8 +:: +Lol + +obj +) { + +54  +v8 +:: +Cڋxt +:: +New +(v8:: +Isީe +:: +GCut +(), +exnsis +, +tm +, +obj +); + +59 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +60 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +61 +Fay +< +v8 +:: +De +>:: +tu_t + + +62 +Fay +< +v8 +:: +De +>:: +New +( +vue +) { + +63 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +64 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +65  + gsce +. +Es +( +v8 +:: +De +:: +New +( +isީe +-> +GCutCڋxt +(), +vue +) + +66 . +FromMaybe +( +v8 +:: +Lol +()). +As +()); + +69 + gFay +< + gv8 +:: +De +>:: +tu_t + + +70 +Fay +< +v8 +:: +De +>:: +New +( +vue +) { + +71  +v8 +:: +De +:: +New +(v8:: +Isީe +:: +GCut +(), +vue +). + gAs +< + gv8 +::Date>(); + +77 + gFay +< + gv8 +:: +Ex +>:: +tu_t + + +78 +Fay +< +v8 +:: +Ex +>:: +New +(* +vue +) { + +79  +v8 +:: +Ex +:: +New +(v8:: +Isީe +:: +GCut +(), +vue +); + +84 + gFay +< + gv8 +:: +Funi +>:: +tu_t + + +85 +Fay +< +v8 +:: +Funi +>:: +New + +FuniClback + +back + + +86 , +v8 +:: +Lol + +da +) { + +87 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +88 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +89 + gv8 +:: +Lol +< +v8 +:: +ObjeTeme +> +l + = v8::ObjeTeme:: +New +( +isީe +); + +90 + gl +-> +SIlFldCou +( +imp +:: +kFuniFldCou +); + +91 + gv8 +:: +Lol +< +v8 +:: +Obje +> +obj + = +NewIn +( +l +). +ToLolChecked +(); + +93 + gobj +-> +SIlFld +( + +94 +imp +:: +kFuniIndex + + +95 , +v8 +:: +Ex +:: +New +( +isީe +, +t_ +<*>( +back +))); + +97 + gv8 +:: +Lol +< +v8 +:: +Vue +> +v + = v8::Lol:: +New +( +isީe +, +da +); + +99 i(! + gv +. +IsEmy +()) { + +100 + gobj +-> +SIlFld +( +imp +:: +kDaIndex +, +v +); + +103 #i +NODE_MAJOR_VERSION + >= 10 + +104 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +cڋxt + = +isީe +-> +GCutCڋxt +(); + +105 + gv8 +:: +Lol +< +v8 +:: +Funi +> +funi + = + +106 +v8 +:: +Funi +:: +New +( +cڋxt +, +imp +:: +FuniClbackW +, +obj +) + +107 . +ToLolChecked +(); + +109 + gv8 +:: +Lol +< +v8 +:: +Funi +> +funi + = + +110 +v8 +:: +Funi +:: +New +( +isީe +, +imp +:: +FuniClbackW +, +obj +); + +113  + gsce +. +Es +( +funi +); + +118 + gFay +< + gv8 +:: +FuniTeme +>:: +tu_t + + +119 +Fay +< +v8 +:: +FuniTeme +>:: +New + +FuniClback + +back + + +120 , +v8 +:: +Lol + +da + + +121 , +v8 +:: +Lol + +sigtu +) { + +122 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +123 i( + gback +) { + +124 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +125 + gv8 +:: +Lol +< +v8 +:: +ObjeTeme +> +l + = v8::ObjeTeme:: +New +( +isީe +); + +126 + gl +-> +SIlFldCou +( +imp +:: +kFuniFldCou +); + +127 + gv8 +:: +Lol +< +v8 +:: +Obje +> +obj + = +NewIn +( +l +). +ToLolChecked +(); + +129 + gobj +-> +SIlFld +( + +130 +imp +:: +kFuniIndex + + +131 , +v8 +:: +Ex +:: +New +( +isީe +, +t_ +<*>( +back +))); + +132 + gv8 +:: +Lol +< +v8 +:: +Vue +> +v + = v8::Lol:: +New +( +isީe +, +da +); + +134 i(! + gv +. +IsEmy +()) { + +135 + gobj +-> +SIlFld +( +imp +:: +kDaIndex +, +v +); + +138  + gsce +. +Es +( +v8 +:: +FuniTeme +:: +New + +isީe + + +139 , +imp +:: +FuniClbackW + + +140 , +obj + + +141 , +sigtu +)); + +143  + gv8 +:: +FuniTeme +:: +New +( +isީe +, 0, +da +, +sigtu +); + +149 + gFay +< + gv8 +:: +Numb +>:: +tu_t + + +150 +Fay +< +v8 +:: +Numb +>:: +New +( +vue +) { + +151  +v8 +:: +Numb +:: +New +(v8:: +Isީe +:: +GCut +(), +vue +); + +156 + gFay +< + gv8 +:: +NumbObje +>:: +tu_t + + +157 +Fay +< +v8 +:: +NumbObje +>:: +New +( +vue +) { + +158  +v8 +:: +NumbObje +:: +New +v8:: +Isީe +:: +GCut +() + +159 , +vue +). + gAs +< + gv8 +:: +NumbObje +>(); + +164 + gme + < +tyme + + gT +> + +165 +tyme + + gIegFay +< + gT +>:: +tu_t + + +166 +IegFay +< +T +>:: +New +( +t32_t + +vue +) { + +167  +To +< +T +>(T:: +New +( +v8 +:: +Isީe +:: +GCut +(), +vue +)); + +170 + gme + < +tyme + + gT +> + +171 +tyme + + gIegFay +< + gT +>:: +tu_t + + +172 +IegFay +< +T +>:: +New +( +ut32_t + +vue +) { + +173  +To +< +T +>(T:: +NewFromUnsigd +( +v8 +:: +Isީe +:: +GCut +(), +vue +)); + +176 + gFay +< + gv8 +:: +Ut32 +>:: +tu_t + + +177 +Fay +< +v8 +:: +Ut32 +>:: +New +( +t32_t + +vue +) { + +178  +To +< +v8 +:: +Ut32 +>( + +179 +v8 +:: +Ut32 +:: +NewFromUnsigd +(v8:: +Isީe +:: +GCut +(), +vue +)); + +182 + gFay +< + gv8 +:: +Ut32 +>:: +tu_t + + +183 +Fay +< +v8 +:: +Ut32 +>:: +New +( +ut32_t + +vue +) { + +184  +To +< +v8 +:: +Ut32 +>( + +185 +v8 +:: +Ut32 +:: +NewFromUnsigd +(v8:: +Isީe +:: +GCut +(), +vue +)); + +190 + gFay +< + gv8 +:: +Obje +>:: +tu_t + + +191 +Fay +< +v8 +:: +Obje +>:: +New +() { + +192  +v8 +:: +Obje +:: +New +(v8:: +Isީe +:: +GCut +()); + +197 + gFay +< + gv8 +:: +ObjeTeme +>:: +tu_t + + +198 +Fay +< +v8 +:: +ObjeTeme +>:: +New +() { + +199  +v8 +:: +ObjeTeme +:: +New +(v8:: +Isީe +:: +GCut +()); + +204 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +205 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +206 +Fay +< +v8 +:: +RegExp +>:: +tu_t + + +207 +Fay +< +v8 +:: +RegExp +>:: +New +( + +208 +v8 +:: +Lol + +n + + +209 , +v8 +:: +RegExp +:: +Fgs + +ags +) { + +210 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +211 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +212  + gsce +. +Es +( + +213 +v8 +:: +RegExp +:: +New +( +isީe +-> +GCutCڋxt +(), +n +, +ags +) + +214 . +FromMaybe +( +v8 +:: +Lol +())); + +217 + gFay +< + gv8 +:: +RegExp +>:: +tu_t + + +218 +Fay +< +v8 +:: +RegExp +>:: +New +( + +219 +v8 +:: +Lol + +n + + +220 , +v8 +:: +RegExp +:: +Fgs + +ags +) { + +221  +v8 +:: +RegExp +:: +New +( +n +, +ags +); + +227 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +228 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +229 +Fay +< +v8 +:: +St +>:: +tu_t + + +230 +Fay +< +v8 +:: +St +>:: +New +v8:: +Lol + +sour +) { + +231 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +232 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +233 + gv8 +:: +StComp +:: +Sour + +c +( +sour +); + +234  + gsce +. +Es +( + +235 +v8 +:: +StComp +:: +Compe +( +isީe +-> +GCutCڋxt +(), & +c +) + +236 . +FromMaybe +( +v8 +:: +Lol +())); + +239 + gFay +< + gv8 +:: +St +>:: +tu_t + + +240 +Fay +< +v8 +:: +St +>:: +New +v8:: +Lol + +sour + + +241 , +v8 +:: +StOrig + cڡ& +ig +) { + +242 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +243 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +244 + gv8 +:: +StComp +:: +Sour + +c +( +sour +, +ig +); + +245  + gsce +. +Es +( + +246 +v8 +:: +StComp +:: +Compe +( +isީe +-> +GCutCڋxt +(), & +c +) + +247 . +FromMaybe +( +v8 +:: +Lol +())); + +250 + gFay +< + gv8 +:: +St +>:: +tu_t + + +251 +Fay +< +v8 +:: +St +>:: +New +v8:: +Lol + +sour +) { + +252 +v8 +:: +StComp +:: +Sour + +c +( +sour +); + +253  + gv8 +:: +StComp +:: +Compe +( +v8 +:: +Isީe +:: +GCut +(), & +c +); + +256 + gFay +< + gv8 +:: +St +>:: +tu_t + + +257 +Fay +< +v8 +:: +St +>:: +New +v8:: +Lol + +sour + + +258 , +v8 +:: +StOrig + cڡ& +ig +) { + +259 +v8 +:: +StComp +:: +Sour + +c +( +sour +, +ig +); + +260  + gv8 +:: +StComp +:: +Compe +( +v8 +:: +Isީe +:: +GCut +(), & +c +); + +266 + gFay +< + gv8 +:: +Sigtu +>:: +tu_t + + +267 +Fay +< +v8 +:: +Sigtu +>:: +New +(Fay:: +FTH + +iv +) { + +268  +v8 +:: +Sigtu +:: +New +(v8:: +Isީe +:: +GCut +(), +iv +); + +273 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +274 +Fay +< +v8 +:: +Sg +>:: +New +() { + +275  +v8 +:: +Sg +:: +Emy +(v8:: +Isީe +:: +GCut +()); + +278 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +279 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +280 +Fay +< +v8 +:: +Sg +>:: +tu_t + + +281 +Fay +< +v8 +:: +Sg +>:: +New +(cڡ * +vue +,  +ngth +) { + +282  + gv8 +:: +Sg +:: +NewFromUtf8 +( + +283 +v8 +:: +Isީe +:: +GCut +(), +vue +, v8:: +NewSgTy +:: +kNm +, +ngth +); + +286 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +287 +Fay +< +v8 +:: +Sg +>:: +New +( +d +:: +rg + cڡ& +vue +) { + +288 +as +( +vue +. +size +(< +INT_MAX + && "stringooong"); + +289  + gv8 +:: +Sg +:: +NewFromUtf8 +( +v8 +:: +Isީe +:: +GCut +(), + +290 +vue +. +da +(), +v8 +:: +NewSgTy +:: +kNm +, +ic_ +<>(vue. +size +())); + +293 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +294 +Fay +< +v8 +:: +Sg +>:: +New +(cڡ +ut16_t + * +vue +,  +ngth +) { + +295  + gv8 +:: +Sg +:: +NewFromTwoBy +( +v8 +:: +Isީe +:: +GCut +(), +vue +, + +296 +v8 +:: +NewSgTy +:: +kNm +, +ngth +); + +299 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +300 +Fay +< +v8 +:: +Sg +>:: +New +(v8::Sg:: +ExSgResour + * +vue +) { + +301  +v8 +:: +Sg +:: +NewExTwoBy +(v8:: +Isީe +:: +GCut +(), +vue +); + +304 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +305 +Fay +< +v8 +:: +Sg +>:: +New +( +ExOBySgResour + * +vue +) { + +306  +v8 +:: +Sg +:: +NewExOBy +(v8:: +Isީe +:: +GCut +(), +vue +); + +309 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +310 +Fay +< +v8 +:: +Sg +>:: +New +(cڡ * +vue +,  +ngth +) { + +311  + gv8 +:: +Sg +:: +NewFromUtf8 +( +v8 +:: +Isީe +:: +GCut +(), +vue +, + +312 +v8 +:: +Sg +:: +kNmSg +, +ngth +); + +315 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +316 +Fay +< +v8 +:: +Sg +>:: +New +( + +317 +d +:: +rg + cڡ& +vue +) { + +318 +as +( +vue +. +size +(< +INT_MAX + && "stringooong"); + +319  + gv8 +:: +Sg +:: +NewFromUtf8 +( +v8 +:: +Isީe +:: +GCut +(), +vue +. +da +(), + +320 +v8 +:: +Sg +:: +kNmSg +, + +321 +ic_ +<>( +vue +. +size +())); + +324 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +325 +Fay +< +v8 +:: +Sg +>:: +New +(cڡ +ut16_t + * +vue +,  +ngth +) { + +326  + gv8 +:: +Sg +:: +NewFromTwoBy +( +v8 +:: +Isީe +:: +GCut +(), +vue +, + +327 +v8 +:: +Sg +:: +kNmSg +, +ngth +); + +330 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +331 +Fay +< +v8 +:: +Sg +>:: +New +(v8::Sg:: +ExSgResour + * +vue +) { + +332  +v8 +:: +Sg +:: +NewEx +(v8:: +Isީe +:: +GCut +(), +vue +); + +335 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +336 +Fay +< +v8 +:: +Sg +>:: +New +( +ExOBySgResour + * +vue +) { + +337  +v8 +:: +Sg +:: +NewEx +(v8:: +Isީe +:: +GCut +(), +vue +); + +346 + gFay +< + gv8 +:: +SgObje +>:: +tu_t + + +347 +Fay +< +v8 +:: +SgObje +>:: +New +(v8:: +Lol + +vue +) { + +349 #i +V8_MAJOR_VERSION + > 7 || (V8_MAJOR_VERSION =7 && +V8_MINOR_VERSION + > 0) + +350  +v8 +:: +SgObje +:: +New +(v8:: +Isީe +:: +GCut +(), +vue +) + +351 . + gAs +< + gv8 +:: +SgObje +>(); + +353 #ifde +_MSC_VER + + +354 #agm +wng +( +push +) + +355 #agm +wng +( +dib + : 4996) + +357 #ifde +__GNUC__ + + +358 #agm +GCC + +dgnoic + +push + + +359 #agm +GCC + +dgnoic + +igned + "-Wdeprecated-declarations" + +361  + gv8 +:: +SgObje +:: +New +( +vue +). +As +< +v8 +::StringObject>(); + +362 #ifde +__GNUC__ + + +363 #agm +GCC + +dgnoic + +p + + +365 #ifde +_MSC_VER + + +366 #agm +wng +( +p +) + +373 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +374 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +375 +Fay +< +v8 +:: +UnboundSt +>:: +tu_t + + +376 +Fay +< +v8 +:: +UnboundSt +>:: +New +(v8:: +Lol + +sour +) { + +377 +v8 +:: +StComp +:: +Sour + +c +( +sour +); + +378  + gv8 +:: +StComp +:: +CompeUnboundSt +( + +379 +v8 +:: +Isީe +:: +GCut +(), & +c +); + +382 + gFay +< + gv8 +:: +UnboundSt +>:: +tu_t + + +383 +Fay +< +v8 +:: +UnboundSt +>:: +New +v8:: +Lol + +sour + + +384 , +v8 +:: +StOrig + cڡ& +ig +) { + +385 +v8 +:: +StComp +:: +Sour + +c +( +sour +, +ig +); + +386  + gv8 +:: +StComp +:: +CompeUnboundSt +( + +387 +v8 +:: +Isީe +:: +GCut +(), & +c +); + +390 + gFay +< + gv8 +:: +UnboundSt +>:: +tu_t + + +391 +Fay +< +v8 +:: +UnboundSt +>:: +New +(v8:: +Lol + +sour +) { + +392 +v8 +:: +StComp +:: +Sour + +c +( +sour +); + +393  + gv8 +:: +StComp +:: +CompeUnbound +( +v8 +:: +Isީe +:: +GCut +(), & +c +); + +396 + gFay +< + gv8 +:: +UnboundSt +>:: +tu_t + + +397 +Fay +< +v8 +:: +UnboundSt +>:: +New +v8:: +Lol + +sour + + +398 , +v8 +:: +StOrig + cڡ& +ig +) { + +399 +v8 +:: +StComp +:: +Sour + +c +( +sour +, +ig +); + +400  + gv8 +:: +StComp +:: +CompeUnbound +( +v8 +:: +Isީe +:: +GCut +(), & +c +); + +408 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +409 + gme + < +tyme + + gT +> + +410 +le + + gv8 +:: +Lol +< +T +> +New +( +v8 +:: +Hd + +h +) { + +411  +v8 +:: +Lol +< +T +>:: +New +(v8:: +Isީe +:: +GCut +(), +h +); + +415 + gme + < +tyme + + gT +,ym + gM +> + +416 +le + + gv8 +:: +Lol +< +T +> +New +( +v8 +:: +Psit + cڡ& +p +) { + +417  + gv8 +:: +Lol +< +T +>:: +New +( +v8 +:: +Isީe +:: +GCut +(), +p +); + +420 + gme + < +tyme + + gT +,ym + gM +> + +421 +le + + gv8 +:: +Lol +< +T +> +New +( +Psit + cڡ& +p +) { + +422  + gv8 +:: +Lol +< +T +>:: +New +( +v8 +:: +Isީe +:: +GCut +(), +p +); + +425 + gme + < +tyme + + gT +> + +426 +le + + gv8 +:: +Lol +< +T +> +New +( +Glob + cڡ& +p +) { + +427  +v8 +:: +Lol +< +T +>:: +New +(v8:: +Isީe +:: +GCut +(), +p +); + + @interface/node_modules/nan/nan_implementation_pre_12_inl.h + +9 #ide +NAN_IMPLEMENTATION_PRE_12_INL_H_ + + +10  + #NAN_IMPLEMENTATION_PRE_12_INL_H_ + + + ) + +16 +mea + + gimp + { + +20 + gFay +< + gv8 +:: +Aay +>:: +tu_t + + +21 +Fay +< +v8 +:: +Aay +>:: +New +() { + +22  +v8 +:: +Aay +:: +New +(); + +25 + gFay +< + gv8 +:: +Aay +>:: +tu_t + + +26 +Fay +< +v8 +:: +Aay +>:: +New +( +ngth +) { + +27  +v8 +:: +Aay +:: +New +( +ngth +); + +32 + gFay +< + gv8 +:: +Boޗn +>:: +tu_t + + +33 +Fay +< +v8 +:: +Boޗn +>:: +New +( +bo + +vue +) { + +34  +v8 +:: +Boޗn +:: +New +( +vue +)-> +ToBoޗn +(); + +39 + gFay +< + gv8 +:: +BoޗnObje +>:: +tu_t + + +40 +Fay +< +v8 +:: +BoޗnObje +>:: +New +( +bo + +vue +) { + +41  +v8 +:: +BoޗnObje +:: +New +( +vue +). +As +(); + +46 + gFay +< + gv8 +:: +Cڋxt +>:: +tu_t + + +47 +Fay +< +v8 +:: +Cڋxt +>:: +New +v8:: +ExnsiCfiguti +* +exnsis + + +48 , +v8 +:: +Lol + +tm + + +49 , +v8 +:: +Lol + +obj +) { + +50 +v8 +:: +Psit + +x + = v8::Cڋxt:: +New +( +exnsis +, +tm +, +obj +); + +51 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +lx + = v8::Lol:: +New +( +x +); + +52 + gx +. +Dio +(); + +53  + glx +; + +58 + gFay +< + gv8 +:: +De +>:: +tu_t + + +59 +Fay +< +v8 +:: +De +>:: +New +( +vue +) { + +60  +v8 +:: +De +:: +New +( +vue +). +As +(); + +65 + gFay +< + gv8 +:: +Ex +>:: +tu_t + + +66 +Fay +< +v8 +:: +Ex +>:: +New +(* +vue +) { + +67  +v8 +:: +Ex +:: +New +( +vue +); + +72 + gFay +< + gv8 +:: +Funi +>:: +tu_t + + +73 +Fay +< +v8 +:: +Funi +>:: +New + +FuniClback + +back + + +74 , +v8 +:: +Lol + +da +) { + +75 +v8 +:: +HdSce + +sce +; + +77  + gsce +. +Clo +( +Fay +< +v8 +:: +FuniTeme +>:: +New +( + +78 +back +, +da +, +v8 +:: +Lol +()) + +79 -> +GFuni +()); + +85 + gFay +< + gv8 +:: +FuniTeme +>:: +tu_t + + +86 +Fay +< +v8 +:: +FuniTeme +>:: +New + +FuniClback + +back + + +87 , +v8 +:: +Lol + +da + + +88 , +v8 +:: +Lol + +sigtu +) { + +89 i( +back +) { + +90 +v8 +:: +HdSce + +sce +; + +92 + gv8 +:: +Lol +< +v8 +:: +ObjeTeme +> +l + = v8::ObjeTeme:: +New +(); + +93 + gl +-> +SIlFldCou +( +imp +:: +kFuniFldCou +); + +94 + gv8 +:: +Lol +< +v8 +:: +Obje +> +obj + = +l +-> +NewIn +(); + +96 + gobj +-> +SIlFld +( + +97 +imp +:: +kFuniIndex + + +98 , +v8 +:: +Ex +:: +New +( +t_ +<*>( +back +))); + +100 + gv8 +:: +Lol +< +v8 +:: +Vue +> +v + = v8::Lol:: +New +( +da +); + +102 i(! + gv +. +IsEmy +()) { + +103 + gobj +-> +SIlFld +( +imp +:: +kDaIndex +, +v +); + +108  + gsce +. +Clo +( + +109 +v8 +:: +FuniTeme +:: +New +( +imp +:: +FuniClbackW + + +110 , +obj + + +111 , +sigtu +)); + +113  + gv8 +:: +FuniTeme +:: +New +(0, +da +, +sigtu +); + +119 + gFay +< + gv8 +:: +Numb +>:: +tu_t + + +120 +Fay +< +v8 +:: +Numb +>:: +New +( +vue +) { + +121  +v8 +:: +Numb +:: +New +( +vue +); + +126 + gFay +< + gv8 +:: +NumbObje +>:: +tu_t + + +127 +Fay +< +v8 +:: +NumbObje +>:: +New +( +vue +) { + +128  +v8 +:: +NumbObje +:: +New +( +vue +). +As +(); + +133 + gme + < +tyme + + gT +> + +134 +tyme + + gIegFay +< + gT +>:: +tu_t + + +135 +IegFay +< +T +>:: +New +( +t32_t + +vue +) { + +136  +To +< +T +>(T:: +New +( +vue +)); + +139 + gme + < +tyme + + gT +> + +140 +tyme + + gIegFay +< + gT +>:: +tu_t + + +141 +IegFay +< +T +>:: +New +( +ut32_t + +vue +) { + +142  +To +< +T +>(T:: +NewFromUnsigd +( +vue +)); + +145 + gFay +< + gv8 +:: +Ut32 +>:: +tu_t + + +146 +Fay +< +v8 +:: +Ut32 +>:: +New +( +t32_t + +vue +) { + +147  +To +< +v8 +:: +Ut32 +>(v8::Ut32:: +NewFromUnsigd +( +vue +)); + +150 + gFay +< + gv8 +:: +Ut32 +>:: +tu_t + + +151 +Fay +< +v8 +:: +Ut32 +>:: +New +( +ut32_t + +vue +) { + +152  +To +< +v8 +:: +Ut32 +>(v8::Ut32:: +NewFromUnsigd +( +vue +)); + +158 + gFay +< + gv8 +:: +Obje +>:: +tu_t + + +159 +Fay +< +v8 +:: +Obje +>:: +New +() { + +160  +v8 +:: +Obje +:: +New +(); + +165 + gFay +< + gv8 +:: +ObjeTeme +>:: +tu_t + + +166 +Fay +< +v8 +:: +ObjeTeme +>:: +New +() { + +167  +v8 +:: +ObjeTeme +:: +New +(); + +172 + gFay +< + gv8 +:: +RegExp +>:: +tu_t + + +173 +Fay +< +v8 +:: +RegExp +>:: +New +( + +174 +v8 +:: +Lol + +n + + +175 , +v8 +:: +RegExp +:: +Fgs + +ags +) { + +176  +v8 +:: +RegExp +:: +New +( +n +, +ags +); + +181 + gFay +< + gv8 +:: +St +>:: +tu_t + + +182 +Fay +< +v8 +:: +St +>:: +New +v8:: +Lol + +sour +) { + +183  +v8 +:: +St +:: +New +( +sour +); + +185 + gFay +< + gv8 +:: +St +>:: +tu_t + + +186 +Fay +< +v8 +:: +St +>:: +New +v8:: +Lol + +sour + + +187 , +v8 +:: +StOrig + cڡ& +ig +) { + +188  +v8 +:: +St +:: +New +( +sour +, +cڡ_ +(& +ig +)); + +193 + gFay +< + gv8 +:: +Sigtu +>:: +tu_t + + +194 +Fay +< +v8 +:: +Sigtu +>:: +New +(Fay:: +FTH + +iv +) { + +195  +v8 +:: +Sigtu +:: +New +( +iv +); + +200 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +201 +Fay +< +v8 +:: +Sg +>:: +New +() { + +202  +v8 +:: +Sg +:: +Emy +(); + +205 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +206 +Fay +< +v8 +:: +Sg +>:: +New +(cڡ * +vue +,  +ngth +) { + +207  + gv8 +:: +Sg +:: +New +( +vue +, +ngth +); + +210 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +211 +Fay +< +v8 +:: +Sg +>:: +New +( + +212 +d +:: +rg + cڡ& +vue +) { + +213 +as +( +vue +. +size +(< +INT_MAX + && "stringooong"); + +214  + gv8 +:: +Sg +:: +New +( +vue +. +da +(), +ic_ +<>(vue. +size +())); + +217 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +218 +Fay +< +v8 +:: +Sg +>:: +New +(cڡ +ut16_t + * +vue +,  +ngth +) { + +219  + gv8 +:: +Sg +:: +New +( +vue +, +ngth +); + +222 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +223 +Fay +< +v8 +:: +Sg +>:: +New +(v8::Sg:: +ExSgResour + * +vue +) { + +224  +v8 +:: +Sg +:: +NewEx +( +vue +); + +227 + gFay +< + gv8 +:: +Sg +>:: +tu_t + + +228 +Fay +< +v8 +:: +Sg +>:: +New +(v8::Sg:: +ExAsciiSgResour + * +vue +) { + +229  +v8 +:: +Sg +:: +NewEx +( +vue +); + +234 + gFay +< + gv8 +:: +SgObje +>:: +tu_t + + +235 +Fay +< +v8 +:: +SgObje +>:: +New +(v8:: +Lol + +vue +) { + +236  +v8 +:: +SgObje +:: +New +( +vue +). +As +(); + +243 + gme + < +tyme + + gT +> + +244 +le + + gv8 +:: +Lol +< +T +> +New +( +v8 +:: +Hd + +h +) { + +245  +v8 +:: +Lol +< +T +>:: +New +( +h +); + +248 + gme + < +tyme + + gT +> + +249 +le + + gv8 +:: +Lol +< +T +> +New +( +v8 +:: +Psit + cڡ& +p +) { + +250  +v8 +:: +Lol +< +T +>:: +New +( +p +); + +253 + gme + < +tyme + + gT +,ym + gM +> + +254 +le + + gv8 +:: +Lol +< +T +> +New +( +Psit + cڡ& +p +) { + +255  + gv8 +:: +Lol +< +T +>:: +New +( +p +. +rsit +); + +258 + gme + < +tyme + + gT +> + +259 +le + + gv8 +:: +Lol +< +T +> +New +( +Glob + cڡ& +p +) { + +260  +v8 +:: +Lol +< +T +>:: +New +( +p +. +rsit +); + + @interface/node_modules/nan/nan_json.h + +9 #ide +NAN_JSON_H_ + + +10  + #NAN_JSON_H_ + + + ) + +12 #i +NODE_MODULE_VERSION + < +NODE_0_12_MODULE_VERSION + + +13  + #NAN_JSON_H_NEED_PARSE + 1 + + ) + +15  + #NAN_JSON_H_NEED_PARSE + 0 + + ) + +18 #i +NODE_MODULE_VERSION + > +NODE_7_0_MODULE_VERSION + + +19  + #NAN_JSON_H_NEED_STRINGIFY + 0 + + ) + +21  + #NAN_JSON_H_NEED_STRINGIFY + 1 + + ) + +24 as + cJSON + { + +25 + mpublic +: + +26 + $JSON +() { + +27 #i +NAN_JSON_H_NEED_PARSE + + +NAN_JSON_H_NEED_STRINGIFY + + +28 +N +:: +HdSce + +sce +; + +30 +N +:: +MaybeLol +< +v8 +:: +Vue +> +maybe_glob_js + = N:: + `G +( + +31 +N +:: + `GCutCڋxt +()-> + `Glob +(), + +32 +N +:: + `New +("JSON"). + `ToLolChecked +() + +35 + `as +(! +maybe_glob_js +. + `IsEmy +() && "global JSON ismpty"); + +36 +v8 +:: +Lol + +v_glob_js + = +maybe_glob_js +. + `ToLolChecked +(); + +38 + `as +( +v_glob_js +-> + `IsObje +() && "global JSON isotn object"); + +39 +N +:: +MaybeLol +< +v8 +:: +Obje +> +maybe_obj_glob_js + = + +40 +N +:: +To +< +v8 +:: +Obje +>( +v_glob_js +); + +42 + `as +(! +maybe_obj_glob_js +. + `IsEmy +() && "global JSON object ismpty"); + +43 +v8 +:: +Lol + +glob_js + = +maybe_obj_glob_js +. + `ToLolChecked +(); + +45 #i +NAN_JSON_H_NEED_PARSE + + +46 +N +:: +MaybeLol +< +v8 +:: +Vue +> +maybe_r_mhod + = N:: + `G +( + +47 +glob_js +, +N +:: + `New +("r"). + `ToLolChecked +() + +50 + `as +(! +maybe_r_mhod +. + `IsEmy +() && "JSON.parse ismpty"); + +51 +v8 +:: +Lol + +r_mhod + = +maybe_r_mhod +. + `ToLolChecked +(); + +53 + `as +( +r_mhod +-> + `IsFuni +() && "JSON.parse isot function"); + +54 +r_cb_ +. + `Ret +( +r_mhod +. +As +< +v8 +:: +Funi +>()); + +57 #i +NAN_JSON_H_NEED_STRINGIFY + + +58 +N +:: +MaybeLol +< +v8 +:: +Vue +> +maybe_rgify_mhod + = N:: + `G +( + +59 +glob_js +, +N +:: + `New +("rgify"). + `ToLolChecked +() + +62 + `as +(! +maybe_rgify_mhod +. + `IsEmy +() && "JSON.stringify ismpty"); + +63 +v8 +:: +Lol + +rgify_mhod + = + +64 +maybe_rgify_mhod +. + `ToLolChecked +(); + +66 + `as +( + +67 +rgify_mhod +-> + `IsFuni +() && "JSON.stringify isot function" + +69 +rgify_cb_ +. + `Ret +( +rgify_mhod +. +As +< +v8 +:: +Funi +>()); + +74 +le + + +75 +N +:: +MaybeLol +< +v8 +:: +Vue +> + `P +(v8:: +Lol + +js_rg +) { + +76 +N +:: +EsbHdSce + +sce +; + +77 #i +NAN_JSON_H_NEED_PARSE + + +78  +sce +. + `Es +( + `r +( +js_rg +)); + +80 +N +:: +MaybeLol +< +v8 +:: +Vue +> +su +; + +81 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + && \ + +82 +NODE_MODULE_VERSION + < +IOJS_2_0_MODULE_VERSION + + +83 +su + = +v8 +:: +JSON +:: + `P +( +js_rg +); + +85 #i +NODE_MODULE_VERSION + > +NODE_6_0_MODULE_VERSION + + +86 +v8 +:: +Lol + +cڋxt__isީe + = +N +:: + `GCutCڋxt +(); + +88 +v8 +:: +Isީe +* +cڋxt__isީe + = v8::Isީe:: + `GCut +(); + +90 +su + = +v8 +:: +JSON +:: + `P +( +cڋxt__isީe +, +js_rg +); + +93 i( +su +. + `IsEmy +() +v8 +:: +Lol +(); + +94  +sce +. + `Es +( +su +. + `ToLolChecked +()); + +96 + } +} + +98 +le + + +99 + gN +:: +MaybeLol +< +v8 +:: +Sg +> +Sgify +(v8:: +Lol + +js_obje +) { + +100 +N +:: +EsbHdSce + +sce +; + +101 + gN +:: +MaybeLol +< +v8 +:: +Sg +> +su + = + +102 #i +NAN_JSON_H_NEED_STRINGIFY + + +103 +N +:: +To +< +v8 +:: +Sg +>( +rgify +( +js_obje +)); + +105 + gv8 +:: +JSON +:: +Sgify +( +N +:: +GCutCڋxt +(), +js_obje +); + +107 i( + gsu +. +IsEmy +() + gv8 +:: +Lol +< +v8 +:: +Sg +>(); + +108  + gsce +. +Es +( +su +. +ToLolChecked +()); + +111 +le + + +112 + gN +:: +MaybeLol +< +v8 +:: +Sg +> +Sgify +(v8:: +Lol + +js_obje +, + +113 +v8 +:: +Lol + +g +) { + +114 +N +:: +EsbHdSce + +sce +; + +115 + gN +:: +MaybeLol +< +v8 +:: +Sg +> +su + = + +116 #i +NAN_JSON_H_NEED_STRINGIFY + + +117 +N +:: +To +< +v8 +:: +Sg +>( +rgify +( +js_obje +, +g +)); + +119 + gv8 +:: +JSON +:: +Sgify +( +N +:: +GCutCڋxt +(), +js_obje +, +g +); + +121 i( + gsu +. +IsEmy +() + gv8 +:: +Lol +< +v8 +:: +Sg +>(); + +122  + gsce +. +Es +( +su +. +ToLolChecked +()); + +125 + give +: + +126 + $NAN_DISALLOW_ASSIGN_COPY_MOVE +( +JSON +) + +127 #i +NAN_JSON_H_NEED_PARSE + + +128 +N +:: +Clback + +r_cb_ +; + +130 #i +NAN_JSON_H_NEED_STRINGIFY + + +131 +N +:: +Clback + +rgify_cb_ +; + +134 #i +NAN_JSON_H_NEED_PARSE + + +135 +le + +v8 +:: +Lol + + `r +(v8::Lol +g +) { + +136 + `as +(! +r_cb_ +. + `IsEmy +() && "parse_cb_ ismpty"); + +137 +AsyncResour + + `sour +("nan:JSON.parse"); + +138  +r_cb_ +. + `Cl +(1, & +g +, & +sour +). + `FromMaybe +( +v8 +:: +Lol +()); + +139 + } +} + +142 #i +NAN_JSON_H_NEED_STRINGIFY + + +143 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +rgify +(v8::Lol +g +) { + +144 +as +(! +rgify_cb_ +. +IsEmy +() && "stringify_cb_ ismpty"); + +145 +AsyncResour + +sour +("nan:JSON.stringify"); + +146  + grgify_cb_ +. +Cl +(1, & +g +, & +sour +) + +147 . +FromMaybe +( +v8 +:: +Lol +()); + +150 +le + + gv8 +:: +Lol +< +v8 +:: +Vue +> +rgify +(v8::Lol +g +, + +151 +v8 +:: +Lol + +g +) { + +152 +as +(! +rgify_cb_ +. +IsEmy +() && "stringify_cb_ ismpty"); + +154 + gv8 +:: +Lol +< +v8 +:: +Vue +> +gv +[] = { + +155 +g +, + +156 +N +:: +Nu +(), + +157 +g + + +159 +AsyncResour + +sour +("nan:JSON.stringify"); + +160  + grgify_cb_ +. +Cl +(3, +gv +, & +sour +) + +161 . +FromMaybe +( +v8 +:: +Lol +()); + + @interface/node_modules/nan/nan_maybe_43_inl.h + +9 #ide +NAN_MAYBE_43_INL_H_ + + +10  + #NAN_MAYBE_43_INL_H_ + + + ) + +12 + gme +< +tyme + + gT +> + +13 +usg + + gMaybeLol + = +v8 +:: +MaybeLol +< +T +>; + +15 +le + + +16 + gMaybeLol +< + gv8 +:: +Sg +> +ToDaSg +( +v8 +:: +Lol + +v +) { + +17 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +18 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +19  + gsce +. +Es +( +v +-> +ToDaSg +( +isީe +-> +GCutCڋxt +()) + +20 . +FromMaybe +( +v8 +:: +Lol +())); + +23 +le + + +24 + gMaybeLol +< + gv8 +:: +Ut32 +> +ToAayIndex +( +v8 +:: +Lol + +v +) { + +25 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +26 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +27  + gsce +. +Es +( +v +-> +ToAayIndex +( +isީe +-> +GCutCڋxt +()) + +28 . +FromMaybe +( +v8 +:: +Lol +())); + +31 +le + + +32 + gMaybe +< + gbo +> +Equs +( +v8 +:: +Lol + +a +, v8::Lol( +b +)) { + +33 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +34 + gv8 +:: +HdSce + +sce +( +isީe +); + +35  + ga +-> +Equs +( +isީe +-> +GCutCڋxt +(), +b +); + +38 +le + + +39 + gMaybeLol +< + gv8 +:: +Obje +> +NewIn +( +v8 +:: +Lol + +h +) { + +40 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +41 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +42  + gsce +. +Es +( +h +-> +NewIn +( +isީe +-> +GCutCڋxt +()) + +43 . +FromMaybe +( +v8 +:: +Lol +())); + +46 +le + + +47 + gMaybeLol +< + gv8 +:: +Obje +> +NewIn +( + +48 +v8 +:: +Lol + +h + + +49 ,  +gc + + +50 , +v8 +:: +Lol + +gv +[]) { + +51 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +52 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +53  + gsce +. +Es +( +h +-> +NewIn +( +isީe +-> +GCutCڋxt +(), +gc +, +gv +) + +54 . +FromMaybe +( +v8 +:: +Lol +())); + +57 +le + + +58 + gMaybeLol +< + gv8 +:: +Obje +> +NewIn +( +v8 +:: +Lol + +h +) { + +59 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +60 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +61  + gsce +. +Es +( +h +-> +NewIn +( +isީe +-> +GCutCڋxt +()) + +62 . +FromMaybe +( +v8 +:: +Lol +())); + +66 +le + + gMaybeLol +< + gv8 +:: +Funi +> +GFuni +( + +67 +v8 +:: +Lol + +t +) { + +68 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +69 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +70  + gsce +. +Es +( +t +-> +GFuni +( +isީe +-> +GCutCڋxt +()) + +71 . +FromMaybe +( +v8 +:: +Lol +())); + +74 +le + + gMaybe +< + gbo +> +S +( + +75 +v8 +:: +Lol + +obj + + +76 , +v8 +:: +Lol + +key + + +77 , +v8 +:: +Lol + +vue +) { + +78 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +79 + gv8 +:: +HdSce + +sce +( +isީe +); + +80  + gobj +-> +S +( +isީe +-> +GCutCڋxt +(), +key +, +vue +); + +83 +le + + gMaybe +< + gbo +> +S +( + +84 +v8 +:: +Lol + +obj + + +85 , +ut32_t + +dex + + +86 , +v8 +:: +Lol + +vue +) { + +87 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +88 + gv8 +:: +HdSce + +sce +( +isީe +); + +89  + gobj +-> +S +( +isީe +-> +GCutCڋxt +(), +dex +, +vue +); + +92 #i +NODE_MODULE_VERSION + < +NODE_4_0_MODULE_VERSION + + +93  + ~"n_defe_own_ݔty_hr.h +" + +96 +le + + gMaybe +< + gbo +> +DefeOwnPrݔty +( + +97 +v8 +:: +Lol + +obj + + +98 , +v8 +:: +Lol + +key + + +99 , +v8 +:: +Lol + +vue + + +100 , +v8 +:: +PrݔtyAribu + +ibs + = v8:: +Ne +) { + +101 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +102 + gv8 +:: +HdSce + +sce +( +isީe +); + +103 #i +NODE_MODULE_VERSION + > +NODE_4_0_MODULE_VERSION + + +104  + gobj +-> +DefeOwnPrݔty +( +isީe +-> +GCutCڋxt +(), +key +, +vue +, + +105 +ibs +); + +107 + gMaybe +< + gv8 +:: +PrݔtyAribu +> +maybeCut + = + +108 +obj +-> +GPrݔtyAribus +( +isީe +-> +GCutCڋxt +(), +key +); + +109 i( + gmaybeCut +. +IsNhg +()) { + +110  + gNhg +< + gbo +>(); + +112 + gv8 +:: +PrݔtyAribu + +cut + = +maybeCut +. +FromJu +(); + +113  + gimp +:: +DefeOwnPrݔtyHr +( +cut +, +obj +, +key +, +vue +, +ibs +); + +117 +NAN_DEPRECATED + +le + + gMaybe +< + gbo +> +FS +( + +118 +v8 +:: +Lol + +obj + + +119 , +v8 +:: +Lol + +key + + +120 , +v8 +:: +Lol + +vue + + +121 , +v8 +:: +PrݔtyAribu + +ibs + = v8:: +Ne +) { + +122 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +123 + gv8 +:: +HdSce + +sce +( +isީe +); + +124 #i +NODE_MODULE_VERSION + > +NODE_9_0_MODULE_VERSION + + +125  + gkey +-> +IsName +() + +126 ? + gobj +-> +DefeOwnPrݔty +( +isީe +-> +GCutCڋxt +(), + +127 +key +. +As +< +v8 +:: +Name +>(), +vue +, +ibs +) + +128 : +Nhg +< +bo +>(); + +130  + gobj +-> +FS +( +isީe +-> +GCutCڋxt +(), +key +, +vue +, +ibs +); + +134 +le + + gMaybeLol +< + gv8 +:: +Vue +> +G +( + +135 +v8 +:: +Lol + +obj + + +136 , +v8 +:: +Lol + +key +) { + +137 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +138 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +139  + gsce +. +Es +( +obj +-> +G +( +isީe +-> +GCutCڋxt +(), +key +) + +140 . +FromMaybe +( +v8 +:: +Lol +())); + +143 +le + + +144 + gMaybeLol +< + gv8 +:: +Vue +> +G +( +v8 +:: +Lol + +obj +, +ut32_t + +dex +) { + +145 + gv8 +:: +Isީe + * +isީe + = +v8 +::Isީe:: +GCut +(); + +146 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +147  + gsce +. +Es +( +obj +-> +G +( +isީe +-> +GCutCڋxt +(), +dex +) + +148 . +FromMaybe +( +v8 +:: +Lol +())); + +151 +le + + gv8 +:: +PrݔtyAribu + +GPrݔtyAribus +( + +152 +v8 +:: +Lol + +obj + + +153 , +v8 +:: +Lol + +key +) { + +154 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +155 + gv8 +:: +HdSce + +sce +( +isީe +); + +156  + gobj +-> +GPrݔtyAribus +( +isީe +-> +GCutCڋxt +(), +key +) + +157 . +FromJu +(); + +160 +le + + gMaybe +< + gbo +> +Has +( + +161 +v8 +:: +Lol + +obj + + +162 , +v8 +:: +Lol + +key +) { + +163 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +164 + gv8 +:: +HdSce + +sce +( +isީe +); + +165  + gobj +-> +Has +( +isީe +-> +GCutCڋxt +(), +key +); + +168 +le + + gMaybe +< + gbo +> +Has +( +v8 +:: +Lol + +obj +, +ut32_t + +dex +) { + +169 + gv8 +:: +Isީe + * +isީe + = +v8 +::Isީe:: +GCut +(); + +170 + gv8 +:: +HdSce + +sce +( +isީe +); + +171  + gobj +-> +Has +( +isީe +-> +GCutCڋxt +(), +dex +); + +174 +le + + gMaybe +< + gbo +> +De +( + +175 +v8 +:: +Lol + +obj + + +176 , +v8 +:: +Lol + +key +) { + +177 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +178 + gv8 +:: +HdSce + +sce +( +isީe +); + +179  + gobj +-> +De +( +isީe +-> +GCutCڋxt +(), +key +); + +182 +le + + +183 + gMaybe +< + gbo +> +De +( +v8 +:: +Lol + +obj +, +ut32_t + +dex +) { + +184 + gv8 +:: +Isީe + * +isީe + = +v8 +::Isީe:: +GCut +(); + +185 + gv8 +:: +HdSce + +sce +( +isީe +); + +186  + gobj +-> +De +( +isީe +-> +GCutCڋxt +(), +dex +); + +189 +le + + +190 + gMaybeLol +< + gv8 +:: +Aay +> +GPrݔtyNames +( +v8 +:: +Lol + +obj +) { + +191 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +192 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +193  + gsce +. +Es +( +obj +-> +GPrݔtyNames +( +isީe +-> +GCutCڋxt +()) + +194 . +FromMaybe +( +v8 +:: +Lol +())); + +197 +le + + +198 + gMaybeLol +< + gv8 +:: +Aay +> +GOwnPrݔtyNames +( +v8 +:: +Lol + +obj +) { + +199 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +200 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +201  + gsce +. +Es +( +obj +-> +GOwnPrݔtyNames +( +isީe +-> +GCutCڋxt +()) + +202 . +FromMaybe +( +v8 +:: +Lol +())); + +205 +le + + gMaybe +< + gbo +> +SPry +( + +206 +v8 +:: +Lol + +obj + + +207 , +v8 +:: +Lol + +y +) { + +208 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +209 + gv8 +:: +HdSce + +sce +( +isީe +); + +210  + gobj +-> +SPry +( +isީe +-> +GCutCڋxt +(), +y +); + +213 +le + + gMaybeLol +< + gv8 +:: +Sg +> +ObjeProToSg +( + +214 +v8 +:: +Lol + +obj +) { + +215 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +216 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +217  + gsce +. +Es +( +obj +-> +ObjeProToSg +( +isީe +-> +GCutCڋxt +()) + +218 . +FromMaybe +( +v8 +:: +Lol +())); + +221 +le + + gMaybe +< + gbo +> +HasOwnPrݔty +( + +222 +v8 +:: +Lol + +obj + + +223 , +v8 +:: +Lol + +key +) { + +224 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +225 + gv8 +:: +HdSce + +sce +( +isީe +); + +226  + gobj +-> +HasOwnPrݔty +( +isީe +-> +GCutCڋxt +(), +key +); + +229 +le + + gMaybe +< + gbo +> +HasRlNamedPrݔty +( + +230 +v8 +:: +Lol + +obj + + +231 , +v8 +:: +Lol + +key +) { + +232 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +233 + gv8 +:: +HdSce + +sce +( +isީe +); + +234  + gobj +-> +HasRlNamedPrݔty +( +isީe +-> +GCutCڋxt +(), +key +); + +237 +le + + gMaybe +< + gbo +> +HasRlIndexedPrݔty +( + +238 +v8 +:: +Lol + +obj + + +239 , +ut32_t + +dex +) { + +240 + gv8 +:: +Isީe + * +isީe + = +v8 +::Isީe:: +GCut +(); + +241 + gv8 +:: +HdSce + +sce +( +isީe +); + +242  + gobj +-> +HasRlIndexedPrݔty +( +isީe +-> +GCutCڋxt +(), +dex +); + +245 +le + + gMaybe +< + gbo +> +HasRlNamedClbackPrݔty +( + +246 +v8 +:: +Lol + +obj + + +247 , +v8 +:: +Lol + +key +) { + +248 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +249 + gv8 +:: +HdSce + +sce +( +isީe +); + +250  + gobj +-> +HasRlNamedClbackPrݔty +( +isީe +-> +GCutCڋxt +(), +key +); + +253 +le + + gMaybeLol +< + gv8 +:: +Vue +> +GRlNamedPrݔtyInPryCha +( + +254 +v8 +:: +Lol + +obj + + +255 , +v8 +:: +Lol + +key +) { + +256 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +257 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +258  + gsce +. +Es +( +obj +-> +GRlNamedPrݔtyInPryCha +( + +259 +isީe +-> +GCutCڋxt +(), +key +) + +260 . +FromMaybe +( +v8 +:: +Lol +())); + +263 +le + + gMaybeLol +< + gv8 +:: +Vue +> +GRlNamedPrݔty +( + +264 +v8 +:: +Lol + +obj + + +265 , +v8 +:: +Lol + +key +) { + +266 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +267 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +268  + gsce +. +Es +( + +269 +obj +-> +GRlNamedPrݔty +( +isީe +-> +GCutCڋxt +(), +key +) + +270 . +FromMaybe +( +v8 +:: +Lol +())); + +273 +le + + gMaybeLol +< + gv8 +:: +Vue +> +ClAsFuni +( + +274 +v8 +:: +Lol + +obj + + +275 , +v8 +:: +Lol + +cv + + +276 ,  +gc + + +277 , +v8 +:: +Lol + +gv +[]) { + +278 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +279 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +280  + gsce +. +Es +( + +281 +obj +-> +ClAsFuni +( +isީe +-> +GCutCڋxt +(), +cv +, +gc +, +gv +) + +282 . +FromMaybe +( +v8 +:: +Lol +())); + +285 +le + + gMaybeLol +< + gv8 +:: +Vue +> +ClAsCڡru +( + +286 +v8 +:: +Lol + +obj + + +287 ,  +gc +, +v8 +:: +Lol + +gv +[]) { + +288 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +289 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +290  + gsce +. +Es +( + +291 +obj +-> +ClAsCڡru +( +isީe +-> +GCutCڋxt +(), +gc +, +gv +) + +292 . +FromMaybe +( +v8 +:: +Lol +())); + +295 +le + + +296 + gMaybeLol +< + gv8 +:: +Sg +> +GSourLe +( +v8 +:: +Lol + +msg +) { + +297 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +298 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +299  + gsce +. +Es +( +msg +-> +GSourLe +( +isީe +-> +GCutCڋxt +()) + +300 . +FromMaybe +( +v8 +:: +Lol +())); + +303 +le + + gMaybe +<> +GLeNumb +( +v8 +:: +Lol + +msg +) { + +304 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +305 + gv8 +:: +HdSce + +sce +( +isީe +); + +306  + gmsg +-> +GLeNumb +( +isީe +-> +GCutCڋxt +()); + +309 +le + + gMaybe +<> +GSCumn +( +v8 +:: +Lol + +msg +) { + +310 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +311 + gv8 +:: +HdSce + +sce +( +isީe +); + +312  + gmsg +-> +GSCumn +( +isީe +-> +GCutCڋxt +()); + +315 +le + + gMaybe +<> +GEndCumn +( +v8 +:: +Lol + +msg +) { + +316 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +317 + gv8 +:: +HdSce + +sce +( +isީe +); + +318  + gmsg +-> +GEndCumn +( +isީe +-> +GCutCڋxt +()); + +321 +le + + gMaybeLol +< + gv8 +:: +Obje +> +CleEmtAt +( + +322 +v8 +:: +Lol + +y + + +323 , +ut32_t + +dex +) { + +324 #i( +NODE_MODULE_VERSION + > +NODE_6_0_MODULE_VERSION +) + +325 + gv8 +:: +Isީe + * +isީe + = +v8 +::Isީe:: +GCut +(); + +326 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +327 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +cڋxt + = +isީe +-> +GCutCڋxt +(); + +328 + gv8 +:: +Lol +< +v8 +:: +Vue +> +em +; + +329 + gv8 +:: +Lol +< +v8 +:: +Obje +> +obj +; + +330 i(! + gy +-> +G +( +cڋxt +, +dex +). +ToLol +(& +em +)) { + +331  + gsce +. +Es +( +obj +); + +333 i(! + gem +-> +ToObje +( +cڋxt +). +ToLol +(& +obj +)) { + +334  + gsce +. +Es +( +v8 +:: +Lol +()); + +336  + gsce +. +Es +( +obj +-> +Cle +()); + +338 + gv8 +:: +Isީe + * +isީe + = +v8 +::Isީe:: +GCut +(); + +339 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +340  + gsce +. +Es +( +y +-> +CleEmtAt +( +isީe +-> +GCutCڋxt +(), +dex +) + +341 . +FromMaybe +( +v8 +:: +Lol +())); + +345 +le + + gMaybeLol +< + gv8 +:: +Vue +> +Cl +( + +346 +v8 +:: +Lol + +fun + + +347 , +v8 +:: +Lol + +cv + + +348 ,  +gc + + +349 , +v8 +:: +Lol + +gv +[]) { + +350 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +351 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +352  + gsce +. +Es +( +fun +-> +Cl +( +isީe +-> +GCutCڋxt +(), +cv +, +gc +, +gv +) + +353 . +FromMaybe +( +v8 +:: +Lol +())); + + @interface/node_modules/nan/nan_maybe_pre_43_inl.h + +9 #ide +NAN_MAYBE_PRE_43_INL_H_ + + +10  + #NAN_MAYBE_PRE_43_INL_H_ + + + ) + +12 + gme +< +tyme + + gT +> + +13 as + cMaybeLol + { + +14 + mpublic +: + +15 +le + + $MaybeLol +(: + `v_ +( +v8 +:: +Lol +< +T +>()) {} + +17 +me +< +tyme + +S +> + +18 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +19 +le + + +20 + `MaybeLol +( +v8 +:: +Lol +< +S +> +th +: + $v_ +( +th +{ + } +} + +22 +le + + +23 +MaybeLol +( +v8 +:: +Lol +< +S +> +th +) : + +24 +v_ +(* +t_ +< +v8 +:: +Lol +< +T +>*>(& +th +)) {} + +27 +le + +bo + + $IsEmy +(cڡ {  +v_ +. + `IsEmy +(); + } +} + +29 + gme +< +tyme + + gS +> + +30 +le + +bo + +ToLol +( +v8 +:: +Lol +< +S +> * +out +) const { + +31 * +out + = +v_ +; + +32  ! +IsEmy +(); + +35 +le + + gv8 +:: +Lol +< +T +> + $ToLolChecked +() const { + +36 #i + `defed +( +V8_ENABLE_CHECKS +) + +37 + `as +(! + `IsEmy +() && "ToLocalChecked is Empty"); + +39  +v_ +; + +40 + } +} + +42 + gme +< +tyme + + gS +> + +43 +le + + gv8 +:: +Lol +< +S +> +FromMaybe +( +v8 +::Lol +deu_vue +) const { + +44  +IsEmy +(? +deu_vue + : +v8 +:: +Lol +< +S +>( +v_ +); + +47 + give +: + +48 +v8 +:: +Lol +< +T +> +v_ +; + +51 +le + + +52 + gMaybeLol +< + gv8 +:: +Sg +> +ToDaSg +( +v8 +:: +Hd + +v +) { + +53  +MaybeLol +< +v8 +:: +Sg +>( +v +-> +ToDaSg +()); + +56 +le + + +57 + gMaybeLol +< + gv8 +:: +Ut32 +> +ToAayIndex +( +v8 +:: +Hd + +v +) { + +58  +MaybeLol +< +v8 +:: +Ut32 +>( +v +-> +ToAayIndex +()); + +61 +le + + +62 + gMaybe +< + gbo +> +Equs +( +v8 +:: +Hd + +a +, v8::Hd( +b +)) { + +63  +Ju +< +bo +>( +a +-> +Equs +( +b +)); + +66 +le + + +67 + gMaybeLol +< + gv8 +:: +Obje +> +NewIn +( +v8 +:: +Hd + +h +) { + +68  +MaybeLol +< +v8 +:: +Obje +>( +h +-> +NewIn +()); + +71 +le + + +72 + gMaybeLol +< + gv8 +:: +Obje +> +NewIn +( + +73 +v8 +:: +Lol + +h + + +74 ,  +gc + + +75 , +v8 +:: +Lol + +gv +[]) { + +76  +MaybeLol +< +v8 +:: +Obje +>( +h +-> +NewIn +( +gc +, +gv +)); + +79 +le + + +80 + gMaybeLol +< + gv8 +:: +Obje +> +NewIn +( +v8 +:: +Hd + +h +) { + +81  +MaybeLol +< +v8 +:: +Obje +>( +h +-> +NewIn +()); + +84 +le + + +85 + gMaybeLol +< + gv8 +:: +Funi +> +GFuni +( +v8 +:: +Hd + +t +) { + +86  +MaybeLol +< +v8 +:: +Funi +>( +t +-> +GFuni +()); + +89 +le + + gMaybe +< + gbo +> +S +( + +90 +v8 +:: +Hd + +obj + + +91 , +v8 +:: +Hd + +key + + +92 , +v8 +:: +Hd + +vue +) { + +93  +Ju +< +bo +>( +obj +-> +S +( +key +, +vue +)); + +96 +le + + gMaybe +< + gbo +> +S +( + +97 +v8 +:: +Hd + +obj + + +98 , +ut32_t + +dex + + +99 , +v8 +:: +Hd + +vue +) { + +100  +Ju +< +bo +>( +obj +-> +S +( +dex +, +vue +)); + +103  + ~"n_defe_own_ݔty_hr.h +" + +105 +le + + gMaybe +< + gbo +> +DefeOwnPrݔty +( + +106 +v8 +:: +Hd + +obj + + +107 , +v8 +:: +Hd + +key + + +108 , +v8 +:: +Hd + +vue + + +109 , +v8 +:: +PrݔtyAribu + +ibs + = v8:: +Ne +) { + +110 +v8 +:: +PrݔtyAribu + +cut + = +obj +-> +GPrݔtyAribus +( +key +); + +111  + gimp +:: +DefeOwnPrݔtyHr +( +cut +, +obj +, +key +, +vue +, +ibs +); + +114 +NAN_DEPRECATED + +le + + gMaybe +< + gbo +> +FS +( + +115 +v8 +:: +Hd + +obj + + +116 , +v8 +:: +Hd + +key + + +117 , +v8 +:: +Hd + +vue + + +118 , +v8 +:: +PrݔtyAribu + +ibs + = v8:: +Ne +) { + +119  +Ju +< +bo +>( +obj +-> +FS +( +key +, +vue +, +ibs +)); + +122 +le + + gMaybeLol +< + gv8 +:: +Vue +> +G +( + +123 +v8 +:: +Hd + +obj + + +124 , +v8 +:: +Hd + +key +) { + +125  +MaybeLol +< +v8 +:: +Vue +>( +obj +-> +G +( +key +)); + +128 +le + + gMaybeLol +< + gv8 +:: +Vue +> +G +( + +129 +v8 +:: +Hd + +obj + + +130 , +ut32_t + +dex +) { + +131  + gMaybeLol +< + gv8 +:: +Vue +>( +obj +-> +G +( +dex +)); + +134 +le + + gMaybe +< + gv8 +:: +PrݔtyAribu +> +GPrݔtyAribus +( + +135 +v8 +:: +Hd + +obj + + +136 , +v8 +:: +Hd + +key +) { + +137  +Ju +< +v8 +:: +PrݔtyAribu +>( +obj +-> +GPrݔtyAribus +( +key +)); + +140 +le + + gMaybe +< + gbo +> +Has +( + +141 +v8 +:: +Hd + +obj + + +142 , +v8 +:: +Hd + +key +) { + +143  +Ju +< +bo +>( +obj +-> +Has +( +key +)); + +146 +le + + gMaybe +< + gbo +> +Has +( + +147 +v8 +:: +Hd + +obj + + +148 , +ut32_t + +dex +) { + +149  + gJu +< + gbo +>( + gobj +-> +Has +( +dex +)); + +152 +le + + gMaybe +< + gbo +> +De +( + +153 +v8 +:: +Hd + +obj + + +154 , +v8 +:: +Hd + +key +) { + +155  +Ju +< +bo +>( +obj +-> +De +( +key +)); + +158 +le + + gMaybe +< + gbo +> +De +( + +159 +v8 +:: +Hd + +obj + + +160 , +ut32_t + +dex +) { + +161  + gJu +< + gbo +>( + gobj +-> +De +( +dex +)); + +164 +le + + +165 + gMaybeLol +< + gv8 +:: +Aay +> +GPrݔtyNames +( +v8 +:: +Hd + +obj +) { + +166  +MaybeLol +< +v8 +:: +Aay +>( +obj +-> +GPrݔtyNames +()); + +169 +le + + +170 + gMaybeLol +< + gv8 +:: +Aay +> +GOwnPrݔtyNames +( +v8 +:: +Hd + +obj +) { + +171  +MaybeLol +< +v8 +:: +Aay +>( +obj +-> +GOwnPrݔtyNames +()); + +174 +le + + gMaybe +< + gbo +> +SPry +( + +175 +v8 +:: +Hd + +obj + + +176 , +v8 +:: +Hd + +y +) { + +177  +Ju +< +bo +>( +obj +-> +SPry +( +y +)); + +180 +le + + gMaybeLol +< + gv8 +:: +Sg +> +ObjeProToSg +( + +181 +v8 +:: +Hd + +obj +) { + +182  +MaybeLol +< +v8 +:: +Sg +>( +obj +-> +ObjeProToSg +()); + +185 +le + + gMaybe +< + gbo +> +HasOwnPrݔty +( + +186 +v8 +:: +Hd + +obj + + +187 , +v8 +:: +Hd + +key +) { + +188  +Ju +< +bo +>( +obj +-> +HasOwnPrݔty +( +key +)); + +191 +le + + gMaybe +< + gbo +> +HasRlNamedPrݔty +( + +192 +v8 +:: +Hd + +obj + + +193 , +v8 +:: +Hd + +key +) { + +194  +Ju +< +bo +>( +obj +-> +HasRlNamedPrݔty +( +key +)); + +197 +le + + gMaybe +< + gbo +> +HasRlIndexedPrݔty +( + +198 +v8 +:: +Hd + +obj + + +199 , +ut32_t + +dex +) { + +200  + gJu +< + gbo +>( + gobj +-> +HasRlIndexedPrݔty +( +dex +)); + +203 +le + + gMaybe +< + gbo +> +HasRlNamedClbackPrݔty +( + +204 +v8 +:: +Hd + +obj + + +205 , +v8 +:: +Hd + +key +) { + +206  +Ju +< +bo +>( +obj +-> +HasRlNamedClbackPrݔty +( +key +)); + +209 +le + + gMaybeLol +< + gv8 +:: +Vue +> +GRlNamedPrݔtyInPryCha +( + +210 +v8 +:: +Hd + +obj + + +211 , +v8 +:: +Hd + +key +) { + +212  +MaybeLol +< +v8 +:: +Vue +>( + +213 +obj +-> +GRlNamedPrݔtyInPryCha +( +key +)); + +216 +le + + gMaybeLol +< + gv8 +:: +Vue +> +GRlNamedPrݔty +( + +217 +v8 +:: +Hd + +obj + + +218 , +v8 +:: +Hd + +key +) { + +219  +MaybeLol +< +v8 +:: +Vue +>( +obj +-> +GRlNamedPrݔty +( +key +)); + +222 +le + + gMaybeLol +< + gv8 +:: +Vue +> +ClAsFuni +( + +223 +v8 +:: +Hd + +obj + + +224 , +v8 +:: +Hd + +cv + + +225 ,  +gc + + +226 , +v8 +:: +Hd + +gv +[]) { + +227  +MaybeLol +< +v8 +:: +Vue +>( +obj +-> +ClAsFuni +( +cv +, +gc +, +gv +)); + +230 +le + + gMaybeLol +< + gv8 +:: +Vue +> +ClAsCڡru +( + +231 +v8 +:: +Hd + +obj + + +232 ,  +gc + + +233 , +v8 +:: +Lol + +gv +[]) { + +234  +MaybeLol +< +v8 +:: +Vue +>( +obj +-> +ClAsCڡru +( +gc +, +gv +)); + +237 +le + + +238 + gMaybeLol +< + gv8 +:: +Sg +> +GSourLe +( +v8 +:: +Hd + +msg +) { + +239  +MaybeLol +< +v8 +:: +Sg +>( +msg +-> +GSourLe +()); + +242 +le + + gMaybe +<> +GLeNumb +( +v8 +:: +Hd + +msg +) { + +243  +Ju +<>( +msg +-> +GLeNumb +()); + +246 +le + + gMaybe +<> +GSCumn +( +v8 +:: +Hd + +msg +) { + +247  +Ju +<>( +msg +-> +GSCumn +()); + +250 +le + + gMaybe +<> +GEndCumn +( +v8 +:: +Hd + +msg +) { + +251  +Ju +<>( +msg +-> +GEndCumn +()); + +254 +le + + gMaybeLol +< + gv8 +:: +Obje +> +CleEmtAt +( + +255 +v8 +:: +Hd + +y + + +256 , +ut32_t + +dex +) { + +257  + gMaybeLol +< + gv8 +:: +Obje +>( +y +-> +CleEmtAt +( +dex +)); + +260 +le + + gMaybeLol +< + gv8 +:: +Vue +> +Cl +( + +261 +v8 +:: +Lol + +fun + + +262 , +v8 +:: +Lol + +cv + + +263 ,  +gc + + +264 , +v8 +:: +Lol + +gv +[]) { + +265  +MaybeLol +< +v8 +:: +Vue +>( +fun +-> +Cl +( +cv +, +gc +, +gv +)); + + @interface/node_modules/nan/nan_new.h + +9 #ide +NAN_NEW_H_ + + +10  + #NAN_NEW_H_ + + + ) + +12 +mea + + gimp + { + +15 + gme + < +tyme + + gT +> + gv8 +:: +Lol +< +T +> +To +( +v8 +::Lol +i +); + +17 + gme + <> + +18 +le + + +19 + gv8 +:: +Lol +< +v8 +:: +Ieg +> + +20 +To +< +v8 +:: +Ieg +>(v8:: +Lol + +i +) { + +21  +N +:: +To +< +v8 +:: +Ieg +>( +i +). +ToLolChecked +(); + +24 + gme + <> + +25 +le + + +26 + gv8 +:: +Lol +< +v8 +:: +I32 +> + +27 +To +< +v8 +:: +I32 +>(v8:: +Lol + +i +) { + +28  +N +:: +To +< +v8 +:: +I32 +>( +i +). +ToLolChecked +(); + +31 + gme + <> + +32 +le + + +33 + gv8 +:: +Lol +< +v8 +:: +Ut32 +> + +34 +To +< +v8 +:: +Ut32 +>(v8:: +Lol + +i +) { + +35  +N +:: +To +< +v8 +:: +Ut32 +>( +i +). +ToLolChecked +(); + +38 + gme + < +tyme + + gT +>  + sFayBa + { + +39  + gv8 +:: + tLol +< + tT +> + ttu_t +; + +42 + gme + < +tyme + + gT +>  + sMaybeFayBa + { + +43  + gMaybeLol +< + tT +> + ttu_t +; + +46 + gme + < +tyme + + gT +>  + gFay +; + +48 + gme + <> + +49  + gFay +< + gv8 +:: +Aay +> : +FayBa +< +v8 +::Array> { + +50  +le + +tu_t + +New +(); + +51  +le + +tu_t + +New +( +ngth +); + +54 + gme + <> + +55  + gFay +< + gv8 +:: +Boޗn +> : +FayBa +< +v8 +::Boolean> { + +56  +le + +tu_t + +New +( +bo + +vue +); + +59 + gme + <> + +60  + gFay +< + gv8 +:: +BoޗnObje +> : +FayBa +< +v8 +::BooleanObject> { + +61  +le + +tu_t + +New +( +bo + +vue +); + +64 + gme + <> + +65  + gFay +< + gv8 +:: +Cڋxt +> : +FayBa +< +v8 +::Context> { + +66  +le + + +67 +tu_t + + +68 +New + +v8 +:: +ExnsiCfiguti +* +exnsis + = +NULL + + +69 , +v8 +:: +Lol + +tm + = v8::Local() + +70 , +v8 +:: +Lol + +obj + = v8::Local()); + +73 + gme + <> + +74  + gFay +< + gv8 +:: +De +> : +MaybeFayBa +< +v8 +::Date> { + +75  +le + +tu_t + +New +( +vue +); + +78 + gme + <> + +79  + gFay +< + gv8 +:: +Ex +> : +FayBa +< +v8 +::External> { + +80  +le + +tu_t + +New +(* +vue +); + +83 + gme + <> + +84  + gFay +< + gv8 +:: +Funi +> : +FayBa +< +v8 +::Function> { + +85  +le + + +86 +tu_t + + +87 +New + +FuniClback + +back + + +88 , +v8 +:: +Lol + +da + = v8::Local()); + +91 + gme + <> + +92  + gFay +< + gv8 +:: +FuniTeme +> : +FayBa +< +v8 +::FunctionTemplate> { + +93  +le + + +94 +tu_t + + +95 +New + +FuniClback + +back + = +NULL + + +96 , +v8 +:: +Lol + +da + = v8::Local() + +97 , +v8 +:: +Lol + +sigtu + = v8::Local()); + +100 + gme + <> + +101  + gFay +< + gv8 +:: +Numb +> : +FayBa +< +v8 +::Number> { + +102  +le + +tu_t + +New +( +vue +); + +105 + gme + <> + +106  + gFay +< + gv8 +:: +NumbObje +> : +FayBa +< +v8 +::NumberObject> { + +107  +le + +tu_t + +New +( +vue +); + +110 + gme + < +tyme + + gT +> + +111  + gIegFay + : +FayBa +< +T +> { + +112  +tyme + + tFayBa +< + tT +>:: + ttu_t +eturn_t; + +113  +le + +tu_t + +New +( +t32_t + +vue +); + +114  +le + +tu_t + +New +( +ut32_t + +vue +); + +117 + gme + <> + +118  + gFay +< + gv8 +:: +Ieg +> : +IegFay +< +v8 +::Integer> {}; + +120 + gme + <> + +121  + gFay +< + gv8 +:: +I32 +> : +IegFay +< +v8 +::Int32> {}; + +123 + gme + <> + +124  + gFay +< + gv8 +:: +Ut32 +> : +FayBa +< +v8 +::Uint32> { + +125  +le + +tu_t + +New +( +t32_t + +vue +); + +126  +le + +tu_t + +New +( +ut32_t + +vue +); + +129 + gme + <> + +130  + gFay +< + gv8 +:: +Obje +> : +FayBa +< +v8 +::Object> { + +131  +le + +tu_t + +New +(); + +134 + gme + <> + +135  + gFay +< + gv8 +:: +ObjeTeme +> : +FayBa +< +v8 +::ObjectTemplate> { + +136  +le + +tu_t + +New +(); + +139 + gme + <> + +140  + gFay +< + gv8 +:: +RegExp +> : +MaybeFayBa +< +v8 +::RegExp> { + +141  +le + +tu_t + +New +( + +142 +v8 +:: +Lol + +n +, v8:: +RegExp +:: +Fgs + +ags +); + +145 + gme + <> + +146  + gFay +< + gv8 +:: +St +> : +MaybeFayBa +< +v8 +::Script> { + +147  +le + +tu_t + +New + +v8 +:: +Lol + +sour +); + +148  +le + +tu_t + +New + +v8 +:: +Lol + +sour + + +149 , +v8 +:: +StOrig + cڡ& +ig +); + +152 + gme + <> + +153  + gFay +< + gv8 +:: +Sigtu +> : +FayBa +< +v8 +::Signature> { + +154  +v8 +:: + tLol +< + tv8 +:: + tFuniTeme +> + tFTH +; + +155  +le + +tu_t + +New +( +FTH + +iv + = FTH()); + +158 + gme + <> + +159  + gFay +< + gv8 +:: +Sg +> : +MaybeFayBa +< +v8 +::String> { + +160  +le + +tu_t + +New +(); + +161  +le + +tu_t + +New +(cڡ * +vue +,  +ngth + = -1); + +162  +le + +tu_t + +New +(cڡ +ut16_t + * +vue +,  +ngth + = -1); + +163  +le + +tu_t + +New +( +d +:: +rg + cڡ& +vue +); + +165  +le + +tu_t + +New +( +v8 +:: +Sg +:: +ExSgResour + * +vue +); + +166  +le + +tu_t + +New +( +ExOBySgResour + * +vue +); + +169 + gme + <> + +170  + gFay +< + gv8 +:: +SgObje +> : +FayBa +< +v8 +::StringObject> { + +171  +le + +tu_t + +New +( +v8 +:: +Lol + +vue +); + +176 #i( +NODE_MODULE_VERSION + >= 12) + +178 +mea + + gimp + { + +180 + gme + <> + +181  + gFay +< + gv8 +:: +UnboundSt +> : +MaybeFayBa +< +v8 +::UnboundScript> { + +182  +le + +tu_t + +New + +v8 +:: +Lol + +sour +); + +183  +le + +tu_t + +New + +v8 +:: +Lol + +sour + + +184 , +v8 +:: +StOrig + cڡ& +ig +); + +189  + ~"n_imemti_12_l.h +" + +193  + ~"n_imemti_e_12_l.h +" + +199 + gme + < +tyme + + gT +> + +200 +tyme + + gimp +:: +Fay +< +T +>:: +tu_t + + +201 + $New +() { + +202  +imp +:: +Fay +< +T +>:: + `New +(); + +203 + } +} + +205 + gme + < +tyme + + gT +,ym + gA0 +> + +206 +tyme + + gimp +:: +Fay +< +T +>:: +tu_t + + +207 + $New +( +A0 + +g0 +) { + +208  +imp +:: +Fay +< +T +>:: + `New +( +g0 +); + +209 + } +} + +211 + gme + < +tyme + + gT +,ym + gA0 +,ym + gA1 +> + +212 +tyme + + gimp +:: +Fay +< +T +>:: +tu_t + + +213 + $New +( +A0 + +g0 +, +A1 + +g1 +) { + +214  +imp +:: +Fay +< +T +>:: + `New +( +g0 +, +g1 +); + +215 + } +} + +217 + gme + < +tyme + + gT +,ym + gA0 +,ym + gA1 +,ym + gA2 +> + +218 +tyme + + gimp +:: +Fay +< +T +>:: +tu_t + + +219 + $New +( +A0 + +g0 +, +A1 + +g1 +, +A2 + +g2 +) { + +220  +imp +:: +Fay +< +T +>:: + `New +( +g0 +, +g1 +, +g2 +); + +221 + } +} + +223 + gme + < +tyme + + gT +,ym + gA0 +,ym + gA1 +,ym + gA2 +,ym + gA3 +> + +224 +tyme + + gimp +:: +Fay +< +T +>:: +tu_t + + +225 + $New +( +A0 + +g0 +, +A1 + +g1 +, +A2 + +g2 +, +A3 + +g3 +) { + +226  +imp +:: +Fay +< +T +>:: + `New +( +g0 +, +g1 +, +g2 +, +g3 +); + +227 + } +} + +235 + gme + < +tyme + + gT +> + +236 +tyme + + gimp +:: +Fay +< +T +>:: +tu_t + + +237 +New + +FuniClback + +back + + +238 , +v8 +:: +Lol + +da + = v8::Local()) { + +239  +imp +:: +Fay +< +T +>:: +New +( +back +, +da +); + +243 + gme + < +tyme + + gT +,ym + gA2 +> + +244 +tyme + + gimp +:: +Fay +< +T +>:: +tu_t + + +245 +New + +FuniClback + +back + + +246 , +v8 +:: +Lol + +da + = v8::Local() + +247 , +A2 + +a2 + = + $A2 +()) { + +248  +imp +:: +Fay +< +T +>:: + `New +( +back +, +da +, +a2 +); + +249 + } +} + +253 #i +NODE_MODULE_VERSION + < +IOJS_3_0_MODULE_VERSION + + +254 + gme + < +tyme + + gT +> +le + + gv8 +:: +Lol +< +T +> +New +( +v8 +:: +Hd + +h +); + +257 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +258 + gme + < +tyme + + gT +,ym + gM +> + +259 +le + + gv8 +:: +Lol +< +T +> +New +( +v8 +:: +Psit + cڡ& +p +); + +261 + gme + < +tyme + + gT +> +le + + gv8 +:: +Lol +< +T +> +New +( +v8 +:: +Psit + cڡ& +p +); + +263 + gme + < +tyme + + gT +,ym + gM +> + +264 +le + + gv8 +:: +Lol +< +T +> +New +( +Psit + cڡ& +p +); + +265 + gme + < +tyme + + gT +> + +266 +le + + gv8 +:: +Lol +< +T +> +New +( +Glob + cڡ& +p +); + +268 +le + + +269 + gimp +:: +Fay +< +v8 +:: +Boޗn +>:: +tu_t + + +270 + $New +( +bo + +vue +) { + +271  +New +< +v8 +:: +Boޗn +>( +vue +); + +272 + } +} + +274 +le + + +275 + gimp +:: +Fay +< +v8 +:: +I32 +>:: +tu_t + + +276 + $New +( +t32_t + +vue +) { + +277  +New +< +v8 +:: +I32 +>( +vue +); + +278 + } +} + +280 +le + + +281 + gimp +:: +Fay +< +v8 +:: +Ut32 +>:: +tu_t + + +282 + $New +( +ut32_t + +vue +) { + +283  +New +< +v8 +:: +Ut32 +>( +vue +); + +284 + } +} + +286 +le + + +287 + gimp +:: +Fay +< +v8 +:: +Numb +>:: +tu_t + + +288 + $New +( +vue +) { + +289  +New +< +v8 +:: +Numb +>( +vue +); + +290 + } +} + +292 +le + + +293 + gimp +:: +Fay +< +v8 +:: +Sg +>:: +tu_t + + +294 + $New +( +d +:: +rg + cڡ& +vue +) { + +295  +New +< +v8 +:: +Sg +>( +vue +); + +296 + } +} + +298 +le + + +299 + gimp +:: +Fay +< +v8 +:: +Sg +>:: +tu_t + + +300 + $New +(cڡ * +vue +,  +ngth +) { + +301  +New +< +v8 +:: +Sg +>( +vue +, +ngth +); + +302 + } +} + +304 +le + + +305 + gimp +:: +Fay +< +v8 +:: +Sg +>:: +tu_t + + +306 + $New +(cڡ +ut16_t + * +vue +,  +ngth +) { + +307  +New +< +v8 +:: +Sg +>( +vue +, +ngth +); + +308 + } +} + +310 +le + + +311 + gimp +:: +Fay +< +v8 +:: +Sg +>:: +tu_t + + +312 + $New +(cڡ * +vue +) { + +313  +New +< +v8 +:: +Sg +>( +vue +); + +314 + } +} + +316 +le + + +317 + gimp +:: +Fay +< +v8 +:: +Sg +>:: +tu_t + + +318 + $New +(cڡ +ut16_t + * +vue +) { + +319  +New +< +v8 +:: +Sg +>( +vue +); + +320 + } +} + +322 +le + + +323 + gimp +:: +Fay +< +v8 +:: +Sg +>:: +tu_t + + +324 + $New +( +v8 +:: +Sg +:: +ExSgResour + * +vue +) { + +325  +New +< +v8 +:: +Sg +>( +vue +); + +326 + } +} + +328 +le + + +329 + gimp +:: +Fay +< +v8 +:: +Sg +>:: +tu_t + + +330 + $New +( +ExOBySgResour + * +vue +) { + +331  +New +< +v8 +:: +Sg +>( +vue +); + +332 + } +} + +334 +le + + +335 + gimp +:: +Fay +< +v8 +:: +RegExp +>:: +tu_t + + +336 +New +( +v8 +:: +Lol + +n +, v8:: +RegExp +:: +Fgs + +ags +) { + +337  +New +< +v8 +:: +RegExp +>( +n +, + gags +); + + @interface/node_modules/nan/nan_object_wrap.h + +9 #ide +NAN_OBJECT_WRAP_H_ + + +10  + #NAN_OBJECT_WRAP_H_ + + + ) + +12 as + cObjeWp + { + +13 + mpublic +: + +14 + $ObjeWp +() { + +15 +fs_ + = 0; + +19 +vtu + ~ + $ObjeWp +() { + +20 i( + `rsit +(). + `IsEmy +()) { + +24 + `rsit +(). + `CˬWk +(); + +25 + `rsit +(). + `Ret +(); + +26 + } +} + +29 + gme + < +ass + + gT +> + +30  +le + +T +* +Unwp +( +v8 +:: +Lol + +obje +) { + +31 +as +(! +obje +. +IsEmy +()); + +32 +as +( +obje +-> +IlFldCou +() > 0); + +35 * + gr + = +GIlFldPor +( +obje +, 0); + +36 +ObjeWp +* + gwp + = +ic_ +( +r +); + +37  + gic_ +< + gT +*>( + gwp +); + +41 +le + + gv8 +:: +Lol +< +v8 +:: +Obje +> + $hd +() const { + +42  + `New +( +hd_ +); + +43 + } +} + +46 +le + + gPsit +< + gv8 +:: +Obje +>& + $rsit +() { + +47  +hd_ +; + +48 + } +} + +51 + geed +: + +52 +le +  +Wp +( +v8 +:: +Lol + +obje +) { + +53 +as +( +rsit +(). +IsEmy +()); + +54 +as +( +obje +-> +IlFldCou +() > 0); + +55 +SIlFldPor +( +obje +, 0, +this +); + +56 +rsit +(). +Ret +( +obje +); + +57 +MakeWk +(); + +60 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +61 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +63 +le +  + $MakeWk +() { + +64 + `rsit +(). +v8 +:: +PsitBa +:: + `SWk +( + +65 +this +, +WkClback +, +v8 +:: +WkClbackTy +:: +kPam +); + +66 #i +NODE_MAJOR_VERSION + < 10 + +68 + `rsit +(). + `MkInddt +(); + +70 + } +} + +72 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +74 +le +  + $MakeWk +() { + +75 + `rsit +(). +v8 +:: +PsitBa +:: + `SWk +( +this +, +WkClback +); + +76 + `rsit +(). + `MkInddt +(); + +77 + } +} + +81 +le +  + $MakeWk +() { + +82 + `rsit +(). +rsit +. + `MakeWk +( +this +, +WkClback +); + +83 + `rsit +(). + `MkInddt +(); + +84 + } +} + +92 +vtu +  + $Ref +() { + +93 + `as +(! + `rsit +(). + `IsEmy +()); + +94 + `rsit +(). + `CˬWk +(); + +95 +fs_ +++; + +96 + } +} + +107 +vtu +  + $Uef +() { + +108 + `as +(! + `rsit +(). + `IsEmy +()); + +109 + `as +(! + `rsit +(). + `IsWk +()); + +110 + `as +( +fs_ + > 0); + +111 i(-- +fs_ + == 0) + +112 + `MakeWk +(); + +113 + } +} + +115  + gfs_ +; + +117 + give +: + +118 + $NAN_DISALLOW_ASSIGN_COPY_MOVE +( +ObjeWp +) + +119 #i + `defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +120 ( +V8_MAJOR_VERSION + =4 && + `defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +123 + `WkClback +( +v8 +:: +WkClbackInfo +< +ObjeWp +> cڡ& +fo +) { + +124 +ObjeWp +* +wp + = +fo +. + `GPam +(); + +125 + `as +( +wp +-> +fs_ + == 0); + +126 +wp +-> +hd_ +. + `Ret +(); + +127 +de + +wp +; + +128 + } +} + +130 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +133 +WkClback +( +v8 +:: +WkClbackDa + cڡ& +da +) { + +134 +ObjeWp +* + gwp + = +da +. +GPam +(); + +135 +as +( +wp +-> +fs_ + == 0); + +136 +as +( +wp +-> +hd_ +. +IsNrDth +()); + +137 + gwp +-> + ghd_ +. +Ret +(); + +138 +de + + gwp +; + +143  +WkClback +( +v8 +:: +Psit + +vue +, * +da +) { + +144 +ObjeWp + * + gwp + = +ic_ +( +da +); + +145 +as +( +wp +-> +fs_ + == 0); + +146 +as +( +wp +-> +hd_ +. +IsNrDth +()); + +147 + gwp +-> + ghd_ +. +Ret +(); + +148 +de + + gwp +; + +152 + gPsit +< + gv8 +:: +Obje +> +hd_ +; + + @interface/node_modules/nan/nan_persistent_12_inl.h + +9 #ide +NAN_PERSISTENT_12_INL_H_ + + +10  + #NAN_PERSISTENT_12_INL_H_ + + + ) + +12 + gme +< +tyme + + gT +,ym + gM +> +ass + + gPsit + : + +13 +public + +v8 +:: +Psit +< +T +, + gM +> { + +14 + gpublic +: + +15 +le + +Psit +(: +v8 +::Psit< +T +, + gM +>() {} + +17 + gme +< +tyme + + gS +> +le + +Psit +( +v8 +:: +Lol +< +S +> +th +) : + +18 +v8 +:: +Psit +< +T +, + gM +>( + gv8 +:: +Isީe +:: +GCut +(), + gth +) {} + +20 + gme +< +tyme + + gS +,ym + gM2 +> + +21 +le + + +22 +Psit +(cڡ +v8 +::Psit< +S +, +M2 +> & +th +) : + +23 +v8 +:: +Psit +< +T +, + gM2 +>( + gv8 +:: +Isީe +:: +GCut +(), + gth +) {} + +25 +le +  +Ret +({ + gv8 +:: +PsitBa +< +T +>::Reset(); } + +27 + gme + < +tyme + + gS +> + +28 +le +  +Ret +(cڡ +v8 +:: +Lol +< +S +> & +h +) { + +29 +v8 +:: +PsitBa +< +T +>:: +Ret +(v8:: +Isީe +:: +GCut +(), +h +); + +32 + gme + < +tyme + + gS +> + +33 +le +  +Ret +(cڡ +v8 +:: +PsitBa +< +S +> & +h +) { + +34 +v8 +:: +PsitBa +< +T +>:: +Ret +(v8:: +Isީe +:: +GCut +(), +h +); + +37 + gme +< +tyme + + gP +> + +38 +le +  +SWk +( + +39 +P + * +m + + +40 , +tyme + +WkClbackInfo +< +P +>:: +Clback + +back + + +41 , +WkClbackTy + +ty +); + +43 + give +: + +44 +le + +T + * +ݔ +*(cڡ {  * +PsitBa +:: +rsit +; } + +46 + gme +< +tyme + + gS +,ym + gM2 +> + +47 +le +  +Cy +(cڡ +Psit +< +S +, +M2 +> & +th +) { + +48 +TYPE_CHECK +( +T +, +S +); + +50 + gthis +-> +Ret +(); + +52 i(! + gth +. +IsEmy +()) { + +53 + gthis +-> +Ret +( +th +); + +54 + gM +:: +Cy +( +th +, +this +); + +59 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +60 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +61 +me +< +tyme + +T +> + +62 +ass + +Glob + : +public + +v8 +::Glob< +T +> { + +63 +public +: + +64 +le + +Glob +(: +v8 +::Glob< +T +>() {} + +66 +me +< +tyme + +S +> +le + +Glob +( +v8 +:: +Lol + +th +) : + +67 +v8 +:: +Glob +< +T +>(v8:: +Isީe +:: +GCut +(), +th +) {} + +69 +me +< +tyme + +S +> + +70 +le + + +71 +Glob +(cڡ +v8 +:: +PsitBa +< +S +> & +th +) : + +72 +v8 +:: +Glob +< +S +>(v8:: +Isީe +:: +GCut +(), +th +) {} + +74 +le +  +Ret +({ +v8 +:: +PsitBa +< +T +>::Reset(); } + +76 + gme + < +tyme + + gS +> + +77 +le +  +Ret +(cڡ +v8 +:: +Lol +< +S +> & +h +) { + +78 +v8 +:: +PsitBa +< +T +>:: +Ret +(v8:: +Isީe +:: +GCut +(), +h +); + +81 + gme + < +tyme + + gS +> + +82 +le +  +Ret +(cڡ +v8 +:: +PsitBa +< +S +> & +h +) { + +83 +v8 +:: +PsitBa +< +T +>:: +Ret +(v8:: +Isީe +:: +GCut +(), +h +); + +86 + gme +< +tyme + + gP +> + +87 +le +  +SWk +( + +88 +P + * +m + + +89 , +tyme + +WkClbackInfo +< +P +>:: +Clback + +back + + +90 , +WkClbackTy + +ty +) { + +91 + gt_ +< + gPsit +< + gT +>*>( + gthis +)-> +SWk +( + +92 +m +, +back +, +ty +); + +96 + gme +< +tyme + + gT +> + +97 +ass + + gGlob + : +public + +v8 +:: +UniquePsit +< +T +> { + +98 +public +: + +99 +le + +Glob +(: +v8 +:: +UniquePsit +< +T +>() {} + +101 +me +< +tyme + +S +> +le + +Glob +( +v8 +:: +Lol + +th +) : + +102 +v8 +:: +UniquePsit +< +T +>(v8:: +Isީe +:: +GCut +(), + gth +) {} + +104 + gme +< +tyme + + gS +> + +105 +le + + +106 +Glob +(cڡ +v8 +:: +PsitBa +< +S +> & +th +) : + +107 +v8 +:: +UniquePsit +< +S +>(v8:: +Isީe +:: +GCut +(), + gth +) {} + +109 +le +  +Ret +({ + gv8 +:: +PsitBa +< +T +>::Reset(); } + +111 + gme + < +tyme + + gS +> + +112 +le +  +Ret +(cڡ +v8 +:: +Lol +< +S +> & +h +) { + +113 +v8 +:: +PsitBa +< +T +>:: +Ret +(v8:: +Isީe +:: +GCut +(), +h +); + +116 + gme + < +tyme + + gS +> + +117 +le +  +Ret +(cڡ +v8 +:: +PsitBa +< +S +> & +h +) { + +118 +v8 +:: +PsitBa +< +T +>:: +Ret +(v8:: +Isީe +:: +GCut +(), +h +); + +121 + gme +< +tyme + + gP +> + +122 +le +  +SWk +( + +123 +P + * +m + + +124 , +tyme + +WkClbackInfo +< +P +>:: +Clback + +back + + +125 , +WkClbackTy + +ty +) { + +126 + gt_ +< + gPsit +< + gT +>*>( + gthis +)-> +SWk +( + +127 +m +, +back +, +ty +); + + @interface/node_modules/nan/nan_persistent_pre_12_inl.h + +9 #ide +NAN_PERSISTENT_PRE_12_INL_H_ + + +10  + #NAN_PERSISTENT_PRE_12_INL_H_ + + + ) + +12 + gme +< +tyme + + gT +> + +13 as + cPsitBa + { + +14 + mv8 +:: +Psit +< +T +> +rsit +; + +15 + mme +< +tyme + + mU +> + +16 +nd + + mv8 +:: +Lol +< +U +> +New +(cڡ +PsitBa + & +p +); + +17 + mme +< +tyme + + mU +,ym + mM +> + +18 +nd + + mv8 +:: +Lol +< +U +> +New +(cڡ +Psit + & +p +); + +19 + mme +< +tyme + + mU +> + +20 +nd + + mv8 +:: +Lol +< +U +> +New +(cڡ +Glob + & +p +); + +21 + mme +< +tyme + + mS +> +nd + +ass + + mRuVue +; + +23 + mpublic +: + +24 +le + + $PsitBa +() : + +25 + $rsit +() {} + +27 +le +  + $Ret +() { + +28 +rsit +. + `Dio +(); + +29 +rsit +. + `Cˬ +(); + +30 + } +} + +32 + gme +< +tyme + + gS +> + +33 +le +  +Ret +(cڡ +v8 +:: +Lol +< +S +> & +h +) { + +34 +TYPE_CHECK +( +T +, +S +); + +36 i(! + grsit +. +IsEmy +()) { + +37 + grsit +. +Dio +(); + +40 i( + gh +. +IsEmy +()) { + +41 + grsit +. +Cˬ +(); + +43 + grsit + = +v8 +:: +Psit +< +T +>:: +New +( +h +); + +47 + gme +< +tyme + + gS +> + +48 +le +  +Ret +(cڡ +PsitBa +< +S +> & +h +) { + +49 +TYPE_CHECK +( +T +, +S +); + +51 i(! + grsit +. +IsEmy +()) { + +52 + grsit +. +Dio +(); + +55 i( + gh +. +IsEmy +()) { + +56 + grsit +. +Cˬ +(); + +58 + grsit + = +v8 +:: +Psit +< +T +>:: +New +( +h +. +rsit +); + +62 +le + +bo + + $IsEmy +(cڡ {  +rsit +. + `IsEmy +(); + } +} + +64 +le +  + $Emy +({ +rsit +. + `Cˬ +(); + } +} + +66 + gme +< +tyme + + gS +> + +67 +le + +bo + + gݔ +==(cڡ +PsitBa +< +S +> & +th +) const { + +68  +this +-> +rsit + = +th +.persistent; + +71 + gme +< +tyme + + gS +> + +72 +le + +bo + + gݔ +==(cڡ +v8 +:: +Lol +< +S +> & +th +) const { + +73  +this +-> +rsit + = +th +; + +76 + gme +< +tyme + + gS +> + +77 +le + +bo + + gݔ +!=(cڡ +PsitBa +< +S +> & +th +) const { + +78  ! +ݔ +==( +th +); + +81 + gme +< +tyme + + gS +> + +82 +le + +bo + + gݔ +!=(cڡ +v8 +:: +Lol +< +S +> & +th +) const { + +83  ! +ݔ +==( +th +); + +86 + gme +< +tyme + + gP +> + +87 +le +  +SWk +( + +88 +P + * +m + + +89 , +tyme + +WkClbackInfo +< +P +>:: +Clback + +back + + +90 , +WkClbackTy + +ty +); + +92 +le +  + $CˬWk +({ +rsit +. + `CˬWk +(); + } +} + +94 +le +  + $MkInddt +({ +rsit +. + `MkInddt +(); + } +} + +96 +le + +bo + + $IsInddt +(cڡ {  +rsit +. + `IsInddt +(); + } +} + +98 +le + +bo + + $IsNrDth +(cڡ {  +rsit +. + `IsNrDth +(); + } +} + +100 +le + +bo + + $IsWk +(cڡ {  +rsit +. + `IsWk +(); + } +} + +102 + give +: + +103 +le + +exic + +PsitBa +( +v8 +:: +Psit +< +T +> +th +) : + +104 + $rsit +( +th +{ + } +} + +105 +le + +exic + + $PsitBa +( +T + * +v +: + $rsit +( +v +{ + } +} + +106 +me +< +tyme + +S +,ym + gM +> +nd + +ass + + gPsit +; + +107 + gme +< +tyme + + gS +> +nd + +ass + + gGlob +; + +108 +nd + +ass + + gObjeWp +; + +111 + gme +< +tyme + + gT +> + +112 as + cNCyabPsitTs + { + +113 + mpublic +: + +114  +Psit +< + tT +, + tNCyabPsitTs + > + +115 + tNCyabPsit +; + +116 cڡ +bo + + mkRetInDeru + = +l +; + +117 + mme +< +tyme + + mS +,ym + mM +> + +118 +le +  +Cy +(cڡ +Psit +< +S +, +M +> & +sour +, + +119 +NCyabPsit + * +de +) { + +120 + mUncompab +< + mv8 +:: +Obje +>(); + +123 + gme +< +tyme + + gO +> +le +  + $Uncompab +() { + +124 + `TYPE_CHECK +( +O +, +v8 +:: +Primive +); + +125 + } +} + +128 + gme +< +tyme + + gT +> + +129  + sCyabPsitTs + { + +130  + mPsit +< + tT +, + tCyabPsitTs + > + tCyabPsit +; + +131 cڡ +bo + + mkRetInDeru + = +ue +; + +132 + mme +< +tyme + + mS +,ym + mM +> + +133  +le +  +Cy +(cڡ +Psit +< +S +, +M +> & +sour +, + +134 +CyabPsit + * +de +) {} + +137 + gme +< +tyme + + gT +,ym + gM +> +ass + + gPsit + : + +138 +public + +PsitBa +< +T +> { + +139 +public +: + +140 +le + +Psit +() {} + +142 +me +< +tyme + +S +> +le + +Psit +( +v8 +:: +Hd + +th +) + +143 : +PsitBa +< +T +>( +v8 +:: +Psit +:: +New +( +th +)) { + +144 +TYPE_CHECK +( +T +, +S +); + +147 +le + +Psit +(cڡ Psi& +th +: +PsitBa +< +T +>() { + +148 +Cy +( +th +); + +151 + gme +< +tyme + + gS +,ym + gM2 +> + +152 +le + +Psit +(cڡ Psit< +S +, +M2 +> & +th +) : + +153 +PsitBa +< +T +>() { + +154 +Cy +( +th +); + +157 +le + + gPsit + & + gݔ +=(cڡ +Psit + & +th +) { + +158 +Cy +( +th +); + +159  * + gthis +; + +162 + gme + < +ass + + gS +, cs + gM2 +> + +163 +le + + gPsit + & + gݔ +=(cڡ +Psit +< +S +, + gM2 +> & + gth +) { + +164 +Cy +( +th +); + +165  * + gthis +; + +168 + gle + ~ +Psit +() { + +169 i( + gM +:: +kRetInDeru + +this +-> +Ret +(); + +172 + give +: + +173 +le + +T + * +ݔ +*(cڡ {  * +PsitBa +:: +rsit +; } + +175 + gme +< +tyme + + gS +,ym + gM2 +> + +176 +le +  +Cy +(cڡ +Psit +< +S +, +M2 +> & +th +) { + +177 +TYPE_CHECK +( +T +, +S +); + +179 + gthis +-> +Ret +(); + +181 i(! + gth +. +IsEmy +()) { + +182 + gthis +-> + grsit + = +v8 +:: +Psit +< +T +>:: +New +( +th +. +rsit +); + +183 + gM +:: +Cy +( +th +, +this +); + +188 + gme +< +tyme + + gT +> + +189 +ass + + gGlob + : +public + +PsitBa +< +T +> { + +190  + sRVue + { + +191 +le + +exic + +RVue +( +Glob +* +obj +: +obje +(obj) {} + +192 +Glob +* +obje +; + +195 + gpublic +: + +196 +le + +Glob +(: +PsitBa +< +T +>(0) { } + +198 +me + < +tyme + +S +> + +199 +le + +Glob +( +v8 +:: +Lol +< +S +> +th +) + +200 : +PsitBa +< +T +>( +v8 +:: +Psit +:: +New +( +th +)) { + +201 +TYPE_CHECK +( +T +, +S +); + +204 + gme + < +tyme + + gS +> + +205 +le + +Glob +(cڡ +PsitBa +< +S +> & +th +) + +206 : +PsitBa +< +T +>( +th +) { + +207 +TYPE_CHECK +( +T +, +S +); + +212 +le + +Glob +( +RVue + +rvue +) + +213 : +PsitBa +< +T +>( +rvue +. +obje +-> +rsit +) { + +214 +rvue +. +obje +-> +Ret +(); + +216 + gle + ~ +Glob +({ + gthis +-> +Ret +(); } + +220 + gme +< +tyme + + gS +> + +221 +le + + gGlob + & + gݔ +=( +Glob +< +S +> +rhs +) { + +222 +TYPE_CHECK +( +T +, +S +); + +223 + gthis +-> +Ret +( +rhs +. +rsit +); + +224 + grhs +. +Ret +(); + +225  * + gthis +; + +230 +le + +ݔ + +RVue +({  RVue( +this +); } + +234 +Glob + +Pass +({  Glob( +RVue +( +this +)); } + +236 + give +: + +237 +Glob +(Global &); + +238  + gݔ +=( +Glob + &); + +239 + gme +< +tyme + + gS +> +nd + +ass + + gRuVue +; + + @interface/node_modules/nan/nan_private.h + +9 #ide +NAN_PRIVATE_H_ + + +10  + #NAN_PRIVATE_H_ + + + ) + +12 +le + + gMaybe +< + gbo +> + +13 +HasPrive +( +v8 +:: +Lol + +obje +, v8::Lol +key +) { + +14 +HdSce + +sce +; + +15 #i +NODE_MODULE_VERSION + > +NODE_6_0_MODULE_VERSION + + +16 + gv8 +:: +Isީe + * +isީe + = +v8 +::Isީe:: +GCut +(); + +17 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +cڋxt + = +isީe +-> +GCutCڋxt +(); + +18 + gv8 +:: +Lol +< +v8 +:: +Prive +> +ive_key + = v8::Prive:: +FApi +( +isީe +, +key +); + +19  + gobje +-> +HasPrive +( +cڋxt +, +ive_key +); + +21  +Ju +(! +obje +-> +GHiddVue +( +key +). +IsEmy +()); + +25 +le + + gMaybeLol +< + gv8 +:: +Vue +> + +26 +GPrive +( +v8 +:: +Lol + +obje +, v8::Lol +key +) { + +27 #i +NODE_MODULE_VERSION + > +NODE_6_0_MODULE_VERSION + + +28 +v8 +:: +Isީe + * +isީe + = v8::Isީe:: +GCut +(); + +29 + gv8 +:: +EsbHdSce + +sce +( +isީe +); + +30 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +cڋxt + = +isީe +-> +GCutCڋxt +(); + +31 + gv8 +:: +Lol +< +v8 +:: +Prive +> +ive_key + = v8::Prive:: +FApi +( +isީe +, +key +); + +32 + gv8 +:: +MaybeLol +< +v8 +:: +Vue +> +v + = +obje +-> +GPrive +( +cڋxt +, +ive_key +); + +33  + gsce +. +Es +( +v +. +ToLolChecked +()); + +35 +EsbHdSce + + gsce +; + +36 + gv8 +:: +Lol +< +v8 +:: +Vue +> +v + = +obje +-> +GHiddVue +( +key +); + +37 i( + gv +. +IsEmy +()) { + +38 + gv + = +Undefed +(); + +40  + gsce +. +Es +( +v +); + +44 +le + + gMaybe +< + gbo +> +SPrive +( + +45 +v8 +:: +Lol + +obje +, + +46 +v8 +:: +Lol + +key +, + +47 +v8 +:: +Lol + +vue +) { + +48 #i +NODE_MODULE_VERSION + > +NODE_6_0_MODULE_VERSION + + +49 +HdSce + +sce +; + +50 + gv8 +:: +Isީe + * +isީe + = +v8 +::Isީe:: +GCut +(); + +51 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +cڋxt + = +isީe +-> +GCutCڋxt +(); + +52 + gv8 +:: +Lol +< +v8 +:: +Prive +> +ive_key + = v8::Prive:: +FApi +( +isީe +, +key +); + +53  + gobje +-> +SPrive +( +cڋxt +, +ive_key +, +vue +); + +55  +Ju +( +obje +-> +SHiddVue +( +key +, +vue +)); + +59 +le + + gMaybe +< + gbo +> +DePrive +( + +60 +v8 +:: +Lol + +obje +, + +61 +v8 +:: +Lol + +key +) { + +62 #i +NODE_MODULE_VERSION + > +NODE_6_0_MODULE_VERSION + + +63 +HdSce + +sce +; + +64 + gv8 +:: +Isީe + * +isީe + = +v8 +::Isީe:: +GCut +(); + +65 + gv8 +:: +Lol +< +v8 +:: +Prive +> +ive_key + = v8::Prive:: +FApi +( +isީe +, +key +); + +66  + gobje +-> +DePrive +( +isީe +-> +GCutCڋxt +(), +ive_key +); + +68  +Ju +( +obje +-> +DeHiddVue +( +key +)); + + @interface/node_modules/nan/nan_string_bytes.h + +22 #ide +NAN_STRING_BYTES_H_ + + +23  + #NAN_STRING_BYTES_H_ + + + ) + +27 +mea + + gimp + { + +29 +usg + + gv8 +:: +Lol +; + +30 +usg + + gv8 +:: +Obje +; + +31 +usg + + gv8 +:: +Sg +; + +32 +usg + + gv8 +:: +Vue +; + +37  + #ba64_coded_size +( +size +((siz+ 2 - ((siz+ 2% 3)/ 3 * 4) + + ) + +43  +bo + +cڏs_n_ascii_ow +(cڡ * +buf +, +size_t + +n +) { + +44  +size_t + + gi + = 0; i < + gn +; ++i) { + +45 i( + gbuf +[ +i +] & 0x80 + gue +; + +47  + gl +; + +51  +bo + +cڏs_n_ascii +(cڡ * +c +, +size_t + +n +) { + +52 i( + gn + < 16) { + +53  +cڏs_n_ascii_ow +( +c +, +n +); + +56 cڡ  + gbys_r_wd + = (*); + +57 cڡ  + gign_mask + = +bys_r_wd + - 1; + +58 cڡ  + guligd + = +t_ +< +u_t +>( +c +& +ign_mask +; + +60 i( + guligd + > 0) { + +61 cڡ  + gn + = +bys_r_wd + - +uligd +; + +62 i( +cڏs_n_ascii_ow +( +c +, +n +) + gue +; + +63 + gc + + +n +; + +64 + gn + - +n +; + +68 #i +defed +( +__x86_64__ +|| defed( +_WIN64 +) + +69 cڡ +u_t + + gmask + = 0x8080808080808080ll; + +71 cڡ +u_t + + gmask + = 0x80808080l; + +74 cڡ +u_t +* + gcw + = +t_ +( +c +); + +76  +size_t + + gi + = 0, + gn + = +n + / +bys_r_wd +; i <; ++i) { + +77 i( + gcw +[ +i +] & + gmask + + gue +; + +80 cڡ  + gmad + = +n + & +ign_mask +; + +81 i( + gmad + > 0) { + +82 cڡ +size_t + + gofft + = +n + - +mad +; + +83 i( +cڏs_n_ascii_ow +( +c + + +offt +, +mad +) + gue +; + +86  + gl +; + +90  +f_ascii_ow +(cڡ * +c +, * +d +, +size_t + +n +) { + +91  +size_t + + gi + = 0; i < + gn +; ++i) { + +92 + gd +[ +i +] = +c +[i] & 0x7f; + +97  +f_ascii +(cڡ * +c +, * +d +, +size_t + +n +) { + +98 i( + gn + < 16) { + +99 +f_ascii_ow +( +c +, +d +, +n +); + +103 cڡ  + gbys_r_wd + = (*); + +104 cڡ  + gign_mask + = +bys_r_wd + - 1; + +105 cڡ  + gc_ulign + = +t_ +< +u_t +>( +c +& +ign_mask +; + +106 cڡ  + gd_ulign + = +t_ +< +u_t +>( +d +& +ign_mask +; + +108 i( + gc_ulign + > 0) { + +109 i( + gc_ulign + = +d_ulign +) { + +110 cڡ  +ulign + = +bys_r_wd + - +c_ulign +; + +111 +f_ascii_ow +( +c +, +d +, +ulign +); + +112 + gc + + +ulign +; + +113 + gd + + +ulign +; + +114 + gn + - +c_ulign +; + +116 +f_ascii_ow +( +c +, +d +, +n +); + +121 #i +defed +( +__x86_64__ +|| defed( +_WIN64 +) + +122 cڡ +u_t + + gmask + = ~0x8080808080808080ll; + +124 cڡ +u_t + + gmask + = ~0x80808080l; + +127 cڡ +u_t +* + gcw + = +t_ +( +c +); + +128 +u_t +* + gdw + = +t_ +( +d +); + +130  +size_t + + gi + = 0, + gn + = +n + / +bys_r_wd +; i <; ++i) { + +131 + gdw +[ +i +] = +cw +[i] & +mask +; + +134 cڡ  + gmad + = +n + & +ign_mask +; + +135 i( + gmad + > 0) { + +136 cڡ +size_t + + gofft + = +n + - +mad +; + +137 +f_ascii_ow +( +c + + +offt +, +d + + offt, +mad +); + +142  +size_t + +ba64_code +(cڡ * +c +, + +143 +size_t + + +, + +144 * +d +, + +145 +size_t + +dn +) { + +147 +as +( +dn + > +ba64_coded_size +( + +) && + +150 + gdn + = +ba64_coded_size +( + +); + +152  + ga +; + +153  + gb +; + +154  + gc +; + +155  + gi +; + +156  + gk +; + +157  + gn +; + +159 cڡ  + gb +[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + +163 + gi + = 0; + +164 + gk + = 0; + +165 + gn + = + + / 3 * 3; + +167  + gi + < + gn +) { + +168 + ga + = +c +[ +i + + 0] & 0xff; + +169 + gb + = +c +[ +i + + 1] & 0xff; + +170 + gc + = +c +[ +i + + 2] & 0xff; + +172 + gd +[ +k + + 0] = +b +[ +a + >> 2]; + +173 + gd +[ +k + + 1] = +b +[(( +a + & 3<< 4| ( +b + >> 4)]; + +174 + gd +[ +k + + 2] = +b +[(( +b + & 0x0f<< 2| ( +c + >> 6)]; + +175 + gd +[ +k + + 3] = +b +[ +c + & 0x3f]; + +177 + gi + += 3; + +178 + gk + += 4; + +181 i( + gn + ! + +) { + +182  + + - +n +) { + +184 +a + = +c +[ +i + + 0] & 0xff; + +185 + gd +[ +k + + 0] = +b +[ +a + >> 2]; + +186 + gd +[ +k + + 1] = +b +[( +a + & 3) << 4]; + +187 + gd +[ +k + + 2] = '='; + +188 + gd +[ +k + + 3] = '='; + +192 +a + = +c +[ +i + + 0] & 0xff; + +193 + gb + = +c +[ +i + + 1] & 0xff; + +194 + gd +[ +k + + 0] = +b +[ +a + >> 2]; + +195 + gd +[ +k + + 1] = +b +[(( +a + & 3<< 4| ( +b + >> 4)]; + +196 + gd +[ +k + + 2] = +b +[( +b + & 0x0f) << 2]; + +197 + gd +[ +k + + 3] = '='; + +202  + gdn +; + +206  +size_t + +hex_code +(cڡ * +c +, size_ + +, * +d +, size_ +dn +) { + +208 +as +( +dn + > + + * 2 && + +211 + gdn + = + + * 2; + +212  +ut32_t + + gi + = 0, + gk + = 0; k < + gdn +; i += 1, k += 2) { + +213 cڡ  +hex +[] = "0123456789abcdef"; + +214 +ut8_t + + gv + = +ic_ +( +c +[ +i +]); + +215 + gd +[ +k + + 0] = +hex +[ +v + >> 4]; + +216 + gd +[ +k + + 1] = +hex +[ +v + & 15]; + +219  + gdn +; + +224  + gLol +< + gVue +> +Encode +(cڡ * +buf +, + +225 +size_t + +bu +, + +226 +Encodg + +codg +) { + +227 +as +( +bu + < +node +:: +Bufr +:: +kMaxLgth +); + +228 i(! + gbu + && + gcodg + ! +BUFFER +) + +229  +New +(""). +ToLolChecked +(); + +231 + gLol +< + gSg +> + gv +; + +232  + gcodg +) { + +233  + gBUFFER +: + +234  +CyBufr +( +buf +, +bu +). +ToLolChecked +(); + +236  + gASCII +: + +237 i( +cڏs_n_ascii +( +buf +, +bu +)) { + +238 * + gout + = +w + [ +bu +]; + +239 +f_ascii +( +buf +, +out +, +bu +); + +240 + gv + = +New +< +Sg +>( +out +, + gbu +). +ToLolChecked +(); + +241 + gde +[] + gout +; + +243 + gv + = +New +< +Sg +>( +buf +, + gbu +). +ToLolChecked +(); + +247  + gUTF8 +: + +248 +v + = +New +< +Sg +>( +buf +, + gbu +). +ToLolChecked +(); + +251  + gBINARY +: { + +253 cڡ * +cbuf + = +t_ +( +buf +); + +254 +ut16_t + * + gtwobybuf + = +w + ut16_t[ +bu +]; + +255  +size_t + + gi + = 0; i < + gbu +; i++) { + +257 + gtwobybuf +[ +i +] = +cbuf +[i]; + +259 + gv + = +New +< +Sg +>( +twobybuf +, + gbu +). +ToLolChecked +(); + +260 + gde +[] + gtwobybuf +; + +264  + gBASE64 +: { + +265 +size_t + +dn + = +ba64_coded_size +( +bu +); + +266 * + gd + = +w + [ +dn +]; + +268 +size_t + + gwrn + = +ba64_code +( +buf +, +bu +, +d +, +dn +); + +269 +as +( +wrn + = +dn +); + +271 + gv + = +New +< +Sg +>( +d +, + gdn +). +ToLolChecked +(); + +272 + gde +[] + gd +; + +276  + gUCS2 +: { + +277 cڡ +ut16_t +* +da + = +t_ +( +buf +); + +278 + gv + = +New +< +Sg +>( +da +, + gbu + / 2). +ToLolChecked +(); + +282  + gHEX +: { + +283 +size_t + +dn + = +bu + * 2; + +284 * + gd + = +w + [ +dn +]; + +285 +size_t + + gwrn + = +hex_code +( +buf +, +bu +, +d +, +dn +); + +286 +as +( +wrn + = +dn +); + +288 + gv + = +New +< +Sg +>( +d +, + gdn +). +ToLolChecked +(); + +289 + gde +[] + gd +; + +294 +as +(0 && "unknownncoding"); + +298  + gv +; + +301 #unde +ba64_coded_size + + + @interface/node_modules/nan/nan_typedarray_contents.h + +9 #ide +NAN_TYPEDARRAY_CONTENTS_H_ + + +10  + #NAN_TYPEDARRAY_CONTENTS_H_ + + + ) + +12 + gme +< +tyme + + gT +> + +13 as + cTydAayCڋs + { + +14 + mpublic +: + +15 +le + +exic + +TydAayCڋs +( +v8 +:: +Lol + +om +) : + +16 +ngth_ +(0), + $da_ +( +NULL +) { + +17 +HdSce + +sce +; + +19 +size_t + +ngth + = 0; + +20 * +da + = +NULL +; + +22 #i + `defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +23 ( +V8_MAJOR_VERSION + =4 && + `defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +25 i( +om +-> + `IsAayBufrVw +()) { + +26 +v8 +:: +Lol + +y + = + +27 +v8 +:: +Lol +:: + `Ca +( +om +); + +29 cڡ +size_t + +by_ngth + = +y +-> + `ByLgth +(); + +30 cڡ +rdiff_t + +by_offt + = +y +-> + `ByOfft +(); + +31 +v8 +:: +Lol + +bufr + = +y +-> + `Bufr +(); + +33 +ngth + = +by_ngth + / ( +T +); + +36 #i( +V8_MAJOR_VERSION + >= 8) + +37 +da + = +ic_ +<*>( +bufr +-> + `GBackgSte +()-> + `Da +()+ +by_offt +; + +39 +da + = +ic_ +<*>( +bufr +-> + `GCڋs +(). + `Da +()+ +by_offt +; + +45 i( +om +-> + `IsObje +(&& !om-> + `IsNu +()) { + +46 +v8 +:: +Lol + +y + = v8::Lol:: + `Ca +( +om +); + +48 +MaybeLol +< +v8 +:: +Vue +> +bufr + = + `G +( +y +, + +49 +New +< +v8 +:: +Sg +>("bufr"). + `ToLolChecked +()); + +50 +MaybeLol +< +v8 +:: +Vue +> +by_ngth + = + `G +( +y +, + +51 +New +< +v8 +:: +Sg +>("byLgth"). + `ToLolChecked +()); + +52 +MaybeLol +< +v8 +:: +Vue +> +by_offt + = + `G +( +y +, + +53 +New +< +v8 +:: +Sg +>("byOfft"). + `ToLolChecked +()); + +55 i(! +bufr +. + `IsEmy +() && + +56 ! +by_ngth +. + `IsEmy +(&& by_ngth. + `ToLolChecked +()-> + `IsUt32 +() && + +57 ! +by_offt +. + `IsEmy +(&& by_offt. + `ToLolChecked +()-> + `IsUt32 +()) { + +58 +da + = +y +-> + `GIndexedPrݔtsExAayDa +(); + +59 if( +da +) { + +60 +ngth + = +by_ngth +. + `ToLolChecked +()-> + `Ut32Vue +(/ ( +T +); + +67 #i + `defed +( +_MSC_VER +&& _MSC_VER >1900 || +__lulus + >= 201103L + +68 + `as +( +t_ +< +u_t +>( +da +% + `ignof + ( +T +) == 0); + +69 #i + `defed +( +_MSC_VER +&& _MSC_VER >1600 || defed( +__GNUC__ +) + +70 + `as +( +t_ +< +u_t +>( +da +% + `__ignof +( +T +) == 0); + +72 + `as +( +t_ +< +u_t +>( +da +%  ( +T +) == 0); + +75 +ngth_ + = +ngth +; + +76 +da_ + = +ic_ +< +T +*>( +da +); + +79 +le + +size_t + + $ngth +(cڡ {  +ngth_ +; + } +} + +80 +le + +T +* + gݔ +*({  + gda_ +; } + +81 +le + cڡ +T +* + gݔ +*(cڡ {  + gda_ +; } + +83 + give +: + +84 + $NAN_DISALLOW_ASSIGN_COPY_MOVE +( +TydAayCڋs +) + +87 * +ݔ + + `w +( +size_t + +size +); + +88  +ݔ + + $de +(*, +size_t +) { + +89 + `abt +(); + +90 + } +} + +92 +size_t + + gngth_ +; + +93 +T +* + gda_ +; + + @interface/node_modules/nan/nan_weak.h + +9 #ide +NAN_WEAK_H_ + + +10  + #NAN_WEAK_H_ + + + ) + +12 cڡ  + gkIlFldsInWkClback + = 2; + +13 cڡ  + gkNoIlFldIndex + = -1; + +15 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +16 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +17  + #NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + \ + +18 +v8 +:: +WkClbackInfo + > cڡ& + + ) + +19  + #NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + \ + +20 +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + + + ) + +21  + #NAN_WEAK_PARAMETER_CALLBACK_SIG_ + +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + + + ) + +22  + #NAN_WEAK_TWOFIELD_CALLBACK_SIG_ + +NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + + + ) + +23 #i +NODE_MODULE_VERSION + > +IOJS_1_1_MODULE_VERSION + + +24  + #NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + \ + +25 +v8 +:: +PhtomClbackDa +< +WkClbackInfo +< +T +> > cڡ& + + ) + +26  + #NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + \ + +27 +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + + + ) + +28  + #NAN_WEAK_PARAMETER_CALLBACK_SIG_ + +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + + + ) + +29  + #NAN_WEAK_TWOFIELD_CALLBACK_SIG_ + +NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + + + ) + +30 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +31  + #NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + \ + +32 +v8 +:: +PhtomClbackDa +< +WkClbackInfo +< +T +> > cڡ& + + ) + +33  + #NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + \ + +34 +v8 +:: +IlFldsClbackDa +< +WkClbackInfo +< +T +>, > cڡ& + + ) + +35  + #NAN_WEAK_PARAMETER_CALLBACK_SIG_ + +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + + + ) + +36  + #NAN_WEAK_TWOFIELD_CALLBACK_SIG_ + +NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + + + ) + +37 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +38  + #NAN_WEAK_CALLBACK_DATA_TYPE_ + \ + +39 +v8 +:: +WkClbackDa +< +S +, +WkClbackInfo +< +T +> > cڡ& + + ) + +40  + #NAN_WEAK_CALLBACK_SIG_ + +NAN_WEAK_CALLBACK_DATA_TYPE_ + + + ) + +42  + #NAN_WEAK_CALLBACK_DATA_TYPE_ + * + + ) + +43  + #NAN_WEAK_CALLBACK_SIG_ + \ + +44 +v8 +:: +Psit +, +NAN_WEAK_CALLBACK_DATA_TYPE_ + + + ) + +47 + gme +< +tyme + + gT +> + +48 as + cWkClbackInfo + { + +49 + mpublic +: + +50 (* + tClback +)(cڡ + tWkClbackInfo +< + tT +>& + tda +); + +51 + `WkClbackInfo +( + +52 +Psit +< +v8 +:: +Vue +> * +rsit + + +53 , +Clback + +back + + +54 , * +m + + +55 , * +fld1 + = 0 + +56 , * +fld2 + = 0) : + +57 + `back_ +( +back +), + `isީe_ +(0), + $m_ +( +m +) { + +58 +d +:: + `memy +(& +rsit_ +, +rsit +,  ( +v8 +:: +Psit +)); + +59 +_flds_ +[0] = +fld1 +; + +60 +_flds_ +[1] = +fld2 +; + +62 +le + +v8 +:: +Isީe + * + $GIsީe +(cڡ {  +isީe_ +; + } +} + +63 +le + +T + * + $GPam +(cڡ {  +ic_ +< +T +*>( +m_ +); + } +} + +64 +le + * + $GIlFld +( +dex +) const { + +65 + `as +(( +dex + == 0 || index == 1) && "internal field index out of bounds"); + +66 i( +dex + == 0) { + +67  +_flds_ +[0]; + +69  +_flds_ +[1]; + +71 + } +} + +73 + give +: + +74 + $NAN_DISALLOW_ASSIGN_COPY_MOVE +( +WkClbackInfo +) + +75 +Clback + +back_ +; + +76 +v8 +:: +Isީe + * +isީe_ +; + +77 * +m_ +; + +78 * +_flds_ +[ +kIlFldsInWkClback +]; + +79 +v8 +:: +Psit + +rsit_ +; + +80 +me +< +tyme + +S +,ym +M +> +nd + +ass + +Psit +; + +81 +me +< +tyme + +S +> +nd + +ass + +PsitBa +; + +82 #i +NODE_MODULE_VERSION + < +NODE_0_12_MODULE_VERSION + + +83 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +84 +me +< +tyme + +S +> + +85  + `voke +( +NAN_WEAK_CALLBACK_SIG_ + +da +); + +86 +me +< +tyme + +S +> + +87  +WkClbackInfo + * + `unwp +( +NAN_WEAK_CALLBACK_DATA_TYPE_ + +da +); + +89  + `voke +( +NAN_WEAK_CALLBACK_SIG_ + +da +); + +90  +WkClbackInfo + * + `unwp +( +NAN_WEAK_CALLBACK_DATA_TYPE_ + +da +); + +93 #i + `defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +94 ( +V8_MAJOR_VERSION + =4 && + `defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +95 +me +< +bo + +isFPass +> + +96  + `vokam +( +NAN_WEAK_PARAMETER_CALLBACK_SIG_ + +da +); + +97 +me +< +bo + +isFPass +> + +98  + `vokwofld +( +NAN_WEAK_TWOFIELD_CALLBACK_SIG_ + +da +); + +100  + `vokam +( +NAN_WEAK_PARAMETER_CALLBACK_SIG_ + +da +); + +101  + `vokwofld +( +NAN_WEAK_TWOFIELD_CALLBACK_SIG_ + +da +); + +103  +WkClbackInfo + * + `unwam +( + +104 +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + +da +); + +105  +WkClbackInfo + * + `unwwofld +( + +106 +NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + +da +); + +108 + } +}; + +111 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +112 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +114 +me +< +tyme + +T +> + +115 +me +< +bo + +isFPass +> + +117 +WkClbackInfo +< +T +>:: + $vokam +( +NAN_WEAK_PARAMETER_CALLBACK_SIG_ + +da +) { + +118 +WkClbackInfo +< +T +> * +cbfo + = + `unwam +( +da +); + +119 i( +isFPass +) { + +120 +cbfo +-> +rsit_ +. + `Ret +(); + +121 +da +. + `SSecdPassClback +( +vokam +< +l +>); + +123 +cbfo +-> + `back_ +(*cbinfo); + +124 +de + +cbfo +; + +126 + } +} + +128 + gme +< +tyme + + gT +> + +129 + gme +< +bo + + gisFPass +> + +131 + gWkClbackInfo +< + gT +>:: + $vokwofld +( +NAN_WEAK_TWOFIELD_CALLBACK_SIG_ + +da +) { + +132 +WkClbackInfo +< +T +> * +cbfo + = + `unwwofld +( +da +); + +133 i( +isFPass +) { + +134 +cbfo +-> +rsit_ +. + `Ret +(); + +135 +da +. + `SSecdPassClback +( +vokwofld +< +l +>); + +137 +cbfo +-> + `back_ +(*cbinfo); + +138 +de + +cbfo +; + +140 + } +} + +142 + gme +< +tyme + + gT +> + +143 + gWkClbackInfo +< + gT +> *WkClbackInfo:: + $unwam +( + +144 +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + +da +) { + +145 +WkClbackInfo +< +T +> * +cbfo + = + +146 +ic_ +< +WkClbackInfo +< +T +>*>( +da +. + `GPam +()); + +147 +cbfo +-> +isީe_ + = +da +. + `GIsީe +(); + +148  +cbfo +; + +149 + } +} + +151 + gme +< +tyme + + gT +> + +152 + gWkClbackInfo +< + gT +> *WkClbackInfo:: + $unwwofld +( + +153 +NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + +da +) { + +154 +WkClbackInfo +< +T +> * +cbfo + = + +155 +ic_ +< +WkClbackInfo +< +T +>*>( +da +. + `GIlFld +(0)); + +156 +cbfo +-> +isީe_ + = +da +. + `GIsީe +(); + +157  +cbfo +; + +158 + } +} + +160 #unde +NAN_WEAK_PARAMETER_CALLBACK_SIG_ + + +161 #unde +NAN_WEAK_TWOFIELD_CALLBACK_SIG_ + + +162 #unde +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + + +163 #unde +NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + + +164 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +166 + gme +< +tyme + + gT +> + +168 + gWkClbackInfo +< + gT +>:: + $vokam +( +NAN_WEAK_PARAMETER_CALLBACK_SIG_ + +da +) { + +169 +WkClbackInfo +< +T +> * +cbfo + = + `unwam +( +da +); + +170 +cbfo +-> +rsit_ +. + `Ret +(); + +171 +cbfo +-> + `back_ +(*cbinfo); + +172 +de + +cbfo +; + +173 + } +} + +175 + gme +< +tyme + + gT +> + +177 + gWkClbackInfo +< + gT +>:: + $vokwofld +( +NAN_WEAK_TWOFIELD_CALLBACK_SIG_ + +da +) { + +178 +WkClbackInfo +< +T +> * +cbfo + = + `unwwofld +( +da +); + +179 +cbfo +-> +rsit_ +. + `Ret +(); + +180 +cbfo +-> + `back_ +(*cbinfo); + +181 +de + +cbfo +; + +182 + } +} + +184 + gme +< +tyme + + gT +> + +185 + gWkClbackInfo +< + gT +> *WkClbackInfo:: + $unwam +( + +186 +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + +da +) { + +187 +WkClbackInfo +< +T +> * +cbfo + = + +188 +ic_ +< +WkClbackInfo +< +T +>*>( +da +. + `GPam +()); + +189 +cbfo +-> +isީe_ + = +da +. + `GIsީe +(); + +190  +cbfo +; + +191 + } +} + +193 + gme +< +tyme + + gT +> + +194 + gWkClbackInfo +< + gT +> *WkClbackInfo:: + $unwwofld +( + +195 +NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + +da +) { + +196 +WkClbackInfo +< +T +> * +cbfo + = + +197 +ic_ +< +WkClbackInfo +< +T +>*>( +da +. + `GIlFld1 +()); + +198 +cbfo +-> +isީe_ + = +da +. + `GIsީe +(); + +199  +cbfo +; + +200 + } +} + +202 #unde +NAN_WEAK_PARAMETER_CALLBACK_SIG_ + + +203 #unde +NAN_WEAK_TWOFIELD_CALLBACK_SIG_ + + +204 #unde +NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ + + +205 #unde +NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ + + +206 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +208 + gme +< +tyme + + gT +> + +209 + gme +< +tyme + + gS +> + +210  + gWkClbackInfo +< + gT +>:: + $voke +( +NAN_WEAK_CALLBACK_SIG_ + +da +) { + +211 +WkClbackInfo +< +T +> * +cbfo + = + `unwp +( +da +); + +212 +cbfo +-> +rsit_ +. + `Ret +(); + +213 +cbfo +-> + `back_ +(*cbinfo); + +214 +de + +cbfo +; + +215 + } +} + +217 + gme +< +tyme + + gT +> + +218 + gme +< +tyme + + gS +> + +219 + gWkClbackInfo +< + gT +> *WkClbackInfo:: + $unwp +( + +220 +NAN_WEAK_CALLBACK_DATA_TYPE_ + +da +) { + +221 * +m + = +da +. + `GPam +(); + +222 +WkClbackInfo +< +T +> * +cbfo + = + +223 +ic_ +< +WkClbackInfo +< +T +>*>( +m +); + +224 +cbfo +-> +isީe_ + = +da +. + `GIsީe +(); + +225  +cbfo +; + +226 + } +} + +228 #unde +NAN_WEAK_CALLBACK_SIG_ + + +229 #unde +NAN_WEAK_CALLBACK_DATA_TYPE_ + + +232 + gme +< +tyme + + gT +> + +233  + gWkClbackInfo +< + gT +>:: + $voke +( +NAN_WEAK_CALLBACK_SIG_ + +da +) { + +234 +WkClbackInfo +< +T +> * +cbfo + = + `unwp +( +da +); + +235 +cbfo +-> +rsit_ +. + `Dio +(); + +236 +cbfo +-> +rsit_ +. + `Cˬ +(); + +237 +cbfo +-> + `back_ +(*cbinfo); + +238 +de + +cbfo +; + +239 + } +} + +241 + gme +< +tyme + + gT +> + +242 + gWkClbackInfo +< + gT +> *WkClbackInfo:: + $unwp +( + +243 +NAN_WEAK_CALLBACK_DATA_TYPE_ + +da +) { + +244 +WkClbackInfo +< +T +> * +cbfo + = + +245 +ic_ +< +WkClbackInfo +< +T +>*>( +da +); + +246 +cbfo +-> +isީe_ + = +v8 +:: +Isީe +:: + `GCut +(); + +247  +cbfo +; + +248 + } +} + +250 #unde +NAN_WEAK_CALLBACK_SIG_ + + +251 #unde +NAN_WEAK_CALLBACK_DATA_TYPE_ + + +254 #i +defed +( +V8_MAJOR_VERSION +) && (V8_MAJOR_VERSION > 4 || \ + +255 ( + gV8_MAJOR_VERSION + =4 && +defed +( +V8_MINOR_VERSION +) && V8_MINOR_VERSION >= 3)) + +256 +me +< +tyme + +T +,ym + gM +> + +257 + gme +< +tyme + + gP +> + +258 +le +  + gPsit +< + gT +, + gM +>:: +SWk +( + +259 +P + * +m + + +260 , +tyme + +WkClbackInfo +< +P +>:: +Clback + +back + + +261 , +WkClbackTy + +ty +) { + +262 + gWkClbackInfo +< + gP +> * + gwcbd +; + +263 i( + gty + = +WkClbackTy +:: +kPam +) { + +264 +wcbd + = +w + +WkClbackInfo +< +P +>( + +265 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +266 , + gback + + +267 , + gm +); + +268 + gv8 +:: +PsitBa +< +T +>:: +SWk +( + +269 +wcbd + + +270 , +WkClbackInfo +< +P +>:: +me + +vokam +< +ue +> + +271 , +ty +); + +273 + gv8 +:: +Lol +< +v8 +:: +Vue +>* +lf_v +( +t_ +*>( +this +)); + +274 +as +((* +lf_v +)-> +IsObje +()); + +275 + gv8 +:: +Lol +< +v8 +:: +Obje +> +lf +((* +lf_v +). +As +()); + +276  + gcou + = +lf +-> +IlFldCou +(); + +277 * + g_flds +[ +kIlFldsInWkClback +] = {0, 0}; + +278  + gi + = 0; i < + gcou + && i < + gkIlFldsInWkClback +; i++) { + +279 + g_flds +[ +i +] = +lf +-> +GAligdPorFromIlFld +(i); + +281 + gwcbd + = +w + +WkClbackInfo +< +P +>( + +282 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +283 , + gback + + +285 , + g_flds +[0] + +286 , + g_flds +[1]); + +287 + glf +-> +SAligdPorInIlFld +(0, +wcbd +); + +288 + gv8 +:: +PsitBa +< +T +>:: +SWk +( + +289 +ic_ +< +WkClbackInfo +< +P +>*>(0) + +290 , +WkClbackInfo +< +P +>:: +me + +vokwofld +< +ue +> + +291 , +ty +); + +294 #i +NODE_MODULE_VERSION + > +IOJS_1_1_MODULE_VERSION + + +295 + gme +< +tyme + + gT +,ym + gM +> + +296 + gme +< +tyme + + gP +> + +297 +le +  + gPsit +< + gT +, + gM +>:: +SWk +( + +298 +P + * +m + + +299 , +tyme + +WkClbackInfo +< +P +>:: +Clback + +back + + +300 , +WkClbackTy + +ty +) { + +301 + gWkClbackInfo +< + gP +> * + gwcbd +; + +302 i( + gty + = +WkClbackTy +:: +kPam +) { + +303 +wcbd + = +w + +WkClbackInfo +< +P +>( + +304 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +305 , + gback + + +306 , + gm +); + +307 + gv8 +:: +PsitBa +< +T +>:: +SPhtom +( + +308 +wcbd + + +309 , +WkClbackInfo +< +P +>:: +vokam +); + +311 + gv8 +:: +Lol +< +v8 +:: +Vue +>* +lf_v +( +t_ +*>( +this +)); + +312 +as +((* +lf_v +)-> +IsObje +()); + +313 + gv8 +:: +Lol +< +v8 +:: +Obje +> +lf +((* +lf_v +). +As +()); + +314  + gcou + = +lf +-> +IlFldCou +(); + +315 * + g_flds +[ +kIlFldsInWkClback +] = {0, 0}; + +316  + gi + = 0; i < + gcou + && i < + gkIlFldsInWkClback +; i++) { + +317 + g_flds +[ +i +] = +lf +-> +GAligdPorFromIlFld +(i); + +319 + gwcbd + = +w + +WkClbackInfo +< +P +>( + +320 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +321 , + gback + + +323 , + g_flds +[0] + +324 , + g_flds +[1]); + +325 + glf +-> +SAligdPorInIlFld +(0, +wcbd +); + +326 + gv8 +:: +PsitBa +< +T +>:: +SPhtom +( + +327 +ic_ +< +WkClbackInfo +< +P +>*>(0) + +328 , +WkClbackInfo +< +P +>:: +vokwofld + + +330 , +cou + > 1 ? 1 : +kNoIlFldIndex +); + +333 #i +NODE_MODULE_VERSION + > +NODE_0_12_MODULE_VERSION + + +334 + gme +< +tyme + + gT +,ym + gM +> + +335 + gme +< +tyme + + gP +> + +336 +le +  + gPsit +< + gT +, + gM +>:: +SWk +( + +337 +P + * +m + + +338 , +tyme + +WkClbackInfo +< +P +>:: +Clback + +back + + +339 , +WkClbackTy + +ty +) { + +340 + gWkClbackInfo +< + gP +> * + gwcbd +; + +341 i( + gty + = +WkClbackTy +:: +kPam +) { + +342 +wcbd + = +w + +WkClbackInfo +< +P +>( + +343 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +344 , + gback + + +345 , + gm +); + +346 + gv8 +:: +PsitBa +< +T +>:: +SPhtom +( + +347 +wcbd + + +348 , +WkClbackInfo +< +P +>:: +vokam +); + +350 + gv8 +:: +Lol +< +v8 +:: +Vue +>* +lf_v +( +t_ +*>( +this +)); + +351 +as +((* +lf_v +)-> +IsObje +()); + +352 + gv8 +:: +Lol +< +v8 +:: +Obje +> +lf +((* +lf_v +). +As +()); + +353  + gcou + = +lf +-> +IlFldCou +(); + +354 * + g_flds +[ +kIlFldsInWkClback +] = {0, 0}; + +355  + gi + = 0; i < + gcou + && i < + gkIlFldsInWkClback +; i++) { + +356 + g_flds +[ +i +] = +lf +-> +GAligdPorFromIlFld +(i); + +358 + gwcbd + = +w + +WkClbackInfo +< +P +>( + +359 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +360 , + gback + + +362 , + g_flds +[0] + +363 , + g_flds +[1]); + +364 + glf +-> +SAligdPorInIlFld +(0, +wcbd +); + +365 + gv8 +:: +PsitBa +< +T +>:: +SPhtom +( + +366 +WkClbackInfo +< +P +>:: +vokwofld + + +368 , +cou + > 1 ? 1 : +kNoIlFldIndex +); + +371 #i +NODE_MODULE_VERSION + > +NODE_0_10_MODULE_VERSION + + +372 + gme +< +tyme + + gT +,ym + gM +> + +373 + gme +< +tyme + + gP +> + +374 +le +  + gPsit +< + gT +, + gM +>:: +SWk +( + +375 +P + * +m + + +376 , +tyme + +WkClbackInfo +< +P +>:: +Clback + +back + + +377 , +WkClbackTy + +ty +) { + +378 + gWkClbackInfo +< + gP +> * + gwcbd +; + +379 i( + gty + = +WkClbackTy +:: +kPam +) { + +380 +wcbd + = +w + +WkClbackInfo +< +P +>( + +381 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +382 , + gback + + +383 , + gm +); + +384 + gv8 +:: +PsitBa +< +T +>:: +SWk +( +wcbd +, +WkClbackInfo +< +P +>:: +voke +); + +386 + gv8 +:: +Lol +< +v8 +:: +Vue +>* +lf_v +( +t_ +*>( +this +)); + +387 +as +((* +lf_v +)-> +IsObje +()); + +388 + gv8 +:: +Lol +< +v8 +:: +Obje +> +lf +((* +lf_v +). +As +()); + +389  + gcou + = +lf +-> +IlFldCou +(); + +390 * + g_flds +[ +kIlFldsInWkClback +] = {0, 0}; + +391  + gi + = 0; i < + gcou + && i < + gkIlFldsInWkClback +; i++) { + +392 + g_flds +[ +i +] = +lf +-> +GAligdPorFromIlFld +(i); + +394 + gwcbd + = +w + +WkClbackInfo +< +P +>( + +395 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +396 , + gback + + +398 , + g_flds +[0] + +399 , + g_flds +[1]); + +400 + gv8 +:: +PsitBa +< +T +>:: +SWk +( +wcbd +, +WkClbackInfo +< +P +>:: +voke +); + +404 + gme +< +tyme + + gT +> + +405 + gme +< +tyme + + gP +> + +406 +le +  + gPsitBa +< + gT +>:: +SWk +( + +407 +P + * +m + + +408 , +tyme + +WkClbackInfo +< +P +>:: +Clback + +back + + +409 , +WkClbackTy + +ty +) { + +410 + gWkClbackInfo +< + gP +> * + gwcbd +; + +411 i( + gty + = +WkClbackTy +:: +kPam +) { + +412 +wcbd + = +w + +WkClbackInfo +< +P +>( + +413 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +414 , + gback + + +415 , + gm +); + +416 + grsit +. +MakeWk +( +wcbd +, +WkClbackInfo +< +P +>:: +voke +); + +418 + gv8 +:: +Lol +< +v8 +:: +Vue +>* +lf_v +( +t_ +*>( +this +)); + +419 +as +((* +lf_v +)-> +IsObje +()); + +420 + gv8 +:: +Lol +< +v8 +:: +Obje +> +lf +((* +lf_v +). +As +()); + +421  + gcou + = +lf +-> +IlFldCou +(); + +422 * + g_flds +[ +kIlFldsInWkClback +] = {0, 0}; + +423  + gi + = 0; i < + gcou + && i < + gkIlFldsInWkClback +; i++) { + +424 + g_flds +[ +i +] = +lf +-> +GPorFromIlFld +(i); + +426 + gwcbd + = +w + +WkClbackInfo +< +P +>( + +427 +t_ +< +Psit +< +v8 +:: +Vue +>*>( +this +) + +428 , + gback + + +430 , + g_flds +[0] + +431 , + g_flds +[1]); + +432 + grsit +. +MakeWk +( +wcbd +, +WkClbackInfo +< +P +>:: +voke +); + + @interface/node_modules/watchpack-chokidar2/node_modules/fsevents/fsevents.cc + +6  + ~"n.h +" + +7  + ~"uv.h +" + +8  + ~"v8.h +" + +9  + ~"CeFoundi/CeFoundi.h +" + +10  + ~"CeSvis/CeSvis.h +" + +11  + ~ + +12  + ~ + +14  + ~"c/age.cc +" + +15 +mea + + gf + { + +16 as + cFSEvts + : +public + +N +:: +ObjeWp + { + +17 +public +: + +18 +exic + +FSEvts +(cڡ * +th +); + +19 ~ +FSEvts +(); + +21 +uv_mux_t + + gmux +; + +24 +uv_async_t + + gasync +; + +25  +asyncS +(); + +26  +asyncTrigg +(); + +27  +asyncSt +(); + +30 +uv_thad_t + + gthad +; + +31 +CFRunLoRef + + gthadlo +; + +32  +thadS +(); + +33  +thadRun +(* +x +); + +34  +thadSt +(); + +37 + gN +:: +AsyncResour + +async_sour +; + +38  +emEvt +(cڡ * +th +, +UI32 + +ags +, +UI64 + +id +); + +41 +CFAayRef + + gths +; + +42 + gd +:: +ve +< +f_evt +*> +evts +; + +43  +Inlize +( +v8 +:: +Lol + +expts +); + +46  +NAN_METHOD +( +New +); + +47  +NAN_METHOD +( +St +); + +48  +NAN_METHOD +( +S +); + +53 +usg + +mea + + gf +; + +55 + gFSEvts +:: + $FSEvts +(cڡ * +th +) + +56 : + `async_sour +("fsevents:FSEvents") { + +57 +CFSgRef + +ds +[] = { + `CFSgCeWhCSg +( +NULL +, +th +, +kCFSgEncodgUTF8 +) }; + +58 +ths + = + `CFAayCe +( +NULL +, (cڡ **)& +ds +, 1, NULL); + +59 +thadlo + = +NULL +; + +60 i( + `uv_mux_ +(& +mux +) + `abt +(); + +61 + } +} + +62 + gFSEvts +::~ + $FSEvts +() { + +63 + `CFR +( +ths +); + +64 + `uv_mux_deroy +(& +mux +); + +65 + } +} + +67 #ide +kFSEvtSmEvtFgImCed + + +68  + #kFSEvtSmEvtFgImCed + 0x00000010 + + ) + +71  + ~"c/async.cc +" + +72  + ~"c/thad.cc +" + +73  + ~"c/cڡts.cc +" + +74  + ~"c/mhods.cc +" + +76  + gFSEvts +:: +Inlize +( +v8 +:: +Lol + +expts +) { + +77 +v8 +:: +Isީe +* +isީe + = +expts +-> +GIsީe +(); + +78 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +cڋxt + = +isީe +-> +GCutCڋxt +(); + +79 + gv8 +:: +Lol +< +v8 +:: +FuniTeme +> +l + = +N +:: +New +( +FSEvts +::New); + +80 + gl +-> +SCssName +( +N +:: +New +< +v8 +:: +Sg +>("FSEvts"). +ToLolChecked +()); + +81 + gl +-> +InTeme +()-> +SIlFldCou +(1); + +82 + gN +:: +SPryTeme +( +l +, "t", +N +:: +New +< +v8 +:: +FuniTeme +>( +FSEvts +:: +S +)); + +83 + gN +:: +SPryTeme +( +l +, "", +N +:: +New +< +v8 +:: +FuniTeme +>( +FSEvts +:: +St +)); + +84 + gN +:: +S +( +expts +, +N +:: +New +< +v8 +:: +Sg +>("Cڡts"). +ToLolChecked +(), +Cڡts +()); + +85 + gN +:: +S +( +expts +, +N +:: +New +< +v8 +:: +Sg +>("FSEvts"). +ToLolChecked +(), +l +-> +GFuni +( +cڋxt +).ToLocalChecked()); + +88 +NODE_MODULE +( +f +, +FSEvts +:: +Inlize +) + + @interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/async.cc + +7  + $async_age +( +uv_async_t + * +async +) { + +8 i(! +async +-> +da +) ; + +9 +FSEvts + * +f + = (FSEvt*) +async +-> +da +; + +10 +CFIndex + +idx +, +t +; + +11 +f_evt + * +evt +; + +12  +thbuf +[1024]; + +13 cڡ * +thr + = +NULL +; + +14 + `uv_mux_lock +(& +f +-> +mux +); + +15 +t + = +f +-> +evts +. + `size +(); + +16  +idx +=0; idx< +t +; idx++) { + +17 +evt + = +f +-> +evts +. + ` +( +idx +); + +18 i( +evt + = +NULL +) ; + +19 +thr + = + `CFSgGCSgP +( +evt +-> +th +, +kCFSgEncodgUTF8 +); + +20 i(! +thr + + `CFSgGCSg +( +evt +-> +th +, +thbuf +, 1024, +kCFSgEncodgUTF8 +); + +21 +f +-> + `emEvt +( +thr + ?h: +thbuf +, +evt +-> +ags +,vt-> +id +); + +22 +de + +evt +; + +24 i( +t +>0 +f +-> +evts +. + `r +(); + +25 + `uv_mux_uock +(& +f +-> +mux +); + +26 + } +} + +28  + gFSEvts +:: + $asyncS +() { + +29 i( +async +. +da + = +this +) ; + +30 +async +. +da + = +this +; + +31 + `uv_async_ +( + `uv_deu_lo +(), & +async +, ( +uv_async_cb + +async_age +); + +32 + } +} + +34  + gFSEvts +:: + $asyncTrigg +() { + +35 i( +async +. +da + ! +this +) ; + +36 + `uv_async_nd +(& +async +); + +37 + } +} + +39  + gFSEvts +:: + $asyncSt +() { + +40 i( +async +. +da + ! +this +) ; + +41 +async +. +da + = +NULL +; + +42 + `uv_o +(( +uv_hd_t + *& +async +, +NULL +); + +43 + } +} + + @interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/constants.cc + +7 #ide +kFSEvtSmEvtFgNe + + +8  + #kFSEvtSmEvtFgNe + 0x00000000 + + ) + +11 #ide +kFSEvtSmEvtFgMuSnSubDs + + +12  + #kFSEvtSmEvtFgMuSnSubDs + 0x00000001 + + ) + +15 #ide +kFSEvtSmEvtFgUrDrݳd + + +16  + #kFSEvtSmEvtFgUrDrݳd + 0x00000002 + + ) + +19 #ide +kFSEvtSmEvtFgKlDrݳd + + +20  + #kFSEvtSmEvtFgKlDrݳd + 0x00000004 + + ) + +23 #ide +kFSEvtSmEvtFgEvtIdsWed + + +24  + #kFSEvtSmEvtFgEvtIdsWed + 0x00000008 + + ) + +27 #ide +kFSEvtSmEvtFgHiyDe + + +28  + #kFSEvtSmEvtFgHiyDe + 0x00000010 + + ) + +31 #ide +kFSEvtSmEvtFgRoChged + + +32  + #kFSEvtSmEvtFgRoChged + 0x00000020 + + ) + +35 #ide +kFSEvtSmEvtFgMou + + +36  + #kFSEvtSmEvtFgMou + 0x00000040 + + ) + +39 #ide +kFSEvtSmEvtFgUnmou + + +40  + #kFSEvtSmEvtFgUnmou + 0x00000080 + + ) + +43 #ide +kFSEvtSmEvtFgImCed + + +44  + #kFSEvtSmEvtFgImCed + 0x00000100 + + ) + +47 #ide +kFSEvtSmEvtFgImRemoved + + +48  + #kFSEvtSmEvtFgImRemoved + 0x00000200 + + ) + +51 #ide +kFSEvtSmEvtFgImInodeMaMod + + +52  + #kFSEvtSmEvtFgImInodeMaMod + 0x00000400 + + ) + +55 #ide +kFSEvtSmEvtFgImRamed + + +56  + #kFSEvtSmEvtFgImRamed + 0x00000800 + + ) + +59 #ide +kFSEvtSmEvtFgImModifd + + +60  + #kFSEvtSmEvtFgImModifd + 0x00001000 + + ) + +63 #ide +kFSEvtSmEvtFgImFdInfoMod + + +64  + #kFSEvtSmEvtFgImFdInfoMod + 0x00002000 + + ) + +67 #ide +kFSEvtSmEvtFgImChgeOwr + + +68  + #kFSEvtSmEvtFgImChgeOwr + 0x00004000 + + ) + +71 #ide +kFSEvtSmEvtFgImXMod + + +72  + #kFSEvtSmEvtFgImXMod + 0x00008000 + + ) + +75 #ide +kFSEvtSmEvtFgImIsFe + + +76  + #kFSEvtSmEvtFgImIsFe + 0x00010000 + + ) + +79 #ide +kFSEvtSmEvtFgImIsD + + +80  + #kFSEvtSmEvtFgImIsD + 0x00020000 + + ) + +83 #ide +kFSEvtSmEvtFgImIsSymlk + + +84  + #kFSEvtSmEvtFgImIsSymlk + 0x00040000 + + ) + +87  + gv8 +:: +Lol +< +v8 +:: +Obje +> + $Cڡts +() { + +88 +v8 +:: +Lol + +obje + = +N +:: +New +(); + +89 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgNe"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgNe +)); + +90 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgMuSnSubDs"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgMuSnSubDs +)); + +91 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgUrDrݳd"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgUrDrݳd +)); + +92 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgKlDrݳd"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgKlDrݳd +)); + +93 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgEvtIdsWed"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgEvtIdsWed +)); + +94 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgHiyDe"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgHiyDe +)); + +95 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgRoChged"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgRoChged +)); + +96 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgMou"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgMou +)); + +97 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgUnmou"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgUnmou +)); + +98 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImCed"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImCed +)); + +99 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImRemoved"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImRemoved +)); + +100 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImInodeMaMod"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImInodeMaMod +)); + +101 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImRamed"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImRamed +)); + +102 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImModifd"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImModifd +)); + +103 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImFdInfoMod"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImFdInfoMod +)); + +104 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImChgeOwr"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImChgeOwr +)); + +105 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImXMod"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImXMod +)); + +106 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImIsFe"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImIsFe +)); + +107 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImIsD"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImIsD +)); + +108 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImIsSymlk"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImIsSymlk +)); + +109  +obje +; + +110 + } +} + + @interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/methods.cc + +6  + gFSEvts +:: + $emEvt +(cڡ * +th +, +UI32 + +ags +, +UI64 + +id +) { + +7 +N +:: +HdSce + +hd_sce +; + +8 +v8 +:: +Lol + +obje + = + `hd +(); + +9 +v8 +:: +Lol + +key + = +N +:: +New +("hdr"). + `ToLolChecked +(); + +10 +N +:: +Clback + + `hdr +(N:: +To +< +v8 +:: +Funi +>(N:: + `G +( +obje +, +key +). + `ToLolChecked +()).ToLocalChecked()); + +11 +v8 +:: +Lol + +gv +[] = { + +12 +N +:: +New +< +v8 +:: +Sg +>( +th +). + `ToLolChecked +(), + +13 +N +:: +New +< +v8 +:: +Numb +>( +ags +), + +14 +N +:: +New +< +v8 +:: +Numb +>( +id +) + +16 +hdr +. + `Cl +(3, +gv +, & +async_sour +); + +17 + } +} + +19 + $NAN_METHOD +( +FSEvts +:: +New +) { + +20 +N +:: +Utf8Sg + + `th +( +fo +[0]); + +22 +FSEvts + * +f + = +w + + `FSEvts +(* +th +); + +23 +f +-> + `Wp +( +fo +. + `This +()); + +24 +N +:: + `S +( +fo +. + `This +(), N:: +New +< +v8 +:: +Sg +>("hdr"). + `ToLolChecked +(), info[1]); + +26 +fo +. + `GRuVue +(). + `S +(fo. + `This +()); + +27 + } +} + +29 + $NAN_METHOD +( +FSEvts +:: +St +) { + +30 +FSEvts +* +f + = +N +:: +ObjeWp +:: +Unwp +( +fo +. + `This +()); + +32 +f +-> + `thadSt +(); + +33 +f +-> + `asyncSt +(); + +35 +fo +. + `GRuVue +(). + `S +(fo. + `This +()); + +36 + } +} + +38 + $NAN_METHOD +( +FSEvts +:: +S +) { + +39 +FSEvts +* +f + = +N +:: +ObjeWp +:: +Unwp +( +fo +. + `This +()); + +40 +f +-> + `asyncS +(); + +41 +f +-> + `thadS +(); + +43 +fo +. + `GRuVue +(). + `S +(fo. + `This +()); + +44 + } +} + + @interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/storage.cc + +6  + sf_evt + { + +7 +UI64 + + mid +; + +8 +UI32 + + mags +; + +9 +CFSgRef + + mth +; + +11 +f_evt +( +CFSgRef + +evtPh +, +UI32 + +evtFg +, +UI64 + +evtId +) { + +12 + mthis +-> + mth + = +evtPh +; + +13 + mthis +-> + mags + = +evtFg +; + +14 + mthis +-> + mid + = +evtId +; + +15 i( + mthis +-> + mth + ! +NULL +) + +16 +CFRa +( +this +-> +th +); + +19 ~ +f_evt +() { + +20 i( + mthis +-> + mth + ! +NULL +) + +21 +CFR +( +this +-> +th +); + +24 + mive +: + +25 +f_evt +(const fse_event&); + +26  + mݔ +=(cڡ +f_evt +&); + + @interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/thread.cc + +7 #ide +kFSEvtSmCeFgNe + + +8  + #kFSEvtSmCeFgNe + 0x00000000 + + ) + +11 #ide +kFSEvtSmCeFgUCFTys + + +12  + #kFSEvtSmCeFgUCFTys + 0x00000001 + + ) + +15 #ide +kFSEvtSmCeFgNoDer + + +16  + #kFSEvtSmCeFgNoDer + 0x00000002 + + ) + +19 #ide +kFSEvtSmCeFgWchRo + + +20  + #kFSEvtSmCeFgWchRo + 0x00000004 + + ) + +23 #ide +kFSEvtSmCeFgIgneSf + + +24  + #kFSEvtSmCeFgIgneSf + 0x00000008 + + ) + +27 #ide +kFSEvtSmCeFgFeEvts + + +28  + #kFSEvtSmCeFgFeEvts + 0x00000010 + + ) + +31  + gFSEvts +:: + $thadS +() { + +32 i( +thadlo +) ; + +33 i( + `uv_thad_ +(& +thad +, & +FSEvts +:: +thadRun +, +this +) + `abt +(); + +34 + } +} + +36  + $HdSmEvts +( +CڡFSEvtSmRef + +am +, * +x +, +size_t + +numEvts +, * +evtPhs +, cڡ +FSEvtSmEvtFgs + +evtFgs +[], cڡ +FSEvtSmEvtId + +evtIds +[]) { + +37 +FSEvts + * +f + = (FSEvt*) +x +; + +38 +size_t + +idx +; + +39 + `uv_mux_lock +(& +f +-> +mux +); + +40  +idx +=0; idx < +numEvts +; idx++) { + +41 +f_evt + * +evt + = +w + + `f_evt +( + +42 ( +CFSgRef +) + `CFAayGVueAtIndex +(( +CFAayRef +) +evtPhs +, +idx +), + +43 +evtFgs +[ +idx +], + +44 +evtIds +[ +idx +] + +46 +f +-> +evts +. + `push_back +( +evt +); + +48 +f +-> + `asyncTrigg +(); + +49 + `uv_mux_uock +(& +f +-> +mux +); + +50 + } +} + +52  + gFSEvts +:: + $thadRun +(* +x +) { + +53 +FSEvts + * +f + = (FSEvts*) +x +; + +54 +FSEvtSmCڋxt + +cڋxt + = { 0, +x +, +NULL +, NULL, NULL }; + +55 +f +-> +thadlo + = + `CFRunLoGCut +(); + +56 +FSEvtSmRef + +am + = + `FSEvtSmCe +( +NULL +, & +HdSmEvts +, & +cڋxt +, +f +-> +ths +, +kFSEvtSmEvtIdSNow +, ( +CFAbsuTime +0.1, +kFSEvtSmCeFgNe + | +kFSEvtSmCeFgWchRo + | +kFSEvtSmCeFgFeEvts + | +kFSEvtSmCeFgUCFTys +); + +57 + `FSEvtSmScheduWhRunLo +( +am +, +f +-> +thadlo +, +kCFRunLoDeuMode +); + +58 + `FSEvtSmS +( +am +); + +59 + `CFRunLoRun +(); + +60 + `FSEvtSmSt +( +am +); + +61 + `FSEvtSmUnscheduFromRunLo +( +am +, +f +-> +thadlo +, +kCFRunLoDeuMode +); + +62 + `FSEvtSmInvide +( +am +); + +63 + `FSEvtSmR +( +am +); + +64 +f +-> +thadlo + = +NULL +; + +65 + } +} + +67  + gFSEvts +:: + $thadSt +() { + +68 i(! +thadlo +) ; + +69 + `CFRunLoSt +( +thadlo +); + +70 i( + `uv_thad_jo +(& +thad +) + `abt +(); + +71 + } +} + + @interface/node_modules/webpack-dev-server/node_modules/fsevents/fsevents.cc + +6  + ~"n.h +" + +7  + ~"uv.h +" + +8  + ~"v8.h +" + +9  + ~"CeFoundi/CeFoundi.h +" + +10  + ~"CeSvis/CeSvis.h +" + +11  + ~ + +12  + ~ + +14  + ~"c/age.cc +" + +15 +mea + + gf + { + +16 as + cFSEvts + : +public + +N +:: +ObjeWp + { + +17 +public +: + +18 +exic + +FSEvts +(cڡ * +th +); + +19 ~ +FSEvts +(); + +21 +uv_mux_t + + gmux +; + +24 +uv_async_t + + gasync +; + +25  +asyncS +(); + +26  +asyncTrigg +(); + +27  +asyncSt +(); + +30 +uv_thad_t + + gthad +; + +31 +CFRunLoRef + + gthadlo +; + +32  +thadS +(); + +33  +thadRun +(* +x +); + +34  +thadSt +(); + +37 + gN +:: +AsyncResour + +async_sour +; + +38  +emEvt +(cڡ * +th +, +UI32 + +ags +, +UI64 + +id +); + +41 +CFAayRef + + gths +; + +42 + gd +:: +ve +< +f_evt +*> +evts +; + +43  +Inlize +( +v8 +:: +Lol + +expts +); + +46  +NAN_METHOD +( +New +); + +47  +NAN_METHOD +( +St +); + +48  +NAN_METHOD +( +S +); + +53 +usg + +mea + + gf +; + +55 + gFSEvts +:: + $FSEvts +(cڡ * +th +) + +56 : + `async_sour +("fsevents:FSEvents") { + +57 +CFSgRef + +ds +[] = { + `CFSgCeWhCSg +( +NULL +, +th +, +kCFSgEncodgUTF8 +) }; + +58 +ths + = + `CFAayCe +( +NULL +, (cڡ **)& +ds +, 1, NULL); + +59 +thadlo + = +NULL +; + +60 i( + `uv_mux_ +(& +mux +) + `abt +(); + +61 + } +} + +62 + gFSEvts +::~ + $FSEvts +() { + +63 + `CFR +( +ths +); + +64 + `uv_mux_deroy +(& +mux +); + +65 + } +} + +67 #ide +kFSEvtSmEvtFgImCed + + +68  + #kFSEvtSmEvtFgImCed + 0x00000010 + + ) + +71  + ~"c/async.cc +" + +72  + ~"c/thad.cc +" + +73  + ~"c/cڡts.cc +" + +74  + ~"c/mhods.cc +" + +76  + gFSEvts +:: +Inlize +( +v8 +:: +Lol + +expts +) { + +77 +v8 +:: +Isީe +* +isީe + = +expts +-> +GIsީe +(); + +78 + gv8 +:: +Lol +< +v8 +:: +Cڋxt +> +cڋxt + = +isީe +-> +GCutCڋxt +(); + +79 + gv8 +:: +Lol +< +v8 +:: +FuniTeme +> +l + = +N +:: +New +( +FSEvts +::New); + +80 + gl +-> +SCssName +( +N +:: +New +< +v8 +:: +Sg +>("FSEvts"). +ToLolChecked +()); + +81 + gl +-> +InTeme +()-> +SIlFldCou +(1); + +82 + gN +:: +SPryTeme +( +l +, "t", +N +:: +New +< +v8 +:: +FuniTeme +>( +FSEvts +:: +S +)); + +83 + gN +:: +SPryTeme +( +l +, "", +N +:: +New +< +v8 +:: +FuniTeme +>( +FSEvts +:: +St +)); + +84 + gN +:: +S +( +expts +, +N +:: +New +< +v8 +:: +Sg +>("Cڡts"). +ToLolChecked +(), +Cڡts +()); + +85 + gN +:: +S +( +expts +, +N +:: +New +< +v8 +:: +Sg +>("FSEvts"). +ToLolChecked +(), +l +-> +GFuni +( +cڋxt +).ToLocalChecked()); + +88 +NODE_MODULE +( +f +, +FSEvts +:: +Inlize +) + + @interface/node_modules/webpack-dev-server/node_modules/fsevents/src/async.cc + +7  + $async_age +( +uv_async_t + * +async +) { + +8 i(! +async +-> +da +) ; + +9 +FSEvts + * +f + = (FSEvt*) +async +-> +da +; + +10 +CFIndex + +idx +, +t +; + +11 +f_evt + * +evt +; + +12  +thbuf +[1024]; + +13 cڡ * +thr + = +NULL +; + +14 + `uv_mux_lock +(& +f +-> +mux +); + +15 +t + = +f +-> +evts +. + `size +(); + +16  +idx +=0; idx< +t +; idx++) { + +17 +evt + = +f +-> +evts +. + ` +( +idx +); + +18 i( +evt + = +NULL +) ; + +19 +thr + = + `CFSgGCSgP +( +evt +-> +th +, +kCFSgEncodgUTF8 +); + +20 i(! +thr + + `CFSgGCSg +( +evt +-> +th +, +thbuf +, 1024, +kCFSgEncodgUTF8 +); + +21 +f +-> + `emEvt +( +thr + ?h: +thbuf +, +evt +-> +ags +,vt-> +id +); + +22 +de + +evt +; + +24 i( +t +>0 +f +-> +evts +. + `r +(); + +25 + `uv_mux_uock +(& +f +-> +mux +); + +26 + } +} + +28  + gFSEvts +:: + $asyncS +() { + +29 i( +async +. +da + = +this +) ; + +30 +async +. +da + = +this +; + +31 + `uv_async_ +( + `uv_deu_lo +(), & +async +, ( +uv_async_cb + +async_age +); + +32 + } +} + +34  + gFSEvts +:: + $asyncTrigg +() { + +35 i( +async +. +da + ! +this +) ; + +36 + `uv_async_nd +(& +async +); + +37 + } +} + +39  + gFSEvts +:: + $asyncSt +() { + +40 i( +async +. +da + ! +this +) ; + +41 +async +. +da + = +NULL +; + +42 + `uv_o +(( +uv_hd_t + *& +async +, +NULL +); + +43 + } +} + + @interface/node_modules/webpack-dev-server/node_modules/fsevents/src/constants.cc + +7 #ide +kFSEvtSmEvtFgNe + + +8  + #kFSEvtSmEvtFgNe + 0x00000000 + + ) + +11 #ide +kFSEvtSmEvtFgMuSnSubDs + + +12  + #kFSEvtSmEvtFgMuSnSubDs + 0x00000001 + + ) + +15 #ide +kFSEvtSmEvtFgUrDrݳd + + +16  + #kFSEvtSmEvtFgUrDrݳd + 0x00000002 + + ) + +19 #ide +kFSEvtSmEvtFgKlDrݳd + + +20  + #kFSEvtSmEvtFgKlDrݳd + 0x00000004 + + ) + +23 #ide +kFSEvtSmEvtFgEvtIdsWed + + +24  + #kFSEvtSmEvtFgEvtIdsWed + 0x00000008 + + ) + +27 #ide +kFSEvtSmEvtFgHiyDe + + +28  + #kFSEvtSmEvtFgHiyDe + 0x00000010 + + ) + +31 #ide +kFSEvtSmEvtFgRoChged + + +32  + #kFSEvtSmEvtFgRoChged + 0x00000020 + + ) + +35 #ide +kFSEvtSmEvtFgMou + + +36  + #kFSEvtSmEvtFgMou + 0x00000040 + + ) + +39 #ide +kFSEvtSmEvtFgUnmou + + +40  + #kFSEvtSmEvtFgUnmou + 0x00000080 + + ) + +43 #ide +kFSEvtSmEvtFgImCed + + +44  + #kFSEvtSmEvtFgImCed + 0x00000100 + + ) + +47 #ide +kFSEvtSmEvtFgImRemoved + + +48  + #kFSEvtSmEvtFgImRemoved + 0x00000200 + + ) + +51 #ide +kFSEvtSmEvtFgImInodeMaMod + + +52  + #kFSEvtSmEvtFgImInodeMaMod + 0x00000400 + + ) + +55 #ide +kFSEvtSmEvtFgImRamed + + +56  + #kFSEvtSmEvtFgImRamed + 0x00000800 + + ) + +59 #ide +kFSEvtSmEvtFgImModifd + + +60  + #kFSEvtSmEvtFgImModifd + 0x00001000 + + ) + +63 #ide +kFSEvtSmEvtFgImFdInfoMod + + +64  + #kFSEvtSmEvtFgImFdInfoMod + 0x00002000 + + ) + +67 #ide +kFSEvtSmEvtFgImChgeOwr + + +68  + #kFSEvtSmEvtFgImChgeOwr + 0x00004000 + + ) + +71 #ide +kFSEvtSmEvtFgImXMod + + +72  + #kFSEvtSmEvtFgImXMod + 0x00008000 + + ) + +75 #ide +kFSEvtSmEvtFgImIsFe + + +76  + #kFSEvtSmEvtFgImIsFe + 0x00010000 + + ) + +79 #ide +kFSEvtSmEvtFgImIsD + + +80  + #kFSEvtSmEvtFgImIsD + 0x00020000 + + ) + +83 #ide +kFSEvtSmEvtFgImIsSymlk + + +84  + #kFSEvtSmEvtFgImIsSymlk + 0x00040000 + + ) + +87  + gv8 +:: +Lol +< +v8 +:: +Obje +> + $Cڡts +() { + +88 +v8 +:: +Lol + +obje + = +N +:: +New +(); + +89 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgNe"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgNe +)); + +90 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgMuSnSubDs"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgMuSnSubDs +)); + +91 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgUrDrݳd"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgUrDrݳd +)); + +92 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgKlDrݳd"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgKlDrݳd +)); + +93 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgEvtIdsWed"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgEvtIdsWed +)); + +94 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgHiyDe"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgHiyDe +)); + +95 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgRoChged"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgRoChged +)); + +96 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgMou"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgMou +)); + +97 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgUnmou"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgUnmou +)); + +98 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImCed"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImCed +)); + +99 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImRemoved"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImRemoved +)); + +100 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImInodeMaMod"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImInodeMaMod +)); + +101 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImRamed"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImRamed +)); + +102 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImModifd"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImModifd +)); + +103 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImFdInfoMod"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImFdInfoMod +)); + +104 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImChgeOwr"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImChgeOwr +)); + +105 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImXMod"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImXMod +)); + +106 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImIsFe"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImIsFe +)); + +107 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImIsD"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImIsD +)); + +108 +N +:: + `S +( +obje +, N:: +New +< +v8 +:: +Sg +>("kFSEvtSmEvtFgImIsSymlk"). + `ToLolChecked +(), N::New( +kFSEvtSmEvtFgImIsSymlk +)); + +109  +obje +; + +110 + } +} + + @interface/node_modules/webpack-dev-server/node_modules/fsevents/src/methods.cc + +6  + gFSEvts +:: + $emEvt +(cڡ * +th +, +UI32 + +ags +, +UI64 + +id +) { + +7 +N +:: +HdSce + +hd_sce +; + +8 +v8 +:: +Lol + +obje + = + `hd +(); + +9 +v8 +:: +Lol + +key + = +N +:: +New +("hdr"). + `ToLolChecked +(); + +10 +N +:: +Clback + + `hdr +(N:: +To +< +v8 +:: +Funi +>(N:: + `G +( +obje +, +key +). + `ToLolChecked +()).ToLocalChecked()); + +11 +v8 +:: +Lol + +gv +[] = { + +12 +N +:: +New +< +v8 +:: +Sg +>( +th +). + `ToLolChecked +(), + +13 +N +:: +New +< +v8 +:: +Numb +>( +ags +), + +14 +N +:: +New +< +v8 +:: +Numb +>( +id +) + +16 +hdr +. + `Cl +(3, +gv +, & +async_sour +); + +17 + } +} + +19 + $NAN_METHOD +( +FSEvts +:: +New +) { + +20 +N +:: +Utf8Sg + + `th +( +fo +[0]); + +22 +FSEvts + * +f + = +w + + `FSEvts +(* +th +); + +23 +f +-> + `Wp +( +fo +. + `This +()); + +24 +N +:: + `S +( +fo +. + `This +(), N:: +New +< +v8 +:: +Sg +>("hdr"). + `ToLolChecked +(), info[1]); + +26 +fo +. + `GRuVue +(). + `S +(fo. + `This +()); + +27 + } +} + +29 + $NAN_METHOD +( +FSEvts +:: +St +) { + +30 +FSEvts +* +f + = +N +:: +ObjeWp +:: +Unwp +( +fo +. + `This +()); + +32 +f +-> + `thadSt +(); + +33 +f +-> + `asyncSt +(); + +35 +fo +. + `GRuVue +(). + `S +(fo. + `This +()); + +36 + } +} + +38 + $NAN_METHOD +( +FSEvts +:: +S +) { + +39 +FSEvts +* +f + = +N +:: +ObjeWp +:: +Unwp +( +fo +. + `This +()); + +40 +f +-> + `asyncS +(); + +41 +f +-> + `thadS +(); + +43 +fo +. + `GRuVue +(). + `S +(fo. + `This +()); + +44 + } +} + + @interface/node_modules/webpack-dev-server/node_modules/fsevents/src/storage.cc + +6  + sf_evt + { + +7 +UI64 + + mid +; + +8 +UI32 + + mags +; + +9 +CFSgRef + + mth +; + +11 +f_evt +( +CFSgRef + +evtPh +, +UI32 + +evtFg +, +UI64 + +evtId +) { + +12 + mthis +-> + mth + = +evtPh +; + +13 + mthis +-> + mags + = +evtFg +; + +14 + mthis +-> + mid + = +evtId +; + +15 i( + mthis +-> + mth + ! +NULL +) + +16 +CFRa +( +this +-> +th +); + +19 ~ +f_evt +() { + +20 i( + mthis +-> + mth + ! +NULL +) + +21 +CFR +( +this +-> +th +); + +24 + mive +: + +25 +f_evt +(const fse_event&); + +26  + mݔ +=(cڡ +f_evt +&); + + @interface/node_modules/webpack-dev-server/node_modules/fsevents/src/thread.cc + +7 #ide +kFSEvtSmCeFgNe + + +8  + #kFSEvtSmCeFgNe + 0x00000000 + + ) + +11 #ide +kFSEvtSmCeFgUCFTys + + +12  + #kFSEvtSmCeFgUCFTys + 0x00000001 + + ) + +15 #ide +kFSEvtSmCeFgNoDer + + +16  + #kFSEvtSmCeFgNoDer + 0x00000002 + + ) + +19 #ide +kFSEvtSmCeFgWchRo + + +20  + #kFSEvtSmCeFgWchRo + 0x00000004 + + ) + +23 #ide +kFSEvtSmCeFgIgneSf + + +24  + #kFSEvtSmCeFgIgneSf + 0x00000008 + + ) + +27 #ide +kFSEvtSmCeFgFeEvts + + +28  + #kFSEvtSmCeFgFeEvts + 0x00000010 + + ) + +31  + gFSEvts +:: + $thadS +() { + +32 i( +thadlo +) ; + +33 i( + `uv_thad_ +(& +thad +, & +FSEvts +:: +thadRun +, +this +) + `abt +(); + +34 + } +} + +36  + $HdSmEvts +( +CڡFSEvtSmRef + +am +, * +x +, +size_t + +numEvts +, * +evtPhs +, cڡ +FSEvtSmEvtFgs + +evtFgs +[], cڡ +FSEvtSmEvtId + +evtIds +[]) { + +37 +FSEvts + * +f + = (FSEvt*) +x +; + +38 +size_t + +idx +; + +39 + `uv_mux_lock +(& +f +-> +mux +); + +40  +idx +=0; idx < +numEvts +; idx++) { + +41 +f_evt + * +evt + = +w + + `f_evt +( + +42 ( +CFSgRef +) + `CFAayGVueAtIndex +(( +CFAayRef +) +evtPhs +, +idx +), + +43 +evtFgs +[ +idx +], + +44 +evtIds +[ +idx +] + +46 +f +-> +evts +. + `push_back +( +evt +); + +48 +f +-> + `asyncTrigg +(); + +49 + `uv_mux_uock +(& +f +-> +mux +); + +50 + } +} + +52  + gFSEvts +:: + $thadRun +(* +x +) { + +53 +FSEvts + * +f + = (FSEvts*) +x +; + +54 +FSEvtSmCڋxt + +cڋxt + = { 0, +x +, +NULL +, NULL, NULL }; + +55 +f +-> +thadlo + = + `CFRunLoGCut +(); + +56 +FSEvtSmRef + +am + = + `FSEvtSmCe +( +NULL +, & +HdSmEvts +, & +cڋxt +, +f +-> +ths +, +kFSEvtSmEvtIdSNow +, ( +CFAbsuTime +0.1, +kFSEvtSmCeFgNe + | +kFSEvtSmCeFgWchRo + | +kFSEvtSmCeFgFeEvts + | +kFSEvtSmCeFgUCFTys +); + +57 + `FSEvtSmScheduWhRunLo +( +am +, +f +-> +thadlo +, +kCFRunLoDeuMode +); + +58 + `FSEvtSmS +( +am +); + +59 + `CFRunLoRun +(); + +60 + `FSEvtSmSt +( +am +); + +61 + `FSEvtSmUnscheduFromRunLo +( +am +, +f +-> +thadlo +, +kCFRunLoDeuMode +); + +62 + `FSEvtSmInvide +( +am +); + +63 + `FSEvtSmR +( +am +); + +64 +f +-> +thadlo + = +NULL +; + +65 + } +} + +67  + gFSEvts +:: + $thadSt +() { + +68 i(! +thadlo +) ; + +69 + `CFRunLoSt +( +thadlo +); + +70 i( + `uv_thad_jo +(& +thad +) + `abt +(); + +71 + } +} + + @interface/node_modules/zlib/src/node-zlib.cc + +1  + ~ + +2  + ~ + +3  + ~ + +4  + ~ + +6  + ~ + +7  + ~ + +8  + ~ + +10 +usg + +mea + + gv8 +; + +11 +usg + +mea + + gnode +; + +14 #i +NODE_VERSION_AT_LEAST +(0,3,0) + +15  + #Bufr_Da + +Bufr +:: +Da + + + ) + +16  + #Bufr_Lgth + +Bufr +:: +Lgth + + + ) + +17  + #Bufr_New + +Bufr +:: +New + + + ) + +19 +le + * +Bufr_Da +( +Hd +< +Obje +> +obj +) { + +20  ( + gObjeWp +:: +Unwp +< +Bufr +>( +obj +))-> +da +(); + +22 +le + +size_t + +Bufr_Lgth +( +Hd +< +Obje +> +obj +) { + +23  ( + gObjeWp +:: +Unwp +< +Bufr +>( +obj +))-> +ngth +(); + +25 +le + +Bufr +* + $Bufr_New +(* +da +, +size_t + +ngth +) { + +26 +Bufr +* +bufr + = Bufr:: + `New +( +ngth +); + +27 + `memy +( +bufr +-> + `da +(), +da +, +ngth +); + +28  +bufr +; + +29 + } +} + +33 +z_am + + gdee_s +; + +34 +z_am + + ge_s +; + +36 +le + + gHd +< + gVue +> + $ZLib_r +(cڡ * +msg + = +NULL +) { + +37  + `ThrowExi +( +Exi +:: + `E +( + +38 +Sg +:: + `New +( +msg + ? msg : "Unknown Error"))); + +39 + } +} + +41  + #ZLib_Xe +( +x +, + +) \ + +42 +Hd +< +Vue +> +ZLib_ +## +x +## + `e +(cڡ +Argumts +& +gs +) { \ + +43 +HdSce + +sce +; \ + +45 i( +gs +. + `Lgth +(< 1 || ! +Bufr +:: + `HasIn +(args[0])) { \ + +46  + `ZLib_r +("Expected Buffers firstrgument"); \ + +49 i(( +x +## + `eRet +(&x## +e_s +)! +Z_OK +) { \ + +50 + `as +(( +l +, "ZLib stream is beyondepair")); \ + +53 +Lol +< +Obje +> +put + = +gs +[0]-> + `ToObje +(); \ + +54 +x +## +e_s +. +xt_ + = ( +Byf +*) + `Bufr_Da +( +put +); \ + +55  +ngth + = +x +## +e_s +. +ava_ + = + `Bufr_Lgth +( +put +); \ + +57  +t +; \ + +58 * +su + = +NULL +; \ + +60  +comesd + = 0; \ + +62 +su + = (*) + `loc +esu, +comesd + + + + * +ngth +); \ + +63 i(! +su + + `ZLib_r +("Couldotllocate memory"); \ + +65 +x +## +e_s +. +ava_out + = + + * +ngth +; \ + +66 +x +## +e_s +. +xt_out + = ( +Byf +*) +su + + +comesd +; \ + +68 +t + = +x +## + `e +(&x## +e_s +, +Z_FINISH +); \ + +69 i( +t + ! +Z_STREAM_END + && ! +Z_OK + && ! +Z_BUF_ERROR +) { \ + +70 + ` +( +su +); \ + +71  + `ZLib_r +( +x +## +e_s +. +msg +); \ + +74 +comesd + +( + + * +ngth + - +x +## +e_s +. +ava_out +); \ + +75 }  +x +## +e_s +. +ava_out + == 0); \ + +77 +Bufr +* +ouut + = + `Bufr_New +( +su +, +comesd +); \ + +78 + ` +( +su +); \ + +79  +sce +. + `Clo +( +Lol +< +Vue +>:: + `New +( +ouut +-> +hd_ +)); \ + +80 } + + ) + +82 +ZLib_Xe +( +de +, 1); + +83 +ZLib_Xe +( + +, 2); + +85 "C"  + + ( +Hd +< +Obje +> +rg +) { + +86 +dee_s +. +zloc + = +e_s +.zlo +Z_NULL +; + +87 +dee_s +. +z + = +e_s +.z = +Z_NULL +; + +88 +dee_s +. +aque + = +e_s +.aqu +Z_NULL +; + +90 +deeIn +(& +dee_s +, +Z_DEFAULT_COMPRESSION +); + +91 +eIn +(& +e_s +); + +93 +NODE_SET_METHOD +( +rg +, "dee", +ZLib_dee +); + +94 +NODE_SET_METHOD +( +rg +, "e", +ZLib_e +); + + @lib/ESPAsyncWebServer/AsyncEventSource.cpp + +20  + ~"Arduo.h +" + +21  + ~"AsyncEvtSour.h +" + +23  +Sg + + $geEvtMesge +(cڡ * +mesge +, cڡ * +evt +, +ut32_t + +id +, ut32_ +c +){ + +24 +Sg + +ev +; + +26 if( +c +){ + +27 +ev + + + `F +("retry: "); + +28 +ev + + +c +; + +29 +ev + + + `F +("\r\n"); + +32 if( +id +){ + +33 +ev + + + `F +("id: "); + +34 +ev + + + `Sg +( +id +); + +35 +ev + + + `F +("\r\n"); + +38 if( +evt + ! +NULL +){ + +39 +ev + + + `F +("event: "); + +40 +ev + + + `Sg +( +evt +); + +41 +ev + + + `F +("\r\n"); + +44 if( +mesge + ! +NULL +){ + +45 +size_t + +mesgeL + = + ` +( +mesge +); + +46 * +leS + = (*) +mesge +; + +47 * +leEnd +; + +49 * +xtN + = + `rchr +( +leS +, '\n'); + +50 * +xtR + = + `rchr +( +leS +, '\r'); + +51 if( +xtN + = +NULL + && +xtR + == NULL){ + +52 +size_t + +Β + = ((*) +mesge + + +mesgeL +- +leS +; + +53 * +lda + = (*) + `mloc +( +Β ++1); + +54 if( +lda + ! +NULL +){ + +55 + `memy +( +lda +, +leS +, +Β +); + +56 +lda +[ +Β +] = 0; + +57 +ev + + + `F +("data: "); + +58 +ev + + +lda +; + +59 +ev + + + `F +("\r\n\r\n"); + +60 + ` +( +lda +); + +62 +leS + = (*) +mesge + + +mesgeL +; + +64 * +xtLe + = +NULL +; + +65 if( +xtN + ! +NULL + && +xtR + != NULL){ + +66 if( +xtR + < +xtN +){ + +67 +leEnd + = +xtR +; + +68 if( +xtN + =( +xtR + + 1)) + +69 +xtLe + = +xtN + + 1; + +71 +xtLe + = +xtR + + 1; + +73 +leEnd + = +xtN +; + +74 if( +xtR + =( +xtN + + 1)) + +75 +xtLe + = +xtR + + 1; + +77 +xtLe + = +xtN + + 1; + +79 } if( +xtN + ! +NULL +){ + +80 +leEnd + = +xtN +; + +81 +xtLe + = +xtN + + 1; + +83 +leEnd + = +xtR +; + +84 +xtLe + = +xtR + + 1; + +87 +size_t + +Β + = +leEnd + - +leS +; + +88 * +lda + = (*) + `mloc +( +Β ++1); + +89 if( +lda + ! +NULL +){ + +90 + `memy +( +lda +, +leS +, +Β +); + +91 +lda +[ +Β +] = 0; + +92 +ev + + + `F +("data: "); + +93 +ev + + +lda +; + +94 +ev + + + `F +("\r\n"); + +95 + ` +( +lda +); + +97 +leS + = +xtLe +; + +98 if( +leS + =((*) +mesge + + +mesgeL +)) + +99 +ev + + + `F +("\r\n"); + +101 }  +leS + < ((*) +mesge + + +mesgeL +)); + +104  +ev +; + +105 + } +} + +109 + gAsyncEvtSourMesge +:: + $AsyncEvtSourMesge +(cڡ * +da +, +size_t + +n +) + +110 : + `_da +( +nuαr +), + `_n +( +n +), + `_ +(0), + $_acked +(0) + +112 +_da + = ( +ut8_t +*) + `mloc +( +_n ++1); + +113 if( +_da + = +nuαr +){ + +114 +_n + = 0; + +116 + `memy +( +_da +, +da +, +n +); + +117 +_da +[ +_n +] = 0; + +119 + } +} + +121 + gAsyncEvtSourMesge +::~ + $AsyncEvtSourMesge +() { + +122 if( +_da + ! +NULL +) + +123 + ` +( +_da +); + +124 + } +} + +126 +size_t + + gAsyncEvtSourMesge +:: + $ack +( +size_t + +n +, +ut32_t + +time +) { + +127 () +time +; + +129 if( +_acked + + +n + > +_n +){ + +131 cڡ +size_t + +exa + = +_acked + + +n + - +_n +; + +132 +_acked + = +_n +; + +133  +exa +; + +136 +_acked + + +n +; + +138 + } +} + +140 +size_t + + gAsyncEvtSourMesge +:: + $nd +( +AsyncCl + * + +) { + +141 cڡ +size_t + +n + = +_n + - +_ +; + +142 if( + +-> + `a +(< +n +){ + +145 +size_t + + + = + +-> + `add +((cڡ *) +_da +, +n +); + +146 if( + +-> + `nSd +()) + +147 + +-> + `nd +(); + +148 +_ + + + +; + +149  + +; + +150 + } +} + +154 + gAsyncEvtSourCl +:: + $AsyncEvtSourCl +( +AsyncWebSvReque + * +que +, +AsyncEvtSour + * +rv +) + +155 : + `_mesgeQueue +( +LkedLi +< +AsyncEvtSourMesge + *>([](AsyncEvtSourMesg* +m +){ +de + m; + } +})) + +157 + g_ + = +que +-> + +(); + +158 + g_rv + = +rv +; + +159 + g_ϡId + = 0; + +160 if( + gque +-> +hasHd +( +F +("Last-Event-ID"))) + +161 + g_ϡId + = +oi +( +que +-> +gHd +( +F +("La-Evt-ID"))-> +vue +(). +c_r +()); + +163 + g_ +-> +tRxTimeout +(0); + +164 + g_ +-> +E +( +NULL +, NULL); + +165 + g_ +-> +Ack +([](* +r +, +AsyncCl +* +c +, +size_t + +n +, +ut32_t + +time +){ ()c; (( +AsyncEvtSourCl +*)))-> +_Ack +֒,ime); }, +this +); + +166 + g_ +-> +Pl +([](* +r +, +AsyncCl +* +c +){ ()c; (( +AsyncEvtSourCl +*)))-> +_Pl +(); }, +this +); + +167 + g_ +-> +Da +( +NULL +, NULL); + +168 + g_ +-> +Timeout +([ +this +](* +r +, +AsyncCl +* +c + +__ibu__ +(( +unud +)), +ut32_t + +time +){ (( +AsyncEvtSourCl +*)))-> +_Timeout +(time); },his); + +169 + g_ +-> +Disc +([ +this +](* +r +, +AsyncCl +* +c +){ (( +AsyncEvtSourCl +*)))-> +_Disc +(); +de + c; },his); + +171 + g_rv +-> +_addCl +( +this +); + +172 +de + + gque +; + +175 + gAsyncEvtSourCl +::~ + $AsyncEvtSourCl +(){ + +176 +_mesgeQueue +. + ` +(); + +177 + `o +(); + +178 + } +} + +180  + gAsyncEvtSourCl +:: + $_queueMesge +( +AsyncEvtSourMesge + * +daMesge +){ + +181 if( +daMesge + = +NULL +) + +183 if(! + `ced +()){ + +184 +de + +daMesge +; + +187 if( +_mesgeQueue +. + `ngth +(> +SSE_MAX_QUEUED_MESSAGES +){ + +188 + `s_tf +( + `Sg +( + `F +("ERROR: Tomy mesgequeued\n")). + `c_r +()); + +189 +de + +daMesge +; + +191 +_mesgeQueue +. + `add +( +daMesge +); + +193 if( +_ +-> + `nSd +()) + +194 + `_runQueue +(); + +195 + } +} + +197  + gAsyncEvtSourCl +:: + $_Ack +( +size_t + +n +, +ut32_t + +time +){ + +198  +n + && ! +_mesgeQueue +. + `isEmy +()){ + +199 +n + = +_mesgeQueue +. + `t +()-> + `ack +֒, +time +); + +200 if( +_mesgeQueue +. + `t +()-> + `fished +()) + +201 +_mesgeQueue +. + `move +(_mesgeQueue. + `t +()); + +204 + `_runQueue +(); + +205 + } +} + +207  + gAsyncEvtSourCl +:: + $_Pl +(){ + +208 if(! +_mesgeQueue +. + `isEmy +()){ + +209 + `_runQueue +(); + +211 + } +} + +214  + gAsyncEvtSourCl +:: +_Timeout +( +ut32_t + +time + +__ibu__ +(( +unud +))){ + +215 +_ +-> +o +( +ue +); + +218  + gAsyncEvtSourCl +:: + $_Disc +(){ + +219 +_ + = +NULL +; + +220 +_rv +-> + `_hdDisc +( +this +); + +221 + } +} + +223  + gAsyncEvtSourCl +:: + $o +(){ + +224 if( +_ + ! +NULL +) + +225 +_ +-> + `o +(); + +226 + } +} + +228  + gAsyncEvtSourCl +:: + $wre +(cڡ * +mesge +, +size_t + +n +){ + +229 + `_queueMesge +( +w + + `AsyncEvtSourMesge +( +mesge +, +n +)); + +230 + } +} + +232  + gAsyncEvtSourCl +:: + $nd +(cڡ * +mesge +, cڡ * +evt +, +ut32_t + +id +, ut32_ +c +){ + +233 +Sg + +ev + = + `geEvtMesge +( +mesge +, +evt +, +id +, +c +); + +234 + `_queueMesge +( +w + + `AsyncEvtSourMesge +( +ev +. + `c_r +(),v. + `ngth +())); + +235 + } +} + +237  + gAsyncEvtSourCl +:: + $_runQueue +(){ + +238 ! +_mesgeQueue +. + `isEmy +(&& _mesgeQueue. + `t +()-> + `fished +()){ + +239 +_mesgeQueue +. + `move +(_mesgeQueue. + `t +()); + +242 aut +i + = +_mesgeQueue +. + `beg +(); i !_mesgeQueue. + `d +(); ++i) + +244 if(!(* +i +)-> + ` +()) + +245 (* +i +)-> + `nd +( +_ +); + +247 + } +} + +252 + gAsyncEvtSour +:: + $AsyncEvtSour +(cڡ +Sg +& +u +) + +253 : + `_u +( +u +) + +254 , + `_s +( +LkedLi +< +AsyncEvtSourCl + *>([](AsyncEvtSourCl * +c +){ +de + c; + } +})) + +255 , + $_ccb +( +NULL +) + +256 { + } +} + +258 + gAsyncEvtSour +::~ + $AsyncEvtSour +(){ + +259 + `o +(); + +260 + } +} + +262  + gAsyncEvtSour +:: + $C +( +ArEvtHdrFuni + +cb +){ + +263 +_ccb + = +cb +; + +264 + } +} + +266  + gAsyncEvtSour +:: + $_addCl +( +AsyncEvtSourCl + * + +){ + +280 +_s +. + `add +( + +); + +281 if( +_ccb +) + +282 + `_ccb +( + +); + +283 + } +} + +285  + gAsyncEvtSour +:: + $_hdDisc +( +AsyncEvtSourCl + * + +){ + +286 +_s +. + `move +( + +); + +287 + } +} + +289  + gAsyncEvtSour +:: + $o +(){ + +290 cڡut& +c +: +_s +){ + +291 if( +c +-> + `ced +()) + +292 +c +-> + `o +(); + +294 + } +} + +297 +size_t + + gAsyncEvtSour +:: + $avgPacksWag +() const { + +298 if( +_s +. + `isEmy +()) + +301 +size_t + +aql +=0; + +302 +ut32_t + +nCedCls +=0; + +304 cڡut& +c +: +_s +){ + +305 if( +c +-> + `ced +()) { + +306 +aql ++= +c +-> + `cksWag +(); + +307 ++ +nCedCls +; + +311  (( +aql ++ ( +nCedCls +/2))/(nConnectedClients); + +312 + } +} + +314  + gAsyncEvtSour +:: + $nd +(cڡ * +mesge +, cڡ * +evt +, +ut32_t + +id +, ut32_ +c +){ + +317 +Sg + +ev + = + `geEvtMesge +( +mesge +, +evt +, +id +, +c +); + +318 cڡut& +c +: +_s +){ + +319 if( +c +-> + `ced +()) { + +320 +c +-> + `wre +( +ev +. + `c_r +(),v. + `ngth +()); + +323 + } +} + +325 +size_t + + gAsyncEvtSour +:: + $cou +() const { + +326  +_s +. + `cou_if +([]( +AsyncEvtSourCl + * +c +){ + +327  +c +-> + `ced +(); + +329 + } +} + +331 +bo + + gAsyncEvtSour +:: + $nHd +( +AsyncWebSvReque + * +que +){ + +332 if( +que +-> + `mhod +(! +HTTP_GET + || !que-> + `u +(). + `equs +( +_u +)) { + +333  +l +; + +335 +que +-> + `addIegHd +( + `F +("Last-Event-ID")); + +336  +ue +; + +337 + } +} + +339  + gAsyncEvtSour +:: + $hdReque +( +AsyncWebSvReque + * +que +){ + +340 if(( +_uame +. + `ngth +(&& +_sswd +.ngth()&& ! +que +-> + `authti +(_uame. + `c_r +(), _password.c_str())) { + +341  +que +-> + `queAuthtiti +(); + +343 +que +-> + `nd +( +w + + `AsyncEvtSourReڣ +( +this +)); + +344 + } +} + +348 + gAsyncEvtSourReڣ +:: + $AsyncEvtSourReڣ +( +AsyncEvtSour + * +rv +){ + +349 +_rv + = +rv +; + +350 +_code + = 200; + +351 +_cڋTy + = + `F +("text/event-stream"); + +352 +_ndCڋLgth + = +l +; + +353 + `addHd +( + `F +("Cache-Control"), F("no-cache")); + +354 + `addHd +( + `F +("Connection"), F("keep-alive")); + +355 + } +} + +357  + gAsyncEvtSourReڣ +:: + $_d +( +AsyncWebSvReque + * +que +){ + +358 +Sg + +out + = + `_asmbHd +( +que +-> + `vsi +()); + +359 +que +-> + ` +()-> + `wre +( +out +. + `c_r +(), +_hdLgth +); + +360 +_e + = +RESPONSE_WAIT_ACK +; + +361 + } +} + +363 +size_t + + gAsyncEvtSourReڣ +:: +_ack +( +AsyncWebSvReque + * +que +, size_ +n +, +ut32_t + +time + +__ibu__ +(( +unud +))){ + +364 if( + gn +){ + +365 +w + +AsyncEvtSourCl +( +que +, +_rv +); + + @lib/ESPAsyncWebServer/AsyncEventSource.h + +20 #ide +ASYNCEVENTSOURCE_H_ + + +21  + #ASYNCEVENTSOURCE_H_ + + + ) + +23  + ~ + +24 #ifde +ESP32 + + +25  + ~ + +26  + #SSE_MAX_QUEUED_MESSAGES + 32 + + ) + +28  + ~ + +29  + #SSE_MAX_QUEUED_MESSAGES + 8 + + ) + +31  + ~ + +33  + ~"AsyncWebSynchrizi.h +" + +35 #ifde +ESP8266 + + +36  + ~ + +37 #ifde +CRYPTO_HASH_h + + +38  + ~<../c/Hash.h +> + +42 #ifde +ESP32 + + +43  + #DEFAULT_MAX_SSE_CLIENTS + 8 + + ) + +45  + #DEFAULT_MAX_SSE_CLIENTS + 4 + + ) + +48 +ass + + gAsyncEvtSour +; + +49 +ass + + gAsyncEvtSourReڣ +; + +50 +ass + + gAsyncEvtSourCl +; + +51  + gd +:: + tfuni +<( + tAsyncEvtSourCl + * + t +)> + tArEvtHdrFuni +; + +53 as + cAsyncEvtSourMesge + { + +54 + mive +: + +55 +ut8_t + * +_da +; + +56 +size_t + + m_n +; + +57 +size_t + + m_ +; + +59 +size_t + + m_acked +; + +60 + mpublic +: + +61 +AsyncEvtSourMesge +(cڡ * +da +, +size_t + +n +); + +62 ~ +AsyncEvtSourMesge +(); + +63 +size_t + +ack +(size_ +n +, +ut32_t + +time + +__ibu__ +(( +unud +))); + +64 +size_t + +nd +( +AsyncCl + * + +); + +65 +bo + + $fished +(){  +_acked + = +_n +; } + +66 +bo + + $ +({  +_ + = +_n +; + } +} + +69 as + cAsyncEvtSourCl + { + +70 + mive +: + +71 +AsyncCl + * +_ +; + +72 +AsyncEvtSour + * + m_rv +; + +73 +ut32_t + + m_ϡId +; + +74 + mLkedLi +< + mAsyncEvtSourMesge + *> + m_mesgeQueue +; + +75  +_queueMesge +( +AsyncEvtSourMesge + * +daMesge +); + +76  +_runQueue +(); + +78 + mpublic +: + +80 +AsyncEvtSourCl +( +AsyncWebSvReque + * +que +, +AsyncEvtSour + * +rv +); + +81 ~ +AsyncEvtSourCl +(); + +83 +AsyncCl +* + $ +(){  +_ +; } + +84  + `o +(); + +85  + `wre +(cڡ * +mesge +, +size_t + +n +); + +86  + `nd +(cڡ * +mesge +, cڡ * +evt += +NULL +, +ut32_t + +id +=0, ut32_ +c +=0); + +87 +bo + + $ced +(cڡ {  ( +_ + ! +NULL +&& _-> + `ced +(); + } +} + +88 +ut32_t + + $ϡId +(cڡ {  +_ϡId +; + } +} + +89 +size_t + + $cksWag +(cڡ {  +_mesgeQueue +. + `ngth +(); + } +} + +92  +_Ack +( +size_t + +n +, +ut32_t + +time +); + +93  +_Pl +(); + +94  +_Timeout +( +ut32_t + +time +); + +95  +_Disc +(); + +98 as + cAsyncEvtSour +: +public + +AsyncWebHdr + { + +99 +ive +: + +100 +Sg + +_u +; + +101 + mLkedLi +< + mAsyncEvtSourCl + *> + m_s +; + +102 +ArEvtHdrFuni + + m_ccb +; + +103 + mpublic +: + +104 +AsyncEvtSour +(cڡ +Sg +& +u +); + +105 ~ +AsyncEvtSour +(); + +107 cڡ * + $u +(cڡ {  +_u +. + `c_r +(); } + +108  + `o +(); + +109  + `C +( +ArEvtHdrFuni + +cb +); + +110  + `nd +(cڡ * +mesge +, cڡ * +evt += +NULL +, +ut32_t + +id +=0, ut32_ +c +=0); + +111 +size_t + + $cou +() const; + +112 +size_t + + $avgPacksWag +() const; + +115  + `_addCl +( +AsyncEvtSourCl + * + +); + +116  + `_hdDisc +( +AsyncEvtSourCl + * + +); + +117 +vtu + +bo + + $nHd +( +AsyncWebSvReque + * +que + +ovride + +f +; + +118 +vtu +  + $hdReque +( +AsyncWebSvReque + * +que + +ovride + +f +; + +119 + } +}; + +121 as + cAsyncEvtSourReڣ +: +public + +AsyncWebSvReڣ + { + +122 +ive +: + +123 +Sg + +_cڋ +; + +124 +AsyncEvtSour + * + m_rv +; + +125 + mpublic +: + +126 +AsyncEvtSourReڣ +( +AsyncEvtSour + * +rv +); + +127  +_d +( +AsyncWebSvReque + * +que +); + +128 +size_t + +_ack +( +AsyncWebSvReque + * +que +, size_ +n +, +ut32_t + +time +); + +129 +bo + + $_sourVid +(cڡ {  +ue +; } + +130 + } +}; + + @lib/ESPAsyncWebServer/AsyncJson.h + +35 #ide +ASYNC_JSON_H_ + + +36  + #ASYNC_JSON_H_ + + + ) + +37  + ~ + +38  + ~ + +39  + ~ + +41 #i +ARDUINOJSON_VERSION_MAJOR + == 5 + +42  + #ARDUINOJSON_5_COMPATIBILITY + + + ) + +44  + #DYNAMIC_JSON_DOCUMENT_SIZE + 1024 + + ) + +47 +cڡex + cڡ * + gJSON_MIMETYPE + = "application/json"; + +53 as + cChunkPrt + : +public + +Prt + { + +54 +ive +: + +55 +ut8_t +* +_dei +; + +56 +size_t + + m_to_sk +; + +57 +size_t + + m_to_wre +; + +58 +size_t + + m_pos +; + +59 + mpublic +: + +60 + $ChunkPrt +( +ut8_t +* +dei +, +size_t + +om +, size_ +n +) + +61 : + `_dei +( +dei +), + `_to_sk +( +om +), + `_to_wre +( +n +), +_pos +{0} { + } +} + +62 + gvtu + ~ + $ChunkPrt +(){ + } +} + +63 +size_t + + $wre +( +ut8_t + +c +){ + +64 i( +_to_sk + > 0) { + +65 +_to_sk +--; + +67 } i( +_to_wre + > 0) { + +68 +_to_wre +--; + +69 +_dei +[ +_pos +++] = +c +; + +73 + } +} + +74 +size_t + + $wre +(cڡ +ut8_t + * +bufr +, +size_t + +size +) + +76  +this +-> +Prt +:: + `wre +( +bufr +, +size +); + +77 + } +} + +80 as + cAsyncJsReڣ +: +public + +AsyncAbReڣ + { + +81 +eed +: + +83 #ifde +ARDUINOJSON_5_COMPATIBILITY + + +84 +DymicJsBufr + +_jsBufr +; + +86 +DymicJsDocumt + + m_jsBufr +; + +89 +JsV + + m_ro +; + +90 +bo + + m_isVid +; + +92 + mpublic +: + +94 #ifde +ARDUINOJSON_5_COMPATIBILITY + + +95 + $AsyncJsReڣ +( +bo + +isAay += +l +): +_isVid +{false} { + +96 +_code + = 200; + +97 +_cڋTy + = +JSON_MIMETYPE +; + +98 if( +isAay +) + +99 +_ro + = +_jsBufr +. + `Aay +(); + +101 +_ro + = +_jsBufr +. + `Obje +(); + +102 + } +} + +104 + $AsyncJsReڣ +( +bo + +isAay += +l +, +size_t + +maxJsBufrSize + = +DYNAMIC_JSON_DOCUMENT_SIZE +: + `_jsBufr +(maxJsBufrSize), +_isVid +{ + } +false} { + +105 + g_code + = 200; + +106 + g_cڋTy + = +JSON_MIMETYPE +; + +107 if( + gisAay +) + +108 + g_ro + = +_jsBufr +. +NeedAay +(); + +110 + g_ro + = +_jsBufr +. +NeedObje +(); + +114 ~ + $AsyncJsReڣ +({ + } +} + +115 + gJsV + & + $gRo +({  +_ro +; + } +} + +116 +bo + + $_sourVid +(cڡ {  +_isVid +; + } +} + +117 +size_t + + $tLgth +() { + +119 #ifde +ARDUINOJSON_5_COMPATIBILITY + + +120 +_cڋLgth + = +_ro +. + `msuLgth +(); + +122 +_cڋLgth + = + `msuJs +( +_ro +); + +125 i( +_cڋLgth +{ +_isVid + = +ue +; } + +126  +_cڋLgth +; + +127 + } +} + +129 +size_t + + $gSize +({  +_jsBufr +. + `size +(); + } +} + +131 +size_t + + $_flBufr +( +ut8_t + * +da +, +size_t + +n +){ + +132 +ChunkPrt + + `de +( +da +, +_Lgth +, +n +); + +134 #ifde +ARDUINOJSON_5_COMPATIBILITY + + +135 +_ro +. + `tTo + +de + ) ; + +137 + `rlizeJs +( +_ro +, +de +); + +139  +n +; + +140 + } +} + +143 as + cPyAsyncJsReڣ +: +public + +AsyncJsReڣ + { + +144 +public +: + +145 #ifde +ARDUINOJSON_5_COMPATIBILITY + + +146 + $PyAsyncJsReڣ + ( +bo + +isAay += +l +: +AsyncJsReڣ +{isAay} { + } +} + +148 + $PyAsyncJsReڣ + ( +bo + +isAay += +l +, +size_t + +maxJsBufrSize + = +DYNAMIC_JSON_DOCUMENT_SIZE +: +AsyncJsReڣ +{isAay, + } +maxJsonBufferSize} {} + +150 +size_t + + $tLgth + () { + +151 #ifde +ARDUINOJSON_5_COMPATIBILITY + + +152 +_cڋLgth + = +_ro +. + `msuPyLgth + (); + +154 +_cڋLgth + = + `msuJsPy +( +_ro +); + +156 i( +_cڋLgth +{ +_isVid + = +ue +;} + +157  +_cڋLgth +; + +158 + } +} + +159 +size_t + + $_flBufr + ( +ut8_t + * +da +, +size_t + +n +) { + +160 +ChunkPrt + + `de + ( +da +, +_Lgth +, +n +); + +161 #ifde +ARDUINOJSON_5_COMPATIBILITY + + +162 +_ro +. + `tyPrtTo + ( +de +); + +164 + `rlizeJsPy +( +_ro +, +de +); + +166  +n +; + +167 + } +} + +170  + gd +:: + tfuni +<( + tAsyncWebSvReque + * + tque +, + tJsV + & + tjs +)> + tArJsRequeHdrFuni +; + +172 as + cAsyncClbackJsWebHdr +: +public + +AsyncWebHdr + { + +173 +ive +: + +174 +eed +: + +175 cڡ +Sg + +_uri +; + +176 +WebRequeMhodCompose + + m_mhod +; + +177 +ArJsRequeHdrFuni + + m_Reque +; + +178 +size_t + + m_cڋLgth +; + +179 #ide +ARDUINOJSON_5_COMPATIBILITY + + +180 cڡ +size_t + + mmaxJsBufrSize +; + +182 +size_t + + m_maxCڋLgth +; + +183 + mpublic +: + +184 #ifde +ARDUINOJSON_5_COMPATIBILITY + + +185 + $AsyncClbackJsWebHdr +(cڡ +Sg +& +uri +, +ArJsRequeHdrFuni + +Reque +) + +186 : + `_uri +( +uri +), + `_mhod +( +HTTP_POST +| +HTTP_PUT +| +HTTP_PATCH +), + `_Reque +( +Reque +), + $_maxCڋLgth +(16384) {} + +188 + $AsyncClbackJsWebHdr +(cڡ +Sg +& +uri +, +ArJsRequeHdrFuni + +Reque +, +size_t + +maxJsBufrSize += +DYNAMIC_JSON_DOCUMENT_SIZE +) + +189 : + `_uri +( +uri +), + `_mhod +( +HTTP_POST +| +HTTP_PUT +| +HTTP_PATCH +), + `_Reque +( +Reque +), + `maxJsBufrSize +( +maxJsBufrSize +), + $_maxCڋLgth +(16384{ + } +} + +192  + $tMhod +( +WebRequeMhodCompose + +mhod +){ +_mhod + = mhod; + } +} + +193  + $tMaxCڋLgth +( +maxCڋLgth +){ +_maxCڋLgth + = maxCڋLgth; + } +} + +194  + $Reque +( +ArJsRequeHdrFuni + + +){ +_Reque + = fn; + } +} + +196 +vtu + +bo + + $nHd +( +AsyncWebSvReque + * +que + +ovride + +f +{ + +197 if(! +_Reque +) + +198  +l +; + +200 if(!( +_mhod + & +que +-> + `mhod +())) + +201  +l +; + +203 if( +_uri +. + `ngth +(&& (_ur! +que +-> + `u +(&& !que->u(). + `tsWh +(_uri+"/"))) + +204  +l +; + +206 i! +que +-> + `cڋTy +(). + `equsIgneCa +( +JSON_MIMETYPE +) ) + +207  +l +; + +209 +que +-> + `addIegHd +("ANY"); + +210  +ue +; + +211 + } +} + +213 +vtu +  + $hdReque +( +AsyncWebSvReque + * +que + +ovride + +f + { + +214 if( +_Reque +) { + +215 i( +que +-> +_mpObje + ! +NULL +) { + +217 #ifde +ARDUINOJSON_5_COMPATIBILITY + + +218 +DymicJsBufr + +jsBufr +; + +219 +JsV + +js + = +jsBufr +. + `r +(( +ut8_t +*)( +que +-> +_mpObje +)); + +220 i( +js +. + `sucss +()) { + +222 +DymicJsDocumt + + `jsBufr +( +this +-> +maxJsBufrSize +); + +223 +DerliziE + +r + = + `derlizeJs +( +jsBufr +, ( +ut8_t +*)( +que +-> +_mpObje +)); + +224 if(! +r +) { + +225 +JsV + +js + = +jsBufr +. +as +(); + +228 + `_Reque +( +que +, +js +); + +232 +que +-> + `nd +( +_cڋLgth + > +_maxCڋLgth + ? 413 : 400); + +234 +que +-> + `nd +(500); + +236 + } +} + +237 +vtu +  + $hdUd +( +AsyncWebSvReque + * +que +, cڡ +Sg +& +fame +, +size_t + +dex +, +ut8_t + * +da +, size_ +n +, +bo + +f + +ovride + final { + +238 + } +} + +239 +vtu +  + $hdBody +( +AsyncWebSvReque + * +que +, +ut8_t + * +da +, +size_t + +n +, size_ +dex +, size_ +tٮ + +ovride + +f + { + +240 i( +_Reque +) { + +241 +_cڋLgth + = +tٮ +; + +242 i( +tٮ + > 0 && +que +-> +_mpObje + = +NULL + &&ٮ < +_maxCڋLgth +) { + +243 +que +-> +_mpObje + = + `mloc +( +tٮ +); + +245 i( +que +-> +_mpObje + ! +NULL +) { + +246 + `memy +(( +ut8_t +*)( +que +-> +_mpObje ++ +dex +, +da +, +n +); + +249 + } +} + +250 +vtu + +bo + + $isRequeHdrTrivl +( +ovride + +f + { +_Reque + ? +l + : +ue +; + } +} + + @lib/ESPAsyncWebServer/AsyncWebSocket.cpp + +21  + ~"Arduo.h +" + +22  + ~"AsyncWebSock.h +" + +24  + ~ + +26 #ide +ESP8266 + + +29 +ut32_t + +e +[5]; + +30 +ut32_t + +cou +[2]; + +31  +bufr +[64]; + +32 } + tSHA1_CTX +; + +34  +SHA1Tnsfm +( +ut32_t + +e +[5], cڡ  +bufr +[64]); + +35  +SHA1In +( +SHA1_CTX +* +cڋxt +); + +36  +SHA1Upde +( +SHA1_CTX +* +cڋxt +, cڡ * +da +, +ut32_t + +n +); + +37  +SHA1F +( +dige +[20], +SHA1_CTX +* +cڋxt +); + +40  + ~ + +43  + #MAX_PRINTF_LEN + 64 + + ) + +45 +size_t + +AsyncWebSockMesgeBufrLkedLi +:: +_tٮCou + = 0; + +46 +size_t + + gAsyncWebSockMesgeBufrLkedLi +:: +_tٮSize + = 0; + +48 +size_t + + $webSockSdFmeWdow +( +AsyncCl + * + +){ + +49 if(! + +-> + `nSd +()) + +51 +size_t + +a + = + +-> + `a +(); + +52 if( +a + < 9) + +54  +a + - 8; + +55 + } +} + +57 +size_t + + $webSockSdFme +( +AsyncCl + * + +, +bo + +f +, +ut8_t + +code +, bo +mask +, ut8_* +da +, +size_t + +n +){ + +58 if(! + +-> + `nSd +()) + +60 +size_t + +a + = + +-> + `a +(); + +61 if( +a + < 2) + +63 +ut8_t + +mbuf +[4] = {0,0,0,0}; + +64 +ut8_t + +hdL + = 2; + +65 if( +n + && +mask +){ + +66 +hdL + += 4; + +67 +mbuf +[0] = + `nd +() % 0xFF; + +68 +mbuf +[1] = + `nd +() % 0xFF; + +69 +mbuf +[2] = + `nd +() % 0xFF; + +70 +mbuf +[3] = + `nd +() % 0xFF; + +72 if( +n + > 125) + +73 +hdL + += 2; + +74 if( +a + < +hdL +) + +76 +a + - +hdL +; + +78 if( +n + > +a +)en = space; + +80 +ut8_t + * +buf + = (ut8_t*) + `mloc +( +hdL +); + +81 if( +buf + = +NULL +){ + +86 +buf +[0] = +code + & 0x0F; + +87 if( +f +) + +88 +buf +[0] |= 0x80; + +89 if( +n + < 126) + +90 +buf +[1] = +n + & 0x7F; + +92 +buf +[1] = 126; + +93 +buf +[2] = ( +ut8_t +)(( +n + >> 8) & 0xFF); + +94 +buf +[3] = ( +ut8_t +)( +n + & 0xFF); + +96 if( +n + && +mask +){ + +97 +buf +[1] |= 0x80; + +98 + `memy +( +buf + + ( +hdL + - 4), +mbuf +, 4); + +100 if( + +-> + `add +((cڡ *) +buf +, +hdL +) != headLen){ + +102 + ` +( +buf +); + +105 + ` +( +buf +); + +107 if( +n +){ + +108 if( +n + && +mask +){ + +109 +size_t + +i +; + +110  +i +=0;i< +n +;i++) + +111 +da +[ +i +] = da[i] ^ +mbuf +[i%4]; + +113 if( + +-> + `add +((cڡ *) +da +, +n +) !=en){ + +118 if(! + +-> + `nd +()){ + +122  +n +; + +123 + } +} + +132 + gAsyncWebSockMesgeBufr +:: + $AsyncWebSockMesgeBufr +() + +133 : + `_da +( +nuαr +) + +134 , + `_n +(0) + +135 , + `_lock +( +l +) + +136 , + $_cou +(0) + +139 + } +} + +141 + gAsyncWebSockMesgeBufr +:: + $AsyncWebSockMesgeBufr +( +ut8_t + * +da +, +size_t + +size +) + +142 : + `_da +( +nuαr +) + +143 , + `_n +( +size +) + +144 , + `_lock +( +l +) + +145 , + $_cou +(0) + +148 i(! +da +) { + +152 +_da + = +w + +ut8_t +[ +_n + + 1]; + +154 i( +_da +) { + +155 + `memy +( +_da +, +da +, +_n +); + +156 +_da +[ +_n +] = 0; + +158 + } +} + +161 + gAsyncWebSockMesgeBufr +:: + $AsyncWebSockMesgeBufr +( +size_t + +size +) + +162 : + `_da +( +nuαr +) + +163 , + `_n +( +size +) + +164 , + `_lock +( +l +) + +165 , + $_cou +(0) + +167 +_da + = +w + +ut8_t +[ +_n + + 1]; + +169 i( +_da +) { + +170 +_da +[ +_n +] = 0; + +173 + } +} + +175 + gAsyncWebSockMesgeBufr +:: + $AsyncWebSockMesgeBufr +(cڡ +AsyncWebSockMesgeBufr + & +cy +) + +176 : + `_da +( +nuαr +) + +177 , + `_n +(0) + +178 , + `_lock +( +l +) + +179 , + $_cou +(0) + +181 +_n + = +cy +._len; + +182 +_lock + = +cy +._lock; + +183 +_cou + = 0; + +185 i( +_n +) { + +186 +_da + = +w + +ut8_t +[ +_n + + 1]; + +187 +_da +[ +_n +] = 0; + +190 i( +_da +) { + +191 + `memy +( +_da +, +cy +._da, +_n +); + +192 +_da +[ +_n +] = 0; + +195 + } +} + +197 + gAsyncWebSockMesgeBufr +:: + $AsyncWebSockMesgeBufr +( +AsyncWebSockMesgeBufr + && +cy +) + +198 : + `_da +( +nuαr +) + +199 , + `_n +(0) + +200 , + `_lock +( +l +) + +201 , + $_cou +(0) + +203 +_n + = +cy +._len; + +204 +_lock + = +cy +._lock; + +205 +_cou + = 0; + +207 i( +cy +. +_da +) { + +208 +_da + = +cy +._data; + +209 +cy +. +_da + = +nuαr +; + +212 + } +} + +214 + gAsyncWebSockMesgeBufr +::~ + $AsyncWebSockMesgeBufr +() + +216 i( +_da +) { + +217 +de +[] +_da +; + +219 + } +} + +221 +bo + + gAsyncWebSockMesgeBufr +:: + $rve +( +size_t + +size +) + +223 +_n + = +size +; + +225 i( +_da +) { + +226 +de +[] +_da +; + +227 +_da + = +nuαr +; + +230 +_da + = +w + +ut8_t +[ +_n + + 1]; + +232 i( +_da +) { + +233 +_da +[ +_n +] = 0; + +234  +ue +; + +236  +l +; + +239 + } +} + +247 as + cAsyncWebSockCڌ + { + +248 + mive +: + +249 +ut8_t + +_code +; + +250 +ut8_t + * + m_da +; + +251 +size_t + + m_n +; + +252 +bo + + m_mask +; + +253 +bo + + m_fished +; + +254 + mpublic +: + +255 + $AsyncWebSockCڌ +( +ut8_t + +code +, ut8_* +da += +NULL +, +size_t + +n +=0, +bo + +mask += +l +) + +256 : + `_code +( +code +) + +257 , + `_n +( +n +) + +258 , + `_mask +( +n + && +mask +) + +259 , + $_fished +( +l +) + +261 if( +da + = +NULL +) + +262 +_n + = 0; + +263 if( +_n +){ + +264 if( +_n + > 125) + +265 +_n + = 125; + +266 +_da + = ( +ut8_t +*) + `mloc +( +_n +); + +267 if( +_da + = +NULL +) + +268 +_n + = 0; + +269 + `memy_P +( +_da +, +da +, +n +); + +270 } +_da + = +NULL +; + +272 +vtu + ~ + $AsyncWebSockCڌ +(){ + +273 if( +_da + ! +NULL +) + +274 + ` +( +_da +); + +275 + } +} + +276 +vtu + +bo + + $fished +(cڡ {  +_fished +; + } +} + +277 +ut8_t + + $code +(){  +_code +; + } +} + +278 +ut8_t + + $n +(){  +_n + + 2; + } +} + +279 +size_t + + $nd +( +AsyncCl + * + +){ + +280 +_fished + = +ue +; + +281  + `webSockSdFme +( + +, +ue +, +_code + & 0x0F, +_mask +, +_da +, +_n +); + +282 + } +} + +290 + gAsyncWebSockBasicMesge +:: + $AsyncWebSockBasicMesge +(cڡ * +da +, +size_t + +n +, +ut8_t + +code +, +bo + +mask +) + +291 : + `_n +( +n +) + +292 , + `_ +(0) + +293 , + `_ack +(0) + +294 , + $_acked +(0) + +296 +_code + = +code + & 0x07; + +297 +_mask + = +mask +; + +298 +_da + = ( +ut8_t +*) + `mloc +( +_n ++1); + +299 if( +_da + = +NULL +){ + +300 +_n + = 0; + +301 +_us + = +WS_MSG_ERROR +; + +303 +_us + = +WS_MSG_SENDING +; + +304 + `memy +( +_da +, +da +, +_n +); + +305 +_da +[ +_n +] = 0; + +307 + } +} + +308 + gAsyncWebSockBasicMesge +:: + $AsyncWebSockBasicMesge +( +ut8_t + +code +, +bo + +mask +) + +309 : + `_n +(0) + +310 , + `_ +(0) + +311 , + `_ack +(0) + +312 , + `_acked +(0) + +313 , + $_da +( +NULL +) + +315 +_code + = +code + & 0x07; + +316 +_mask + = +mask +; + +318 + } +} + +321 + gAsyncWebSockBasicMesge +::~ + $AsyncWebSockBasicMesge +() { + +322 if( +_da + ! +NULL +) + +323 + ` +( +_da +); + +324 + } +} + +326  + gAsyncWebSockBasicMesge +:: + $ack +( +size_t + +n +, +ut32_t + +time +) { + +327 () +time +; + +328 +_acked + + +n +; + +329 if( +_ + = +_n + && +_acked + = +_ack +){ + +330 +_us + = +WS_MSG_SENT +; + +332 + } +} + +333 +size_t + + gAsyncWebSockBasicMesge +:: + $nd +( +AsyncCl + * + +) { + +334 if( +_us + ! +WS_MSG_SENDING +) + +336 if( +_acked + < +_ack +){ + +339 if( +_ + = +_n +){ + +340 if( +_acked + = +_ack +) + +341 +_us + = +WS_MSG_SENT +; + +344 if( +_ + > +_n +){ + +345 +_us + = +WS_MSG_ERROR +; + +349 +size_t + +toSd + = +_n + - +_ +; + +350 +size_t + +wdow + = + `webSockSdFmeWdow +( + +); + +352 if( +wdow + < +toSd +) { + +353 +toSd + = +wdow +; + +356 +_ + + +toSd +; + +357 +_ack + + +toSd + + (oSd < 126)?2:4+ ( +_mask + * 4); + +359 +bo + +f + = ( +_ + = +_n +); + +360 +ut8_t +* +dP + = (ut8_t*)( +_da + + ( +_ + - +toSd +)); + +361 +ut8_t + +Code + = ( +toSd + && +_ + =toSd)? +_code +:(ut8_t) +WS_CONTINUATION +; + +363 +size_t + + + = + `webSockSdFme +( + +, +f +, +Code +, +_mask +, +dP +, +toSd +); + +364 +_us + = +WS_MSG_SENDING +; + +365 if( +toSd + && + + !=oSend){ + +366 +_ + -( +toSd + - + +); + +367 +_ack + -( +toSd + - + +); + +369  + +; + +370 + } +} + +391 + gAsyncWebSockMuiMesge +:: + $AsyncWebSockMuiMesge +( +AsyncWebSockMesgeBufr + * +bufr +, +ut8_t + +code +, +bo + +mask +) + +392 : + `_n +(0) + +393 , + `_ +(0) + +394 , + `_ack +(0) + +395 , + `_acked +(0) + +396 , + $_WSbufr +( +nuαr +) + +399 +_code + = +code + & 0x07; + +400 +_mask + = +mask +; + +402 i( +bufr +) { + +403 +_WSbufr + = +bufr +; + +404 (* +_WSbufr +)++; + +405 +_da + = +bufr +-> + `g +(); + +406 +_n + = +bufr +-> + `ngth +(); + +407 +_us + = +WS_MSG_SENDING +; + +410 +_us + = +WS_MSG_ERROR +; + +413 + } +} + +416 + gAsyncWebSockMuiMesge +::~ + $AsyncWebSockMuiMesge +() { + +417 i( +_WSbufr +) { + +418 (* +_WSbufr +)--; + +420 + } +} + +422  + gAsyncWebSockMuiMesge +:: + $ack +( +size_t + +n +, +ut32_t + +time +) { + +423 () +time +; + +424 +_acked + + +n +; + +425 if( +_ + > +_n + && +_acked + > +_ack +){ + +426 +_us + = +WS_MSG_SENT +; + +429 + } +} + +430 +size_t + + gAsyncWebSockMuiMesge +:: + $nd +( +AsyncCl + * + +) { + +431 if( +_us + ! +WS_MSG_SENDING +) + +433 if( +_acked + < +_ack +){ + +436 if( +_ + = +_n +){ + +437 +_us + = +WS_MSG_SENT +; + +440 if( +_ + > +_n +){ + +441 +_us + = +WS_MSG_ERROR +; + +446 +size_t + +toSd + = +_n + - +_ +; + +447 +size_t + +wdow + = + `webSockSdFmeWdow +( + +); + +449 if( +wdow + < +toSd +) { + +450 +toSd + = +wdow +; + +453 +_ + + +toSd +; + +454 +_ack + + +toSd + + (oSd < 126)?2:4+ ( +_mask + * 4); + +458 +bo + +f + = ( +_ + = +_n +); + +459 +ut8_t +* +dP + = (ut8_t*)( +_da + + ( +_ + - +toSd +)); + +460 +ut8_t + +Code + = ( +toSd + && +_ + =toSd)? +_code +:(ut8_t) +WS_CONTINUATION +; + +462 +size_t + + + = + `webSockSdFme +( + +, +f +, +Code +, +_mask +, +dP +, +toSd +); + +463 +_us + = +WS_MSG_SENDING +; + +464 if( +toSd + && + + !=oSend){ + +466 +_ + -( +toSd + - + +); + +467 +_ack + -( +toSd + - + +); + +470  + +; + +471 + } +} + +477 cڡ * + gAWSC_PING_PAYLOAD +[] + gPROGMEM + = { "ESPAsyncWebServer-PING" }; + +478 cڡ +size_t + + gAWSC_PING_PAYLOAD_LEN + = 22; + +480 + gAsyncWebSockCl +:: + $AsyncWebSockCl +( +AsyncWebSvReque + * +que +, +AsyncWebSock + * +rv +) + +481 : + `_cڌQueue +( +LkedLi +< +AsyncWebSockCڌ + *>([](AsyncWebSockCڌ * +c +){ +de + c; + } +})) + +482 , +_mesgeQueue +( +LkedLi +< +AsyncWebSockMesge + *>([](AsyncWebSockMesg* +m +){ +de + m; })) + +483 , + $_mpObje +( +NULL +) + +485 +_ + = +que +-> + ` +(); + +486 +_rv + = +rv +; + +487 +_Id + = +_rv +-> + `_gNextId +(); + +488 +_us + = +WS_CONNECTED +; + +489 +_pe + = 0; + +490 +_ϡMesgeTime + = + `mlis +(); + +491 +_kpAlivePiod + = 0; + +492 +_ +-> + `tRxTimeout +(0); + +493 +_ +-> + `E +([](* +r +, +AsyncCl +* +c +, +t8_t + +r +){ ()c; (( +AsyncWebSockCl +*)))-> + `_E +Ӽ); }, +this +); + +494 +_ +-> + `Ack +([](* +r +, +AsyncCl +* +c +, +size_t + +n +, +ut32_t + +time +){ ()c; (( +AsyncWebSockCl +*)))-> + `_Ack +֒,ime); }, +this +); + +495 +_ +-> + `Disc +([](* +r +, +AsyncCl +* +c +){ (( +AsyncWebSockCl +*)))-> + `_Disc +(); +de + c; }, +this +); + +496 +_ +-> + `Timeout +([](* +r +, +AsyncCl +* +c +, +ut32_t + +time +){ ()c; (( +AsyncWebSockCl +*)))-> + `_Timeout +ime); }, +this +); + +497 +_ +-> + `Da +([](* +r +, +AsyncCl +* +c +, * +buf +, +size_t + +n +){ ()c; (( +AsyncWebSockCl +*)))-> + `_Da +(buf,); }, +this +); + +498 +_ +-> + `Pl +([](* +r +, +AsyncCl +* +c +){ ()c; (( +AsyncWebSockCl +*)))-> + `_Pl +(); }, +this +); + +499 +_rv +-> + `_addCl +( +this +); + +500 +_rv +-> + `_hdEvt +( +this +, +WS_EVT_CONNECT +, +que +, +NULL +, 0); + +501 +de + +que +; + +502 + } +} + +504 + gAsyncWebSockCl +::~ + $AsyncWebSockCl +(){ + +505 +_mesgeQueue +. + ` +(); + +506 +_cڌQueue +. + ` +(); + +507 +_rv +-> + `_hdEvt +( +this +, +WS_EVT_DISCONNECT +, +NULL +, NULL, 0); + +508 + } +} + +510  + gAsyncWebSockCl +:: + $_Ack +( +size_t + +n +, +ut32_t + +time +){ + +511 +_ϡMesgeTime + = + `mlis +(); + +512 if(! +_cڌQueue +. + `isEmy +()){ + +513 aut +hd + = +_cڌQueue +. + `t +(); + +514 if( +hd +-> + `fished +()){ + +515 +n + - +hd +-> + `n +(); + +516 if( +_us + = +WS_DISCONNECTING + && +hd +-> + `code +(= +WS_DISCONNECT +){ + +517 +_cڌQueue +. + `move +( +hd +); + +518 +_us + = +WS_DISCONNECTED +; + +519 +_ +-> + `o +( +ue +); + +522 +_cڌQueue +. + `move +( +hd +); + +525 if( +n + && ! +_mesgeQueue +. + `isEmy +()){ + +526 +_mesgeQueue +. + `t +()-> + `ack +( +n +, +time +); + +528 +_rv +-> + `_nBufrs +(); + +529 + `_runQueue +(); + +530 + } +} + +532  + gAsyncWebSockCl +:: + $_Pl +(){ + +533 if( +_ +-> + `nSd +(&& (! +_cڌQueue +. + `isEmy +(|| ! +_mesgeQueue +.isEmpty())){ + +534 + `_runQueue +(); + +535 } if( +_kpAlivePiod + > 0 && +_cڌQueue +. + `isEmy +(&& +_mesgeQueue +.isEmy(&& ( + `mlis +(- +_ϡMesgeTime +) >= _keepAlivePeriod){ + +536 + `pg +(( +ut8_t + *) +AWSC_PING_PAYLOAD +, +AWSC_PING_PAYLOAD_LEN +); + +538 + } +} + +540  + gAsyncWebSockCl +:: + $_runQueue +(){ + +541 ! +_mesgeQueue +. + `isEmy +(&& _mesgeQueue. + `t +()-> + `fished +()){ + +542 +_mesgeQueue +. + `move +(_mesgeQueue. + `t +()); + +545 if(! +_cڌQueue +. + `isEmy +(&& ( +_mesgeQueue +.isEmy(|| _mesgeQueue. + `t +()-> + `bwnFmes +()&& + `webSockSdFmeWdow +( +_ +> ( +size_t +)(_cڌQueue.t()-> + `n +() - 1)){ + +546 +_cڌQueue +. + `t +()-> + `nd +( +_ +); + +547 } if(! +_mesgeQueue +. + `isEmy +(&& _mesgeQueue. + `t +()-> + `bwnFmes +(&& + `webSockSdFmeWdow +( +_ +)){ + +548 +_mesgeQueue +. + `t +()-> + `nd +( +_ +); + +550 + } +} + +552 +bo + + gAsyncWebSockCl +:: + $queueIsFu +(){ + +553 if( + `_queueIsFu +(|| ( +_us + ! +WS_CONNECTED + +ue +; + +554  +l +; + +555 + } +} + +557 +bo + + gAsyncWebSockCl +:: + $_queueIsFu +() const { + +559 ( +_rv +-> + `gQueuedMesgeCou +(> +WS_MAX_QUEUED_MESSAGES +) || + +560 ( +_rv +-> + `gQueuedMesgeSize +(> +WS_MAX_QUEUED_MESSAGES_SIZE +) + +561 #i +WS_MAX_QUEUED_MESSAGES_MIN_HEAP + + +562 || ( +ESP +. + `gFeHp +(< +WS_MAX_QUEUED_MESSAGES_MIN_HEAP +) + +565 + } +} + +567  + gAsyncWebSockCl +:: + $_queueMesge +( +AsyncWebSockMesge + * +daMesge +){ + +568 if( +daMesge + = +NULL +) + +570 if( +_us + ! +WS_CONNECTED +){ + +571 +de + +daMesge +; + +574 if( + `_queueIsFu +()){ + +575 #i +DEBUG + + +576 :: + `tf +( + `PSTR +("AsyncWebSocketClient: Too many messages queued\n")); + +578 +de + +daMesge +; + +580 +_mesgeQueue +. + `add +( +daMesge +); + +582 if( +_ +-> + `nSd +()) + +583 + `_runQueue +(); + +584 + } +} + +586  + gAsyncWebSockCl +:: + $_queueCڌ +( +AsyncWebSockCڌ + * +cڌMesge +){ + +587 if( +cڌMesge + = +NULL +) + +589 +_cڌQueue +. + `add +( +cڌMesge +); + +590 if( +_ +-> + `nSd +()) + +591 + `_runQueue +(); + +592 + } +} + +594  + gAsyncWebSockCl +:: + $o +( +ut16_t + +code +, cڡ * +mesge +){ + +595 if( +_us + ! +WS_CONNECTED +) + +597 if( +code +){ + +598 +ut8_t + +ckL + = 2; + +599 if( +mesge + ! +NULL +){ + +600 +size_t + +mn + = + ` +( +mesge +); + +601 if( +mn + > 123) mlen = 123; + +602 +ckL + + +mn +; + +604 * +buf + = (*) + `mloc +( +ckL +); + +605 if( +buf + ! +NULL +){ + +606 +buf +[0] = ( +ut8_t +)( +code + >> 8); + +607 +buf +[1] = ( +ut8_t +)( +code + & 0xFF); + +608 if( +mesge + ! +NULL +){ + +609 + `memy +( +buf ++2, +mesge +, +ckL + -2); + +611 + `_queueCڌ +( +w + + `AsyncWebSockCڌ +( +WS_DISCONNECT +,( +ut8_t +*) +buf +, +ckL +)); + +612 + ` +( +buf +); + +616 + `_queueCڌ +( +w + + `AsyncWebSockCڌ +( +WS_DISCONNECT +)); + +617 + } +} + +619  + gAsyncWebSockCl +:: + $pg +( +ut8_t + * +da +, +size_t + +n +){ + +620 if( +_us + = +WS_CONNECTED +) + +621 + `_queueCڌ +( +w + + `AsyncWebSockCڌ +( +WS_PING +, +da +, +n +)); + +622 + } +} + +624  + gAsyncWebSockCl +:: + $_E +( +t8_t +){ + } +} + +626  +AsyncWebSockCl +:: + $_Timeout +( +ut32_t + +time +){ + +627 () +time +; + +628 +_ +-> + `o +( +ue +); + +629 + } +} + +631  + gAsyncWebSockCl +:: + $_Disc +(){ + +632 +_ + = +NULL +; + +633 +_rv +-> + `_hdDisc +( +this +); + +634 + } +} + +636  + gAsyncWebSockCl +:: + $_Da +(* +pbuf +, +size_t + + +){ + +637 +_ϡMesgeTime + = + `mlis +(); + +638 +ut8_t + * +da + = (ut8_t*) +pbuf +; + +639  + + > 0){ + +640 if(! +_pe +){ + +641 cڡ +ut8_t + * +fda + = +da +; + +642 +_pfo +. +dex + = 0; + +643 +_pfo +. +f + = ( +fda +[0] & 0x80) != 0; + +644 +_pfo +. +code + = +fda +[0] & 0x0F; + +645 +_pfo +. +masked + = ( +fda +[1] & 0x80) != 0; + +646 +_pfo +. +n + = +fda +[1] & 0x7F; + +647 +da + += 2; + +648 + + -= 2; + +649 if( +_pfo +. +n + == 126){ + +650 +_pfo +. +n + = +fda +[3] | ( +ut16_t +)(fdata[2]) << 8; + +651 +da + += 2; + +652 + + -= 2; + +653 } if( +_pfo +. +n + == 127){ + +654 +_pfo +. +n + = +fda +[9] | ( +ut16_t +)(fda[8]<< 8 | ( +ut32_t +)(fda[7]<< 16 | (ut32_t)(fda[6]<< 24 | ( +ut64_t +)(fdata[5]) << 32 | (uint64_t)(fdata[4]) << 40 | (uint64_t)(fdata[3]) << 48 | (uint64_t)(fdata[2]) << 56; + +655 +da + += 8; + +656 + + -= 8; + +659 if( +_pfo +. +masked +){ + +660 + `memy +( +_pfo +. +mask +, +da +, 4); + +661 +da + += 4; + +662 + + -= 4; + +666 cڡ +size_t + +d + = +d +:: + `m +((size_t)( +_pfo +. +n + - _pfo. +dex +), + +); + +667 cڡut +da + = +da +[ +d +]; + +669 if( +_pfo +. +masked +){ + +670  +size_t + +i +=0;i< +d +;i++) + +671 +da +[ +i +] ^ +_pfo +. +mask +[(_pfo. +dex ++i)%4]; + +674 if(( +d + + +_pfo +. +dex +< _pfo. +n +){ + +675 +_pe + = 1; + +677 if( +_pfo +. +dex + == 0){ + +678 if( +_pfo +. +code +){ + +679 +_pfo +. +mesge_code + = _pfo. +code +; + +680 +_pfo +. +num + = 0; + +681 } +_pfo +. +num + += 1; + +683 +_rv +-> + `_hdEvt +( +this +, +WS_EVT_DATA +, (*)& +_pfo +, ( +ut8_t +*) +da +, +d +); + +685 +_pfo +. +dex + + +d +; + +686 } if(( +d + + +_pfo +. +dex +=_pfo. +n +){ + +687 +_pe + = 0; + +688 if( +_pfo +. +code + = +WS_DISCONNECT +){ + +689 if( +d +){ + +690 +ut16_t + +asCode + = (ut16_t)( +da +[0] << 8) + data[1]; + +691 * +asSg + = (*)( +da ++2); + +692 if( +asCode + > 1001){ + +693 +_rv +-> + `_hdEvt +( +this +, +WS_EVT_ERROR +, (*)& +asCode +, ( +ut8_t +*) +asSg +, + ` +(reasonString)); + +696 if( +_us + = +WS_DISCONNECTING +){ + +697 +_us + = +WS_DISCONNECTED +; + +698 +_ +-> + `o +( +ue +); + +700 +_us + = +WS_DISCONNECTING +; + +701 +_ +-> + `ackL +(); + +702 + `_queueCڌ +( +w + + `AsyncWebSockCڌ +( +WS_DISCONNECT +, +da +, +d +)); + +704 } if( +_pfo +. +code + = +WS_PING +){ + +705 + `_queueCڌ +( +w + + `AsyncWebSockCڌ +( +WS_PONG +, +da +, +d +)); + +706 } if( +_pfo +. +code + = +WS_PONG +){ + +707 if( +d + ! +AWSC_PING_PAYLOAD_LEN + || + `memcmp_P +( +da +, +AWSC_PING_PAYLOAD +, AWSC_PING_PAYLOAD_LEN) != 0) + +708 +_rv +-> + `_hdEvt +( +this +, +WS_EVT_PONG +, +NULL +, +da +, +d +); + +709 } if( +_pfo +. +code + < 8){ + +710 +_rv +-> + `_hdEvt +( +this +, +WS_EVT_DATA +, (*)& +_pfo +, +da +, +d +); + +719 i( +d + > 0) + +720 +da +[ +d +] = +da +; + +722 +da + + +d +; + +723 + + - +d +; + +725 + } +} + +727 +size_t + + gAsyncWebSockCl +:: + $tf +(cڡ * +fm +, ...) { + +728 +va_li + +g +; + +729 + `va_t +( +g +, +fm +); + +730 * +mp + = +w + [ +MAX_PRINTF_LEN +]; + +731 if(! +mp +){ + +732 + `va_d +( +g +); + +735 * +bufr + = +mp +; + +736 +size_t + +n + = + `vtf +( +mp +, +MAX_PRINTF_LEN +, +fm +, +g +); + +737 + `va_d +( +g +); + +739 i( +n + > ( +MAX_PRINTF_LEN + - 1)) { + +740 +bufr + = +w + [ +n + + 1]; + +741 i(! +bufr +) { + +742 +de +[] +mp +; + +745 + `va_t +( +g +, +fm +); + +746 + `vtf +( +bufr +, +n + + 1, +fm +, +g +); + +747 + `va_d +( +g +); + +749 + `xt +( +bufr +, +n +); + +750 i( +bufr + ! +mp +) { + +751 +de +[] +bufr +; + +753 +de +[] +mp +; + +754  +n +; + +755 + } +} + +757 #ide +ESP32 + + +758 +size_t + + gAsyncWebSockCl +:: + $tf_P +( +PGM_P + +fmP +, ...) { + +759 +va_li + +g +; + +760 + `va_t +( +g +, +fmP +); + +761 * +mp + = +w + [ +MAX_PRINTF_LEN +]; + +762 if(! +mp +){ + +763 + `va_d +( +g +); + +766 * +bufr + = +mp +; + +767 +size_t + +n + = + `vtf_P +( +mp +, +MAX_PRINTF_LEN +, +fmP +, +g +); + +768 + `va_d +( +g +); + +770 i( +n + > ( +MAX_PRINTF_LEN + - 1)) { + +771 +bufr + = +w + [ +n + + 1]; + +772 i(! +bufr +) { + +773 +de +[] +mp +; + +776 + `va_t +( +g +, +fmP +); + +777 + `vtf_P +( +bufr +, +n + + 1, +fmP +, +g +); + +778 + `va_d +( +g +); + +780 + `xt +( +bufr +, +n +); + +781 i( +bufr + ! +mp +) { + +782 +de +[] +bufr +; + +784 +de +[] +mp +; + +785  +n +; + +786 + } +} + +789  + gAsyncWebSockCl +:: + $xt +(cڡ * +mesge +, +size_t + +n +){ + +790 + `_queueMesge +( +w + + `AsyncWebSockBasicMesge +( +mesge +, +n +)); + +791 + } +} + +792  + gAsyncWebSockCl +:: + $xt +(cڡ * +mesge +){ + +793 + `xt +( +mesge +, + ` +(message)); + +794 + } +} + +795  + gAsyncWebSockCl +:: + $xt +( +ut8_t + * +mesge +, +size_t + +n +){ + +796 + `xt +((cڡ *) +mesge +, +n +); + +797 + } +} + +798  + gAsyncWebSockCl +:: + $xt +(* +mesge +){ + +799 + `xt +( +mesge +, + ` +(message)); + +800 + } +} + +801  + gAsyncWebSockCl +:: + $xt +(cڡ +Sg + & +mesge +){ + +802 + `xt +( +mesge +. + `c_r +(), mesge. + `ngth +()); + +803 + } +} + +804  + gAsyncWebSockCl +:: + $xt +(cڡ +__FshSgHr + * +da +){ + +805 + `xt +( + `Sg +( +da +)); + +806 + } +} + +807  + gAsyncWebSockCl +:: + $xt +( +AsyncWebSockMesgeBufr + * +bufr +) + +809 + `_queueMesge +( +w + + `AsyncWebSockMuiMesge +( +bufr +)); + +810 + } +} + +812  + gAsyncWebSockCl +:: + $by +(cڡ * +mesge +, +size_t + +n +){ + +813 + `_queueMesge +( +w + + `AsyncWebSockBasicMesge +( +mesge +, +n +, +WS_BINARY +)); + +814 + } +} + +815  + gAsyncWebSockCl +:: + $by +(cڡ * +mesge +){ + +816 + `by +( +mesge +, + ` +(message)); + +817 + } +} + +818  + gAsyncWebSockCl +:: + $by +( +ut8_t + * +mesge +, +size_t + +n +){ + +819 + `by +((cڡ *) +mesge +, +n +); + +820 + } +} + +821  + gAsyncWebSockCl +:: + $by +(* +mesge +){ + +822 + `by +( +mesge +, + ` +(message)); + +823 + } +} + +824  + gAsyncWebSockCl +:: + $by +(cڡ +Sg + & +mesge +){ + +825 + `by +( +mesge +. + `c_r +(), mesge. + `ngth +()); + +826 + } +} + +827  + gAsyncWebSockCl +:: + $by +(cڡ +__FshSgHr + * +da +, +size_t + +n +){ + +828 +PGM_P + +p + = +t_ +( +da +); + +829 * +mesge + = (* + `mloc +( +n +); + +830 if( +mesge +){ + +831 + `memy_P +( +mesge +, +p +, +n +); + +832 + `by +( +mesge +, +n +); + +833 + ` +( +mesge +); + +836 + } +} + +837  + gAsyncWebSockCl +:: + $by +( +AsyncWebSockMesgeBufr + * +bufr +) + +839 + `_queueMesge +( +w + + `AsyncWebSockMuiMesge +( +bufr +, +WS_BINARY +)); + +840 + } +} + +842 +IPAddss + + gAsyncWebSockCl +:: + $meIP +() { + +843 if(! +_ +) { + +844  + `IPAddss +(0U); + +846  +_ +-> + `meIP +(); + +847 + } +} + +849 +ut16_t + + gAsyncWebSockCl +:: + $mePt +() { + +850 if(! +_ +) { + +853  +_ +-> + `mePt +(); + +854 + } +} + +862 + gAsyncWebSock +:: + $AsyncWebSock +(cڡ +Sg +& +u +) + +863 : + `_u +( +u +) + +864 , + `_s +( +LkedLi +< +AsyncWebSockCl + *>([](AsyncWebSockCl * +c +){ +de + c; + } +})) + +865 , +_cNextId +(1) + +866 , + $_abd +( +ue +) + +868 +_evtHdr + = +NULL +; + +869 + } +} + +871 + gAsyncWebSock +::~ + $AsyncWebSock +(){ + } +} + +873  +AsyncWebSock +:: + $_hdEvt +( +AsyncWebSockCl + * + +, +AwsEvtTy + +ty +, * +g +, +ut8_t + * +da +, +size_t + +n +){ + +874 if( +_evtHdr + ! +NULL +){ + +875 + `_evtHdr +( +this +, + +, +ty +, +g +, +da +, +n +); + +877 + } +} + +879  + gAsyncWebSock +:: + $_addCl +( +AsyncWebSockCl + * + +){ + +880 +_s +. + `add +( + +); + +881 + } +} + +883  + gAsyncWebSock +:: + $_hdDisc +( +AsyncWebSockCl + * + +){ + +885 +_s +. + `move_f +([=]( +AsyncWebSockCl + * +c +){ + +886  +c +-> + `id +(= + +->id(); + +888 + } +} + +890 +bo + + gAsyncWebSock +:: + $avaabFWreA +(){ + +891 cڡuto& +c +: +_s +){ + +892 if( +c +-> + `queueIsFu +() +l +; + +894  +ue +; + +895 + } +} + +897 +bo + + gAsyncWebSock +:: + $avaabFWre +( +ut32_t + +id +){ + +898 cڡuto& +c +: +_s +){ + +899 if( +c +-> + `queueIsFu +(&& (c-> + `id +(= +id + ) +l +; + +901  +ue +; + +902 + } +} + +904 +size_t + + gAsyncWebSock +:: + $cou +() const { + +905  +_s +. + `cou_if +([]( +AsyncWebSockCl + * +c +){ + +906  +c +-> + `us +(= +WS_CONNECTED +; + +908 + } +} + +910 +AsyncWebSockCl + * + gAsyncWebSock +:: + $ +( +ut32_t + +id +){ + +911 cڡut& +c +: +_s +){ + +912 if( +c +-> + `id +(= +id + && c-> + `us +(= +WS_CONNECTED +){ + +913  +c +; + +916  +nuαr +; + +917 + } +} + +920  + gAsyncWebSock +:: + $o +( +ut32_t + +id +, +ut16_t + +code +, cڡ * +mesge +){ + +921 +AsyncWebSockCl + * +c + = + ` +( +id +); + +922 if( +c +) + +923 +c +-> + `o +( +code +, +mesge +); + +924 + } +} + +926  + gAsyncWebSock +:: + $oA +( +ut16_t + +code +, cڡ * +mesge +){ + +927 cڡuto& +c +: +_s +){ + +928 if( +c +-> + `us +(= +WS_CONNECTED +) + +929 +c +-> + `o +( +code +, +mesge +); + +931 + } +} + +933  + gAsyncWebSock +:: + $nupCls +( +ut16_t + +maxCls +) + +935 i( + `cou +(> +maxCls +){ + +936 +_s +. + `t +()-> + `o +(); + +938 + } +} + +940  + gAsyncWebSock +:: + $pg +( +ut32_t + +id +, +ut8_t + * +da +, +size_t + +n +){ + +941 +AsyncWebSockCl + * +c + = + ` +( +id +); + +942 if( +c +) + +943 +c +-> + `pg +( +da +, +n +); + +944 + } +} + +946  + gAsyncWebSock +:: + $pgA +( +ut8_t + * +da +, +size_t + +n +){ + +947 cڡuto& +c +: +_s +){ + +948 if( +c +-> + `us +(= +WS_CONNECTED +) + +949 +c +-> + `pg +( +da +, +n +); + +951 + } +} + +953  + gAsyncWebSock +:: + $xt +( +ut32_t + +id +, cڡ * +mesge +, +size_t + +n +){ + +954 +AsyncWebSockCl + * +c + = + ` +( +id +); + +955 if( +c +) + +956 +c +-> + `xt +( +mesge +, +n +); + +957 + } +} + +959  + gAsyncWebSock +:: + $xtA +( +AsyncWebSockMesgeBufr + * +bufr +){ + +960 i(! +bufr +) ; + +961 +bufr +-> + `lock +(); + +962 cڡuto& +c +: +_s +){ + +963 if( +c +-> + `us +(= +WS_CONNECTED +){ + +964 +c +-> + `xt +( +bufr +); + +967 +bufr +-> + `uock +(); + +968 + `_nBufrs +(); + +969 + } +} + +972  + gAsyncWebSock +:: + $xtA +(cڡ * +mesge +, +size_t + +n +){ + +973 +AsyncWebSockMesgeBufr + * +WSBufr + = + `makeBufr +(( +ut8_t + *) +mesge +, +n +); + +974 + `xtA +( +WSBufr +); + +975 + } +} + +977  + gAsyncWebSock +:: + $by +( +ut32_t + +id +, cڡ * +mesge +, +size_t + +n +){ + +978 +AsyncWebSockCl + * +c + = + ` +( +id +); + +979 if( +c +) + +980 +c +-> + `by +( +mesge +, +n +); + +981 + } +} + +983  + gAsyncWebSock +:: + $byA +(cڡ * +mesge +, +size_t + +n +){ + +984 +AsyncWebSockMesgeBufr + * +bufr + = + `makeBufr +(( +ut8_t + *) +mesge +, +n +); + +985 + `byA +( +bufr +); + +986 + } +} + +988  + gAsyncWebSock +:: + $byA +( +AsyncWebSockMesgeBufr + * +bufr +) + +990 i(! +bufr +) ; + +991 +bufr +-> + `lock +(); + +992 cڡuto& +c +: +_s +){ + +993 if( +c +-> + `us +(= +WS_CONNECTED +) + +994 +c +-> + `by +( +bufr +); + +996 +bufr +-> + `uock +(); + +997 + `_nBufrs +(); + +998 + } +} + +1000  + gAsyncWebSock +:: + $mesge +( +ut32_t + +id +, +AsyncWebSockMesge + * +mesge +){ + +1001 +AsyncWebSockCl + * +c + = + ` +( +id +); + +1002 if( +c +) + +1003 +c +-> + `mesge +( +mesge +); + +1004 + } +} + +1006  + gAsyncWebSock +:: + $mesgeA +( +AsyncWebSockMuiMesge + * +mesge +){ + +1007 cڡuto& +c +: +_s +){ + +1008 if( +c +-> + `us +(= +WS_CONNECTED +) + +1009 +c +-> + `mesge +( +mesge +); + +1011 + `_nBufrs +(); + +1012 + } +} + +1014 +size_t + + gAsyncWebSock +:: + $tf +( +ut32_t + +id +, cڡ * +fm +, ...){ + +1015 +AsyncWebSockCl + * +c + = + ` +( +id +); + +1016 if( +c +){ + +1017 +va_li + +g +; + +1018 + `va_t +( +g +, +fm +); + +1019 +size_t + +n + = +c +-> + `tf +( +fm +, +g +); + +1020 + `va_d +( +g +); + +1021  +n +; + +1024 + } +} + +1026 +size_t + + gAsyncWebSock +:: + $tfA +(cڡ * +fm +, ...) { + +1027 +va_li + +g +; + +1028 * +mp + = +w + [ +MAX_PRINTF_LEN +]; + +1029 if(! +mp +){ + +1032 + `va_t +( +g +, +fm +); + +1033 +size_t + +n + = + `vtf +( +mp +, +MAX_PRINTF_LEN +, +fm +, +g +); + +1034 + `va_d +( +g +); + +1035 +de +[] +mp +; + +1037 +AsyncWebSockMesgeBufr + * +bufr + = + `makeBufr +( +n +); + +1038 i(! +bufr +) { + +1042 + `va_t +( +g +, +fm +); + +1043 + `vtf +(*) +bufr +-> + `g +(), +n + + 1, +fm +, +g +); + +1044 + `va_d +( +g +); + +1046 + `xtA +( +bufr +); + +1047  +n +; + +1048 + } +} + +1050 #ide +ESP32 + + +1051 +size_t + + gAsyncWebSock +:: + $tf_P +( +ut32_t + +id +, +PGM_P + +fmP +, ...){ + +1052 +AsyncWebSockCl + * +c + = + ` +( +id +); + +1053 if( +c + ! +NULL +){ + +1054 +va_li + +g +; + +1055 + `va_t +( +g +, +fmP +); + +1056 +size_t + +n + = +c +-> + `tf_P +( +fmP +, +g +); + +1057 + `va_d +( +g +); + +1058  +n +; + +1061 + } +} + +1064 +size_t + + gAsyncWebSock +:: + $tfA_P +( +PGM_P + +fmP +, ...) { + +1065 +va_li + +g +; + +1066 * +mp + = +w + [ +MAX_PRINTF_LEN +]; + +1067 if(! +mp +){ + +1070 + `va_t +( +g +, +fmP +); + +1071 +size_t + +n + = + `vtf_P +( +mp +, +MAX_PRINTF_LEN +, +fmP +, +g +); + +1072 + `va_d +( +g +); + +1073 +de +[] +mp +; + +1075 +AsyncWebSockMesgeBufr + * +bufr + = + `makeBufr +( +n + + 1); + +1076 i(! +bufr +) { + +1080 + `va_t +( +g +, +fmP +); + +1081 + `vtf_P +((*) +bufr +-> + `g +(), +n + + 1, +fmP +, +g +); + +1082 + `va_d +( +g +); + +1084 + `xtA +( +bufr +); + +1085  +n +; + +1086 + } +} + +1088  + gAsyncWebSock +:: + $xt +( +ut32_t + +id +, cڡ * +mesge +){ + +1089 + `xt +( +id +, +mesge +, + ` +(message)); + +1090 + } +} + +1091  + gAsyncWebSock +:: + $xt +( +ut32_t + +id +, +ut8_t + * +mesge +, +size_t + +n +){ + +1092 + `xt +( +id +, (cڡ *) +mesge +, +n +); + +1093 + } +} + +1094  + gAsyncWebSock +:: + $xt +( +ut32_t + +id +, * +mesge +){ + +1095 + `xt +( +id +, +mesge +, + ` +(message)); + +1096 + } +} + +1097  + gAsyncWebSock +:: + $xt +( +ut32_t + +id +, cڡ +Sg + & +mesge +){ + +1098 + `xt +( +id +, +mesge +. + `c_r +(), mesge. + `ngth +()); + +1099 + } +} + +1100  + gAsyncWebSock +:: + $xt +( +ut32_t + +id +, cڡ +__FshSgHr + * +mesge +){ + +1101 +AsyncWebSockCl + * +c + = + ` +( +id +); + +1102 if( +c + ! +NULL +) + +1103 +c +-> + `xt +( +mesge +); + +1104 + } +} + +1105  + gAsyncWebSock +:: + $xtA +(cڡ * +mesge +){ + +1106 + `xtA +( +mesge +, + ` +(message)); + +1107 + } +} + +1108  + gAsyncWebSock +:: + $xtA +( +ut8_t + * +mesge +, +size_t + +n +){ + +1109 + `xtA +((cڡ *) +mesge +, +n +); + +1110 + } +} + +1111  + gAsyncWebSock +:: + $xtA +(* +mesge +){ + +1112 + `xtA +( +mesge +, + ` +(message)); + +1113 + } +} + +1114  + gAsyncWebSock +:: + $xtA +(cڡ +Sg + & +mesge +){ + +1115 + `xtA +( +mesge +. + `c_r +(), mesge. + `ngth +()); + +1116 + } +} + +1117  + gAsyncWebSock +:: + $xtA +(cڡ +__FshSgHr + * +mesge +){ + +1118 cڡuto& +c +: +_s +){ + +1119 if( +c +-> + `us +(= +WS_CONNECTED +) + +1120 +c +-> + `xt +( +mesge +); + +1122 + } +} + +1123  + gAsyncWebSock +:: + $by +( +ut32_t + +id +, cڡ * +mesge +){ + +1124 + `by +( +id +, +mesge +, + ` +(message)); + +1125 + } +} + +1126  + gAsyncWebSock +:: + $by +( +ut32_t + +id +, +ut8_t + * +mesge +, +size_t + +n +){ + +1127 + `by +( +id +, (cڡ *) +mesge +, +n +); + +1128 + } +} + +1129  + gAsyncWebSock +:: + $by +( +ut32_t + +id +, * +mesge +){ + +1130 + `by +( +id +, +mesge +, + ` +(message)); + +1131 + } +} + +1132  + gAsyncWebSock +:: + $by +( +ut32_t + +id +, cڡ +Sg + & +mesge +){ + +1133 + `by +( +id +, +mesge +. + `c_r +(), mesge. + `ngth +()); + +1134 + } +} + +1135  + gAsyncWebSock +:: + $by +( +ut32_t + +id +, cڡ +__FshSgHr + * +mesge +, +size_t + +n +){ + +1136 +AsyncWebSockCl + * +c + = + ` +( +id +); + +1137 if( +c + ! +NULL +) + +1138 +c +-> + `by +( +mesge +, +n +); + +1139 + } +} + +1140  + gAsyncWebSock +:: + $byA +(cڡ * +mesge +){ + +1141 + `byA +( +mesge +, + ` +(message)); + +1142 + } +} + +1143  + gAsyncWebSock +:: + $byA +( +ut8_t + * +mesge +, +size_t + +n +){ + +1144 + `byA +((cڡ *) +mesge +, +n +); + +1145 + } +} + +1146  + gAsyncWebSock +:: + $byA +(* +mesge +){ + +1147 + `byA +( +mesge +, + ` +(message)); + +1148 + } +} + +1149  + gAsyncWebSock +:: + $byA +(cڡ +Sg + & +mesge +){ + +1150 + `byA +( +mesge +. + `c_r +(), mesge. + `ngth +()); + +1151 + } +} + +1152  + gAsyncWebSock +:: + $byA +(cڡ +__FshSgHr + * +mesge +, +size_t + +n +){ + +1153 cڡuto& +c +: +_s +){ + +1154 if( +c +-> + `us +(= +WS_CONNECTED +) + +1155 +c +-> + `by +( +mesge +, +n +); + +1157 + } +} + +1159 cڡ  + g__WS_STR_CONNECTION +[] + gPROGMEM + = { "Connection" }; + +1160 cڡ  + g__WS_STR_UPGRADE +[] + gPROGMEM + = { "Upgrade" }; + +1161 cڡ  + g__WS_STR_ORIGIN +[] + gPROGMEM + = { "Origin" }; + +1162 cڡ  + g__WS_STR_VERSION +[] + gPROGMEM + = { "Sec-WebSocket-Version" }; + +1163 cڡ  + g__WS_STR_KEY +[] + gPROGMEM + = { "Sec-WebSocket-Key" }; + +1164 cڡ  + g__WS_STR_PROTOCOL +[] + gPROGMEM + = { "Sec-WebSocket-Protocol" }; + +1165 cڡ  + g__WS_STR_ACCEPT +[] + gPROGMEM + = { "Sec-WebSocket-Accept" }; + +1166 cڡ  + g__WS_STR_UUID +[] + gPROGMEM + = { "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" }; + +1168  + #WS_STR_CONNECTION + + `FPSTR +( +__WS_STR_CONNECTION +) + + ) + +1169  + #WS_STR_UPGRADE + + `FPSTR +( +__WS_STR_UPGRADE +) + + ) + +1170  + #WS_STR_ORIGIN + + `FPSTR +( +__WS_STR_ORIGIN +) + + ) + +1171  + #WS_STR_VERSION + + `FPSTR +( +__WS_STR_VERSION +) + + ) + +1172  + #WS_STR_KEY + + `FPSTR +( +__WS_STR_KEY +) + + ) + +1173  + #WS_STR_PROTOCOL + + `FPSTR +( +__WS_STR_PROTOCOL +) + + ) + +1174  + #WS_STR_ACCEPT + + `FPSTR +( +__WS_STR_ACCEPT +) + + ) + +1175  + #WS_STR_UUID + + `FPSTR +( +__WS_STR_UUID +) + + ) + +1177 +bo + + gAsyncWebSock +:: + $nHd +( +AsyncWebSvReque + * +que +){ + +1178 if(! +_abd +) + +1179  +l +; + +1181 if( +que +-> + `mhod +(! +HTTP_GET + || !que-> + `u +(). + `equs +( +_u +|| !que-> + `isExedRequeedCnTy +( +RCT_WS +)) + +1182  +l +; + +1184 +que +-> + `addIegHd +( +WS_STR_CONNECTION +); + +1185 +que +-> + `addIegHd +( +WS_STR_UPGRADE +); + +1186 +que +-> + `addIegHd +( +WS_STR_ORIGIN +); + +1187 +que +-> + `addIegHd +( +WS_STR_VERSION +); + +1188 +que +-> + `addIegHd +( +WS_STR_KEY +); + +1189 +que +-> + `addIegHd +( +WS_STR_PROTOCOL +); + +1190  +ue +; + +1191 + } +} + +1193  + gAsyncWebSock +:: + $hdReque +( +AsyncWebSvReque + * +que +){ + +1194 if(! +que +-> + `hasHd +( +WS_STR_VERSION +|| !que->hasHd( +WS_STR_KEY +)){ + +1195 +que +-> + `nd +(400); + +1198 if(( +_uame +. + `ngth +(&& +_sswd +.ngth()&& ! +que +-> + `authti +(_uame. + `c_r +(), _password.c_str())){ + +1199  +que +-> + `queAuthtiti +(); + +1201 +AsyncWebHd +* +vsi + = +que +-> + `gHd +( +WS_STR_VERSION +); + +1202 if( +vsi +-> + `vue +(). + `toI +() != 13){ + +1203 +AsyncWebSvReڣ + * +ڣ + = +que +-> + `begReڣ +(400); + +1204 +ڣ +-> + `addHd +( +WS_STR_VERSION +, + `F +("13")); + +1205 +que +-> + `nd +( +ڣ +); + +1208 +AsyncWebHd +* +key + = +que +-> + `gHd +( +WS_STR_KEY +); + +1209 +AsyncWebSvReڣ + * +ڣ + = +w + + `AsyncWebSockReڣ +( +key +-> + `vue +(), +this +); + +1210 if( +que +-> + `hasHd +( +WS_STR_PROTOCOL +)){ + +1211 +AsyncWebHd +* +oc + = +que +-> + `gHd +( +WS_STR_PROTOCOL +); + +1213 +ڣ +-> + `addHd +( +WS_STR_PROTOCOL +, +oc +-> + `vue +()); + +1215 +que +-> + `nd +( +ڣ +); + +1216 + } +} + +1218 +AsyncWebSockMesgeBufr + * + gAsyncWebSock +:: + $makeBufr +( +size_t + +size +) + +1220 +AsyncWebSockMesgeBufr + * +bufr + = +w + + `AsyncWebSockMesgeBufr +( +size +); + +1221 i( +bufr +) { + +1222 +AsyncWebLockGud + + `l +( +_lock +); + +1223 +_bufrs +. + `add +( +bufr +); + +1225  +bufr +; + +1226 + } +} + +1228 +AsyncWebSockMesgeBufr + * + gAsyncWebSock +:: + $makeBufr +( +ut8_t + * +da +, +size_t + +size +) + +1230 +AsyncWebSockMesgeBufr + * +bufr + = +w + + `AsyncWebSockMesgeBufr +( +da +, +size +); + +1232 i( +bufr +) { + +1233 +AsyncWebLockGud + + `l +( +_lock +); + +1234 +_bufrs +. + `add +( +bufr +); + +1237  +bufr +; + +1238 + } +} + +1240  + gAsyncWebSock +:: + $_nBufrs +() + +1242 +AsyncWebLockGud + + `l +( +_lock +); + +1244  +AsyncWebSockMesgeBufr + * +c +: +_bufrs +){ + +1245 if( +c + && c-> + `nDe +()){ + +1246 +_bufrs +. + `move +( +c +); + +1249 + } +} + +1251 + gAsyncWebSock +:: +AsyncWebSockClLkedLi + +AsyncWebSock +:: + $gCls +() const { + +1252  +_s +; + +1253 + } +} + +1260 + gAsyncWebSockReڣ +:: + $AsyncWebSockReڣ +(cڡ +Sg +& +key +, +AsyncWebSock + * +rv +){ + +1261 +_rv + = +rv +; + +1262 +_code + = 101; + +1263 +_ndCڋLgth + = +l +; + +1265 +ut8_t + * +hash + = (ut8_t*) + `mloc +(20); + +1266 if( +hash + = +NULL +){ + +1267 +_e + = +RESPONSE_FAILED +; + +1270 * +bufr + = (* + `mloc +(33); + +1271 if( +bufr + = +NULL +){ + +1272 + ` +( +hash +); + +1273 +_e + = +RESPONSE_FAILED +; + +1276 #ifde +ESP8266 + + +1277 + `sha1 +( +key + + +WS_STR_UUID +, +hash +); + +1279 ( +Sg +&) +key + + +WS_STR_UUID +; + +1280 +SHA1_CTX + +x +; + +1281 + `SHA1In +(& +x +); + +1282 + `SHA1Upde +(& +x +, (cڡ *) +key +. + `c_r +(), key. + `ngth +()); + +1283 + `SHA1F +( +hash +, & +x +); + +1285 +ba64_codee + +_e +; + +1286 + `ba64__codee +(& +_e +); + +1287  +n + = + `ba64_code_block +((cڡ * +hash +, 20, +bufr +, & +_e +); + +1288 +n + = + `ba64_code_blockd +(( +bufr + +), & +_e +); + +1289 + `addHd +( +WS_STR_CONNECTION +, +WS_STR_UPGRADE +); + +1290 + `addHd +( +WS_STR_UPGRADE +, + `F +("websocket")); + +1291 + `addHd +( +WS_STR_ACCEPT +, +bufr +); + +1292 + ` +( +bufr +); + +1293 + ` +( +hash +); + +1294 + } +} + +1296  + gAsyncWebSockReڣ +:: + $_d +( +AsyncWebSvReque + * +que +){ + +1297 if( +_e + = +RESPONSE_FAILED +){ + +1298 +que +-> + ` +()-> + `o +( +ue +); + +1301 +Sg + +out + = + `_asmbHd +( +que +-> + `vsi +()); + +1302 +que +-> + ` +()-> + `wre +( +out +. + `c_r +(), +_hdLgth +); + +1303 +_e + = +RESPONSE_WAIT_ACK +; + +1304 + } +} + +1306 +size_t + + gAsyncWebSockReڣ +:: + $_ack +( +AsyncWebSvReque + * +que +, +size_t + +n +, +ut32_t + +time +){ + +1307 () +time +; + +1308 if( +n +){ + +1309 +w + + `AsyncWebSockCl +( +que +, +_rv +); + +1312 + } +} + + @lib/ESPAsyncWebServer/AsyncWebSocket.h + +21 #ide +ASYNCWEBSOCKET_H_ + + +22  + #ASYNCWEBSOCKET_H_ + + + ) + +24  + ~ + +25 #ifde +ESP32 + + +26  + ~ + +27 #ide +WS_MAX_QUEUED_MESSAGES + + +28  + #WS_MAX_QUEUED_MESSAGES + 32 + + ) + +30 #ide +WS_MAX_QUEUED_MESSAGES_SIZE + + +31  + #WS_MAX_QUEUED_MESSAGES_SIZE + 65535 + + ) + +34  + ~ + +35 #ide +WS_MAX_QUEUED_MESSAGES + + +36  + #WS_MAX_QUEUED_MESSAGES + 8 + + ) + +38 #ide +WS_MAX_QUEUED_MESSAGES_SIZE + + +39  + #WS_MAX_QUEUED_MESSAGES_SIZE + 8192 + + ) + +42  + ~ + +45 #ide +WS_MAX_QUEUED_MESSAGES_MIN_HEAP + + +46  + #WS_MAX_QUEUED_MESSAGES_MIN_HEAP + 0 + + ) + +49  + ~"AsyncWebSynchrizi.h +" + +51 #ifde +ESP8266 + + +52  + ~ + +53 #ifde +CRYPTO_HASH_h + + +54  + ~<../c/Hash.h +> + +58 #ifde +ESP32 + + +59  + #DEFAULT_MAX_WS_CLIENTS + 8 + + ) + +61  + #DEFAULT_MAX_WS_CLIENTS + 4 + + ) + +64 +ass + + gAsyncWebSock +; + +65 +ass + + gAsyncWebSockReڣ +; + +66 +ass + + gAsyncWebSockCl +; + +67 +ass + + gAsyncWebSockCڌ +; + +73 +ut8_t + + mmesge_code +; + +75 +ut32_t + + mnum +; + +77 +ut8_t + + mf +; + +79 +ut8_t + + mmasked +; + +83 +ut8_t + + mcode +; + +86 +ut64_t + + mn +; + +88 +ut8_t + + mmask +[4]; + +90 +ut64_t + + mdex +; + +91 } + tAwsFmeInfo +; + +93 um { + mWS_DISCONNECTED +, + mWS_CONNECTED +, + mWS_DISCONNECTING + } + tAwsClStus +; + +94 um { + mWS_CONTINUATION +, + mWS_TEXT +, + mWS_BINARY +, + mWS_DISCONNECT + = 0x08, + mWS_PING +, + mWS_PONG + } + tAwsFmeTy +; + +95 um { + mWS_MSG_SENDING +, + mWS_MSG_SENT +, + mWS_MSG_ERROR + } + tAwsMesgeStus +; + +96 um { + mWS_EVT_CONNECT +, + mWS_EVT_DISCONNECT +, + mWS_EVT_PONG +, + mWS_EVT_ERROR +, + mWS_EVT_DATA + } + tAwsEvtTy +; + +98 as + cAsyncWebSockMesgeBufr + { + +99 + mive +: + +100 +ut8_t + * +_da +; + +101 +size_t + + m_n +; + +102 +bo + + m_lock +; + +103 +ut32_t + + m_cou +; + +105 + mpublic +: + +106 +AsyncWebSockMesgeBufr +(); + +107 +AsyncWebSockMesgeBufr +( +size_t + +size +); + +108 +AsyncWebSockMesgeBufr +( +ut8_t + * +da +, +size_t + +size +); + +109 +AsyncWebSockMesgeBufr +(const AsyncWebSocketMessageBuffer &); + +110 +AsyncWebSockMesgeBufr +(AsyncWebSocketMessageBuffer &&); + +111 ~ +AsyncWebSockMesgeBufr +(); + +112  + mݔ + ++( + mi +{ ()i; + m_cou +++; } + +113  + gݔ + --( + gi +{ ()i; i( + g_cou + > 0) { _count--; } ; } + +114 +bo + +rve +( +size_t + +size +); + +115  + $lock +({ +_lock + = +ue +; + } +} + +116  + $uock +({ +_lock + = +l +; + } +} + +117 +ut8_t + * + $g +({  +_da +; + } +} + +118 +size_t + + $ngth +({  +_n +; + } +} + +119 +ut32_t + + $cou +({  +_cou +; + } +} + +120 +bo + + $nDe +({  (! +_cou + && ! +_lock +); + } +} + +122 +nd + + gAsyncWebSock +; + +126 as + cAsyncWebSockMesge + { + +127 + meed +: + +128 +ut8_t + +_code +; + +129 +bo + + m_mask +; + +130 +AwsMesgeStus + + m_us +; + +131 + mpublic +: + +132 + $AsyncWebSockMesge +(): + `_code +( +WS_TEXT +), + `_mask +( +l +), + $_us +( +WS_MSG_ERROR +){} + +133 +vtu + ~ + $AsyncWebSockMesge +(){ + } +} + +134 +vtu +  +ack +( +size_t + +n + +__ibu__ +(( +unud +)), +ut32_t + +time + __attribute__((unused))){} + +135 +vtu + +size_t + +nd +( +AsyncCl + * + + +__ibu__ +(( +unud +))){  0; } + +136 +vtu + +bo + + $fished +(){  +_us + ! +WS_MSG_SENDING +; + } +} + +137 +vtu + +bo + + $bwnFmes +(cڡ {  +l +; + } +} + +140 as + cAsyncWebSockBasicMesge +: +public + +AsyncWebSockMesge + { + +141 +ive +: + +142 +size_t + +_n +; + +143 +size_t + + m_ +; + +144 +size_t + + m_ack +; + +145 +size_t + + m_acked +; + +146 +ut8_t + * + m_da +; + +147 + mpublic +: + +148 +AsyncWebSockBasicMesge +(cڡ * +da +, +size_t + +n +, +ut8_t + +code += +WS_TEXT +, +bo + +mask += +l +); + +149 +AsyncWebSockBasicMesge +( +ut8_t + +code += +WS_TEXT +, +bo + +mask += +l +); + +150 + mvtu + ~ + $AsyncWebSockBasicMesge +( +ovride +; + +151 +vtu + +bo + + $bwnFmes +(cڡ +ovride + {  +_acked + = +_ack +; } + +152 +vtu +  + $ack +( +size_t + +n +, +ut32_t + +time + +ovride + ; + +153 +vtu + +size_t + + $nd +( +AsyncCl + * + + +ovride + ; + +154 + } +}; + +156 as + cAsyncWebSockMuiMesge +: +public + +AsyncWebSockMesge + { + +157 +ive +: + +158 +ut8_t + * +_da +; + +159 +size_t + + m_n +; + +160 +size_t + + m_ +; + +161 +size_t + + m_ack +; + +162 +size_t + + m_acked +; + +163 +AsyncWebSockMesgeBufr + * + m_WSbufr +; + +164 + mpublic +: + +165 +AsyncWebSockMuiMesge +( +AsyncWebSockMesgeBufr + * +bufr +, +ut8_t + +code += +WS_TEXT +, +bo + +mask += +l +); + +166 + mvtu + ~ + $AsyncWebSockMuiMesge +( +ovride +; + +167 +vtu + +bo + + $bwnFmes +(cڡ +ovride + {  +_acked + = +_ack +; } + +168 +vtu +  + $ack +( +size_t + +n +, +ut32_t + +time + +ovride + ; + +169 +vtu + +size_t + + $nd +( +AsyncCl + * + + +ovride + ; + +170 + } +}; + +172 +ass + + gAsyncWebSockMesgeBufrLkedLi + : +public + +LkedLi +< +AsyncWebSockMesgeBufr + *> { + +173 +public +: + +174 +usg + +T + = +AsyncWebSockMesgeBufr + *; + +175 +usg + + gLT + = +LkedLi +< +T +>; + +177 + give +: + +178  +Remove +( +AsyncWebSockMesgeBufr + * +t +) { + +179 +_tٮSize + - +t +-> +ngth +(); + +180 + g_tٮCou +--; + +181 +de + + gt +; + +184 + gpublic +: + +185 +AsyncWebSockMesgeBufrLkedLi +(: +LT +([ +this +]( +AsyncWebSockMesgeBufr + * +b +){his-> +Remove +(b); }) { + +188  +add +(cڡ +T +& +t +){ + +189 + g_tٮSize + + +t +-> +ngth +(); + +190 + g_tٮCou +++; + +191 + gLT +:: +add +( +t +); + +194 + give +: + +195 +nd + +ass + +AsyncWebSock +; + +198  +size_t + + g_tٮCou +; + +199  +size_t + + g_tٮSize +; + +202 as + cAsyncWebSockCl + { + +203 + mive +: + +204 +AsyncCl + * +_ +; + +205 +AsyncWebSock + * + m_rv +; + +206 +ut32_t + + m_Id +; + +207 +AwsClStus + + m_us +; + +209 + mLkedLi +< + mAsyncWebSockCڌ + *> + m_cڌQueue +; + +210 + mLkedLi +< + mAsyncWebSockMesge + *> + m_mesgeQueue +; + +212 +ut8_t + + m_pe +; + +213 +AwsFmeInfo + + m_pfo +; + +215 +ut32_t + + m_ϡMesgeTime +; + +216 +ut32_t + + m_kpAlivePiod +; + +218  +_queueMesge +( +AsyncWebSockMesge + * +daMesge +); + +219  +_queueCڌ +( +AsyncWebSockCڌ + * +cڌMesge +); + +220  +_runQueue +(); + +222 + mpublic +: + +223 * +_mpObje +; + +225 +AsyncWebSockCl +( +AsyncWebSvReque + * +que +, +AsyncWebSock + * +rv +); + +226 ~ +AsyncWebSockCl +(); + +229 +ut32_t + + $id +(){  +_Id +; } + +230 +AwsClStus + + $us +(){  +_us +; + } +} + +231 +AsyncCl +* + $ +(){  +_ +; + } +} + +232 +AsyncWebSock + * + $rv +(){  +_rv +; + } +} + +233 +AwsFmeInfo + cڡ & + $pfo +(cڡ {  +_pfo +; + } +} + +235 +IPAddss + +meIP +(); + +236 +ut16_t + +mePt +(); + +239  +o +( +ut16_t + +code +=0, cڡ * +mesge += +NULL +); + +240  +pg +( +ut8_t + * +da += +NULL +, +size_t + +n +=0); + +243  + $kpAlivePiod +( +ut16_t + +cds +){ + +244 +_kpAlivePiod + = +cds + * 1000; + +245 + } +} + +246 +ut16_t + + $kpAlivePiod +(){ + +247  ( +ut16_t +)( +_kpAlivePiod + / 1000); + +248 + } +} + +251  + $mesge +( +AsyncWebSockMesge + * +mesge +){ + `_queueMesge +(mesge); + } +} + +252 +bo + +queueIsFu +(); + +254 +size_t + + $tf +(cڡ * +fm +, ... + `__ibu__ + (( + `fm + ( +tf +, 2, 3))); + +255 #ide +ESP32 + + +256 +size_t + + $tf_P +( +PGM_P + +fmP +, ... + `__ibu__ + (( + `fm + ( +tf +, 2, 3))); + +258  + `xt +(cڡ * +mesge +, +size_t + +n +); + +259  + `xt +(cڡ * +mesge +); + +260  + `xt +( +ut8_t + * +mesge +, +size_t + +n +); + +261  + `xt +(* +mesge +); + +262  + `xt +(cڡ +Sg + & +mesge +); + +263  + `xt +(cڡ +__FshSgHr + * +da +); + +264  + `xt +( +AsyncWebSockMesgeBufr + * +bufr +); + +266  + `by +(cڡ * +mesge +, +size_t + +n +); + +267  + `by +(cڡ * +mesge +); + +268  + `by +( +ut8_t + * +mesge +, +size_t + +n +); + +269  + `by +(* +mesge +); + +270  + `by +(cڡ +Sg + & +mesge +); + +271  + `by +(cڡ +__FshSgHr + * +da +, +size_t + +n +); + +272  + `by +( +AsyncWebSockMesgeBufr + * +bufr +); + +274 +bo + + $nSd +({  ! + `_queueIsFu +(); + } +} + +276 +bo + + $_queueIsFu +() const; + +279  + `_Ack +( +size_t + +n +, +ut32_t + +time +); + +280  + `_E +( +t8_t +); + +281  + `_Pl +(); + +282  + `_Timeout +( +ut32_t + +time +); + +283  + `_Disc +(); + +284  + `_Da +(* +pbuf +, +size_t + + +); + +285 + } +}; + +287  + gd +:: + tfuni +<( + tAsyncWebSock + * + trv +, + tAsyncWebSockCl + * + t +, + tAwsEvtTy + + tty +, * + tg +, + tut8_t + * + tda +, + tsize_t + + tn +)> + tAwsEvtHdr +; + +290 as + cAsyncWebSock +: +public + +AsyncWebHdr + { + +291 +public +: + +292  +LkedLi +< + tAsyncWebSockCl + *> + tAsyncWebSockClLkedLi +; + +293 + mive +: + +294 +Sg + +_u +; + +295 +AsyncWebSockClLkedLi + + m_s +; + +296 +ut32_t + + m_cNextId +; + +297 +AwsEvtHdr + + m_evtHdr +; + +298 +bo + + m_abd +; + +299 +AsyncWebLock + + m_lock +; + +301 + mpublic +: + +302 +AsyncWebSock +(cڡ +Sg +& +u +); + +303 ~ +AsyncWebSock +(); + +304 cڡ * + $u +(cڡ {  +_u +. + `c_r +(); } + +305  + $ab +( +bo + +e +){ +_abd + =; + } +} + +306 +bo + + $abd +(cڡ {  +_abd +; + } +} + +307 +bo + +avaabFWreA +(); + +308 +bo + +avaabFWre +( +ut32_t + +id +); + +310 +size_t + + $cou +() const; + +311 +AsyncWebSockCl + * + ` +( +ut32_t + +id +); + +312 +bo + + $hasCl +( +ut32_t + +id +){  + ` +(id! +NULL +; + } +} + +314  +o +( +ut32_t + +id +, +ut16_t + +code +=0, cڡ * +mesge += +NULL +); + +315  +oA +( +ut16_t + +code +=0, cڡ * +mesge += +NULL +); + +316  +nupCls +( +ut16_t + +maxCls + = +DEFAULT_MAX_WS_CLIENTS +); + +318  +pg +( +ut32_t + +id +, +ut8_t + * +da += +NULL +, +size_t + +n +=0); + +319  +pgA +( +ut8_t + * +da += +NULL +, +size_t + +n +=0); + +321  +xt +( +ut32_t + +id +, cڡ * +mesge +, +size_t + +n +); + +322  +xt +( +ut32_t + +id +, cڡ * +mesge +); + +323  +xt +( +ut32_t + +id +, +ut8_t + * +mesge +, +size_t + +n +); + +324  +xt +( +ut32_t + +id +, * +mesge +); + +325  +xt +( +ut32_t + +id +, cڡ +Sg + & +mesge +); + +326  +xt +( +ut32_t + +id +, cڡ +__FshSgHr + * +mesge +); + +328  +xtA +(cڡ * +mesge +, +size_t + +n +); + +329  +xtA +(cڡ * +mesge +); + +330  +xtA +( +ut8_t + * +mesge +, +size_t + +n +); + +331  +xtA +(* +mesge +); + +332  +xtA +(cڡ +Sg + & +mesge +); + +333  +xtA +(cڡ +__FshSgHr + * +mesge +); + +334  +xtA +( +AsyncWebSockMesgeBufr + * +bufr +); + +336  +by +( +ut32_t + +id +, cڡ * +mesge +, +size_t + +n +); + +337  +by +( +ut32_t + +id +, cڡ * +mesge +); + +338  +by +( +ut32_t + +id +, +ut8_t + * +mesge +, +size_t + +n +); + +339  +by +( +ut32_t + +id +, * +mesge +); + +340  +by +( +ut32_t + +id +, cڡ +Sg + & +mesge +); + +341  +by +( +ut32_t + +id +, cڡ +__FshSgHr + * +mesge +, +size_t + +n +); + +343  +byA +(cڡ * +mesge +, +size_t + +n +); + +344  +byA +(cڡ * +mesge +); + +345  +byA +( +ut8_t + * +mesge +, +size_t + +n +); + +346  +byA +(* +mesge +); + +347  +byA +(cڡ +Sg + & +mesge +); + +348  +byA +(cڡ +__FshSgHr + * +mesge +, +size_t + +n +); + +349  +byA +( +AsyncWebSockMesgeBufr + * +bufr +); + +351  +mesge +( +ut32_t + +id +, +AsyncWebSockMesge + *message); + +352  +mesgeA +( +AsyncWebSockMuiMesge + * +mesge +); + +354 +size_t + + $tf +( +ut32_t + +id +, cڡ * +fm +, ... + `__ibu__ + (( + `fm + ( +tf +, 3, 4))); + +355 +size_t + + $tfA +(cڡ * +fm +, ... + `__ibu__ + (( + `fm + ( +tf +, 2, 3))); + +356 #ide +ESP32 + + +357 +size_t + + $tf_P +( +ut32_t + +id +, +PGM_P + +fmP +, ... + `__ibu__ + (( + `fm + ( +tf +, 3, 4))); + +359 +size_t + + $tfA_P +( +PGM_P + +fmP +, ... + `__ibu__ + (( + `fm + ( +tf +, 2, 3))); + +362  + $Evt +( +AwsEvtHdr + +hdr +){ + +363 +_evtHdr + = +hdr +; + +364 + } +} + +367 +ut32_t + + $_gNextId +(){  +_cNextId +++; + } +} + +368  +_addCl +( +AsyncWebSockCl + * + +); + +369  +_hdDisc +( +AsyncWebSockCl + * + +); + +370  +_hdEvt +( +AsyncWebSockCl + * + +, +AwsEvtTy + +ty +, * +g +, +ut8_t + * +da +, +size_t + +n +); + +371 +vtu + +bo + + $nHd +( +AsyncWebSvReque + * +que + +ovride + +f +; + +372 +vtu +  + $hdReque +( +AsyncWebSvReque + * +que + +ovride + +f +; + +376 +AsyncWebSockMesgeBufr + * + `makeBufr +( +size_t + +size + = 0); + +377 +AsyncWebSockMesgeBufr + * + `makeBufr +( +ut8_t + * +da +, +size_t + +size +); + +378 +AsyncWebSockMesgeBufrLkedLi + +_bufrs +; + +379  + `_nBufrs +(); + +381 +AsyncWebSockClLkedLi + + $gCls +() const; + +383 +public +: + +384 #ide +DEBUG_AWS_QUEUE_COUNTERS + + +385  + #DEBUG_AWS_QUEUE_COUNTERS + 0 + + ) + +388 #i +DEBUG_AWS_QUEUE_COUNTERS + + +390 +size_t + + $gQueuedMesgeCou +() const { + +391 + `_vifyCous +(); + +392  +AsyncWebSockMesgeBufrLkedLi +:: +_tٮCou +; + +393 + } +} + +394 +size_t + + $gQueuedMesgeSize +() const { + +395 + `_vifyCous +(); + +396  +AsyncWebSockMesgeBufrLkedLi +:: +_tٮSize +; + +397 + } +} + +399  +size_t + + $_gQueuedMesgeCou +() { + +400  +AsyncWebSockMesgeBufrLkedLi +:: +_tٮCou +; + +401 + } +} + +402  +size_t + + $_gQueuedMesgeSize +() { + +403  +AsyncWebSockMesgeBufrLkedLi +:: +_tٮSize +; + +404 + } +} + +405 + give +: + +406  + $_vifyCous +() const { + +407 +size_t + +t +=0, +c +=0; + +408 cڡut +b +: +_bufrs +) { + +409 +t ++= +b +-> + `ngth +(); + +410 +c +++; + +412 i( +AsyncWebSockMesgeBufrLkedLi +:: +_tٮSize +!= +t + || AsyncWebSockMesgeBufrLkedLi:: +_tٮCou +!= +c +) { + +413 :: + `tf +( + `PSTR +("AsyncWebSockMesgeBufrLkedLi siz%u=%u c %u=%u\n"), +AsyncWebSockMesgeBufrLkedLi +:: +_tٮSize +, +t +,AsyncWebSockMesgeBufrLkedLi:: +_tٮCou +, +c +); + +414 + `nic +(); + +416 + } +} + +418 +size_t + + $gQueuedMesgeCou +() const { + +419  + `_gQueuedMesgeCou +(); + +420 + } +} + +421 +size_t + + $gQueuedMesgeSize +() const { + +422  + `_gQueuedMesgeSize +(); + +423 + } +} + +425  +size_t + + $_gQueuedMesgeCou +() { + +426  +AsyncWebSockMesgeBufrLkedLi +:: +_tٮCou +; + +427 + } +} + +428  +size_t + + $_gQueuedMesgeSize +() { + +429  +AsyncWebSockMesgeBufrLkedLi +:: +_tٮSize +; + +430 + } +} + +436 as + cAsyncWebSockReڣ +: +public + +AsyncWebSvReڣ + { + +437 +ive +: + +438 +Sg + +_cڋ +; + +439 +AsyncWebSock + * + m_rv +; + +440 + mpublic +: + +441 +AsyncWebSockReڣ +(cڡ +Sg +& +key +, +AsyncWebSock + * +rv +); + +442  +_d +( +AsyncWebSvReque + * +que +); + +443 +size_t + +_ack +( +AsyncWebSvReque + * +que +, size_ +n +, +ut32_t + +time +); + +444 +bo + + $_sourVid +(cڡ {  +ue +; } + +445 + } +}; + + @lib/ESPAsyncWebServer/AsyncWebSynchronization.h + +1 #ide +ASYNCWEBSYNCHRONIZATION_H_ + + +2  + #ASYNCWEBSYNCHRONIZATION_H_ + + + ) + +6  + ~ + +8 #ifde +ESP32 + + +11 as + cAsyncWebLock + + +13 + mive +: + +14 +SemheHd_t + +_lock +; + +15 +mub + * + m_lockedBy +; + +17 + mpublic +: + +18 + $AsyncWebLock +() { + +19 +_lock + = + `xSemheCeBy +(); + +20 +_lockedBy + = +NULL +; + +21 + `xSemheGive +( +_lock +); + +24 ~ + $AsyncWebLock +() { + +25 + `vSemheDe +( +_lock +); + +26 + } +} + +28 +bo + + $lock +() const { + +29 * +pxCutTCB +; + +30 i( +_lockedBy + ! +pxCutTCB +) { + +31 + `xSemheTake +( +_lock +, +ptMAX_DELAY +); + +32 +_lockedBy + = +pxCutTCB +; + +33  +ue +; + +35  +l +; + +36 + } +} + +38  + $uock +() const { + +39 +_lockedBy + = +NULL +; + +40 + `xSemheGive +( +_lock +); + +41 + } +} + +47 as + cAsyncWebLock + + +50 + mpublic +: + +51 + $AsyncWebLock +() { + +54 ~ + $AsyncWebLock +() { + +55 + } +} + +57 +bo + + $lock +() const { + +58  +l +; + +59 + } +} + +61  + $uock +() const { + +62 + } +} + +66 as + cAsyncWebLockGud + + +68 + mive +: + +69 cڡ +AsyncWebLock + * +_lock +; + +71 + mpublic +: + +72 + $AsyncWebLockGud +(cڡ +AsyncWebLock + & +l +) { + +73 i( +l +. + `lock +()) { + +74 +_lock + = & +l +; + +76 +_lock + = +NULL +; + +80 ~ + $AsyncWebLockGud +() { + +81 i( +_lock +) { + +82 +_lock +-> + `uock +(); + +84 + } +} + + @lib/ESPAsyncWebServer/ESPAsyncWebServer.h + +21 #ide +_ESPAsyncWebSv_H_ + + +22  + #_ESPAsyncWebSv_H_ + + + ) + +24  + ~"Arduo.h +" + +26  + ~ + +27  + ~"FS.h +" + +29  + ~"SgAay.h +" + +31 #ifde +ESP32 + + +32  + ~ + +33  + ~ + +34 #i +defed +( +ESP8266 +) + +35  + ~ + +36  + ~ + +38 #r +Ptfm + +n + +su܋d + + +41 #ifde +ASYNCWEBSERVER_REGEX + + +42  + #ASYNCWEBSERVER_REGEX_ATTRIBUTE + + + ) + +44  + #ASYNCWEBSERVER_REGEX_ATTRIBUTE + + `__ibu__ +(( + `wng +("ASYNCWEBSERVER_REGEX defed"))) + + ) + +47  + #DEBUGF +(...) + +48 + + ) + +49 +ass + + gAsyncWebSv +; + +50 +ass + + gAsyncWebSvReque +; + +51 +ass + + gAsyncWebSvReڣ +; + +52 +ass + + gAsyncWebHd +; + +53 +ass + + gAsyncWebPam +; + +54 +ass + + gAsyncWebRewre +; + +55 +ass + + gAsyncWebHdr +; + +56 +ass + + gAsyncSticWebHdr +; + +57 +ass + + gAsyncClbackWebHdr +; + +58 +ass + + gAsyncReڣSm +; + +60 #ide +WEBSERVER_H + + +62 + mHTTP_GET + = 0b00000001, + +63 + mHTTP_POST + = 0b00000010, + +64 + mHTTP_DELETE + = 0b00000100, + +65 + mHTTP_PUT + = 0b00001000, + +66 + mHTTP_PATCH + = 0b00010000, + +67 + mHTTP_HEAD + = 0b00100000, + +68 + mHTTP_OPTIONS + = 0b01000000, + +69 + mHTTP_ANY + = 0b01111111, + +70 } + tWebRequeMhod +; + +73 #ide +HAVE_FS_FILE_OPEN_MODE + + +74 +mea + + gfs + { + +75 as + cFeOnMode + { + +76 + gpublic +: + +77 cڡ * +ad +; + +78 cڡ * + gwre +; + +79 cڡ * + gnd +; + +83  + ~"FeOnMode.h +" + +87  + #RESPONSE_TRY_AGAIN + 0xFFFFFFFF + + ) + +89  +ut8_t + + tWebRequeMhodCompose +; + +90  + gd +:: + tfuni +<()> + tArDiscHdr +; + +96 as + cAsyncWebPam + { + +97 + mive +: + +98 +Sg + +_me +; + +99 +Sg + + m_vue +; + +100 +size_t + + m_size +; + +101 +bo + + m_isFm +; + +102 +bo + + m_isFe +; + +104 + mpublic +: + +106 + $AsyncWebPam +(cڡ +Sg +& +me +, cڡ Sg& +vue +, +bo + +fm += +l +, bo +fe +=l, +size_t + +size +=0): + `_me +ame), + `_vue +(vue), + `_size +(size), + `_isFm +(fm), + $_isFe +( +fe +){} + +107 cڡ +Sg +& + $me +(cڡ {  +_me +; + } +} + +108 cڡ + gSg +& + $vue +(cڡ {  +_vue +; + } +} + +109 +size_t + + $size +(cڡ {  +_size +; + } +} + +110 +bo + + $isPo +(cڡ {  +_isFm +; + } +} + +111 +bo + + $isFe +(cڡ {  +_isFe +; + } +} + +118 as + cAsyncWebHd + { + +119 + mive +: + +120 +Sg + +_me +; + +121 +Sg + + m_vue +; + +123 + mpublic +: + +124 + $AsyncWebHd +(cڡ +Sg +& +me +, cڡ Sg& +vue +): + `_me +ame), + $_vue +( +vue +){} + +125 + $AsyncWebHd +(cڡ +Sg +& +da +): + `_me +(), + $_vue +(){ + +126 if(! +da +) ; + +127  +dex + = +da +. + `dexOf +(':'); + +128 i( +dex + < 0) ; + +129 +_me + = +da +. + `subrg +(0, +dex +); + +130 +_vue + = +da +. + `subrg +( +dex + + 2); + +131 + } +} + +132 ~ + $AsyncWebHd +(){ + } +} + +133 cڡ + gSg +& + $me +(cڡ {  +_me +; + } +} + +134 cڡ + gSg +& + $vue +(cڡ {  +_vue +; + } +} + +135 +Sg + + $toSg +(cڡ {  + `Sg +( +_me + + + `F +(": "+ +_vue + + F("\r\n")); + } +} + +142 um { + mRCT_NOT_USED + = -1, + mRCT_DEFAULT + = 0, + mRCT_HTTP +, + mRCT_WS +, + mRCT_EVENT +, + mRCT_MAX + } + tRequeedCiTy +; + +144  + gd +:: + tfuni +< + tsize_t +( + tut8_t +*, size_t, size_t)> + tAwsReڣFr +; + +145  + gd +:: + tfuni +< + tSg +(cڡ Sg&)> + tAwsTemePross +; + +147 as + cAsyncWebSvReque + { + +148 +usg + + mFe + = +fs +:: +Fe +; + +149 +usg + + mFS + = +fs +:: +FS +; + +150 +nd + +ass + + mAsyncWebSv +; + +151 +nd + +ass + + mAsyncClbackWebHdr +; + +152 +nd + +ass + + mHpCookHd +; + +153 + mive +: + +154 +AsyncCl +* +_ +; + +155 +AsyncWebSv +* + m_rv +; + +156 +AsyncWebHdr +* + m_hdr +; + +157 +AsyncWebSvReڣ +* + m_ڣ +; + +158 +SgAay + + m_gHds +; + +159 +ArDiscHdr + + m_Disc +; + +161 +Sg + + m_mp +; + +162 +ut8_t + + m_rS +; + +164 +ut8_t + + m_vsi +; + +165 +WebRequeMhodCompose + + m_mhod +; + +166 +Sg + + m_u +; + +167 +Sg + + m_ho +; + +168 +Sg + + m_cڋTy +; + +169 +Sg + + m_boundy +; + +170 +Sg + + m_authizi +; + +171 +RequeedCiTy + + m_qcy +; + +172  +_moveNIegHds +(); + +173 +bo + + m_isDige +; + +174 +bo + + m_isMuɝt +; + +175 +bo + + m_isPϚPo +; + +176 +bo + + m_exgCtue +; + +177 +size_t + + m_cڋLgth +; + +178 +size_t + + m_rdLgth +; + +180 + mLkedLi +< + mAsyncWebHd + *> + m_hds +; + +181 + mLkedLi +< + mAsyncWebPam + *> + m_ms +; + +182 + mLkedLi +< + mSg + *> + m_thPams +; + +184 +ut8_t + + m_muiPS +; + +185 +ut8_t + + m_boundyPosi +; + +186 +size_t + + m_emSIndex +; + +187 +size_t + + m_emSize +; + +188 +Sg + + m_emName +; + +189 +Sg + + m_emFame +; + +190 +Sg + + m_emTy +; + +191 +Sg + + m_emVue +; + +192 +ut8_t + * + m_emBufr +; + +193 +size_t + + m_emBufrIndex +; + +194 +bo + + m_emIsFe +; + +196  +_Pl +(); + +197  +_Ack +( +size_t + +n +, +ut32_t + +time +); + +198  +_E +( +t8_t + +r +); + +199  +_Timeout +( +ut32_t + +time +); + +200  +_Disc +(); + +201  +_Da +(* +buf +, +size_t + +n +); + +203  +_addPam +( +AsyncWebPam +*); + +204  +_addPhPam +(cڡ * +m +); + +206 +bo + +_rReqHd +(); + +207 +bo + +_rReqHd +(); + +208  +_rLe +(); + +209  +_rPϚPoCh +( +ut8_t + +da +); + +210  +_rMuɝtPoBy +( +ut8_t + +da +, +bo + +ϡ +); + +211  +_addGPams +(cڡ +Sg +& +ms +); + +213  +_hdUdS +(); + +214  +_hdUdBy +( +ut8_t + +da +, +bo + +ϡ +); + +215  +_hdUdEnd +(); + +217 + mpublic +: + +218 +Fe + +_mpFe +; + +219 * + m_mpObje +; + +221 +AsyncWebSvReque +( +AsyncWebSv +*, +AsyncCl +*); + +222 ~ +AsyncWebSvReque +(); + +224 +AsyncCl +* + $ +(){  +_ +; } + +225 +ut8_t + + $vsi +(cڡ {  +_vsi +; + } +} + +226 +WebRequeMhodCompose + + $mhod +(cڡ {  +_mhod +; + } +} + +227 cڡ + gSg +& + $u +(cڡ {  +_u +; + } +} + +228 cڡ + gSg +& + $ho +(cڡ {  +_ho +; + } +} + +229 cڡ + gSg +& + $cڋTy +(cڡ {  +_cڋTy +; + } +} + +230 +size_t + + $cڋLgth +(cڡ {  +_cڋLgth +; + } +} + +231 +bo + + $muɝt +(cڡ {  +_isMuɝt +; + } +} + +232 cڡ +__FshSgHr + * + $mhodToSg +() const; + +233 cڡ +__FshSgHr + * + $queedCnTyToSg +() const; + +234 +RequeedCiTy + + $queedCnTy +(cڡ {  +_qcy +; + } +} + +235 +bo + +isExedRequeedCnTy +( +RequeedCiTy + +1 +, RequeedCiTy +2 + = +RCT_NOT_USED +, RequeedCiTy +3 + = RCT_NOT_USED); + +236  +Disc + ( +ArDiscHdr + + +); + +241 +bo + +authti +(cڡ * +hash +); + +242 +bo + +authti +(cڡ * +uame +, cڡ * +sswd +, cڡ * +m + = +NULL +, bo +sswdIsHash + = +l +); + +243  +queAuthtiti +(cڡ * +m + = +NULL +, +bo + +isDige + = +ue +); + +245  + $tHdr +( +AsyncWebHdr + * +hdr +){ +_hdr + = hdr; + } +} + +246  +addIegHd +(cڡ +Sg +& +me +); + +248  +de +(cڡ +Sg +& +u +); + +250  +nd +( +AsyncWebSvReڣ + * +ڣ +); + +251  +nd +( +code +, cڡ +Sg +& +cڋTy +=Sg(), cڡ Sg& +cڋ +=String()); + +252  +nd +( +FS + & +fs +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +=Sg(), +bo + +dowd += +l +, +AwsTemePross + +back += +nuαr +); + +253  +nd +( +Fe + +cڋ +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +=Sg(), +bo + +dowd += +l +, +AwsTemePross + +back += +nuαr +); + +254  +nd +( +Sm + & +am +, cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsTemePross + +back += +nuαr +); + +255  +nd +(cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsReڣFr + +back +, +AwsTemePross + +meClback += +nuαr +); + +256  +ndChunked +(cڡ +Sg +& +cڋTy +, +AwsReڣFr + +back +, +AwsTemePross + +meClback += +nuαr +); + +257  +nd_P +( +code +, cڡ +Sg +& +cڋTy +, cڡ +ut8_t + * +cڋ +, +size_t + +n +, +AwsTemePross + +back += +nuαr +); + +258  +nd_P +( +code +, cڡ +Sg +& +cڋTy +, +PGM_P + +cڋ +, +AwsTemePross + +back += +nuαr +); + +260 +AsyncWebSvReڣ + * +begReڣ +( +code +, cڡ +Sg +& +cڋTy +=Sg(), cڡ Sg& +cڋ +=String()); + +261 +AsyncWebSvReڣ + * +begReڣ +( +FS + & +fs +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +=Sg(), +bo + +dowd += +l +, +AwsTemePross + +back += +nuαr +); + +262 +AsyncWebSvReڣ + * +begReڣ +( +Fe + +cڋ +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +=Sg(), +bo + +dowd += +l +, +AwsTemePross + +back += +nuαr +); + +263 +AsyncWebSvReڣ + * +begReڣ +( +Sm + & +am +, cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsTemePross + +back += +nuαr +); + +264 +AsyncWebSvReڣ + * +begReڣ +(cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsReڣFr + +back +, +AwsTemePross + +meClback += +nuαr +); + +265 +AsyncWebSvReڣ + * +begChunkedReڣ +(cڡ +Sg +& +cڋTy +, +AwsReڣFr + +back +, +AwsTemePross + +meClback += +nuαr +); + +266 +AsyncReڣSm + * +begReڣSm +(cڡ +Sg +& +cڋTy +, +size_t + +bufrSize +=1460); + +267 +AsyncWebSvReڣ + * +begReڣ_P +( +code +, cڡ +Sg +& +cڋTy +, cڡ +ut8_t + * +cڋ +, +size_t + +n +, +AwsTemePross + +back += +nuαr +); + +268 +AsyncWebSvReڣ + * +begReڣ_P +( +code +, cڡ +Sg +& +cڋTy +, +PGM_P + +cڋ +, +AwsTemePross + +back += +nuαr +); + +270 +size_t + + $hds +() const; + +271 +bo + + $hasHd +(cڡ +Sg +& +me +) const; + +272 +bo + + $hasHd +(cڡ +__FshSgHr + * +da +) const; + +274 +AsyncWebHd +* + $gHd +(cڡ +Sg +& +me +) const; + +275 +AsyncWebHd +* + $gHd +(cڡ +__FshSgHr + * +da +) const; + +276 +AsyncWebHd +* + $gHd +( +size_t + +num +) const; + +278 +size_t + + $ms +() const; + +279 +bo + + $hasPam +(cڡ +Sg +& +me +, +bo + +po += +l +, bo +fe +=false) const; + +280 +bo + + $hasPam +(cڡ +__FshSgHr + * +da +, +bo + +po += +l +, bo +fe +=false) const; + +282 +AsyncWebPam +* + $gPam +(cڡ +Sg +& +me +, +bo + +po += +l +, bo +fe +=false) const; + +283 +AsyncWebPam +* + $gPam +(cڡ +__FshSgHr + * +da +, +bo + +po +, bo +fe +) const; + +284 +AsyncWebPam +* + $gPam +( +size_t + +num +) const; + +286 +size_t + + $gs +(cڡ {  + `ms +(); + } +} + +287 cڡ + gSg +& + $g +(cڡ +Sg +& +me +) const; + +288 cڡ +Sg +& + $g +(cڡ +__FshSgHr + * +da +) const; + +289 cڡ +Sg +& + $g +( +size_t + +i +) const; + +290 cڡ +Sg +& + $gName +( +size_t + +i +) const; + +291 +bo + + $hasArg +(cڡ * +me +) const; + +292 +bo + + $hasArg +(cڡ +__FshSgHr + * +da +) const; + +294 cڡ +Sg +& +ASYNCWEBSERVER_REGEX_ATTRIBUTE + + $thArg +( +size_t + +i +) const; + +296 cڡ +Sg +& + $hd +(cڡ * +me +) const; + +297 cڡ +Sg +& + $hd +(cڡ +__FshSgHr + * +da +) const; + +298 cڡ +Sg +& + $hd +( +size_t + +i +) const; + +299 cڡ +Sg +& + $hdName +( +size_t + +i +) const; + +300 +Sg + + $uDecode +(cڡ +Sg +& +xt +) const; + +301 + } +}; + +307  + gd +:: + tfuni +< + tbo +( + tAsyncWebSvReque + * + tque +)> + tArRequeFrFuni +; + +309 +bo + +ON_STA_FILTER +( +AsyncWebSvReque + * +que +); + +311 +bo + +ON_AP_FILTER +( +AsyncWebSvReque + * +que +); + +317 as + cAsyncWebRewre + { + +318 + meed +: + +319 +Sg + +_om +; + +320 +Sg + + m_toU +; + +321 +Sg + + m_ms +; + +322 +ArRequeFrFuni + + m_fr +; + +323 + mpublic +: + +324 + $AsyncWebRewre +(cڡ * +om +, cڡ * +to +): + `_om +(om), + `_toU +o), + `_ms +( + `Sg +()), + $_fr +( +NULL +){ + +325  +dex + = +_toU +. + `dexOf +('?'); + +326 i( +dex + > 0) { + +327 +_ms + = +_toU +. + `subrg +( +dex + +1); + +328 +_toU + = _toU. + `subrg +(0, +dex +); + +331 +vtu + ~ + $AsyncWebRewre +(){ + } +} + +332 + gAsyncWebRewre +& + $tFr +( +ArRequeFrFuni + + +{ +_fr + = fn;  * +this +; + } +} + +333 +bo + + $fr +( +AsyncWebSvReque + * +que +cڡ {  +_fr + = +NULL + || + `_fr +eque); + } +} + +334 cڡ + gSg +& + $om +(cڡ {  +_om +; + } +} + +335 cڡ + gSg +& + $toU +(cڡ {  +_toU +; + } +} + +336 cڡ + gSg +& + $ms +(cڡ {  +_ms +; + } +} + +337 +vtu + +bo + + $mch +( +AsyncWebSvReque + * +que +{  + `om +(=que-> + `u +(&& + `fr +eque); + } +} + +344 as + cAsyncWebHdr + { + +345 + meed +: + +346 +ArRequeFrFuni + +_fr +; + +347 +Sg + + m_uame +; + +348 +Sg + + m_sswd +; + +349 + mpublic +: + +350 + $AsyncWebHdr +(): + `_uame +(""), + `_sswd +(""){} + +351 +AsyncWebHdr +& + $tFr +( +ArRequeFrFuni + + +{ +_fr + = fn;  * +this +; + } +} + +352 + gAsyncWebHdr +& + $tAuthtiti +(cڡ * +uame +, cڡ * +sswd +){ +_uame + = + `Sg +(uame); +_sswd + = Sgasswd);  * +this +; + } +}; + +353 +bo + + $fr +( +AsyncWebSvReque + * +que +){  +_fr + = +NULL + || + `_fr +eque); + } +} + +354 + gvtu + ~ + $AsyncWebHdr +(){ + } +} + +355 +vtu + +bo + +nHd +( +AsyncWebSvReque + * +que + +__ibu__ +(( +unud +))){ + +356  + gl +; + +358 +vtu +  +hdReque +( +AsyncWebSvReque + * +que + +__ibu__ +(( +unud +))){} + +359 +vtu +  +hdUd +( +AsyncWebSvReque + * +que + +__ibu__ +(( +unud +)), cڡ +Sg +& +fame + __ibu__((unud)), +size_t + +dex + __ibu__((unud)), +ut8_t + * +da + __ibu__((unud)), size_ +n + __ibu__((unud)), +bo + +f + __attribute__((unused))){} + +360 +vtu +  +hdBody +( +AsyncWebSvReque + * +que + +__ibu__ +(( +unud +)), +ut8_t + * +da + __ibu__((unud)), +size_t + +n + __ibu__((unud)), size_ +dex + __ibu__((unud)), size_ +tٮ + __attribute__((unused))){} + +361 +vtu + +bo + + $isRequeHdrTrivl +(){ +ue +; + } +} + +369 + mRESPONSE_SETUP +, + mRESPONSE_HEADERS +, + mRESPONSE_CONTENT +, + mRESPONSE_WAIT_ACK +, + mRESPONSE_END +, + mRESPONSE_FAILED + + +370 } + tWebReڣS +; + +372 as + cAsyncWebSvReڣ + { + +373 + meed +: + +374  +_code +; + +375 + mLkedLi +< + mAsyncWebHd + *> + m_hds +; + +376 +Sg + + m_cڋTy +; + +377 +size_t + + m_cڋLgth +; + +378 +bo + + m_ndCڋLgth +; + +379 +bo + + m_chunked +; + +380 +size_t + + m_hdLgth +; + +381 +size_t + + m_Lgth +; + +382 +size_t + + m_ackedLgth +; + +383 +size_t + + m_wrnLgth +; + +384 +WebReڣS + + m_e +; + +385 cڡ * +_ڣCodeToSg +( +code +); + +386 + mpublic +: + +387 cڡ +__FshSgHr + * +ڣCodeToSg +( +code +); + +389 + mpublic +: + +390 +AsyncWebSvReڣ +(); + +391 + mvtu + ~ +AsyncWebSvReڣ +(); + +392 +vtu +  +tCode +( +code +); + +393 +vtu +  +tCڋLgth +( +size_t + +n +); + +394 +vtu +  +tCڋTy +(cڡ +Sg +& +ty +); + +395 +vtu +  +addHd +(cڡ +Sg +& +me +, cڡ Sg& +vue +); + +396 +vtu + +Sg + +_asmbHd +( +ut8_t + +vsi +); + +397 +vtu + +bo + + $_d +() const; + +398 +vtu + +bo + + $_fished +() const; + +399 +vtu + +bo + + $_ed +() const; + +400 +vtu + +bo + + $_sourVid +() const; + +401 +vtu +  + `_d +( +AsyncWebSvReque + * +que +); + +402 +vtu + +size_t + + `_ack +( +AsyncWebSvReque + * +que +, size_ +n +, +ut32_t + +time +); + +409  +d +:: + tfuni +<( + tAsyncWebSvReque + * + tque +)> + tArRequeHdrFuni +; + +410  +d +:: + tfuni +<( + tAsyncWebSvReque + * + tque +, cڡ + tSg +& + tfame +, + tsize_t + + tdex +, + tut8_t + * + tda +, size_ + tn +, + tbo + + tf +)> + tArUdHdrFuni +; + +411  +d +:: + tfuni +<( + tAsyncWebSvReque + * + tque +, + tut8_t + * + tda +, + tsize_t + + tn +, size_ + tdex +, size_ + ttٮ +)> + tArBodyHdrFuni +; + +413 as + cAsyncWebSv + { + +414 +eed +: + +415 +AsyncSv + +_rv +; + +416 +LkedLi +< +AsyncWebRewre +*> +_wres +; + +417 +LkedLi +< +AsyncWebHdr +*> +_hdrs +; + +418 +AsyncClbackWebHdr +* +_tchAHdr +; + +420 +public +: + +421 + `AsyncWebSv +( +ut16_t + +pt +); + +422 ~ + `AsyncWebSv +(); + +424  + `beg +(); + +425  + `d +(); + +427 #i +ASYNC_TCP_SSL_ENABLED + + +428  + `SFeReque +( +AcSSlFeHdr + +cb +, * +g +); + +429  + `begSecu +(cڡ * + +, cڡ * +ive_key_fe +, cڡ * +sswd +); + +432 +AsyncWebRewre +& + `addRewre +(AsyncWebRewre* +wre +); + +433 +bo + + `moveRewre +( +AsyncWebRewre +* +wre +); + +434 +AsyncWebRewre +& + `wre +(cڡ * +om +, cڡ * +to +); + +436 +AsyncWebHdr +& + `addHdr +(AsyncWebHdr* +hdr +); + +437 +bo + + `moveHdr +( +AsyncWebHdr +* +hdr +); + +439 +AsyncClbackWebHdr +& + ` +(cڡ * +uri +, +ArRequeHdrFuni + +Reque +); + +440 +AsyncClbackWebHdr +& + ` +(cڡ * +uri +, +WebRequeMhodCompose + +mhod +, +ArRequeHdrFuni + +Reque +); + +441 +AsyncClbackWebHdr +& + ` +(cڡ * +uri +, +WebRequeMhodCompose + +mhod +, +ArRequeHdrFuni + +Reque +, +ArUdHdrFuni + +Ud +); + +442 +AsyncClbackWebHdr +& + ` +(cڡ * +uri +, +WebRequeMhodCompose + +mhod +, +ArRequeHdrFuni + +Reque +, +ArUdHdrFuni + +Ud +, +ArBodyHdrFuni + +Body +); + +444 +AsyncSticWebHdr +& + `rveStic +(cڡ * +uri +, +fs +:: +FS +& fs, cڡ * +th +, cڡ * +che_cڌ + = +NULL +); + +446  + `NFound +( +ArRequeHdrFuni + + +); + +447  + `FeUd +( +ArUdHdrFuni + + +); + +448  + `RequeBody +( +ArBodyHdrFuni + + +); + +450  + `t +(); + +452  + `_hdDisc +( +AsyncWebSvReque + * +que +); + +453  + `_chHdr +( +AsyncWebSvReque + * +que +); + +454  + `_wreReque +( +AsyncWebSvReque + * +que +); + +457 as + cDeuHds + { + +458 +usg + +hds_t + = +LkedLi +< +AsyncWebHd + *>; + +459 +hds_t + +_hds +; + +461 + $DeuHds +() + +462 : + `_hds +( + `hds_t +([]( +AsyncWebHd + * +h +){ +de + h; })) + +463 { + } +} + +464 + gpublic +: + +465 +usg + +CڡIt + = +hds_t +::ConstIterator; + +467  + $addHd +(cڡ +Sg +& +me +, cڡ Sg& +vue +){ + +468 +_hds +. + `add +( +w + + `AsyncWebHd +( +me +, +vue +)); + +469 + } +} + +471 +CڡIt + + $beg +(cڡ {  +_hds +. + `beg +(); + } +} + +472 +CڡIt + + $d +(cڡ {  +_hds +. + `d +(); + } +} + +474 +DeuHds +(DeuHdcڡ & +de +; + +475 + gDeuHds + & + gݔ +=( +DeuHds + cڡ & +de +; + +476  + gDeuHds + & + $In +() { + +477  +DeuHds + + +; + +478  + +; + +479 + } +} + +482  + ~"WebReڣIm.h +" + +483  + ~"WebHdrIm.h +" + +484  + ~"AsyncWebSock.h +" + +485  + ~"AsyncEvtSour.h +" + + @lib/ESPAsyncWebServer/SPIFFSEditor.cpp + +1  + ~"SPIFFSEd.h +" + +2  + ~ + +5  + #ed_htm_gz_n + 4151 + + ) + +6 cڡ +ut8_t + + ged_htm_gz +[] + gPROGMEM + = { + +269  + #SPIFFS_MAXLENGTH_FILEPATH + 32 + + ) + +270 cڡ * + gexudeLiFe + = "/.exclude.files"; + +272  + sExudeLiS + { + +273 * + mem +; + +274 +ExudeLiS + * + mxt +; + +275 } + tExudeLi +; + +277  +ExudeLi + * + gexudes + = +NULL +; + +279  +bo + + $mchWd +(cڡ * +n +, cڡ * + +) { + +280 cڡ * +nxP + = +NULL +, * +nxT + = NULL; + +282 * + +) { + +283 i(* +n + ='?' ) || (*=* + +)){ + +284 +n +++; + +++; + +287 i(* +n +=='*'){ + +288 +nxP += +n +++; +nxT += + +; + +291 i( +nxP +){ + +292 +n + = +nxP ++1; + +=++ +nxT +; + +295  +l +; + +297 * +n +=='*'){pattern++;} + +298  (* +n + == 0); + +299 + } +} + +301  +bo + + $addExude +(cڡ * +em +){ + +302 +size_t + +n + = + ` +( +em +); + +303 if(! +n +){ + +304  +l +; + +306 +ExudeLi + * +e + = (ExudeLi *) + `mloc +((ExcludeList)); + +307 if(! +e +){ + +308  +l +; + +310 +e +-> +em + = (*) + `mloc +( +n ++1); + +311 if(! +e +-> +em +){ + +312 + ` +( +e +); + +313  +l +; + +315 + `memy +( +e +-> +em +, im, +n ++1); + +316 +e +-> +xt + = +exudes +; + +317 +exudes + = +e +; + +318  +ue +; + +319 + } +} + +321  + $ldExudeLi +( +fs +:: +FS + & +_fs +, cڡ * +fame +){ + +322  +lebuf +[ +SPIFFS_MAXLENGTH_FILEPATH +]; + +323 +fs +:: +Fe + +exudeFe += +_fs +. + `ݒ +( +fame +, "r"); + +324 if(! +exudeFe +){ + +328 #ifde +ESP32 + + +329 if( +exudeFe +. + `isDey +()){ + +330 +exudeFe +. + `o +(); + +334 i( +exudeFe +. + `size +() > 0){ + +335 +ut8_t + +idx +; + +336 +bo + +isOvowed + = +l +; + +337  +exudeFe +. + `avaab +()){ + +338 +lebuf +[0] = '\0'; + +339 +idx + = 0; + +340  +ϡCh +; + +342 +ϡCh + = +exudeFe +. + `ad +(); + +343 if( +ϡCh + != '\r'){ + +344 +lebuf +[ +idx +++] = ( +ϡCh +; + +346 } ( +ϡCh + >0&& (ϡCh !'\n'&& ( +idx + < +SPIFFS_MAXLENGTH_FILEPATH +)); + +348 if( +isOvowed +){ + +349 +isOvowed + = ( +ϡCh + != '\n'); + +352 +isOvowed + = ( +idx + > +SPIFFS_MAXLENGTH_FILEPATH +); + +353 +lebuf +[ +idx +-1] = '\0'; + +354 if(! + `addExude +( +lebuf +)){ + +355 +exudeFe +. + `o +(); + +360 +exudeFe +. + `o +(); + +361 + } +} + +363  +bo + + $isExuded +( +fs +:: +FS + & +_fs +, cڡ * +fame +) { + +364 if( +exudes + = +NULL +){ + +365 + `ldExudeLi +( +_fs +, +exudeLiFe +); + +367 +ExudeLi + * +e + = +exudes +; + +368  +e +){ + +369 i( + `mchWd +( +e +-> +em +, +fame +)){ + +370  +ue +; + +372 +e + =-> +xt +; + +374  +l +; + +375 + } +} + +379 #ifde +ESP32 + + +380 + gSPIFFSEd +:: + $SPIFFSEd +(cڡ +fs +:: +FS +& fs, cڡ +Sg +& +uame +, cڡ Sg& +sswd +) + +382 +SPIFFSEd +:: + $SPIFFSEd +(cڡ +Sg +& +uame +, cڡ Sg& +sswd +, cڡ +fs +:: +FS +& fs) + +384 : + `_fs +( +fs +) + +385 , + `_uame +( +uame +) + +386 , + `_sswd +( +sswd +) + +387 , + `_authtid +( +l +) + +388 , + $_tTime +(0) + +389 { + } +} + +391 +bo + + gSPIFFSEd +:: + $nHd +( +AsyncWebSvReque + * +que +){ + +392 if( +que +-> + `u +(). + `equsIgneCa +("/edit")){ + +393 if( +que +-> + `mhod +(= +HTTP_GET +){ + +394 if( +que +-> + `hasPam +("list")) + +395  +ue +; + +396 if( +que +-> + `hasPam +("edit")){ + +397 +que +-> +_mpFe + = +_fs +. + `ݒ +eque-> + `g +("edit"), "r"); + +398 if(! +que +-> +_mpFe +){ + +399  +l +; + +401 #ifde +ESP32 + + +402 if( +que +-> +_mpFe +. + `isDey +()){ + +403 +que +-> +_mpFe +. + `o +(); + +404  +l +; + +408 if( +que +-> + `hasPam +("download")){ + +409 +que +-> +_mpFe + = +_fs +. + `ݒ +eque-> + `g +("download"), "r"); + +410 if(! +que +-> +_mpFe +){ + +411  +l +; + +413 #ifde +ESP32 + + +414 if( +que +-> +_mpFe +. + `isDey +()){ + +415 +que +-> +_mpFe +. + `o +(); + +416  +l +; + +420 +que +-> + `addIegHd +("If-Modified-Since"); + +421  +ue +; + +423 if( +que +-> + `mhod +(= +HTTP_POST +) + +424  +ue +; + +425 if( +que +-> + `mhod +(= +HTTP_DELETE +) + +426  +ue +; + +427 if( +que +-> + `mhod +(= +HTTP_PUT +) + +428  +ue +; + +431  +l +; + +432 + } +} + +435  + gSPIFFSEd +:: + $hdReque +( +AsyncWebSvReque + * +que +){ + +436 if( +_uame +. + `ngth +(&& +_sswd +.ngth(&& ! +que +-> + `authti +(_uame. + `c_r +(), _password.c_str())) + +437  +que +-> + `queAuthtiti +(); + +439 if( +que +-> + `mhod +(= +HTTP_GET +){ + +440 if( +que +-> + `hasPam +("list")){ + +441 +Sg + +th + = +que +-> + `gPam +("li")-> + `vue +(); + +442 #ifde +ESP32 + + +443 +Fe + +d + = +_fs +. + `ݒ +( +th +); + +445 +D + +d + = +_fs +. + `ݒD +( +th +); + +447 +th + = + `Sg +(); + +448 +Sg + +ouut + = "["; + +449 #ifde +ESP32 + + +450 +Fe + +y + = +d +. + `ݒNextFe +(); + +451  +y +){ + +453  +d +. + `xt +()){ + +454 +fs +:: +Fe + +y + = +d +. + `ݒFe +("r"); + +456 i( + `isExuded +( +_fs +, +y +. + `me +())) { + +457 #ifde +ESP32 + + +458 +y + = +d +. + `ݒNextFe +(); + +462 i( +ouut + != "[") output += ','; + +463 +ouut + += "{\"type\":\""; + +464 +ouut + += "file"; + +465 +ouut + += "\",\"name\":\""; + +466 +ouut + + + `Sg +( +y +. + `me +()); + +467 +ouut + += "\",\"size\":"; + +468 +ouut + + + `Sg +( +y +. + `size +()); + +469 +ouut + += "}"; + +470 #ifde +ESP32 + + +471 +y + = +d +. + `ݒNextFe +(); + +473 +y +. + `o +(); + +476 #ifde +ESP32 + + +477 +d +. + `o +(); + +479 +ouut + += "]"; + +480 +que +-> + `nd +(200, "iti/js", +ouut +); + +481 +ouut + = + `Sg +(); + +483 if( +que +-> + `hasPam +("edit") ||equest->hasParam("download")){ + +484 +que +-> + `nd +eque-> +_mpFe +,eque->_mpFe. + `me +(), + `Sg +(),eque-> + `hasPam +("download")); + +487 cڡ * +budTime + = +__DATE__ + " " +__TIME__ + " GMT"; + +488 i( +que +-> + `hd +("If-Modifd-S"). + `equs +( +budTime +)) { + +489 +que +-> + `nd +(304); + +491 +AsyncWebSvReڣ + * +ڣ + = +que +-> + `begReڣ_P +(200, "xt/html", +ed_htm_gz +, +ed_htm_gz_n +); + +492 +ڣ +-> + `addHd +("Content-Encoding", "gzip"); + +493 +ڣ +-> + `addHd +("La-Modifd", +budTime +); + +494 +que +-> + `nd +( +ڣ +); + +497 } if( +que +-> + `mhod +(= +HTTP_DELETE +){ + +498 if( +que +-> + `hasPam +("th", +ue +)){ + +499 +_fs +. + `move +( +que +-> + `gPam +("th", +ue +)-> + `vue +()); + +500 +que +-> + `nd +(200, "", "DELETE: "+que-> + `gPam +("th", +ue +)-> + `vue +()); + +502 +que +-> + `nd +(404); + +503 } if( +que +-> + `mhod +(= +HTTP_POST +){ + +504 if( +que +-> + `hasPam +("da", +ue +,rue&& +_fs +. + `exis +eque-> + `gPam +("da",rue,rue)-> + `vue +())) + +505 +que +-> + `nd +(200, "", "UPLOADED: "+que-> + `gPam +("da", +ue +,rue)-> + `vue +()); + +507 +que +-> + `nd +(500); + +508 } if( +que +-> + `mhod +(= +HTTP_PUT +){ + +509 if( +que +-> + `hasPam +("th", +ue +)){ + +510 +Sg + +fame + = +que +-> + `gPam +("th", +ue +)-> + `vue +(); + +511 if( +_fs +. + `exis +( +fame +)){ + +512 +que +-> + `nd +(200); + +514 +fs +:: +Fe + +f + = +_fs +. + `ݒ +( +fame +, "w"); + +515 if( +f +){ + +516 +f +. + `wre +(( +ut8_t +)0x00); + +517 +f +. + `o +(); + +518 +que +-> + `nd +(200, "", "CREATE: "+ +fame +); + +520 +que +-> + `nd +(500); + +524 +que +-> + `nd +(400); + +526 + } +} + +528  + gSPIFFSEd +:: + $hdUd +( +AsyncWebSvReque + * +que +, cڡ +Sg +& +fame +, +size_t + +dex +, +ut8_t + * +da +, size_ +n +, +bo + +f +){ + +529 if(! +dex +){ + +530 if(! +_uame +. + `ngth +(|| +que +-> + `authti +(_uame. + `c_r +(), +_sswd +.c_str())){ + +531 +_authtid + = +ue +; + +532 +que +-> +_mpFe + = +_fs +. + `ݒ +( +fame +, "w"); + +533 +_tTime + = + `mlis +(); + +536 if( +_authtid + && +que +-> +_mpFe +){ + +537 if( +n +){ + +538 +que +-> +_mpFe +. + `wre +( +da +, +n +); + +540 if( +f +){ + +541 +que +-> +_mpFe +. + `o +(); + +544 + } +} + + @lib/ESPAsyncWebServer/SPIFFSEditor.h + +1 #ide +SPIFFSEd_H_ + + +2  + #SPIFFSEd_H_ + + + ) + +3  + ~ + +5 as + cSPIFFSEd + : +public + +AsyncWebHdr + { + +6 +ive +: + +7 +fs +:: +FS + +_fs +; + +8 +Sg + + m_uame +; + +9 +Sg + + m_sswd +; + +10 +bo + + m_authtid +; + +11 +ut32_t + + m_tTime +; + +13 + mpublic +: + +14 #ifde +ESP32 + + +15 +SPIFFSEd +(cڡ +fs +:: +FS + & fs, cڡ +Sg + & +uame + = Sg(), cڡ Sg & +sswd + = String()); + +17 #agm +GCC + +dgnoic + +push + + +18 #agm +GCC + +dgnoic + +igned + "-Wdeprecated-declarations" + +19 +SPIFFSEd +(cڡ +Sg + & +uame + = Sg(), cڡ Sg & +sswd + = Sg(), cڡ +fs +:: +FS + & f +SPIFFS +); + +20 #agm +GCC + +dgnoic + +p + + +22 +vtu + +bo + + $nHd +( +AsyncWebSvReque + * +que + +ovride + +f +; + +23 +vtu +  + $hdReque +( +AsyncWebSvReque + * +que + +ovride + +f +; + +24 +vtu +  + $hdUd +( +AsyncWebSvReque + * +que +, cڡ +Sg + & +fame +, +size_t + +dex +, +ut8_t + * +da +, size_ +n +, +bo + +f + +ovride + final; + +25 +vtu + +bo + + $isRequeHdrTrivl +( +ovride + +f + { + +26  +l +; + +28 + } +}; + + @lib/ESPAsyncWebServer/StringArray.h + +21 #ide +STRINGARRAY_H_ + + +22  + #STRINGARRAY_H_ + + + ) + +24  + ~"ddef.h +" + +25  + ~"WSg.h +" + +27 + gme + < +tyme + + gT +> + +28 as + cLkedLiNode + { + +29 +T + + m_vue +; + +30 + mpublic +: + +31 +LkedLiNode +< +T +>* +xt +; + +32 + $LkedLiNode +(cڡ +T + +v +): + `_vue +(v), + $xt +( +nuαr +) {} + +33 ~ + $LkedLiNode +(){ + } +} + +34 cڡ + gT +& + $vue +(cڡ {  +_vue +; + } +}; + +35 + gT +& + $vue +(){  +_vue +; + } +} + +38 + gme + < +tyme + + gT +,eme< + gtyme +> +ass + + gIm + = +LkedLiNode +> + +39 as + cLkedLi + { + +40 +public +: + +41  +Im +< + tT +> + tImTy +; + +42  + md +:: + tfuni +<(cڡ + tT +&)> + tOnRemove +; + +43  + md +:: + tfuni +< + tbo +(cڡ + tT +&)> + tPdi +; + +44 + mive +: + +45 +ImTy +* +_ro +; + +46 +OnRemove + + m_Remove +; + +48 as + cIt + { + +49 +ImTy +* + m_node +; + +50 + mpublic +: + +51 +It +( +ImTy +* +cut + = +nuαr +: +_node +(current) {} + +52 +It +(cڡ It& +i +: +_node +(i._node) {} + +53 +It +& +ݔ + ++({ +_node + = _node-> +xt +;  * + mthis +; } + +54 +bo + + mݔ + !(cڡ +It +& +i +cڡ {  +_node + != i._node; } + +55 cڡ + mT +& + mݔ + * (cڡ {  + m_node +-> +vue +(); } + +56 cڡ +T +* + mݔ + -> (cڡ {  & + m_node +-> +vue +(); } + +59 + gpublic +: + +60 cڡ + tIt + + tCڡIt +; + +61 +CڡIt + + $beg +(cڡ {  + `CڡIt +( +_ro +); + } +} + +62 +CڡIt + + $d +(cڡ {  + `CڡIt +( +nuαr +); + } +} + +64 + $LkedLi +( +OnRemove + +Remove +: + `_ro +( +nuαr +), + $_Remove +( +Remove +{ + } +} + +65 ~ + $LkedLi +(){ + } +} + +66  + $add +(cڡ +T +& +t +){ + +67 aut + + = +w + + `ImTy +( +t +); + +68 if(! +_ro +){ + +69 +_ro + = + +; + +71 aut +i + = +_ro +; + +72  +i +-> +xt +) i = i->next; + +73 +i +-> +xt + = + +; + +75 + } +} + +76 + gT +& + $t +() const { + +77  +_ro +-> + `vue +(); + +78 + } +} + +80 +bo + + $isEmy +() const { + +81  +_ro + = +nuαr +; + +82 + } +} + +83 +size_t + + $ngth +() const { + +84 +size_t + +i + = 0; + +85 aut + + = +_ro +; + +86  + +){ + +87 +i +++; + +88 + + = it-> +xt +; + +90  +i +; + +91 + } +} + +92 +size_t + + $cou_if +( +Pdi + +edi +) const { + +93 +size_t + +i + = 0; + +94 aut + + = +_ro +; + +95  + +){ + +96 i(! +edi +){ + +97 +i +++; + +99 i( + `edi +( + +-> + `vue +())) { + +100 +i +++; + +102 + + = it-> +xt +; + +104  +i +; + +105 + } +} + +106 cڡ +T +* + $h +( +size_t + +N +) const { + +107 +size_t + +i + = 0; + +108 aut + + = +_ro +; + +109  + +){ + +110 if( +i +++ = +N +) + +111  &( + +-> + `vue +()); + +112 + + = it-> +xt +; + +114  +nuαr +; + +115 + } +} + +116 +bo + + $move +(cڡ +T +& +t +){ + +117 aut + + = +_ro +; + +118 aut +p + = +_ro +; + +119  + +){ + +120 if( + +-> + `vue +(= +t +){ + +121 if( + + = +_ro +){ + +122 +_ro + = _ro-> +xt +; + +124 +p +-> +xt + = + +->next; + +127 i( +_Remove +) { + +128 + `_Remove +( + +-> + `vue +()); + +131 +de + + +; + +132  +ue +; + +134 +p + = + +; + +135 + + = it-> +xt +; + +137  +l +; + +138 + } +} + +139 +bo + + $move_f +( +Pdi + +edi +){ + +140 aut + + = +_ro +; + +141 aut +p + = +_ro +; + +142  + +){ + +143 if( + `edi +( + +-> + `vue +())){ + +144 if( + + = +_ro +){ + +145 +_ro + = _ro-> +xt +; + +147 +p +-> +xt + = + +->next; + +149 i( +_Remove +) { + +150 + `_Remove +( + +-> + `vue +()); + +152 +de + + +; + +153  +ue +; + +155 +p + = + +; + +156 + + = it-> +xt +; + +158  +l +; + +159 + } +} + +161  + $ +(){ + +162  +_ro + ! +nuαr +){ + +163 aut + + = +_ro +; + +164 +_ro + = _ro-> +xt +; + +165 i( +_Remove +) { + +166 + `_Remove +( + +-> + `vue +()); + +168 +de + + +; + +170 +_ro + = +nuαr +; + +171 + } +} + +175 +ass + + gSgAay + : +public + +LkedLi +< +Sg +> { + +176 +public +: + +178 +SgAay +(: +LkedLi +( +nuαr +) {} + +180 +bo + +cڏsIgneCa +(cڡ +Sg +& +r +){ + +181 cڡuto& +s + : * +this +) { + +182 i( +r +. +equsIgneCa +( +s +)) { + +183  +ue +; + +186  + gl +; + + @lib/ESPAsyncWebServer/WebAuthentication.cpp + +21  + ~"WebAuthtiti.h +" + +22  + ~ + +23 #ifde +ESP32 + + +24  + ~"mbeds/md5.h +" + +26  + ~"md5.h +" + +32 +bo + + $checkBasicAuthtiti +(cڡ * +hash +, cڡ * +uame +, cڡ * +sswd +){ + +33 if( +uame + = +NULL + || +sswd + =NULL || +hash + == NULL) + +34  +l +; + +36 +size_t + +tncodeL + = + ` +( +uame +)+( +sswd +)+1; + +37 +size_t + +codedL + = + `ba64_code_exed_n +( +tncodeL +); + +38 if( + ` +( +hash +! +codedL +) + +39  +l +; + +41 * +tncode + = +w + [ +tncodeL ++1]; + +42 if( +tncode + = +NULL +){ + +43  +l +; + +45 * +coded + = +w + [ + `ba64_code_exed_n +( +tncodeL +)+1]; + +46 if( +coded + = +NULL +){ + +47 +de +[] +tncode +; + +48  +l +; + +50 + `rtf_P +( +tncode +, + `PSTR +("%s:%s"), +uame +, +sswd +); + +51 if( + `ba64_code_chs +( +tncode +, +tncodeL +, +coded +> 0 && + `memcmp +( +hash +,ncoded, +codedL +) == 0){ + +52 +de +[] +tncode +; + +53 +de +[] +coded +; + +54  +ue +; + +56 +de +[] +tncode +; + +57 +de +[] +coded +; + +58  +l +; + +59 + } +} + +61  +bo + + $gMD5 +( +ut8_t + * +da +, +ut16_t + +n +, * +ouut +){ + +62 #ifde +ESP32 + + +63 +mbeds_md5_cڋxt + +_x +; + +65 +md5_cڋxt_t + +_x +; + +67 +ut8_t + +i +; + +68 +ut8_t + * +_buf + = (ut8_t*) + `mloc +(16); + +69 if( +_buf + = +NULL +) + +70  +l +; + +71 + `memt +( +_buf +, 0x00, 16); + +72 #ifde +ESP32 + + +73 + `mbeds_md5_ +(& +_x +); + +74 + `mbeds_md5_ts +(& +_x +); + +75 + `mbeds_md5_upde +(& +_x +, +da +, +n +); + +76 + `mbeds_md5_fish +(& +_x +, +_buf +); + +78 + `MD5In +(& +_x +); + +79 + `MD5Upde +(& +_x +, +da +, +n +); + +80 + `MD5F +( +_buf +, & +_x +); + +82  +i + = 0; i < 16; i++) { + +83 + `rtf_P +( +ouut + + ( +i + * 2), + `PSTR +("%02x"), +_buf +[i]); + +85 + ` +( +_buf +); + +86  +ue +; + +87 + } +} + +89  +Sg + + $gRdomMD5 +(){ + +90 #ifde +ESP8266 + + +91 +ut32_t + +r + = +RANDOM_REG32 +; + +93 +ut32_t + +r + = + `nd +(); + +95 * +out + = (*) + `mloc +(33); + +96 if( +out + = +NULL + || ! + `gMD5 +(( +ut8_t +*)(& +r +), 4, out)) + +97  +emySg +; + +98 +Sg + +s + = + `Sg +( +out +); + +99 + ` +( +out +); + +100  +s +; + +101 + } +} + +103  +Sg + + $rgMD5 +(cڡ +Sg +& + +){ + +104 * +out + = (*) + `mloc +(33); + +105 if( +out + = +NULL + || ! + `gMD5 +(( +ut8_t +*)( + +. + `c_r +()), in. + `ngth +(), out)) + +106  +emySg +; + +107 +Sg + +s + = + `Sg +( +out +); + +108 + ` +( +out +); + +109  +s +; + +110 + } +} + +112 +Sg + + $geDigeHash +(cڡ * +uame +, cڡ * +sswd +, cڡ * +m +){ + +113 if( +uame + = +NULL + || +sswd + =NULL || +m + == NULL){ + +114  +emySg +; + +116 * +out + = (*) + `mloc +(33); + +117 +Sg + +s + = + `Sg +( +uame +); + +118 +s + += ':'; + +119 +s +. + `ct +( +m +); + +120 +s + += ':'; + +121 +Sg + + + = +s +; + +122 + +. + `ct +( +sswd +); + +123 if( +out + = +NULL + || ! + `gMD5 +(( +ut8_t +*)( + +. + `c_r +()), in. + `ngth +(), out)) + +124  +emySg +; + +125 +s +. + `ct +( +out +); + +126 + ` +( +out +); + +127  +s +; + +128 + } +} + +130 +Sg + + $queDigeAuthtiti +(cڡ * +m +){ + +131 +Sg + +hd + = + `F +("realm=\""); + +132 if( +m + = +NULL +) + +133 +hd +. + `ct +( + `F +("asyncesp")); + +135 +hd +. + `ct +( +m +); + +136 +hd +. + `ct +( + `F +("\", qop=\"auth\",once=\"")); + +137 +hd +. + `ct +( + `gRdomMD5 +()); + +138 +hd +. + `ct +( + `F +("\", opaque=\"")); + +139 +hd +. + `ct +( + `gRdomMD5 +()); + +140 +hd + += '"'; + +141  +hd +; + +142 + } +} + +144 +bo + + $checkDigeAuthtiti +(cڡ * +hd +, cڡ +__FshSgHr + * +mhod +, cڡ * +uame +, cڡ * +sswd +, cڡ * +m +, +bo + +sswdIsHash +, cڡ * +n +, cڡ * +aque +, cڡ * +uri +){ + +145 if( +uame + = +NULL + || +sswd + =NULL || +hd + =NULL || +mhod + == NULL){ + +147  +l +; + +150 +Sg + +myHd + = + `Sg +( +hd +); + +151  +xtBak + = +myHd +. + `dexOf +(','); + +152 if( +xtBak + < 0){ + +154  +l +; + +157 +Sg + +myUame + = + `Sg +(); + +158 +Sg + +myRlm + = + `Sg +(); + +159 +Sg + +myN + = + `Sg +(); + +160 +Sg + +myUri + = + `Sg +(); + +161 +Sg + +myReڣ + = + `Sg +(); + +162 +Sg + +myQ + = + `Sg +(); + +163 +Sg + +myNc + = + `Sg +(); + +164 +Sg + +myCn + = + `Sg +(); + +166 +myHd + + + `F +(", "); + +168 +Sg + +avLe + = +myHd +. + `subrg +(0, +xtBak +); + +169 +avLe +. + `im +(); + +170 +myHd + = myHd. + `subrg +( +xtBak ++1); + +171 +xtBak + = +myHd +. + `dexOf +(','); + +173  +eqSign + = +avLe +. + `dexOf +('='); + +174 if( +eqSign + < 0){ + +176  +l +; + +178 +Sg + +vName + = +avLe +. + `subrg +(0, +eqSign +); + +179 +avLe + =vLe. + `subrg +( +eqSign + + 1); + +180 if( +avLe +. + `tsWh +( + `Sg +('"'))){ + +181 +avLe + =vLe. + `subrg +(1,vLe. + `ngth +() - 1); + +184 if( +vName +. + `equs +( + `F +("username"))){ + +185 if(! +avLe +. + `equs +( +uame +)){ + +187  +l +; + +189 +myUame + = +avLe +; + +190 } if( +vName +. + `equs +( + `F +("realm"))){ + +191 if( +m + ! +NULL + && ! +avLe +. + `equs +(realm)){ + +193  +l +; + +195 +myRlm + = +avLe +; + +196 } if( +vName +. + `equs +( + `F +("nonce"))){ + +197 if( +n + ! +NULL + && ! +avLe +. + `equs +(nonce)){ + +199  +l +; + +201 +myN + = +avLe +; + +202 } if( +vName +. + `equs +( + `F +("opaque"))){ + +203 if( +aque + ! +NULL + && ! +avLe +. + `equs +(opaque)){ + +205  +l +; + +207 } if( +vName +. + `equs +( + `F +("uri"))){ + +208 if( +uri + ! +NULL + && ! +avLe +. + `equs +(uri)){ + +210  +l +; + +212 +myUri + = +avLe +; + +213 } if( +vName +. + `equs +( + `F +("response"))){ + +214 +myReڣ + = +avLe +; + +215 } if( +vName +. + `equs +( + `F +("qop"))){ + +216 +myQ + = +avLe +; + +217 } if( +vName +. + `equs +( + `F +("nc"))){ + +218 +myNc + = +avLe +; + +219 } if( +vName +. + `equs +( + `F +("cnonce"))){ + +220 +myCn + = +avLe +; + +222 }  +xtBak + > 0); + +224 +Sg + +ha1 + = ( +sswdIsHash +? + `Sg +( +sswd +: + `rgMD5 +( +myUame + + ':' + +myRlm + + ':' + String(password)); + +225 +Sg + +ha2 + = + `Sg +( +mhod ++ ':' + +myUri +; + +226 +Sg + +ڣ + = +ha1 + + ':' + +myN + + ':' + +myNc + + ':' + +myCn + + ':' + +myQ + + ':' + + `rgMD5 +( +ha2 +); + +228 if( +myReڣ +. + `equs +( + `rgMD5 +( +ڣ +))){ + +230  +ue +; + +234  +l +; + +235 + } +} + + @lib/ESPAsyncWebServer/WebAuthentication.h + +22 #ide +WEB_AUTHENTICATION_H_ + + +23  + #WEB_AUTHENTICATION_H_ + + + ) + +25  + ~"Arduo.h +" + +27 +bo + +checkBasicAuthtiti +(cڡ * +hd +, cڡ * +uame +, cڡ * +sswd +); + +28 +Sg + +queDigeAuthtiti +(cڡ * +m +); + +29 +bo + +checkDigeAuthtiti +(cڡ * +hd +, cڡ +__FshSgHr + * +mhod +, cڡ * +uame +, cڡ * +sswd +, cڡ * +m +, bo +sswdIsHash +, cڡ * +n +, cڡ * +aque +, cڡ * +uri +); + +32 +Sg + +geDigeHash +(cڡ * +uame +, cڡ * +sswd +, cڡ * +m +); + + @lib/ESPAsyncWebServer/WebHandlerImpl.h + +21 #ide +ASYNCWEBSERVERHANDLERIMPL_H_ + + +22  + #ASYNCWEBSERVERHANDLERIMPL_H_ + + + ) + +24  + ~ + +25 #ifde +ASYNCWEBSERVER_REGEX + + +26  + ~ + +29  + ~"ddef.h +" + +30  + ~ + +32 as + cAsyncSticWebHdr +: +public + +AsyncWebHdr + { + +33 +usg + +Fe + = +fs +::File; + +34 +usg + + mFS + = +fs +:: +FS +; + +35 + mive +: + +36 +bo + +_gFe +( +AsyncWebSvReque + * +que +); + +37 +bo + +_feExis +( +AsyncWebSvReque + * +que +, cڡ +Sg +& +th +); + +38 +ut8_t + + $_couBs +(cڡ +ut8_t + +vue +) const; + +39 +eed +: + +40 +FS + +_fs +; + +41 +Sg + +_uri +; + +42 +Sg + +_th +; + +43 +Sg + +_deu_fe +; + +44 +Sg + +_che_cڌ +; + +45 +Sg + +_ϡ_modifd +; + +46 +AwsTemePross + +_back +; + +47 +bo + +_isD +; + +48 +bo + +_gzF +; + +49 +ut8_t + +_gzSts +; + +50 +public +: + +51 + `AsyncSticWebHdr +(cڡ * +uri +, +FS +& +fs +, cڡ * +th +, cڡ * +che_cڌ +); + +52 +vtu + +bo + + $nHd +( +AsyncWebSvReque + * +que + +ovride + +f +; + +53 +vtu +  + $hdReque +( +AsyncWebSvReque + * +que + +ovride + +f +; + +54 +AsyncSticWebHdr +& + `tIsD +( +bo + +isD +); + +55 +AsyncSticWebHdr +& + `tDeuFe +(cڡ * +fame +); + +56 +AsyncSticWebHdr +& + `tCacheCڌ +(cڡ * +che_cڌ +); + +57 +AsyncSticWebHdr +& + `tLaModifd +(cڡ * +ϡ_modifd +); + +58 +AsyncSticWebHdr +& + `tLaModifd +( +tm +* +ϡ_modifd +); + +59 #ifde +ESP8266 + + +60 +AsyncSticWebHdr +& + `tLaModifd +( +time_t + +ϡ_modifd +); + +61 +AsyncSticWebHdr +& + `tLaModifd +(); + +63 +AsyncSticWebHdr +& + $tTemePross +( +AwsTemePross + +wClback +{ +_back + =ewClback;  * +this +;} + +64 + } +}; + +66 as + cAsyncClbackWebHdr +: +public + +AsyncWebHdr + { + +67 +ive +: + +68 +eed +: + +69 +Sg + +_uri +; + +70 +WebRequeMhodCompose + + m_mhod +; + +71 +ArRequeHdrFuni + + m_Reque +; + +72 +ArUdHdrFuni + + m_Ud +; + +73 +ArBodyHdrFuni + + m_Body +; + +74 +bo + + m_isRegex +; + +75 + mpublic +: + +76 + $AsyncClbackWebHdr +(: + `_uri +(), + `_mhod +( +HTTP_ANY +), + `_Reque +( +NULL +), + `_Ud +(NULL), + `_Body +(NULL), + $_isRegex +( +l +) {} + +77  + $tUri +(cڡ +Sg +& +uri +){ + +78 +_uri + = +uri +; + +79 +_isRegex + = +uri +. + `tsWh +("^"&& uri. + `dsWh +("$"); + +80 + } +} + +81  + $tMhod +( +WebRequeMhodCompose + +mhod +){ +_mhod + = mhod; + } +} + +82  + $Reque +( +ArRequeHdrFuni + + +){ +_Reque + = fn; + } +} + +83  + $Ud +( +ArUdHdrFuni + + +){ +_Ud + = fn; + } +} + +84  + $Body +( +ArBodyHdrFuni + + +){ +_Body + = fn; + } +} + +86 +vtu + +bo + + $nHd +( +AsyncWebSvReque + * +que + +ovride + +f +{ + +88 if(! +_Reque +) + +89  +l +; + +91 if(!( +_mhod + & +que +-> + `mhod +())) + +92  +l +; + +94 #ifde +ASYNCWEBSERVER_REGEX + + +95 i( +_isRegex +) { + +96 +d +:: +gex + + `n +( +_uri +. + `c_r +()); + +97 +d +:: +smch + +mches +; + +98 +d +:: +rg + + `s +( +que +-> + `u +(). + `c_r +()); + +99 if( +d +:: + `gex_ch +( +s +, +mches +, +n +)) { + +100  +size_t + +i + = 1; i < +mches +. + `size +(); ++i) { + +101 +que +-> + `_addPhPam +( +mches +[ +i +]. + `r +(). + `c_r +()); + +104  +l +; + +108 i( +_uri +. + `ngth +(&& _uri. + `dsWh +("*")) { + +109 +Sg + +uriTeme + = + `Sg +( +_uri +); + +110 +uriTeme + = uriTeme. + `subrg +(0, uriTeme. + `ngth +() - 1); + +111 i(! +que +-> + `u +(). + `tsWh +( +uriTeme +)) + +112  +l +; + +114 if( +_uri +. + `ngth +(&& (_ur! +que +-> + `u +(&& !que->u(). + `tsWh +(_uri+"/"))) + +115  +l +; + +117 +que +-> + `addIegHd +("ANY"); + +118  +ue +; + +119 + } +} + +121 +vtu +  + $hdReque +( +AsyncWebSvReque + * +que + +ovride + +f + { + +122 if( +_Reque +) + +123 + `_Reque +( +que +); + +125 +que +-> + `nd +(500); + +126 + } +} + +127 +vtu +  + $hdUd +( +AsyncWebSvReque + * +que +, cڡ +Sg +& +fame +, +size_t + +dex +, +ut8_t + * +da +, size_ +n +, +bo + +f + +ovride + final { + +128 if( +_Ud +) + +129 + `_Ud +( +que +, +fame +, +dex +, +da +, +n +, +f +); + +130 + } +} + +131 +vtu +  + $hdBody +( +AsyncWebSvReque + * +que +, +ut8_t + * +da +, +size_t + +n +, size_ +dex +, size_ +tٮ + +ovride + +f + { + +132 if( +_Body +) + +133 + `_Body +( +que +, +da +, +n +, +dex +, +tٮ +); + +134 + } +} + +135 +vtu + +bo + + $isRequeHdrTrivl +( +ovride + +f + { +_Reque + ? +l + : +ue +; + } +} + + @lib/ESPAsyncWebServer/WebHandlers.cpp + +21  + ~"ESPAsyncWebSv.h +" + +22  + ~"WebHdrIm.h +" + +24 + gAsyncSticWebHdr +:: + $AsyncSticWebHdr +(cڡ * +uri +, +FS +& +fs +, cڡ * +th +, cڡ * +che_cڌ +) + +25 : + `_fs +( +fs +), + `_uri +( +uri +), + `_th +( +th +), + `_deu_fe +( + `F +("dex.htm")), + `_che_cڌ +( +che_cڌ +), + `_ϡ_modifd +(), + $_back +( +nuαr +) + +28 i( +_uri +. + `ngth +(=0 || _uri[0] !'/'_ur + `Sg +('/') + _uri; + +29 i( +_th +. + `ngth +(=0 || _th[0] !'/'_th = + `Sg +('/') + _path; + +33 +_isD + = +_th +[_th. + `ngth +()-1] == '/'; + +37 i( +_uri +[_uri. + `ngth +()-1] ='/'_ur_uri. + `subrg +(0, _uri.length()-1); + +38 i( +_th +[_th. + `ngth +()-1] ='/'_th = _th. + `subrg +(0, _path.length()-1); + +41 +_gzF + = +l +; + +42 +_gzSts + = 0xF8; + +43 + } +} + +45 + gAsyncSticWebHdr +& AsyncSticWebHdr:: + $tIsD +( +bo + +isD +){ + +46 +_isD + = +isD +; + +47  * +this +; + +48 + } +} + +50 + gAsyncSticWebHdr +& AsyncSticWebHdr:: + $tDeuFe +(cڡ * +fame +){ + +51 +_deu_fe + = + `Sg +( +fame +); + +52  * +this +; + +53 + } +} + +55 + gAsyncSticWebHdr +& AsyncSticWebHdr:: + $tCacheCڌ +(cڡ * +che_cڌ +){ + +56 +_che_cڌ + = + `Sg +( +che_cڌ +); + +57  * +this +; + +58 + } +} + +60 + gAsyncSticWebHdr +& AsyncSticWebHdr:: + $tLaModifd +(cڡ * +ϡ_modifd +){ + +61 +_ϡ_modifd + = + `Sg +( +ϡ_modifd +); + +62  * +this +; + +63 + } +} + +65 + gAsyncSticWebHdr +& AsyncSticWebHdr:: + $tLaModifd +( +tm +* +ϡ_modifd +){ + +66 aut +fmP + = + `PSTR +("%a, %d %b %Y %H:%M:%S %Z"); + +67  +fm +[ + `_P +( +fmP +) + 1]; + +68 + `ry_P +( +fm +, +fmP +); + +70  +su +[30]; + +71 + `rime +( +su +, esu), +fm +, +ϡ_modifd +); + +72  + `tLaModifd +((cڡ *) +su +); + +73 + } +} + +75 #ifde +ESP8266 + + +76 + gAsyncSticWebHdr +& AsyncSticWebHdr:: + $tLaModifd +( +time_t + +ϡ_modifd +){ + +77  + `tLaModifd +(( +tm + *) + `gmtime +(& +ϡ_modifd +)); + +78 + } +} + +80 + gAsyncSticWebHdr +& AsyncSticWebHdr:: + $tLaModifd +(){ + +81 +time_t + +ϡ_modifd +; + +82 if( + `time +(& +ϡ_modifd +) == 0) + +83  * +this +; + +84  + `tLaModifd +( +ϡ_modifd +); + +85 + } +} + +87 +bo + + gAsyncSticWebHdr +:: + $nHd +( +AsyncWebSvReque + * +que +){ + +88 if( +que +-> + `mhod +(! +HTTP_GET + + +89 || ! +que +-> + `u +(). + `tsWh +( +_uri +) + +90 || ! +que +-> + `isExedRequeedCnTy +( +RCT_DEFAULT +, +RCT_HTTP +) + +92  +l +; + +94 i( + `_gFe +( +que +)) { + +96 i( +_ϡ_modifd +. + `ngth +()) + +97 +que +-> + `addIegHd +( + `F +("If-Modified-Since")); + +99 if( +_che_cڌ +. + `ngth +()) + +100 +que +-> + `addIegHd +( + `F +("If-None-Match")); + +102 + `DEBUGF +("[AsyncStaticWebHandler::canHandle] TRUE\n"); + +103  +ue +; + +106  +l +; + +107 + } +} + +109 +bo + + gAsyncSticWebHdr +:: + $_gFe +( +AsyncWebSvReque + * +que +) + +112 +Sg + +th + = +que +-> + `u +(). + `subrg +( +_uri +. + `ngth +()); + +115 +bo + +nSkFeCheck + = ( +_isD + && +th +. + `ngth +() == 0) || (path.length() &&ath[path.length()-1] == '/'); + +117 +th + = +_th + +ath; + +120 i(! +nSkFeCheck + && + `_feExis +( +que +, +th +)) + +121  +ue +; + +124 i( +_deu_fe +. + `ngth +() == 0) + +125  +l +; + +128 i( +th +. + `ngth +() == 0 ||ath[path.length()-1] != '/') + +129 +th + + + `Sg +('/'); + +130 +th + + +_deu_fe +; + +132  + `_feExis +( +que +, +th +); + +133 + } +} + +135 #ifde +ESP32 + + +136  + #FILE_IS_REAL +( +f +(= +ue + && !f. + `isDey +()) + + ) + +138  + #FILE_IS_REAL +( +f +(= +ue +) + + ) + +141 +bo + + gAsyncSticWebHdr +:: + $_feExis +( +AsyncWebSvReque + * +que +, cڡ +Sg +& +th +) + +143 +bo + +feFound + = +l +; + +144 +bo + +gzFound + = +l +; + +146 +Sg + +gz + = +th + + + `F +(".gz"); + +148 i( +_gzF +) { + +149 +que +-> +_mpFe + = +_fs +. + `ݒ +( +gz +, +fs +:: +FeOnMode +:: +ad +); + +150 +gzFound + = + `FILE_IS_REAL +( +que +-> +_mpFe +); + +151 i(! +gzFound +){ + +152 +que +-> +_mpFe + = +_fs +. + `ݒ +( +th +, +fs +:: +FeOnMode +:: +ad +); + +153 +feFound + = + `FILE_IS_REAL +( +que +-> +_mpFe +); + +156 +que +-> +_mpFe + = +_fs +. + `ݒ +( +th +, +fs +:: +FeOnMode +:: +ad +); + +157 +feFound + = + `FILE_IS_REAL +( +que +-> +_mpFe +); + +158 i(! +feFound +){ + +159 +que +-> +_mpFe + = +_fs +. + `ݒ +( +gz +, +fs +:: +FeOnMode +:: +ad +); + +160 +gzFound + = + `FILE_IS_REAL +( +que +-> +_mpFe +); + +164 +bo + +found + = +feFound + || +gzFound +; + +166 i( +found +) { + +168 +size_t + +thL + = +th +. + `ngth +(); + +169 * +_mpPh + = (*) + `mloc +( +thL ++1); + +170 + `tf_P +( +_mpPh +, +thL ++1, + `PSTR +("%s"), +th +. + `c_r +()); + +171 +que +-> +_mpObje + = (*) +_mpPh +; + +174 +_gzSts + = (_gzSt<< 1+ ( +gzFound + ? 1 : 0); + +175 i( +_gzSts + =0x00 +_gzF + = +l +; + +176 i( +_gzSts + =0xFF +_gzF + = +ue +; + +177 +_gzF + = + `_couBs +( +_gzSts +) > 4; + +180  +found +; + +181 + } +} + +183 +ut8_t + + gAsyncSticWebHdr +:: + $_couBs +(cڡ +ut8_t + +vue +) const + +185 +ut8_t + +w + = +vue +; + +186 +ut8_t + +n +; + +187  +n +=0; +w +!=0;++) w&=w-1; + +188  +n +; + +189 + } +} + +191  + gAsyncSticWebHdr +:: + $hdReque +( +AsyncWebSvReque + * +que +) + +194 +Sg + +fame + = + `Sg +((*) +que +-> +_mpObje +); + +195 + ` +( +que +-> +_mpObje +); + +196 +que +-> +_mpObje + = +NULL +; + +197 if(( +_uame +. + `ngth +(&& +_sswd +.ngth()&& ! +que +-> + `authti +(_uame. + `c_r +(), _password.c_str())) + +198  +que +-> + `queAuthtiti +(); + +200 i( +que +-> +_mpFe + = +ue +) { + +201 +Sg + +ag + = + `Sg +( +que +-> +_mpFe +. + `size +()); + +202 i( +_ϡ_modifd +. + `ngth +(&& _ϡ_modifd = +que +-> + `hd +( + `F +("If-Modified-Since"))) { + +203 +que +-> +_mpFe +. + `o +(); + +204 +que +-> + `nd +(304); + +205 } i( +_che_cڌ +. + `ngth +(&& +que +-> + `hasHd +( + `F +("If-Ne-Mch")&&eque-> + `hd +(F("If-Ne-Mch")). + `equs +( +ag +)) { + +206 +que +-> +_mpFe +. + `o +(); + +207 +AsyncWebSvReڣ + * +ڣ + = +w + + `AsyncBasicReڣ +(304); + +208 +ڣ +-> + `addHd +( + `F +("Cache-Cڌ"), +_che_cڌ +); + +209 +ڣ +-> + `addHd +( + `F +("ETag"), +ag +); + +210 +que +-> + `nd +( +ڣ +); + +212 +AsyncWebSvReڣ + * +ڣ + = +w + + `AsyncFeReڣ +( +que +-> +_mpFe +, +fame +, + `Sg +(), +l +, +_back +); + +213 i( +_ϡ_modifd +. + `ngth +()) + +214 +ڣ +-> + `addHd +( + `F +("La-Modifd"), +_ϡ_modifd +); + +215 i( +_che_cڌ +. + `ngth +()){ + +216 +ڣ +-> + `addHd +( + `F +("Cache-Cڌ"), +_che_cڌ +); + +217 +ڣ +-> + `addHd +( + `F +("ETag"), +ag +); + +219 +que +-> + `nd +( +ڣ +); + +222 +que +-> + `nd +(404); + +224 + } +} + + @lib/ESPAsyncWebServer/WebRequest.cpp + +21  + ~"ESPAsyncWebSv.h +" + +22  + ~"WebReڣIm.h +" + +23  + ~"WebAuthtiti.h +" + +25 #ide +ESP8266 + + +26  + #os_ + + + + + ) + +29  + #__is_m_ch +( +c +((c&& ((c!'{'&& ((c!'['&& ((c!'&'&& ((c!'=')) + + ) + +31 um { + mPARSE_REQ_START +, + mPARSE_REQ_HEADERS +, + mPARSE_REQ_BODY +, + mPARSE_REQ_END +, + mPARSE_REQ_FAIL + }; + +33 + gAsyncWebSvReque +:: + $AsyncWebSvReque +( +AsyncWebSv +* +s +, +AsyncCl +* +c +) + +34 : + `_ +( +c +) + +35 , + `_rv +( +s +) + +36 , + `_hdr +( +NULL +) + +37 , + `_ڣ +( +NULL +) + +38 , + `_mp +() + +39 , + `_rS +(0) + +40 , + `_vsi +(0) + +41 , + `_mhod +( +HTTP_ANY +) + +42 , + `_u +() + +43 , + `_ho +() + +44 , + `_cڋTy +() + +45 , + `_boundy +() + +46 , + `_authizi +() + +47 , + `_qcy +( +RCT_HTTP +) + +48 , + `_isDige +( +l +) + +49 , + `_isMuɝt +( +l +) + +50 , + `_isPϚPo +( +l +) + +51 , + `_exgCtue +( +l +) + +52 , + `_cڋLgth +(0) + +53 , + `_rdLgth +(0) + +54 , + `_hds +( +LkedLi +< +AsyncWebHd + *>([](AsyncWebHd * +h +){ +de + h; + } +})) + +55 , +_ms +( +LkedLi +< +AsyncWebPam + *>([](AsyncWebPam * +p +){ +de +; })) + +56 , +_thPams +( +LkedLi +< +Sg + *>([](Sg * +p +){ +de +; })) + +57 , +_muiPS +(0) + +58 , +_boundyPosi +(0) + +59 , +_emSIndex +(0) + +60 , +_emSize +(0) + +61 , +_emName +() + +62 , +_emFame +() + +63 , +_emTy +() + +64 , +_emVue +() + +65 , +_emBufr +(0) + +66 , +_emBufrIndex +(0) + +67 , +_emIsFe +( +l +) + +68 , + $_mpObje +( +NULL +) + +70 +c +-> + `E +([](* +r +, +AsyncCl +* c, +t8_t + +r +){ ()c; +AsyncWebSvReque + * +q + = (AsyncWebSvReque*;eq-> + `_E +Ӽ); }, +this +); + +71 +c +-> + `Ack +([](* +r +, +AsyncCl +* c, +size_t + +n +, +ut32_t + +time +){ ()c; +AsyncWebSvReque + * +q + = (AsyncWebSvReque*;eq-> + `_Ack +֒,ime); }, +this +); + +72 +c +-> + `Disc +([](* +r +, +AsyncCl +* c){ +AsyncWebSvReque + * +q + = (AsyncWebSvReque*;eq-> + `_Disc +(); +de + c; }, +this +); + +73 +c +-> + `Timeout +([](* +r +, +AsyncCl +* c, +ut32_t + +time +){ ()c; +AsyncWebSvReque + * +q + = (AsyncWebSvReque*;eq-> + `_Timeout +ime); }, +this +); + +74 +c +-> + `Da +([](* +r +, +AsyncCl +* c, * +buf +, +size_t + +n +){ ()c; +AsyncWebSvReque + * +q + = (AsyncWebSvReque*;eq-> + `_Da +(buf,); }, +this +); + +75 +c +-> + `Pl +([](* +r +, +AsyncCl +* c){ ()c; +AsyncWebSvReque + * +q + = ( AsyncWebSvReque*;eq-> + `_Pl +(); }, +this +); + +76 + } +} + +78 + gAsyncWebSvReque +::~ + $AsyncWebSvReque +(){ + +79 +_hds +. + ` +(); + +81 +_ms +. + ` +(); + +82 +_thPams +. + ` +(); + +84 +_gHds +. + ` +(); + +86 if( +_ڣ + ! +NULL +){ + +87 +de + +_ڣ +; + +90 if( +_mpObje + ! +NULL +){ + +91 + ` +( +_mpObje +); + +94 if( +_mpFe +){ + +95 +_mpFe +. + `o +(); + +97 + } +} + +99  + gAsyncWebSvReque +:: + $_Da +(* +buf +, +size_t + +n +){ + +100 +size_t + +i + = 0; + +101  +ue +) { + +103 if( +_rS + < +PARSE_REQ_BODY +){ + +105 * +r + = (*) +buf +; + +106  +i + = 0; i < +n +; i++) { + +107 i( +r +[ +i +] == '\n') { + +111 i( +i + = +n +) { + +112  +ch + = +r +[ +n +-1]; + +113 +r +[ +n +-1] = 0; + +114 +_mp +. + `rve +(_mp. + `ngth +()+ +n +); + +115 +_mp +. + `ct +( +r +); + +116 +_mp +. + `ct +( +ch +); + +118 +r +[ +i +] = 0; + +119 +_mp +. + `ct +( +r +); + +120 +_mp +. + `im +(); + +121 + `_rLe +(); + +122 i(++ +i + < +n +) { + +124 +buf + = +r ++ +i +; + +125 +n +- +i +; + +129 } if( +_rS + = +PARSE_REQ_BODY +){ + +132 cڡ +bo + +edP + = +_hdr + && !_hdr-> + `isRequeHdrTrivl +(); + +133 if( +_isMuɝt +){ + +134 if( +edP +){ + +135 +size_t + +i +; + +136  +i +=0; i< +n +; i++){ + +137 + `_rMuɝtPoBy +((( +ut8_t +*) +buf +)[ +i +], i = +n + - 1); + +138 +_rdLgth +++; + +141 +_rdLgth + + +n +; + +143 if( +_rdLgth + == 0){ + +144 if( +_cڋTy +. + `tsWh +( + `F +("application/x-www-form-urlencoded"))){ + +145 +_isPϚPo + = +ue +; + +146 } if( +_cڋTy + = + `F +("xt/a"&& + `__is_m_ch +(((*) +buf +)[0])){ + +147 +size_t + +i + = 0; + +148  +i +< +n + && + `__is_m_ch +(((*) +buf +)[i++])); + +149 if( +i + < +n + && ((*) +buf +)[i-1] == '='){ + +150 +_isPϚPo + = +ue +; + +154 if(! +_isPϚPo +) { + +156 if( +_hdr +_hdr-> + `hdBody +( +this +, ( +ut8_t +*) +buf +, +n +, +_rdLgth +, +_cڋLgth +); + +157 +_rdLgth + + +n +; + +158 } if( +edP +) { + +159 +size_t + +i +; + +160  +i +=0; i< +n +; i++){ + +161 +_rdLgth +++; + +162 + `_rPϚPoCh +((( +ut8_t +*) +buf +)[ +i +]); + +165 +_rdLgth + + +n +; + +168 if( +_rdLgth + = +_cڋLgth +){ + +169 +_rS + = +PARSE_REQ_END +; + +171 if( +_hdr +_hdr-> + `hdReque +( +this +); + +172 + `nd +(501); + +177 + } +} + +179  + gAsyncWebSvReque +:: + $_moveNIegHds +(){ + +180 i( +_gHds +. + `cڏsIgneCa +( + `F +("ANY"))) ; + +181 cڡuto& +hd +: +_hds +){ + +182 if(! +_gHds +. + `cڏsIgneCa +( +hd +-> + `me +(). + `c_r +())){ + +183 +_hds +. + `move +( +hd +); + +186 + } +} + +188  + gAsyncWebSvReque +:: + $_Pl +(){ + +190 if( +_ڣ + ! +NULL + && +_ + !NULL && _-> + `nSd +(&& !_ڣ-> + `_fished +()){ + +191 +_ڣ +-> + `_ack +( +this +, 0, 0); + +193 + } +} + +195  + gAsyncWebSvReque +:: + $_Ack +( +size_t + +n +, +ut32_t + +time +){ + +197 if( +_ڣ + ! +NULL +){ + +198 if(! +_ڣ +-> + `_fished +()){ + +199 +_ڣ +-> + `_ack +( +this +, +n +, +time +); + +201 +AsyncWebSvReڣ +* +r + = +_ڣ +; + +202 +_ڣ + = +NULL +; + +203 +de + +r +; + +206 + } +} + +208  + gAsyncWebSvReque +:: + $_E +( +t8_t + +r +){ + +209 () +r +; + +210 + } +} + +212  + gAsyncWebSvReque +:: + $_Timeout +( +ut32_t + +time +){ + +213 () +time +; + +215 +_ +-> + `o +(); + +216 + } +} + +218  + gAsyncWebSvReque +:: + $Disc + ( +ArDiscHdr + + +){ + +219 +_Disc += + +; + +220 + } +} + +222  + gAsyncWebSvReque +:: + $_Disc +(){ + +224 if( +_Disc +) { + +225 + `_Disc +(); + +227 +_rv +-> + `_hdDisc +( +this +); + +228 + } +} + +230  + gAsyncWebSvReque +:: + $_addPam +( +AsyncWebPam + * +p +){ + +231 +_ms +. + `add +( +p +); + +232 + } +} + +234  + gAsyncWebSvReque +:: + $_addPhPam +(cڡ * +p +){ + +235 +_thPams +. + `add +( +w + + `Sg +( +p +)); + +236 + } +} + +238  + gAsyncWebSvReque +:: + $_addGPams +(cڡ +Sg +& +ms +){ + +239 +size_t + +t + = 0; + +240  +t + < +ms +. + `ngth +()){ + +241  +d + = +ms +. + `dexOf +('&', +t +); + +242 i( +d + < 0d = +ms +. + `ngth +(); + +243  +equ + = +ms +. + `dexOf +('=', +t +); + +244 i( +equ + < 0 ||qu > +d +)qual =nd; + +245 +Sg + +me + = +ms +. + `subrg +( +t +, +equ +); + +246 +Sg + +vue + = +equ + + 1 < +d + ? +ms +. + `subrg +qu + 1,nd: + `Sg +(); + +247 + `_addPam +( +w + + `AsyncWebPam +( + `uDecode +( +me +), uDecode( +vue +))); + +248 +t + = +d + + 1; + +250 + } +} + +252 +bo + + gAsyncWebSvReque +:: + $_rReqHd +(){ + +254  +dex + = +_mp +. + `dexOf +(' '); + +255 +Sg + +m + = +_mp +. + `subrg +(0, +dex +); + +256 +dex + = +_mp +. + `dexOf +(' ', index+1); + +257 +Sg + +u + = +_mp +. + `subrg +( +m +. + `ngth +()+1, +dex +); + +258 +_mp + = _mp. + `subrg +( +dex ++1); + +260 if( +m + = + `F +("GET")){ + +261 +_mhod + = +HTTP_GET +; + +262 } if( +m + = + `F +("POST")){ + +263 +_mhod + = +HTTP_POST +; + +264 } if( +m + = + `F +("DELETE")){ + +265 +_mhod + = +HTTP_DELETE +; + +266 } if( +m + = + `F +("PUT")){ + +267 +_mhod + = +HTTP_PUT +; + +268 } if( +m + = + `F +("PATCH")){ + +269 +_mhod + = +HTTP_PATCH +; + +270 } if( +m + = + `F +("HEAD")){ + +271 +_mhod + = +HTTP_HEAD +; + +272 } if( +m + = + `F +("OPTIONS")){ + +273 +_mhod + = +HTTP_OPTIONS +; + +276 +Sg + +g +; + +277 +dex + = +u +. + `dexOf +('?'); + +278 if( +dex + > 0){ + +279 +g + = +u +. + `subrg +( +dex + +1); + +280 +u + = u. + `subrg +(0, +dex +); + +282 +_u + = + `uDecode +( +u +); + +283 + `_addGPams +( +g +); + +285 if(! +_mp +. + `tsWh +( + `F +("HTTP/1.0"))) + +286 +_vsi + = 1; + +288 +_mp + = + `Sg +(); + +289  +ue +; + +290 + } +} + +292 +bo + + $rCڏs +(cڡ +Sg + & +c +, cڡ Sg & +fd +, +bo + +md + = +ue +) { + +293  +pos +=0, +i +=0; + +294 cڡ  + + = +c +. + `ngth +(); + +295 cڡ  + + = +fd +. + `ngth +(); + +297 i( + + < + + +l +; + +298  +pos + <( + + - + +)) { + +299  +i +=0; i < + +; i++) { + +300 i( +md +) { + +301 i( +c +[ +pos ++ +i +] ! +fd +[i] + + + 1; + +303 i( + `tow +( +c +[ +pos ++ +i +]!tow( +fd +[i])) { + +304 +i + = + + + 1; + +307 i( +i + = + + +ue +; + +308 +pos +++; + +310  +l +; + +311 + } +} + +313 +bo + + gAsyncWebSvReque +:: + $_rReqHd +(){ + +314  +dex + = +_mp +. + `dexOf +(':'); + +315 if( +dex +){ + +316 +Sg + +me + = +_mp +. + `subrg +(0, +dex +); + +317 +Sg + +vue + = +_mp +. + `subrg +( +dex + + 2); + +318 if( +me +. + `equsIgneCa +("Host")){ + +319 +_ho + = +vue +; + +320 } if( +me +. + `equsIgneCa +( + `F +("Content-Type"))){ + +321 +_cڋTy + = +vue +. + `subrg +(0, vue. + `dexOf +(';')); + +322 i( +vue +. + `tsWh +( + `F +("multipart/"))){ + +323 +_boundy + = +vue +. + `subrg +(vue. + `dexOf +('=')+1); + +324 +_boundy +. + `a +( + `Sg +('"'), String()); + +325 +_isMuɝt + = +ue +; + +327 } if( +me +. + `equsIgneCa +( + `F +("Content-Length"))){ + +328 +_cڋLgth + = + `oi +( +vue +. + `c_r +()); + +329 } if( +me +. + `equsIgneCa +( + `F +("Ex")&& +vue + == F("100-continue")){ + +330 +_exgCtue + = +ue +; + +331 } if( +me +. + `equsIgneCa +( + `F +("Authorization"))){ + +332 if( +vue +. + `ngth +(> 5 && vue. + `subrg +(0,5). + `equsIgneCa +( + `F +("Basic"))){ + +333 +_authizi + = +vue +. + `subrg +(6); + +334 } if( +vue +. + `ngth +(> 6 && vue. + `subrg +(0,6). + `equsIgneCa +( + `F +("Digest"))){ + +335 +_isDige + = +ue +; + +336 +_authizi + = +vue +. + `subrg +(7); + +339 if( +me +. + `equsIgneCa +( + `F +("Upgde")&& +vue +.equalsIgnoreCase(F("websocket"))){ + +341 +_qcy + = +RCT_WS +; + +343 if( +me +. + `equsIgneCa +( + `F +("Ac")&& + `rCڏs +( +vue +, F("xt/evt-am"), +l +)){ + +345 +_qcy + = +RCT_EVENT +; + +349 +_hds +. + `add +( +w + + `AsyncWebHd +( +me +, +vue +)); + +351 +_mp + = + `Sg +(); + +352  +ue +; + +353 + } +} + +355  + gAsyncWebSvReque +:: + $_rPϚPoCh +( +ut8_t + +da +){ + +356 if( +da + && ()data != '&') + +357 +_mp + +() +da +; + +358 if(! +da + || ()d='&' || +_rdLgth + = +_cڋLgth +){ + +359 +Sg + +me + = + `F +("body"); + +360 +Sg + +vue + = +_mp +; + +361 if(! +_mp +. + `tsWh +( + `Sg +('{')&& !_mp.tsWh(Sg('[')&& _mp. + `dexOf +('=') > 0){ + +362 +me + = +_mp +. + `subrg +(0, _mp. + `dexOf +('=')); + +363 +vue + = +_mp +. + `subrg +(_mp. + `dexOf +('=') + 1); + +365 + `_addPam +( +w + + `AsyncWebPam +( + `uDecode +( +me +), uDecode( +vue +), +ue +)); + +366 +_mp + = + `Sg +(); + +368 + } +} + +370  + gAsyncWebSvReque +:: + $_hdUdBy +( +ut8_t + +da +, +bo + +ϡ +){ + +371 +_emBufr +[ +_emBufrIndex +++] = +da +; + +373 if( +ϡ + || +_emBufrIndex + == 1460){ + +375 if( +_hdr +) + +376 +_hdr +-> + `hdUd +( +this +, +_emFame +, +_emSize + - +_emBufrIndex +, +_emBufr +, _emBufrIndex, +l +); + +377 +_emBufrIndex + = 0; + +379 + } +} + +382 + mEXPECT_BOUNDARY +, + +383 + mPARSE_HEADERS +, + +384 + mWAIT_FOR_RETURN1 +, + +385 + mEXPECT_FEED1 +, + +386 + mEXPECT_DASH1 +, + +387 + mEXPECT_DASH2 +, + +388 + mBOUNDARY_OR_DATA +, + +389 + mDASH3_OR_RETURN2 +, + +390 + mEXPECT_FEED2 +, + +391 + mPARSING_FINISHED +, + +392 + mPARSE_ERROR + + +395  + gAsyncWebSvReque +:: + $_rMuɝtPoBy +( +ut8_t + +da +, +bo + +ϡ +){ + +396  + #emWreBy +( +b +d{ +_emSize +++; if( +_emIsFe + + `_hdUdBy +(b, +ϡ +); +_emVue ++=()(b); } 0) + + ) + +398 if(! +_rdLgth +){ + +399 +_muiPS + = +EXPECT_BOUNDARY +; + +400 +_mp + = + `Sg +(); + +401 +_emName + = + `Sg +(); + +402 +_emFame + = + `Sg +(); + +403 +_emTy + = + `Sg +(); + +406 if( +_muiPS + = +WAIT_FOR_RETURN1 +){ + +407 if( +da + != '\r'){ + +408 + `emWreBy +( +da +); + +410 +_muiPS + = +EXPECT_FEED1 +; + +412 } if( +_muiPS + = +EXPECT_BOUNDARY +){ + +413 if( +_rdLgth + < 2 && +da + != '-'){ + +414 +_muiPS + = +PARSE_ERROR +; + +416 } if( +_rdLgth + - 2 < +_boundy +. + `ngth +(&& _boundy. + `c_r +()[_rdLgth - 2] ! +da +){ + +417 +_muiPS + = +PARSE_ERROR +; + +419 } if( +_rdLgth + - 2 = +_boundy +. + `ngth +(&& +da + != '\r'){ + +420 +_muiPS + = +PARSE_ERROR +; + +422 } if( +_rdLgth + - 3 = +_boundy +. + `ngth +()){ + +423 if( +da + != '\n'){ + +424 +_muiPS + = +PARSE_ERROR +; + +427 +_muiPS + = +PARSE_HEADERS +; + +428 +_emIsFe + = +l +; + +430 } if( +_muiPS + = +PARSE_HEADERS +){ + +431 if(() +da + != '\r' && ()data != '\n') + +432 +_mp + +() +da +; + +433 if(() +da + == '\n'){ + +434 if( +_mp +. + `ngth +()){ + +435 if( +_mp +. + `ngth +(> 12 && _mp. + `subrg +(0, 12). + `equsIgneCa +( + `F +("Content-Type"))){ + +436 +_emTy + = +_mp +. + `subrg +(14); + +437 +_emIsFe + = +ue +; + +438 } if( +_mp +. + `ngth +(> 19 && _mp. + `subrg +(0, 19). + `equsIgneCa +( + `F +("Content-Disposition"))){ + +439 +_mp + = _mp. + `subrg +(_mp. + `dexOf +(';') + 2); + +440  +_mp +. + `dexOf +(';') > 0){ + +441 +Sg + +me + = +_mp +. + `subrg +(0, _mp. + `dexOf +('=')); + +442 +Sg + +meV + = +_mp +. + `subrg +(_mp. + `dexOf +('=') + 2, _temp.indexOf(';') - 1); + +443 if( +me + = + `F +("name")){ + +444 +_emName + = +meV +; + +445 } if( +me + = + `F +("filename")){ + +446 +_emFame + = +meV +; + +447 +_emIsFe + = +ue +; + +449 +_mp + = _mp. + `subrg +(_mp. + `dexOf +(';') + 2); + +451 +Sg + +me + = +_mp +. + `subrg +(0, _mp. + `dexOf +('=')); + +452 +Sg + +meV + = +_mp +. + `subrg +(_mp. + `dexOf +('='+ 2, _mp. + `ngth +() - 1); + +453 if( +me + = + `F +("name")){ + +454 +_emName + = +meV +; + +455 } if( +me + = + `F +("filename")){ + +456 +_emFame + = +meV +; + +457 +_emIsFe + = +ue +; + +460 +_mp + = + `Sg +(); + +462 +_muiPS + = +WAIT_FOR_RETURN1 +; + +464 +_emSize + = 0; + +465 +_emSIndex + = +_rdLgth +; + +466 +_emVue + = + `Sg +(); + +467 if( +_emIsFe +){ + +468 if( +_emBufr +) + +469 + ` +( +_emBufr +); + +470 +_emBufr + = ( +ut8_t +*) + `mloc +(1460); + +471 if( +_emBufr + = +NULL +){ + +472 +_muiPS + = +PARSE_ERROR +; + +475 +_emBufrIndex + = 0; + +479 } if( +_muiPS + = +EXPECT_FEED1 +){ + +480 if( +da + != '\n'){ + +481 +_muiPS + = +WAIT_FOR_RETURN1 +; + +482 + `emWreBy +('\r'); + `_rMuɝtPoBy +( +da +, +ϡ +); + +484 +_muiPS + = +EXPECT_DASH1 +; + +486 } if( +_muiPS + = +EXPECT_DASH1 +){ + +487 if( +da + != '-'){ + +488 +_muiPS + = +WAIT_FOR_RETURN1 +; + +489 + `emWreBy +('\r'); imWreBy('\n'); + `_rMuɝtPoBy +( +da +, +ϡ +); + +491 +_muiPS + = +EXPECT_DASH2 +; + +493 } if( +_muiPS + = +EXPECT_DASH2 +){ + +494 if( +da + != '-'){ + +495 +_muiPS + = +WAIT_FOR_RETURN1 +; + +496 + `emWreBy +('\r'); imWreBy('\n'); imWreBy('-'); + `_rMuɝtPoBy +( +da +, +ϡ +); + +498 +_muiPS + = +BOUNDARY_OR_DATA +; + +499 +_boundyPosi + = 0; + +501 } if( +_muiPS + = +BOUNDARY_OR_DATA +){ + +502 if( +_boundyPosi + < +_boundy +. + `ngth +(&& _boundy. + `c_r +()[_boundyPosi] ! +da +){ + +503 +_muiPS + = +WAIT_FOR_RETURN1 +; + +504 + `emWreBy +('\r'); itemWriteByte('\n'); itemWriteByte('-'); itemWriteByte('-'); + +505 +ut8_t + +i +; + +506  +i +=0; i< +_boundyPosi +; i++) + +507 + `emWreBy +( +_boundy +. + `c_r +()[ +i +]); + +508 + `_rMuɝtPoBy +( +da +, +ϡ +); + +509 } if( +_boundyPosi + = +_boundy +. + `ngth +() - 1){ + +510 +_muiPS + = +DASH3_OR_RETURN2 +; + +511 if(! +_emIsFe +){ + +512 + `_addPam +( +w + + `AsyncWebPam +( +_emName +, +_emVue +, +ue +)); + +514 if( +_emSize +){ + +516 if( +_hdr +_hdr-> + `hdUd +( +this +, +_emFame +, +_emSize + - +_emBufrIndex +, +_emBufr +, _emBufrIndex, +ue +); + +517 +_emBufrIndex + = 0; + +518 + `_addPam +( +w + + `AsyncWebPam +( +_emName +, +_emFame +, +ue +,rue, +_emSize +)); + +520 + ` +( +_emBufr +); + +521 +_emBufr + = +NULL +; + +525 +_boundyPosi +++; + +527 } if( +_muiPS + = +DASH3_OR_RETURN2 +){ + +528 if( +da + ='-' && ( +_cڋLgth + - +_rdLgth + - 4) != 0){ + +530 +_cڋLgth + = +_rdLgth + + 4; + +532 if( +da + == '\r'){ + +533 +_muiPS + = +EXPECT_FEED2 +; + +534 } if( +da + ='-' && +_cڋLgth + =( +_rdLgth + + 4)){ + +535 +_muiPS + = +PARSING_FINISHED +; + +537 +_muiPS + = +WAIT_FOR_RETURN1 +; + +538 + `emWreBy +('\r'); itemWriteByte('\n'); itemWriteByte('-'); itemWriteByte('-'); + +539 +ut8_t + +i +; i=0; i< +_boundy +. + `ngth +(); i++ + `emWreBy +(_boundy. + `c_r +()[i]); + +540 + `_rMuɝtPoBy +( +da +, +ϡ +); + +542 } if( +_muiPS + = +EXPECT_FEED2 +){ + +543 if( +da + == '\n'){ + +544 +_muiPS + = +PARSE_HEADERS +; + +545 +_emIsFe + = +l +; + +547 +_muiPS + = +WAIT_FOR_RETURN1 +; + +548 + `emWreBy +('\r'); itemWriteByte('\n'); itemWriteByte('-'); itemWriteByte('-'); + +549 +ut8_t + +i +; i=0; i< +_boundy +. + `ngth +(); i++ + `emWreBy +(_boundy. + `c_r +()[i]); + +550 + `emWreBy +('\r'); + `_rMuɝtPoBy +( +da +, +ϡ +); + +553 + } +} + +555  + gAsyncWebSvReque +:: + $_rLe +(){ + +556 if( +_rS + = +PARSE_REQ_START +){ + +557 if(! +_mp +. + `ngth +()){ + +558 +_rS + = +PARSE_REQ_FAIL +; + +559 +_ +-> + `o +(); + +561 + `_rReqHd +(); + +562 +_rS + = +PARSE_REQ_HEADERS +; + +567 if( +_rS + = +PARSE_REQ_HEADERS +){ + +568 if(! +_mp +. + `ngth +()){ + +570 +_rv +-> + `_wreReque +( +this +); + +571 +_rv +-> + `_chHdr +( +this +); + +572 + `_moveNIegHds +(); + +573 if( +_exgCtue +){ + +574 +Sg + +ڣ + = + `F +("HTTP/1.1 100 Continue\r\n\r\n"); + +575 +_ +-> + `wre +( +ڣ +. + `c_r +(),eڣ. + `ngth +()); + +578 if( +_cڋLgth +){ + +579 +_rS + = +PARSE_REQ_BODY +; + +581 +_rS + = +PARSE_REQ_END +; + +582 if( +_hdr +_hdr-> + `hdReque +( +this +); + +583 + `nd +(501); + +585 } + `_rReqHd +(); + +587 + } +} + +589 +size_t + + gAsyncWebSvReque +:: + $hds +() const{ + +590  +_hds +. + `ngth +(); + +591 + } +} + +593 +bo + + gAsyncWebSvReque +:: + $hasHd +(cڡ +Sg +& +me +) const { + +594 cڡuto& +h +: +_hds +){ + +595 if( +h +-> + `me +(). + `equsIgneCa +( +me +)){ + +596  +ue +; + +599  +l +; + +600 + } +} + +602 +bo + + gAsyncWebSvReque +:: + $hasHd +(cڡ +__FshSgHr + * +da +) const { + +603  + `hasHd +( + `Sg +( +da +)); + +604 + } +} + +606 +AsyncWebHd +* + gAsyncWebSvReque +:: + $gHd +(cڡ +Sg +& +me +) const { + +607 cڡuto& +h +: +_hds +){ + +608 if( +h +-> + `me +(). + `equsIgneCa +( +me +)){ + +609  +h +; + +612  +nuαr +; + +613 + } +} + +615 +AsyncWebHd +* + gAsyncWebSvReque +:: + $gHd +(cڡ +__FshSgHr + * +da +) const { + +616  + `gHd +( + `Sg +( +da +)); + +617 + } +} + +619 +AsyncWebHd +* + gAsyncWebSvReque +:: + $gHd +( +size_t + +num +) const { + +620 aut +hd + = +_hds +. + `h +( +num +); + +621  +hd + ? *hd : +nuαr +; + +622 + } +} + +624 +size_t + + gAsyncWebSvReque +:: + $ms +() const { + +625  +_ms +. + `ngth +(); + +626 + } +} + +628 +bo + + gAsyncWebSvReque +:: + $hasPam +(cڡ +Sg +& +me +, +bo + +po +, bo +fe +) const { + +629 cڡuto& +p +: +_ms +){ + +630 if( +p +-> + `me +(= +me + &&-> + `isPo +(= +po + &&-> + `isFe +(= +fe +){ + +631  +ue +; + +634  +l +; + +635 + } +} + +637 +bo + + gAsyncWebSvReque +:: + $hasPam +(cڡ +__FshSgHr + * +da +, +bo + +po +, bo +fe +) const { + +638  + `hasPam +( + `Sg +( +da +). + `c_r +(), +po +, +fe +); + +639 + } +} + +641 +AsyncWebPam +* + gAsyncWebSvReque +:: + $gPam +(cڡ +Sg +& +me +, +bo + +po +, bo +fe +) const { + +642 cڡuto& +p +: +_ms +){ + +643 if( +p +-> + `me +(= +me + &&-> + `isPo +(= +po + &&-> + `isFe +(= +fe +){ + +644  +p +; + +647  +nuαr +; + +648 + } +} + +650 +AsyncWebPam +* + gAsyncWebSvReque +:: + $gPam +(cڡ +__FshSgHr + * +da +, +bo + +po +, bo +fe +) const { + +651  + `gPam +( + `Sg +( +da +). + `c_r +(), +po +, +fe +); + +652 + } +} + +654 +AsyncWebPam +* + gAsyncWebSvReque +:: + $gPam +( +size_t + +num +) const { + +655 aut +m + = +_ms +. + `h +( +num +); + +656  +m + ? *m : +nuαr +; + +657 + } +} + +659  + gAsyncWebSvReque +:: + $addIegHd +(cڡ +Sg +& +me +){ + +660 if(! +_gHds +. + `cڏsIgneCa +( +me +)) + +661 +_gHds +. + `add +( +me +); + +662 + } +} + +664  + gAsyncWebSvReque +:: + $nd +( +AsyncWebSvReڣ + * +ڣ +){ + +665 +_ڣ + = +ڣ +; + +666 if( +_ڣ + = +NULL +){ + +667 +_ +-> + `o +( +ue +); + +668 + `_Disc +(); + +671 if(! +_ڣ +-> + `_sourVid +()){ + +672 +de + +ڣ +; + +673 +_ڣ + = +NULL +; + +674 + `nd +(500); + +677 +_ +-> + `tRxTimeout +(0); + +678 +_ڣ +-> + `_d +( +this +); + +680 + } +} + +682 +AsyncWebSvReڣ + * + gAsyncWebSvReque +:: + $begReڣ +( +code +, cڡ +Sg +& +cڋTy +, cڡ Sg& +cڋ +){ + +683  +w + + `AsyncBasicReڣ +( +code +, +cڋTy +, +cڋ +); + +684 + } +} + +686 +AsyncWebSvReڣ + * + gAsyncWebSvReque +:: + $begReڣ +( +FS + & +fs +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +, +bo + +dowd +, +AwsTemePross + +back +){ + +687 if( +fs +. + `exis +( +th +|| (! +dowd + && fs.exisթh+ + `F +(".gz")))) + +688  +w + + `AsyncFeReڣ +( +fs +, +th +, +cڋTy +, +dowd +, +back +); + +689  +NULL +; + +690 + } +} + +692 +AsyncWebSvReڣ + * + gAsyncWebSvReque +:: + $begReڣ +( +Fe + +cڋ +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +, +bo + +dowd +, +AwsTemePross + +back +){ + +693 if( +cڋ + = +ue +) + +694  +w + + `AsyncFeReڣ +( +cڋ +, +th +, +cڋTy +, +dowd +, +back +); + +695  +NULL +; + +696 + } +} + +698 +AsyncWebSvReڣ + * + gAsyncWebSvReque +:: + $begReڣ +( +Sm + & +am +, cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsTemePross + +back +){ + +699  +w + + `AsyncSmReڣ +( +am +, +cڋTy +, +n +, +back +); + +700 + } +} + +702 +AsyncWebSvReڣ + * + gAsyncWebSvReque +:: + $begReڣ +(cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsReڣFr + +back +, +AwsTemePross + +meClback +){ + +703  +w + + `AsyncClbackReڣ +( +cڋTy +, +n +, +back +, +meClback +); + +704 + } +} + +706 +AsyncWebSvReڣ + * + gAsyncWebSvReque +:: + $begChunkedReڣ +(cڡ +Sg +& +cڋTy +, +AwsReڣFr + +back +, +AwsTemePross + +meClback +){ + +707 if( +_vsi +) + +708  +w + + `AsyncChunkedReڣ +( +cڋTy +, +back +, +meClback +); + +709  +w + + `AsyncClbackReڣ +( +cڋTy +, 0, +back +, +meClback +); + +710 + } +} + +712 +AsyncReڣSm + * + gAsyncWebSvReque +:: + $begReڣSm +(cڡ +Sg +& +cڋTy +, +size_t + +bufrSize +){ + +713  +w + + `AsyncReڣSm +( +cڋTy +, +bufrSize +); + +714 + } +} + +716 +AsyncWebSvReڣ + * + gAsyncWebSvReque +:: + $begReڣ_P +( +code +, cڡ +Sg +& +cڋTy +, cڡ +ut8_t + * +cڋ +, +size_t + +n +, +AwsTemePross + +back +){ + +717  +w + + `AsyncProgmemReڣ +( +code +, +cڋTy +, +cڋ +, +n +, +back +); + +718 + } +} + +720 +AsyncWebSvReڣ + * + gAsyncWebSvReque +:: + $begReڣ_P +( +code +, cڡ +Sg +& +cڋTy +, +PGM_P + +cڋ +, +AwsTemePross + +back +){ + +721  + `begReڣ_P +( +code +, +cڋTy +, (cڡ +ut8_t + *) +cڋ +, + `_P +(cڋ), +back +); + +722 + } +} + +724  + gAsyncWebSvReque +:: + $nd +( +code +, cڡ +Sg +& +cڋTy +, cڡ Sg& +cڋ +){ + +725 + `nd +( + `begReڣ +( +code +, +cڋTy +, +cڋ +)); + +726 + } +} + +728  + gAsyncWebSvReque +:: + $nd +( +FS + & +fs +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +, +bo + +dowd +, +AwsTemePross + +back +){ + +729 if( +fs +. + `exis +( +th +|| (! +dowd + && fs.exisթh+ + `F +(".gz")))){ + +730 + `nd +( + `begReڣ +( +fs +, +th +, +cڋTy +, +dowd +, +back +)); + +731 } + `nd +(404); + +732 + } +} + +734  + gAsyncWebSvReque +:: + $nd +( +Fe + +cڋ +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +, +bo + +dowd +, +AwsTemePross + +back +){ + +735 if( +cڋ + = +ue +){ + +736 + `nd +( + `begReڣ +( +cڋ +, +th +, +cڋTy +, +dowd +, +back +)); + +737 } + `nd +(404); + +738 + } +} + +740  + gAsyncWebSvReque +:: + $nd +( +Sm + & +am +, cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsTemePross + +back +){ + +741 + `nd +( + `begReڣ +( +am +, +cڋTy +, +n +, +back +)); + +742 + } +} + +744  + gAsyncWebSvReque +:: + $nd +(cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsReڣFr + +back +, +AwsTemePross + +meClback +){ + +745 + `nd +( + `begReڣ +( +cڋTy +, +n +, +back +, +meClback +)); + +746 + } +} + +748  + gAsyncWebSvReque +:: + $ndChunked +(cڡ +Sg +& +cڋTy +, +AwsReڣFr + +back +, +AwsTemePross + +meClback +){ + +749 + `nd +( + `begChunkedReڣ +( +cڋTy +, +back +, +meClback +)); + +750 + } +} + +752  + gAsyncWebSvReque +:: + $nd_P +( +code +, cڡ +Sg +& +cڋTy +, cڡ +ut8_t + * +cڋ +, +size_t + +n +, +AwsTemePross + +back +){ + +753 + `nd +( + `begReڣ_P +( +code +, +cڋTy +, +cڋ +, +n +, +back +)); + +754 + } +} + +756  + gAsyncWebSvReque +:: + $nd_P +( +code +, cڡ +Sg +& +cڋTy +, +PGM_P + +cڋ +, +AwsTemePross + +back +){ + +757 + `nd +( + `begReڣ_P +( +code +, +cڋTy +, +cڋ +, +back +)); + +758 + } +} + +760  + gAsyncWebSvReque +:: + $de +(cڡ +Sg +& +u +){ + +761 +AsyncWebSvReڣ + * +ڣ + = + `begReڣ +(302); + +762 +ڣ +-> + `addHd +( + `F +("Loti"), +u +); + +763 + `nd +( +ڣ +); + +764 + } +} + +766 +bo + + gAsyncWebSvReque +:: + $authti +(cڡ * +uame +, cڡ * +sswd +, cڡ * +m +, +bo + +sswdIsHash +){ + +767 if( +_authizi +. + `ngth +()){ + +768 if( +_isDige +) + +769  + `checkDigeAuthtiti +( +_authizi +. + `c_r +(), + `mhodToSg +(), +uame +, +sswd +, +m +, +sswdIsHash +, +NULL +, NULL, NULL); + +770 if(! +sswdIsHash +) + +771  + `checkBasicAuthtiti +( +_authizi +. + `c_r +(), +uame +, +sswd +); + +773  +_authizi +. + `equs +( +sswd +); + +775  +l +; + +776 + } +} + +778 +bo + + gAsyncWebSvReque +:: + $authti +(cڡ * +hash +){ + +779 if(! +_authizi +. + `ngth +(|| +hash + = +NULL +) + +780  +l +; + +782 if( +_isDige +){ + +783 +Sg + +hS + = + `Sg +( +hash +); + +784  +t + = +hS +. + `dexOf +(':'); + +785 if( +t + <= 0) + +786  +l +; + +787 +Sg + +uame + = +hS +. + `subrg +(0, +t +); + +788 +hS + = hS. + `subrg +( +t + + 1); + +789 +t + = +hS +. + `dexOf +(':'); + +790 if( +t + <= 0) + +791  +l +; + +792 +Sg + +m + = +hS +. + `subrg +(0, +t +); + +793 +hS + = hS. + `subrg +( +t + + 1); + +794  + `checkDigeAuthtiti +( +_authizi +. + `c_r +(), + `mhodToSg +(), +uame +.c_r(), +hS +.c_r(), +m +.c_r(), +ue +, +NULL +, NULL, NULL); + +797  ( +_authizi +. + `equs +( +hash +)); + +798 + } +} + +800  + gAsyncWebSvReque +:: + $queAuthtiti +(cڡ * +m +, +bo + +isDige +){ + +801 +AsyncWebSvReڣ + * +r + = + `begReڣ +(401); + +802 if(! +isDige + && +m + = +NULL +){ + +803 +r +-> + `addHd +( + `F +("WWW-Authenticate"), F("Basicealm=\"Login Required\"")); + +804 } if(! +isDige +){ + +805 +Sg + +hd + = + `F +("Basicealm=\""); + +806 +hd +. + `ct +( +m +); + +807 +hd + += '"'; + +808 +r +-> + `addHd +( + `F +("WWW-Authti"), +hd +); + +810 +Sg + +hd + = + `F +("Digest "); + +811 +hd +. + `ct +( + `queDigeAuthtiti +( +m +)); + +812 +r +-> + `addHd +( + `F +("WWW-Authti"), +hd +); + +814 + `nd +( +r +); + +815 + } +} + +817 +bo + + gAsyncWebSvReque +:: + $hasArg +(cڡ * +me +) const { + +818 cڡuto& +g +: +_ms +){ + +819 if( +g +-> + `me +(= +me +){ + +820  +ue +; + +823  +l +; + +824 + } +} + +826 +bo + + gAsyncWebSvReque +:: + $hasArg +(cڡ +__FshSgHr + * +da +) const { + +827  + `hasArg +( + `Sg +( +da +). + `c_r +()); + +828 + } +} + +831 cڡ + gSg +& + gAsyncWebSvReque +:: + $g +(cڡ +Sg +& +me +) const { + +832 cڡuto& +g +: +_ms +){ + +833 if( +g +-> + `me +(= +me +){ + +834  +g +-> + `vue +(); + +837  +emySg +; + +838 + } +} + +840 cڡ + gSg +& + gAsyncWebSvReque +:: + $g +(cڡ +__FshSgHr + * +da +) const { + +841  + `g +( + `Sg +( +da +). + `c_r +()); + +842 + } +} + +844 cڡ + gSg +& + gAsyncWebSvReque +:: + $g +( +size_t + +i +) const { + +845  + `gPam +( +i +)-> + `vue +(); + +846 + } +} + +848 cڡ + gSg +& + gAsyncWebSvReque +:: + $gName +( +size_t + +i +) const { + +849  + `gPam +( +i +)-> + `me +(); + +850 + } +} + +852 cڡ + gSg +& + gAsyncWebSvReque +:: + $thArg +( +size_t + +i +) const { + +853 aut +m + = +_thPams +. + `h +( +i +); + +854  +m + ? **m : +emySg +; + +855 + } +} + +857 cڡ + gSg +& + gAsyncWebSvReque +:: + $hd +(cڡ * +me +) const { + +858 +AsyncWebHd +* +h + = + `gHd +( + `Sg +( +me +)); + +859  +h + ? h-> + `vue +(: +emySg +; + +860 + } +} + +862 cڡ + gSg +& + gAsyncWebSvReque +:: + $hd +(cڡ +__FshSgHr + * +da +) const { + +863  + `hd +( + `Sg +( +da +). + `c_r +()); + +864 + } +}; + +867 cڡ + gSg +& + gAsyncWebSvReque +:: + $hd +( +size_t + +i +) const { + +868 +AsyncWebHd +* +h + = + `gHd +( +i +); + +869  +h + ? h-> + `vue +(: +emySg +; + +870 + } +} + +872 cڡ + gSg +& + gAsyncWebSvReque +:: + $hdName +( +size_t + +i +) const { + +873 +AsyncWebHd +* +h + = + `gHd +( +i +); + +874  +h + ? h-> + `me +(: +emySg +; + +875 + } +} + +877 +Sg + + gAsyncWebSvReque +:: + $uDecode +(cڡ +Sg +& +xt +) const { + +878  +mp +[] = "0x00"; + +879  +n + = +xt +. + `ngth +(); + +880  +i + = 0; + +881 +Sg + +decoded + = + `Sg +(); + +882 +decoded +. + `rve +( +n +); + +883  +i + < +n +){ + +884  +decodedCh +; + +885  +codedCh + = +xt +. + `chAt +( +i +++); + +886 i(( +codedCh + ='%'&& ( +i + + 1 < +n +)){ + +887 +mp +[2] = +xt +. + `chAt +( +i +++); + +888 +mp +[3] = +xt +. + `chAt +( +i +++); + +889 +decodedCh + = + ` +( +mp +, +NULL +, 16); + +890 } i( +codedCh + == '+') { + +891 +decodedCh + = ' '; + +893 +decodedCh + = +codedCh +; + +895 +decoded +. + `ct +( +decodedCh +); + +897  +decoded +; + +898 + } +} + +901 cڡ +__FshSgHr + * + gAsyncWebSvReque +:: + $mhodToSg +() const { + +902 if( +_mhod + = +HTTP_ANY + + `F +("ANY"); + +903 if( +_mhod + & +HTTP_GET + + `F +("GET"); + +904 if( +_mhod + & +HTTP_POST + + `F +("POST"); + +905 if( +_mhod + & +HTTP_DELETE + + `F +("DELETE"); + +906 if( +_mhod + & +HTTP_PUT + + `F +("PUT"); + +907 if( +_mhod + & +HTTP_PATCH + + `F +("PATCH"); + +908 if( +_mhod + & +HTTP_HEAD + + `F +("HEAD"); + +909 if( +_mhod + & +HTTP_OPTIONS + + `F +("OPTIONS"); + +910  + `F +("UNKNOWN"); + +911 + } +} + +913 cڡ +__FshSgHr + * + gAsyncWebSvReque +:: + $queedCnTyToSg +() const { + +914  +_qcy +) { + +915  +RCT_NOT_USED +:  + `F +("RCT_NOT_USED"); + +916  +RCT_DEFAULT +:  + `F +("RCT_DEFAULT"); + +917  +RCT_HTTP +:  + `F +("RCT_HTTP"); + +918  +RCT_WS +:  + `F +("RCT_WS"); + +919  +RCT_EVENT +:  + `F +("RCT_EVENT"); + +920 :  + `F +("ERROR"); + +922 + } +} + +924 +bo + + gAsyncWebSvReque +:: + $isExedRequeedCnTy +( +RequeedCiTy + +1 +, RequeedCiTy +2 +, RequeedCiTy +3 +) { + +925 +bo + +s + = +l +; + +926 i(( +1 + ! +RCT_NOT_USED +&& (1 = +_qcy +) +s + = +ue +; + +927 i(( +2 + ! +RCT_NOT_USED +&& (2 = +_qcy +) +s + = +ue +; + +928 i(( +3 + ! +RCT_NOT_USED +&& (3 = +_qcy +) +s + = +ue +; + +929  +s +; + +930 + } +} + + @lib/ESPAsyncWebServer/WebResponseImpl.h + +21 #ide +ASYNCWEBSERVERRESPONSEIMPL_H_ + + +22  + #ASYNCWEBSERVERRESPONSEIMPL_H_ + + + ) + +24 #ifde +Arduo_h + + +26 #unde +m + + +27 #unde +max + + +29  + ~ + +32 as + cAsyncBasicReڣ +: +public + +AsyncWebSvReڣ + { + +33 +ive +: + +34 +Sg + +_cڋ +; + +35 + mpublic +: + +36 +AsyncBasicReڣ +( +code +, cڡ +Sg +& +cڋTy +=Sg(), cڡ Sg& +cڋ +=String()); + +37  +_d +( +AsyncWebSvReque + * +que +); + +38 +size_t + +_ack +( +AsyncWebSvReque + * +que +, size_ +n +, +ut32_t + +time +); + +39 +bo + + $_sourVid +(cڡ {  +ue +; } + +40 + } +}; + +42 as + cAsyncAbReڣ +: +public + +AsyncWebSvReڣ + { + +43 +ive +: + +44 +Sg + +_hd +; + +49 + md +:: +ve +< +ut8_t +> +_che +; + +50 +size_t + +_adDaFromCacheOrCڋ +( +ut8_t +* +da +, cڡ size_ +n +); + +51 +size_t + +_flBufrAndProssTemes +( +ut8_t +* +buf +, size_ +maxL +); + +52 + meed +: + +53 +AwsTemePross + +_back +; + +54 + mpublic +: + +55 +AsyncAbReڣ +( +AwsTemePross + +back += +nuαr +); + +56  +_d +( +AsyncWebSvReque + * +que +); + +57 +size_t + +_ack +( +AsyncWebSvReque + * +que +, size_ +n +, +ut32_t + +time +); + +58 +bo + + $_sourVid +(cڡ {  +l +; } + +59 +vtu + +size_t + + `_flBufr +( +ut8_t + * +buf + + `__ibu__ +(( +unud +)), size_ +maxL + __ibu__((unud)){  0; + } +} + +62 #ide +TEMPLATE_PLACEHOLDER + + +63  + #TEMPLATE_PLACEHOLDER + '%' + + ) + +66  + #TEMPLATE_PARAM_NAME_LENGTH + 32 + + ) + +67 as + cAsyncFeReڣ +: +public + +AsyncAbReڣ + { + +68 +usg + +Fe + = +fs +::File; + +69 +usg + + mFS + = +fs +:: +FS +; + +70 + mive +: + +71 +Fe + +_cڋ +; + +72 +Sg + + m_th +; + +73  +_tCڋTy +(cڡ +Sg +& +th +); + +74 + mpublic +: + +75 +AsyncFeReڣ +( +FS + & +fs +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +=Sg(), +bo + +dowd += +l +, +AwsTemePross + +back += +nuαr +); + +76 +AsyncFeReڣ +( +Fe + +cڋ +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +=Sg(), +bo + +dowd += +l +, +AwsTemePross + +back += +nuαr +); + +77 ~ +AsyncFeReڣ +(); + +78 +bo + + $_sourVid +(cڡ {  !!( +_cڋ +); } + +79 +vtu + +size_t + + $_flBufr +( +ut8_t + * +buf +, +size_t + +maxL + +ovride +; + +80 + } +}; + +82 as + cAsyncSmReڣ +: +public + +AsyncAbReڣ + { + +83 +ive +: + +84 +Sm + * +_cڋ +; + +85 + mpublic +: + +86 +AsyncSmReڣ +( +Sm + & +am +, cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsTemePross + +back += +nuαr +); + +87 +bo + + $_sourVid +(cڡ {  !!( +_cڋ +); } + +88 +vtu + +size_t + + $_flBufr +( +ut8_t + * +buf +, +size_t + +maxL + +ovride +; + +89 + } +}; + +91 as + cAsyncClbackReڣ +: +public + +AsyncAbReڣ + { + +92 +ive +: + +93 +AwsReڣFr + +_cڋ +; + +94 +size_t + + m_fdLgth +; + +95 + mpublic +: + +96 +AsyncClbackReڣ +(cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsReڣFr + +back +, +AwsTemePross + +meClback += +nuαr +); + +97 +bo + + $_sourVid +(cڡ {  !!( +_cڋ +); } + +98 +vtu + +size_t + + $_flBufr +( +ut8_t + * +buf +, +size_t + +maxL + +ovride +; + +99 + } +}; + +101 as + cAsyncChunkedReڣ +: +public + +AsyncAbReڣ + { + +102 +ive +: + +103 +AwsReڣFr + +_cڋ +; + +104 +size_t + + m_fdLgth +; + +105 + mpublic +: + +106 +AsyncChunkedReڣ +(cڡ +Sg +& +cڋTy +, +AwsReڣFr + +back +, +AwsTemePross + +meClback += +nuαr +); + +107 +bo + + $_sourVid +(cڡ {  !!( +_cڋ +); } + +108 +vtu + +size_t + + $_flBufr +( +ut8_t + * +buf +, +size_t + +maxL + +ovride +; + +109 + } +}; + +111 as + cAsyncProgmemReڣ +: +public + +AsyncAbReڣ + { + +112 +ive +: + +113 cڡ +ut8_t + * +_cڋ +; + +114 +size_t + + m_adLgth +; + +115 + mpublic +: + +116 +AsyncProgmemReڣ +( +code +, cڡ +Sg +& +cڋTy +, cڡ +ut8_t + * +cڋ +, +size_t + +n +, +AwsTemePross + +back += +nuαr +); + +117 +bo + + $_sourVid +(cڡ {  +ue +; } + +118 +vtu + +size_t + + $_flBufr +( +ut8_t + * +buf +, +size_t + +maxL + +ovride +; + +119 + } +}; + +121 +ass + + gcbuf +; + +123 +ass + + gAsyncReڣSm +: +public + +AsyncAbReڣ +,ubli + gPrt + { + +124 + give +: + +125 +cbuf + * +_cڋ +; + +126 + gpublic +: + +127 +AsyncReڣSm +(cڡ +Sg +& +cڋTy +, +size_t + +bufrSize +); + +128 ~ +AsyncReڣSm +(); + +129 +bo + +_sourVid +(cڡ {  ( + g_e + < + gRESPONSE_END +); } + +130 +vtu + +size_t + +_flBufr +( +ut8_t + * +buf +, size_ +maxL + + govride +; + +131 +size_t + +wre +(cڡ +ut8_t + * +da +, size_ +n +); + +132 +size_t + +wre +( +ut8_t + +da +); + +133 +usg + + gPrt +:: +wre +; + + @lib/ESPAsyncWebServer/WebResponses.cpp + +21  + ~"ESPAsyncWebSv.h +" + +22  + ~"WebReڣIm.h +" + +23  + ~"cbuf.h +" + +26 * + $memchr +(* +r +,  +ch +, +size_t + +cou +) + +28 * +p + = +ic_ +<*>( +r +); + +29  +cou +--) + +30 if(* +p +++ = +ic_ +<>( +ch +)) + +31  -- +p +; + +32  +nuαr +; + +33 + } +} + +39 cڡ * + gAsyncWebSvReڣ +:: + $_ڣCodeToSg +( +code +) { + +40  +t_ +( + `ڣCodeToSg +( +code +)); + +41 + } +} + +43 cڡ +__FshSgHr + * + gAsyncWebSvReڣ +:: + $ڣCodeToSg +( +code +) { + +44  +code +) { + +45 100:  + `F +("Continue"); + +46 101:  + `F +("Switching Protocols"); + +47 200:  + `F +("OK"); + +48 201:  + `F +("Created"); + +49 202:  + `F +("Accepted"); + +50 203:  + `F +("Non-Authoritative Information"); + +51 204:  + `F +("No Content"); + +52 205:  + `F +("Reset Content"); + +53 206:  + `F +("Partial Content"); + +54 300:  + `F +("Multiple Choices"); + +55 301:  + `F +("Moved Permanently"); + +56 302:  + `F +("Found"); + +57 303:  + `F +("See Other"); + +58 304:  + `F +("Not Modified"); + +59 305:  + `F +("Use Proxy"); + +60 307:  + `F +("Temporary Redirect"); + +61 400:  + `F +("Bad Request"); + +62 401:  + `F +("Unauthorized"); + +63 402:  + `F +("Payment Required"); + +64 403:  + `F +("Forbidden"); + +65 404:  + `F +("Not Found"); + +66 405:  + `F +("Method Not Allowed"); + +67 406:  + `F +("Not Acceptable"); + +68 407:  + `F +("Proxy Authentication Required"); + +69 408:  + `F +("Request Time-out"); + +70 409:  + `F +("Conflict"); + +71 410:  + `F +("Gone"); + +72 411:  + `F +("Length Required"); + +73 412:  + `F +("Precondition Failed"); + +74 413:  + `F +("Request Entity Too Large"); + +75 414:  + `F +("Request-URI Too Large"); + +76 415:  + `F +("Unsupported Media Type"); + +77 416:  + `F +("Requestedangeot satisfiable"); + +78 417:  + `F +("Expectation Failed"); + +79 500:  + `F +("Internal Server Error"); + +80 501:  + `F +("Not Implemented"); + +81 502:  + `F +("Bad Gateway"); + +82 503:  + `F +("Service Unavailable"); + +83 504:  + `F +("Gateway Time-out"); + +84 505:  + `F +("HTTP Versionot supported"); + +85 :  + `F +(""); + +87 + } +} + +89 + gAsyncWebSvReڣ +:: + $AsyncWebSvReڣ +() + +90 : + `_code +(0) + +91 , + `_hds +( +LkedLi +< +AsyncWebHd + *>([](AsyncWebHd * +h +){ +de + h; + } +})) + +92 , +_cڋTy +() + +93 , +_cڋLgth +(0) + +94 , +_ndCڋLgth +( +ue +) + +95 , +_chunked +( +l +) + +96 , +_hdLgth +(0) + +97 , +_Lgth +(0) + +98 , +_ackedLgth +(0) + +99 , +_wrnLgth +(0) + +100 , + $_e +( +RESPONSE_SETUP +) + +102 aut +hd +: +DeuHds +:: + `In +()) { + +103 +_hds +. + `add +( +w + + `AsyncWebHd +( +hd +-> + `me +(), hd-> + `vue +())); + +105 + } +} + +107 + gAsyncWebSvReڣ +::~ + $AsyncWebSvReڣ +(){ + +108 +_hds +. + ` +(); + +109 + } +} + +111  + gAsyncWebSvReڣ +:: + $tCode +( +code +){ + +112 if( +_e + = +RESPONSE_SETUP +) + +113 +_code + = +code +; + +114 + } +} + +116  + gAsyncWebSvReڣ +:: + $tCڋLgth +( +size_t + +n +){ + +117 if( +_e + = +RESPONSE_SETUP +) + +118 +_cڋLgth + = +n +; + +119 + } +} + +121  + gAsyncWebSvReڣ +:: + $tCڋTy +(cڡ +Sg +& +ty +){ + +122 if( +_e + = +RESPONSE_SETUP +) + +123 +_cڋTy + = +ty +; + +124 + } +} + +126  + gAsyncWebSvReڣ +:: + $addHd +(cڡ +Sg +& +me +, cڡ Sg& +vue +){ + +127 +_hds +. + `add +( +w + + `AsyncWebHd +( +me +, +vue +)); + +128 + } +} + +130 +Sg + + gAsyncWebSvReڣ +:: + $_asmbHd +( +ut8_t + +vsi +){ + +131 if( +vsi +){ + +132 + `addHd +( + `F +("Accept-Ranges"), F("none")); + +133 if( +_chunked +) + +134 + `addHd +( + `F +("Transfer-Encoding"), F("chunked")); + +136 +Sg + +out + = + `Sg +(); + +137  +bufSize + = 300; + +138  +buf +[ +bufSize +]; + +140 + `tf_P +( +buf +, +bufSize +, + `PSTR +("HTTP/1.%d %d %s\r\n"), +vsi +, +_code +, + `_ڣCodeToSg +(_code)); + +141 +out +. + `ct +( +buf +); + +143 if( +_ndCڋLgth +) { + +144 + `tf_P +( +buf +, +bufSize +, + `PSTR +("Cڋ-Lgth: %d\r\n"), +_cڋLgth +); + +145 +out +. + `ct +( +buf +); + +147 if( +_cڋTy +. + `ngth +()) { + +148 + `tf_P +( +buf +, +bufSize +, + `PSTR +("Cڋ-Ty: %s\r\n"), +_cڋTy +. + `c_r +()); + +149 +out +. + `ct +( +buf +); + +152 cڡuto& +hd +: +_hds +){ + +153 + `tf_P +( +buf +, +bufSize +, + `PSTR +("%s: %s\r\n"), +hd +-> + `me +(). + `c_r +(), hd-> + `vue +().c_str()); + +154 +out +. + `ct +( +buf +); + +156 +_hds +. + ` +(); + +158 +out +. + `ct +( + `F +("\r\n")); + +159 +_hdLgth + = +out +. + `ngth +(); + +160  +out +; + +161 + } +} + +163 +bo + + gAsyncWebSvReڣ +:: + $_d +(cڡ {  +_e + > +RESPONSE_SETUP +; + } +} + +164 +bo + + gAsyncWebSvReڣ +:: + $_fished +(cڡ {  +_e + > +RESPONSE_WAIT_ACK +; + } +} + +165 +bo + + gAsyncWebSvReڣ +:: + $_ed +(cڡ {  +_e + = +RESPONSE_FAILED +; + } +} + +166 +bo + + gAsyncWebSvReڣ +:: + $_sourVid +(cڡ {  +l +; + } +} + +167  + gAsyncWebSvReڣ +:: + $_d +( +AsyncWebSvReque + * +que +){ +_e + = +RESPONSE_END +;eque-> + ` +()-> + `o +(); + } +} + +168 +size_t + + gAsyncWebSvReڣ +:: + $_ack +( +AsyncWebSvReque + * +que +, +size_t + +n +, +ut32_t + +time +){ (eque; (; (ime;  0; + } +} + +173 + gAsyncBasicReڣ +:: + $AsyncBasicReڣ +( +code +, cڡ +Sg +& +cڋTy +, cڡ Sg& +cڋ +){ + +174 +_code + = +code +; + +175 +_cڋ + = +cڋ +; + +176 +_cڋTy + = +cڋTy +; + +177 if( +_cڋ +. + `ngth +()){ + +178 +_cڋLgth + = +_cڋ +. + `ngth +(); + +179 if(! +_cڋTy +. + `ngth +()) + +180 +_cڋTy + = + `F +("text/plain"); + +182 + `addHd +( + `F +("Connection"), F("close")); + +183 + } +} + +185  + gAsyncBasicReڣ +:: + $_d +( +AsyncWebSvReque + * +que +){ + +186 +_e + = +RESPONSE_HEADERS +; + +187 +Sg + +out + = + `_asmbHd +( +que +-> + `vsi +()); + +188 +size_t + +outL + = +out +. + `ngth +(); + +189 +size_t + +a + = +que +-> + ` +()-> + `a +(); + +190 if(! +_cڋLgth + && +a + > +outL +){ + +191 +_wrnLgth + + +que +-> + ` +()-> + `wre +( +out +. + `c_r +(), +outL +); + +192 +_e + = +RESPONSE_WAIT_ACK +; + +193 } if( +_cڋLgth + && +a + > +outL + + _contentLength){ + +194 +out + + +_cڋ +; + +195 +outL + + +_cڋLgth +; + +196 +_wrnLgth + + +que +-> + ` +()-> + `wre +( +out +. + `c_r +(), +outL +); + +197 +_e + = +RESPONSE_WAIT_ACK +; + +198 } if( +a + && s < +outL +){ + +199 +Sg + +l + = +out +. + `subrg +(0, +a +); + +200 +_cڋ + = +out +. + `subrg +( +a +) + _content; + +201 +_cڋLgth + + +outL + - +a +; + +202 +_wrnLgth + + +que +-> + ` +()-> + `wre +( +l +. + `c_r +(),tl. + `ngth +()); + +203 +_e + = +RESPONSE_CONTENT +; + +204 } if( +a + > +outL + && s < (outL + +_cڋLgth +)){ + +205 +size_t + +shi + = +a + - +outL +; + +206 +outL + + +shi +; + +207 +_Lgth + + +shi +; + +208 +out + + +_cڋ +. + `subrg +(0, +shi +); + +209 +_cڋ + = _cڋ. + `subrg +( +shi +); + +210 +_wrnLgth + + +que +-> + ` +()-> + `wre +( +out +. + `c_r +(), +outL +); + +211 +_e + = +RESPONSE_CONTENT +; + +213 +_cڋ + = +out + + _content; + +214 +_cڋLgth + + +outL +; + +215 +_e + = +RESPONSE_CONTENT +; + +217 + } +} + +219 +size_t + + gAsyncBasicReڣ +:: + $_ack +( +AsyncWebSvReque + * +que +, +size_t + +n +, +ut32_t + +time +){ + +220 () +time +; + +221 +_ackedLgth + + +n +; + +222 if( +_e + = +RESPONSE_CONTENT +){ + +223 +size_t + +avaab + = +_cڋLgth + - +_Lgth +; + +224 +size_t + +a + = +que +-> + ` +()-> + `a +(); + +226 if( +a + > +avaab +){ + +227 +_wrnLgth + + +que +-> + ` +()-> + `wre +( +_cڋ +. + `c_r +(), +avaab +); + +228 +_cڋ + = + `Sg +(); + +229 +_e + = +RESPONSE_WAIT_ACK +; + +230  +avaab +; + +233 +Sg + +out + = +_cڋ +. + `subrg +(0, +a +); + +234 +_cڋ + = _cڋ. + `subrg +( +a +); + +235 +_Lgth + + +a +; + +236 +_wrnLgth + + +que +-> + ` +()-> + `wre +( +out +. + `c_r +(), +a +); + +237  +a +; + +238 } if( +_e + = +RESPONSE_WAIT_ACK +){ + +239 if( +_ackedLgth + > +_wrnLgth +){ + +240 +_e + = +RESPONSE_END +; + +244 + } +} + +251 + gAsyncAbReڣ +:: + $AsyncAbReڣ +( +AwsTemePross + +back +): + $_back +( +back +) + +254 if( +back +) { + +255 +_cڋLgth + = 0; + +256 +_ndCڋLgth + = +l +; + +257 +_chunked + = +ue +; + +259 + } +} + +261  + gAsyncAbReڣ +:: + $_d +( +AsyncWebSvReque + * +que +){ + +262 + `addHd +( + `F +("Connection"), F("close")); + +263 +_hd + = + `_asmbHd +( +que +-> + `vsi +()); + +264 +_e + = +RESPONSE_HEADERS +; + +265 + `_ack +( +que +, 0, 0); + +266 + } +} + +268 +size_t + + gAsyncAbReڣ +:: + $_ack +( +AsyncWebSvReque + * +que +, +size_t + +n +, +ut32_t + +time +){ + +269 () +time +; + +270 if(! + `_sourVid +()){ + +271 +_e + = +RESPONSE_FAILED +; + +272 +que +-> + ` +()-> + `o +(); + +275 +_ackedLgth + + +n +; + +276 +size_t + +a + = +que +-> + ` +()-> + `a +(); + +278 +size_t + +hdL + = +_hd +. + `ngth +(); + +279 if( +_e + = +RESPONSE_HEADERS +){ + +280 if( +a + > +hdL +){ + +281 +_e + = +RESPONSE_CONTENT +; + +282 +a + - +hdL +; + +284 +Sg + +out + = +_hd +. + `subrg +(0, +a +); + +285 +_hd + = _hd. + `subrg +( +a +); + +286 +_wrnLgth + + +que +-> + ` +()-> + `wre +( +out +. + `c_r +(), out. + `ngth +()); + +287  +out +. + `ngth +(); + +291 if( +_e + = +RESPONSE_CONTENT +){ + +292 +size_t + +outL +; + +293 if( +_chunked +){ + +294 if( +a + <= 8){ + +297 +outL + = +a +; + +298 } if(! +_ndCڋLgth +){ + +299 +outL + = +a +; + +301 +outL + = (( +_cڋLgth + - +_Lgth +> +a +)?space:(_contentLength - _sentLength); + +304 +ut8_t + * +buf + = (ut8_*) + `mloc +( +outL ++ +hdL +); + +305 i(! +buf +) { + +310 if( +hdL +){ + +311 + `memy +( +buf +, +_hd +. + `c_r +(), _hd. + `ngth +()); + +314 +size_t + +adL + = 0; + +316 if( +_chunked +){ + +319 +adL + = + `_flBufrAndProssTemes +( +buf ++ +hdL ++6, +outL + - 8); + +320 if( +adL + = +RESPONSE_TRY_AGAIN +){ + +321 + ` +( +buf +); + +324 +outL + = + `rtf_P +((*) +buf ++ +hdL +, + `PSTR +("%x"), +adL +) + headLen; + +325  +outL + < +hdL + + 4 +buf +[outLen++] = ' '; + +326 +buf +[ +outL +++] = '\r'; + +327 +buf +[ +outL +++] = '\n'; + +328 +outL + + +adL +; + +329 +buf +[ +outL +++] = '\r'; + +330 +buf +[ +outL +++] = '\n'; + +332 +adL + = + `_flBufrAndProssTemes +( +buf ++ +hdL +, +outL +); + +333 if( +adL + = +RESPONSE_TRY_AGAIN +){ + +334 + ` +( +buf +); + +337 +outL + = +adL + + +hdL +; + +340 if( +hdL +){ + +341 +_hd + = + `Sg +(); + +344 if( +outL +){ + +345 +_wrnLgth + + +que +-> + ` +()-> + `wre +((cڡ *) +buf +, +outL +); + +348 if( +_chunked +){ + +349 +_Lgth + + +adL +; + +351 +_Lgth + + +outL + - +hdL +; + +354 + ` +( +buf +); + +356 if(( +_chunked + && +adL + =0|| (! +_ndCڋLgth + && +outL + =0|| (!_chunked && +_Lgth + = +_cڋLgth +)){ + +357 +_e + = +RESPONSE_WAIT_ACK +; + +359  +outL +; + +361 } if( +_e + = +RESPONSE_WAIT_ACK +){ + +362 if(! +_ndCڋLgth + || +_ackedLgth + > +_wrnLgth +){ + +363 +_e + = +RESPONSE_END +; + +364 if(! +_chunked + && ! +_ndCڋLgth +) + +365 +que +-> + ` +()-> + `o +( +ue +); + +369 + } +} + +371 +size_t + + gAsyncAbReڣ +:: + $_adDaFromCacheOrCڋ +( +ut8_t +* +da +, cڡ +size_t + +n +) + +374 cڡ +size_t + +adFromCache + = +d +:: + `m +( +n +, +_che +. + `size +()); + +375 if( +adFromCache +) { + +376 + `memy +( +da +, +_che +. + `da +(), +adFromCache +); + +377 +_che +. + `a +(_che. + `beg +(), _che.beg(+ +adFromCache +); + +380 cڡ +size_t + +edFromFe + = +n + - +adFromCache +; + +381 cڡ +size_t + +adFromCڋ + = + `_flBufr +( +da + + +adFromCache +, +edFromFe +); + +382  +adFromCache + + +adFromCڋ +; + +383 + } +} + +385 +size_t + + gAsyncAbReڣ +:: + $_flBufrAndProssTemes +( +ut8_t +* +da +, +size_t + +n +) + +387 if(! +_back +) + +388  + `_flBufr +( +da +, +n +); + +390 cڡ +size_t + +igL + = +n +; + +391 +n + = + `_adDaFromCacheOrCڋ +( +da +,en); + +394 +ut8_t +* +pTemeS + = +da +; + +395 ( +pTemeS + < & +da +[ +n +]&& (pTemeS = ( +ut8_t +*) + `memchr +TemeS, +TEMPLATE_PLACEHOLDER +, &data[len - 1] -TemplateStart + 1))) { + +396 +ut8_t +* +pTemeEnd + = ( +pTemeS + < & +da +[ +n + - 1]? (ut8_t*) + `memchr +TemeS + 1, +TEMPLATE_PLACEHOLDER +, &da[- 1] -TemeS: +nuαr +; + +398 +ut8_t + +buf +[ +TEMPLATE_PARAM_NAME_LENGTH + + 1]; + +399 +Sg + +mName +; + +401 if( +pTemeEnd +) { + +403 cڡ +size_t + +mNameLgth + = +d +:: + `m +((size_t)( +buf +- 1, (size_t)( +pTemeEnd + - +pTemeS + - 1)); + +404 if( +mNameLgth +) { + +405 + `memy +( +buf +, +pTemeS + + 1, +mNameLgth +); + +406 +buf +[ +mNameLgth +] = 0; + +407 +mName + = + `Sg +( +t_ +<*>( +buf +)); + +410 + `memmove +( +pTemeEnd +,TemeEnd + 1, & +da +[ +n +] -TemplateEnd - 1); + +411 +n + + + `_adDaFromCacheOrCڋ +(& +da +[len - 1], 1) - 1; + +412 ++ +pTemeS +; + +414 } if(& +da +[ +n + - 1] - +pTemeS + + 1 < +TEMPLATE_PARAM_NAME_LENGTH + + 2) { + +415 + `memy +( +buf +, +pTemeS + + 1, & +da +[ +n + - 1] -TemplateStart); + +416 cڡ +size_t + +adFromCacheOrCڋ + = + `_adDaFromCacheOrCڋ +( +buf + + (& +da +[ +n + - 1] - +pTemeS +), +TEMPLATE_PARAM_NAME_LENGTH + + 2 - (&data[len - 1] -TemplateStart + 1)); + +417 if( +adFromCacheOrCڋ +) { + +418 +pTemeEnd + = ( +ut8_t +*) + `memchr +( +buf + + (& +da +[ +n + - 1] - +pTemeS +), +TEMPLATE_PLACEHOLDER +, +adFromCacheOrCڋ +); + +419 if( +pTemeEnd +) { + +421 * +pTemeEnd + = 0; + +422 +mName + = + `Sg +( +t_ +<*>( +buf +)); + +424 +_che +. + ` +(_che. + `beg +(), +pTemeEnd + + 1, +buf + + (& +da +[ +n + - 1] - +pTemeS ++ +adFromCacheOrCڋ +); + +425 +pTemeEnd + = & +da +[ +n + - 1]; + +430 +_che +. + ` +(_che. + `beg +(), +buf + + (& +da +[ +n + - 1] - +pTemeS +), bu+ (&da[- 1] -TemeS+ +adFromCacheOrCڋ +); + +431 ++ +pTemeS +; + +435 ++ +pTemeS +; + +438 ++ +pTemeS +; + +439 if( +mName +. + `ngth +()) { + +445 cڡ +Sg + + `mVue +( + `_back +( +mName +)); + +446 cڡ * +pvr + = +mVue +. + `c_r +(); + +447 cڡ  +pvn + = +mVue +. + `ngth +(); + +448 cڡ +size_t + +numBysCݛd + = +d +:: + `m +( +pvn +, +ic_ +<>(& +da +[ +igL + - 1] - +pTemeS + + 1)); + +451 if(( +pTemeEnd + + 1 < +pTemeS + + +numBysCݛd +&& ( +igL + - (pTemeS +umBysCݛd -TemeEnd - 1< +n +)) { + +452 +_che +. + ` +(_che. + `beg +(), & +da +[ +igL + - ( +pTemeS + + +numBysCݛd + - +pTemeEnd + - 1)], &da[ +n +]); + +454 + `memmove +( +pTemeS + + +numBysCݛd +, +pTemeEnd + + 1, & +da +[ +igL +] -TemplateStart -umBytesCopied); + +455 +n + = +igL +; + +456 } if( +pTemeEnd + + 1 ! +pTemeS + + +numBysCݛd +) + +459 + `memmove +( +pTemeS + + +numBysCݛd +, +pTemeEnd + + 1, & +da +[ +n +] -TemplateEnd - 1); + +461 + `memy +( +pTemeS +, +pvr +, +numBysCݛd +); + +463 if( +numBysCݛd + < +pvn +) { + +464 +_che +. + ` +(_che. + `beg +(), +pvr + + +numBysCݛd +,v+ +pvn +); + +465 } if( +pTemeS + + +numBysCݛd + < +pTemeEnd + + 1) { + +467 cڡ +size_t + +roomFed + = +pTemeEnd + + 1 - +pTemeS + - +numBysCݛd +; + +468 cڡ +size_t + +tٮFeRoom + = +igL + - +n + + +roomFed +; + +469 +n + + + `_adDaFromCacheOrCڋ +(& +da +[- +roomFed +], +tٮFeRoom +) -oomFreed; + +471 cڡ +size_t + +roomTak + = +pTemeS + + +numBysCݛd + - +pTemeEnd + - 1; + +472 +n + = +d +:: + `m +֒ + +roomTak +, +igL +); + +476  +n +; + +477 + } +} + +484 + gAsyncFeReڣ +::~ + $AsyncFeReڣ +(){ + +485 if( +_cڋ +) + +486 +_cڋ +. + `o +(); + +487 + } +} + +489  + gAsyncFeReڣ +:: + $_tCڋTy +(cڡ +Sg +& +th +){ + +490 #i +HAVE_EXTERN_GET_CONTENT_TYPE_FUNCTION + + +491 cڡ +__FshSgHr + * + `gCڋTy +(cڡ +Sg + & +th +); + +492 +_cڋTy + = + `gCڋTy +( +th +); + +494 i( +th +. + `dsWh +( + `F +(".html")) +_cڋTy + = F("text/html"); + +495 i( +th +. + `dsWh +( + `F +(".htm")) +_cڋTy + = F("text/html"); + +496 i( +th +. + `dsWh +( + `F +(".css")) +_cڋTy + = F("text/css"); + +497 i( +th +. + `dsWh +( + `F +(".js")) +_cڋTy + = F("application/json"); + +498 i( +th +. + `dsWh +( + `F +(".js")) +_cڋTy + = F("application/javascript"); + +499 i( +th +. + `dsWh +( + `F +(".g")) +_cڋTy + = F("image/png"); + +500 i( +th +. + `dsWh +( + `F +(".gif")) +_cڋTy + = F("image/gif"); + +501 i( +th +. + `dsWh +( + `F +(".jpg")) +_cڋTy + = F("image/jpeg"); + +502 i( +th +. + `dsWh +( + `F +(".ico")) +_cڋTy + = F("image/x-icon"); + +503 i( +th +. + `dsWh +( + `F +(".svg")) +_cڋTy + = F("image/svg+xml"); + +504 i( +th +. + `dsWh +( + `F +(".e")) +_cڋTy + = F("font/eot"); + +505 i( +th +. + `dsWh +( + `F +(".woff")) +_cڋTy + = F("font/woff"); + +506 i( +th +. + `dsWh +( + `F +(".woff2")) +_cڋTy + = F("font/woff2"); + +507 i( +th +. + `dsWh +( + `F +(".f")) +_cڋTy + = F("font/ttf"); + +508 i( +th +. + `dsWh +( + `F +(".xml")) +_cڋTy + = F("text/xml"); + +509 i( +th +. + `dsWh +( + `F +(".pdf")) +_cڋTy + = F("application/pdf"); + +510 i( +th +. + `dsWh +( + `F +(".z")) +_cڋTy + = F("application/zip"); + +511 if( +th +. + `dsWh +( + `F +(".gz")) +_cڋTy + = F("application/x-gzip"); + +512 +_cڋTy + = + `F +("text/plain"); + +514 + } +} + +516 + gAsyncFeReڣ +:: + $AsyncFeReڣ +( +FS + & +fs +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +, +bo + +dowd +, +AwsTemePross + +back +): + $AsyncAbReڣ +( +back +){ + +517 +_code + = 200; + +518 +_th + = +th +; + +520 if(! +dowd + && ! +fs +. + `exis +( +_th +&& fs.exis(_th + + `F +(".gz"))){ + +521 +_th + = _th + + `F +(".gz"); + +522 + `addHd +( + `F +("Content-Encoding"), F("gzip")); + +523 +_back + = +nuαr +; + +524 +_ndCڋLgth + = +ue +; + +525 +_chunked + = +l +; + +528 +_cڋ + = +fs +. + `ݒ +( +_th +, fs:: +FeOnMode +:: +ad +); + +529 +_cڋLgth + = +_cڋ +. + `size +(); + +531 if( +cڋTy +. + `ngth +() == 0) + +532 + `_tCڋTy +( +th +); + +534 +_cڋTy + = +cڋTy +; + +536  +fameS + = +th +. + `ϡIndexOf +('/') + 1; + +537  +buf +[26+ +th +. + `ngth +()- +fameS +]; + +538 * +fame + = (*) +th +. + `c_r +(+ +fameS +; + +540 if( +dowd +) { + +542 + `tf_P +( +buf +,  (buf), + `PSTR +("chmt; fame=\"%s\""), +fame +); + +545 + `tf_P +( +buf +,  (buf), + `PSTR +("le; fame=\"%s\""), +fame +); + +547 + `addHd +( + `F +("Cڋ-Diosi"), +buf +); + +548 + } +} + +550 + gAsyncFeReڣ +:: + $AsyncFeReڣ +( +Fe + +cڋ +, cڡ +Sg +& +th +, cڡ Sg& +cڋTy +, +bo + +dowd +, +AwsTemePross + +back +): + $AsyncAbReڣ +( +back +){ + +551 +_code + = 200; + +552 +_th + = +th +; + +554 if(! +dowd + && + `Sg +( +cڋ +. + `me +()). + `dsWh +( + `F +(".gz")&& ! +th +.endsWith(F(".gz"))){ + +555 + `addHd +( + `F +("Content-Encoding"), F("gzip")); + +556 +_back + = +nuαr +; + +557 +_ndCڋLgth + = +ue +; + +558 +_chunked + = +l +; + +561 +_cڋ + = +cڋ +; + +562 +_cڋLgth + = +_cڋ +. + `size +(); + +564 if( +cڋTy +. + `ngth +() == 0) + +565 + `_tCڋTy +( +th +); + +567 +_cڋTy + = +cڋTy +; + +569  +fameS + = +th +. + `ϡIndexOf +('/') + 1; + +570  +buf +[26+ +th +. + `ngth +()- +fameS +]; + +571 * +fame + = (*) +th +. + `c_r +(+ +fameS +; + +573 if( +dowd +) { + +574 + `tf_P +( +buf +,  (buf), + `PSTR +("chmt; fame=\"%s\""), +fame +); + +576 + `tf_P +( +buf +,  (buf), + `PSTR +("le; fame=\"%s\""), +fame +); + +578 + `addHd +( + `F +("Cڋ-Diosi"), +buf +); + +579 + } +} + +581 +size_t + + gAsyncFeReڣ +:: + $_flBufr +( +ut8_t + * +da +, +size_t + +n +){ + +582  +_cڋ +. + `ad +( +da +, +n +); + +583 + } +} + +589 + gAsyncSmReڣ +:: + $AsyncSmReڣ +( +Sm + & +am +, cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsTemePross + +back +): + $AsyncAbReڣ +( +back +) { + +590 +_code + = 200; + +591 +_cڋ + = & +am +; + +592 +_cڋLgth + = +n +; + +593 +_cڋTy + = +cڋTy +; + +594 + } +} + +596 +size_t + + gAsyncSmReڣ +:: + $_flBufr +( +ut8_t + * +da +, +size_t + +n +){ + +597 +size_t + +avaab + = +_cڋ +-> + `avaab +(); + +598 +size_t + +outL + = ( +avaab + > +n +)?len:available; + +599 +size_t + +i +; + +600  +i +=0;i< +outL +;i++) + +601 +da +[ +i +] = +_cڋ +-> + `ad +(); + +602  +outL +; + +603 + } +} + +609 + gAsyncClbackReڣ +:: + $AsyncClbackReڣ +(cڡ +Sg +& +cڋTy +, +size_t + +n +, +AwsReڣFr + +back +, +AwsTemePross + +meClback +): + $AsyncAbReڣ +( +meClback +) { + +610 +_code + = 200; + +611 +_cڋ + = +back +; + +612 +_cڋLgth + = +n +; + +613 if(! +n +) + +614 +_ndCڋLgth + = +l +; + +615 +_cڋTy + = +cڋTy +; + +616 +_fdLgth + = 0; + +617 + } +} + +619 +size_t + + gAsyncClbackReڣ +:: + $_flBufr +( +ut8_t + * +da +, +size_t + +n +){ + +620 +size_t + +t + = + `_cڋ +( +da +, +n +, +_fdLgth +); + +621 if( +t + ! +RESPONSE_TRY_AGAIN +){ + +622 +_fdLgth + + +t +; + +624  +t +; + +625 + } +} + +631 + gAsyncChunkedReڣ +:: + $AsyncChunkedReڣ +(cڡ +Sg +& +cڋTy +, +AwsReڣFr + +back +, +AwsTemePross + +ossClback +): + $AsyncAbReڣ +( +ossClback +) { + +632 +_code + = 200; + +633 +_cڋ + = +back +; + +634 +_cڋLgth + = 0; + +635 +_cڋTy + = +cڋTy +; + +636 +_ndCڋLgth + = +l +; + +637 +_chunked + = +ue +; + +638 +_fdLgth + = 0; + +639 + } +} + +641 +size_t + + gAsyncChunkedReڣ +:: + $_flBufr +( +ut8_t + * +da +, +size_t + +n +){ + +642 +size_t + +t + = + `_cڋ +( +da +, +n +, +_fdLgth +); + +643 if( +t + ! +RESPONSE_TRY_AGAIN +){ + +644 +_fdLgth + + +t +; + +646  +t +; + +647 + } +} + +653 + gAsyncProgmemReڣ +:: + $AsyncProgmemReڣ +( +code +, cڡ +Sg +& +cڋTy +, cڡ +ut8_t + * +cڋ +, +size_t + +n +, +AwsTemePross + +back +): + $AsyncAbReڣ +( +back +) { + +654 +_code + = +code +; + +655 +_cڋ + = +cڋ +; + +656 +_cڋTy + = +cڋTy +; + +657 +_cڋLgth + = +n +; + +658 +_adLgth + = 0; + +659 + } +} + +661 +size_t + + gAsyncProgmemReڣ +:: + $_flBufr +( +ut8_t + * +da +, +size_t + +n +){ + +662 +size_t + + + = +_cڋLgth + - +_adLgth +; + +663 i( + + > +n +) { + +664 + `memy_P +( +da +, +_cڋ + + +_adLgth +, +n +); + +665 +_adLgth + + +n +; + +666  +n +; + +668 + `memy_P +( +da +, +_cڋ + + +_adLgth +, + +); + +669 +_adLgth + + + +; + +670  + +; + +671 + } +} + +678 + gAsyncReڣSm +:: + $AsyncReڣSm +(cڡ +Sg +& +cڋTy +, +size_t + +bufrSize +){ + +679 +_code + = 200; + +680 +_cڋLgth + = 0; + +681 +_cڋTy + = +cڋTy +; + +682 +_cڋ + = +w + + `cbuf +( +bufrSize +); + +683 + } +} + +685 + gAsyncReڣSm +::~ + $AsyncReڣSm +(){ + +686 +de + +_cڋ +; + +687 + } +} + +689 +size_t + + gAsyncReڣSm +:: + $_flBufr +( +ut8_t + * +buf +, +size_t + +maxL +){ + +690  +_cڋ +-> + `ad +((*) +buf +, +maxL +); + +691 + } +} + +693 +size_t + + gAsyncReڣSm +:: + $wre +(cڡ +ut8_t + * +da +, +size_t + +n +){ + +694 if( + `_d +()) + +697 if( +n + > +_cڋ +-> + `room +()){ + +698 +size_t + +eded + = +n + - +_cڋ +-> + `room +(); + +699 +_cڋ +-> + `sizeAdd +( +eded +); + +701 +size_t + +wrn + = +_cڋ +-> + `wre +((cڡ *) +da +, +n +); + +702 +_cڋLgth + + +wrn +; + +703  +wrn +; + +704 + } +} + +706 +size_t + + gAsyncReڣSm +:: + $wre +( +ut8_t + +da +){ + +707  + `wre +(& +da +, 1); + +708 + } +} + + @lib/ESPAsyncWebServer/WebServer.cpp + +21  + ~"ESPAsyncWebSv.h +" + +22  + ~"WebHdrIm.h +" + +24 +bo + + $ON_STA_FILTER +( +AsyncWebSvReque + * +que +) { + +25  +WiFi +. + `lolIP +(= +que +-> + ` +()->localIP(); + +26 + } +} + +28 +bo + + $ON_AP_FILTER +( +AsyncWebSvReque + * +que +) { + +29  +WiFi +. + `lolIP +(! +que +-> + ` +()->localIP(); + +30 + } +} + +32 #ide +HAVE_FS_FILE_OPEN_MODE + + +33 cڡ * + gfs +:: +FeOnMode +:: +ad + = "r"; + +34 cڡ * + gfs +:: +FeOnMode +:: +wre + = "w"; + +35 cڡ * + gfs +:: +FeOnMode +:: +nd + = "a"; + +38 + gAsyncWebSv +:: + $AsyncWebSv +( +ut16_t + +pt +) + +39 : + `_rv +( +pt +) + +40 , + `_wres +( +LkedLi +< +AsyncWebRewre +*>([](AsyncWebRewre* +r +){ +de +; + } +})) + +41 , +_hdrs +( +LkedLi +< +AsyncWebHdr +*>([](AsyncWebHdr* +h +){ +de + h; })) + +43 + g_tchAHdr + = +w + +AsyncClbackWebHdr +(); + +44 if( + g_tchAHdr + = +NULL +) + +46 + g_rv +. +Cl +([](* +s +, +AsyncCl +* +c +){ + +47 if( +c + = +NULL +) + +49 +c +-> +tRxTimeout +(3); + +50 +AsyncWebSvReque + * +r + = +w + AsyncWebSvReque(( +AsyncWebSv +*) +s +, +c +); + +51 if( +r + = +NULL +){ + +52 +c +-> +o +( +ue +); + +53 +c +-> + +(); + +54 +de + +c +; + +56 }, +this +); + +59 + gAsyncWebSv +::~ + $AsyncWebSv +(){ + +60 + `t +(); + +61 + `d +(); + +62 if( +_tchAHdr + +de + _catchAllHandler; + +63 + } +} + +65 + gAsyncWebRewre +& + gAsyncWebSv +:: + $addRewre +( +AsyncWebRewre +* +wre +){ + +66 +_wres +. + `add +( +wre +); + +67  * +wre +; + +68 + } +} + +70 +bo + + gAsyncWebSv +:: + $moveRewre +( +AsyncWebRewre + * +wre +){ + +71  +_wres +. + `move +( +wre +); + +72 + } +} + +74 + gAsyncWebRewre +& + gAsyncWebSv +:: + $wre +(cڡ * +om +, cڡ * +to +){ + +75  + `addRewre +( +w + + `AsyncWebRewre +( +om +, +to +)); + +76 + } +} + +78 + gAsyncWebHdr +& + gAsyncWebSv +:: + $addHdr +( +AsyncWebHdr +* +hdr +){ + +79 +_hdrs +. + `add +( +hdr +); + +80  * +hdr +; + +81 + } +} + +83 +bo + + gAsyncWebSv +:: + $moveHdr +( +AsyncWebHdr + * +hdr +){ + +84  +_hdrs +. + `move +( +hdr +); + +85 + } +} + +87  + gAsyncWebSv +:: + $beg +(){ + +88 +_rv +. + `tNoDay +( +ue +); + +89 +_rv +. + `beg +(); + +90 + } +} + +92  + gAsyncWebSv +:: + $d +(){ + +93 +_rv +. + `d +(); + +94 + } +} + +96 #i +ASYNC_TCP_SSL_ENABLED + + +97  + gAsyncWebSv +:: + $SFeReque +( +AcSSlFeHdr + +cb +, * +g +){ + +98 +_rv +. + `SFeReque +( +cb +, +g +); + +99 + } +} + +101  + gAsyncWebSv +:: + $begSecu +(cڡ * + +, cڡ * +key +, cڡ * +sswd +){ + +102 +_rv +. + `begSecu +( + +, +key +, +sswd +); + +103 + } +} + +106  + gAsyncWebSv +:: + $_hdDisc +( +AsyncWebSvReque + * +que +){ + +107 +de + +que +; + +108 + } +} + +110  + gAsyncWebSv +:: + $_wreReque +( +AsyncWebSvReque + * +que +){ + +111 cڡuto& +r +: +_wres +){ + +112 i( +r +-> + `mch +( +que +)){ + +113 +que +-> +_u + = +r +-> + `toU +(); + +114 +que +-> + `_addGPams +( +r +-> + `ms +()); + +117 + } +} + +119  + gAsyncWebSv +:: + $_chHdr +( +AsyncWebSvReque + * +que +){ + +120 cڡuto& +h +: +_hdrs +){ + +121 i( +h +-> + `fr +( +que +&& h-> + `nHd +(request)){ + +122 +que +-> + `tHdr +( +h +); + +127 +que +-> + `addIegHd +( + `F +("ANY")); + +128 +que +-> + `tHdr +( +_tchAHdr +); + +129 + } +} + +132 + gAsyncClbackWebHdr +& + gAsyncWebSv +:: + $ +(cڡ * +uri +, +WebRequeMhodCompose + +mhod +, +ArRequeHdrFuni + +Reque +, +ArUdHdrFuni + +Ud +, +ArBodyHdrFuni + +Body +){ + +133 +AsyncClbackWebHdr +* +hdr + = +w + + `AsyncClbackWebHdr +(); + +134 +hdr +-> + `tUri +( +uri +); + +135 +hdr +-> + `tMhod +( +mhod +); + +136 +hdr +-> + `Reque +( +Reque +); + +137 +hdr +-> + `Ud +( +Ud +); + +138 +hdr +-> + `Body +( +Body +); + +139 + `addHdr +( +hdr +); + +140  * +hdr +; + +141 + } +} + +143 + gAsyncClbackWebHdr +& + gAsyncWebSv +:: + $ +(cڡ * +uri +, +WebRequeMhodCompose + +mhod +, +ArRequeHdrFuni + +Reque +, +ArUdHdrFuni + +Ud +){ + +144 +AsyncClbackWebHdr +* +hdr + = +w + + `AsyncClbackWebHdr +(); + +145 +hdr +-> + `tUri +( +uri +); + +146 +hdr +-> + `tMhod +( +mhod +); + +147 +hdr +-> + `Reque +( +Reque +); + +148 +hdr +-> + `Ud +( +Ud +); + +149 + `addHdr +( +hdr +); + +150  * +hdr +; + +151 + } +} + +153 + gAsyncClbackWebHdr +& + gAsyncWebSv +:: + $ +(cڡ * +uri +, +WebRequeMhodCompose + +mhod +, +ArRequeHdrFuni + +Reque +){ + +154 +AsyncClbackWebHdr +* +hdr + = +w + + `AsyncClbackWebHdr +(); + +155 +hdr +-> + `tUri +( +uri +); + +156 +hdr +-> + `tMhod +( +mhod +); + +157 +hdr +-> + `Reque +( +Reque +); + +158 + `addHdr +( +hdr +); + +159  * +hdr +; + +160 + } +} + +162 + gAsyncClbackWebHdr +& + gAsyncWebSv +:: + $ +(cڡ * +uri +, +ArRequeHdrFuni + +Reque +){ + +163 +AsyncClbackWebHdr +* +hdr + = +w + + `AsyncClbackWebHdr +(); + +164 +hdr +-> + `tUri +( +uri +); + +165 +hdr +-> + `Reque +( +Reque +); + +166 + `addHdr +( +hdr +); + +167  * +hdr +; + +168 + } +} + +170 + gAsyncSticWebHdr +& + gAsyncWebSv +:: + $rveStic +(cڡ * +uri +, +fs +:: +FS +& fs, cڡ * +th +, cڡ * +che_cڌ +){ + +171 +AsyncSticWebHdr +* +hdr + = +w + + `AsyncSticWebHdr +( +uri +, +fs +, +th +, +che_cڌ +); + +172 + `addHdr +( +hdr +); + +173  * +hdr +; + +174 + } +} + +176  + gAsyncWebSv +:: + $NFound +( +ArRequeHdrFuni + + +){ + +177 +_tchAHdr +-> + `Reque +( + +); + +178 + } +} + +180  + gAsyncWebSv +:: + $FeUd +( +ArUdHdrFuni + + +){ + +181 +_tchAHdr +-> + `Ud +( + +); + +182 + } +} + +184  + gAsyncWebSv +:: + $RequeBody +( +ArBodyHdrFuni + + +){ + +185 +_tchAHdr +-> + `Body +( + +); + +186 + } +} + +188  + gAsyncWebSv +:: + $t +(){ + +189 +_wres +. + ` +(); + +190 +_hdrs +. + ` +(); + +192 i( +_tchAHdr + ! +NULL +){ + +193 +_tchAHdr +-> + `Reque +( +NULL +); + +194 +_tchAHdr +-> + `Ud +( +NULL +); + +195 +_tchAHdr +-> + `Body +( +NULL +); + +197 + } +} + + @lib/OneWire/OneWire.cpp + +142  + ~ + +143  + ~"OWe.h +" + +144  + ~"OWe_de_gpio.h +" + +146 #agm +GCC + +dgnoic + +push + + +147 #agm +GCC + +dgnoic + +igned + "-Wunused-variable" + +149  + gOWe +:: + $beg +( +ut8_t + +p +) { + +150 + `pMode +( +p +, +INPUT +); + +151 +bmask + = + `PIN_TO_BITMASK +( +p +); + +152 +baReg + = + `PIN_TO_BASEREG +( +p +); + +153 #i +ONEWIRE_SEARCH + + +154 + `t_ch +(); + +156 + } +} + +164 #ifde +ARDUINO_ARCH_ESP32 + + +165 +ut8_t + +IRAM_ATTR + + gOWe +:: + $t +() { + +167 +ut8_t + +OWe +:: + $t +() { + +169 +IO_REG_TYPE + +mask + +IO_REG_MASK_ATTR + = +bmask +; + +170 vީ +IO_REG_TYPE + * +g + +IO_REG_BASE_ATTR + = +baReg +; + +171 +ut8_t + +r +; + +172 +ut8_t + +s + = 125; + +174 + `noIrus +(); + +175 + `DIRECT_MODE_INPUT +( +g +, +mask +); + +176 + `us +(); + +179 i(-- +s + == 0) + +181 + `dayMiocds +(2); + +182 } ! + `DIRECT_READ +( +g +, +mask +)); + +184 + `noIrus +(); + +185 + `DIRECT_WRITE_LOW +( +g +, +mask +); + +186 + `DIRECT_MODE_OUTPUT +( +g +, +mask +); + +187 + `us +(); + +188 + `dayMiocds +(480); + +189 + `noIrus +(); + +190 + `DIRECT_MODE_INPUT +( +g +, +mask +); + +191 + `dayMiocds +(70); + +192 +r + = ! + `DIRECT_READ +( +g +, +mask +); + +193 + `us +(); + +194 + `dayMiocds +(410); + +195  +r +; + +196 + } +} + +202 #ifde +ARDUINO_ARCH_ESP32 + + +203  +IRAM_ATTR + + gOWe +:: + $wre_b +( +ut8_t + +v +) { + +205  +OWe +:: + $wre_b +( +ut8_t + +v +) { + +207 +IO_REG_TYPE + +mask + +IO_REG_MASK_ATTR + = +bmask +; + +208 vީ +IO_REG_TYPE + * +g + +IO_REG_BASE_ATTR + = +baReg +; + +210 i( +v + & 1) { + +211 + `noIrus +(); + +212 + `DIRECT_WRITE_LOW +( +g +, +mask +); + +213 + `DIRECT_MODE_OUTPUT +( +g +, +mask +); + +214 + `dayMiocds +(10); + +215 + `DIRECT_WRITE_HIGH +( +g +, +mask +); + +216 + `us +(); + +217 + `dayMiocds +(55); + +219 + `noIrus +(); + +220 + `DIRECT_WRITE_LOW +( +g +, +mask +); + +221 + `DIRECT_MODE_OUTPUT +( +g +, +mask +); + +222 + `dayMiocds +(65); + +223 + `DIRECT_WRITE_HIGH +( +g +, +mask +); + +224 + `us +(); + +225 + `dayMiocds +(5); + +227 + } +} + +233 #ifde +ARDUINO_ARCH_ESP32 + + +234 +ut8_t + +IRAM_ATTR + + gOWe +:: + $ad_b +() { + +236 +ut8_t + +OWe +:: + $ad_b +() { + +238 +IO_REG_TYPE + +mask + +IO_REG_MASK_ATTR + = +bmask +; + +239 vީ +IO_REG_TYPE + * +g + +IO_REG_BASE_ATTR + = +baReg +; + +240 +ut8_t + +r +; + +242 + `noIrus +(); + +243 + `DIRECT_MODE_OUTPUT +( +g +, +mask +); + +244 + `DIRECT_WRITE_LOW +( +g +, +mask +); + +245 + `dayMiocds +(3); + +246 + `DIRECT_MODE_INPUT +( +g +, +mask +); + +247 + `dayMiocds +(10); + +248 +r + = + `DIRECT_READ +( +g +, +mask +); + +249 + `us +(); + +250 + `dayMiocds +(53); + +251  +r +; + +252 + } +} + +261  + gOWe +:: + $wre +( +ut8_t + +v +, ut8_ +pow + ) { + +262 +ut8_t + +bMask +; + +264  +bMask + = 0x01; bitMask; bitMask <<= 1) { + +265 +OWe +:: + `wre_b +(( +bMask + & +v +) ? 1 : 0); + +267 i(! +pow +) { + +268 + `noIrus +(); + +269 + `DIRECT_MODE_INPUT +( +baReg +, +bmask +); + +270 + `DIRECT_WRITE_LOW +( +baReg +, +bmask +); + +271 + `us +(); + +273 + } +} + +275  + gOWe +:: + $wre_bys +(cڡ +ut8_t + * +buf +, +ut16_t + +cou +, +bo + +pow + ) { + +276  +ut16_t + +i + = 0; i < +cou +; i++) + +277 + `wre +( +buf +[ +i +]); + +278 i(! +pow +) { + +279 + `noIrus +(); + +280 + `DIRECT_MODE_INPUT +( +baReg +, +bmask +); + +281 + `DIRECT_WRITE_LOW +( +baReg +, +bmask +); + +282 + `us +(); + +284 + } +} + +289 +ut8_t + + gOWe +:: + $ad +() { + +290 +ut8_t + +bMask +; + +291 +ut8_t + +r + = 0; + +293  +bMask + = 0x01; bitMask; bitMask <<= 1) { + +294 i( +OWe +:: + `ad_b +()) + +295 +r + | +bMask +; + +297  +r +; + +298 + } +} + +300  + gOWe +:: + $ad_bys +( +ut8_t + * +buf +, +ut16_t + +cou +) { + +301  +ut16_t + +i + = 0; i < +cou +; i++) + +302 +buf +[ +i +] = + `ad +(); + +303 + } +} + +308  + gOWe +:: + $ +(cڡ +ut8_t + +rom +[8]) { + +309 +ut8_t + +i +; + +311 + `wre +(0x55); + +313  +i + = 0; i < 8; i++) + +314 + `wre +( +rom +[ +i +]); + +315 + } +} + +320  + gOWe +:: + $sk +() { + +321 + `wre +(0xCC); + +322 + } +} + +324  + gOWe +:: + $dow +() { + +325 + `noIrus +(); + +326 + `DIRECT_MODE_INPUT +( +baReg +, +bmask +); + +327 + `us +(); + +328 + } +} + +330 #i +ONEWIRE_SEARCH + + +336  + gOWe +:: + $t_ch +() { + +338 +LaDiscy + = 0; + +339 +LaDeviFg + = +l +; + +340 +LaFamyDiscy + = 0; + +341  +i + = 7;; i--) { + +342 +ROM_NO +[ +i +] = 0; + +343 i( +i + == 0) + +346 + } +} + +351  + gOWe +:: + $rg_ch +( +ut8_t + +my_code +) { + +353 +ROM_NO +[0] = +my_code +; + +354  +ut8_t + +i + = 1; i < 8; i++) + +355 +ROM_NO +[ +i +] = 0; + +356 +LaDiscy + = 64; + +357 +LaFamyDiscy + = 0; + +358 +LaDeviFg + = +l +; + +359 + } +} + +377 +bo + + gOWe +:: + $ch +( +ut8_t + * +wAddr +, +bo + +ch_mode + ) { + +378 +ut8_t + +id_b_numb +; + +379 +ut8_t + +ϡ_zo +, +rom_by_numb +; + +380 +bo + +ch_su +; + +381 +ut8_t + +id_b +, +cmp_id_b +; + +383  +rom_by_mask +, +ch_dei +; + +386 +id_b_numb + = 1; + +387 +ϡ_zo + = 0; + +388 +rom_by_numb + = 0; + +389 +rom_by_mask + = 1; + +390 +ch_su + = +l +; + +393 i(! +LaDeviFg +) { + +395 i(! + `t +()) { + +397 +LaDiscy + = 0; + +398 +LaDeviFg + = +l +; + +399 +LaFamyDiscy + = 0; + +400  +l +; + +404 i( +ch_mode + = +ue +) { + +405 + `wre +(0xF0); + +407 + `wre +(0xEC); + +413 +id_b + = + `ad_b +(); + +414 +cmp_id_b + = + `ad_b +(); + +417 i(( +id_b + =1&& ( +cmp_id_b + == 1)) { + +421 i( +id_b + ! +cmp_id_b +) { + +422 +ch_dei + = +id_b +; + +426 i( +id_b_numb + < +LaDiscy +) { + +427 +ch_dei + = (( +ROM_NO +[ +rom_by_numb +] & +rom_by_mask +) > 0); + +430 +ch_dei + = ( +id_b_numb + = +LaDiscy +); + +433 i( +ch_dei + == 0) { + +434 +ϡ_zo + = +id_b_numb +; + +437 i( +ϡ_zo + < 9) + +438 +LaFamyDiscy + = +ϡ_zo +; + +444 i( +ch_dei + == 1) + +445 +ROM_NO +[ +rom_by_numb +] | +rom_by_mask +; + +447 +ROM_NO +[ +rom_by_numb +] &~ +rom_by_mask +; + +450 + `wre_b +( +ch_dei +); + +454 +id_b_numb +++; + +455 +rom_by_mask + <<= 1; + +458 i( +rom_by_mask + == 0) { + +459 +rom_by_numb +++; + +460 +rom_by_mask + = 1; + +463 }  +rom_by_numb + < 8); + +466 i(!( +id_b_numb + < 65)) { + +468 +LaDiscy + = +ϡ_zo +; + +471 i( +LaDiscy + == 0) { + +472 +LaDeviFg + = +ue +; + +474 +ch_su + = +ue +; + +479 i(! +ch_su + || ! +ROM_NO +[0]) { + +480 +LaDiscy + = 0; + +481 +LaDeviFg + = +l +; + +482 +LaFamyDiscy + = 0; + +483 +ch_su + = +l +; + +485  +i + = 0; i < 8; i++) + +486 +wAddr +[ +i +] = +ROM_NO +[i]; + +489  +ch_su +; + +490 + } +} + +494 #i +ONEWIRE_CRC + + +499 #i +ONEWIRE_CRC8_TABLE + + +503 cڡ +ut8_t + +PROGMEM + + gdsc2x16_b +[] = {0x00, 0x5E, 0xBC, 0xE2, 0x61, 0x3F, 0xDD, 0x83, 0xC2, 0x9C, 0x7E, 0x20, 0xA3, 0xFD, 0x1F, 0x41, + +508 +ut8_t + + gOWe +:: + $c8 +(cڡ +ut8_t + * +addr +, ut8_ +n +) { + +509 +ut8_t + +c + = 0; + +511  +n +--) { + +512 +c + = * +addr +++ ^ crc; + +513 +c + = + `pgm_ad_by +( +dsc2x16_b + + (crc & 0x0f)) ^gm_read_byte(dscrc2x16_table + 16 + ((crc >> 4) & 0x0f)); + +516  +c +; + +517 + } +} + +523 +ut8_t + + gOWe +:: + $c8 +(cڡ +ut8_t + * +addr +, ut8_ +n +) { + +524 +ut8_t + +c + = 0; + +526  +n +--) { + +527 #i + `defed +( +__AVR__ +) + +528 +c + = + `_c_ibu_upde +(c, * +addr +++); + +530 +ut8_t + +by + = * +addr +++; + +531  +ut8_t + +i + = 8; i; i--) { + +532 +ut8_t + +mix + = ( +c + ^ +by +) & 0x01; + +533 +c + >>= 1; + +534 i( +mix +) + +535 +c + ^= 0x8C; + +536 +by + >>= 1; + +540  +c +; + +541 + } +} + +544 #i +ONEWIRE_CRC16 + + +545 +bo + + gOWe +:: + $check_c16 +(cڡ +ut8_t + * +put +, +ut16_t + +n +, cڡ ut8_* +vd_c +, ut16_ +c +) { + +546 +c + = ~ + `c16 +( +put +, +n +, crc); + +547  ( +c + & 0xFF= +vd_c +[0] && (crc >> 8) == inverted_crc[1]; + +548 + } +} + +550 +ut16_t + + gOWe +:: + $c16 +(cڡ +ut8_t + * +put +, +ut16_t + +n +, ut16_ +c +) { + +551 #i + `defed +( +__AVR__ +) + +552  +ut16_t + +i + = 0; i < +n +; i++) { + +553 +c + = + `_c16_upde +(c, +put +[ +i +]); + +556 cڡ +ut8_t + +oddry +[16] = {0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0}; + +558  +ut16_t + +i + = 0; i < +n +; i++) { + +561 +ut16_t + +cda + = +put +[ +i +]; + +562 +cda + = (cd^ +c +) & 0xff; + +563 +c + >>= 8; + +565 i( +oddry +[ +cda + & 0x0F] ^ oddparity[cdata >> 4]) + +566 +c + ^= 0xC001; + +568 +cda + <<= 6; + +569 +c + ^ +cda +; + +570 +cda + <<= 1; + +571 +c + ^ +cda +; + +574  +c +; + +575 + } +} + +581 #agm +GCC + +dgnoic +op + + @lib/OneWire/OneWire.h + +1 #ide +OWe_h + + +2  + #OWe_h + + + ) + +4 #ifde +__lulus + + +6  + ~ + +8 #i +defed +( +__AVR__ +) + +9  + ~ + +12 #i +ARDUINO + >= 100 + +13  + ~ + +15  + ~"WProgm.h +" + +16  + ~"ps_duo.h +" + +30 #ide +ONEWIRE_SEARCH + + +31  + #ONEWIRE_SEARCH + 1 + + ) + +35 #ide +ONEWIRE_CRC + + +36  + #ONEWIRE_CRC + 1 + + ) + +44 #ide +ONEWIRE_CRC8_TABLE + + +45  + #ONEWIRE_CRC8_TABLE + 1 + + ) + +50 #ide +ONEWIRE_CRC16 + + +51  + #ONEWIRE_CRC16 + 1 + + ) + +55  + ~"OWe_de_gty.h +" + +57 as + cOWe + { + +58 + mive +: + +59 +IO_REG_TYPE + +bmask +; + +60 vީ +IO_REG_TYPE + * + mbaReg +; + +62 #i +ONEWIRE_SEARCH + + +64  + mROM_NO +[8]; + +65 +ut8_t + + mLaDiscy +; + +66 +ut8_t + + mLaFamyDiscy +; + +67 +bo + + mLaDeviFg +; + +70 + mpublic +: + +71 + $OWe +() { + +73 + $OWe +( +ut8_t + +p +) { + +74 + `beg +( +p +); + +75 + } +} + +76  +beg +( +ut8_t + +p +); + +81 #ifde +ARDUINO_ARCH_ESP32 + + +82 +ut8_t + +IRAM_ATTR + +t +(); + +84 +ut8_t + +t +(); + +88  + +(cڡ +ut8_t + +rom +[8]); + +91  +sk +(); + +97  +wre +( +ut8_t + +v +, ut8_ +pow + = 0); + +99  +wre_bys +(cڡ +ut8_t + * +buf +, +ut16_t + +cou +, +bo + +pow + = 0); + +102 +ut8_t + +ad +(); + +104  +ad_bys +( +ut8_t + * +buf +, +ut16_t + +cou +); + +108 #ifde +ARDUINO_ARCH_ESP32 + + +109  +IRAM_ATTR + +wre_b +( +ut8_t + +v +); + +111  +wre_b +( +ut8_t + +v +); + +115 #ifde +ARDUINO_ARCH_ESP32 + + +116 +ut8_t + +IRAM_ATTR + +ad_b +(); + +118 +ut8_t + +ad_b +(); + +125  +dow +(); + +127 #i +ONEWIRE_SEARCH + + +129  +t_ch +(); + +133  +rg_ch +( +ut8_t + +my_code +); + +141 +bo + +ch +( +ut8_t + * +wAddr +, bo +ch_mode + = +ue +); + +144 #i +ONEWIRE_CRC + + +147  +ut8_t + +c8 +(cڡ ut8_* +addr +, ut8_ +n +); + +149 #i +ONEWIRE_CRC16 + + +170  +bo + +check_c16 +(cڡ +ut8_t + * +put +, +ut16_t + +n +, cڡ ut8_* +vd_c +, ut16_ +c + = 0); + +184  +ut16_t + +c16 +(cڡ +ut8_t + * +put +, ut16_ +n +, ut16_ +c + = 0); + +190 #ifde +IO_REG_TYPE + + +191 #unde +IO_REG_TYPE + + + @lib/OneWire/OneWire_direct_gpio.h + +1 #ide +OWe_De_GPIO_h + + +2  + #OWe_De_GPIO_h + + + ) + +8  + ~ + +12 #i +defed +( +__AVR__ +) + +13  + #PIN_TO_BASEREG +( +p +( + `ptIutRegi +( + `digPToPt +՚))) + + ) + +14  + #PIN_TO_BITMASK +( +p +( + `digPToBMask +՚)) + + ) + +15  + #IO_REG_TYPE + +ut8_t + + + ) + +16  + #IO_REG_BASE_ATTR + + `asm +("r30") + + ) + +17  + #IO_REG_MASK_ATTR + + + ) + +18 #i +defed +( +__AVR_ATmega4809__ +) + +19  + #DIRECT_READ +( +ba +, +mask +(((*(ba)& (mask)? 1 : 0) + + ) + +20  + #DIRECT_MODE_INPUT +( +ba +, +mask +((*((ba)-8)&~(mask)) + + ) + +21  + #DIRECT_MODE_OUTPUT +( +ba +, +mask +((*((ba)-8)|(mask)) + + ) + +22  + #DIRECT_WRITE_LOW +( +ba +, +mask +((*((ba)-4)&~(mask)) + + ) + +23  + #DIRECT_WRITE_HIGH +( +ba +, +mask +((*((ba)-4)|(mask)) + + ) + +25  + #DIRECT_READ +( +ba +, +mask +(((*(ba)& (mask)? 1 : 0) + + ) + +26  + #DIRECT_MODE_INPUT +( +ba +, +mask +((*((ba+ 1)&~(mask)) + + ) + +27  + #DIRECT_MODE_OUTPUT +( +ba +, +mask +((*((ba+ 1)|(mask)) + + ) + +28  + #DIRECT_WRITE_LOW +( +ba +, +mask +((*((ba+ 2)&~(mask)) + + ) + +29  + #DIRECT_WRITE_HIGH +( +ba +, +mask +((*((ba+ 2)|(mask)) + + ) + +32 #i +defed +( +__MK20DX128__ +|| defed( +__MK20DX256__ +|| defed( +__MK66FX1M0__ +|| defed( +__MK64FX512__ +) + +33  + #PIN_TO_BASEREG +( +p +( + `ptOuutRegi +՚)) + + ) + +34  + #PIN_TO_BITMASK +( +p +(1) + + ) + +35  + #IO_REG_TYPE + +ut8_t + + + ) + +36  + #IO_REG_BASE_ATTR + + + ) + +37  + #IO_REG_MASK_ATTR + + `__ibu__ +(( +unud +)) + + ) + +38  + #DIRECT_READ +( +ba +, +mask +(*((ba+ 512)) + + ) + +39  + #DIRECT_MODE_INPUT +( +ba +, +mask +(*((ba+ 6400) + + ) + +40  + #DIRECT_MODE_OUTPUT +( +ba +, +mask +(*((ba+ 6401) + + ) + +41  + #DIRECT_WRITE_LOW +( +ba +, +mask +(*((ba+ 2561) + + ) + +42  + #DIRECT_WRITE_HIGH +( +ba +, +mask +(*((ba+ 1281) + + ) + +44 #i +defed +( +__MKL26Z64__ +) + +45  + #PIN_TO_BASEREG +( +p +( + `ptOuutRegi +՚)) + + ) + +46  + #PIN_TO_BITMASK +( +p +( + `digPToBMask +՚)) + + ) + +47  + #IO_REG_TYPE + +ut8_t + + + ) + +48  + #IO_REG_BASE_ATTR + + + ) + +49  + #IO_REG_MASK_ATTR + + + ) + +50  + #DIRECT_READ +( +ba +, +mask +((*((ba+ 16& (mask)? 1 : 0) + + ) + +51  + #DIRECT_MODE_INPUT +( +ba +, +mask +(*((ba+ 20&~(mask)) + + ) + +52  + #DIRECT_MODE_OUTPUT +( +ba +, +mask +(*((ba+ 20|(mask)) + + ) + +53  + #DIRECT_WRITE_LOW +( +ba +, +mask +(*((ba+ 8(mask)) + + ) + +54  + #DIRECT_WRITE_HIGH +( +ba +, +mask +(*((ba+ 4(mask)) + + ) + +56 #i +defed +( +__IMXRT1052__ +|| defed( +__IMXRT1062__ +) + +57  + #PIN_TO_BASEREG +( +p +( + `ptOuutRegi +՚)) + + ) + +58  + #PIN_TO_BITMASK +( +p +( + `digPToBMask +՚)) + + ) + +59  + #IO_REG_TYPE + +ut32_t + + + ) + +60  + #IO_REG_BASE_ATTR + + + ) + +61  + #IO_REG_MASK_ATTR + + + ) + +62  + #DIRECT_READ +( +ba +, +mask +((*((ba+ 2& (mask)? 1 : 0) + + ) + +63  + #DIRECT_MODE_INPUT +( +ba +, +mask +(*((ba+ 1&~(mask)) + + ) + +64  + #DIRECT_MODE_OUTPUT +( +ba +, +mask +(*((ba+ 1|(mask)) + + ) + +65  + #DIRECT_WRITE_LOW +( +ba +, +mask +(*((ba+ 34(mask)) + + ) + +66  + #DIRECT_WRITE_HIGH +( +ba +, +mask +(*((ba+ 33(mask)) + + ) + +68 #i +defed +( +__SAM3X8E__ +|| defed( +__SAM3A8C__ +|| defed( +__SAM3A4C__ +) + +73  + #PIN_TO_BASEREG +( +p +(&( + `digPToPt +՚)-> +PIO_PER +)) + + ) + +74  + #PIN_TO_BITMASK +( +p +( + `digPToBMask +՚)) + + ) + +75  + #IO_REG_TYPE + +ut32_t + + + ) + +76  + #IO_REG_BASE_ATTR + + + ) + +77  + #IO_REG_MASK_ATTR + + + ) + +78  + #DIRECT_READ +( +ba +, +mask +(((*((ba+ 15)& (mask)? 1 : 0) + + ) + +79  + #DIRECT_MODE_INPUT +( +ba +, +mask +((*((ba+ 5)(mask)) + + ) + +80  + #DIRECT_MODE_OUTPUT +( +ba +, +mask +((*((ba+ 4)(mask)) + + ) + +81  + #DIRECT_WRITE_LOW +( +ba +, +mask +((*((ba+ 13)(mask)) + + ) + +82  + #DIRECT_WRITE_HIGH +( +ba +, +mask +((*((ba+ 12)(mask)) + + ) + +83 #ide +PROGMEM + + +84  + #PROGMEM + + + ) + +86 #ide +pgm_ad_by + + +87  + #pgm_ad_by +( +addr +(*(cڡ +ut8_t + *)ddr)) + + ) + +90 #i +defed +( +__PIC32MX__ +) + +91  + #PIN_TO_BASEREG +( +p +( + `ptModeRegi +( + `digPToPt +՚))) + + ) + +92  + #PIN_TO_BITMASK +( +p +( + `digPToBMask +՚)) + + ) + +93  + #IO_REG_TYPE + +ut32_t + + + ) + +94  + #IO_REG_BASE_ATTR + + + ) + +95  + #IO_REG_MASK_ATTR + + + ) + +96  + #DIRECT_READ +( +ba +, +mask +) (((*(base + 4)) & (mask)) ? 1 : 0) + +97  + #DIRECT_MODE_INPUT +( +ba +, +mask +) ((*(base + 2)) = (mask)) + +98  + #DIRECT_MODE_OUTPUT +( +ba +, +mask +) ((*(base + 1)) = (mask)) + +99  + #DIRECT_WRITE_LOW +( +ba +, +mask +) ((*(base + 8 + 1)) = (mask)) + +100  + #DIRECT_WRITE_HIGH +( +ba +, +mask +) ((*(base + 8 + 2)) = (mask)) + +101 + + ) + +102 #i +defed +( +ARDUINO_ARCH_ESP8266 +) + +108  + #PIN_TO_BASEREG +( +p +((vީ +ut32_t + *) +GPO +) + + ) + +109  + #PIN_TO_BITMASK +( +p +(1 <<) + + ) + +110  + #IO_REG_TYPE + +ut32_t + + + ) + +111  + #IO_REG_BASE_ATTR + + + ) + +112  + #IO_REG_MASK_ATTR + + + ) + +113  + #DIRECT_READ +( +ba +, +mask +(( +GPI + & (mask)) ? 1 : 0) + +114  + #DIRECT_MODE_INPUT +( +ba +, +mask +( +GPE + &= ~(mask)) + +115  + #DIRECT_MODE_OUTPUT +( +ba +, +mask +( +GPE + |= (mask)) + +116  + #DIRECT_WRITE_LOW +( +ba +, +mask +( +GPOC + = (mask)) + +117  + #DIRECT_WRITE_HIGH +( +ba +, +mask +( +GPOS + = (mask)) + +118 + + ) + +119 #i +defed +( +ARDUINO_ARCH_ESP32 +) + +120  + ~ + +121  + #PIN_TO_BASEREG +( +p +(0) + + ) + +122  + #PIN_TO_BITMASK +( +p +՚) + + ) + +123  + #IO_REG_TYPE + +ut32_t + + + ) + +124  + #IO_REG_BASE_ATTR + + + ) + +125  + #IO_REG_MASK_ATTR + + + ) + +127  +le + +__ibu__ +(( +ways_le +) +IO_REG_TYPE + + $deRd +( +IO_REG_TYPE + +p +) { + +128 i( +p + < 32) + +129  ( +GPIO +. + + >> +p +) & 0x1; + +130 i( +p + < 40) + +131  ( +GPIO +. +1 +. +v + >> ( +p + - 32)) & 0x1; + +134 + } +} + +136  +le + +__ibu__ +(( +ways_le +) + $deWreLow +( +IO_REG_TYPE + +p +) { + +137 i( +p + < 32) + +138 +GPIO +. +out_w1tc + = (( +ut32_t +)1 << +p +); + +139 i( +p + < 34) + +140 +GPIO +. +out1_w1tc +. +v + = (( +ut32_t +)1 << ( +p + - 32)); + +141 + } +} + +143  +le + +__ibu__ +(( +ways_le +) + $deWreHigh +( +IO_REG_TYPE + +p +) { + +144 i( +p + < 32) + +145 +GPIO +. +out_w1ts + = (( +ut32_t +)1 << +p +); + +146 i( +p + < 34) + +147 +GPIO +. +out1_w1ts +. +v + = (( +ut32_t +)1 << ( +p + - 32)); + +148 + } +} + +150  +le + +__ibu__ +(( +ways_le +) + $deModeIut +( +IO_REG_TYPE + +p +) { + +151 i( + `digPIsVid +( +p +)) { + +152 +ut32_t + + `c_g +( +c_gpio_desc +[ +p +]. +g +); + +154 i( +c_g +) + +156 + `ESP_REG +( +c_g +ESP_REGtc_g& ~( +c_gpio_desc +[ +p +]. +mux +); + +157 + `ESP_REG +( +c_g +ESP_REGtc_g& ~( +c_gpio_desc +[ +p +]. +puup + |tc_gpio_desc[p]. +pudown +); + +160 i( +p + < 32) + +161 +GPIO +. +ab_w1tc + = (( +ut32_t +)1 << +p +); + +163 +GPIO +. +ab1_w1tc +. +v + = (( +ut32_t +)1 << ( +p + - 32)); + +165 +ut32_t + + `pFuni +((ut32_t)2 << +FUN_DRV_S +); + +166 +pFuni + | +FUN_IE +; + +167 +pFuni + |(( +ut32_t +)2 << +MCU_SEL_S +); + +169 + `ESP_REG +( +DR_REG_IO_MUX_BASE + + +e32_gpioMux +[ +p +]. +g + +pFuni +; + +171 +GPIO +. +p +[p]. +v + = 0; + +173 + } +} + +175  +le + +__ibu__ +(( +ways_le +) + $deModeOuut +( +IO_REG_TYPE + +p +) { + +176 i( + `digPIsVid +( +p +) &&in <= 33) + +178 +ut32_t + + `c_g +( +c_gpio_desc +[ +p +]. +g +); + +180 i( +c_g +) + +182 + `ESP_REG +( +c_g +ESP_REGtc_g& ~( +c_gpio_desc +[ +p +]. +mux +); + +183 + `ESP_REG +( +c_g +ESP_REGtc_g& ~( +c_gpio_desc +[ +p +]. +puup + |tc_gpio_desc[p]. +pudown +); + +186 i( +p + < 32) + +187 +GPIO +. +ab_w1ts + = (( +ut32_t +)1 << +p +); + +189 +GPIO +. +ab1_w1ts +. +v + = (( +ut32_t +)1 << ( +p + - 32)); + +191 +ut32_t + + `pFuni +((ut32_t)2 << +FUN_DRV_S +); + +192 +pFuni + | +FUN_IE +; + +193 +pFuni + |(( +ut32_t +)2 << +MCU_SEL_S +); + +195 + `ESP_REG +( +DR_REG_IO_MUX_BASE + + +e32_gpioMux +[ +p +]. +g + +pFuni +; + +197 +GPIO +. +p +[p]. +v + = 0; + +199 + } +} + +201  + #DIRECT_READ +( +ba +, +p + + `deRd +՚) + + ) + +202  + #DIRECT_WRITE_LOW +( +ba +, +p + + `deWreLow +՚) + + ) + +203  + #DIRECT_WRITE_HIGH +( +ba +, +p + + `deWreHigh +՚) + + ) + +204  + #DIRECT_MODE_INPUT +( +ba +, +p + + `deModeIut +՚) + + ) + +205  + #DIRECT_MODE_OUTPUT +( +ba +, +p + + `deModeOuut +՚) + + ) + +208 #ifde +us + + +209 #unde +us + + +211 #ifde +noIrus + + +212 #unde +noIrus + + +214  + #noIrus +() \ + +216 +ptMUX_TYPE + +mux + = +ptMUX_INITIALIZER_UNLOCKED +; \ + +217 + `ptENTER_CRITICAL +(& +mux +) + + ) + +218  + #us +() \ + +219 + `ptEXIT_CRITICAL +(& +mux +); \ + +220 } + + ) + +223 #i +defed +( +ARDUINO_ARCH_STM32 +) + +224  + #PIN_TO_BASEREG +( +p +(0) + + ) + +225  + #PIN_TO_BITMASK +( +p +(( +ut32_t +) + `digPToPName +՚)) + + ) + +226  + #IO_REG_TYPE + +ut32_t + + + ) + +227  + #IO_REG_BASE_ATTR + + + ) + +228  + #IO_REG_MASK_ATTR + + + ) + +229  + #DIRECT_READ +( +ba +, +p + + `digRdFa +(( +PName +) + + ) + +230  + #DIRECT_WRITE_LOW +( +ba +, +p + + `digWreFa +(( +PName +, +LOW +) + + ) + +231  + #DIRECT_WRITE_HIGH +( +ba +, +p + + `digWreFa +(( +PName +, +HIGH +) + + ) + +232  + #DIRECT_MODE_INPUT +( +ba +, +p + + `p_funi +(( +PName +, + `STM_PIN_DATA +( +STM_MODE_INPUT +, +GPIO_NOPULL +, 0)) + + ) + +233  + #DIRECT_MODE_OUTPUT +( +ba +, +p + + `p_funi +(( +PName +, + `STM_PIN_DATA +( +STM_MODE_OUTPUT_PP +, +GPIO_NOPULL +, 0)) + + ) + +235 #i +defed +( +__SAMD21G18A__ +) + +236  + #PIN_TO_BASEREG +( +p + + `ptModeRegi +( + `digPToPt +՚)) + + ) + +237  + #PIN_TO_BITMASK +( +p +( + `digPToBMask +՚)) + + ) + +238  + #IO_REG_TYPE + +ut32_t + + + ) + +239  + #IO_REG_BASE_ATTR + + + ) + +240  + #IO_REG_MASK_ATTR + + + ) + +241  + #DIRECT_READ +( +ba +, +mask +(((*((ba+ 8)& (mask)? 1 : 0) + + ) + +242  + #DIRECT_MODE_INPUT +( +ba +, +mask +((*((ba+ 1)(mask)) + + ) + +243  + #DIRECT_MODE_OUTPUT +( +ba +, +mask +((*((ba+ 2)(mask)) + + ) + +244  + #DIRECT_WRITE_LOW +( +ba +, +mask +((*((ba+ 5)(mask)) + + ) + +245  + #DIRECT_WRITE_HIGH +( +ba +, +mask +((*((ba+ 6)(mask)) + + ) + +247 #i +defed +( +__ASR6501__ +) + +248  + #PIN_IN_PORT +( +p +՚ % +PIN_NUMBER_IN_PORT +) + + ) + +249  + #PORT_FROM_PIN +( +p +՚ / +PIN_NUMBER_IN_PORT +) + + ) + +250  + #PORT_OFFSET +( +pt +( +PORT_REG_SHFIT + *t) + + ) + +251  + #PORT_ADDRESS +( +p +( +CYDEV_GPIO_BASE + + + `PORT_OFFSET +( + `PORT_FROM_PIN +՚))) + + ) + +253  + #PIN_TO_BASEREG +( +p +(0) + + ) + +254  + #PIN_TO_BITMASK +( +p +՚) + + ) + +255  + #IO_REG_TYPE + +ut32_t + + + ) + +256  + #IO_REG_BASE_ATTR + + + ) + +257  + #IO_REG_MASK_ATTR + + + ) + +258  + #DIRECT_READ +( +ba +, +p + + `CY_SYS_PINS_READ_PIN +( + `PORT_ADDRESS +՚+ 4, + `PIN_IN_PORT +՚)) + + ) + +259  + #DIRECT_WRITE_LOW +( +ba +, +p + + `CY_SYS_PINS_CLEAR_PIN +( + `PORT_ADDRESS +՚), + `PIN_IN_PORT +՚)) + + ) + +260  + #DIRECT_WRITE_HIGH +( +ba +, +p + + `CY_SYS_PINS_SET_PIN +( + `PORT_ADDRESS +՚), + `PIN_IN_PORT +՚)) + + ) + +261  + #DIRECT_MODE_INPUT +( +ba +, +p + + `CY_SYS_PINS_SET_DRIVE_MODE +( + `PORT_ADDRESS +՚+ 8, + `PIN_IN_PORT +՚), +CY_SYS_PINS_DM_DIG_HIZ +) + + ) + +262  + #DIRECT_MODE_OUTPUT +( +ba +, +p + + `CY_SYS_PINS_SET_DRIVE_MODE +( + `PORT_ADDRESS +՚+ 8, + `PIN_IN_PORT +՚), +CY_SYS_PINS_DM_STRONG +) + + ) + +264 #i +defed +( +RBL_NRF51822 +) + +265  + #PIN_TO_BASEREG +( +p +(0) + + ) + +266  + #PIN_TO_BITMASK +( +p +՚) + + ) + +267  + #IO_REG_TYPE + +ut32_t + + + ) + +268  + #IO_REG_BASE_ATTR + + + ) + +269  + #IO_REG_MASK_ATTR + + + ) + +270  + #DIRECT_READ +( +ba +, +p + + `f_gpio_p_ad +՚) + + ) + +271  + #DIRECT_WRITE_LOW +( +ba +, +p + + `f_gpio_p_r +՚) + + ) + +272  + #DIRECT_WRITE_HIGH +( +ba +, +p + + `f_gpio_p_t +՚) + + ) + +273  + #DIRECT_MODE_INPUT +( +ba +, +p + + `f_gpio_cfg_put +՚, +NRF_GPIO_PIN_NOPULL +) + + ) + +274  + #DIRECT_MODE_OUTPUT +( +ba +, +p + + `f_gpio_cfg_ouut +՚) + + ) + +276 #i +defed +( +__c__ +) + +278  + ~"scss_gis.h +" + +279  + ~"p܏b.h +" + +280  + ~"avr/pgma.h +" + +282  + #GPIO_ID +( +p +( +g_APDesti +[p]. +ulGPIOId +) + + ) + +283  + #GPIO_TYPE +( +p +( +g_APDesti +[p]. +ulGPIOTy +) + + ) + +284  + #GPIO_BASE +( +p +( +g_APDesti +[p]. +ulGPIOBa +) + + ) + +285  + #DIR_OFFSET_SS + 0x01 + + ) + +286  + #DIR_OFFSET_SOC + 0x04 + + ) + +287  + #EXT_PORT_OFFSET_SS + 0x0A + + ) + +288  + #EXT_PORT_OFFSET_SOC + 0x50 + + ) + +291  + #PIN_TO_BASEREG +( +p +((vީ +ut32_t + *) +g_APDesti +[p]. +ulGPIOBa +) + + ) + +292  + #PIN_TO_BITMASK +( +p + + ) +pin + +293  + #IO_REG_TYPE + +ut32_t + + + ) + +294  + #IO_REG_BASE_ATTR + + + ) + +295  + #IO_REG_MASK_ATTR + + + ) + +297  +le + +__ibu__ +(( +ways_le +) +IO_REG_TYPE + + $deRd +(vީ +IO_REG_TYPE + * +ba +, IO_REG_TYPE +p +) { + +298 +IO_REG_TYPE + +t +; + +299 i( +SS_GPIO + = + `GPIO_TYPE +( +p +)) { + +300 +t + = + `READ_ARC_REG +((( +IO_REG_TYPE +) +ba + + +EXT_PORT_OFFSET_SS +)); + +302 +t + = + `MMIO_REG_VAL_FROM_BASE +(( +IO_REG_TYPE +) +ba +, +EXT_PORT_OFFSET_SOC +); + +304  (( +t + >> + `GPIO_ID +( +p +)) & 0x01); + +305 + } +} + +307  +le + +__ibu__ +(( +ways_le +) + $deModeIut +(vީ +IO_REG_TYPE + * +ba +, IO_REG_TYPE +p +) { + +308 i( +SS_GPIO + = + `GPIO_TYPE +( +p +)) { + +309 + `WRITE_ARC_REG +( + `READ_ARC_REG +(((( +IO_REG_TYPE +) +ba ++ +DIR_OFFSET_SS +)& ~(0x01 << + `GPIO_ID +( +p +)), ((IO_REG_TYPE)(base) + DIR_OFFSET_SS)); + +311 + `MMIO_REG_VAL_FROM_BASE +(( +IO_REG_TYPE +) +ba +, +DIR_OFFSET_SOC +&~(0x01 << + `GPIO_ID +( +p +)); + +313 + } +} + +315  +le + +__ibu__ +(( +ways_le +) + $deModeOuut +(vީ +IO_REG_TYPE + * +ba +, IO_REG_TYPE +p +) { + +316 i( +SS_GPIO + = + `GPIO_TYPE +( +p +)) { + +317 + `WRITE_ARC_REG +( + `READ_ARC_REG +((( +IO_REG_TYPE +)( +ba ++ +DIR_OFFSET_SS +)| (0x01 << + `GPIO_ID +( +p +)), ((IO_REG_TYPE)(base) + DIR_OFFSET_SS)); + +319 + `MMIO_REG_VAL_FROM_BASE +(( +IO_REG_TYPE +) +ba +, +DIR_OFFSET_SOC +|(0x01 << + `GPIO_ID +( +p +)); + +321 + } +} + +323  +le + +__ibu__ +(( +ways_le +) + $deWreLow +(vީ +IO_REG_TYPE + * +ba +, IO_REG_TYPE +p +) { + +324 i( +SS_GPIO + = + `GPIO_TYPE +( +p +)) { + +325 + `WRITE_ARC_REG +( + `READ_ARC_REG +( +ba +& ~(0x01 << + `GPIO_ID +( +p +)), base); + +327 + `MMIO_REG_VAL +( +ba +&~(0x01 << + `GPIO_ID +( +p +)); + +329 + } +} + +331  +le + +__ibu__ +(( +ways_le +) + $deWreHigh +(vީ +IO_REG_TYPE + * +ba +, IO_REG_TYPE +p +) { + +332 i( +SS_GPIO + = + `GPIO_TYPE +( +p +)) { + +333 + `WRITE_ARC_REG +( + `READ_ARC_REG +( +ba +| (0x01 << + `GPIO_ID +( +p +)), base); + +335 + `MMIO_REG_VAL +( +ba +|(0x01 << + `GPIO_ID +( +p +)); + +337 + } +} + +339  + #DIRECT_READ +( +ba +, +p + + `deRd +(ba,) + + ) + +340  + #DIRECT_MODE_INPUT +( +ba +, +p + + `deModeIut +(ba,) + + ) + +341  + #DIRECT_MODE_OUTPUT +( +ba +, +p + + `deModeOuut +(ba,) + + ) + +342  + #DIRECT_WRITE_LOW +( +ba +, +p + + `deWreLow +(ba,) + + ) + +343  + #DIRECT_WRITE_HIGH +( +ba +, +p + + `deWreHigh +(ba,) + + ) + +345 #i +defed +( +__riscv +) + +354  + #PIN_TO_BASEREG +( +p +(0) + + ) + +355  + #PIN_TO_BITMASK +( +p + + `digPToBMask +՚) + + ) + +356  + #IO_REG_TYPE + +ut32_t + + + ) + +357  + #IO_REG_BASE_ATTR + + + ) + +358  + #IO_REG_MASK_ATTR + + + ) + +360  +le + +__ibu__ +(( +ways_le +) +IO_REG_TYPE + + $deRd +( +IO_REG_TYPE + +mask +) { + +361  (( + `GPIO_REG +( +GPIO_INPUT_VAL +& +mask +) != 0) ? 1 : 0; + +362 + } +} + +364  +le + +__ibu__ +(( +ways_le +) + $deModeIut +( +IO_REG_TYPE + +mask +) { + +365 + `GPIO_REG +( +GPIO_OUTPUT_XOR +&~ +mask +; + +366 + `GPIO_REG +( +GPIO_IOF_EN +&~ +mask +; + +368 + `GPIO_REG +( +GPIO_INPUT_EN +| +mask +; + +369 + `GPIO_REG +( +GPIO_OUTPUT_EN +&~ +mask +; + +370 + } +} + +372  +le + +__ibu__ +(( +ways_le +) + $deModeOuut +( +IO_REG_TYPE + +mask +) { + +373 + `GPIO_REG +( +GPIO_OUTPUT_XOR +&~ +mask +; + +374 + `GPIO_REG +( +GPIO_IOF_EN +&~ +mask +; + +376 + `GPIO_REG +( +GPIO_INPUT_EN +&~ +mask +; + +377 + `GPIO_REG +( +GPIO_OUTPUT_EN +| +mask +; + +378 + } +} + +380  +le + +__ibu__ +(( +ways_le +) + $deWreLow +( +IO_REG_TYPE + +mask +) { + +381 + `GPIO_REG +( +GPIO_OUTPUT_VAL +&~ +mask +; + +382 + } +} + +384  +le + +__ibu__ +(( +ways_le +) + $deWreHigh +( +IO_REG_TYPE + +mask +) { + +385 + `GPIO_REG +( +GPIO_OUTPUT_VAL +| +mask +; + +386 + } +} + +388  + #DIRECT_READ +( +ba +, +mask + + `deRd +(mask) + + ) + +389  + #DIRECT_WRITE_LOW +( +ba +, +mask + + `deWreLow +(mask) + + ) + +390  + #DIRECT_WRITE_HIGH +( +ba +, +mask + + `deWreHigh +(mask) + + ) + +391  + #DIRECT_MODE_INPUT +( +ba +, +mask + + `deModeIut +(mask) + + ) + +392  + #DIRECT_MODE_OUTPUT +( +ba +, +mask + + `deModeOuut +(mask) + + ) + +395  + #PIN_TO_BASEREG +( +p +(0) + + ) + +396  + #PIN_TO_BITMASK +( +p +՚) + + ) + +397  + #IO_REG_TYPE +  + + ) + +398  + #IO_REG_BASE_ATTR + + + ) + +399  + #IO_REG_MASK_ATTR + + + ) + +400  + #DIRECT_READ +( +ba +, +p + + `digRd +՚) + + ) + +401  + #DIRECT_WRITE_LOW +( +ba +, +p + + `digWre +՚, +LOW +) + + ) + +402  + #DIRECT_WRITE_HIGH +( +ba +, +p + + `digWre +՚, +HIGH +) + + ) + +403  + #DIRECT_MODE_INPUT +( +ba +, +p + + `pMode +՚, +INPUT +) + + ) + +404  + #DIRECT_MODE_OUTPUT +( +ba +, +p + + `pMode +՚, +OUTPUT +) + + ) + + @lib/OneWire/OneWire_direct_regtype.h + +1 #ide +OWe_De_RegTy_h + + +2  + #OWe_De_RegTy_h + + + ) + +4  + ~ + +8 #i +defed +( +__AVR__ +) + +9  + #IO_REG_TYPE + +ut8_t + + + ) + +11 #i +defed +( +__MK20DX128__ +|| defed( +__MK20DX256__ +|| defed( +__MK66FX1M0__ +|| defed( +__MK64FX512__ +) + +12  + #IO_REG_TYPE + +ut8_t + + + ) + +14 #i +defed +( +__IMXRT1052__ +|| defed( +__IMXRT1062__ +) + +15  + #IO_REG_TYPE + +ut32_t + + + ) + +17 #i +defed +( +__MKL26Z64__ +) + +18  + #IO_REG_TYPE + +ut8_t + + + ) + +20 #i +defed +( +__SAM3X8E__ +|| defed( +__SAM3A8C__ +|| defed( +__SAM3A4C__ +) + +21  + #IO_REG_TYPE + +ut32_t + + + ) + +23 #i +defed +( +__PIC32MX__ +) + +24  + #IO_REG_TYPE + +ut32_t + + + ) + +26 #i +defed +( +ARDUINO_ARCH_ESP8266 +) + +27  + #IO_REG_TYPE + +ut32_t + + + ) + +29 #i +defed +( +ARDUINO_ARCH_ESP32 +) + +30  + #IO_REG_TYPE + +ut32_t + + + ) + +31  + #IO_REG_MASK_ATTR + + + ) + +33 #i +defed +( +ARDUINO_ARCH_STM32 +) + +34  + #IO_REG_TYPE + +ut32_t + + + ) + +36 #i +defed +( +__SAMD21G18A__ +) + +37  + #IO_REG_TYPE + +ut32_t + + + ) + +39 #i +defed +( +__ASR6501__ +) + +40  + #IO_REG_TYPE + +ut32_t + + + ) + +42 #i +defed +( +RBL_NRF51822 +) + +43  + #IO_REG_TYPE + +ut32_t + + + ) + +45 #i +defed +( +__c__ +) + +46  + #IO_REG_TYPE + +ut32_t + + + ) + +48 #i +defed +( +__riscv +) + +49  + #IO_REG_TYPE + +ut32_t + + + ) + +52  + #IO_REG_TYPE +  + + ) + + @lib/framework/APSettingsService.cpp + +1  + ~ + +3 + gAPStgsSvi +:: + $APStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +, +SecuryMag +* +curyMag +) : + +4 + `_hpEndpot +( +APStgs +:: +ad +, APStgs:: +upde +, +this +, +rv +, +AP_SETTINGS_SERVICE_PATH +, +curyMag +), + +5 + `_fsPsi +( +APStgs +:: +ad +, APStgs:: +upde +, +this +, +fs +, +AP_SETTINGS_FILE +), + +6 + `_dnsSv +( +nuαr +), + +7 + `_ϡMaged +(0), + +8 + $_cfiguAp +( +l +) { + +9 + `addUpdeHdr +([&](cڡ +Sg +& +igId +{ + `cfiguAP +(); }, +l +); + +10 + } +} + +12  + gAPStgsSvi +:: + $beg +() { + +13 +_fsPsi +. + `adFromFS +(); + +14 + `cfiguAP +(); + +15 + } +} + +17  + gAPStgsSvi +:: + $cfiguAP +() { + +18 +_ϡMaged + = +uuid +:: + `g_uime +(- +MANAGE_NETWORK_DELAY +; + +19 +_cfiguAp + = +ue +; + +20 + } +} + +22  + gAPStgsSvi +:: + $lo +() { + +23  +cutMlis + = +uuid +:: + `g_uime +(); + +24  +mageEpd + = ()( +cutMlis + - +_ϡMaged +); + +25 i( +mageEpd + > +MANAGE_NETWORK_DELAY +) { + +26 +_ϡMaged + = +cutMlis +; + +27 + `mageAP +(); + +29 + `hdDNS +(); + +30 + } +} + +32  + gAPStgsSvi +:: + $mageAP +() { + +33 +WiFiMode_t + +cutWiFiMode + = +WiFi +. + `gMode +(); + +34 i( +_e +. +ovisiMode + = +AP_MODE_ALWAYS + || + +35 ( +_e +. +ovisiMode + = +AP_MODE_DISCONNECTED + && +WiFi +. + `us +(! +WL_CONNECTED +)) { + +36 i( +_cfiguAp + || +cutWiFiMode + = +WIFI_OFF + || cutWiFiMod= +WIFI_STA +) { + +37 + `tAP +(); + +39 } i(( +cutWiFiMode + = +WIFI_AP + || cutWiFiMod= +WIFI_AP_STA +) && + +40 ( +_cfiguAp + || ! +WiFi +. + `soAPgStiNum +())) { + +41 + `AP +(); + +43 +_cfiguAp + = +l +; + +44 + } +} + +46  + gAPStgsSvi +:: + $tAP +() { + +48 +WiFi +. + `soAPCfig +( +_e +. +lolIP +, _e. +gewayIP +, _e. +subtMask +); + +49 +WiFi +. + `soAP +( +_e +. +ssid +. + `c_r +(), _e. +sswd +.c_str()); + +50 i(! +_dnsSv +) { + +51 +IPAddss + +Ip + = +WiFi +. + `soAPIP +(); + +54 +_dnsSv + = +w + +DNSSv +; + +55 +_dnsSv +-> + `t +( +DNS_PORT +, "*", +Ip +); + +57 + } +} + +59  + gAPStgsSvi +:: + $AP +() { + +60 i( +_dnsSv +) { + +62 +_dnsSv +-> + ` +(); + +63 +de + +_dnsSv +; + +64 +_dnsSv + = +nuαr +; + +67 +WiFi +. + `soAPdisc +( +ue +); + +68 + } +} + +70  + gAPStgsSvi +:: + $hdDNS +() { + +71 i( +_dnsSv +) { + +72 +_dnsSv +-> + `ossNextReque +(); + +74 + } +} + +76 +APNwkStus + + gAPStgsSvi +:: + $gAPNwkStus +() { + +77 +WiFiMode_t + +cutWiFiMode + = +WiFi +. + `gMode +(); + +78 +bo + +Aive + = +cutWiFiMode + = +WIFI_AP + || cutWiFiMod= +WIFI_AP_STA +; + +79 i( +Aive + && +_e +. +ovisiMode + ! +AP_MODE_ALWAYS + && +WiFi +. + `us +(= +WL_CONNECTED +) { + +80  +APNwkStus +:: +LINGERING +; + +82  +Aive + ? +APNwkStus +:: +ACTIVE + : APNwkStus:: +INACTIVE +; + +83 + } +} + + @lib/framework/APSettingsService.h + +1 #ide +APStgsCfig_h + + +2  + #APStgsCfig_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +13  + #MANAGE_NETWORK_DELAY + 10000 + + ) + +15  + #AP_MODE_ALWAYS + 0 + + ) + +16  + #AP_MODE_DISCONNECTED + 1 + + ) + +17  + #AP_MODE_NEVER + 2 + + ) + +19  + #DNS_PORT + 53 + + ) + +21 #ide +FACTORY_AP_PROVISION_MODE + + +22  + #FACTORY_AP_PROVISION_MODE + +AP_MODE_DISCONNECTED + + + ) + +25 #ide +FACTORY_AP_SSID + + +26  + #FACTORY_AP_SSID + "ems-e" + + ) + +29 #ide +FACTORY_AP_PASSWORD + + +30  + #FACTORY_AP_PASSWORD + "e-a" + + ) + +33 #ide +FACTORY_AP_LOCAL_IP + + +34  + #FACTORY_AP_LOCAL_IP + "192.168.4.1" + + ) + +37 #ide +FACTORY_AP_GATEWAY_IP + + +38  + #FACTORY_AP_GATEWAY_IP + "192.168.4.1" + + ) + +41 #ide +FACTORY_AP_SUBNET_MASK + + +42  + #FACTORY_AP_SUBNET_MASK + "255.255.255.0" + + ) + +45  + #AP_SETTINGS_FILE + "/cfig/Stgs.js" + + ) + +46  + #AP_SETTINGS_SERVICE_PATH + "//Stgs" + + ) + +48 + eAPNwkStus + { + mACTIVE + = 0, + mINACTIVE +, + mLINGERING + }; + +50 as + cAPStgs + { + +51 + mpublic +: + +52 +ut8_t + +ovisiMode +; + +53 +Sg + + mssid +; + +54 +Sg + + msswd +; + +55 +IPAddss + + mlolIP +; + +56 +IPAddss + + mgewayIP +; + +57 +IPAddss + + msubtMask +; + +59 +bo + + mݔ +==(cڡ +APStgs +& +gs +) const { + +60  +ovisiMode + = +gs +.ovisiMod&& +ssid + =𣉚gs.ssid && +sswd + == settings.password && + +61 +lolIP + = +gs +.lolIP && +gewayIP + =𣉚gs.gewayIP && +subtMask + == settings.subnetMask; + +64  + $ad +( +APStgs +& +gs +, +JsObje +& +ro +) { + +65 +ro +["ovisi_mode"] = +gs +. +ovisiMode +; + +66 +ro +["ssid"] = +gs +. +ssid +; + +67 +ro +["sswd"] = +gs +. +sswd +; + +68 +ro +["lol_"] = +gs +. +lolIP +. + `toSg +(); + +69 +ro +["geway_"] = +gs +. +gewayIP +. + `toSg +(); + +70 +ro +["subt_mask"] = +gs +. +subtMask +. + `toSg +(); + +71 + } +} + +73  +SUpdeResu + + $upde +( +JsObje +& +ro +, +APStgs +& +gs +) { + +74 +APStgs + +wStgs + = {}; + +75 +wStgs +. +ovisiMode + = +ro +["ovisi_mode"] | +FACTORY_AP_PROVISION_MODE +; + +76  +gs +. +ovisiMode +) { + +77  +AP_MODE_ALWAYS +: + +78  +AP_MODE_DISCONNECTED +: + +79  +AP_MODE_NEVER +: + +82 +wStgs +. +ovisiMode + = +AP_MODE_ALWAYS +; + +84 +wStgs +. +ssid + = +ro +["ssid"] | +FACTORY_AP_SSID +; + +85 +wStgs +. +sswd + = +ro +["sswd"] | +FACTORY_AP_PASSWORD +; + +87 +JsUts +:: + `adIP +( +ro +, "lol_", +wStgs +. +lolIP +, +FACTORY_AP_LOCAL_IP +); + +88 +JsUts +:: + `adIP +( +ro +, "geway_", +wStgs +. +gewayIP +, +FACTORY_AP_GATEWAY_IP +); + +89 +JsUts +:: + `adIP +( +ro +, "subt_mask", +wStgs +. +subtMask +, +FACTORY_AP_SUBNET_MASK +); + +91 i( +wStgs + = +gs +) { + +92  +SUpdeResu +:: +UNCHANGED +; + +94 +gs + = +wStgs +; + +95  +SUpdeResu +:: +CHANGED +; + +96 + } +} + +99 +ass + + gAPStgsSvi + : +public + +SfulSvi +< +APStgs +> { + +100 +public +: + +101 +APStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +, +SecuryMag +* +curyMag +); + +103  +beg +(); + +104  +lo +(); + +105 +APNwkStus + +gAPNwkStus +(); + +107 + give +: + +108 +HpEndpot +< +APStgs +> +_hpEndpot +; + +109 + gFSPsi +< + gAPStgs +> + g_fsPsi +; + +112 +DNSSv +* + g_dnsSv +; + +115 vީ + g_ϡMaged +; + +116 vީ +boޗn + + g_cfiguAp +; + +118  +cfiguAP +(); + +119  +mageAP +(); + +120  +tAP +(); + +121  +AP +(); + +122  +hdDNS +(); + + @lib/framework/APStatus.cpp + +1  + ~ + +3 + gAPStus +:: + $APStus +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +, +APStgsSvi +* +StgsSvi +) : + +4 + $_StgsSvi +( +StgsSvi +) { + +5 +rv +-> + ` +( +AP_STATUS_SERVICE_PATH +, + +6 +HTTP_GET +, + +7 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +APStus +:: +Stus +, +this +, std:: +ahds +:: +_1 +), + +8 +AuthtitiPdis +:: +IS_AUTHENTICATED +)); + +9 + } +} + +11  + gAPStus +:: + $Stus +( +AsyncWebSvReque +* +que +) { + +12 +AsyncJsReڣ +* +ڣ + = +w + + `AsyncJsReڣ +( +l +, +MAX_AP_STATUS_SIZE +); + +13 +JsObje + +ro + = +ڣ +-> + `gRo +(); + +15 +ro +["us"] = +_StgsSvi +-> + `gAPNwkStus +(); + +16 +ro +["_addss"] = +WiFi +. + `soAPIP +(). + `toSg +(); + +17 +ro +["mac_addss"] = +WiFi +. + `soAPmacAddss +(); + +18 +ro +["i_num"] = +WiFi +. + `soAPgStiNum +(); + +20 +ڣ +-> + `tLgth +(); + +21 +que +-> + `nd +( +ڣ +); + +22 + } +} + + @lib/framework/APStatus.h + +1 #ide +APStus_h + + +2  + #APStus_h + + + ) + +4 #ifde +ESP32 + + +5  + ~ + +6  + ~ + +7 #i +defed +( +ESP8266 +) + +8  + ~ + +9  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +16  + ~ + +17  + ~ + +19  + #MAX_AP_STATUS_SIZE + 1024 + + ) + +20  + #AP_STATUS_SERVICE_PATH + "//Stus" + + ) + +22 as + cAPStus + { + +23 + mpublic +: + +24 +APStus +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +, +APStgsSvi +* +StgsSvi +); + +26 + mive +: + +27 +APStgsSvi +* +_StgsSvi +; + +28  +Stus +( +AsyncWebSvReque +* +que +); + + @lib/framework/ArduinoJsonJWT.cpp + +1  + ~"ArduoJsJWT.h +" + +3 + gArduoJsJWT +:: + $ArduoJsJWT +( +Sg + + +: + $_ +( + +) { + +4 + } +} + +6  +ArduoJsJWT +:: + $tSe +( +Sg + + +) { + +7 +_ + = + +; + +8 + } +} + +10 +Sg + + gArduoJsJWT +:: + $gSe +() { + +11  +_ +; + +12 + } +} + +21 +Sg + + gArduoJsJWT +:: + $sign +( +Sg +& +yld +) { + +22  +hmacResu +[32]; + +24 #ifde +ESP32 + + +25 +mbeds_md_cڋxt_t + +x +; + +26 +mbeds_md_ty_t + +md_ty + = +MBEDTLS_MD_SHA256 +; + +27 + `mbeds_md_ +(& +x +); + +28 + `mbeds_md_tup +(& +x +, + `mbeds_md_fo_om_ty +( +md_ty +), 1); + +29 + `mbeds_md_hmac_ts +(& +x +, (*) +_ +. + `c_r +(), _. + `ngth +()); + +30 + `mbeds_md_hmac_upde +(& +x +, (*) +yld +. + `c_r +(),ayld. + `ngth +()); + +31 + `mbeds_md_hmac_fish +(& +x +, +hmacResu +); + +32 + `mbeds_md_ +(& +x +); + +33 #i + `defed +( +ESP8266 +) + +34 +br_hmac_key_cڋxt + +keyCtx +; + +35 + `br_hmac_key_ +(& +keyCtx +, & +br_sha256_vb +, +_ +. + `c_r +(), _. + `ngth +()); + +36 +br_hmac_cڋxt + +hmacCtx +; + +37 + `br_hmac_ +(& +hmacCtx +, & +keyCtx +, 0); + +38 + `br_hmac_upde +(& +hmacCtx +, +yld +. + `c_r +(),ayld. + `ngth +()); + +39 + `br_hmac_out +(& +hmacCtx +, +hmacResu +); + +42  + `code +((*) +hmacResu +, 32); + +43 + } +} + +45 +Sg + + gArduoJsJWT +:: + $budJWT +( +JsObje +& +yld +) { + +47 +Sg + +jwt +; + +48 + `rlizeJs +( +yld +, +jwt +); + +49 +jwt + = + `code +(jwt. + `c_r +(), jwt. + `ngth +()); + +52 +jwt + = +JWT_HEADER + + '.' + jwt; + +55 +jwt + +'.' + + `sign +(jwt); + +57  +jwt +; + +58 + } +} + +60  + gArduoJsJWT +:: + $rJWT +( +Sg + +jwt +, +JsDocumt +& +jsDocumt +) { + +62 +jsDocumt +. + `r +(); + +65 i(! +jwt +. + `tsWh +( +JWT_HEADER +|| jwt. + `dexOf +('.'! +JWT_HEADER_SIZE +) { + +70  +sigtuDimIndex + = +jwt +. + `ϡIndexOf +('.'); + +71 i( +sigtuDimIndex + = +JWT_HEADER_SIZE +) { + +76 +Sg + +sigtu + = +jwt +. + `subrg +( +sigtuDimIndex + + 1); + +77 +jwt + = jwt. + `subrg +(0, +sigtuDimIndex +); + +78 i( + `sign +( +jwt +! +sigtu +) { + +83 +jwt + = jwt. + `subrg +( +JWT_HEADER_SIZE + + 1); + +84 +jwt + = + `decode +(jwt); + +87 +DerliziE + +r + = + `derlizeJs +( +jsDocumt +, +jwt +); + +88 i( +r + ! +DerliziE +:: +Ok + || ! +jsDocumt +. +is +< +JsObje +>()) { + +89 +jsDocumt +. + `r +(); + +91 + } +} + +93 +Sg + + gArduoJsJWT +:: + $code +(cڡ * +cr +,  +putL +) { + +95 +ba64_codee + +_e +; + +96 #ifde +ESP32 + + +97 + `ba64__codee +(& +_e +); + +98 +size_t + +codedLgth + = + `ba64_code_exed_n +( +putL +) + 1; + +99 #i + `defed +( +ESP8266 +) + +100 + `ba64__codee_newles +(& +_e +); + +101 +size_t + +codedLgth + = + `ba64_code_exed_n_newles +( +putL +) + 1; + +104 * +bufr + = (*) + `mloc +( +codedLgth + * ()); + +105 i( +bufr + = +nuαr +) { + +110  +n + = + `ba64_code_block +( +cr +, +putL +, & +bufr +[0], & +_e +); + +111 +n + + + `ba64_code_blockd +(& +bufr +[n], & +_e +); + +112 +bufr +[ +n +] = 0; + +115 +Sg + +vue + = + `Sg +( +bufr +); + +116 + ` +( +bufr +); + +117 +bufr + = +nuαr +; + +120  +vue +. + `ngth +(> 0 && vue. + `chAt +(value.length() - 1) == '=') { + +121 +vue +. + `move +(vue. + `ngth +() - 1); + +123 +vue +. + `a +('+', '-'); + +124 +vue +. + `a +('/', '_'); + +127  +vue +; + +128 + } +} + +130 +Sg + + gArduoJsJWT +:: + $decode +( +Sg + +vue +) { + +132 +vue +. + `a +('-', '+'); + +133 +vue +. + `a +('_', '/'); + +136  +bufr +[ + `ba64_decode_exed_n +( +vue +. + `ngth +()) + 1]; + +139  +n + = + `ba64_decode_chs +( +vue +. + `c_r +(), vue. + `ngth +(), & +bufr +[0]); + +140 +bufr +[ +n +] = 0; + +143  + `Sg +( +bufr +); + +144 + } +} + + @lib/framework/ArduinoJsonJWT.h + +1 #ide +ArduoJsJWT_H + + +2  + #ArduoJsJWT_H + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +7  + ~ + +9 #ifde +ESP32 + + +10  + ~ + +11 #i +defed +( +ESP8266 +) + +12  + ~ + +15 as + cArduoJsJWT + { + +16 + mive +: + +17 +Sg + +_ +; + +19 cڡ +Sg + + mJWT_HEADER + = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"; + +20 cڡ  + mJWT_HEADER_SIZE + = +JWT_HEADER +. +ngth +(); + +22 +Sg + +sign +(Sg& +vue +); + +24  +Sg + +code +(cڡ * +cr +,  +n +); + +25  +Sg + +decode +(Sg +vue +); + +27 + mpublic +: + +28 +ArduoJsJWT +( +Sg + + +); + +30  +tSe +( +Sg + + +); + +31 +Sg + +gSe +(); + +33 +Sg + +budJWT +( +JsObje +& +yld +); + +34  +rJWT +( +Sg + +jwt +, +JsDocumt +& +jsDocumt +); + + @lib/framework/AuthenticationService.cpp + +1  + ~ + +3 #i +FT_ENABLED +( +FT_SECURITY +) + +5 + gAuthtitiSvi +:: + $AuthtitiSvi +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +) : + +6 + `_curyMag +( +curyMag +), + +7 + `_signInHdr +( +SIGN_IN_PATH +, + +8 +d +:: + $bd +(& +AuthtitiSvi +:: +signIn +, +this +, +d +:: +ahds +:: +_1 +, std::ahds:: +_2 +)) { + +9 +rv +-> + ` +( +VERIFY_AUTHORIZATION_PATH +, + +10 +HTTP_GET +, + +11 +d +:: + `bd +(& +AuthtitiSvi +:: +vifyAuthizi +, +this +, std:: +ahds +:: +_1 +)); + +12 +_signInHdr +. + `tMhod +( +HTTP_POST +); + +13 +_signInHdr +. + `tMaxCڋLgth +( +MAX_AUTHENTICATION_SIZE +); + +14 +rv +-> + `addHdr +(& +_signInHdr +); + +15 + } +} + +20  + gAuthtitiSvi +:: + $vifyAuthizi +( +AsyncWebSvReque +* +que +) { + +21 +Authtiti + +authtiti + = +_curyMag +-> + `authtiReque +( +que +); + +22 +que +-> + `nd +( +authtiti +. +authtid + ? 200 : 401); + +23 + } +} + +29  + gAuthtitiSvi +:: + $signIn +( +AsyncWebSvReque +* +que +, +JsV +& +js +) { + +30 i( +js +. +is +< +JsObje +>()) { + +31 +Sg + +uame + = +js +["username"]; + +32 +Sg + +sswd + = +js +["password"]; + +33 +Authtiti + +authtiti + = +_curyMag +-> + `authti +( +uame +, +sswd +); + +34 i( +authtiti +. +authtid +) { + +35 +Ur +* +ur + = +authtiti +.user; + +36 +AsyncJsReڣ +* +ڣ + = +w + + `AsyncJsReڣ +( +l +, +MAX_AUTHENTICATION_SIZE +); + +37 +JsObje + +jsObje + = +ڣ +-> + `gRo +(); + +38 +jsObje +["acss_tok"] = +_curyMag +-> + `geJWT +( +ur +); + +39 +ڣ +-> + `tLgth +(); + +40 +que +-> + `nd +( +ڣ +); + +44 +AsyncWebSvReڣ +* +ڣ + = +que +-> + `begReڣ +(401); + +45 +que +-> + `nd +( +ڣ +); + +46 + } +} + + @lib/framework/AuthenticationService.h + +1 #ide +AuthtitiSvi_H_ + + +2  + #AuthtitiSvi_H_ + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +7  + ~ + +9  + #VERIFY_AUTHORIZATION_PATH + "//vifyAuthizi" + + ) + +10  + #SIGN_IN_PATH + "//signIn" + + ) + +12  + #MAX_AUTHENTICATION_SIZE + 256 + + ) + +14 #i +FT_ENABLED +( +FT_SECURITY +) + +16 as + cAuthtitiSvi + { + +17 + mpublic +: + +18 +AuthtitiSvi +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +); + +20 + mive +: + +21 +SecuryMag +* +_curyMag +; + +22 +AsyncClbackJsWebHdr + + m_signInHdr +; + +25  +signIn +( +AsyncWebSvReque +* +que +, +JsV +& +js +); + +26  +vifyAuthizi +( +AsyncWebSvReque +* +que +); + + @lib/framework/ESP8266React.cpp + +1  + ~ + +3 + gESP8266R +:: + $ESP8266R +( +AsyncWebSv + * +rv +, +FS + * +fs +) + +4 : + `_uSvi +( +rv +) + +5 , + `_curyStgsSvi +( +rv +, +fs +) + +6 , + `_wifiStgsSvi +( +rv +, +fs +, & +_curyStgsSvi +) + +7 , + `_wifiS” +( +rv +, & +_curyStgsSvi +) + +8 , + `_wifiStus +( +rv +, & +_curyStgsSvi +) + +9 , + `_StgsSvi +( +rv +, +fs +, & +_curyStgsSvi +) + +10 , + `_Stus +( +rv +, & +_curyStgsSvi +, & +_StgsSvi +) + +12 #i + `FT_ENABLED +( +FT_NTP +) + +13 + `_pStgsSvi +( +rv +, +fs +, & +_curyStgsSvi +) + +14 , + `_pStus +( +rv +, & +_curyStgsSvi +) + +17 #i + `FT_ENABLED +( +FT_OTA +) + +18 + `_aStgsSvi +( +rv +, +fs +, & +_curyStgsSvi +) + +21 #i + `FT_ENABLED +( +FT_UPLOAD_FIRMWARE +) + +22 + `_udFmweSvi +( +rv +, & +_curyStgsSvi +) + +25 #i + `FT_ENABLED +( +FT_MQTT +) + +26 + `_mqStgsSvi +( +rv +, +fs +, & +_curyStgsSvi +) + +27 , + `_mqStus +( +rv +, & +_mqStgsSvi +, & +_curyStgsSvi +) + +30 #i + `FT_ENABLED +( +FT_SECURITY +) + +31 + `_authtitiSvi +( +rv +, & +_curyStgsSvi +) + +34 + `_tSvi +( +rv +, & +_curyStgsSvi +) + +35 , + `_yRetSvi +( +rv +, +fs +, & +_curyStgsSvi +) + +36 , + $_syemStus +( +rv +, & +_curyStgsSvi +) { + +37 #ifde +PROGMEM_WWW + + +39 +WWWDa +:: + `giRous +([ +rv +, +this +](cڡ +Sg + & +uri +, cڡ Sg & +cڋTy +, cڡ +ut8_t + * +cڋ +, +size_t + +n +) { + +40 +ArRequeHdrFuni + +queHdr + = [ +cڋTy +, +cڋ +, +n +]( +AsyncWebSvReque + * +que +) { + +41 +AsyncWebSvReڣ + * +ڣ + = +que +-> + `begReڣ_P +(200, +cڋTy +, +cڋ +, +n +); + +42 +ڣ +-> + `addHd +("Content-Encoding", "gzip"); + +43 +que +-> + `nd +( +ڣ +); + +45 +rv +-> + ` +( +uri +. + `c_r +(), +HTTP_GET +, +queHdr +); + +48 i( +uri +. + `equs +("/index.html")) { + +49 +rv +-> + `NFound +([ +queHdr +]( +AsyncWebSvReque + * +que +) { + +50 i( +que +-> + `mhod +(= +HTTP_GET +) { + +51 + `queHdr +( +que +); + +52 } i( +que +-> + `mhod +(= +HTTP_OPTIONS +) { + +53 +que +-> + `nd +(200); + +55 +que +-> + `nd +(404); + +62 +rv +-> + `rveStic +("/js/", * +fs +, "/www/js/"); + +63 +rv +-> + `rveStic +("/css/", * +fs +, "/www/css/"); + +64 +rv +-> + `rveStic +("/fts/", * +fs +, "/www/fonts/"); + +65 +rv +-> + `rveStic +("/p/", * +fs +, "/www/app/"); + +66 +rv +-> + `rveStic +("/vic.ico", * +fs +, "/www/favicon.ico"); + +69 +rv +-> + `NFound +([]( +AsyncWebSvReque + * +que +) { + +70 i( +que +-> + `mhod +(= +HTTP_GET +) { + +71 #ifde +ESP32 + + +72 +que +-> + `nd +( +SPIFFS +, "/www/index.html"); + +74 +que +-> + `nd +( +LeFS +, "/www/index.html"); + +77 } i( +que +-> + `mhod +(= +HTTP_OPTIONS +) { + +78 +que +-> + `nd +(200); + +80 +que +-> + `nd +(404); + +86 #i + `defed +( +ENABLE_CORS +) + +87 +DeuHds +:: + `In +(). + `addHd +("Acss-Cڌ-Aow-Orig", +CORS_ORIGIN +); + +88 +DeuHds +:: + `In +(). + `addHd +("Access-Control-Allow-Headers", "Accept, Content-Type, Authorization"); + +89 +DeuHds +:: + `In +(). + `addHd +("Access-Control-Allow-Credentials", "true"); + +91 + } +} + +93  + gESP8266R +:: + $beg +() { + +94 +_wifiStgsSvi +. + `beg +(); + +95 +_StgsSvi +. + `beg +(); + +96 #i + `FT_ENABLED +( +FT_NTP +) + +97 +_pStgsSvi +. + `beg +(); + +99 #i + `FT_ENABLED +( +FT_OTA +) + +100 +_aStgsSvi +. + `beg +(); + +102 #i + `FT_ENABLED +( +FT_MQTT +) + +103 +_mqStgsSvi +. + `beg +(); + +105 #i + `FT_ENABLED +( +FT_SECURITY +) + +106 +_curyStgsSvi +. + `beg +(); + +108 + } +} + +110  + gESP8266R +:: + $lo +() { + +111 +_wifiStgsSvi +. + `lo +(); + +112 +_StgsSvi +. + `lo +(); + +113 #i + `FT_ENABLED +( +FT_OTA +) + +114 +_aStgsSvi +. + `lo +(); + +116 #i + `FT_ENABLED +( +FT_MQTT +) + +117 +_mqStgsSvi +. + `lo +(); + +119 + } +} + + @lib/framework/ESP8266React.h + +1 #ide +ESP8266R_h + + +2  + #ESP8266R_h + + + ) + +4  + ~ + +6 #ifde +ESP32 + + +7  + ~ + +8  + ~ + +9 #i +defed +( +ESP8266 +) + +10  + ~ + +11  + ~ + +14  + ~ + +15  + ~ + +16  + ~ + +17  + ~ + +18  + ~ + +19  + ~ + +20  + ~ + +21  + ~ + +22  + ~ + +23  + ~ + +24  + ~ + +25  + ~ + +26  + ~ + +27  + ~ + +28  + ~ + +29  + ~ + +30  + ~ + +32 #ifde +PROGMEM_WWW + + +33  + ~ + +36 as + cESP8266R + { + +37 + mpublic +: + +38 +ESP8266R +( +AsyncWebSv +* +rv +, +FS +* +fs +); + +40  +beg +(); + +41  +lo +(); + +43 +SecuryMag +* + $gSecuryMag +() { + +44  & +_curyStgsSvi +; + +47 #i + $FT_ENABLED +( +FT_SECURITY +) + +48 +SfulSvi +< +SecuryStgs +>* + $gSecuryStgsSvi +() { + +49  & +_curyStgsSvi +; + +50 + } +} + +53 + gSfulSvi +< + gWiFiStgs +>* + $gWiFiStgsSvi +() { + +54  & +_wifiStgsSvi +; + +55 + } +} + +57 + gSfulSvi +< + gAPStgs +>* + $gAPStgsSvi +() { + +58  & +_StgsSvi +; + +59 + } +} + +61 #i + $FT_ENABLED +( +FT_NTP +) + +62 +SfulSvi +< +NTPStgs +>* + $gNTPStgsSvi +() { + +63  & +_pStgsSvi +; + +64 + } +} + +67 #i + $FT_ENABLED +( +FT_OTA +) + +68 +SfulSvi +< +OTAStgs +>* + $gOTAStgsSvi +() { + +69  & +_aStgsSvi +; + +70 + } +} + +73 #i + $FT_ENABLED +( +FT_MQTT +) + +74 +SfulSvi +< +MqStgs +>* + $gMqStgsSvi +() { + +75  & +_mqStgsSvi +; + +76 + } +} + +78 +AsyncMqCl +* + $gMqCl +() { + +79  +_mqStgsSvi +. + `gMqCl +(); + +80 + } +} + +83  + $yRet +() { + +84 +_yRetSvi +. + `yRet +(); + +85 + } +} + +87 + give +: + +88 +FtusSvi + +_uSvi +; + +89 +SecuryStgsSvi + + g_curyStgsSvi +; + +90 +WiFiStgsSvi + + g_wifiStgsSvi +; + +91 +WiFiS” + + g_wifiS” +; + +92 +WiFiStus + + g_wifiStus +; + +93 +APStgsSvi + + g_StgsSvi +; + +94 +APStus + + g_Stus +; + +95 #i + $FT_ENABLED +( +FT_NTP +) + +96 +NTPStgsSvi + +_pStgsSvi +; + +97 +NTPStus + +_pStus +; + +99 #i + $FT_ENABLED +( +FT_OTA +) + +100 +OTAStgsSvi + +_aStgsSvi +; + +102 #i + $FT_ENABLED +( +FT_UPLOAD_FIRMWARE +) + +103 +UdFmweSvi + +_udFmweSvi +; + +105 #i + $FT_ENABLED +( +FT_MQTT +) + +106 +MqStgsSvi + +_mqStgsSvi +; + +107 +MqStus + +_mqStus +; + +109 #i + $FT_ENABLED +( +FT_SECURITY +) + +110 +AuthtitiSvi + +_authtitiSvi +; + +112 +RetSvi + +_tSvi +; + +113 +FayRetSvi + +_yRetSvi +; + +114 +SyemStus + +_syemStus +; + +115 + } +}; + + @lib/framework/ESPUtils.h + +1 #ide +ESPUts_h + + +2  + #ESPUts_h + + + ) + +4  + ~ + +6 as + cESPUts + { + +7 + mpublic +: + +8  +Sg + +deuDeviVue +(Sg +efix + = "") { + +9 #ifde +ESP32 + + +10  +efix + + +Sg +(() +ESP +. +gEfuMac +(), +HEX +); + +11 #i +defed +( +ESP8266 +) + +12  + mefix + + +Sg +( +ESP +. +gChId +(), +HEX +); + + @lib/framework/FSPersistence.h + +1 #ide +FSPsi_h + + +2  + #FSPsi_h + + + ) + +4  + ~ + +5  + ~ + +7 + gme + < +ass + + gT +> + +8 as + cFSPsi + { + +9 + mpublic +: + +10 +FSPsi +( +JsSRd +< +T +> +eRd +, + +11 +JsSUpd +< +T +> +eUpd +, + +12 +SfulSvi +< +T +> * +efulSvi +, + +13 +FS + * +fs +, + +14 cڡ * +fePh +, + +15 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) + +16 : +_eRd +( +eRd +) + +17 , +_eUpd +( +eUpd +) + +18 , +_efulSvi +( +efulSvi +) + +19 , +_fs +( +fs +) + +20 , +_fePh +( +fePh +) + +21 , +_bufrSize +( +bufrSize +) + +22 , + $_updeHdrId +(0) { + +23 + `abUpdeHdr +(); + +26  + $adFromFS +() { + +27 +Fe + +gsFe + = +_fs +-> + `ݒ +( +_fePh +, "r"); + +29 i( +gsFe +) { + +30 +DymicJsDocumt + +jsDocumt + = + `DymicJsDocumt +( +_bufrSize +); + +31 +DerliziE + +r + = + `derlizeJs +( +jsDocumt +, +gsFe +); + +32 i( +r + = +DerliziE +:: +Ok + && +jsDocumt +. +is +< +JsObje +>()) { + +33 +JsObje + +jsObje + = +jsDocumt +. +as +(); + +40 +_efulSvi +-> + `updeWhoutPragi +( +jsObje +, +_eUpd +); + +41 +gsFe +. + `o +(); + +44 +gsFe +. + `o +(); + +49 + `yDeus +(); + +50 + } +} + +52 +bo + + $wreToFS +() { + +54 +DymicJsDocumt + +jsDocumt + = + `DymicJsDocumt +( +_bufrSize +); + +55 +JsObje + +jsObje + = +jsDocumt +. +to +(); + +56 +_efulSvi +-> + `ad +( +jsObje +, +_eRd +); + +59 +Fe + +gsFe + = +_fs +-> + `ݒ +( +_fePh +, "w"); + +62 i(! +gsFe +) { + +63  +l +; + +67 #i + `defed +( +EMSESP_DEBUG +) + +68 +Sl +. + `tf +("WrFe: %s: ", +_fePh +); + +69 + `rlizeJs +( +jsDocumt +, +Sl +); + +70 +Sl +. + `n +(); + +74 + `rlizeJs +( +jsDocumt +, +gsFe +); + +75 +gsFe +. + `o +(); + +76  +ue +; + +77 + } +} + +79  + $dibUpdeHdr +() { + +80 i( +_updeHdrId +) { + +81 +_efulSvi +-> + `moveUpdeHdr +( +_updeHdrId +); + +82 +_updeHdrId + = 0; + +84 + } +} + +86  + $abUpdeHdr +() { + +87 i(! +_updeHdrId +) { + +88 +_updeHdrId + = +_efulSvi +-> + `addUpdeHdr +([&](cڡ +Sg + & +igId +{ + `wreToFS +(); }); + +90 + } +} + +92 + give +: + +93 +JsSRd +< +T +> +_eRd +; + +94 + gJsSUpd +< + gT +> + g_eUpd +; + +95 + gSfulSvi +< + gT +> * + g_efulSvi +; + +96 +FS + * + g_fs +; + +97 cڡ * + g_fePh +; + +98 +size_t + + g_bufrSize +; + +99 +upde_hdr_id_t + + g_updeHdrId +; + +101 + geed +: + +104 +vtu +  + $yDeus +() { + +105 +DymicJsDocumt + +jsDocumt + = + `DymicJsDocumt +( +_bufrSize +); + +106 +JsObje + +jsObje + = +jsDocumt +. +as +(); + +107 +_efulSvi +-> + `updeWhoutPragi +( +jsObje +, +_eUpd +); + +108 + } +} + + @lib/framework/FactoryResetService.cpp + +1  + ~ + +3 +usg + +mea + + gd +:: +ahds +; + +5 + gFayRetSvi +:: + $FayRetSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +, +SecuryMag +* +curyMag +: + $fs +( +fs +) { + +6 +rv +-> + ` +( +FACTORY_RESET_SERVICE_PATH +, + +7 +HTTP_POST +, + +8 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +FayRetSvi +:: +hdReque +, +this +, +_1 +), + +9 +AuthtitiPdis +:: +IS_ADMIN +)); + +10 + } +} + +12  + gFayRetSvi +:: + $hdReque +( +AsyncWebSvReque +* +que +) { + +13 +que +-> + `Disc +( +d +:: + `bd +(& +FayRetSvi +:: +yRet +, +this +)); + +14 +que +-> + `nd +(200); + +15 + } +} + +20  + gFayRetSvi +:: + $yRet +() { + +21 #ifde +ESP32 + + +22 +Fe + +ro + = +fs +-> + `ݒ +( +FS_CONFIG_DIRECTORY +); + +23 +Fe + +fe +; + +24  +fe + = +ro +. + `ݒNextFe +()) { + +25 +fs +-> + `move +( +fe +. + `me +()); + +27 #i + `defed +( +ESP8266 +) + +28 +D + +cfigDey + = +fs +-> + `ݒD +( +FS_CONFIG_DIRECTORY +); + +29  +cfigDey +. + `xt +()) { + +30 +Sg + +th + = +FS_CONFIG_DIRECTORY +; + +31 +th +. + `ct +("/"); + +32 +th +. + `ct +( +cfigDey +. + `feName +()); + +33 +fs +-> + `move +( +th +); + +36 +RetSvi +:: + `tNow +(); + +37 + } +} + + @lib/framework/FactoryResetService.h + +1 #ide +FayRetSvi_h + + +2  + #FayRetSvi_h + + + ) + +4 #ifde +ESP32 + + +5  + ~ + +6  + ~ + +7 #i +defed +( +ESP8266 +) + +8  + ~ + +9  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +17  + #FS_CONFIG_DIRECTORY + "/cfig" + + ) + +18  + #FACTORY_RESET_SERVICE_PATH + "//yRet" + + ) + +20 as + cFayRetSvi + { + +21 +FS +* + mfs +; + +23 + mpublic +: + +24 +FayRetSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +, +SecuryMag +* +curyMag +); + +26  +yRet +(); + +28 + mive +: + +29  +hdReque +( +AsyncWebSvReque +* +que +); + + @lib/framework/Features.h + +1 #ide +Ftus_h + + +2  + #Ftus_h + + + ) + +4  + #FT_ENABLED +( +u + + ) +feature + +7 #ide +FT_PROJECT + + +8  + #FT_PROJECT + 0 + + ) + +12 #ide +FT_SECURITY + + +13  + #FT_SECURITY + 1 + + ) + +17 #ide +FT_MQTT + + +18  + #FT_MQTT + 1 + + ) + +22 #ide +FT_NTP + + +23  + #FT_NTP + 1 + + ) + +27 #ide +FT_OTA + + +28  + #FT_OTA + 1 + + ) + +32 #ide +FT_UPLOAD_FIRMWARE + + +33  + #FT_UPLOAD_FIRMWARE + 0 + + ) + + @lib/framework/FeaturesService.cpp + +1  + ~ + +3 + gFtusSvi +:: + $FtusSvi +( +AsyncWebSv +* +rv +) { + +4 +rv +-> + ` +( +FEATURES_SERVICE_PATH +, +HTTP_GET +, +d +:: + `bd +(& +FtusSvi +:: +us +, +this +, std:: +ahds +:: +_1 +)); + +5 + } +} + +7  + gFtusSvi +:: + $us +( +AsyncWebSvReque +* +que +) { + +8 +AsyncJsReڣ +* +ڣ + = +w + + `AsyncJsReڣ +( +l +, +MAX_FEATURES_SIZE +); + +9 +JsObje + +ro + = +ڣ +-> + `gRo +(); + +10 #i + `FT_ENABLED +( +FT_PROJECT +) + +11 +ro +["oje"] = +ue +; + +13 +ro +["oje"] = +l +; + +15 #i + `FT_ENABLED +( +FT_SECURITY +) + +16 +ro +["cury"] = +ue +; + +18 +ro +["cury"] = +l +; + +20 #i + `FT_ENABLED +( +FT_MQTT +) + +21 +ro +["mq"] = +ue +; + +23 +ro +["mq"] = +l +; + +25 #i + `FT_ENABLED +( +FT_NTP +) + +26 +ro +["p"] = +ue +; + +28 +ro +["p"] = +l +; + +30 #i + `FT_ENABLED +( +FT_OTA +) + +31 +ro +["a"] = +ue +; + +33 +ro +["a"] = +l +; + +35 #i + `FT_ENABLED +( +FT_UPLOAD_FIRMWARE +) + +36 +ro +["ud_fmwe"] = +ue +; + +38 +ro +["ud_fmwe"] = +l +; + +40 +ڣ +-> + `tLgth +(); + +41 +que +-> + `nd +( +ڣ +); + +42 + } +} + + @lib/framework/FeaturesService.h + +1 #ide +FtusSvi_h + + +2  + #FtusSvi_h + + + ) + +4  + ~ + +6 #ifde +ESP32 + + +7  + ~ + +8  + ~ + +9 #i +defed +( +ESP8266 +) + +10  + ~ + +11  + ~ + +14  + ~ + +15  + ~ + +16  + ~ + +18  + #MAX_FEATURES_SIZE + 256 + + ) + +19  + #FEATURES_SERVICE_PATH + "//us" + + ) + +21 as + cFtusSvi + { + +22 + mpublic +: + +23 +FtusSvi +( +AsyncWebSv +* +rv +); + +25 + mive +: + +26  +us +( +AsyncWebSvReque +* +que +); + + @lib/framework/HttpEndpoint.h + +1 #ide +HpEndpot_h + + +2  + #HpEndpot_h + + + ) + +4  + ~ + +6  + ~ + +7  + ~ + +9  + ~ + +10  + ~ + +12  + #HTTP_ENDPOINT_ORIGIN_ID + "hp" + + ) + +14 + gme + < +ass + + gT +> + +15 as + cHpGEndpot + { + +16 + mpublic +: + +17 +HpGEndpot +( +JsSRd +< +T +> +eRd +, + +18 +SfulSvi +< +T +>* +efulSvi +, + +19 +AsyncWebSv +* +rv +, + +20 cڡ +Sg +& +rviPh +, + +21 +SecuryMag +* +curyMag +, + +22 +AuthtitiPdi + +authtitiPdi + = +AuthtitiPdis +:: +IS_ADMIN +, + +23 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +24 +_eRd +( +eRd +), +_efulSvi +( +efulSvi +), + $_bufrSize +( +bufrSize +) { + +25 +rv +-> + ` +( +rviPh +. + `c_r +(), + +26 +HTTP_GET +, + +27 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +HpGEndpot +:: +tchStgs +, +this +, std:: +ahds +:: +_1 +), + +28 +authtitiPdi +)); + +31 + `HpGEndpot +( +JsSRd +< +T +> +eRd +, + +32 +SfulSvi +< +T +>* +efulSvi +, + +33 +AsyncWebSv +* +rv +, + +34 cڡ +Sg +& +rviPh +, + +35 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +36 + `_eRd +( +eRd +), + `_efulSvi +( +efulSvi +), + $_bufrSize +( +bufrSize +) { + +37 +rv +-> + ` +( +rviPh +. + `c_r +(), +HTTP_GET +, +d +:: + `bd +(& +HpGEndpot +:: +tchStgs +, +this +, std:: +ahds +:: +_1 +)); + +38 + } +} + +40 + geed +: + +41 +JsSRd +< +T +> +_eRd +; + +42 + gSfulSvi +< + gT +>* + g_efulSvi +; + +43 +size_t + + g_bufrSize +; + +45  + $tchStgs +( +AsyncWebSvReque +* +que +) { + +46 +AsyncJsReڣ +* +ڣ + = +w + + `AsyncJsReڣ +( +l +, +_bufrSize +); + +47 +JsObje + +jsObje + = +ڣ +-> + `gRo +(). +to +(); + +48 +_efulSvi +-> + `ad +( +jsObje +, +_eRd +); + +50 +ڣ +-> + `tLgth +(); + +51 +que +-> + `nd +( +ڣ +); + +52 + } +} + +55 + gme + < +ass + + gT +> + +56 as + cHpPoEndpot + { + +57 + mpublic +: + +58 +HpPoEndpot +( +JsSRd +< +T +> +eRd +, + +59 +JsSUpd +< +T +> +eUpd +, + +60 +SfulSvi +< +T +>* +efulSvi +, + +61 +AsyncWebSv +* +rv +, + +62 cڡ +Sg +& +rviPh +, + +63 +SecuryMag +* +curyMag +, + +64 +AuthtitiPdi + +authtitiPdi + = +AuthtitiPdis +:: +IS_ADMIN +, + +65 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +66 +_eRd +( +eRd +), + +67 +_eUpd +( +eUpd +), + +68 +_efulSvi +( +efulSvi +), + +69 +_updeHdr +( + +70 +rviPh +, + +71 +curyMag +-> +wpClback +( + +72 +d +:: +bd +(& +HpPoEndpot +:: +updeStgs +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), + +73 +authtitiPdi +), + +74 +bufrSize +), + +75 + $_bufrSize +( +bufrSize +) { + +76 +_updeHdr +. + `tMhod +( +HTTP_POST +); + +77 +rv +-> + `addHdr +(& +_updeHdr +); + +80 + `HpPoEndpot +( +JsSRd +< +T +> +eRd +, + +81 +JsSUpd +< +T +> +eUpd +, + +82 +SfulSvi +< +T +>* +efulSvi +, + +83 +AsyncWebSv +* +rv +, + +84 cڡ +Sg +& +rviPh +, + +85 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +86 + `_eRd +( +eRd +), + +87 + `_eUpd +( +eUpd +), + +88 + `_efulSvi +( +efulSvi +), + +89 + `_updeHdr +( +rviPh +, + +90 +d +:: + `bd +(& +HpPoEndpot +:: +updeStgs +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), + +91 +bufrSize +), + +92 + $_bufrSize +( +bufrSize +) { + +93 +_updeHdr +. + `tMhod +( +HTTP_POST +); + +94 +rv +-> + `addHdr +(& +_updeHdr +); + +95 + } +} + +97 + geed +: + +98 +JsSRd +< +T +> +_eRd +; + +99 + gJsSUpd +< + gT +> + g_eUpd +; + +100 + gSfulSvi +< + gT +>* + g_efulSvi +; + +101 +AsyncClbackJsWebHdr + + g_updeHdr +; + +102 +size_t + + g_bufrSize +; + +104  + $updeStgs +( +AsyncWebSvReque +* +que +, +JsV +& +js +) { + +105 i(! +js +. +is +< +JsObje +>()) { + +106 +que +-> + `nd +(400); + +109 +JsObje + +jsObje + = +js +. +as +(); + +110 +SUpdeResu + +outcome + = +_efulSvi +-> + `updeWhoutPragi +( +jsObje +, +_eUpd +); + +111 i( +outcome + = +SUpdeResu +:: +ERROR +) { + +112 +que +-> + `nd +(400); + +115 i( +outcome + = +SUpdeResu +:: +CHANGED +) { + +116 +que +-> + `Disc +([ +this +]({ +_efulSvi +-> + `UpdeHdrs +( +HTTP_ENDPOINT_ORIGIN_ID +); }); + +118 +AsyncJsReڣ +* +ڣ + = +w + + `AsyncJsReڣ +( +l +, +_bufrSize +); + +119 +jsObje + = +ڣ +-> + `gRo +(). +to +< +JsObje +>(); + +120 +_efulSvi +-> + `ad +( +jsObje +, +_eRd +); + +121 +ڣ +-> + `tLgth +(); + +122 +que +-> + `nd +( +ڣ +); + +123 + } +} + +126 + gme + < +ass + + gT +> + +127 +ass + + gHpEndpot + : +public + +HpGEndpot +< +T +>,ubli + gHpPoEndpot +< + gT +> { + +128 + gpublic +: + +129 +HpEndpot +( +JsSRd +< +T +> +eRd +, + +130 +JsSUpd +< +T +> +eUpd +, + +131 +SfulSvi +< +T +>* +efulSvi +, + +132 +AsyncWebSv +* +rv +, + +133 cڡ +Sg +& +rviPh +, + +134 +SecuryMag +* +curyMag +, + +135 +AuthtitiPdi + +authtitiPdi + = +AuthtitiPdis +:: +IS_ADMIN +, + +136 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +137 +HpGEndpot +< +T +>( +eRd +, + +138 + gefulSvi +, + +139 + grv +, + +140 + grviPh +, + +141 + gcuryMag +, + +142 + gauthtitiPdi +, + +143 + gbufrSize +), + +144 + gHpPoEndpot +< + gT +>( + geRd +, + +145 + geUpd +, + +146 + gefulSvi +, + +147 + grv +, + +148 + grviPh +, + +149 + gcuryMag +, + +150 + gauthtitiPdi +, + +151 + gbufrSize +) { + +154 +HpEndpot +( +JsSRd +< +T +> +eRd +, + +155 +JsSUpd +< +T +> +eUpd +, + +156 +SfulSvi +< +T +>* +efulSvi +, + +157 +AsyncWebSv +* +rv +, + +158 cڡ +Sg +& +rviPh +, + +159 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +160 +HpGEndpot +< +T +>( +eRd +, + gefulSvi +, + grv +, + grviPh +, + gbufrSize +), + +161 + gHpPoEndpot +< + gT +>( + geRd +, + geUpd +, + gefulSvi +, + grv +, + grviPh +, + gbufrSize +) { + + @lib/framework/JsonUtils.h + +1 #ide +JsUts_h + + +2  + #JsUts_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +8 as + cJsUts + { + +9 + mpublic +: + +10  + $adIP +( +JsObje +& +ro +, cڡ +Sg +& +key +, +IPAddss +& + +, cڡ Sg& +def +) { + +11 +IPAddss + +deuIp + = {}; + +12 i(! +deuIp +. + `omSg +( +def +)) { + +13 +deuIp + = +INADDR_NONE +; + +15 + `adIP +( +ro +, +key +, + +, +deuIp +); + +17  + $adIP +( +JsObje +& +ro +, cڡ +Sg +& +key +, +IPAddss +& + +, cڡ IPAddss& +deuIp + = +INADDR_NONE +) { + +18 i(! +ro +[ +key +]. +is +< +Sg +>(|| ! + +. + `omSg +o[key]. +as +())) { + +19 + + = +deuIp +; + +21 + } +} + +22  + $wreIP +( +JsObje +& +ro +, cڡ +Sg +& +key +, cڡ +IPAddss +& + +) { + +23 i( + + ! +INADDR_NONE +) { + +24 +ro +[ +key +] = + +. + `toSg +(); + +26 + } +} + + @lib/framework/MqttPubSub.h + +1 #ide +MqPubSub_h + + +2  + #MqPubSub_h + + + ) + +4  + ~ + +5  + ~ + +7  + #MQTT_ORIGIN_ID + "mq" + + ) + +9 + gme + < +ass + + gT +> + +10 as + cMqC + { + +11 + meed +: + +12 +SfulSvi +< +T +>* +_efulSvi +; + +13 +AsyncMqCl +* + m_mqCl +; + +14 +size_t + + m_bufrSize +; + +16 +MqC +( +SfulSvi +< +T +>* +efulSvi +, +AsyncMqCl +* +mqCl +, +size_t + +bufrSize +) : + +17 +_efulSvi +( +efulSvi +), +_mqCl +( +mqCl +), + $_bufrSize +( +bufrSize +) { + +18 +_mqCl +-> + `C +( +d +:: + `bd +(& +MqC +:: +C +, +this +)); + +21 +vtu +  + `C +() = 0; + +23 +public +: + +24 +le + +AsyncMqCl +* + $gMqCl +() const { + +25  +_mqCl +; + +26 + } +} + +29 + gme + < +ass + + gT +> + +30 +ass + + gMqPub + : +vtu + +public + +MqC +< +T +> { + +31 +public +: + +32 +MqPub +( +JsSRd +< +T +> +eRd +, + +33 +SfulSvi +< +T +>* +efulSvi +, + +34 +AsyncMqCl +* +mqCl +, + +35 cڡ +Sg +& +pubTic + = "", + +36 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +37 +MqC +< +T +>( +efulSvi +, + gmqCl +, + gbufrSize +), +_eRd +( +eRd +), +_pubTic +( +pubTic +) { + +38 + gMqC +< + gT +>:: +_efulSvi +-> +addUpdeHdr +([&](cڡ +Sg +& +igId +{ +publish +(); }, +l +); + +41  +tPubTic +(cڡ +Sg +& +pubTic +) { + +42 + g_pubTic + = +pubTic +; + +43 +publish +(); + +46 + geed +: + +47 +vtu +  +C +() { + +48 +publish +(); + +51 + give +: + +52 +JsSRd +< +T +> +_eRd +; + +53 +Sg + + g_pubTic +; + +55  +publish +() { + +56 i( + g_pubTic +. +ngth +(> 0 && + gMqC +< + gT +>:: +_mqCl +-> +ced +()) { + +58 +DymicJsDocumt + +js +( +MqC +< +T +>:: +_bufrSize +); + +59 +JsObje + + gjsObje + = +js +. +to +(); + +60 + gMqC +< + gT +>:: +_efulSvi +-> +ad +( +jsObje +, +_eRd +); + +63 +Sg + + gyld +; + +64 +rlizeJs +( +js +, +yld +); + +67 + gMqC +< + gT +>:: +_mqCl +-> +publish +( +_pubTic +. +c_r +(), 0, +l +, +yld +.c_str()); + +72 + gme + < +ass + + gT +> + +73 +ass + + gMqSub + : +vtu + +public + +MqC +< +T +> { + +74 +public +: + +75 +MqSub +( +JsSUpd +< +T +> +eUpd +, + +76 +SfulSvi +< +T +>* +efulSvi +, + +77 +AsyncMqCl +* +mqCl +, + +78 cڡ +Sg +& +subTic + = "", + +79 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +80 +MqC +< +T +>( +efulSvi +, + gmqCl +, + gbufrSize +), +_eUpd +( +eUpd +), +_subTic +( +subTic +) { + +81 + gMqC +< + gT +>:: +_mqCl +-> +Mesge +( +d +:: +bd +(& +MqSub +:: +MqMesge +, + +82 +this +, + +83 +d +:: +ahds +:: +_1 +, + +84 +d +:: +ahds +:: +_2 +, + +85 +d +:: +ahds +:: +_3 +, + +86 +d +:: +ahds +:: +_4 +, + +87 +d +:: +ahds +:: +_5 +, + +88 +d +:: +ahds +:: +_6 +)); + +91  +tSubTic +(cڡ +Sg +& +subTic +) { + +92 i(! + g_subTic +. +equs +( +subTic +)) { + +94 i( + g_subTic +. +ngth +() > 0) { + +95 + gMqC +< + gT +>:: +_mqCl +-> +unsubsibe +( +_subTic +. +c_r +()); + +98 + g_subTic + = +subTic +; + +99 +subsibe +(); + +103 + geed +: + +104 +vtu +  +C +() { + +105 +subsibe +(); + +108 + give +: + +109 +JsSUpd +< +T +> +_eUpd +; + +110 +Sg + + g_subTic +; + +112  +subsibe +() { + +113 i( + g_subTic +. +ngth +() > 0) { + +114 + gMqC +< + gT +>:: +_mqCl +-> +subsibe +( +_subTic +. +c_r +(), 2); + +118  +MqMesge +(* +tic +, + +119 * +yld +, + +120 +AsyncMqClMesgePrݔts + +ݔts +, + +121 +size_t + +n +, + +122 +size_t + +dex +, + +123 +size_t + +tٮ +) { + +125 i( +rcmp +( +_subTic +. +c_r +(), +tic +)) { + +130 +DymicJsDocumt + +js +( +MqC +< +T +>:: +_bufrSize +); + +131 +DerliziE + + gr + = +derlizeJs +( +js +, +yld +, +n +); + +132 i(! + gr + && + gjs +. + gis +< + gJsObje +>()) { + +133 +JsObje + + gjsObje + = +js +. +as +(); + +134 + gMqC +< + gT +>:: +_efulSvi +-> +upde +( +jsObje +, +_eUpd +, +MQTT_ORIGIN_ID +); + +139 + gme + < +ass + + gT +> + +140 +ass + + gMqPubSub + : +public + +MqPub +< +T +>,ubli + gMqSub +< + gT +> { + +141 + gpublic +: + +142 +MqPubSub +( +JsSRd +< +T +> +eRd +, + +143 +JsSUpd +< +T +> +eUpd +, + +144 +SfulSvi +< +T +>* +efulSvi +, + +145 +AsyncMqCl +* +mqCl +, + +146 cڡ +Sg +& +pubTic + = "", + +147 cڡ +Sg +& +subTic + = "", + +148 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +149 +MqC +< +T +>( +efulSvi +, + gmqCl +, + gbufrSize +), + +150 + gMqPub +< + gT +>( + geRd +, + gefulSvi +, + gmqCl +, + gpubTic +, + gbufrSize +), + +151 + gMqSub +< + gT +>( + geUpd +, + gefulSvi +, + gmqCl +, + gsubTic +, + gbufrSize +) { + +154 + gpublic +: + +155  +cfiguTics +(cڡ +Sg +& +pubTic +, cڡ Sg& +subTic +) { + +156 + gMqSub +< + gT +>:: +tSubTic +( +subTic +); + +157 + gMqPub +< + gT +>:: +tPubTic +( +pubTic +); + +160 + geed +: + +161  +C +() { + +162 +MqSub +< +T +>:: +C +(); + +163 + gMqPub +< + gT +>:: +C +(); + + @lib/framework/MqttSettingsService.cpp + +1  + ~ + +4 +mea + + gem + { + +5 as + cEMSESP + { + +6 + gpublic +: + +7  +Syem + +syem_ +; + +8  +Mq + + gmq_ +; + +9  +Sss + + gnss_ +; + +18 * + $Cr +(cڡ * +cr +, ** +r +) { + +20 + ` +(* +r +); + +21 * +r + = +nuαr +; + +24 i( +cr + ! +nuαr +) { + +25 * +r + = (*) + `mloc +( + ` +( +cr +) + 1); + +26 + `ry +(* +r +, +cr +); + +30  * +r +; + +31 + } +} + +33 + gMqStgsSvi +:: + $MqStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +, +SecuryMag + * +curyMag +) + +34 : + `_hpEndpot +( +MqStgs +:: +ad +, MqStgs:: +upde +, +this +, +rv +, +MQTT_SETTINGS_SERVICE_PATH +, +curyMag +) + +35 , + `_fsPsi +( +MqStgs +:: +ad +, MqStgs:: +upde +, +this +, +fs +, +MQTT_SETTINGS_FILE +) + +36 , + `_edHo +( +nuαr +) + +37 , + `_edClId +( +nuαr +) + +38 , + `_edUame +( +nuαr +) + +39 , + `_edPasswd +( +nuαr +) + +40 , + `_cfiguMq +( +l +) + +41 , + `_discedAt +(0) + +42 , + `_discRs +( +AsyncMqClDiscRs +:: +TCP_DISCONNECTED +) + +43 , + $_mqCl +() { + +44 #ifde +ESP32 + + +45 +WiFi +. + `Evt +( +d +:: + `bd +(& +MqStgsSvi +:: +StiModeDisced +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), + +46 +WiFiEvt_t +:: +SYSTEM_EVENT_STA_DISCONNECTED +); + +47 +WiFi +. + `Evt +( +d +:: + `bd +(& +MqStgsSvi +:: +StiModeGIP +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), +WiFiEvt_t +:: +SYSTEM_EVENT_STA_GOT_IP +); + +48 #i + `defed +( +ESP8266 +) + +49 +_StiModeDiscedHdr + = +WiFi +. + `StiModeDisced +( +d +:: + `bd +(& +MqStgsSvi +:: +StiModeDisced +, +this +, std:: +ahds +:: +_1 +)); + +50 +_StiModeGIPHdr + = +WiFi +. + `StiModeGIP +( +d +:: + `bd +(& +MqStgsSvi +:: +StiModeGIP +, +this +, std:: +ahds +:: +_1 +)); + +52 +_mqCl +. + `C +( +d +:: + `bd +(& +MqStgsSvi +:: +MqC +, +this +, std:: +ahds +:: +_1 +)); + +53 +_mqCl +. + `Disc +( +d +:: + `bd +(& +MqStgsSvi +:: +MqDisc +, +this +, std:: +ahds +:: +_1 +)); + +54 + `addUpdeHdr +([&](cڡ +Sg + & +igId +{ + `CfigUpded +(); }, +l +); + +55 + } +} + +57 + gMqStgsSvi +::~ + $MqStgsSvi +() { + +58 + } +} + +60  +MqStgsSvi +:: + $beg +() { + +61 +_fsPsi +. + `adFromFS +(); + +62 + } +} + +64  + gMqStgsSvi +:: + $lo +() { + +65 i( +_cfiguMq + || ( +_discedAt + && ()( +uuid +:: + `g_uime +(- _discedAt> +MQTT_RECONNECTION_DELAY +)) { + +67 + `cfiguMq +(); + +70 +_cfiguMq + = +l +; + +71 +_discedAt + = 0; + +73 + } +} + +75 +bo + + gMqStgsSvi +:: + $isEbd +() { + +76  +_e +. +abd +; + +77 + } +} + +79 +bo + + gMqStgsSvi +:: + $isCed +() { + +80  +_mqCl +. + `ced +(); + +81 + } +} + +83 cڡ * + gMqStgsSvi +:: + $gClId +() { + +84  +_mqCl +. + `gClId +(); + +85 + } +} + +87 +AsyncMqClDiscRs + + gMqStgsSvi +:: + $gDiscRs +() { + +88  +_discRs +; + +89 + } +} + +91 +AsyncMqCl + * + gMqStgsSvi +:: + $gMqCl +() { + +92  & +_mqCl +; + +93 + } +} + +95  + gMqStgsSvi +:: + $MqC +( +bo + +ssiP +) { + +104 + } +} + +106  +MqStgsSvi +:: + $MqDisc +( +AsyncMqClDiscRs + +as +) { + +109 +_discRs + = +as +; + +110 +_discedAt + = +uuid +:: + `g_uime +(); + +111 + } +} + +113  + gMqStgsSvi +:: + $CfigUpded +() { + +114 +_cfiguMq + = +ue +; + +115 +_discedAt + = 0; + +119 + } +} + +121 #ifde +ESP32 + + +122  + gMqStgsSvi +:: + $StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +123 i( +_e +. +abd +) { + +125 + `CfigUpded +(); + +127 + } +} + +129  + gMqStgsSvi +:: + $StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +130 i( +_e +. +abd +) { + +132 + `CfigUpded +(); + +134 + } +} + +135 #i +defed +( +ESP8266 +) + +136  + gMqStgsSvi +:: + $StiModeGIP +(cڡ +WiFiEvtStiModeGIP + & +evt +) { + +137 i( +_e +. +abd +) { + +139 + `CfigUpded +(); + +141 + } +} + +143  + gMqStgsSvi +:: + $StiModeDisced +(cڡ +WiFiEvtStiModeDisced + & +evt +) { + +144 i( +_e +. +abd +) { + +146 + `CfigUpded +(); + +148 + } +} + +151  + gMqStgsSvi +:: + $cfiguMq +() { + +153 +_mqCl +. + `disc +(); + +156 i( +_e +. +abd + && +WiFi +. + `isCed +()) { + +158 +_mqCl +. + `tSv +( + `Cr +( +_e +. +ho +. + `c_r +(), & +_edHo +), _e. +pt +); + +159 i( +_e +. +uame +. + `ngth +() > 0) { + +160 +_mqCl +. + `tCdtls +( + `Cr +( +_e +. +uame +. + `c_r +(), & +_edUame +), + +161 + `Cr +( +_e +. +sswd +. + `ngth +(> 0 ? _e.sswd. + `c_r +(: +nuαr +, & +_edPasswd +)); + +163 +_mqCl +. + `tCdtls +( + `Cr +( +nuαr +, & +_edUame +),aCruαr, & +_edPasswd +)); + +165 +_mqCl +. + `tClId +( + `Cr +( +_e +. +Id +. + `c_r +(), & +_edClId +)); + +166 +_mqCl +. + `tKpAlive +( +_e +. +kpAlive +); + +167 +_mqCl +. + `tC˪Sessi +( +_e +. +nSessi +); + +168 +_mqCl +. + `tMaxTicLgth +( +_e +. +maxTicLgth +); + +169 +_mqCl +. + `c +(); + +172 +em +:: +EMSESP +:: +nss_ +. + `ld +(); + +173 + } +} + +175  + gMqStgs +:: + $ad +( +MqStgs + & +gs +, +JsObje + & +ro +) { + +176 +ro +["abd"] = +gs +. +abd +; + +177 +ro +["ho"] = +gs +. +ho +; + +178 +ro +["pt"] = +gs +. +pt +; + +179 +ro +["uame"] = +gs +. +uame +; + +180 +ro +["sswd"] = +gs +. +sswd +; + +181 +ro +["_id"] = +gs +. +Id +; + +182 +ro +["kp_ive"] = +gs +. +kpAlive +; + +183 +ro +["n_ssi"] = +gs +. +nSessi +; + +184 +ro +["max_tic_ngth"] = +gs +. +maxTicLgth +; + +187 +ro +["syem_hbt"] = +gs +. +syem_hbt +; + +188 +ro +["publish_time_bo"] = +gs +. +publish_time_bo +; + +189 +ro +["publish_time_thmo"] = +gs +. +publish_time_thmo +; + +190 +ro +["publish_time_sެ"] = +gs +. +publish_time_sެ +; + +191 +ro +["publish_time_mixg"] = +gs +. +publish_time_mixg +; + +192 +ro +["publish_time_h"] = +gs +. +publish_time_h +; + +193 +ro +["publish_time_ns"] = +gs +. +publish_time_ns +; + +194 +ro +["mq_fm"] = +gs +. +mq_fm +; + +195 +ro +["mq_qos"] = +gs +. +mq_qos +; + +196 + } +} + +198 +SUpdeResu + + gMqStgs +:: + $upde +( +JsObje + & +ro +, +MqStgs + & +gs +) { + +199 +MqStgs + +wStgs + = {}; + +201 +wStgs +. +abd + = +ro +["abd"] | +FACTORY_MQTT_ENABLED +; + +202 +wStgs +. +ho + = +ro +["ho"] | +FACTORY_MQTT_HOST +; + +203 +wStgs +. +pt + = +ro +["pt"] | +FACTORY_MQTT_PORT +; + +204 +wStgs +. +uame + = +ro +["uame"] | +FACTORY_MQTT_USERNAME +; + +205 +wStgs +. +sswd + = +ro +["sswd"] | +FACTORY_MQTT_PASSWORD +; + +206 +wStgs +. +Id + = +ro +["_id"] | +FACTORY_MQTT_CLIENT_ID +; + +207 +wStgs +. +kpAlive + = +ro +["kp_ive"] | +FACTORY_MQTT_KEEP_ALIVE +; + +208 +wStgs +. +nSessi + = +ro +["n_ssi"] | +FACTORY_MQTT_CLEAN_SESSION +; + +209 +wStgs +. +maxTicLgth + = +ro +["max_tic_ngth"] | +FACTORY_MQTT_MAX_TOPIC_LENGTH +; + +211 +wStgs +. +syem_hbt + = +ro +["syem_hbt"] | +EMSESP_DEFAULT_SYSTEM_HEARTBEAT +; + +212 +wStgs +. +publish_time_bo + = +ro +["publish_time_bo"] | +EMSESP_DEFAULT_PUBLISH_TIME +; + +213 +wStgs +. +publish_time_thmo + = +ro +["publish_time_thmo"] | +EMSESP_DEFAULT_PUBLISH_TIME +; + +214 +wStgs +. +publish_time_sެ + = +ro +["publish_time_sެ"] | +EMSESP_DEFAULT_PUBLISH_TIME +; + +215 +wStgs +. +publish_time_mixg + = +ro +["publish_time_mixg"] | +EMSESP_DEFAULT_PUBLISH_TIME +; + +216 +wStgs +. +publish_time_h + = +ro +["publish_time_h"] | +EMSESP_DEFAULT_PUBLISH_TIME +; + +217 +wStgs +. +publish_time_ns + = +ro +["publish_time_ns"] | +EMSESP_DEFAULT_PUBLISH_TIME +; + +218 +wStgs +. +mq_fm + = +ro +["mq_fm"] | +EMSESP_DEFAULT_MQTT_FORMAT +; + +219 +wStgs +. +mq_qos + = +ro +["mq_qos"] | +EMSESP_DEFAULT_MQTT_QOS +; + +221 i( +wStgs +. +syem_hbt + ! +gs +.system_heartbeat) { + +222 +em +:: +EMSESP +:: +syem_ +. + `t_hbt +( +wStgs +. +syem_hbt +); + +225 i( +wStgs +. +mq_qos + ! +gs +.mqtt_qos) { + +226 +em +:: +EMSESP +:: +mq_ +. + `t_qos +( +wStgs +. +mq_qos +); + +229 i( +wStgs +. +publish_time_bo + ! +gs +.publish_time_boiler) { + +230 +em +:: +EMSESP +:: +mq_ +. + `t_publish_time_bo +( +wStgs +. +publish_time_bo +); + +232 i( +wStgs +. +publish_time_thmo + ! +gs +.publish_time_thermostat) { + +233 +em +:: +EMSESP +:: +mq_ +. + `t_publish_time_thmo +( +wStgs +. +publish_time_thmo +); + +235 i( +wStgs +. +publish_time_sެ + ! +gs +.publish_time_solar) { + +236 +em +:: +EMSESP +:: +mq_ +. + `t_publish_time_sެ +( +wStgs +. +publish_time_sެ +); + +238 i( +wStgs +. +publish_time_mixg + ! +gs +.publish_time_mixing) { + +239 +em +:: +EMSESP +:: +mq_ +. + `t_publish_time_mixg +( +wStgs +. +publish_time_mixg +); + +241 i( +wStgs +. +publish_time_h + ! +gs +.publish_time_other) { + +242 +em +:: +EMSESP +:: +mq_ +. + `t_publish_time_h +( +wStgs +. +publish_time_h +); + +244 i( +wStgs +. +publish_time_ns + ! +gs +.publish_time_sensor) { + +245 +em +:: +EMSESP +:: +mq_ +. + `t_publish_time_ns +( +wStgs +. +publish_time_ns +); + +248 +em +:: +EMSESP +:: +mq_ +. + `t_publish_s +(); + +250 +gs + = +wStgs +; + +252  +SUpdeResu +:: +CHANGED +; + +253 + } +} + + @lib/framework/MqttSettingsService.h + +1 #ide +MqStgsSvi_h + + +2  + #MqStgsSvi_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +7  + ~ + +8  + ~ + +9  + ~ + +11  + ~"../../c/syem.h +" + +12  + ~"../../c/mq.h +" + +13  + ~"../../c/nss.h +" + +15  + #MQTT_RECONNECTION_DELAY + 1000 + + ) + +17  + #MQTT_SETTINGS_FILE + "/cfig/mqStgs.js" + + ) + +18  + #MQTT_SETTINGS_SERVICE_PATH + "//mqStgs" + + ) + +20 #ide +FACTORY_MQTT_ENABLED + + +21  + #FACTORY_MQTT_ENABLED + +l + + + ) + +24 #ide +FACTORY_MQTT_HOST + + +25  + #FACTORY_MQTT_HOST + ".mosquto.g" + + ) + +28 #ide +FACTORY_MQTT_PORT + + +29  + #FACTORY_MQTT_PORT + 1883 + + ) + +32 #ide +FACTORY_MQTT_USERNAME + + +33  + #FACTORY_MQTT_USERNAME + "" + + ) + +36 #ide +FACTORY_MQTT_PASSWORD + + +37  + #FACTORY_MQTT_PASSWORD + "" + + ) + +40 #ide +FACTORY_MQTT_CLIENT_ID + + +41  + #FACTORY_MQTT_CLIENT_ID + + `geClId +() + + ) + +42  +Sg + + $geClId +() { + +43 #ifde +ESP32 + + +44  +ESPUts +:: + `deuDeviVue +("esp32-"); + +45 #i + `defed +( +ESP8266 +) + +46  +ESPUts +:: + `deuDeviVue +("esp8266-"); + +48 + } +} + +51 #ide +FACTORY_MQTT_KEEP_ALIVE + + +52  + #FACTORY_MQTT_KEEP_ALIVE + 16 + + ) + +55 #ide +FACTORY_MQTT_CLEAN_SESSION + + +56  + #FACTORY_MQTT_CLEAN_SESSION + +ue + + + ) + +59 #ide +FACTORY_MQTT_MAX_TOPIC_LENGTH + + +60  + #FACTORY_MQTT_MAX_TOPIC_LENGTH + 128 + + ) + +63  + #EMSESP_DEFAULT_SYSTEM_HEARTBEAT + +ue + + + ) + +64  + #EMSESP_DEFAULT_MQTT_FORMAT + 2 + +65  + #EMSESP_DEFAULT_MQTT_QOS + 0 + + ) + +66  + #EMSESP_DEFAULT_PUBLISH_TIME + 10 + + ) + +69 as + cMqStgs + { + +70 + mpublic +: + +72 +bo + +abd +; + +73 +Sg + + mho +; + +74 +ut16_t + + mpt +; + +77 +Sg + + muame +; + +78 +Sg + + msswd +; + +81 +Sg + + mId +; + +84 +ut16_t + + mkpAlive +; + +85 +bo + + mnSessi +; + +86 +ut16_t + + mmaxTicLgth +; + +89 +ut16_t + + mpublish_time_bo +; + +90 +ut16_t + + mpublish_time_thmo +; + +91 +ut16_t + + mpublish_time_sެ +; + +92 +ut16_t + + mpublish_time_mixg +; + +93 +ut16_t + + mpublish_time_h +; + +94 +ut16_t + + mpublish_time_ns +; + +95 +ut8_t + + mmq_fm +; + +96 +ut8_t + + mmq_qos +; + +97 +bo + + msyem_hbt +; + +99  +ad +( +MqStgs + & +gs +, +JsObje + & +ro +); + +100  +SUpdeResu + +upde +( +JsObje + & +ro +, +MqStgs + & +gs +); + +103 +ass + + gMqStgsSvi + : +public + +SfulSvi +< +MqStgs +> { + +104 +public +: + +105 +MqStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +, +SecuryMag + * +curyMag +); + +106 ~ +MqStgsSvi +(); + +108  +beg +(); + +109  +lo +(); + +110 +bo + +isEbd +(); + +111 +bo + +isCed +(); + +112 cڡ * +gClId +(); + +113 +AsyncMqClDiscRs + +gDiscRs +(); + +114 +AsyncMqCl + * +gMqCl +(); + +116 + geed +: + +117  +CfigUpded +(); + +119 + give +: + +120 +HpEndpot +< +MqStgs +> +_hpEndpot +; + +121 + gFSPsi +< + gMqStgs +> + g_fsPsi +; + +125 * + g_edHo +; + +126 * + g_edClId +; + +127 * + g_edUame +; + +128 * + g_edPasswd +; + +131 +bo + + g_cfiguMq +; + +132  + g_discedAt +; + +135 +AsyncMqClDiscRs + + g_discRs +; + +138 +AsyncMqCl + + g_mqCl +; + +140 #ifde +ESP32 + + +141  +StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +142  +StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +143 #i +defed +( +ESP8266 +) + +144 +WiFiEvtHdr + + g_StiModeDiscedHdr +; + +145 +WiFiEvtHdr + + g_StiModeGIPHdr +; + +146  +StiModeGIP +(cڡ +WiFiEvtStiModeGIP + & +evt +); + +147  +StiModeDisced +(cڡ +WiFiEvtStiModeDisced + & +evt +); + +150  +MqC +( +bo + +ssiP +); + +151  +MqDisc +( +AsyncMqClDiscRs + +as +); + +152  +cfiguMq +(); + + @lib/framework/MqttStatus.cpp + +1  + ~ + +3 + gMqStus +:: + $MqStus +( +AsyncWebSv + * +rv +, +MqStgsSvi + * +mqStgsSvi +, +SecuryMag + * +curyMag +) + +4 : + $_mqStgsSvi +( +mqStgsSvi +) { + +5 +rv +-> + ` +( +MQTT_STATUS_SERVICE_PATH +, + +6 +HTTP_GET +, + +7 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +MqStus +:: +mqStus +, +this +, std:: +ahds +:: +_1 +), +AuthtitiPdis +:: +IS_AUTHENTICATED +)); + +8 + } +} + +10  + gMqStus +:: + $mqStus +( +AsyncWebSvReque + * +que +) { + +11 +AsyncJsReڣ + * +ڣ + = +w + + `AsyncJsReڣ +( +l +, +MAX_MQTT_STATUS_SIZE +); + +12 +JsObje + +ro + = +ڣ +-> + `gRo +(); + +14 +ro +["abd"] = +_mqStgsSvi +-> + `isEbd +(); + +15 +ro +["ced"] = +_mqStgsSvi +-> + `isCed +(); + +16 +ro +["_id"] = +_mqStgsSvi +-> + `gClId +(); + +17 +ro +["disc_as"] = ( +ut8_t +) +_mqStgsSvi +-> + `gDiscRs +(); + +19 +ro +["mq_s"] = +em +:: +Mq +:: + `publish_s +(); + +21 +ڣ +-> + `tLgth +(); + +22 +que +-> + `nd +( +ڣ +); + +23 + } +} + + @lib/framework/MqttStatus.h + +1 #ide +MqStus_h + + +2  + #MqStus_h + + + ) + +4 #ifde +ESP32 + + +5  + ~ + +6  + ~ + +7 #i +defed +( +ESP8266 +) + +8  + ~ + +9  + ~ + +12  + ~"../../c/mq.h +" + +14  + ~ + +15  + ~ + +16  + ~ + +17  + ~ + +18  + ~ + +20  + #MAX_MQTT_STATUS_SIZE + 1024 + + ) + +21  + #MQTT_STATUS_SERVICE_PATH + "//mqStus" + + ) + +23 as + cMqStus + { + +24 + mpublic +: + +25 +MqStus +( +AsyncWebSv + * +rv +, +MqStgsSvi + * +mqStgsSvi +, +SecuryMag + * +curyMag +); + +27 + mive +: + +28 +MqStgsSvi + * +_mqStgsSvi +; + +30  +mqStus +( +AsyncWebSvReque + * +que +); + + @lib/framework/NTPSettingsService.cpp + +1  + ~ + +3 + gNTPStgsSvi +:: + $NTPStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +, +SecuryMag +* +curyMag +) : + +4 + `_hpEndpot +( +NTPStgs +:: +ad +, NTPStgs:: +upde +, +this +, +rv +, +NTP_SETTINGS_SERVICE_PATH +, +curyMag +), + +5 + `_fsPsi +( +NTPStgs +:: +ad +, NTPStgs:: +upde +, +this +, +fs +, +NTP_SETTINGS_FILE +), + +6 + `_timeHdr +( +TIME_PATH +, + +7 +curyMag +-> + `wpClback +( + +8 +d +:: + `bd +(& +NTPStgsSvi +:: +cfiguTime +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), + +9 +AuthtitiPdis +:: +IS_ADMIN +)) { + +10 +_timeHdr +. + `tMhod +( +HTTP_POST +); + +11 +_timeHdr +. + `tMaxCڋLgth +( +MAX_TIME_SIZE +); + +12 +rv +-> + `addHdr +(& +_timeHdr +); + +13 #ifde +ESP32 + + +14 +WiFi +. + `Evt +( + +15 +d +:: + `bd +(& +NTPStgsSvi +:: +StiModeDisced +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), + +16 +WiFiEvt_t +:: +SYSTEM_EVENT_STA_DISCONNECTED +); + +17 +WiFi +. + `Evt +( +d +:: + `bd +(& +NTPStgsSvi +:: +StiModeGIP +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), + +18 +WiFiEvt_t +:: +SYSTEM_EVENT_STA_GOT_IP +); + +19 #i + `defed +( +ESP8266 +) + +20 +_StiModeDiscedHdr + = +WiFi +. + `StiModeDisced +( + +21 +d +:: + `bd +(& +NTPStgsSvi +:: +StiModeDisced +, +this +, std:: +ahds +:: +_1 +)); + +22 +_StiModeGIPHdr + = + +23 +WiFi +. + `StiModeGIP +( +d +:: + `bd +(& +NTPStgsSvi +:: +StiModeGIP +, +this +, std:: +ahds +:: +_1 +)); + +25 + `addUpdeHdr +([&](cڡ +Sg +& +igId +{ + `cfiguNTP +(); }, +l +); + +26 + } +} + +28  + gNTPStgsSvi +:: + $beg +() { + +29 +_fsPsi +. + `adFromFS +(); + +30 + `cfiguNTP +(); + +31 + } +} + +33 #ifde +ESP32 + + +34  + gNTPStgsSvi +:: + $StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +36 + `cfiguNTP +(); + +37 + } +} + +39  + gNTPStgsSvi +:: + $StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +41 + `cfiguNTP +(); + +42 + } +} + +43 #i +defed +( +ESP8266 +) + +44  + gNTPStgsSvi +:: + $StiModeGIP +(cڡ +WiFiEvtStiModeGIP +& +evt +) { + +46 + `cfiguNTP +(); + +47 + } +} + +49  + gNTPStgsSvi +:: + $StiModeDisced +(cڡ +WiFiEvtStiModeDisced +& +evt +) { + +51 + `cfiguNTP +(); + +52 + } +} + +55  + gNTPStgsSvi +:: + $cfiguNTP +() { + +56 i( +WiFi +. + `isCed +(&& +_e +. +abd +) { + +58 #ifde +ESP32 + + +59 + `cfigTzTime +( +_e +. +tzFm +. + `c_r +(), _e. +rv +.c_str()); + +60 #i + `defed +( +ESP8266 +) + +61 + `cfigTime +( +_e +. +tzFm +. + `c_r +(), _e. +rv +.c_str()); + +64 #ifde +ESP32 + + +65 + `nv +("TZ", +_e +. +tzFm +. + `c_r +(), 1); + +66 + `tzt +(); + +67 #i + `defed +( +ESP8266 +) + +68 + `tTZ +( +_e +. +tzFm +. + `c_r +()); + +70 + `_ +(); + +72 + } +} + +74  + gNTPStgsSvi +:: + $cfiguTime +( +AsyncWebSvReque +* +que +, +JsV +& +js +) { + +75 i(! + `_abd +(&& +js +. +is +< +JsObje +>()) { + +76 +Sg + +timeUtc + = +js +["time_utc"]; + +77  +tm +m = {0}; + +78 * +s + = + `time +( +timeUtc +. + `c_r +(), "%Y-%m-%dT%H:%M:%SZ", & +tm +); + +79 i( +s + ! +nuαr +) { + +80 +time_t + +time + = + `mktime +(& +tm +); + +81  +timev + +now + = {. +tv_c + = +time +}; + +82 + `imeofday +(& +now +, +nuαr +); + +83 +AsyncWebSvReڣ +* +ڣ + = +que +-> + `begReڣ +(200); + +84 +que +-> + `nd +( +ڣ +); + +88 +AsyncWebSvReڣ +* +ڣ + = +que +-> + `begReڣ +(400); + +89 +que +-> + `nd +( +ڣ +); + +90 + } +} + + @lib/framework/NTPSettingsService.h + +1 #ide +NTPStgsSvi_h + + +2  + #NTPStgsSvi_h + + + ) + +4  + ~ + +5  + ~ + +7  + ~ + +8 #ifde +ESP32 + + +9  + ~ + +10 #i +defed +( +ESP8266 +) + +11  + ~<.h +> + +14 #ide +FACTORY_NTP_ENABLED + + +15  + #FACTORY_NTP_ENABLED + +ue + + + ) + +18 #ide +FACTORY_NTP_TIME_ZONE_LABEL + + +19  + #FACTORY_NTP_TIME_ZONE_LABEL + "Eure/Ld" + + ) + +22 #ide +FACTORY_NTP_TIME_ZONE_FORMAT + + +23  + #FACTORY_NTP_TIME_ZONE_FORMAT + "GMT0BST,M3.5.0/1,M10.5.0" + + ) + +26 #ide +FACTORY_NTP_SERVER + + +27  + #FACTORY_NTP_SERVER + "time.goog.com" + + ) + +30  + #NTP_SETTINGS_FILE + "/cfig/pStgs.js" + + ) + +31  + #NTP_SETTINGS_SERVICE_PATH + "//pStgs" + + ) + +33  + #MAX_TIME_SIZE + 256 + + ) + +34  + #TIME_PATH + "//time" + + ) + +36 as + cNTPStgs + { + +37 + mpublic +: + +38 +bo + +abd +; + +39 +Sg + + mtzLab +; + +40 +Sg + + mtzFm +; + +41 +Sg + + mrv +; + +43  + $ad +( +NTPStgs +& +gs +, +JsObje +& +ro +) { + +44 +ro +["abd"] = +gs +. +abd +; + +45 +ro +["rv"] = +gs +. +rv +; + +46 +ro +["tz_b"] = +gs +. +tzLab +; + +47 +ro +["tz_fm"] = +gs +. +tzFm +; + +50  +SUpdeResu + + $upde +( +JsObje +& +ro +, +NTPStgs +& +gs +) { + +51 +gs +. +abd + = +ro +["abd"] | +FACTORY_NTP_ENABLED +; + +52 +gs +. +rv + = +ro +["rv"] | +FACTORY_NTP_SERVER +; + +53 +gs +. +tzLab + = +ro +["tz_b"] | +FACTORY_NTP_TIME_ZONE_LABEL +; + +54 +gs +. +tzFm + = +ro +["tz_fm"] | +FACTORY_NTP_TIME_ZONE_FORMAT +; + +55  +SUpdeResu +:: +CHANGED +; + +56 + } +} + +59 +ass + + gNTPStgsSvi + : +public + +SfulSvi +< +NTPStgs +> { + +60 +public +: + +61 +NTPStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +, +SecuryMag +* +curyMag +); + +63  +beg +(); + +65 + give +: + +66 +HpEndpot +< +NTPStgs +> +_hpEndpot +; + +67 + gFSPsi +< + gNTPStgs +> + g_fsPsi +; + +68 +AsyncClbackJsWebHdr + + g_timeHdr +; + +70 #ifde +ESP32 + + +71  +StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +72  +StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +73 #i +defed +( +ESP8266 +) + +74 +WiFiEvtHdr + + g_StiModeDiscedHdr +; + +75 +WiFiEvtHdr + + g_StiModeGIPHdr +; + +77  +StiModeGIP +(cڡ +WiFiEvtStiModeGIP +& +evt +); + +78  +StiModeDisced +(cڡ +WiFiEvtStiModeDisced +& +evt +); + +80  +cfiguNTP +(); + +81  +cfiguTime +( +AsyncWebSvReque +* +que +, +JsV +& +js +); + + @lib/framework/NTPStatus.cpp + +1  + ~ + +3 + gNTPStus +:: + $NTPStus +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +) { + +4 +rv +-> + ` +( +NTP_STATUS_SERVICE_PATH +, + +5 +HTTP_GET +, + +6 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +NTPStus +:: +pStus +, +this +, std:: +ahds +:: +_1 +), + +7 +AuthtitiPdis +:: +IS_AUTHENTICATED +)); + +8 + } +} + +10 +Sg + + $toISOSg +( +tm +* +time +, +bo + +cOfft +) { + +11  +time_rg +[25]; + +12 + `rime +( +time_rg +, 25, +cOfft + ? "%FT%T%z" : "%FT%TZ", +time +); + +13  + `Sg +( +time_rg +); + +14 + } +} + +16  + gNTPStus +:: + $pStus +( +AsyncWebSvReque +* +que +) { + +17 +AsyncJsReڣ +* +ڣ + = +w + + `AsyncJsReڣ +( +l +, +MAX_NTP_STATUS_SIZE +); + +18 +JsObje + +ro + = +ڣ +-> + `gRo +(); + +21 +time_t + +now + = + `time +( +nuαr +); + +24 +ro +["us"] = + `_abd +() ? 1 : 0; + +27 +ro +["time_utc"] = + `toISOSg +( + `gmtime +(& +now +), +l +); + +30 +ro +["time_lol"] = + `toISOSg +( + `loime +(& +now +), +ue +); + +33 +ro +["rv"] = + `_grvme +(0); + +36 +ro +["uime"] = +uuid +:: + `g_uime +() / 1000; + +38 +ڣ +-> + `tLgth +(); + +39 +que +-> + `nd +( +ڣ +); + +40 + } +} + + @lib/framework/NTPStatus.h + +1 #ide +NTPStus_h + + +2  + #NTPStus_h + + + ) + +4  + ~ + +5 #ifde +ESP32 + + +6  + ~ + +7  + ~ + +8  + ~ + +9 #i +defed +( +ESP8266 +) + +10  + ~ + +11  + ~ + +12  + ~<.h +> + +15  + ~ + +16  + ~ + +17  + ~ + +18  + ~ + +19  + ~ + +22  + #MAX_NTP_STATUS_SIZE + 1024 + + ) + +23  + #NTP_STATUS_SERVICE_PATH + "//pStus" + + ) + +25 as + cNTPStus + { + +26 + mpublic +: + +27 +NTPStus +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +); + +29 + mive +: + +30  +pStus +( +AsyncWebSvReque +* +que +); + + @lib/framework/OTASettingsService.cpp + +1  + ~ + +3 + gOTAStgsSvi +:: + $OTAStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +, +SecuryMag + * +curyMag +) + +4 : + `_hpEndpot +( +OTAStgs +:: +ad +, OTAStgs:: +upde +, +this +, +rv +, +OTA_SETTINGS_SERVICE_PATH +, +curyMag +) + +5 , + `_fsPsi +( +OTAStgs +:: +ad +, OTAStgs:: +upde +, +this +, +fs +, +OTA_SETTINGS_FILE +) + +6 , + $_duoOTA +( +nuαr +) { + +7 #ifde +ESP32 + + +8 +WiFi +. + `Evt +( +d +:: + `bd +(& +OTAStgsSvi +:: +StiModeGIP +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), +WiFiEvt_t +:: +SYSTEM_EVENT_STA_GOT_IP +); + +9 #i + `defed +( +ESP8266 +) + +10 +_StiModeGIPHdr + = +WiFi +. + `StiModeGIP +( +d +:: + `bd +(& +OTAStgsSvi +:: +StiModeGIP +, +this +, std:: +ahds +:: +_1 +)); + +12 + `addUpdeHdr +([&](cڡ +Sg + & +igId +{ + `cfiguArduoOTA +(); }, +l +); + +13 + } +} + +15  + gOTAStgsSvi +:: + $beg +() { + +16 +_fsPsi +. + `adFromFS +(); + +17 + `cfiguArduoOTA +(); + +18 + } +} + +20  + gOTAStgsSvi +:: + $lo +() { + +21 i( +_e +. +abd + && +_duoOTA +) { + +22 +_duoOTA +-> + `hd +(); + +24 + } +} + +26  + gOTAStgsSvi +:: + $cfiguArduoOTA +() { + +27 i( +_duoOTA +) { + +28 #ifde +ESP32 + + +29 +_duoOTA +-> + `d +(); + +31 +de + +_duoOTA +; + +32 +_duoOTA + = +nuαr +; + +34 i( +_e +. +abd +) { + +36 +_duoOTA + = +w + +ArduoOTACss +; + +37 +_duoOTA +-> + `tPt +( +_e +. +pt +); + +38 +_duoOTA +-> + `tPasswd +( +_e +. +sswd +. + `c_r +()); + +40 +_duoOTA +-> + `S +([]() { + +42 +em +:: +Syem +:: + `ud_us +( +ue +); + +44 +_duoOTA +-> + `End +([]() { + +46 +em +:: +Syem +:: + `ud_us +( +l +); + +67 +_duoOTA +-> + `beg +(); + +69 + } +} + +71 #ifde +ESP32 + + +72  + gOTAStgsSvi +:: + $StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +73 + `cfiguArduoOTA +(); + +74 + } +} + +75 #i +defed +( +ESP8266 +) + +76  + gOTAStgsSvi +:: + $StiModeGIP +(cڡ +WiFiEvtStiModeGIP + & +evt +) { + +77 + `cfiguArduoOTA +(); + +78 + } +} + + @lib/framework/OTASettingsService.h + +1 #ide +OTAStgsSvi_h + + +2  + #OTAStgsSvi_h + + + ) + +4  + ~ + +5  + ~ + +7 #ifde +ESP32 + + +8  + ~ + +9 #i +defed +( +ESP8266 +) + +10  + ~ + +13  + ~ + +14  + ~ + +16  + ~"../../c/syem.h +" + +18 #ide +FACTORY_OTA_PORT + + +19  + #FACTORY_OTA_PORT + 8266 + + ) + +22 #ide +FACTORY_OTA_PASSWORD + + +23  + #FACTORY_OTA_PASSWORD + "e-a" + + ) + +26 #ide +FACTORY_OTA_ENABLED + + +27  + #FACTORY_OTA_ENABLED + +ue + + + ) + +30  + #OTA_SETTINGS_FILE + "/cfig/aStgs.js" + + ) + +31  + #OTA_SETTINGS_SERVICE_PATH + "//aStgs" + + ) + +33 as + cOTAStgs + { + +34 + mpublic +: + +35 +bo + +abd +; + +36  + mpt +; + +37 +Sg + + msswd +; + +39  + $ad +( +OTAStgs +& +gs +, +JsObje +& +ro +) { + +40 +ro +["abd"] = +gs +. +abd +; + +41 +ro +["pt"] = +gs +. +pt +; + +42 +ro +["sswd"] = +gs +. +sswd +; + +45  +SUpdeResu + + $upde +( +JsObje +& +ro +, +OTAStgs +& +gs +) { + +46 +gs +. +abd + = +ro +["abd"] | +FACTORY_OTA_ENABLED +; + +47 +gs +. +pt + = +ro +["pt"] | +FACTORY_OTA_PORT +; + +48 +gs +. +sswd + = +ro +["sswd"] | +FACTORY_OTA_PASSWORD +; + +49  +SUpdeResu +:: +CHANGED +; + +50 + } +} + +53 +ass + + gOTAStgsSvi + : +public + +SfulSvi +< +OTAStgs +> { + +54 +public +: + +55 +OTAStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +, +SecuryMag +* +curyMag +); + +57  +beg +(); + +58  +lo +(); + +60 + give +: + +61 +HpEndpot +< +OTAStgs +> +_hpEndpot +; + +62 + gFSPsi +< + gOTAStgs +> + g_fsPsi +; + +63 +ArduoOTACss +* + g_duoOTA +; + +65  +cfiguArduoOTA +(); + +66 #ifde +ESP32 + + +67  +StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +68 #i +defed +( +ESP8266 +) + +69 +WiFiEvtHdr + + g_StiModeGIPHdr +; + +70  +StiModeGIP +(cڡ +WiFiEvtStiModeGIP +& +evt +); + + @lib/framework/RestartService.cpp + +1  + ~ + +3 + gRetSvi +:: + $RetSvi +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +) { + +4 +rv +-> + ` +( +RESTART_SERVICE_PATH +, + +5 +HTTP_POST +, + +6 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +RetSvi +:: +t +, +this +, std:: +ahds +:: +_1 +), + +7 +AuthtitiPdis +:: +IS_ADMIN +)); + +8 + } +} + +10  + gRetSvi +:: + $t +( +AsyncWebSvReque +* +que +) { + +11 +que +-> + `Disc +( +RetSvi +:: +tNow +); + +12 +que +-> + `nd +(200); + +13 + } +} + + @lib/framework/RestartService.h + +1 #ide +RetSvi_h + + +2  + #RetSvi_h + + + ) + +4 #ifde +ESP32 + + +5  + ~ + +6  + ~ + +7 #i +defed +( +ESP8266 +) + +8  + ~ + +9  + ~ + +12  + ~ + +13  + ~ + +15  + #RESTART_SERVICE_PATH + "//t" + + ) + +17 as + cRetSvi + { + +18 + mpublic +: + +19 +RetSvi +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +); + +21  + $tNow +() { + +22 +WiFi +. + `disc +( +ue +); + +23 + `day +(500); + +24 +ESP +. + `t +(); + +27 +ive +: + +28  + `t +( +AsyncWebSvReque +* +que +); + +29 + } +}; + + @lib/framework/SecurityManager.h + +1 #ide +SecuryMag_h + + +2  + #SecuryMag_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +7  + ~ + +8  + ~ + +9  + ~
  • + +11 #ide +FACTORY_JWT_SECRET + + +12  + #FACTORY_JWT_SECRET + +ESPUts +:: + `deuDeviVue +() + + ) + +15  + #ACCESS_TOKEN_PARAMATER + "acss_tok" + + ) + +17  + #AUTHORIZATION_HEADER + "Authizi" + + ) + +18  + #AUTHORIZATION_HEADER_PREFIX + "B" + + ) + +19  + #AUTHORIZATION_HEADER_PREFIX_LEN + 7 + + ) + +21  + #MAX_JWT_SIZE + 128 + + ) + +23 as + cUr + { + +24 + mpublic +: + +25 +Sg + +uame +; + +26 +Sg + + msswd +; + +27 +bo + + madm +; + +29 + mpublic +: + +30 + $Ur +( +Sg + +uame +, Sg +sswd +, +bo + +adm +: + `uame +(uame), + `sswd +asswd), + $adm +( +adm +) { + +32 + } +}; + +34 as + cAuthtiti + { + +35 + mpublic +: + +36 +Ur +* +ur +; + +37 +boޗn + + mauthtid +; + +39 + mpublic +: + +40 + $Authtiti +( +Ur +& +ur +: + `ur +( +w + + `Ur +(ur)), + $authtid +( +ue +) { + +42 + $Authtiti +(: + `ur +( +nuαr +), + $authtid +( +l +) { + +43 + } +} + +44 ~ + $Authtiti +() { + +45 + `de + ( +ur +); + +46 + } +} + +49  + gd +:: + tfuni +< + tboޗn +( + tAuthtiti +& + tauthtiti +)> + tAuthtitiPdi +; + +51 as + cAuthtitiPdis + { + +52 + mpublic +: + +53  +bo + + $NONE_REQUIRED +( +Authtiti +& +authtiti +) { + +54  +ue +; + +56  +bo + + $IS_AUTHENTICATED +( +Authtiti +& +authtiti +) { + +57  +authtiti +. +authtid +; + +58 + } +}; + +59  +bo + + $IS_ADMIN +( +Authtiti +& +authtiti +) { + +60  +authtiti +. +authtid + &&uthtiti. +ur +-> +adm +; + +61 + } +}; + +64 as + cSecuryMag + { + +65 + mpublic +: + +66 #i + $FT_ENABLED +( +FT_SECURITY +) + +70 +vtu + +Authtiti + + `authti +(cڡ +Sg +& +uame +, cڡ Sg& +sswd +) = 0; + +75 +vtu + +Sg + + `geJWT +( +Ur +* +ur +) = 0; + +82 +vtu + +Authtiti + + `authtiReque +( +AsyncWebSvReque +* +que +) = 0; + +87 +vtu + +ArRequeFrFuni + + `frReque +( +AuthtitiPdi + +edi +) = 0; + +92 +vtu + +ArRequeHdrFuni + + `wpReque +(ArRequeHdrFuni +Reque +, + +93 +AuthtitiPdi + +edi +) = 0; + +98 +vtu + +ArJsRequeHdrFuni + + `wpClback +(ArJsRequeHdrFuni +Reque +, + +99 +AuthtitiPdi + +edi +) = 0; + + @lib/framework/SecuritySettingsService.cpp + +1  + ~ + +3 #i +FT_ENABLED +( +FT_SECURITY +) + +5 + gSecuryStgsSvi +:: + $SecuryStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +) : + +6 + `_hpEndpot +( +SecuryStgs +:: +ad +, SecuryStgs:: +upde +, +this +, +rv +, +SECURITY_SETTINGS_PATH +,his), + +7 + `_fsPsi +( +SecuryStgs +:: +ad +, SecuryStgs:: +upde +, +this +, +fs +, +SECURITY_SETTINGS_FILE +), + +8 + $_jwtHdr +( +FACTORY_JWT_SECRET +) { + +9 + `addUpdeHdr +([&](cڡ +Sg +& +igId +{ + `cfiguJWTHdr +(); }, +l +); + +10 + } +} + +12  + gSecuryStgsSvi +:: + $beg +() { + +13 +_fsPsi +. + `adFromFS +(); + +14 + `cfiguJWTHdr +(); + +15 + } +} + +17 +Authtiti + + gSecuryStgsSvi +:: + $authtiReque +( +AsyncWebSvReque +* +que +) { + +18 +AsyncWebHd +* +authiziHd + = +que +-> + `gHd +( +AUTHORIZATION_HEADER +); + +19 i( +authiziHd +) { + +20 +Sg + +vue + = +authiziHd +-> + `vue +(); + +21 i( +vue +. + `tsWh +( +AUTHORIZATION_HEADER_PREFIX +)) { + +22 +vue + = vue. + `subrg +( +AUTHORIZATION_HEADER_PREFIX_LEN +); + +23  + `authtiJWT +( +vue +); + +25 } i( +que +-> + `hasPam +( +ACCESS_TOKEN_PARAMATER +)) { + +26 +AsyncWebPam +* +tokPam + = +que +-> + `gPam +( +ACCESS_TOKEN_PARAMATER +); + +27 +Sg + +vue + = +tokPam +-> + `vue +(); + +28  + `authtiJWT +( +vue +); + +30  + `Authtiti +(); + +31 + } +} + +33  + gSecuryStgsSvi +:: + $cfiguJWTHdr +() { + +34 +_jwtHdr +. + `tSe +( +_e +. +jwtSe +); + +35 + } +} + +37 +Authtiti + + gSecuryStgsSvi +:: + $authtiJWT +( +Sg +& +jwt +) { + +38 +DymicJsDocumt + + `yldDocumt +( +MAX_JWT_SIZE +); + +39 +_jwtHdr +. + `rJWT +( +jwt +, +yldDocumt +); + +40 i( +yldDocumt +. +is +< +JsObje +>()) { + +41 +JsObje + +rdPayld + = +yldDocumt +. +as +(); + +42 +Sg + +uame + = +rdPayld +["username"]; + +43  +Ur + +_ur + : +_e +. +urs +) { + +44 i( +_ur +. +uame + =uam&& + `videPayld +( +rdPayld +, &_user)) { + +45  + `Authtiti +( +_ur +); + +49  + `Authtiti +(); + +50 + } +} + +52 +Authtiti + + gSecuryStgsSvi +:: + $authti +(cڡ +Sg +& +uame +, cڡ Sg& +sswd +) { + +53  +Ur + +_ur + : +_e +. +urs +) { + +54 i( +_ur +. +uame + =uam&& _ur. +sswd + ==assword) { + +55  + `Authtiti +( +_ur +); + +58  + `Authtiti +(); + +59 + } +} + +61 +le +  + $puϋJWTPayld +( +JsObje +& +yld +, +Ur +* +ur +) { + +62 +yld +["uame"] = +ur +-> +uame +; + +63 +yld +["adm"] = +ur +-> +adm +; + +64 +yld +["vsi"] = +EMSESP_APP_VERSION +; + +65 + } +} + +67 +boޗn + + gSecuryStgsSvi +:: + $videPayld +( +JsObje +& +rdPayld +, +Ur +* +ur +) { + +68 +DymicJsDocumt + + `jsDocumt +( +MAX_JWT_SIZE +); + +69 +JsObje + +yld + = +jsDocumt +. +to +(); + +70 + `puϋJWTPayld +( +yld +, +ur +); + +71  +yld + = +rdPayld +; + +72 + } +} + +74 +Sg + + gSecuryStgsSvi +:: + $geJWT +( +Ur +* +ur +) { + +75 +DymicJsDocumt + + `jsDocumt +( +MAX_JWT_SIZE +); + +76 +JsObje + +yld + = +jsDocumt +. +to +(); + +77 + `puϋJWTPayld +( +yld +, +ur +); + +78  +_jwtHdr +. + `budJWT +( +yld +); + +79 + } +} + +81 +ArRequeFrFuni + + gSecuryStgsSvi +:: + $frReque +( +AuthtitiPdi + +edi +) { + +82  [ +this +, +edi +]( +AsyncWebSvReque +* +que +) { + +83 +Authtiti + +authtiti + = + `authtiReque +( +que +); + +84  + `edi +( +authtiti +); + +86 + } +} + +88 +ArRequeHdrFuni + + gSecuryStgsSvi +:: + $wpReque +( +ArRequeHdrFuni + +Reque +, + +89 +AuthtitiPdi + +edi +) { + +90  [ +this +, +Reque +, +edi +]( +AsyncWebSvReque +* +que +) { + +91 +Authtiti + +authtiti + = + `authtiReque +( +que +); + +92 i(! + `edi +( +authtiti +)) { + +93 +que +-> + `nd +(401); + +96 + `Reque +( +que +); + +98 + } +} + +100 +ArJsRequeHdrFuni + + gSecuryStgsSvi +:: + $wpClback +( +ArJsRequeHdrFuni + +Reque +, + +101 +AuthtitiPdi + +edi +) { + +102  [ +this +, +Reque +, +edi +]( +AsyncWebSvReque +* +que +, +JsV +& +js +) { + +103 +Authtiti + +authtiti + = + `authtiReque +( +que +); + +104 i(! + `edi +( +authtiti +)) { + +105 +que +-> + `nd +(401); + +108 + `Reque +( +que +, +js +); + +110 + } +} + +114 +Ur + + gADMIN_USER + = Ur( +FACTORY_ADMIN_USERNAME +, +FACTORY_ADMIN_PASSWORD +, +ue +); + +116 + gSecuryStgsSvi +:: + $SecuryStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +: + $SecuryMag +() { + +117 + } +} + +118 +SecuryStgsSvi +::~ + $SecuryStgsSvi +() { + +119 + } +} + +121 +ArRequeFrFuni + +SecuryStgsSvi +:: + $frReque +( +AuthtitiPdi + +edi +) { + +122  [ +this +, +edi +]( +AsyncWebSvReque +* +que +{  +ue +; }; + +123 + } +} + +126 +Authtiti + + gSecuryStgsSvi +:: + $authtiReque +( +AsyncWebSvReque +* +que +) { + +127  + `Authtiti +( +ADMIN_USER +); + +128 + } +} + +131 +ArRequeHdrFuni + + gSecuryStgsSvi +:: + $wpReque +( +ArRequeHdrFuni + +Reque +, + +132 +AuthtitiPdi + +edi +) { + +133  +Reque +; + +134 + } +} + +136 +ArJsRequeHdrFuni + + gSecuryStgsSvi +:: + $wpClback +( +ArJsRequeHdrFuni + +Reque +, + +137 +AuthtitiPdi + +edi +) { + +138  +Reque +; + +139 + } +} + + @lib/framework/SecuritySettingsService.h + +1 #ide +SecuryStgsSvi_h + + +2  + #SecuryStgsSvi_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +7  + ~ + +9  + ~"../../c/vsi.h +" + +11 #ide +FACTORY_ADMIN_USERNAME + + +12  + #FACTORY_ADMIN_USERNAME + "adm" + + ) + +15 #ide +FACTORY_ADMIN_PASSWORD + + +16  + #FACTORY_ADMIN_PASSWORD + "adm" + + ) + +19 #ide +FACTORY_GUEST_USERNAME + + +20  + #FACTORY_GUEST_USERNAME + "gue" + + ) + +23 #ide +FACTORY_GUEST_PASSWORD + + +24  + #FACTORY_GUEST_PASSWORD + "gue" + + ) + +27  + #SECURITY_SETTINGS_FILE + "/cfig/curyStgs.js" + + ) + +28  + #SECURITY_SETTINGS_PATH + "//curyStgs" + + ) + +30 #i +FT_ENABLED +( +FT_SECURITY +) + +32 as + cSecuryStgs + { + +33 + mpublic +: + +34 +Sg + +jwtSe +; + +35 + md +:: +li +< +Ur +> +urs +; + +37  + $ad +( +SecuryStgs +& +gs +, +JsObje +& +ro +) { + +39 +ro +["jwt_"] = +gs +. +jwtSe +; + +42 +JsAay + +urs + = +ro +. + `NeedAay +("users"); + +43  +Ur + +ur + : +gs +. +urs +) { + +44 +JsObje + +urRo + = +urs +. + `NeedObje +(); + +45 +urRo +["uame"] = +ur +. +uame +; + +46 +urRo +["sswd"] = +ur +. +sswd +; + +47 +urRo +["adm"] = +ur +. +adm +; + +51  +SUpdeResu + + $upde +( +JsObje +& +ro +, +SecuryStgs +& +gs +) { + +53 +gs +. +jwtSe + = +ro +["jwt_"] | +FACTORY_JWT_SECRET +; + +56 +gs +. +urs +. + `r +(); + +57 i( +ro +["urs"]. +is +< +JsAay +>()) { + +58  +JsV + +ur + : +ro +["urs"]. +as +< +JsAay +>()) { + +59 +gs +. +urs +. + `push_back +( + `Ur +( +ur +["username"], user["password"], user["admin"])); + +62 +gs +. +urs +. + `push_back +( + `Ur +( +FACTORY_ADMIN_USERNAME +, +FACTORY_ADMIN_PASSWORD +, +ue +)); + +63 +gs +. +urs +. + `push_back +( + `Ur +( +FACTORY_GUEST_USERNAME +, +FACTORY_GUEST_PASSWORD +, +l +)); + +65  +SUpdeResu +:: +CHANGED +; + +66 + } +} + +69 +ass + + gSecuryStgsSvi + : +public + +SfulSvi +< +SecuryStgs +>,ubli + gSecuryMag + { + +70 + gpublic +: + +71 +SecuryStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +); + +73  +beg +(); + +76 +Authtiti + +authti +(cڡ +Sg +& +uame +, cڡ Sg& +sswd +); + +77 +Authtiti + +authtiReque +( +AsyncWebSvReque +* +que +); + +78 +Sg + +geJWT +( +Ur +* +ur +); + +79 +ArRequeFrFuni + +frReque +( +AuthtitiPdi + +edi +); + +80 +ArRequeHdrFuni + +wpReque +(ArRequeHdrFuni +Reque +, +AuthtitiPdi + +edi +); + +81 +ArJsRequeHdrFuni + +wpClback +(ArJsRequeHdrFuni +back +, +AuthtitiPdi + +edi +); + +83 + give +: + +84 +HpEndpot +< +SecuryStgs +> +_hpEndpot +; + +85 + gFSPsi +< + gSecuryStgs +> + g_fsPsi +; + +86 +ArduoJsJWT + + g_jwtHdr +; + +88  +cfiguJWTHdr +(); + +93 +Authtiti + +authtiJWT +( +Sg +& +jwt +); + +98 +boޗn + +videPayld +( +JsObje +& +rdPayld +, +Ur +* +ur +); + +103 as + cSecuryStgsSvi + : +public + +SecuryMag + { + +104 +public +: + +105 +SecuryStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +); + +106 ~ +SecuryStgsSvi +(); + +109 +Authtiti + +authtiReque +( +AsyncWebSvReque +* +que +); + +110 +ArRequeFrFuni + +frReque +( +AuthtitiPdi + +edi +); + +111 +ArRequeHdrFuni + +wpReque +(ArRequeHdrFuni +Reque +, +AuthtitiPdi + +edi +); + +112 +ArJsRequeHdrFuni + +wpClback +(ArJsRequeHdrFuni +Reque +, +AuthtitiPdi + +edi +); + + @lib/framework/StatefulService.cpp + +1  + ~ + +3 +upde_hdr_id_t + + gSUpdeHdrInfo +:: +cutUpdedHdrId + = 0; + + @lib/framework/StatefulService.h + +1 #ide +SfulSvi_h + + +2  + #SfulSvi_h + + + ) + +4  + ~ + +5  + ~ + +7  + ~
  • + +8  + ~ + +9 #ifde +ESP32 + + +10  + ~<䓹os/FeRTOS.h +> + +11  + ~<䓹os/mphr.h +> + +14 #ide +DEFAULT_BUFFER_SIZE + + +15  + #DEFAULT_BUFFER_SIZE + 1024 + + ) + +18 as + cSUpdeResu + { + +19 + mCHANGED + = 0, + +20 + mUNCHANGED +, + +21 + mERROR + + +24 + gme + < +tyme + + gT +> + +25 +usg + + gJsSUpd + = +d +:: +funi +< +SUpdeResu +( +JsObje +& +ro +, +T +& +gs +)>; + +27 + gme + < +tyme + + gT +> + +28 +usg + + gJsSRd + = +d +:: +funi +<( +T +& +gs +, + gJsObje +& + gro +)>; + +30  +size_t + + tupde_hdr_id_t +; + +31  + gd +:: + tfuni +<(cڡ + tSg +& + tigId +)> + tSUpdeClback +; + +33  + sSUpdeHdrInfo + { + +34  +upde_hdr_id_t + + mcutUpdedHdrId +; + +35 +upde_hdr_id_t + + m_id +; + +36 +SUpdeClback + + m_cb +; + +37 +bo + + m_lowRemove +; + +38 +SUpdeHdrInfo +( +SUpdeClback + +cb +, +bo + +lowRemove +) : + +39 +_id +(++ +cutUpdedHdrId +), +_cb +( +cb +), +_lowRemove +( +lowRemove +){}; + +40 } + tSUpdeHdrInfo_t +; + +42 + gme + < +ass + + gT +> + +43 as + cSfulSvi + { + +44 + mpublic +: + +45 +me + < +tyme +... +Args +> + +46 #ifde +ESP32 + + +47 + $SfulSvi +( +Args +&&... +gs +) : + +48 + `_e +( +d +:: +fwd +< +Args +>( +gs +)...), + `_acssMux +( + $xSemheCeRecursiveMux +()) { + +51 + $SfulSvi +( +Args +&&... +gs +: + `_e +( +d +:: +fwd +(args)...) { + +52 + } +} + +55 +upde_hdr_id_t + + $addUpdeHdr +( +SUpdeClback + +cb +, +bo + +lowRemove + = +ue +) { + +56 i(! +cb +) { + +59 +SUpdeHdrInfo_t + + `updeHdr +( +cb +, +lowRemove +); + +60 +_updeHdrs +. + `push_back +( +updeHdr +); + +61  +updeHdr +. +_id +; + +62 + } +} + +64  + $moveUpdeHdr +( +upde_hdr_id_t + +id +) { + +65 aut +i + = +_updeHdrs +. + `beg +(); i !_updeHdrs. + `d +();) { + +66 i((* +i +). +_lowRemove + && (*i). +_id + = +id +) { + +67 +i + = +_updeHdrs +. + `a +(i); + +69 ++ +i +; + +72 + } +} + +74 +SUpdeResu + +upde +( +d +:: +funi + +eUpd +, cڡ +Sg +& +igId +) { + +75 +begTni +(); + +76 +SUpdeResu + + gsu + = +eUpd +( +_e +); + +77 +dTni +(); + +78 i( + gsu + = +SUpdeResu +:: +CHANGED +) { + +79 +UpdeHdrs +( +igId +); + +81  + gsu +; + +84 +SUpdeResu + +updeWhoutPragi +( +d +:: +funi + +eUpd +) { + +85 +begTni +(); + +86 +SUpdeResu + + gsu + = +eUpd +( +_e +); + +87 +dTni +(); + +88  + gsu +; + +91 +SUpdeResu + +upde +( +JsObje +& +jsObje +, +JsSUpd +< +T +> +eUpd +, cڡ +Sg +& +igId +) { + +92 +begTni +(); + +93 +SUpdeResu + + gsu + = +eUpd +( +jsObje +, +_e +); + +94 +dTni +(); + +95 i( + gsu + = +SUpdeResu +:: +CHANGED +) { + +96 +UpdeHdrs +( +igId +); + +98  + gsu +; + +101 +SUpdeResu + +updeWhoutPragi +( +JsObje +& +jsObje +, +JsSUpd +< +T +> +eUpd +) { + +102 +begTni +(); + +103 +SUpdeResu + + gsu + = +eUpd +( +jsObje +, +_e +); + +104 +dTni +(); + +105  + gsu +; + +108  +ad +( +d +:: +funi +<( +T +&)> +eRd +) { + +109 +begTni +(); + +110 +eRd +( +_e +); + +111 +dTni +(); + +114  +ad +( +JsObje +& +jsObje +, +JsSRd +< +T +> +eRd +) { + +115 +begTni +(); + +116 +eRd +( +_e +, +jsObje +); + +117 +dTni +(); + +120  + $UpdeHdrs +(cڡ +Sg +& +igId +) { + +121 cڡ +SUpdeHdrInfo_t +& +updeHdr + : +_updeHdrs +) { + +122 +updeHdr +. + `_cb +( +igId +); + +124 + } +} + +126 + geed +: + +127 +T + +_e +; + +129 +le +  + $begTni +() { + +130 #ifde +ESP32 + + +131 + `xSemheTakeRecursive +( +_acssMux +, +ptMAX_DELAY +); + +133 + } +} + +135 +le +  + $dTni +() { + +136 #ifde +ESP32 + + +137 + `xSemheGiveRecursive +( +_acssMux +); + +139 + } +} + +141 + give +: + +142 #ifde +ESP32 + + +143 +SemheHd_t + +_acssMux +; + +145 + gd +:: +li +< +SUpdeHdrInfo_t +> +_updeHdrs +; + + @lib/framework/SystemStatus.cpp + +1  + ~ + +3 + gSyemStus +:: + $SyemStus +( +AsyncWebSv + * +rv +, +SecuryMag + * +curyMag +) { + +4 +rv +-> + ` +( +SYSTEM_STATUS_SERVICE_PATH +, + +5 +HTTP_GET +, + +6 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +SyemStus +:: +syemStus +, +this +, std:: +ahds +:: +_1 +), +AuthtitiPdis +:: +IS_AUTHENTICATED +)); + +7 + } +} + +9  + gSyemStus +:: + $syemStus +( +AsyncWebSvReque + * +que +) { + +10 +ut8_t + +_mem_r + = +em +:: +Syem +:: + `_mem +(); + +12 +AsyncJsReڣ + * +ڣ + = +w + + `AsyncJsReڣ +( +l +, +MAX_ESP_STATUS_SIZE +); + +13 +JsObje + +ro + = +ڣ +-> + `gRo +(); + +14 #ifde +ESP32 + + +15 +ro +["esp_platform"] = "esp32"; + +16 +ro +["max_loc_hp"] = +ESP +. + `gMaxAocHp +(); + +17 +ro +["pam_size"] = +ESP +. + `gPamSize +(); + +18 +ro +["_pam"] = +ESP +. + `gFePam +(); + +19 #i + `defed +( +ESP8266 +) + +20 +ro +["esp_platform"] = "esp8266"; + +21 +ro +["max_loc_hp"] = +ESP +. + `gMaxFeBlockSize +(); + +22 +ro +["hp_agmti"] = +ESP +. + `gHpFgmti +(); + +24 +ro +["u_eq_mhz"] = +ESP +. + `gCpuFqMHz +(); + +25 +ro +["_hp"] = +ESP +. + `gFeHp +(); + +26 +ro +["skch_size"] = +ESP +. + `gSkchSize +(); + +27 +ro +["_skch_a"] = +ESP +. + `gFeSkchS +(); + +28 +ro +["sdk_vsi"] = +ESP +. + `gSdkVsi +(); + +29 +ro +["ash_ch_size"] = +ESP +. + `gFshChSize +(); + +30 +ro +["ash_ch_d"] = +ESP +. + `gFshChSed +(); + +33 #ifde +ESP32 + + +34 +ro +["fs_tٮ"] = +SPIFFS +. + `tٮBys +(); + +35 +ro +["fs_ud"] = +SPIFFS +. + `udBys +(); + +36 #i + `defed +( +ESP8266 +) + +37 +FSInfo + +fs_fo +; + +38 +LeFS +. + `fo +( +fs_fo +); + +39 +ro +["fs_tٮ"] = +fs_fo +. +tٮBys +; + +40 +ro +["fs_ud"] = +fs_fo +. +udBys +; + +43 +ro +["uime"] = +uuid +:: +log +:: + `fm_timeamp_ms +(uuid:: + `g_uime_ms +(), 3); + +44 +ro +["_mem"] = +_mem_r +; + +46 +ڣ +-> + `tLgth +(); + +47 +que +-> + `nd +( +ڣ +); + +48 + } +} + + @lib/framework/SystemStatus.h + +1 #ide +SyemStus_h + + +2  + #SyemStus_h + + + ) + +4 #ifde +ESP32 + + +5  + ~ + +6  + ~ + +7  + ~ + +8 #i +defed +( +ESP8266 +) + +9  + ~ + +10  + ~ + +12  + ~ + +15  + ~ + +16  + ~ + +17  + ~ + +18  + ~ + +20  + ~ + +21  + ~"../../c/syem.h +" + +23  + #MAX_ESP_STATUS_SIZE + 1024 + + ) + +24  + #SYSTEM_STATUS_SERVICE_PATH + "//syemStus" + + ) + +26 as + cSyemStus + { + +27 + mpublic +: + +28 +SyemStus +( +AsyncWebSv + * +rv +, +SecuryMag + * +curyMag +); + +30 + mive +: + +31  +syemStus +( +AsyncWebSvReque + * +que +); + + @lib/framework/UploadFirmwareService.cpp + +1  + ~ + +3 + gUdFmweSvi +:: + $UdFmweSvi +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +) : + +4 + $_curyMag +( +curyMag +) { + +5 +rv +-> + ` +( +UPLOAD_FIRMWARE_PATH +, + +6 +HTTP_POST +, + +7 +d +:: + `bd +(& +UdFmweSvi +:: +udCome +, +this +, std:: +ahds +:: +_1 +), + +8 +d +:: + `bd +(& +UdFmweSvi +:: +hdUd +, + +9 +this +, + +10 +d +:: +ahds +:: +_1 +, + +11 +d +:: +ahds +:: +_2 +, + +12 +d +:: +ahds +:: +_3 +, + +13 +d +:: +ahds +:: +_4 +, + +14 +d +:: +ahds +:: +_5 +, + +15 +d +:: +ahds +:: +_6 +)); + +16 #ifde +ESP8266 + + +17 +Upde +. + `runAsync +( +ue +); + +19 + } +} + +21  + gUdFmweSvi +:: + $hdUd +( +AsyncWebSvReque +* +que +, + +22 cڡ +Sg +& +fame +, + +23 +size_t + +dex +, + +24 +ut8_t +* +da +, + +25 +size_t + +n +, + +26 +bo + +f +) { + +27 i(! +dex +) { + +28 +Authtiti + +authtiti + = +_curyMag +-> + `authtiReque +( +que +); + +29 i( +AuthtitiPdis +:: + `IS_ADMIN +( +authtiti +)) { + +30 i( +Upde +. + `beg +( +que +-> + `cڋLgth +())) { + +32 +que +-> + `Disc +( +UdFmweSvi +:: +hdElyDisc +); + +35 +Upde +. + `tE +( +Sl +); + +36 + `hdE +( +que +, 500); + +40 + `hdE +( +que +, 403); + +45 i(! +que +-> +_mpObje +) { + +46 i( +Upde +. + `wre +( +da +, +n +) !=en) { + +47 +Upde +. + `tE +( +Sl +); + +48 + `hdE +( +que +, 500); + +50 i( +f +) { + +51 i(! +Upde +. + `d +( +ue +)) { + +52 +Upde +. + `tE +( +Sl +); + +53 + `hdE +( +que +, 500); + +57 + } +} + +59  + gUdFmweSvi +:: + $udCome +( +AsyncWebSvReque +* +que +) { + +61 i(! +que +-> +_mpObje +) { + +62 +que +-> + `Disc +( +RetSvi +:: +tNow +); + +63 +AsyncWebSvReڣ +* +ڣ + = +que +-> + `begReڣ +(200); + +64 +que +-> + `nd +( +ڣ +); + +66 + } +} + +68  + gUdFmweSvi +:: + $hdE +( +AsyncWebSvReque +* +que +,  +code +) { + +70 i( +que +-> +_mpObje +) { + +74 +que +-> +_mpObje + = +w + ( +code +); + +75 +AsyncWebSvReڣ +* +ڣ + = +que +-> + `begReڣ +( +code +); + +76 +que +-> + `nd +( +ڣ +); + +77 + } +} + +79  + gUdFmweSvi +:: + $hdElyDisc +() { + +80 #ifde +ESP32 + + +81 +Upde +. + `abt +(); + +82 #i + `defed +( +ESP8266 +) + +83 +Upde +. + `d +(); + +85 + } +} + + @lib/framework/UploadFirmwareService.h + +1 #ide +UdFmweSvi_h + + +2  + #UdFmweSvi_h + + + ) + +4  + ~ + +6 #ifde +ESP32 + + +7  + ~ + +8  + ~ + +9  + ~ + +10 #i +defed +( +ESP8266 +) + +11  + ~ + +12  + ~ + +15  + ~ + +16  + ~ + +17  + ~ + +19  + #UPLOAD_FIRMWARE_PATH + "//udFmwe" + + ) + +21 as + cUdFmweSvi + { + +22 + mpublic +: + +23 +UdFmweSvi +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +); + +25 + mive +: + +26 +SecuryMag +* +_curyMag +; + +27  +hdUd +( +AsyncWebSvReque +* +que +, + +28 cڡ +Sg +& +fame +, + +29 +size_t + +dex +, + +30 +ut8_t +* +da +, + +31 +size_t + +n +, + +32 +bo + +f +); + +33  +udCome +( +AsyncWebSvReque +* +que +); + +34  +hdE +( +AsyncWebSvReque +* +que +,  +code +); + +35  +hdElyDisc +(); + + @lib/framework/WWWData.h + +1  + ~ + +3 cڡ +ut8_t + + gESP_REACT_DATA_0 +[] + gPROGMEM + = { + +414 cڡ +ut8_t + + gESP_REACT_DATA_1 +[] + gPROGMEM + = { + +426 cڡ +ut8_t + + gESP_REACT_DATA_2 +[] + gPROGMEM + = { + +445 cڡ +ut8_t + + gESP_REACT_DATA_3 +[] + gPROGMEM + = { + +480 cڡ +ut8_t + + gESP_REACT_DATA_4 +[] + gPROGMEM + = { + +1257 cڡ +ut8_t + + gESP_REACT_DATA_5 +[] + gPROGMEM + = { + +2039 cڡ +ut8_t + + gESP_REACT_DATA_6 +[] + gPROGMEM + = { + +2811 cڡ +ut8_t + + gESP_REACT_DATA_7 +[] + gPROGMEM + = { + +4044 cڡ +ut8_t + + gESP_REACT_DATA_8 +[] + gPROGMEM + = { + +4084 cڡ +ut8_t + + gESP_REACT_DATA_9 +[] + gPROGMEM + = { + +12266 cڡ +ut8_t + + gESP_REACT_DATA_10 +[] + gPROGMEM + = { + +12321 cڡ +ut8_t + + gESP_REACT_DATA_11 +[] + gPROGMEM + = { + +12340  + gd +:: + tfuni +<(cڡ + tSg +& + turi +, cڡ Sg& + tcڋTy +, cڡ + tut8_t + * + tcڋ +, + tsize_t + + tn +)> + tRouRegitiHdr +; + +12342 as + cWWWDa + { + +12343 + mpublic +: + +12344  + $giRous +( +RouRegitiHdr + +hdr +) { + +12345 + `hdr +("/p/ic.g", "image/g", +ESP_REACT_DATA_0 +, 8148); + +12346 + `hdr +("/p/mi.js", "iti/js", +ESP_REACT_DATA_1 +, 168); + +12347 + `hdr +("/css/robo.css", "xt/css", +ESP_REACT_DATA_2 +, 306); + +12348 + `hdr +("/vic.ico", "image/vnd.mioso.ic", +ESP_REACT_DATA_3 +, 628); + +12349 + `hdr +("/fts/li.woff2", "ft/woff2", +ESP_REACT_DATA_4 +, 15463); + +12350 + `hdr +("/fts/me.woff2", "ft/woff2", +ESP_REACT_DATA_5 +, 15575); + +12351 + `hdr +("/fts/.woff2", "ft/woff2", +ESP_REACT_DATA_6 +, 15367); + +12352 + `hdr +("/js/0.a9.js", "iti/javast", +ESP_REACT_DATA_7 +, 24581); + +12353 + `hdr +("/js/1.b30b.js", "iti/javast", +ESP_REACT_DATA_8 +, 735); + +12354 + `hdr +("/js/2.8e22.js", "iti/javast", +ESP_REACT_DATA_9 +, 163600); + +12355 + `hdr +("/js/2.8e22.js.LICENSE.txt", "xt/a", +ESP_REACT_DATA_10 +, 1023); + +12356 + `hdr +("/dex.html", "xt/html", +ESP_REACT_DATA_11 +, 301); + +12358 + } +}; + + @lib/framework/WebSocketTxRx.h + +1 #ide +WebSockTxRx_h + + +2  + #WebSockTxRx_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +8  + #WEB_SOCKET_CLIENT_ID_MSG_SIZE + 128 + + ) + +10  + #WEB_SOCKET_ORIGIN + "websock" + + ) + +11  + #WEB_SOCKET_ORIGIN_CLIENT_ID_PREFIX + "websock:" + + ) + +13 + gme + < +ass + + gT +> + +14 as + cWebSockC + { + +15 + meed +: + +16 +SfulSvi +< +T +>* +_efulSvi +; + +17 +AsyncWebSv +* + m_rv +; + +18 +AsyncWebSock + + m_webSock +; + +19 +size_t + + m_bufrSize +; + +21 +WebSockC +( +SfulSvi +< +T +>* +efulSvi +, + +22 +AsyncWebSv +* +rv +, + +23 cڡ* +webSockPh +, + +24 +SecuryMag +* +curyMag +, + +25 +AuthtitiPdi + +authtitiPdi +, + +26 +size_t + +bufrSize +) : + +27 +_efulSvi +( +efulSvi +), +_rv +( +rv +), +_webSock +( +webSockPh +), + $_bufrSize +( +bufrSize +) { + +28 +_webSock +. + `tFr +( +curyMag +-> + `frReque +( +authtitiPdi +)); + +29 +_webSock +. + `Evt +( +d +:: + `bd +(& +WebSockC +:: +WSEvt +, + +30 +this +, + +31 +d +:: +ahds +:: +_1 +, + +32 +d +:: +ahds +:: +_2 +, + +33 +d +:: +ahds +:: +_3 +, + +34 +d +:: +ahds +:: +_4 +, + +35 +d +:: +ahds +:: +_5 +, + +36 +d +:: +ahds +:: +_6 +)); + +37 +_rv +-> + `addHdr +(& +_webSock +); + +38 +_rv +-> + ` +( +webSockPh +, +HTTP_GET +, +d +:: + `bd +(& +WebSockC +:: +fbidd +, +this +, std:: +ahds +:: +_1 +)); + +41 + `WebSockC +( +SfulSvi +< +T +>* +efulSvi +, + +42 +AsyncWebSv +* +rv +, + +43 cڡ* +webSockPh +, + +44 +size_t + +bufrSize +) : + +45 + `_efulSvi +( +efulSvi +), + `_rv +( +rv +), + `_webSock +( +webSockPh +), + $_bufrSize +( +bufrSize +) { + +46 +_webSock +. + `Evt +( +d +:: + `bd +(& +WebSockC +:: +WSEvt +, + +47 +this +, + +48 +d +:: +ahds +:: +_1 +, + +49 +d +:: +ahds +:: +_2 +, + +50 +d +:: +ahds +:: +_3 +, + +51 +d +:: +ahds +:: +_4 +, + +52 +d +:: +ahds +:: +_5 +, + +53 +d +:: +ahds +:: +_6 +)); + +54 +_rv +-> + `addHdr +(& +_webSock +); + +55 + } +} + +57 +vtu +  +WSEvt +( +AsyncWebSock +* +rv +, + +58 +AsyncWebSockCl +* + +, + +59 +AwsEvtTy + +ty +, + +60 * +g +, + +61 +ut8_t +* +da +, + +62 +size_t + +n +) = 0; + +64 +Sg + + $Id +( +AsyncWebSockCl +* + +) { + +65  +WEB_SOCKET_ORIGIN_CLIENT_ID_PREFIX + + + `Sg +( + +-> + `id +()); + +66 + } +} + +68 + give +: + +69  + $fbidd +( +AsyncWebSvReque +* +que +) { + +70 +que +-> + `nd +(403); + +71 + } +} + +74 + gme + < +ass + + gT +> + +75 +ass + + gWebSockTx + : +vtu + +public + +WebSockC +< +T +> { + +76 +public +: + +77 +WebSockTx +( +JsSRd +< +T +> +eRd +, + +78 +SfulSvi +< +T +>* +efulSvi +, + +79 +AsyncWebSv +* +rv +, + +80 cڡ* +webSockPh +, + +81 +SecuryMag +* +curyMag +, + +82 +AuthtitiPdi + +authtitiPdi + = +AuthtitiPdis +:: +IS_ADMIN +, + +83 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +84 +WebSockC +< +T +>( +efulSvi +, + +85 + grv +, + +86 + gwebSockPh +, + +87 + gcuryMag +, + +88 + gauthtitiPdi +, + +89 + gbufrSize +), + +90 +_eRd +( +eRd +) { + +91 + gWebSockC +< + gT +>:: +_efulSvi +-> +addUpdeHdr +( + +92 [&](cڡ +Sg +& +igId +{ +smDa +( +nuαr +, origId); }, +l +); + +95 +WebSockTx +( +JsSRd +< +T +> +eRd +, + +96 +SfulSvi +< +T +>* +efulSvi +, + +97 +AsyncWebSv +* +rv +, + +98 cڡ* +webSockPh +, + +99 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +100 +WebSockC +< +T +>( +efulSvi +, + grv +, + gwebSockPh +, + gbufrSize +), +_eRd +( +eRd +) { + +101 + gWebSockC +< + gT +>:: +_efulSvi +-> +addUpdeHdr +( + +102 [&](cڡ +Sg +& +igId +{ +smDa +( +nuαr +, origId); }, +l +); + +105 + geed +: + +106 +vtu +  +WSEvt +( +AsyncWebSock +* +rv +, + +107 +AsyncWebSockCl +* + +, + +108 +AwsEvtTy + +ty +, + +109 * +g +, + +110 +ut8_t +* +da +, + +111 +size_t + +n +) { + +112 i( + gty + = +WS_EVT_CONNECT +) { + +114 +smId +( + +); + +115 +smDa +( + +, +WEB_SOCKET_ORIGIN +); + +119 + give +: + +120 +JsSRd +< +T +> +_eRd +; + +122  +smId +( +AsyncWebSockCl +* + +) { + +123 +DymicJsDocumt + + gjsDocumt + = DymicJsDocumt( +WEB_SOCKET_CLIENT_ID_MSG_SIZE +); + +124 +JsObje + + gro + = +jsDocumt +. +to +(); + +125 + gro +["type"] = "id"; + +126 + gro +["id"] = +WebSockC +< +T +>:: +Id +( + +); + +127 +size_t + + gn + = +msuJs +( +jsDocumt +); + +128 +AsyncWebSockMesgeBufr +* + gbufr + = +WebSockC +< +T +>:: +_webSock +. +makeBufr +( +n +); + +129 i( + gbufr +) { + +130 +rlizeJs +( +jsDocumt +, (*) +bufr +-> +g +(), +n + + 1); + +131 + g +-> +xt +( +bufr +); + +142  +smDa +( +AsyncWebSockCl +* + +, cڡ +Sg +& +igId +) { + +143 +DymicJsDocumt + + gjsDocumt + = DymicJsDocumt( +WebSockC +< +T +>:: +_bufrSize +); + +144 +JsObje + + gro + = +jsDocumt +. +to +(); + +145 + gro +["type"] = "payload"; + +146 + gro +["ig_id"] = +igId +; + +147 +JsObje + + gyld + = +ro +. +NeedObje +("payload"); + +148 + gWebSockC +< + gT +>:: +_efulSvi +-> +ad +( +yld +, +_eRd +); + +150 +size_t + + gn + = +msuJs +( +jsDocumt +); + +151 +AsyncWebSockMesgeBufr +* + gbufr + = +WebSockC +< +T +>:: +_webSock +. +makeBufr +( +n +); + +152 i( + gbufr +) { + +153 +rlizeJs +( +jsDocumt +, (*) +bufr +-> +g +(), +n + + 1); + +154 i( + g +) { + +155 + g +-> +xt +( +bufr +); + +157 + gWebSockC +< + gT +>:: +_webSock +. +xtA +( +bufr +); + +163 + gme + < +ass + + gT +> + +164 +ass + + gWebSockRx + : +vtu + +public + +WebSockC +< +T +> { + +165 +public +: + +166 +WebSockRx +( +JsSUpd +< +T +> +eUpd +, + +167 +SfulSvi +< +T +>* +efulSvi +, + +168 +AsyncWebSv +* +rv +, + +169 cڡ* +webSockPh +, + +170 +SecuryMag +* +curyMag +, + +171 +AuthtitiPdi + +authtitiPdi + = +AuthtitiPdis +:: +IS_ADMIN +, + +172 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +173 +WebSockC +< +T +>( +efulSvi +, + +174 + grv +, + +175 + gwebSockPh +, + +176 + gcuryMag +, + +177 + gauthtitiPdi +, + +178 + gbufrSize +), + +179 +_eUpd +( +eUpd +) { + +182 +WebSockRx +( +JsSUpd +< +T +> +eUpd +, + +183 +SfulSvi +< +T +>* +efulSvi +, + +184 +AsyncWebSv +* +rv +, + +185 cڡ* +webSockPh +, + +186 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +187 +WebSockC +< +T +>( +efulSvi +, + grv +, + gwebSockPh +, + gbufrSize +), +_eUpd +( +eUpd +) { + +190 + geed +: + +191 +vtu +  +WSEvt +( +AsyncWebSock +* +rv +, + +192 +AsyncWebSockCl +* + +, + +193 +AwsEvtTy + +ty +, + +194 * +g +, + +195 +ut8_t +* +da +, + +196 +size_t + +n +) { + +197 i( + gty + = +WS_EVT_DATA +) { + +198 +AwsFmeInfo +* +fo + = (AwsFmeInfo*) +g +; + +199 i( + gfo +-> + gf + && info-> + gdex + =0 && +fo +-> +n + ==en) { + +200 i( +fo +-> +code + = +WS_TEXT +) { + +201 +DymicJsDocumt + +jsDocumt + = DymicJsDocumt( +WebSockC +< +T +>:: +_bufrSize +); + +202 +DerliziE + + gr + = +derlizeJs +( +jsDocumt +, (*) +da +); + +203 i(! + gr + && + gjsDocumt +. + gis +< + gJsObje +>()) { + +204 +JsObje + + gjsObje + = +jsDocumt +. +as +(); + +205 + gWebSockC +< + gT +>:: +_efulSvi +-> +upde +( + +206 +jsObje +, +_eUpd +, +WebSockC +< +T +>:: +Id +( + +)); + +213 + give +: + +214 +JsSUpd +< +T +> +_eUpd +; + +217 + gme + < +ass + + gT +> + +218 +ass + + gWebSockTxRx + : +public + +WebSockTx +< +T +>,ubli + gWebSockRx +< + gT +> { + +219 + gpublic +: + +220 +WebSockTxRx +( +JsSRd +< +T +> +eRd +, + +221 +JsSUpd +< +T +> +eUpd +, + +222 +SfulSvi +< +T +>* +efulSvi +, + +223 +AsyncWebSv +* +rv +, + +224 cڡ* +webSockPh +, + +225 +SecuryMag +* +curyMag +, + +226 +AuthtitiPdi + +authtitiPdi + = +AuthtitiPdis +:: +IS_ADMIN +, + +227 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +228 +WebSockC +< +T +>( +efulSvi +, + +229 + grv +, + +230 + gwebSockPh +, + +231 + gcuryMag +, + +232 + gauthtitiPdi +, + +233 + gbufrSize +), + +234 + gWebSockTx +< + gT +>( + geRd +, + +235 + gefulSvi +, + +236 + grv +, + +237 + gwebSockPh +, + +238 + gcuryMag +, + +239 + gauthtitiPdi +, + +240 + gbufrSize +), + +241 + gWebSockRx +< + gT +>( + geUpd +, + +242 + gefulSvi +, + +243 + grv +, + +244 + gwebSockPh +, + +245 + gcuryMag +, + +246 + gauthtitiPdi +, + +247 + gbufrSize +) { + +250 +WebSockTxRx +( +JsSRd +< +T +> +eRd +, + +251 +JsSUpd +< +T +> +eUpd +, + +252 +SfulSvi +< +T +>* +efulSvi +, + +253 +AsyncWebSv +* +rv +, + +254 cڡ* +webSockPh +, + +255 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +256 +WebSockC +< +T +>( +efulSvi +, + grv +, + gwebSockPh +, + gbufrSize +), + +257 + gWebSockTx +< + gT +>( + geRd +, + gefulSvi +, + grv +, + gwebSockPh +, + gbufrSize +), + +258 + gWebSockRx +< + gT +>( + geUpd +, + gefulSvi +, + grv +, + gwebSockPh +, + gbufrSize +) { + +261 + geed +: + +262  +WSEvt +( +AsyncWebSock +* +rv +, + +263 +AsyncWebSockCl +* + +, + +264 +AwsEvtTy + +ty +, + +265 * +g +, + +266 +ut8_t +* +da +, + +267 +size_t + +n +) { + +268 + gWebSockRx +< + gT +>:: +WSEvt +( +rv +, + +, +ty +, +g +, +da +, +n +); + +269 + gWebSockTx +< + gT +>:: +WSEvt +( +rv +, + +, +ty +, +g +, +da +, +n +); + + @lib/framework/WiFiScanner.cpp + +1  + ~ + +3 + gWiFiS” +:: + $WiFiS” +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +) { + +4 +rv +-> + ` +( +SCAN_NETWORKS_SERVICE_PATH +, + +5 +HTTP_GET +, + +6 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +WiFiS” +:: +snNwks +, +this +, std:: +ahds +:: +_1 +), + +7 +AuthtitiPdis +:: +IS_ADMIN +)); + +8 +rv +-> + ` +( +LIST_NETWORKS_SERVICE_PATH +, + +9 +HTTP_GET +, + +10 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +WiFiS” +:: +liNwks +, +this +, std:: +ahds +:: +_1 +), + +11 +AuthtitiPdis +:: +IS_ADMIN +)); + +12 + } +}; + +14  + gWiFiS” +:: + $snNwks +( +AsyncWebSvReque +* +que +) { + +15 i( +WiFi +. + `snCome +() != -1) { + +16 +WiFi +. + `snDe +(); + +17 +WiFi +. + `snNwks +( +ue +); + +19 +que +-> + `nd +(202); + +20 + } +} + +22  + gWiFiS” +:: + $liNwks +( +AsyncWebSvReque +* +que +) { + +23  +numNwks + = +WiFi +. + `snCome +(); + +24 i( +numNwks + > -1) { + +25 +AsyncJsReڣ +* +ڣ + = +w + + `AsyncJsReڣ +( +l +, +MAX_WIFI_SCANNER_SIZE +); + +26 +JsObje + +ro + = +ڣ +-> + `gRo +(); + +27 +JsAay + +twks + = +ro +. + `NeedAay +("networks"); + +28  +i + = 0; i < +numNwks +; i++) { + +29 +JsObje + +twk + = +twks +. + `NeedObje +(); + +30 +twk +["rssi"] = +WiFi +. + `RSSI +( +i +); + +31 +twk +["ssid"] = +WiFi +. + `SSID +( +i +); + +32 +twk +["bssid"] = +WiFi +. + `BSSIDr +( +i +); + +33 +twk +["chl"] = +WiFi +. + `chl +( +i +); + +34 #ifde +ESP32 + + +35 +twk +["yi_ty"] = ( +ut8_t +) +WiFi +. + `yiTy +( +i +); + +36 #i + `defed +( +ESP8266 +) + +37 +twk +["yi_ty"] = + `cvtEnyiTy +( +WiFi +. + `yiTy +( +i +)); + +40 +ڣ +-> + `tLgth +(); + +41 +que +-> + `nd +( +ڣ +); + +42 } i( +numNwks + == -1) { + +43 +que +-> + `nd +(202); + +45 + `snNwks +( +que +); + +47 + } +} + +49 #ifde +ESP8266 + + +55 +ut8_t + + gWiFiS” +:: + $cvtEnyiTy +( +ut8_t + +yiTy +) { + +56  +yiTy +) { + +57  +ENC_TYPE_NONE +: + +58  +AUTH_OPEN +; + +59  +ENC_TYPE_WEP +: + +60  +AUTH_WEP +; + +61  +ENC_TYPE_TKIP +: + +62  +AUTH_WPA_PSK +; + +63  +ENC_TYPE_CCMP +: + +64  +AUTH_WPA2_PSK +; + +65  +ENC_TYPE_AUTO +: + +66  +AUTH_WPA_WPA2_PSK +; + +69 + } +} + + @lib/framework/WiFiScanner.h + +1 #ide +WiFiS”_h + + +2  + #WiFiS”_h + + + ) + +4 #ifde +ESP32 + + +5  + ~ + +6  + ~ + +7 #i +defed +( +ESP8266 +) + +8  + ~ + +9  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +17  + #SCAN_NETWORKS_SERVICE_PATH + "//snNwks" + + ) + +18  + #LIST_NETWORKS_SERVICE_PATH + "//liNwks" + + ) + +20  + #MAX_WIFI_SCANNER_SIZE + 1024 + + ) + +22 as + cWiFiS” + { + +23 + mpublic +: + +24 +WiFiS” +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +); + +26 + mive +: + +27  +snNwks +( +AsyncWebSvReque +* +que +); + +28  +liNwks +( +AsyncWebSvReque +* +que +); + +30 #ifde +ESP8266 + + +31 +ut8_t + +cvtEnyiTy +(ut8_ +yiTy +); + + @lib/framework/WiFiSettingsService.cpp + +1  + ~ + +3 + gWiFiStgsSvi +:: + $WiFiStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +, +SecuryMag + * +curyMag +) + +4 : + `_hpEndpot +( +WiFiStgs +:: +ad +, WiFiStgs:: +upde +, +this +, +rv +, +WIFI_SETTINGS_SERVICE_PATH +, +curyMag +) + +5 , + `_fsPsi +( +WiFiStgs +:: +ad +, WiFiStgs:: +upde +, +this +, +fs +, +WIFI_SETTINGS_FILE +) + +6 , + $_ϡCiAem +(0) { + +9 i( +WiFi +. + `gMode +(! +WIFI_OFF +) { + +10 +WiFi +. + `mode +( +WIFI_OFF +); + +14 +WiFi +. + `rsit +( +l +); + +15 +WiFi +. + `tAutoRec +( +l +); + +16 #ifde +ESP32 + + +18 +WiFi +. + `mode +( +WIFI_MODE_MAX +); + +19 +WiFi +. + `mode +( +WIFI_MODE_NULL +); + +20 +WiFi +. + `Evt +( +d +:: + `bd +(& +WiFiStgsSvi +:: +StiModeDisced +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), + +21 +WiFiEvt_t +:: +SYSTEM_EVENT_STA_DISCONNECTED +); + +22 +WiFi +. + `Evt +( +d +:: + `bd +(& +WiFiStgsSvi +:: +StiModeSt +, +this +, std:: +ahds +:: +_1 +, std::ahds:: +_2 +), +WiFiEvt_t +:: +SYSTEM_EVENT_STA_STOP +); + +23 #i + `defed +( +ESP8266 +) + +32 +_StiModeDiscedHdr + = +WiFi +. + `StiModeDisced +( +d +:: + `bd +(& +WiFiStgsSvi +:: +StiModeDisced +, +this +, std:: +ahds +:: +_1 +)); + +35 + `addUpdeHdr +([&](cڡ +Sg + & +igId +{ + `cfiguWiFiCi +(); }, +l +); + +36 + } +} + +38  + gWiFiStgsSvi +:: + $beg +() { + +39 +_fsPsi +. + `adFromFS +(); + +40 + `cfiguWiFiCi +(); + +41 + } +} + +43  + gWiFiStgsSvi +:: + $cfiguWiFiCi +() { + +45 +_ϡCiAem + = 0; + +48 #ifde +ESP32 + + +49 i( +WiFi +. + `disc +( +ue +)) { + +50 +_pg + = +ue +; + +52 #i + `defed +( +ESP8266 +) + +53 +WiFi +. + `disc +( +ue +); + +55 + } +} + +57  + gWiFiStgsSvi +:: + $lo +() { + +58  +cutMlis + = + `mlis +(); + +59 i(! +_ϡCiAem + || ()( +cutMlis + - _ϡCiAem> +WIFI_RECONNECTION_DELAY +) { + +60 +_ϡCiAem + = +cutMlis +; + +61 + `mageSTA +(); + +63 + } +} + +65  + gWiFiStgsSvi +:: + $mageSTA +() { + +67 i( +WiFi +. + `isCed +(|| +_e +. +ssid +. + `ngth +() == 0) { + +71 i(( +WiFi +. + `gMode +(& +WIFI_STA +) == 0) { + +73 i( +_e +. +icIPCfig +) { + +75 +WiFi +. + `cfig +( +_e +. +lolIP +, _e. +gewayIP +, _e. +subtMask +, _e. +dnsIP1 +, _e. +dnsIP2 +); + +78 #ifde +ESP32 + + +79 +WiFi +. + `cfig +( +INADDR_NONE +, INADDR_NONE, INADDR_NONE); + +80 #i + `defed +( +ESP8266 +) + +81 +WiFi +. + `cfig +( +INADDR_ANY +, INADDR_ANY, INADDR_ANY); + +85 #ifde +ESP32 + + +86 +WiFi +. + `tHome +( +_e +. +home +. + `c_r +()); + +87 #i + `defed +( +ESP8266 +) + +88 +WiFi +. + `home +( +_e +. +home +); + +91 +WiFi +. + `beg +( +_e +. +ssid +. + `c_r +(), _e. +sswd +.c_str()); + +93 + } +} + +95 #ifde +ESP32 + + +96  + gWiFiStgsSvi +:: + $StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +97 +WiFi +. + `disc +( +ue +); + +98 + } +} + +99  + gWiFiStgsSvi +:: + $StiModeSt +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +100 i( +_pg +) { + +101 +_ϡCiAem + = 0; + +102 +_pg + = +l +; + +104 + } +} + +105 #i +defed +( +ESP8266 +) + +106  + gWiFiStgsSvi +:: + $StiModeDisced +(cڡ +WiFiEvtStiModeDisced + & +evt +) { + +107 +WiFi +. + `disc +( +ue +); + +108 + } +} + + @lib/framework/WiFiSettingsService.h + +1 #ide +WiFiStgsSvi_h + + +2  + #WiFiStgsSvi_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +7  + ~ + +9  + #WIFI_SETTINGS_FILE + "/cfig/wifiStgs.js" + + ) + +10  + #WIFI_SETTINGS_SERVICE_PATH + "//wifiStgs" + + ) + +11  + #WIFI_RECONNECTION_DELAY + 1000 * 30 + + ) + +13 #ide +FACTORY_WIFI_SSID + + +14  + #FACTORY_WIFI_SSID + "" + + ) + +17 #ide +FACTORY_WIFI_PASSWORD + + +18  + #FACTORY_WIFI_PASSWORD + "" + + ) + +21 #ide +FACTORY_WIFI_HOSTNAME + + +22  + #FACTORY_WIFI_HOSTNAME + "" + + ) + +25 as + cWiFiStgs + { + +26 + mpublic +: + +28 +Sg + +ssid +; + +29 +Sg + + msswd +; + +30 +Sg + + mhome +; + +31 +bo + + micIPCfig +; + +34 +IPAddss + + mlolIP +; + +35 +IPAddss + + mgewayIP +; + +36 +IPAddss + + msubtMask +; + +37 +IPAddss + + mdnsIP1 +; + +38 +IPAddss + + mdnsIP2 +; + +40  + $ad +( +WiFiStgs +& +gs +, +JsObje +& +ro +) { + +42 +ro +["ssid"] = +gs +. +ssid +; + +43 +ro +["sswd"] = +gs +. +sswd +; + +44 +ro +["home"] = +gs +. +home +; + +45 +ro +["ic__cfig"] = +gs +. +icIPCfig +; + +48 +JsUts +:: + `wreIP +( +ro +, "lol_", +gs +. +lolIP +); + +49 +JsUts +:: + `wreIP +( +ro +, "geway_", +gs +. +gewayIP +); + +50 +JsUts +:: + `wreIP +( +ro +, "subt_mask", +gs +. +subtMask +); + +51 +JsUts +:: + `wreIP +( +ro +, "dns__1", +gs +. +dnsIP1 +); + +52 +JsUts +:: + `wreIP +( +ro +, "dns__2", +gs +. +dnsIP2 +); + +55  +SUpdeResu + + $upde +( +JsObje +& +ro +, +WiFiStgs +& +gs +) { + +57 +gs +. +ssid + = +ro +["ssid"] | +FACTORY_WIFI_SSID +; + +58 +gs +. +sswd + = +ro +["sswd"] | +FACTORY_WIFI_PASSWORD +; + +59 +gs +. +home + = +ro +["home"] | +FACTORY_WIFI_HOSTNAME +; + +60 +gs +. +icIPCfig + = +ro +["ic__cfig"] | +l +; + +63 +JsUts +:: + `adIP +( +ro +, "lol_", +gs +. +lolIP +); + +64 +JsUts +:: + `adIP +( +ro +, "geway_", +gs +. +gewayIP +); + +65 +JsUts +:: + `adIP +( +ro +, "subt_mask", +gs +. +subtMask +); + +66 +JsUts +:: + `adIP +( +ro +, "dns__1", +gs +. +dnsIP1 +); + +67 +JsUts +:: + `adIP +( +ro +, "dns__2", +gs +. +dnsIP2 +); + +70 i( +gs +. +dnsIP1 + = +INADDR_NONE + && stgs. +dnsIP2 + != INADDR_NONE) { + +71 +gs +. +dnsIP1 + = stgs. +dnsIP2 +; + +72 +gs +. +dnsIP2 + = +INADDR_NONE +; + +78 i( +gs +. +icIPCfig + && + +79 ( +gs +. +lolIP + = +INADDR_NONE + || stgs. +gewayIP + =INADDR_NONE || stgs. +subtMask + == INADDR_NONE)) { + +80 +gs +. +icIPCfig + = +l +; + +82  +SUpdeResu +:: +CHANGED +; + +83 + } +} + +86 +ass + + gWiFiStgsSvi + : +public + +SfulSvi +< +WiFiStgs +> { + +87 +public +: + +88 +WiFiStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +, +SecuryMag +* +curyMag +); + +90  +beg +(); + +91  +lo +(); + +93 + give +: + +94 +HpEndpot +< +WiFiStgs +> +_hpEndpot +; + +95 + gFSPsi +< + gWiFiStgs +> + g_fsPsi +; + +96  + g_ϡCiAem +; + +98 #ifde +ESP32 + + +99 +bo + + g_pg +; + +100  +StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +101  +StiModeSt +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +102 #i +defed +( +ESP8266 +) + +103 +WiFiEvtHdr + + g_StiModeDiscedHdr +; + +104  +StiModeDisced +(cڡ +WiFiEvtStiModeDisced +& +evt +); + +107  +cfiguWiFiCi +(); + +108  +mageSTA +(); + + @lib/framework/WiFiStatus.cpp + +1  + ~ + +3 + gWiFiStus +:: + $WiFiStus +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +) { + +4 +rv +-> + ` +( +WIFI_STATUS_SERVICE_PATH +, + +5 +HTTP_GET +, + +6 +curyMag +-> + `wpReque +( +d +:: + `bd +(& +WiFiStus +:: +wifiStus +, +this +, std:: +ahds +:: +_1 +), + +7 +AuthtitiPdis +:: +IS_AUTHENTICATED +)); + +8 #ifde +ESP32 + + +9 +WiFi +. + `Evt +( +StiModeCed +, +WiFiEvt_t +:: +SYSTEM_EVENT_STA_CONNECTED +); + +10 +WiFi +. + `Evt +( +StiModeDisced +, +WiFiEvt_t +:: +SYSTEM_EVENT_STA_DISCONNECTED +); + +11 +WiFi +. + `Evt +( +StiModeGIP +, +WiFiEvt_t +:: +SYSTEM_EVENT_STA_GOT_IP +); + +12 #i + `defed +( +ESP8266 +) + +13 +_StiModeCedHdr + = +WiFi +. + `StiModeCed +( +StiModeCed +); + +14 +_StiModeDiscedHdr + = +WiFi +. + `StiModeDisced +( +StiModeDisced +); + +15 +_StiModeGIPHdr + = +WiFi +. + `StiModeGIP +( +StiModeGIP +); + +17 + } +} + +19 #ifde +ESP32 + + +20  + gWiFiStus +:: + $StiModeCed +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +22 + } +} + +24  + gWiFiStus +:: + $StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +27 + } +} + +29  + gWiFiStus +:: + $StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +31 + } +} + +32 #i +defed +( +ESP8266 +) + +33  + gWiFiStus +:: + $StiModeCed +(cڡ +WiFiEvtStiModeCed +& +evt +) { + +36 + } +} + +38  +WiFiStus +:: + $StiModeDisced +(cڡ +WiFiEvtStiModeDisced +& +evt +) { + +41 + } +} + +43  +WiFiStus +:: + $StiModeGIP +(cڡ +WiFiEvtStiModeGIP +& +evt +) { + +45 + } +} + +48  +WiFiStus +:: + $wifiStus +( +AsyncWebSvReque +* +que +) { + +49 +AsyncJsReڣ +* +ڣ + = +w + + `AsyncJsReڣ +( +l +, +MAX_WIFI_STATUS_SIZE +); + +50 +JsObje + +ro + = +ڣ +-> + `gRo +(); + +51 +wl_us_t + +us + = +WiFi +. + `us +(); + +52 +ro +["us"] = ( +ut8_t +) +us +; + +53 i( +us + = +WL_CONNECTED +) { + +54 +ro +["lol_"] = +WiFi +. + `lolIP +(). + `toSg +(); + +55 +ro +["mac_addss"] = +WiFi +. + `macAddss +(); + +56 +ro +["rssi"] = +WiFi +. + `RSSI +(); + +57 +ro +["ssid"] = +WiFi +. + `SSID +(); + +58 +ro +["bssid"] = +WiFi +. + `BSSIDr +(); + +59 +ro +["chl"] = +WiFi +. + `chl +(); + +60 +ro +["subt_mask"] = +WiFi +. + `subtMask +(). + `toSg +(); + +61 +ro +["geway_"] = +WiFi +. + `gewayIP +(). + `toSg +(); + +62 +IPAddss + +dnsIP1 + = +WiFi +. + `dnsIP +(0); + +63 +IPAddss + +dnsIP2 + = +WiFi +. + `dnsIP +(1); + +64 i( +dnsIP1 + ! +INADDR_NONE +) { + +65 +ro +["dns__1"] = +dnsIP1 +. + `toSg +(); + +67 i( +dnsIP2 + ! +INADDR_NONE +) { + +68 +ro +["dns__2"] = +dnsIP2 +. + `toSg +(); + +71 +ڣ +-> + `tLgth +(); + +72 +que +-> + `nd +( +ڣ +); + +73 + } +} + + @lib/framework/WiFiStatus.h + +1 #ide +WiFiStus_h + + +2  + #WiFiStus_h + + + ) + +4 #ifde +ESP32 + + +5  + ~ + +6  + ~ + +7 #i +defed +( +ESP8266 +) + +8  + ~ + +9  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +16  + ~ + +18  + #MAX_WIFI_STATUS_SIZE + 1024 + + ) + +19  + #WIFI_STATUS_SERVICE_PATH + "//wifiStus" + + ) + +21 as + cWiFiStus + { + +22 + mpublic +: + +23 +WiFiStus +( +AsyncWebSv +* +rv +, +SecuryMag +* +curyMag +); + +25 + mive +: + +26 #ifde +ESP32 + + +28  +StiModeCed +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +29  +StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +30  +StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +31 #i + $defed +( +ESP8266 +) + +33 +WiFiEvtHdr + +_StiModeCedHdr +; + +34 +WiFiEvtHdr + +_StiModeDiscedHdr +; + +35 +WiFiEvtHdr + +_StiModeGIPHdr +; + +37  + `StiModeCed +(cڡ +WiFiEvtStiModeCed +& +evt +); + +38  + `StiModeDisced +(cڡ +WiFiEvtStiModeDisced +& +evt +); + +39  + `StiModeGIP +(cڡ +WiFiEvtStiModeGIP +& +evt +); + +42  + `wifiStus +( +AsyncWebSvReque +* +que +); + + @lib/uuid-common/src/common.cpp + +19  + ~ + + @lib/uuid-common/src/get_uptime_ms.cpp + +19  + ~ + +21  + ~ + +23 +mea + + guuid + { + +25  + #UPTIME_OVERFLOW + 4294967295 + +26 + + ) + +28 +ut32_t + +g_uime_c +() { + +29  +ut32_t + + gϡ_uime + = 0; + +30  +ut8_t + + guime_ovows + = 0; + +32 i( +mlis +(< + gϡ_uime +) { + +33 ++ + guime_ovows +; + +35 + gϡ_uime + = +mlis +(); + +36 +ut32_t + + guime_cds + = +uime_ovows + * ( +UPTIME_OVERFLOW + / 1000+ ( +ϡ_uime + / 1000); + +38  + guime_cds +; + +41 +ut64_t + +g_uime_ms +() { + +42  +ut32_t + + ghigh_mlis + = 0; + +43  +ut32_t + + glow_mlis + = 0; + +45 i( +g_uime +(< + glow_mlis +) { + +46 + ghigh_mlis +++; + +49 + glow_mlis + = +g_uime +(); + +51  (( + gut64_t +) + ghigh_mlis + << 32| + glow_mlis +; + +55  +ut32_t + + gnow_mlis +; + +57  +t_uime +() { + +58 + gnow_mlis + = :: +mlis +(); + +61 +ut32_t + +g_uime +() { + +62  + gnow_mlis +; + + @lib/uuid-common/src/loop.cpp + +19  + ~ + +21 +mea + + guuid + { + +23  +lo +() { + +24 +t_uime +(); + +25 +g_uime_ms +(); + + @lib/uuid-common/src/printable_to_string.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +25 +mea + + guuid + { + +27 as + cPrbSg + : +public + :: +Prt + { + +28 +public +: + +29 +exic + +PrbSg +( +d +:: +rg + & +ouut +) + +30 : +ouut_ +( +ouut +) { + +32 ~ +PrbSg +() = ; + +34 +size_t + +wre +( +ut8_t + +da + +f + + govride + { + +35 + gouut_ +. +nd +(1, +t_ +<>( +da +)); + +39 +size_t + +wre +(cڡ +ut8_t + * +bufr +, size_ +size + +f + + govride + { + +40 + gouut_ +. +nd +( +t_ +( +bufr +), +size +); + +41  + gsize +; + +44 + give +: + +45 +d +:: +rg + & +ouut_ +; + +48 +size_t + + $t_to_rg +(cڡ +Prb + & +b +, +d +:: +rg + & +ouut +) { + +49 +PrbSg + +pr +{ +ouut +}; + +51  +b +. + `tTo +( +pr +); + +52 + } +} + +54 + gd +:: +rg + + $b_to_rg +(cڡ +Prb + & +b +) { + +55 +d +:: +rg + +r +; + +57 + `t_to_rg +( +b +, +r +); + +59  +r +; + +60 + } +} + + @lib/uuid-common/src/read_flash_string.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +25 +mea + + guuid + { + +27 + gd +:: +rg + +ad_ash_rg +(cڡ +__FshSgHr + * +ash_r +) { + +28 +d +:: +rg + +r +(:: +_P +( +t_ +< +PGM_P +>( +ash_r +)), '\0'); + +30 :: +y_P +(& +r +[0], +t_ +< +PGM_P +>( +ash_r +), s. +cy +() + 1); + +32  + gr +; + + @lib/uuid-common/src/uuid/common.h + +19 #ide +UUID_COMMON_H_ + + +20  + #UUID_COMMON_H_ + + + ) + +22  + ~ + +24  + ~ + +25  + ~ + +33 +mea + + guuid + { + +45 + gd +:: +rg + +ad_ash_rg +(cڡ +__FshSgHr + * +ash_r +); + +55 +size_t + +t_to_rg +(cڡ +Prb + & +b +, +d +:: +rg + & +ouut +); + +64 + gd +:: +rg + +b_to_rg +(cڡ +Prb + & +b +); + +71 +usg + + gash_rg_ve + = +d +:: +ve +; + +79  +lo +(); + +87 +ut64_t + +g_uime_ms +(); + +89 +ut32_t + +g_uime +(); + +90 +ut32_t + +g_uime_c +(); + +92  +t_uime +(); + + @lib/uuid-console/src/command_line.cpp + +19  + ~ + +21  + ~ + +22  + ~ + +24 +mea + + guuid + { + +26 +mea + + gcse + { + +28 + gCommdLe +:: +CommdLe +(cڡ +d +:: +rg + & +le +) { + +29 +bo + +rg_es_doub + = +l +; + +30 +bo + + grg_es_sg + = +l +; + +31 +bo + + gch_es + = +l +; + +32 +bo + + gqued_gumt + = +l +; + +34 i(! + gle +. +emy +()) { + +35 + gms_ +. +ema_back +( +d +:: +rg +{}); + +38  + gc + : +le +) { + +39  +c +) { + +41 i( +rg_es_doub + || +rg_es_sg +) { + +42 i( +ch_es +) { + +43 +ms_ +. +back +(). +push_back +('\\'); + +44 + gch_es + = +l +; + +46 + gms_ +. +back +(). +push_back +(' '); + +47 } i( + gch_es +) { + +48 + gms_ +. +back +(). +push_back +(' '); + +49 + gch_es + = +l +; + +53 i( + gqued_gumt + || ! + gms_ +. +back +(). +emy +()) { + +54 + gms_ +. +ema_back +( +d +:: +rg +{}); + +56 + gqued_gumt + = +l +; + +61 i( +ch_es + || +rg_es_sg +) { + +62 +ms_ +. +back +(). +push_back +('"'); + +63 + gch_es + = +l +; + +65 + grg_es_doub + = ! +rg_es_doub +; + +66 + gqued_gumt + = +ue +; + +71 i( +ch_es + || +rg_es_doub +) { + +72 +ms_ +. +back +(). +push_back +('\''); + +73 + gch_es + = +l +; + +75 + grg_es_sg + = ! +rg_es_sg +; + +76 + gqued_gumt + = +ue +; + +81 i( +ch_es +) { + +82 +ms_ +. +back +(). +push_back +('\\'); + +83 + gch_es + = +l +; + +85 + gch_es + = +ue +; + +90 i( +ch_es +) { + +91 +ms_ +. +back +(). +push_back +('\\'); + +92 + gch_es + = +l +; + +94 + gms_ +. +back +(). +push_back +( +c +); + +99 i(! + gms_ +. +emy +(&&ams_. +back +().emy(&& ! + gqued_gumt +) { + +100 + gms_ +. +p_back +(); + +101 i(! + gms_ +. +emy +()) { + +102 + gag_a + = +ue +; + +107 + gCommdLe +:: +CommdLe +( +d +:: +liz_li +> +gumts +) { + +108 aut& +gumt + : +gumts +) { + +109 +ms_ +. + +լams_. +d +(), +gumt +. +beg +(),rgument.end()); + +113 + gd +:: +rg + +CommdLe +:: +to_rg +( +size_t + +rve +) const { + +114 +d +:: +rg + +le +; + +115 +size_t + + ges + = +es_ms_ +; + +117 + gle +. +rve +(reserve); + +119 aut& + gem + : +ms_ +) { + +120 i(! +le +. +emy +()) { + +121 +le + += ' '; + +124 i( + gem +. +emy +()) { + +125 + gle + += '\"'; + +126 + gle + += '\"'; + +127  + gxt +; + +130  + gc + : +em +) { + +131  +c +) { + +136 i( +es + > 0) { + +137 +le + += '\\'; + +142 + gle + + +c +; + +145 + gxt +: + +146 i( +es + > 0) { + +147 +es +--; + +151 i( + gag_a + && ! + gle +. +emy +()) { + +152 + gle + += ' '; + +155  + gle +; + +158  + gCommdLe +:: +t +() { + +159 +ms_ +. +r +(); + +160 +es_l_ms +(); + +161 + gag_a + = +l +; + + @lib/uuid-console/src/commands.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +24  + ~ + +25  + ~ + +26  + ~ + +27  + ~ + +28  + ~ + +30 #ide +__p_lib_make_unique + + +31 +mea + + gd + { + +33 + gme + < +tyme + + g_Tp +, + gtyme +... + g_Args +> + +34 +le + + gunique_r +< + g_Tp +> +make_unique +( +_Args + &&... +__gs +) { + +35  + gunique_r +< + g_Tp +>( +w + +_Tp +( +d +:: +fwd +< +_Args +>( +__gs +)...)); + +41 +mea + + guuid + { + +43 +mea + + gcse + { + +45  + gCommds +:: +add_commd +(cڡ +ash_rg_ve + & +me +, +commd_funi + +funi +) { + +46 +add_commd +(0, 0, +me +, +ash_rg_ve +{}, +funi +, +nuαr +); + +49  + gCommds +:: +add_commd +(cڡ +ash_rg_ve + & +me +, cڡ fsh_rg_ve & +gumts +, +commd_funi + +funi +) { + +50 +add_commd +(0, 0, +me +, +gumts +, +funi +, +nuαr +); + +53  + gCommds +:: +add_commd +(cڡ +ash_rg_ve + & +me +, + +54 cڡ +ash_rg_ve + & +gumts +, + +55 +commd_funi + +funi +, + +56 +gumt_comi_funi + +g_funi +) { + +57 +add_commd +(0, 0, +me +, +gumts +, +funi +, +g_funi +); + +60  + gCommds +:: +add_commd +( +cڋxt +,  +ags +, cڡ +ash_rg_ve + & +me +, +commd_funi + +funi +) { + +61 +add_commd +( +cڋxt +, +ags +, +me +, +ash_rg_ve +{}, +funi +, +nuαr +); + +64  + gCommds +:: +add_commd +( +cڋxt +, + +65  +ags +, + +66 cڡ +ash_rg_ve + & +me +, + +67 cڡ +ash_rg_ve + & +gumts +, + +68 +commd_funi + +funi +) { + +69 +add_commd +( +cڋxt +, +ags +, +me +, +gumts +, +funi +, +nuαr +); + +72  + gCommds +:: +add_commd +( +cڋxt +, + +73  +ags +, + +74 cڡ +ash_rg_ve + & +me +, + +75 cڡ +ash_rg_ve + & +gumts +, + +76 +commd_funi + +funi +, + +77 +gumt_comi_funi + +g_funi +) { + +78 + gcommds_ +. +ema +( +d +:: +pwi_cڡru +, std:: +fwd_as_tue +( +cڋxt +), std::fwd_as_tue( +ags +, +me +, +gumts +, +funi +, +g_funi +)); + +83  + gCommds +:: +move_l_commds +() { + +84 +commds_ +. +r +(); + +89  + gCommds +:: +move_cڋxt_commds +( +cڋxt +) { + +90 +commds_ +. +a +( +cڋxt +); + +107 + gCommds +:: +Executi + +Commds +:: +execu_commd +( +Shl + & +shl +, +CommdLe + && +commd_le +) { + +108 aut + gcommds + = +fd_commd +( +shl +, +commd_le +); + +109 aut + glge + = +commds +. +exa +. +beg +(); + +110 +Executi + + gsu +; + +112 + gsu +. + gr + = +nuαr +; + +114 i( + gcommds +. + gexa +. +emy +()) { + +115 + gsu +. + gr + = +F +("Commandot found"); + +116 } i( + gcommds +. + gexa +. +cou +( +lge +-> +f +) == 1) { + +117 aut& +commd + = +lge +-> +cd +; + +118 + gd +:: +ve +< +d +:: +rg +> +gumts +; + +120 aut + g + = +d +:: +xt +( +commd_le +-> +cbeg +(), +commd +-> +me_ +. +size +()); i!commd_le-> +nd +(); it++) { + +121 + ggumts +. +push_back +( +d +:: +move +(* + +)); + +123 + gcommd_le +. +t +(); + +125 i( + gcommds +. + gl +. +u_bound +( +lge +-> +f +! +commds +. +l +. +d +(&& ! +gumts +. +emy +()) { + +126 +su +. +r + = +F +("Commandot found"); + +127 } i( + ggumts +. +size +(< + gcommd +-> +mimum_gumts +()) { + +128 + gsu +. + gr + = +F +("Notnoughrguments for command"); + +129 } i( + ggumts +. +size +(> + gcommd +-> +maximum_gumts +()) { + +130 + gsu +. + gr + = +F +("Too manyrguments for command"); + +132 + gcommd +-> +funi_ +( +shl +, +gumts +); + +135 + gsu +. + gr + = +F +("Fatalrror (multiple commands found)"); + +138  + gsu +; + +141 +bo + + gCommds +:: +fd_lge_comm_efix +(cڡ +d +:: +muim +< +size_t +, cڡ +Commd + *> & +commds +, std:: +ve + & +lge_me +) { + +142 +size_t + +compڒt_efix + = 0; + +143 +size_t + + gsh܋_mch + = +commds +. +beg +()-> +f +; + +145 + glge_me +. +rve +( +sh܋_mch +); + +149 aut& + gf + = +commds +. +beg +()-> +cd +-> +me_ +; + +150 +bo + + gl_mch + = +ue +; + +152  +size_t + + gngth + = 0; + gl_mch + &>h < + gsh܋_mch +;ength++) { + +153 aut + gcommd_ + = +d +:: +xt +( +commds +. +beg +()); commd_ !commds. +d +(); command_it++) { + +154 i( +ad_ash_rg +(* +d +:: +xt +( +f +. +beg +(), +ngth +)!ad_ash_rg(*d::xt( +commd_ +-> +cd +-> +me_ +.begin(),ength))) { + +155 + gl_mch + = +l +; + +160 i( + gl_mch +) { + +161 + gcompڒt_efix + = +ngth + + 1; + +165 aut + gme_ + = +f +. +beg +(); + +166  +size_t + + gi + = 0; i < + gcompڒt_efix +; i++) { + +167 + glge_me +. +push_back +( +d +:: +move +( +ad_ash_rg +(* +me_ +))); + +168 + gme_ +++; + +172 i( + gcompڒt_efix + < + gsh܋_mch +) { + +174 aut + gf + = * +d +:: +xt +( +commds +. +beg +()-> +cd +-> +me_ +.beg(), +compڒt_efix +); + +175 +bo + + gl_mch + = +ue +; + +176 +size_t + + gchs_efix + = 0; + +178  +size_t + + gngth + = 0; + gl_mch +;ength++) { + +179 aut + gcommd_ + = +d +:: +xt +( +commds +. +beg +()); commd_ !commds. +d +(); command_it++) { + +182 i( +pgm_ad_by +( +t_ +< +PGM_P +>( +f ++ +ngth +) + +183 ! +pgm_ad_by +( +t_ +< +PGM_P +>(* +d +:: +xt +( +commd_ +-> +cd +-> +me_ +. +beg +(), +compڒt_efix +)+ +ngth +)) { + +184 + gl_mch + = +l +; + +189 i( + gl_mch +) { + +190 + gchs_efix + = +ngth + + 1; + +194 i( + gchs_efix + > 0) { + +195 + glge_me +. +push_back +( +d +:: +move +( +ad_ash_rg +( +f +). +subr +(0, +chs_efix +))); + +196  + gl +; + +200  + gue +; + +203 + gd +:: +rg + +Commds +:: +fd_lge_comm_efix +(cڡ +d +:: +ve + & +gumts +) { + +204 aut& +f + = * +gumts +. +beg +(); + +205 +bo + + gl_mch + = +ue +; + +206 +size_t + + gchs_efix + = 0; + +208  +size_t + + gngth + = 0; + gl_mch +;ength++) { + +209 aut + ggumt_ + = +d +:: +xt +( +gumts +. +beg +());rgumt_ !gumts. +d +();rgument_it++) { + +212 i( + gf +[ +ngth +] !(* +gumt_ +)[length]) { + +213 +l_mch + = +l +; + +218 i( + gl_mch +) { + +219 + gchs_efix + = +ngth + + 1; + +223  + ggumts +. +beg +()-> +subr +(0, +chs_efix +); + +226 + gCommds +:: +Comi + +Commds +:: +come_commd +( +Shl + & +shl +, cڡ +CommdLe + & +commd_le +) { + +227 aut + gcommds + = +fd_commd +( +shl +, +commd_le +); + +228 +Comi + + gsu +; + +230 aut + gmch + = +commds +. +l +. +beg +(); + +231 +size_t + + gcou +; + +232 i( + gmch + ! +commds +. +l +. +d +()) { + +233 +cou + = +commds +. +l +.cou( +mch +-> +f +); + +234 } i(! + gcommds +. + gexa +. +emy +()) { + +236 + gmch + = +d +:: +ev +( +commds +. +exa +. +d +()); + +237 + gcou + = +commds +. +exa +. +cou +( +mch +-> +f +); + +239  + gsu +; + +242 + gd +:: +unique_r +< +Commd +> +mp_commd +; + +243 + gd +:: +ve +< +d +:: +rg +> +mp_commd_me +; + +244 + gd +:: +muim +< +size_t +, cڡ + gCommd + *>:: + + +mp_commd_ +; + +246 i( + gcommds +. + gl +. +size +(> 1 && (commds. + gexa +. +emy +(|| + gcommd_le +. +tٮ_size +(> commds.exa. +beg +()-> + gcd +-> + gme_ +.size())) { + +248 +bo + + gwhe_compڒts + = +fd_lge_comm_efix +( +commds +. +l +, +mp_commd_me +); + +250 i( + gcou + =1 && +whe_compڒts + && +mp_commd_me +. +size +(= +mch +-> +f +) { + +254 +mp_commd_me +. +r +(); + +255 + gsu +. + gamt +. + gag_a + = +ue +; + +258 i(! + gmp_commd_me +. +emy +(&& + gcommd_le +. +tٮ_size +(< +mp_commd_me +. +size +()) { + +259 +mp_commd + = +d +:: +make_unique +< +Commd +>(0, + gash_rg_ve +{}, fsh_rg_ve{}, + gnuαr +,ullptr); + +260 + gcou + = 1; + +261 + gmch + = +commds +. +l +. +d +(); + +262 + gsu +. + gamt +. + gag_a + = +whe_compڒts +; + +264 aut& + gme + : +mp_commd_me +) { + +265 +su +. +amt +-> +ema_back +( +me +); + +270 i( + gcou + =1 && ! +mp_commd +) { + +272 aut& +mchg_commd + = +mch +-> +cd +; + +274 aut& + gme + : +mchg_commd +-> +me_ +) { + +275 +su +. +amt +-> +push_back +( +d +:: +move +( +ad_ash_rg +( +me +))); + +278 i( + gcommd_le +. +tٮ_size +(> + gsu +. + gamt +-> +size +() + +279 && + gcommd_le +. +tٮ_size +(< +mchg_commd +-> +me_ +. +size +(+ mchg_commd-> +maximum_gumts +()) { + +281 +d +:: +ve + +gumts +{d:: +xt +( +commd_le +-> +cbeg +(), +su +. +amt +-> +size +()), commd_le-> +nd +()}; + +283 + gsu +. + gamt +-> + +( +su +. +amt +-> +d +(), +gumts +. +cbeg +(),rgumts. +nd +()); + +284 + gsu +. + gamt +. + gag_a + = +commd_le +. +ag_a +; + +286 aut + gcut_gs_cou + = +gumts +. +size +(); + +287 + gd +:: +rg + +ϡ_gumt +; + +289 i(! + gcommd_le +. + gag_a +) { + +291 + gϡ_gumt + = +d +:: +move +( +su +. +amt +-> +back +()); + +292 + gsu +. + gamt +-> +p_back +(); + +293 i(! + ggumts +. +emy +()) { + +294 + ggumts +. +p_back +(); + +295 + gcut_gs_cou +--; + +299 aut + gpْtl_gumts + = +mchg_commd +-> +g_funi_ + ? mchg_commd->g_funi_( +shl +, +gumts +: +d +:: +ve +{}; + +302 i(! + gcommd_le +. + gag_a +) { + +303 aut + g + = +pْtl_gumts +. +beg +(); i!pْtl_gumts. +d +();) { + +304 i( + g +-> +rfd +( +ϡ_gumt +, 0= +d +:: +rg +:: +os +) { + +305 + + = +pْtl_gumts +. +a +(it); + +307 + g +++; + +314 i(! + gcommd_le +. + gag_a +) { + +315 i( + gpْtl_gumts +. +size +() == 1) { + +316 i( +ϡ_gumt + =* +pْtl_gumts +. +beg +()) { + +317 i( +su +. +amt +-> +size +(+ 1 < +mchg_commd +-> +me_ +.size(+ mchg_commd-> +maximum_gumts +()) { + +319 +su +. +amt +. +ag_a + = +ue +; + +323 + gϡ_gumt + = * +pْtl_gumts +. +beg +(); + +324 + gpْtl_gumts +. +r +(); + +327 + gcut_gs_cou +++; + +328 } i( + gpْtl_gumts +. +size +() > 1) { + +329 + gϡ_gumt + = +fd_lge_comm_efix +( +pْtl_gumts +); + +334 i(! + gcommd_le +. + gag_a +) { + +335 + gsu +. + gamt +-> +push_back +( +d +:: +move +( +ϡ_gumt +)); + +338 +CommdLe + + gmag_hp +; + +340 i(! + gpْtl_gumts +. +emy +()) { + +342 + gcut_gs_cou +++; + +345 i( + gcut_gs_cou + < + gmchg_commd +-> +maximum_gumts +()) { + +346 + gmag_hp +. +es_l_ms +(); + +348 aut + g + = +d +:: +xt +( +mchg_commd +-> +gumts_ +. +cbeg +(), +cut_gs_cou +); i!mchg_commd->gumts_. +nd +(); it++) { + +349 + gmag_hp +-> +push_back +( +d +:: +move +( +ad_ash_rg +(* + +))); + +353 i( + gpْtl_gumts +. +emy +()) { + +354 i(! + gmag_hp +-> +emy +()) { + +355 + gsu +. + ghp +. +push_back +( +d +:: +move +( +mag_hp +)); + +358 aut + gpْtl_gumt + : +pْtl_gumts +) { + +359 +CommdLe + +hp +; + +361 + ghp +-> +ema_back +( +pْtl_gumt +); + +363 i(! + gmag_hp +-> +emy +()) { + +364 + ghp +. +es_l_ms +(); + +365 + ghp +-> + +( +hp +-> +d +(), +mag_hp +-> +beg +(),emaining_help->end()); + +368 + gsu +. + ghp +. +push_back +( +d +:: +move +( +hp +)); + +371 } i( + gsu +. + gamt +-> +size +(< + gmchg_commd +-> + gme_ +.size(+ mchg_commd-> +maximum_gumts +()) { + +373 + gsu +. + gamt +. + gag_a + = +ue +; + +375 } i( + gcou + > 1 || + gmp_commd +) { + +377 aut + gcommd_ + = +commds +. +l +. +beg +(); commd_ !commds.l. +d +(); command_it++) { + +378 +CommdLe + + ghp +; + +380 aut + gle_ + = +commd_le +-> +cbeg +(); + +381 aut + gash_me_ + = +commd_ +-> +cd +-> +me_ +. +cbeg +(); + +383 i( + gmp_commd +) { + +385 +size_t + + gsk + = +mp_commd_me +. +size +(); + +386 i(! + gsu +. + gamt +. + gag_a +) { + +387 + gsk +--; + +390 + gash_me_ + + +sk +; + +391  + gle_ + ! +commd_le +-> +nd +()) { + +392 +le_ +++; + +396 ; + gash_me_ + ! +commd_ +-> +cd +-> +me_ +. +nd +(); flash_name_it++) { + +397 + gd +:: +rg + +me + = +ad_ash_rg +(* +ash_me_ +); + +400 i( + gle_ + ! +commd_le +-> +nd +()) { + +401 i( +me + =* +le_ +++) { + +404 + gle_ + = +commd_le +-> +nd +(); + +408 + ghp +-> +ema_back +( +me +); + +411 + ghp +. +es_l_ms +(); + +413 aut + ggumt + : +commd_ +-> +cd +-> +gumts_ +) { + +415 i( +le_ + ! +commd_le +-> +nd +()) { + +416 +le_ +++; + +420 + ghp +-> +push_back +( +d +:: +move +( +ad_ash_rg +( +gumt +))); + +423 + gsu +. + ghp +. +push_back +( +d +:: +move +( +hp +)); + +427 i( + gcou + > 1 && ! + gcommds +. + gexa +. +emy +()) { + +429 aut + glge + = +commds +. +exa +. +beg +(); + +431 i( + gcommds +. + gexa +. +cou +( +lge +-> +f +) == 1) { + +432 aut& +me + : +lge +-> +cd +-> +me_ +) { + +433 +su +. +amt +-> +push_back +( +d +:: +move +( +ad_ash_rg +( +me +))); + +437 + gsu +. + gamt +. + gag_a + = +ue +; + +442 i( + gcommd_le +. +tٮ_size +(> + gsu +. + gamt +.tٮ_size(||esu.am= +commd_le +) { + +443 +su +. +amt +. +t +(); + +446  + gsu +; + +449 + gCommds +:: +Mch + +Commds +:: +fd_commd +( +Shl + & +shl +, cڡ +CommdLe + & +commd_le +) { + +450 +Mch + + gcommds +; + +451 aut + gcڋxt_commds + = +commds_ +. +equ_nge +( +shl +. +cڋxt +()); + +453 aut + g + = +cڋxt_commds +. +f +; i!cڋxt_commds. +cd +; it++) { + +454 aut& + gcommd + = + +-> +cd +; + +455 +bo + + gmch + = +ue +; + +456 +bo + + gexa + = +ue +; + +458 i(! + gshl +. +has_ags +( +commd +. +ags_ +)) { + +462 aut + gme_ + = +commd +. +me_ +. +cbeg +(); + +463 aut + gle_ + = +commd_le +-> +cbeg +(); + +465 ; + gme_ + ! +commd +. +me_ +. +nd +(&& +le_ + ! +commd_le +->nd();ame_++, + gle_ +++) { + +466 + gd +:: +rg + +me + = +ad_ash_rg +(* +me_ +); + +467 +size_t + + gfound + = +me +. +rfd +(* +le_ +, 0); + +469 i( + gfound + = +d +:: +rg +:: +os +) { + +470 +mch + = +l +; + +472 } i( + gle_ +-> +ngth +(! +me +.length()) { + +473 aut +le_check_ + = +d +:: +xt +( +le_ +); + gle_check_ + ! +commd_le +-> +nd +();ine_check_it++) { + +474 i(! + gle_check_ +-> +emy +()) { + +476 + gmch + = +l +; + +480 i( + gcommd_le +. + gag_a +) { + +482 + gmch + = +l +; + +490 i( + gme_ + ! +commd +. +me_ +. +nd +()) { + +491 +exa + = +l +; + +494 i( + gmch +) { + +495 i( + gexa +) { + +496 + gcommds +. + gexa +. +ema +( +commd +. +me_ +. +size +(), &command); + +498 + gcommds +. + gl +. +ema +( +commd +. +me_ +. +size +(), &command); + +503  + gcommds +; + +506  + gCommds +:: +f_ch_avaab_commd +( +Shl + & +shl +, +y_funi + +f +) const { + +507 aut + gcommds + = +commds_ +. +equ_nge +( +shl +. +cڋxt +()); + +509 aut + gcommd_ + = +commds +. +f +; commd_ !commds. +cd +; command_it++) { + +510 i( + gshl +. +has_ags +( +commd_ +-> +cd +. +ags_ +)) { + +511 + gd +:: +ve +< +d +:: +rg +> +me +; + +512 + gd +:: +ve +< +d +:: +rg +> +gumts +; + +514 + gme +. +rve +( +commd_ +-> +cd +. +me_ +. +size +()); + +515 aut + gash_me + : +commd_ +-> +cd +. +me_ +) { + +516 +me +. +push_back +( +d +:: +move +( +ad_ash_rg +( +ash_me +))); + +519 + ggumts +. +rve +( +commd_ +-> +cd +. +gumts_ +. +size +()); + +520 aut + gash_gumt + : +commd_ +-> +cd +. +gumts_ +) { + +521 +gumts +. +push_back +( +d +:: +move +( +ad_ash_rg +( +ash_gumt +))); + +524 +f +( +me +, +gumts +); + +529 + gCommds +:: +Commd +::Commd( +ags +, + +530 cڡ +ash_rg_ve + +me +, + +531 cڡ +ash_rg_ve + +gumts +, + +532 +commd_funi + +funi +, + +533 +gumt_comi_funi + +g_funi +) + +534 : +ags_ +( +ags +) + +535 , +me_ +( +me +) + +536 , +gumts_ +( +gumts +) + +537 , +funi_ +( +funi +) + +538 , +g_funi_ +( +g_funi +) { + +541 + gCommds +:: +Commd +::~Command() { + +544 +size_t + +Commds +:: +Commd +:: +mimum_gumts +() const { + +545  +d +:: +cou_if +( +gumts_ +. +cbeg +(),rgumts_. +nd +(), [](cڡ +__FshSgHr + * +gumt +{  +pgm_ad_by +(argument) == '<'; }); + + @lib/uuid-console/src/console.cpp + +19  + ~ + + @lib/uuid-console/src/shell.cpp + +19  + ~ + +21  + ~ + +22  + ~ + +24  + ~ + +25  + ~ + +26  + ~ + +27  + ~ + +28  + ~ + +30  + ~ + +31  + ~ + +33 #ide +__p_lib_make_unique + + +34 +mea + + gd + { + +36 + gme + < +tyme + + g_Tp +, + gtyme +... + g_Args +> + +37 +le + + gunique_r +< + g_Tp +> +make_unique +( +_Args + &&... +__gs +) { + +38  + gunique_r +< + g_Tp +>( +w + +_Tp +( +d +:: +fwd +< +_Args +>( +__gs +)...)); + +44 +mea + + guuid + { + +46 +mea + + gcse + { + +49 + gShl +:: +Shl +( +d +:: +shed_r +< +Commds +> +commds +,  +cڋxt +,  +ags +) + +50 : +commds_ +( +d +:: +move +( +commds +)) + +51 , +ags_ +( +ags +) { + +52 +r_cڋxt +( +cڋxt +); + +55 + gShl +::~ +Shl +() { + +56 +uuid +:: +log +:: +Logg +:: +uegi_hdr +( +this +); + +59  + gShl +:: +t +() { + +60 #ifde +EMSESP_DEBUG + + +61 +uuid +:: +log +:: +Logg +:: +gi_hdr +( +this +, uuid::log:: +Lev +:: +DEBUG +); + +64 + guuid +:: +log +:: +Logg +:: +gi_hdr +( +this +, +uuid +::log:: +Lev +:: +NOTICE +); + +67 + gle_bufr_ +. +rve +( +maximum_commd_le_ngth_ +); + +68 +diy_br +(); + +69 +diy_om +(); + +70 + gshls_ +. + +( +shed_om_this +()); + +71 + gid_time_ + = +uuid +:: +g_uime_ms +(); + +72 +d +(); + +75  + gShl +:: +d +() { + +78 +bo + +Shl +:: +rušg +() const { + +79  ! +ݳd_ +; + +82  + gShl +:: + +() { + +83 i( +mode_ + = +Mode +:: +BLOCKING +) { + +84 aut* +blockg_da + = +t_ +< +Shl +:: +BlockgDa + *>( +mode_da_ +. +g +()); + +86 + gblockg_da +-> + g_ + = +ue +; + +88 i( +rušg +()) { + +89 + gݳd_ + = +ue +; + +90 +ݳd +(); + +95  + gShl +:: +ݳd +() { + +98 +bo + +Shl +:: +ex_cڋxt +() { + +99 i( +cڋxt_ +. +size +() > 1) { + +100 +cڋxt_ +. +p_back +(); + +101  + gue +; + +103  + gl +; + +107  + gShl +:: +lo_e +() { + +108 i(! +rušg +()) { + +112  + gmode_ +) { + +113  + gMode +:: +NORMAL +: + +114 +ouut_logs +(); + +115 +lo_nm +(); + +118  + gMode +:: +PASSWORD +: + +119 +ouut_logs +(); + +120 +lo_sswd +(); + +123  + gMode +:: +DELAY +: + +124 +ouut_logs +(); + +125 +lo_day +(); + +128  + gMode +:: +BLOCKING +: + +129 +lo_blockg +(); + +134  + gShl +:: +lo_nm +() { + +135 cڡ  +put + = +ad_e_ch +(); + +137 i( + gput + < 0) { + +138 +check_id_timeout +(); + +142 cڡ  + gc + = +put +; + +144  + gc +) { + +147 +le_bufr_ +. +r +(); + +148 +n +(); + +149 + gom_diyed_ + = +l +; + +150 +diy_om +(); + +155 i( +le_bufr_ +. +emy +()) { + +156 +d_of_smissi +(); + +164 i(! +le_bufr_ +. +emy +()) { + +165 +a_chas +(1); + +166 + gle_bufr_ +. +p_back +(); + +172 +oss_comi +(); + +177 i( +evious_ + != '\x0D') { + +178 +oss_commd +(); + +184 +a_cut_le +(); + +185 + gom_diyed_ + = +l +; + +186 +diy_om +(); + +191 +oss_commd +(); + +196 +a_cut_le +(); + +197 + gom_diyed_ + = +l +; + +198 + gle_bufr_ +. +r +(); + +199 +diy_om +(); + +204 +de_bufr_wd +( +ue +); + +208 i( +c + >= '\x20' && c <= '\x7E') { + +210 i( +le_bufr_ +. +ngth +(< +maximum_commd_le_ngth_ +) { + +211 +le_bufr_ +. +push_back +( +c +); + +212 +wre +(( +ut8_t +) +c +); + +218 + gevious_ + = +c +; + +222 +avaab_ch +(); + +224 + gid_time_ + = +uuid +:: +g_uime_ms +(); + +227 + gShl +:: +PasswdDa +::PasswdDa(cڡ +__FshSgHr + * +sswd_om +, +sswd_funi + &&assword_function) + +228 : +sswd_om_ +( +sswd_om +) + +229 , +sswd_funi_ +( +d +:: +move +( +sswd_funi +)) { + +232  +Shl +:: +lo_sswd +() { + +233 cڡ  +put + = +ad_e_ch +(); + +235 i( + gput + < 0) { + +236 +check_id_timeout +(); + +240 cڡ  + gc + = +put +; + +242  + gc +) { + +245 +oss_sswd +( +l +); + +252 i(! +le_bufr_ +. +emy +()) { + +253 +le_bufr_ +. +p_back +(); + +259 i( +evious_ + != '\x0D') { + +260 +oss_sswd +( +ue +); + +266 +a_cut_le +(); + +267 + gom_diyed_ + = +l +; + +268 +diy_om +(); + +273 +oss_sswd +( +ue +); + +278 +le_bufr_ +. +r +(); + +283 +de_bufr_wd +( +l +); + +287 i( +c + >= '\x20' && c <= '\x7E') { + +289 i( +le_bufr_ +. +ngth +(< +maximum_commd_le_ngth_ +) { + +290 +le_bufr_ +. +push_back +( +c +); + +296 + gevious_ + = +c +; + +300 +avaab_ch +(); + +302 + gid_time_ + = +uuid +:: +g_uime_ms +(); + +305 + gShl +:: +DayDa +::DayDa( +ut64_t + +day_time +, +day_funi + && delay_function) + +306 : +day_time_ +( +day_time +) + +307 , +day_funi_ +( +d +:: +move +( +day_funi +)) { + +310  +Shl +:: +lo_day +() { + +311 aut* +day_da + = +t_ +< +Shl +:: +DayDa + *>( +mode_da_ +. +g +()); + +313 i( + guuid +:: +g_uime_ms +(> +day_da +-> +day_time_ +) { + +314 aut +funi_cy + = +day_da +-> +day_funi_ +; + +316 + gmode_ + = +Mode +:: +NORMAL +; + +317 + gmode_da_ +. +t +(); + +319 +funi_cy +(* +this +); + +321 i( +rušg +()) { + +322 +diy_om +(); + +325 + gid_time_ + = +uuid +:: +g_uime_ms +(); + +329 + gShl +:: +BlockgDa +::BlockgDa( +blockg_funi + && blocking_function) + +330 : +blockg_funi_ +( +d +:: +move +( +blockg_funi +)) { + +333  +Shl +:: +lo_blockg +() { + +334 aut* +blockg_da + = +t_ +< +Shl +:: +BlockgDa + *>( +mode_da_ +. +g +()); + +341 i( + gblockg_da +-> +blockg_funi_ +(* +this +, +blockg_da +-> +_ +)) { + +342 +bo + + g_ndg + = +blockg_da +-> +_ +; + +344 + gmode_ + = +Mode +:: +NORMAL +; + +345 + gmode_da_ +. +t +(); + +347 i( + g_ndg +) { + +348 + +(); + +351 i( +rušg +()) { + +352 +diy_om +(); + +355 + gid_time_ + = +uuid +:: +g_uime_ms +(); + +359  + gShl +:: +r_sswd +(cڡ +__FshSgHr + * +om +, +sswd_funi + +funi +) { + +360 i( + gmode_ + = +Mode +:: +NORMAL +) { + +361 +mode_ + = +Mode +:: +PASSWORD +; + +362 + gmode_da_ + = +d +:: +make_unique +< +Shl +:: +PasswdDa +>( +om +, + gd +:: +move +( +funi +)); + +366  + gShl +:: +day_f +( +ms +, +day_funi + +funi +) { + +367 +day_u +( +uuid +:: +g_uime_ms +(+ +ms +, +d +:: +move +( +funi +)); + +370  + gShl +:: +day_u +( +ut64_t + +ms +, +day_funi + +funi +) { + +371 i( + gmode_ + = +Mode +:: +NORMAL +) { + +372 +mode_ + = +Mode +:: +DELAY +; + +373 + gmode_da_ + = +d +:: +make_unique +< +Shl +:: +DayDa +>( +ms +, + gd +:: +move +( +funi +)); + +377  + gShl +:: +block_wh +( +blockg_funi + +funi +) { + +378 i( +mode_ + = +Mode +:: +NORMAL +) { + +379 +mode_ + = +Mode +:: +BLOCKING +; + +380 + gmode_da_ + = +d +:: +make_unique +< +Shl +:: +BlockgDa +>(d:: +move +( +funi +)); + +384  + gShl +:: +de_bufr_wd +( +bo + +diy +) { + +385 +size_t + +pos + = +le_bufr_ +. +fd_ϡ_of +(' '); + +387 i( + gpos + = +d +:: +rg +:: +os +) { + +388 +le_bufr_ +. +r +(); + +389 i( + gdiy +) { + +390 +a_cut_le +(); + +391 + gom_diyed_ + = +l +; + +392 +diy_om +(); + +395 i( + gdiy +) { + +396 +a_chas +( +le_bufr_ +. +ngth +(- +pos +); + +398 + gle_bufr_ +. +size +( +pos +); + +402 +size_t + + gShl +:: +maximum_commd_le_ngth +() const { + +403  +maximum_commd_le_ngth_ +; + +406  + gShl +:: +maximum_commd_le_ngth +( +size_t + +ngth +) { + +407 +maximum_commd_le_ngth_ + = +d +:: +max +(( +size_t +)1, +ngth +); + +408 + gle_bufr_ +. +rve +( +maximum_commd_le_ngth_ +); + +411  + gShl +:: +oss_commd +() { + +412 +CommdLe + +commd_le +{ +le_bufr_ +}; + +414 + gle_bufr_ +. +r +(); + +415 +n +(); + +416 + gom_diyed_ + = +l +; + +418 i(! + gcommd_le +-> +emy +()) { + +419 i( + gcommds_ +) { + +420 aut + gexecuti + = +commds_ +-> +execu_commd +(* +this +, +d +:: +move +( +commd_le +)); + +422 i( + gexecuti +. + gr + ! +nuαr +) { + +423 +n +( +executi +. +r +); + +426 +n +( +F +("No commands configured")); + +430 i( +rušg +()) { + +431 +diy_om +(); + +433 :: +yld +(); + +436  + gShl +:: +oss_comi +() { + +437 +CommdLe + +commd_le +{ +le_bufr_ +}; + +439 i(! + gcommd_le +-> +emy +(&& + gcommds_ +) { + +440 aut + gcomi + = +commds_ +-> +come_commd +(* +this +, +commd_le +); + +441 +bo + + gdiy + = +l +; + +443 i(! + gcomi +. + ghp +. +emy +()) { + +444 +n +(); + +445 + gdiy + = +ue +; + +447 aut& + ghp + : +comi +. +hp +) { + +448 +d +:: +rg + +hp_le + = +hp +. +to_rg +( +maximum_commd_le_ngth_ +); + +450 +n +( +hp_le +); + +454 i(! + gcomi +. + gamt +-> +emy +()) { + +455 i(! + gdiy +) { + +456 +a_cut_le +(); + +457 + gom_diyed_ + = +l +; + +458 + gdiy + = +ue +; + +461 + gle_bufr_ + = +comi +. +amt +. +to_rg +( +maximum_commd_le_ngth_ +); + +464 i( + gdiy +) { + +465 +diy_om +(); + +469 :: +yld +(); + +472  + gShl +:: +oss_sswd +( +bo + +comed +) { + +473 +n +(); + +475 aut* + gsswd_da + = +t_ +< +Shl +:: +PasswdDa + *>( +mode_da_ +. +g +()); + +476 aut + gfuni_cy + = +sswd_da +-> +sswd_funi_ +; + +478 + gmode_ + = +Mode +:: +NORMAL +; + +479 + gmode_da_ +. +t +(); + +481 +funi_cy +(* +this +, +comed +, +le_bufr_ +); + +482 + gle_bufr_ +. +r +(); + +484 i( +rušg +()) { + +485 +diy_om +(); + +489  + gShl +:: +voke_commd +(cڡ +d +:: +rg + & +le +) { + +490 i(! +le_bufr_ +. +emy +()) { + +491 +n +(); + +492 + gom_diyed_ + = +l +; + +494 i(! + gom_diyed_ +) { + +495 +diy_om +(); + +497 + gle_bufr_ + = +le +; + +498 +t +( +le_bufr_ +); + +499 +oss_commd +(); + +502  + gShl +:: +id_timeout +() const { + +503  +id_timeout_ + / 1000; + +506  + gShl +:: +id_timeout +( +timeout +) { + +507 +id_timeout_ + = ( +ut64_t +) +timeout + * 1000; + +510  + gShl +:: +check_id_timeout +() { + +511 i( +id_timeout_ + > 0 && +uuid +:: +g_uime_ms +(- +id_time_ + >= idle_timeout_) { + +512 +n +(); + +513 + +(); + + @lib/uuid-console/src/shell_log.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +24  + ~ + +25  + ~ + +27  + ~ + +29 +mea + + guuid + { + +31 +mea + + gcse + { + +33 cڡ  + g__pr__logg_me +[] +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "shell"; + +34 cڡ + guuid +:: +log +:: +Logg + +Shl +:: +logg_ +{ +t_ +( +__pr__logg_me +), uuid::log:: +Facy +:: +LPR +}; + +36 + gShl +:: +QueuedLogMesge +::QueuedLogMesge( +id +, +d +:: +shed_r +< +uuid +:: +log +:: +Mesge +> && +cڋ +) + +37 : +id_ +( +id +) + +38 , +cڋ_ +( +d +:: +move +( +cڋ +)) { + +41  +Shl +:: +ݔ +<<( +d +:: +shed_r +< +uuid +:: +log +:: +Mesge +> +mesge +) { + +42 i( +log_mesges_ +. +size +(> +maximum_log_mesges_ +) { + +43 +log_mesges_ +. +p_t +(); + +46 + glog_mesges_ +. +ema_back +( +log_mesge_id_ +++, +d +:: +move +( +mesge +)); + +49 + guuid +:: +log +:: +Lev + +Shl +:: +log_v +() const { + +50  +uuid +:: +log +:: +Logg +:: +g_log_v +( +this +); + +53  + gShl +:: +log_v +( +uuid +:: +log +:: +Lev + +v +) { + +54 +uuid +:: +log +:: +Logg +:: +gi_hdr +( +this +, +v +); + +57 +size_t + + gShl +:: +maximum_log_mesges +() const { + +58  +maximum_log_mesges_ +; + +61  + gShl +:: +maximum_log_mesges +( +size_t + +cou +) { + +62 +maximum_log_mesges_ + = +d +:: +max +(( +size_t +)1, +cou +); + +63  + glog_mesges_ +. +size +(> + gmaximum_log_mesges_ +) { + +64 + glog_mesges_ +. +p_t +(); + +68  + gShl +:: +ouut_logs +() { + +69 i(! +log_mesges_ +. +emy +()) { + +70 i( +mode_ + ! +Mode +:: +DELAY +) { + +71 +a_cut_le +(); + +72 + gom_diyed_ + = +l +; + +75 ! + glog_mesges_ +. +emy +()) { + +76 aut + gmesge + = +d +:: +move +( +log_mesges_ +. +t +()); + +77 + glog_mesges_ +. +p_t +(); + +79 +t +( +uuid +:: +log +:: +fm_timeamp_ms +( +mesge +. +cڋ_ +-> +uime_ms +, 3)); + +80 +tf +( +F +(" %%lu: [%S] "), +uuid +:: +log +:: +fm_v_ch +( +mesge +. +cڋ_ +-> +v +), mesge. +id_ +, mesge.cڋ_-> +me +); + +82 i(( + gmesge +. + gcڋ_ +-> + gv + = +uuid +:: +log +:: +Lev +:: +ERR +|| ( +mesge +. +cڋ_ +-> +v + =uuid::log::Lev:: +WARNING +)) { + +83 +t +( +COLOR_RED +); + +84 +n +( +mesge +. +cڋ_ +-> +xt +); + +85 +t +( +COLOR_RESET +); + +86 } i( + gmesge +. + gcڋ_ +-> + gv + = +uuid +:: +log +:: +Lev +:: +INFO +) { + +87 +t +( +COLOR_YELLOW +); + +88 +n +( +mesge +. +cڋ_ +-> +xt +); + +89 +t +( +COLOR_RESET +); + +90 } i( + gmesge +. + gcڋ_ +-> + gv + = +uuid +:: +log +:: +Lev +:: +DEBUG +) { + +91 +t +( +COLOR_CYAN +); + +92 +n +( +mesge +. +cڋ_ +-> +xt +); + +93 +t +( +COLOR_RESET +); + +95 +n +( +mesge +. +cڋ_ +-> +xt +); + +98 :: +yld +(); + +101 +diy_om +(); + + @lib/uuid-console/src/shell_loop_all.cpp + +19  + ~ + +21  + ~ + +22  + ~ + +24 +mea + + guuid + { + +26 +mea + + gcse + { + +28 + gd +:: +t +< +d +:: +shed_r +< +Shl +>> Shl:: +shls_ +; + +30  + gShl +:: +lo_l +() { + +31 aut +shl + = +shls_ +. +beg +(); + gshl + !shls_. +d +();) { + +32 + gshl +-> +g +()-> +lo_e +(); + +35 i(! + gshl +-> +g +()-> +rušg +()) { + +36 + gshl + = +shls_ +. +a +( +shl +); + +38 + gshl +++; + + @lib/uuid-console/src/shell_print.cpp + +19  + ~ + +21  + ~ + +22  + ~ + +24  + ~ + +26 +mea + + guuid + { + +28 +mea + + gcse + { + +30 +size_t + + gShl +:: +t +(cڡ +d +:: +rg + & +da +) { + +31 i( +da +. +emy +()) { + +34  +wre +( +t_ +( +da +. +c_r +()), da. +ngth +()); + +38 +size_t + + gShl +:: +n +(cڡ +d +:: +rg + & +da +) { + +39 +size_t + +n + = +t +( +da +); + +40 + gn + + +n +(); + +41  + gn +; + +44 +size_t + + gShl +:: +tf +(cڡ * +fm +, ...) { + +45 +va_li + + g +; + +47 +va_t +( + +, +fm +); + +48 +size_t + + gn + = +vtf +( +fm +, + +); + +49 +va_d +( + +); + +51  + gn +; + +54 +size_t + + gShl +:: +tf +(cڡ +__FshSgHr + * +fm +, ...) { + +55 +va_li + + g +; + +57 +va_t +( + +, +fm +); + +58 +size_t + + gn + = +vtf +( +fm +, + +); + +59 +va_d +( + +); + +61  + gn +; + +64 +size_t + + gShl +:: +tn +(cڡ * +fm +, ...) { + +65 +va_li + + g +; + +67 +va_t +( + +, +fm +); + +68 +size_t + + gn + = +vtf +( +fm +, + +); + +69 +va_d +( + +); + +71 + gn + + +n +(); + +72  + gn +; + +75 +size_t + + gShl +:: +tn +(cڡ +__FshSgHr + * +fm +, ...) { + +76 +va_li + + g +; + +78 +va_t +( + +, +fm +); + +79 +size_t + + gn + = +vtf +( +fm +, + +); + +80 +va_d +( + +); + +82 + gn + + +n +(); + +83  + gn +; + +86 +size_t + + gShl +:: +vtf +(cڡ * +fm +, +va_li + + +) { + +87 +size_t + + gt_n + = 0; + +88 +va_li + + gcy_ +; + +90 +va_cy +( +cy_ +, + +); + +92  + gfm_n + = :: +vtf +( +nuαr +, 0, +fm +, + +); + +93 i( + gfm_n + > 0) { + +94 + gd +:: +rg + +xt +( +ic_ +< +d +::rg:: +size_ty +>( +fm_n +), '\0'); + +96 :: +vtf +(& +xt +[0],ext. +cy +(+ 1, +fm +, +cy_ +); + +97 + gt_n + = +t +( +xt +); + +100 +va_d +( +cy_ +); + +101  + gt_n +; + +104 +size_t + + gShl +:: +vtf +(cڡ +__FshSgHr + * +fm +, +va_li + + +) { + +105 +size_t + + gt_n + = 0; + +106 +va_li + + gcy_ +; + +108 +va_cy +( +cy_ +, + +); + +110  + gfm_n + = :: +vtf_P +( +nuαr +, 0, +t_ +< +PGM_P +>( +fm +), + +); + +111 i( + gfm_n + > 0) { + +112 + gd +:: +rg + +xt +( +ic_ +< +d +::rg:: +size_ty +>( +fm_n +), '\0'); + +114 :: +vtf_P +(& +xt +[0],ext. +cy +(+ 1, +t_ +< +PGM_P +>( +fm +), +cy_ +); + +115 + gt_n + = +t +( +xt +); + +118 +va_d +( +cy_ +); + +119  + gt_n +; + +123  + gShl +:: +t_l_avaab_commds +() { + +136 +d +:: +li + +s܋d_cmds +; + +138 + gcommds_ +-> +f_ch_avaab_commd +(* +this +, [&]( +d +:: +ve + & +me +, std::ve & +gumts +) { + +139 +CommdLe + +commd_le +{ +me +, +gumts +}; + +140 +commd_le +. +es_l_ms +( +me +. +size +()); + +141 +me +. +r +(); + +142 +gumts +. +r +(); + +143 +s܋d_cmds +. +push_back +( +commd_le +. +to_rg +( +maximum_commd_le_ngth +())); + +146 + gs܋d_cmds +. +st +(); + +147 aut& + g + : +s܋d_cmds +) { + +149 +n +( + +); + +153  + gShl +:: +a_cut_le +() { + +154 +t +( +F +("\033[0G\033[K")); + +157  + gShl +:: +a_chas +( +size_t + +cou +) { + +158 +t +( +d +:: +rg +( +cou +, '\x08')); + +159 +t +( +F +("\033[K")); + + @lib/uuid-console/src/shell_prompt.cpp + +19  + ~ + +21  + ~ + +23 +mea + + guuid + { + +25 +mea + + gcse + { + +27  + gShl +:: +diy_br +() { + +30 +d +:: +rg + +Shl +:: +home_xt +() { + +31  +d +:: +rg +{}; + +34 + gd +:: +rg + +Shl +:: +cڋxt_xt +() { + +35  +d +:: +rg +{}; + +38 + gd +:: +rg + +Shl +:: +om_efix +() { + +39  +d +:: +rg +{}; + +42 + gd +:: +rg + +Shl +:: +om_suffix +() { + +43  +d +:: +rg +{'$'}; + +46  + gShl +:: +d_of_smissi +() { + +47 i( +id_timeout_ + > 0) { + +48 +n +(); + +49 + +(); + +53  + gShl +:: +diy_om +() { + +54  +mode_ +) { + +55  +Mode +:: +DELAY +: + +56  +Mode +:: +BLOCKING +: + +59  + gMode +:: +PASSWORD +: + +60 +t +( +t_ +< +Shl +:: +PasswdDa + *>( +mode_da_ +. +g +())-> +sswd_om_ +); + +63  + gMode +:: +NORMAL +: + +64 +d +:: +rg + +home + = +home_xt +(); + +65 + gd +:: +rg + +cڋxt + = +cڋxt_xt +(); + +67 +t +( +om_efix +()); + +69 i(! + ghome +. +emy +()) { + +70 +t +( +COLOR_BRIGHT_GREEN +); + +71 +t +( +COLOR_BOLD_ON +); + +72 +t +( +home +); + +73 +t +( +COLOR_RESET +); + +74 +t +(':'); + +76 i(! + gcڋxt +. +emy +()) { + +77 +t +( +COLOR_BRIGHT_BLUE +); + +78 +t +( +COLOR_BOLD_ON +); + +79 +t +( +cڋxt +); + +80 +t +( +COLOR_RESET +); + +83 +t +( +om_suffix +()); + +84 +t +(' '); + +85 +t +( +le_bufr_ +); + +86 + gom_diyed_ + = +ue +; + + @lib/uuid-console/src/shell_stream.cpp + +19  + ~ + +21  + ~ + +23 +mea + + guuid + { + +25 +mea + + gcse + { + +27  + gShl +:: +avaab +() { + +28 i( +mode_ + = +Mode +:: +BLOCKING +) { + +29 aut* +blockg_da + = +t_ +< +Shl +:: +BlockgDa + *>( +mode_da_ +. +g +()); + +31 i(! +avaab_ch +()) { + +35 i( + gblockg_da +-> + gcsume_le_ed_ +) { + +36 cڡ  + gput + = +ek_e_ch +(); + +38 i( + gput + >= 0) { + +39 cڡ  +c + = +put +; + +41 + gblockg_da +-> + gcsume_le_ed_ + = +l +; + +43 i( + gevious_ + ='\x0D' && +c + == '\x0A') { + +45 +ad_e_ch +(); + +46 + gevious_ + = +c +; + +47  +avaab +(); + +62  + gShl +:: +ad +() { + +63 i( +mode_ + = +Mode +:: +BLOCKING +) { + +64 aut* +blockg_da + = +t_ +< +Shl +:: +BlockgDa + *>( +mode_da_ +. +g +()); + +65 cڡ  + gput + = +ad_e_ch +(); + +67 i( + gput + >= 0) { + +68 cڡ  +c + = +put +; + +70 i( + gblockg_da +-> + gcsume_le_ed_ +) { + +71 + gblockg_da +-> + gcsume_le_ed_ + = +l +; + +73 i( + gevious_ + ='\x0D' && +c + == '\x0A') { + +75 +evious_ + = +c +; + +76  +ad +(); + +81 + gevious_ + = +c +; + +84  + gput +; + +90  + gShl +:: +ek +() { + +91 i( +mode_ + = +Mode +:: +BLOCKING +) { + +92 aut* +blockg_da + = +t_ +< +Shl +:: +BlockgDa + *>( +mode_da_ +. +g +()); + +93 cڡ  + gput + = +ek_e_ch +(); + +95 i( + gblockg_da +-> + gcsume_le_ed_ +) { + +96 i( + gput + >= 0) { + +97 cڡ  +c + = +put +; + +99 + gblockg_da +-> + gcsume_le_ed_ + = +l +; + +101 i( + gevious_ + ='\x0D' && +c + == '\x0A') { + +103 +ad_e_ch +(); + +104 + gevious_ + = +c +; + +105  +ek +(); + +110  + gput +; + +116  + gShl +:: +ush +() { + + @lib/uuid-console/src/stream_console.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +24  + ~ + +26 +mea + + guuid + { + +28 +mea + + gcse + { + +30 + gSmCse +:: +SmCse +( +Sm + & +am +) + +31 : +Shl +() + +32 , +am_ +( +am +) { + +36 + gSmCse +:: +SmCse +( +d +:: +shed_r +< +Commds +> +commds +, +Sm + & +am +,  +cڋxt +,  +ags +) + +37 : +Shl +( +d +:: +move +( +commds +), +cڋxt +, +ags +) + +38 , +am_ +( +am +) { + +41 +size_t + + gSmCse +:: +wre +( +ut8_t + +da +) { + +42  +am_ +. +wre +( +da +); + +45 +size_t + + gSmCse +:: +wre +(cڡ +ut8_t + * +bufr +, size_ +size +) { + +46  + gam_ +. +wre +( +bufr +, +size +); + +49 +bo + + gSmCse +:: +avaab_ch +() { + +50  +am_ +. +avaab +() > 0; + +53  + gSmCse +:: +ad_e_ch +() { + +54  +am_ +. +ad +(); + +57  + gSmCse +:: +ek_e_ch +() { + +58  +am_ +. +ek +(); + + @lib/uuid-console/src/uuid/console.h + +19 #ide +UUID_CONSOLE_H_ + + +20  + #UUID_CONSOLE_H_ + + + ) + +22  + ~ + +24  + ~ + +25  + ~ + +26  + ~ + +27  + ~ + +28  + ~ + +29  + ~
  • + +30  + ~ + +31  + ~ + +32  + ~ + +33  + ~ + +34  + ~ + +36  + ~ + +37  + ~ + +39 +mea + + guuid + { + +47 +mea + + gcse + { + +49 +ass + + gCommds +; + +62 +ass + + gShl + : +public + +d +:: +ab_shed_om_this +< +Shl +>,ubli + guuid +:: +log +:: +Hdr +, + gpublic + :: +Sm + { + +63 +public +: + +64  +cڡex + +size_t + +MAX_COMMAND_LINE_LENGTH + = 80; + +65  +cڡex + +size_t + + gMAX_LOG_MESSAGES + = 20; + +78 +usg + + gsswd_funi + = +d +:: +funi +<( +Shl + & +shl +, +bo + + gcomed +, cڡ + gd +:: +rg + & +sswd +)>; + +85 +usg + + gday_funi + = +d +:: +funi +<( +Shl + & +shl +)>; + +96 +usg + + gblockg_funi + = +d +:: +funi +< +bo +( +Shl + & +shl +, bo + +)>; + +98 ~ +Shl +( + govride +; + +108  +lo_l +(); + +124  +t +(); + +133  +lo_e +(); + +141 +bo + +rušg +() const; + +153  + +(); + +161  +le + cڡ + guuid +:: +log +:: +Logg + & +logg +() { + +162  +logg_ +; + +174 +vtu +  + gݔ +<<( + gd +:: +shed_r +< +uuid +:: +log +:: +Mesge +> +mesge + +ovride +; + +184 + guuid +:: +log +:: +Lev + +log_v +() const; + +195  +log_v +( +uuid +:: +log +:: +Lev + +v +); + +203 +size_t + +maximum_commd_le_ngth +() const; + +212  +maximum_commd_le_ngth +( +size_t + +ngth +); + +219 +size_t + +maximum_log_mesges +() const; + +228  +maximum_log_mesges +( +size_t + +cou +); + +235  +id_timeout +() const; + +244  +id_timeout +( +timeout +); + +254 +le +  +cڋxt +() const { + +255 i(! + gcڋxt_ +. +emy +()) { + +256  + gcڋxt_ +. +back +(); + +269 +le +  +r_cڋxt +( +cڋxt +) { + +270 + gcڋxt_ +. +ema_back +( +cڋxt +); + +281 +vtu + +bo + +ex_cڋxt +(); + +292 +le +  +add_ags +( +ags +) { + +293 + gags_ + | +ags +; + +306 +le + +bo + +has_ags +( +ags +) const { + +307  ( + gags_ + & + gags += +ags +; + +318 +le +  +move_ags +( +ags +) { + +319 + gags_ + &~ +ags +; + +337  +r_sswd +(cڡ +__FshSgHr + * +om +, +sswd_funi + +funi +); + +352  +day_f +( +ms +, +day_funi + +funi +); + +371  +day_u +( +ut64_t + +ms +, +day_funi + +funi +); + +385  +block_wh +( +blockg_funi + +funi +); + +396  +avaab +( +f + + govride +; + +406  +ad +( +f + + govride +; + +417  +ek +( +f + + govride +; + +426 +size_t + +wre +( +ut8_t + +da + + govride + = 0; + +435 +size_t + +wre +(cڡ +ut8_t + * +bufr +, size_ +size + + govride + = 0; + +446  +ush +( + govride +; + +448 + gusg + :: +Prt +:: +t +; + +456 +size_t + +t +(cڡ +d +:: +rg + & +da +); + +457 + gusg + :: +Prt +:: +n +; + +465 +size_t + +n +(cڡ +d +:: +rg + & +da +); + +474 +size_t + +tf +(cڡ * +fm +, ...) ; + +483 +size_t + +tf +(cڡ +__FshSgHr + * +fm +, ...) ; + +492 +size_t + +tn +(cڡ * +fm +, ...) ; + +501 +size_t + +tn +(cڡ +__FshSgHr + * +fm +, ...) ; + +508  +t_l_avaab_commds +(); + +522  +voke_commd +(cڡ +d +:: +rg + & +le +); + +524 + geed +: + +535 +Shl +() = ; + +547 +Shl +( +d +:: +shed_r +< +Commds +> +commds +,  +cڋxt + = 0,  +ags + = 0); + +554 +vtu +  +a_cut_le +(); + +561 +vtu +  +a_chas +( +size_t + +cou +); + +569 +vtu +  +d +(); + +576 +vtu +  +diy_br +(); + +586 +vtu + + gd +:: +rg + +home_xt +(); + +597 +vtu + + gd +:: +rg + +cڋxt_xt +(); + +608 +vtu + + gd +:: +rg + +om_efix +(); + +618 +vtu + + gd +:: +rg + +om_suffix +(); + +631 +vtu +  +d_of_smissi +(); + +638 +vtu +  +ݳd +(); + +640 + give +: + +646 as + cMode + : +ut8_t + { + +647 +NORMAL +, + +648 + gPASSWORD +, + +649 + gDELAY +, + +650 + gBLOCKING +, + +658 as + cModeDa + { + +659 + gpublic +: + +660 +vtu + ~ +ModeDa +() = ; + +662 + geed +: + +663 +ModeDa +() = ; + +671 as + cPasswdDa + : +public + +ModeDa + { + +672 +public +: + +684 +PasswdDa +(cڡ +__FshSgHr + * +sswd_om +, +sswd_funi + &&assword_function); + +685 ~ +PasswdDa +( + govride + = ; + +687 cڡ +__FshSgHr + * + gsswd_om_ +; + +688 +sswd_funi + + gsswd_funi_ +; + +696 as + cDayDa + : +public + +ModeDa + { + +697 +public +: + +708 +DayDa +( +ut64_t + +day_time +, +day_funi + && delay_function); + +709 ~ +DayDa +( + govride + = ; + +711 +ut64_t + + gday_time_ +; + +712 +day_funi + + gday_funi_ +; + +720 as + cBlockgDa + : +public + +ModeDa + { + +721 +public +: + +730 +exic + +BlockgDa +( +blockg_funi + && blocking_function); + +731 ~ +BlockgDa +( + govride + = ; + +733 +blockg_funi + + gblockg_funi_ +; + +734 +bo + + gcsume_le_ed_ + = +ue +; + +735 +bo + + g_ + = +l +; + +747 as + cQueuedLogMesge + { + +748 + gpublic +: + +756 +QueuedLogMesge +( +id +, +d +:: +shed_r +< +uuid +:: +log +:: +Mesge +> && +cڋ +); + +757 ~ +QueuedLogMesge +() = ; + +759 cڡ  + gid_ +; + +760 cڡ + gd +:: +shed_r + +cڋ_ +; + +763 +Shl +(cڡ Sh& +de +; + +764 + gShl + & + gݔ +=(cڡ +Shl + & +de +; + +773  +lo_nm +(); + +781  +lo_sswd +(); + +789  +lo_day +(); + +797  +lo_blockg +(); + +805 +vtu + +bo + +avaab_ch +() = 0; + +812 +vtu +  +ad_e_ch +() = 0; + +820 +vtu +  +ek_e_ch +() = 0; + +831  +diy_om +(); + +837  +ouut_logs +(); + +843  +oss_commd +(); + +849  +oss_comi +(); + +859  +oss_sswd +( +bo + +comed +); + +866  +check_id_timeout +(); + +875  +de_bufr_wd +( +bo + +diy +); + +885 +size_t + +vtf +(cڡ * +fm +, +va_li + + +); + +894 +size_t + +vtf +(cڡ +__FshSgHr + * +fm +, +va_li + + +); + +896 cڡ + guuid +:: +log +:: +Logg + +logg_ +; + +897  + gd +:: +t +< +d +:: +shed_r +< +Shl +>> +shls_ +; + +899 + gd +:: +shed_r +< +Commds +> +commds_ +; + +900 + gd +:: +deque +<> +cڋxt_ +; + +901  + gags_ + = 0; + +902  + glog_mesge_id_ + = 0; + +903 + gd +:: +li +< +QueuedLogMesge +> +log_mesges_ +; + +904 +size_t + + gmaximum_log_mesges_ + = +MAX_LOG_MESSAGES +; + +905 + gd +:: +rg + +le_bufr_ +; + +906 +size_t + + gmaximum_commd_le_ngth_ + = +MAX_COMMAND_LINE_LENGTH +; + +907  + gevious_ + = 0; + +908 +Mode + + gmode_ + = Mode:: +NORMAL +; + +909 + gd +:: +unique_r +< +ModeDa +> +mode_da_ + = +nuαr +; + +910 +bo + + gݳd_ + = +l +; + +911 +bo + + gom_diyed_ + = +l +; + +912 +ut64_t + + gid_time_ + = 0; + +913 +ut64_t + + gid_timeout_ + = 0; + +922 as + cCommdLe + { + +923 + gpublic +: + +929 +CommdLe +() = ; + +938 +exic + +CommdLe +(cڡ +d +:: +rg + & +le +); + +947 +exic + +CommdLe +( +d +:: +liz_li +> +gumts +); + +949 ~ +CommdLe +() = ; + +951 #ifde +UNIT_TEST + + +952 +CommdLe +(CommandLine &&) = ; + +953 + gCommdLe + & + gݔ +=( +CommdLe + &&) = ; + +954 +CommdLe +(cڡ CommdL& +__ibu__ +(( +dd +)) = ; + +955 + gCommdLe + & + gݔ +=(cڡ +CommdLe + & +__ibu__ +(( +dd +)) = ; + +968 + gd +:: +rg + +to_rg +( +size_t + +rve + = +Shl +:: +MAX_COMMAND_LINE_LENGTH +) const; + +978 +le + +size_t + +tٮ_size +() const { + +979  + gms_ +. +size +(+ ( + gag_a + ? 1 : 0); + +988  +t +(); + +998 +le +  +es_l_ms +() { + +999 + ges_ms_ + = +d +:: +numic_lims +< +size_t +>:: +max +(); + +1012 +le +  +es_l_ms +() { + +1013 + ges_ms_ + = +ms_ +. +size +(); + +1026 +le +  +es_l_ms +( +size_t + +cou +) { + +1027 + ges_ms_ + = +cou +; + +1036 +le + + gd +:: +ve +< +d +:: +rg +> & +ݔ +*() { + +1037  +ms_ +; + +1045 +le + cڡ + gd +:: +ve +< +d +:: +rg +> & +ݔ +*() const { + +1046  +ms_ +; + +1054 +le + + gd +:: +ve +< +d +:: +rg +> * +ݔ +->() { + +1055  & +ms_ +; + +1063 +le + cڡ + gd +:: +ve +< +d +:: +rg +> * +ݔ +->() const { + +1064  & +ms_ +; + +1075 +nd + +le + +bo + + gݔ +==(cڡ +CommdLe + & +lhs +, cڡ + gCommdLe + & + grhs +) { + +1076  ( + glhs +. + gag_a + = +rhs +. +ag_a +&& ( +lhs +. +ms_ + ==hs.parameters_); + +1086 +nd + +le + +bo + + gݔ +!=(cڡ +CommdLe + & +lhs +, cڡ + gCommdLe + & + grhs +) { + +1087  !( + glhs + = +rhs +); + +1090 +bo + + gag_a + = +l +; + +1092 + give +: + +1093 +d +:: +ve + +ms_ +; + +1094 +size_t + + ges_ms_ + = +d +:: +numic_lims +:: +max +(); + +1104 as + cCommds + { + +1105 + gpublic +: + +1113  + sComi + { + +1114 +d +:: +li +< +CommdLe +> +hp +; + +1115 +CommdLe + + gamt +; + +1123  + sExecuti + { + +1124 cڡ +__FshSgHr + * + gr +; + +1134 +usg + + gcommd_funi + = +d +:: +funi +<( +Shl + & +shl +, + gd +:: +ve + & +gumts +)>; + +1150 +usg + + ggumt_comi_funi + = +d +:: +funi +( +Shl + & +shl +, cڡ + gd +::ve & +gumts +)>; + +1160 +usg + + gy_funi + = +d +:: +funi +<(d:: +ve + & +me +, + gd +::ve & +gumts +)>; + +1169 +Commds +() = ; + +1170 ~ +Commds +() = ; + +1185  +add_commd +(cڡ +ash_rg_ve + & +me +, +commd_funi + +funi +); + +1202  +add_commd +(cڡ +ash_rg_ve + & +me +, cڡ fsh_rg_ve & +gumts +, +commd_funi + +funi +); + +1221  +add_commd +(cڡ +ash_rg_ve + & +me +, cڡ fsh_rg_ve & +gumts +, +commd_funi + +funi +, +gumt_comi_funi + +g_funi +); + +1236  +add_commd +( +cڋxt +,  +ags +, cڡ +ash_rg_ve + & +me +, +commd_funi + +funi +); + +1254  +add_commd +( +cڋxt +,  +ags +, cڡ +ash_rg_ve + & +me +, cڡ fsh_rg_ve & +gumts +, +commd_funi + +funi +); + +1274  +add_commd +( +cڋxt +, + +1275  +ags +, + +1276 cڡ +ash_rg_ve + & +me +, + +1277 cڡ +ash_rg_ve + & +gumts +, + +1278 +commd_funi + +funi +, + +1279 +gumt_comi_funi + +g_funi +); + +1291 +Executi + +execu_commd +( +Shl + & +shl +, +CommdLe + && +commd_le +); + +1303 +Comi + +come_commd +( +Shl + & +shl +, cڡ +CommdLe + & +commd_le +); + +1313  +f_ch_avaab_commd +( +Shl + & +shl +, +y_funi + +f +) const; + +1315  +move_cڋxt_commds +( +cڋxt +); + +1316  +move_l_commds +(); + +1318 + give +: + +1323 as + cCommd + { + +1324 +public +: + +1341 +Commd +( +ags +, + +1342 cڡ +ash_rg_ve + +me +, + +1343 cڡ +ash_rg_ve + +gumts +, + +1344 +commd_funi + +funi +, + +1345 +gumt_comi_funi + +g_funi +); + +1346 ~ +Commd +(); + +1356 +size_t + +mimum_gumts +() const; + +1364 +le + +size_t + +maximum_gumts +() const { + +1365  + ggumts_ +. +size +(); + +1368  + gags_ +; + +1369 cڡ +ash_rg_ve + + gme_ +; + +1370 cڡ +ash_rg_ve + + ggumts_ +; + +1371 +commd_funi + + gfuni_ +; + +1372 +gumt_comi_funi + + gg_funi_ +; + +1374 + give +: + +1375 +Commd +(cڡ Commd & +de +; + +1376 + gCommd + & + gݔ +=(cڡ +Commd + & +de +; + +1385  + sMch + { + +1386 + gd +:: +muim +< +size_t +, cڡ + gCommd + *> + gexa +; + +1387 + gd +:: +muim +< +size_t +, cڡ + gCommd + *> + gl +; + +1399 +Mch + +fd_commd +( +Shl + & +shl +, cڡ +CommdLe + & +commd_le +); + +1412  +bo + +fd_lge_comm_efix +(cڡ +d +:: +muim +< +size_t +, cڡ +Commd + *> & +commds +, std:: +ve + & +lge_me +); + +1421  + gd +:: +rg + +fd_lge_comm_efix +(cڡ +d +:: +ve + & +gumts +); + +1423 + gd +:: +muim +<, + gCommd +> + gcommds_ +; + +1435 as + cSmCse + : +vtu + +public + +Shl + { + +1436 +public +: + +1449 +SmCse +( +d +:: +shed_r +< +Commds +> +commds +, +Sm + & +am +,  +cڋxt + = 0,  +ags + = 0); + +1450 ~ +SmCse +( + govride + = ; + +1459 +size_t + +wre +( +ut8_t + +da + + govride +; + +1468 +size_t + +wre +(cڡ +ut8_t + * +bufr +, size_ +size + + govride +; + +1470 + geed +: + +1481 +exic + +SmCse +( +Sm + & +am +); + +1483 + give +: + +1484 +SmCse +(cڡ SmCsސ& +de +; + +1485 + gSmCse + & + gݔ +=(cڡ +SmCse + & +de +; + +1493 +bo + +avaab_ch +( + govride +; + +1500  +ad_e_ch +( + govride +; + +1508  +ek_e_ch +( + govride +; + +1510 + gSm + & + gam_ +; + + @lib/uuid-log/src/format_level_char.cpp + +19  + ~ + +21 +mea + + guuid + { + +23 +mea + + glog + { + +25  +fm_v_ch +( +Lev + +v +) { + +26 +cڡex +  + glog_v_chs +[() +Lev +:: +ALL + - ()Lev:: +OFF + + 1] = {' ', 'P', 'A', 'C', 'E', 'W', 'N', 'I', 'D', 'T', ' '}; + +27  + glog_v_chs +[() +v + + 1]; + + @lib/uuid-log/src/format_level_lowercase.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +25 +mea + + guuid + { + +27 +mea + + glog + { + +29  +cڡex + cڡ * +pr_v_low_off + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "off"; + +30  +cڡex + cڡ * +pr_v_low_emg + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "emerg"; + +31  +cڡex + cڡ * +pr_v_low_ + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "crit"; + +32  +cڡex + cڡ * +pr_v_low_t + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "alert"; + +33  +cڡex + cڡ * +pr_v_low_r + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "err"; + +34  +cڡex + cڡ * +pr_v_low_wng + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "warning"; + +35  +cڡex + cڡ * +pr_v_low_ni + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "notice"; + +36  +cڡex + cڡ * +pr_v_low_fo + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "info"; + +37  +cڡex + cڡ * +pr_v_low_debug + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "debug"; + +38  +cڡex + cڡ * +pr_v_low_a + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "trace"; + +39  +cڡex + cڡ * +pr_v_low_l + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "all"; + +41 cڡ +__FshSgHr + * + glog_v_low +[() +Lev +:: +ALL + - ()Lev:: +OFF + + 1] +__ibu__ +(( +__igd__ +(()))) + +42 +PROGMEM + = { +t_ +( +pr_v_low_off +), + +43 +t_ +( +pr_v_low_emg +), + +44 +t_ +( +pr_v_low_ +), + +45 +t_ +( +pr_v_low_t +), + +46 +t_ +( +pr_v_low_r +), + +47 +t_ +( +pr_v_low_wng +), + +48 +t_ +( +pr_v_low_ni +), + +49 +t_ +( +pr_v_low_fo +), + +50 +t_ +( +pr_v_low_debug +), + +51 +t_ +( +pr_v_low_a +), + +52 +t_ +( +pr_v_low_l +)}; + +54 cڡ +__FshSgHr + * +fm_v_low +( +Lev + +v +) { + +55  + glog_v_low +[() +v + + 1]; + + @lib/uuid-log/src/format_level_uppercase.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +25 +mea + + guuid + { + +27 +mea + + glog + { + +29  +cڡex + cڡ * +pr_v_u_off + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "OFF"; + +30  +cڡex + cڡ * +pr_v_u_emg + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "EMERG"; + +31  +cڡex + cڡ * +pr_v_u_ + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "CRIT"; + +32  +cڡex + cڡ * +pr_v_u_t + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "ALERT"; + +33  +cڡex + cڡ * +pr_v_u_r + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "ERR"; + +34  +cڡex + cڡ * +pr_v_u_wng + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "WARNING"; + +35  +cڡex + cڡ * +pr_v_u_ni + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "NOTICE"; + +36  +cڡex + cڡ * +pr_v_u_fo + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "INFO"; + +37  +cڡex + cڡ * +pr_v_u_debug + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "DEBUG"; + +38  +cڡex + cڡ * +pr_v_u_a + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "TRACE"; + +39  +cڡex + cڡ * +pr_v_u_l + +__ibu__ +(( +__igd__ +(())) + gPROGMEM + = "ALL"; + +41 cڡ +__FshSgHr + * + glog_v_u +[() +Lev +:: +ALL + - ()Lev:: +OFF + + 1] +__ibu__ +(( +__igd__ +(()))) + +42 +PROGMEM + = { +t_ +( +pr_v_u_off +), + +43 +t_ +( +pr_v_u_emg +), + +44 +t_ +( +pr_v_u_ +), + +45 +t_ +( +pr_v_u_t +), + +46 +t_ +( +pr_v_u_r +), + +47 +t_ +( +pr_v_u_wng +), + +48 +t_ +( +pr_v_u_ni +), + +49 +t_ +( +pr_v_u_fo +), + +50 +t_ +( +pr_v_u_debug +), + +51 +t_ +( +pr_v_u_a +), + +52 +t_ +( +pr_v_u_l +)}; + +54 cڡ +__FshSgHr + * +fm_v_u +( +Lev + +v +) { + +55  + glog_v_u +[() +v + + 1]; + + @lib/uuid-log/src/format_timestamp_ms.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +24  + ~ + +26 +mea + + guuid + { + +28 +mea + + glog + { + +30 + gd +:: +rg + +fm_timeamp_ms +( +ut64_t + +timeamp_ms +,  +days_width +) { + +31  + gdays +; + +32  + ghours +, + gmus +, + gcds +, + gmlicds +; + +34 + gdays + = +timeamp_ms + / 86400000UL; + +35 + gtimeamp_ms + %= 86400000UL; + +37 + ghours + = +timeamp_ms + / 3600000UL; + +38 + gtimeamp_ms + %= 3600000UL; + +40 + gmus + = +timeamp_ms + / 60000UL; + +41 + gtimeamp_ms + %= 60000UL; + +43 + gcds + = +timeamp_ms + / 1000UL; + +44 + gtimeamp_ms + %= 1000UL; + +46 + gmlicds + = +timeamp_ms +; + +48 + gd +:: +ve +<> +xt +(10 + 1 + 2 + 1 + 2 + 1 + 2 + 1 + 3 + 1); + +50 +tf_P +( +xt +. +da +(),ext. +size +(), +PSTR +("%0*lu+%02u:%02u:%02u.%03u"), +d +:: +m +( +days_width +, 10U), +days +, +hours +, +mus +, +cds +, +mlicds +); + +52  + gxt +. +da +(); + + @lib/uuid-log/src/levels.cpp + +19  + ~ + +21  + ~ + +23 +mea + + guuid + { + +25 +mea + + glog + { + +27 + gd +:: +ve +< +Lev +> +vs +() { + +28  { +Lev +:: +OFF +, + +29 + gLev +:: +EMERG +, + +30 + gLev +:: +ALERT +, + +31 + gLev +:: +CRIT +, + +32 + gLev +:: +ERR +, + +33 + gLev +:: +WARNING +, + +34 + gLev +:: +NOTICE +, + +35 + gLev +:: +INFO +, + +36 + gLev +:: +DEBUG +, + +37 + gLev +:: +TRACE +, + +38 + gLev +:: +ALL +}; + + @lib/uuid-log/src/levels_lowercase.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +25 +mea + + guuid + { + +27 +mea + + glog + { + +29 + gd +:: +ve +< +d +:: +rg +> +vs_low +() { + +30  { +uuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +OFF +)), + +31 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +EMERG +)), + +32 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +ALERT +)), + +33 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +CRIT +)), + +34 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +ERR +)), + +35 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +WARNING +)), + +36 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +NOTICE +)), + +37 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +INFO +)), + +38 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +DEBUG +)), + +39 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +TRACE +)), + +40 + guuid +:: +ad_ash_rg +( +fm_v_low +( +Lev +:: +ALL +))}; + + @lib/uuid-log/src/levels_uppercase.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +25 +mea + + guuid + { + +27 +mea + + glog + { + +29 + gd +:: +ve +< +d +:: +rg +> +vs_u +() { + +30  { +uuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +OFF +)), + +31 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +EMERG +)), + +32 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +ALERT +)), + +33 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +CRIT +)), + +34 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +ERR +)), + +35 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +WARNING +)), + +36 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +NOTICE +)), + +37 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +INFO +)), + +38 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +DEBUG +)), + +39 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +TRACE +)), + +40 + guuid +:: +ad_ash_rg +( +fm_v_u +( +Lev +:: +ALL +))}; + + @lib/uuid-log/src/log.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +24  + ~ + +25  + ~
  • + +26  + ~ + +27  + ~ + +28  + ~ + +29  + ~ + +30  + ~ + +32 +mea + + guuid + { + +34 +mea + + glog + { + +36 + gd +:: +m +< +Hdr + *, + gLev +> + gLogg +:: +hdrs_ +; + +37 +Lev + + gLogg +:: +v_ + = Lev:: +OFF +; + +39 + gMesge +:: +Mesge +( +ut64_t + +uime_ms +, +Lev + +v +, +Facy + +cy +, cڡ +__FshSgHr + * +me +, cڡ +d +:: +rg + && +xt +) + +40 : +uime_ms +(uptime_ms) + +41 , +v +(level) + +42 , +cy +(facility) + +43 , +me +(name) + +44 , +xt +( +d +:: +move +(text)) { + +47 +Logg +::Logg(cڡ +__FshSgHr + * +me +, +Facy + +cy +) + +48 : +me_ +( +me +) + +49 , +cy_ +( +cy +){ + +53  + gLogg +:: +gi_hdr +( +Hdr + * +hdr +, +Lev + +v +) { + +54 + ghdrs_ +[ +hdr +] = +v +; + +55 +esh_log_v +(); + +58  + gLogg +:: +uegi_hdr +( +Hdr + * +hdr +) { + +59 +hdrs_ +. +a +( +hdr +); + +60 +esh_log_v +(); + +63 +Lev + + gLogg +:: +g_log_v +(cڡ +Hdr + * +hdr +) { + +64 cڡut +v + = +hdrs_ +. +fd +( +cڡ_ +< +Hdr + *>( +hdr +)); + +66 i( + gv + ! +hdrs_ +. +d +()) { + +67  +v +-> +cd +; + +70  + gLev +:: +OFF +; + +73  + gLogg +:: +emg +(cڡ * +fm +, ...) const { + +74 i( +abd +( +Lev +:: +EMERG +)) { + +75 +va_li + + +; + +77 +va_t +( + +, +fm +); + +78 +vlog +( +Lev +:: +EMERG +, +fm +, + +); + +79 +va_d +( + +); + +83  + gLogg +:: +emg +(cڡ +__FshSgHr + * +fm +, ...) const { + +84 i( +abd +( +Lev +:: +EMERG +)) { + +85 +va_li + + +; + +87 +va_t +( + +, +fm +); + +88 +vlog +( +Lev +:: +EMERG +, +fm +, + +); + +89 +va_d +( + +); + +93  + gLogg +:: + +(cڡ * +fm +, ...) const { + +94 i( +abd +( +Lev +:: +CRIT +)) { + +95 +va_li + + +; + +97 +va_t +( + +, +fm +); + +98 +vlog +( +Lev +:: +CRIT +, +fm +, + +); + +99 +va_d +( + +); + +103  + gLogg +:: + +(cڡ +__FshSgHr + * +fm +, ...) const { + +104 i( +abd +( +Lev +:: +CRIT +)) { + +105 +va_li + + +; + +107 +va_t +( + +, +fm +); + +108 +vlog +( +Lev +:: +CRIT +, +fm +, + +); + +109 +va_d +( + +); + +113  + gLogg +:: +t +(cڡ * +fm +, ...) const { + +114 i( +abd +( +Lev +:: +ALERT +)) { + +115 +va_li + + +; + +117 +va_t +( + +, +fm +); + +118 +vlog +( +Lev +:: +ALERT +, +fm +, + +); + +119 +va_d +( + +); + +123  + gLogg +:: +t +(cڡ +__FshSgHr + * +fm +, ...) const { + +124 i( +abd +( +Lev +:: +ALERT +)) { + +125 +va_li + + +; + +127 +va_t +( + +, +fm +); + +128 +vlog +( +Lev +:: +ALERT +, +fm +, + +); + +129 +va_d +( + +); + +132  + gLogg +:: +r +(cڡ * +fm +, ...) const { + +133 i( +abd +( +Lev +:: +ERR +)) { + +134 +va_li + + +; + +136 +va_t +( + +, +fm +); + +137 +vlog +( +Lev +:: +ERR +, +fm +, + +); + +138 +va_d +( + +); + +142  + gLogg +:: +r +(cڡ +__FshSgHr + * +fm +, ...) const { + +143 i( +abd +( +Lev +:: +ERR +)) { + +144 +va_li + + +; + +146 +va_t +( + +, +fm +); + +147 +vlog +( +Lev +:: +ERR +, +fm +, + +); + +148 +va_d +( + +); + +152  + gLogg +:: +wng +(cڡ * +fm +, ...) const { + +153 i( +abd +( +Lev +:: +WARNING +)) { + +154 +va_li + + +; + +156 +va_t +( + +, +fm +); + +157 +vlog +( +Lev +:: +WARNING +, +fm +, + +); + +158 +va_d +( + +); + +162  + gLogg +:: +wng +(cڡ +__FshSgHr + * +fm +, ...) const { + +163 i( +abd +( +Lev +:: +WARNING +)) { + +164 +va_li + + +; + +166 +va_t +( + +, +fm +); + +167 +vlog +( +Lev +:: +WARNING +, +fm +, + +); + +168 +va_d +( + +); + +172  + gLogg +:: +ni +(cڡ * +fm +, ...) const { + +173 i( +abd +( +Lev +:: +NOTICE +)) { + +174 +va_li + + +; + +176 +va_t +( + +, +fm +); + +177 +vlog +( +Lev +:: +NOTICE +, +fm +, + +); + +178 +va_d +( + +); + +182  + gLogg +:: +ni +(cڡ +__FshSgHr + * +fm +, ...) const { + +183 i( +abd +( +Lev +:: +NOTICE +)) { + +184 +va_li + + +; + +186 +va_t +( + +, +fm +); + +187 +vlog +( +Lev +:: +NOTICE +, +fm +, + +); + +188 +va_d +( + +); + +192  + gLogg +:: +fo +(cڡ * +fm +, ...) const { + +193 i( +abd +( +Lev +:: +INFO +)) { + +194 +va_li + + +; + +196 +va_t +( + +, +fm +); + +197 +vlog +( +Lev +:: +INFO +, +fm +, + +); + +198 +va_d +( + +); + +202  + gLogg +:: +fo +(cڡ +__FshSgHr + * +fm +, ...) const { + +203 i( +abd +( +Lev +:: +INFO +)) { + +204 +va_li + + +; + +206 +va_t +( + +, +fm +); + +207 +vlog +( +Lev +:: +INFO +, +fm +, + +); + +208 +va_d +( + +); + +212  + gLogg +:: +debug +(cڡ * +fm +, ...) const { + +213 i( +abd +( +Lev +:: +DEBUG +)) { + +214 +va_li + + +; + +216 +va_t +( + +, +fm +); + +217 +vlog +( +Lev +:: +DEBUG +, +fm +, + +); + +218 +va_d +( + +); + +222  + gLogg +:: +debug +(cڡ +__FshSgHr + * +fm +, ...) const { + +223 i( +abd +( +Lev +:: +DEBUG +)) { + +224 +va_li + + +; + +226 +va_t +( + +, +fm +); + +227 +vlog +( +Lev +:: +DEBUG +, +fm +, + +); + +228 +va_d +( + +); + +232  + gLogg +:: +a +(cڡ * +fm +, ...) const { + +233 i( +abd +( +Lev +:: +TRACE +)) { + +234 +va_li + + +; + +236 +va_t +( + +, +fm +); + +237 +vlog +( +Lev +:: +TRACE +, +fm +, + +); + +238 +va_d +( + +); + +242  + gLogg +:: +a +(cڡ +__FshSgHr + * +fm +, ...) const { + +243 i( +abd +( +Lev +:: +TRACE +)) { + +244 +va_li + + +; + +246 +va_t +( + +, +fm +); + +247 +vlog +( +Lev +:: +TRACE +, +fm +, + +); + +248 +va_d +( + +); + +252  + gLogg +:: +log +( +Lev + +v +, +Facy + +cy +, cڡ * +fm +, ...) const { + +253 i( + gv + < + gLev +:: +EMERG +) { + +254 +v + = +Lev +:: +EMERG +; + +255 } i( + gv + > + gLev +:: +TRACE +) { + +256 +v + = +Lev +:: +TRACE +; + +259 i( +abd +( +v +)) { + +260 +va_li + + g +; + +262 +va_t +( + +, +fm +); + +263 +vlog +( +v +, +cy +, +fm +, + +); + +264 +va_d +( + +); + +268  + gLogg +:: +log +( +Lev + +v +, +Facy + +cy +, cڡ +__FshSgHr + * +fm +, ...) const { + +269 i( + gv + < + gLev +:: +EMERG +) { + +270 +v + = +Lev +:: +EMERG +; + +271 } i( + gv + > + gLev +:: +TRACE +) { + +272 +v + = +Lev +:: +TRACE +; + +275 i( +abd +( +v +)) { + +276 +va_li + + g +; + +278 +va_t +( + +, +fm +); + +279 +vlog +( +v +, +cy +, +fm +, + +); + +280 +va_d +( + +); + +284  + gLogg +:: +vlog +( +Lev + +v +, cڡ * +fm +, +va_li + + +) const { + +285 +vlog +( +v +, +cy_ +, +fm +, + +); + +288  + gLogg +:: +vlog +( +Lev + +v +, +Facy + +cy +, cڡ * +fm +, +va_li + + +) const { + +289 + gd +:: +ve +<> +xt +( +MAX_LOG_LENGTH + + 1); + +291 i( +vtf +( +xt +. +da +(),ext. +size +(), +fm +, + +) <= 0) { + +295 +dich +( +v +, +cy +, +xt +); + +298  + gLogg +:: +vlog +( +Lev + +v +, cڡ +__FshSgHr + * +fm +, +va_li + + +) const { + +299 +vlog +( +v +, +cy_ +, +fm +, + +); + +302  + gLogg +:: +vlog +( +Lev + +v +, +Facy + +cy +, cڡ +__FshSgHr + * +fm +, +va_li + + +) const { + +303 + gd +:: +ve +<> +xt +( +MAX_LOG_LENGTH + + 1); + +305 i( +vtf_P +( +xt +. +da +(),ext. +size +(), +t_ +< +PGM_P +>( +fm +), + +) <= 0) { + +309 +dich +( +v +, +cy +, +xt +); + +312  + gLogg +:: +dich +( +Lev + +v +, +Facy + +cy +, +d +:: +ve +<> & +xt +) const { + +313 +d +:: +shed_r +< +Mesge +> +mesge + = std:: +make_shed +( +g_uime_ms +(), + gv +, + gcy +, + gme_ +, + gxt +. +da +()); + +314 + gxt +. +size +(0); + +316 aut& + ghdr + : +hdrs_ +) { + +317 i( +v + < +hdr +. +cd +) { + +318 * +hdr +. +f + << +mesge +; + +323  + gLogg +:: +esh_log_v +() { + +324 +v_ + = +Lev +:: +OFF +; + +326 aut& + ghdr + : +hdrs_ +) { + +327 i( +v_ + < +hdr +. +cd +) { + +328 +v_ + = +hdr +. +cd +; + + @lib/uuid-log/src/parse_level_lowercase.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +25 +mea + + guuid + { + +27 +mea + + glog + { + +29 +bo + +r_v_low +(cڡ +d +:: +rg + & +me +, +Lev + & +v +) { + +30 aut + gvue + : +vs +()) { + +31 i(! +rcmp_P +( +me +. +c_r +(), +t_ +< +PGM_P +>( +fm_v_low +( +vue +)))) { + +32 + gv + = +vue +; + +33  + gue +; + +36  + gl +; + + @lib/uuid-log/src/parse_level_uppercase.cpp + +19  + ~ + +21  + ~ + +23  + ~ + +25 +mea + + guuid + { + +27 +mea + + glog + { + +29 +bo + +r_v_u +(cڡ +d +:: +rg + & +me +, +Lev + & +v +) { + +30 aut + gvue + : +vs +()) { + +31 i(! +rcmp_P +( +me +. +c_r +(), +t_ +< +PGM_P +>( +fm_v_u +( +vue +)))) { + +32 + gv + = +vue +; + +33  + gue +; + +36  + gl +; + + @lib/uuid-log/src/uuid/log.h + +19 #ide +UUID_LOG_H_ + + +20  + #UUID_LOG_H_ + + + ) + +22  + ~ + +24  + ~ + +25  + ~ + +26  + ~
  • + +27  + ~ + +28  + ~ + +29  + ~ + +30  + ~ + +32  + ~ + +34 +mea + + guuid + { + +49  + #COLOR_RESET + "\x1B[0m" + + ) + +50  + #COLOR_BLACK + "\x1B[0;30m" + + ) + +51  + #COLOR_RED + "\x1B[0;31m" + + ) + +52  + #COLOR_GREEN + "\x1B[0;32m" + + ) + +53  + #COLOR_YELLOW + "\x1B[0;33m" + + ) + +54  + #COLOR_BLUE + "\x1B[0;34m" + + ) + +55  + #COLOR_MAGENTA + "\x1B[0;35m" + + ) + +56  + #COLOR_CYAN + "\x1B[0;36m" + + ) + +57  + #COLOR_WHITE + "\x1B[0;37m" + + ) + +58  + #COLOR_BOLD_ON + "\x1B[1m" + + ) + +59  + #COLOR_BOLD_OFF + "\x1B[22m" + + ) + +60  + #COLOR_BRIGHT_BLACK + "\x1B[0;90m" + + ) + +61  + #COLOR_BRIGHT_RED + "\x1B[0;91m" + + ) + +62  + #COLOR_BRIGHT_GREEN + "\x1B[0;92m" + + ) + +63  + #COLOR_BRIGHT_YELLOW + "\x1B[0;99m" + + ) + +64  + #COLOR_BRIGHT_BLUE + "\x1B[0;94m" + + ) + +65  + #COLOR_BRIGHT_MAGENTA + "\x1B[0;95m" + + ) + +66  + #COLOR_BRIGHT_CYAN + "\x1B[0;96m" + + ) + +67  + #COLOR_BRIGHT_WHITE + "\x1B[0;97m" + + ) + +68  + #COLOR_UNDERLINE + "\x1B[4m" + + ) + +69  + #COLOR_BRIGHT_RED_BACKGROUND + "\x1B[41;1m" + + ) + +71 +mea + + glog + { + +78 + gLev + : +t8_t + { + +79 +OFF + = -1, + +80 + gEMERG + = 0, + +81 + gALERT +, + +82 + gCRIT +, + +83 + gERR +, + +84 + gWARNING +, + +85 + gNOTICE +, + +86 + gINFO +, + +87 + gDEBUG +, + +88 + gTRACE +, + +89 + gALL +, + +97 + gFacy + : +ut8_t + { + +98 +KERN + = 0, + +99 + gUSER +, + +100 + gMAIL +, + +101 + gDAEMON +, + +102 + gAUTH +, + +103 + gSYSLOG +, + +104 + gLPR +, + +105 + gNEWS +, + +106 + gUUCP +, + +107 + gCRON +, + +108 + gAUTHPRIV +, + +109 + gFTP +, + +110 + gNTP +, + +111 + gSECURITY +, + +112 + gCONSOLE +, + +113 + gCRON2 +, + +114 + gLOCAL0 +, + +115 + gLOCAL1 +, + +116 + gLOCAL2 +, + +117 + gLOCAL3 +, + +118 + gLOCAL4 +, + +119 + gLOCAL5 +, + +120 + gLOCAL6 +, + +121 + gLOCAL7 +, + +134 + gd +:: +rg + +fm_timeamp_ms +( +ut64_t + +timeamp_ms +,  +days_width + = 1); + +143 + gd +:: +ve +< +Lev +> +vs +(); + +155  +fm_v_ch +( +Lev + +v +); + +164 cڡ +__FshSgHr + * +fm_v_u +( +Lev + +v +); + +174 + gd +:: +ve +< +d +:: +rg +> +vs_u +(); + +184 +bo + +r_v_u +(cڡ +d +:: +rg + & +me +, +Lev + & +v +); + +193 cڡ +__FshSgHr + * +fm_v_low +( +Lev + +v +); + +203 + gd +:: +ve +< +d +:: +rg +> +vs_low +(); + +213 +bo + +r_v_low +(cڡ +d +:: +rg + & +me +, +Lev + & +v +); + +223  + sMesge + { + +234 +Mesge +( +ut64_t + +uime_ms +, +Lev + +v +, +Facy + +cy +, cڡ +__FshSgHr + * +me +, cڡ +d +:: +rg + && +xt +); + +235 ~ +Mesge +() = ; + +243 cڡ +ut64_t + + guime_ms +; + +250 cڡ +Lev + + gv +; + +257 cڡ +Facy + + gcy +; + +264 cڡ +__FshSgHr + * + gme +; + +274 cڡ + gd +:: +rg + +xt +; + +282 as + cHdr + { + +283 + gpublic +: + +284 +vtu + ~ +Hdr +() = ; + +299 +vtu +  + gݔ +<<( + gd +:: +shed_r +< +Mesge +> +mesge +) = 0; + +301 + geed +: + +302 +Hdr +() = ; + +310 as + cLogg + { + +311 + gpublic +: + +320  +cڡex + +size_t + +MAX_LOG_LENGTH + = 255; + +330 +Logg +(cڡ +__FshSgHr + * +me +, +Facy + +cy + = Facy:: +LOCAL0 +); + +331 ~ +Logg +() = ; + +346  +gi_hdr +( +Hdr + * +hdr +, +Lev + +v +); + +359  +uegi_hdr +( +Hdr + * +hdr +); + +373  +Lev + +g_log_v +(cڡ +Hdr + * +hdr +); + +383  +le + +bo + +abd +( +Lev + +v +) { + +384  + gv + < +v_ +; + +394  +emg +(cڡ * +fm +, ...) const ; + +402  +emg +(cڡ +__FshSgHr + * +fm +, ...) const ; + +411  +t +(cڡ * +fm +, ...) const ; + +419  +t +(cڡ +__FshSgHr + * +fm +, ...) const ; + +428  + +(cڡ * +fm +, ...) const ; + +436  + +(cڡ +__FshSgHr + * +fm +, ...) const ; + +445  +r +(cڡ * +fm +, ...) const ; + +453  +r +(cڡ +__FshSgHr + * +fm +, ...) const ; + +462  +wng +(cڡ * +fm +, ...) const ; + +470  +wng +(cڡ +__FshSgHr + * +fm +, ...) const ; + +479  +ni +(cڡ * +fm +, ...) const ; + +487  +ni +(cڡ +__FshSgHr + * +fm +, ...) const ; + +496  +fo +(cڡ * +fm +, ...) const ; + +503  +fo +(cڡ +__FshSgHr + * +fm +, ...) const ; + +512  +debug +(cڡ * +fm +, ...) const ; + +520  +debug +(cڡ +__FshSgHr + * +fm +, ...) const ; + +529  +a +(cڡ * +fm +, ...) const ; + +537  +a +(cڡ +__FshSgHr + * +fm +, ...) const ; + +548  +log +( +Lev + +v +, +Facy + +cy +, cڡ * +fm +, ...) const ; + +558  +log +( +Lev + +v +, +Facy + +cy +, cڡ +__FshSgHr + * +fm +, ...) const ; + +560 + give +: + +566  +esh_log_v +(); + +576  +vlog +( +Lev + +v +, cڡ * +fm +, +va_li + + +) const; + +585  +vlog +( +Lev + +v +, cڡ +__FshSgHr + * +fm +, +va_li + + +) const; + +596  +vlog +( +Lev + +v +, +Facy + +cy +, cڡ * +fm +, +va_li + + +) const; + +606  +vlog +( +Lev + +v +, +Facy + +cy +, cڡ +__FshSgHr + * +fm +, +va_li + + +) const; + +620  +dich +( +Lev + +v +, +Facy + +cy +, +d +:: +ve +<> & +xt +) const; + +622  + gd +:: +m +< +Hdr + *, + gLev +> + ghdrs_ +; + +623  +Lev + + gv_ +; + +625 cڡ +__FshSgHr + * + gme_ +; + +626 cڡ +Facy + + gcy_ +; + + @lib/uuid-syslog/src/syslog.cpp + +19  + ~"uuid/syog.h +" + +21  + ~ + +22 #ifde +ARDUINO_ARCH_ESP8266 + + +23  + ~ + +25  + ~ + +27  + ~ + +29 #ide +UUID_SYSLOG_HAVE_GETTIMEOFDAY + + +30 #i +defed +( +ARDUINO_ARCH_ESP8266 +|| defed( +ARDUINO_ARCH_ESP32 +) + +32  + #UUID_SYSLOG_HAVE_GETTIMEOFDAY + 1 + + ) + +36 #ide +UUID_SYSLOG_HAVE_GETTIMEOFDAY + + +37  + #UUID_SYSLOG_HAVE_GETTIMEOFDAY + 0 + + ) + +40 #ide +UUID_SYSLOG_HAVE_IPADDRESS_TYPE + + +41 #i +defed +( +ARDUINO_ARCH_ESP8266 +) + +42  + #UUID_SYSLOG_HAVE_IPADDRESS_TYPE + 1 + + ) + +46 #ide +UUID_SYSLOG_HAVE_IPADDRESS_TYPE + + +47  + #UUID_SYSLOG_HAVE_IPADDRESS_TYPE + 0 + + ) + +50 #ide +UUID_SYSLOG_ARP_CHECK + + +51 #i +defed +( +LWIP_VERSION_MAJOR +&& defed( +LWIP_IPV4 +) && LWIP_VERSION_MAJOR >= 2 && LWIP_IPV4 + +52  + #UUID_SYSLOG_ARP_CHECK + 1 + + ) + +56 #ide +UUID_SYSLOG_ARP_CHECK + + +57  + #UUID_SYSLOG_ARP_CHECK + 0 + + ) + +60 #ide +UUID_SYSLOG_NDP_CHECK + + +61 #i +defed +( +LWIP_VERSION_MAJOR +&& defed( +LWIP_IPV6 +) && LWIP_VERSION_MAJOR >= 2 && LWIP_IPV6 + +62  + #UUID_SYSLOG_NDP_CHECK + 1 + + ) + +66 #ide +UUID_SYSLOG_NDP_CHECK + + +67  + #UUID_SYSLOG_NDP_CHECK + 0 + + ) + +70 #i +UUID_SYSLOG_ARP_CHECK + + + +UUID_SYSLOG_NDP_CHECK + + +71  + ~ + +73 #i +UUID_SYSLOG_ARP_CHECK + + +74  + ~ + +75  + ~ + +77 #i +UUID_SYSLOG_NDP_CHECK + + +78  + ~ + +79  + ~ + +82  + ~ + +83  + ~
  • + +84  + ~ + +85  + ~ + +87  + ~ + +88  + ~ + +90 cڡ  + g__pr__logg_me +[] +__ibu__ +(( +__igd__ +(())) +PROGMEM + = "syslog"; + +92 +mea + +uuid + { + +94 +mea + +syog + { + +96 +uuid +:: +log +:: +Logg + +SyogSvi +:: +logg_ +{ + `FPSTR +( +__pr__logg_me +), uuid::log:: +Facy +:: +SYSLOG +}; + +97 +bo + +SyogSvi +:: +QueuedLogMesge +:: +time_good_ + = +l +; + +99 +SyogSvi +::~ + `SyogSvi +() { + +100 +uuid +:: +log +:: +Logg +:: + `uegi_hdr +( +this +); + +103  +SyogSvi +:: + `t +() { + +104 +uuid +:: +log +:: +Logg +:: + `gi_hdr +( +this +, uuid::log:: +Lev +:: +ALL +); + +107 +uuid +:: +log +:: +Lev + +SyogSvi +:: + `log_v +() const { + +108  +uuid +:: +log +:: +Logg +:: + `g_log_v +( +this +); + +111  +SyogSvi +:: + `move_queued_mesges +( +uuid +:: +log +:: +Lev + +v +) { + +112  +offt + = 0; + +114 aut + + = +log_mesges_ +. + `beg +(); i!log_mesges_. + `d +();) { + +115 i( + +-> +cڋ_ +-> +v + >evel) { + +116 +offt +++; + +117 + + = +log_mesges_ +. + `a +(it); + +119 + +-> +id_ + - +offt +; + +120 + +++; + +124 +log_mesge_id_ + - +offt +; + +127  +SyogSvi +:: + `log_v +( +uuid +:: +log +:: +Lev + +v +) { + +128 i(! +d_ +) { + +129 + `move_queued_mesges +( +v +); + +132  +bo + +v_t + = +l +; + +133 +bo + +v_chged + = ! +v_t + || ( +v + ! + `log_v +()); + +134 +v_t + = +ue +; + +136 i( +v_chged + && +v + < +uuid +:: +log +:: +Lev +:: +NOTICE +) { + +137 +logg_ +. + `fo +( + `F +("Logev s%S"), +uuid +:: +log +:: + `fm_v_u +( +v +)); + +139 +uuid +:: +log +:: +Logg +:: + `gi_hdr +( +this +, +v +); + +140 i( +v_chged + && +v + > +uuid +:: +log +:: +Lev +:: +NOTICE +) { + +141 +logg_ +. + `fo +( + `F +("Logev s%S"), +uuid +:: +log +:: + `fm_v_u +( +v +)); + +145 +size_t + +SyogSvi +:: + `maximum_log_mesges +() const { + +146  +maximum_log_mesges_ +; + +149  +SyogSvi +:: + `maximum_log_mesges +( +size_t + +cou +) { + +150 +maximum_log_mesges_ + = +d +:: + `max +(( +size_t +)1, +cou +); + +152  +log_mesges_ +. + `size +(> +maximum_log_mesges_ +) { + +153 +log_mesges_ +. + `p_t +(); + +157 +d +:: + +< +IPAddss +, +ut16_t +> +SyogSvi +:: + `dei +() const { + +158  +d +:: + `make_ +( +ho_ +, +pt_ +); + +161  +SyogSvi +:: + `dei +( +IPAddss + +ho +, +ut16_t + +pt +) { + +162 +ho_ + = +ho +; + +163 +pt_ + = +pt +; + +165 i(( +ut32_t +) +ho_ + == (uint32_t)0) { + +166 +d_ + = +l +; + +167 + `move_queued_mesges +( + `log_v +()); + +171 +d +:: +rg + +SyogSvi +:: + `home +() const { + +172  +home_ +; + +175  +SyogSvi +:: + `home +( +d +:: +rg + +home +) { + +176 i( +home +. + `emy +(|| home. + `fd +(' '! +d +:: +rg +:: +os +) { + +177 +home_ + = '-'; + +179 +home_ + = +d +:: + `move +( +home +); + +183  +SyogSvi +:: + `mk_rv +() const { + +184  +mk_rv_ + / 1000; + +187  +SyogSvi +:: + `mk_rv +( +rv +) { + +188 +mk_rv_ + = ( +ut64_t +) +rv + * 1000; + +191 +SyogSvi +:: +QueuedLogMesge +:: + `QueuedLogMesge +( +id +, +d +:: +shed_r +< +uuid +:: +log +:: +Mesge +> && +cڋ +) + +192 : + `id_ +( +id +) + +193 , + `cڋ_ +( +d +:: + `move +( +cڋ +)) { + +194 i( +time_good_ + || +WiFi +. + `us +(= +WL_CONNECTED +) { + +195 #i +UUID_SYSLOG_HAVE_GETTIMEOFDAY + + +196 i( + `gtimeofday +(& +time_ +, +nuαr +) != 0) { + +197 +time_ +. +tv_c + = ( +time_t +)-1; + +200 +time_ +. +tv_c + = + `time +( +nuαr +); + +201 +time_ +. +tv_uc + = 0; + +204 i( +time_ +. +tv_c + >= 0 &&ime_.tv_sec < 18140 * 86400) { + +205 +time_ +. +tv_c + = ( +time_t +)-1; + +208 i( +time_ +. +tv_c + !( +time_t +)-1) { + +209 +time_good_ + = +ue +; + +212 +time_ +. +tv_c + = ( +time_t +)-1; + +216  +SyogSvi +:: +ݔ +<<( +d +:: +shed_r +< +uuid +:: +log +:: +Mesge +> +mesge +) { + +217 i( +log_mesges_ +. + `size +(> +maximum_log_mesges_ +) { + +218 +log_mesges_ovow_ + = +ue +; + +219 +log_mesges_ +. + `p_t +(); + +222 +log_mesges_ +. + `ema_back +( +log_mesge_id_ +++, +d +:: + `move +( +mesge +)); + +225  +SyogSvi +:: + `lo +() { + +226 ! +log_mesges_ +. + `emy +(&& + `n_sm +()) { + +227 aut +mesge + = +log_mesges_ +. + `t +(); + +229 +d_ + = +ue +; + +230 +log_mesges_ovow_ + = +l +; + +231 aut +ok + = + `sm +( +mesge +); + +232 i( +ok +) { + +235 i(! +log_mesges_ovow_ +) { + +236 +log_mesges_ +. + `p_t +(); + +238 +ϡ_mesge_ + = +uuid +:: + `g_uime_ms +(); + +241 :: + `yld +(); + +243 i(! +ok +) { + +248 i( +d_ + && +mk_rv_ + !0 && +log_mesges_ +. + `emy +()) { + +249 i( +uuid +:: + `g_uime_ms +(- +ϡ_mesge_ + > +mk_rv_ +) { + +252 +ݔ +<<( +d +:: +make_shed +< +uuid +:: +log +:: +Mesge +>(uuid:: + `g_uime_ms +(), + +253 +uuid +:: +log +:: +Lev +:: +INFO +, + +254 +uuid +:: +log +:: +Facy +:: +SYSLOG +, + +255 +t_ +( +__pr__logg_me +), + +256 +uuid +:: + `ad_ash_rg +( + `F +("-- MARK --")))); + +261 +bo + +SyogSvi +:: + `n_sm +() { + +262 #i +UUID_SYSLOG_HAVE_IPADDRESS_TYPE + + +263 i( +ho_ +. + `isV4 +(&& ( +ut32_t +)host_ == (uint32_t)0) { + +264  +l +; + +267 i(( +ut32_t +) +ho_ + == (uint32_t)0) { + +268  +l +; + +272 i( +WiFi +. + `us +(! +WL_CONNECTED +) { + +273  +l +; + +276 cڡ +ut64_t + +now + = +uuid +:: + `g_uime_ms +(); + +277 +ut64_t + +mesge_day + = 100; + +279 #i +UUID_SYSLOG_ARP_CHECK + + +280 #i +UUID_SYSLOG_HAVE_IPADDRESS_TYPE + + +281 i( +ho_ +. + `isV4 +()) + +284 +mesge_day + = 10; + +287 #i +UUID_SYSLOG_NDP_CHECK + && +UUID_SYSLOG_HAVE_IPADDRESS_TYPE + + +288 i( +ho_ +. + `isV6 +()) { + +289 +mesge_day + = 10; + +293 i( +now + < +ϡ_sm_ + ||ow -a_sm_ < +mesge_day +) { + +294  +l +; + +297 #i +UUID_SYSLOG_ARP_CHECK + + +298 #i +UUID_SYSLOG_HAVE_IPADDRESS_TYPE + + +299 i( +ho_ +. + `isV4 +()) + +302 +4_addr_t + +addr +; + +304 + `4_addr_t_u32 +(& +addr +, ( +ut32_t +) +ho_ +); + +306 i(! + `4_addr_ioback +(& +addr +&& ! + `4_addr_ismui +(&addr&& ! + `4_addr_isbrd +(&addr, +tif_deu +)) { + +307  +h_addr + * +h_t + = +nuαr +; + +308 cڡ +4_addr_t + * +_t + = +nuαr +; + +310 i(! + `4_addr_tcmp +(& +addr +, + `tif_4_addr +( +tif_deu +), + `tif_4_tmask +(netif_default))) { + +312 cڡ +4_addr_t + * +gw_addr + = + `tif_4_gw +( +tif_deu +); + +314 i( +gw_addr + ! +nuαr +) { + +315 +addr + = * +gw_addr +; + +319 i( + `hp_fd_addr +( +tif_deu +, & +addr +, & +h_t +, & +_t +) == -1) { + +320 + `hp_quy +( +tif_deu +, & +addr +, +NULL +); + +322 +ϡ_sm_ + = +uuid +:: + `g_uime_ms +(+ ( +ut64_t +)1000 - +mesge_day +; + +324  +l +; + +330 #i +UUID_SYSLOG_NDP_CHECK + && +UUID_SYSLOG_HAVE_IPADDRESS_TYPE + + +331 i( +ho_ +. + `isV6 +()) { + +332 +6_addr_t + +6addr +; + +334 + `IP6_ADDR +(& +6addr +, +ho_ +. + `w6 +()[0], host_.raw6()[1], host_.raw6()[2], host_.raw6()[3]); + +335 + `6_addr_assign_ze +(& +6addr +, +IP6_UNICAST +, +tif_deu +); + +337 i(! + `6_addr_ioback +(& +6addr +&& ! + `6_addr_ismui +(&ip6addr)) { + +339 +bo + +have_addss + = +l +; + +340 cڡ +u8_t + * +hwaddr + = +nuαr +; + +342  +size_t + +i + = 0; i < +LWIP_IPV6_NUM_ADDRESSES +; i++) { + +343 i( + `6_addr_isvid +( + `tif_6_addr_e +( +tif_deu +, +i +))) { + +344 i( + `6_addr_isglob +(& +6addr +)) { + +345 i( + `6_addr_isglob +( + `tif_6_addr +( +tif_deu +, +i +))) { + +346 +have_addss + = +ue +; + +349 } i( + `6_addr_issol +(& +6addr +)) { + +350 i( + `6_addr_issol +( + `tif_6_addr +( +tif_deu +, +i +))) { + +351 +have_addss + = +ue +; + +354 } i( + `6_addr_isuniquol +(& +6addr +)) { + +355 i( + `6_addr_isuniquol +( + `tif_6_addr +( +tif_deu +, +i +))) { + +356 +have_addss + = +ue +; + +359 } i( + `6_addr_iklol +(& +6addr +)) { + +360 i( + `6_addr_iklol +( + `tif_6_addr +( +tif_deu +, +i +))) { + +361 +have_addss + = +ue +; + +365 +have_addss + = +ue +; + +371 i(! +have_addss +) { + +373 +ϡ_sm_ + = +uuid +:: + `g_uime_ms +(+ ( +ut64_t +)1000 - +mesge_day +; + +375  +l +; + +376 } i( + `nd6_g_xt_h_addr__queue +( +tif_deu +, +NULL +, & +6addr +, & +hwaddr +! +ERR_OK +) { + +378 +ϡ_sm_ + = +uuid +:: + `g_uime_ms +(+ ( +ut64_t +)1000 - +mesge_day +; + +380  +l +; + +386  +ue +; + +389 +bo + +SyogSvi +:: + `sm +(cڡ +QueuedLogMesge + & +mesge +) { + +400 i( +udp_ +. + `begPack +( +ho_ +, +pt_ +) != 1) { + +401 +ϡ_sm_ + = +uuid +:: + `g_uime_ms +(); + +402  +l +; + +405 +udp_ +. + `tf_P +( + `PSTR +("<%u>1 "), (() +mesge +. +cڋ_ +-> +cy + * 8+ +d +:: + `m +(7U, ()mesge.cڋ_-> +v +)); + +422 +udp_ +. + `t +('-'); + +423 +udp_ +. + `tf_P +( + `PSTR +(" %- - - - \xEF\xBB\xBF"), +home_ +. + `c_r +()); + +424 +udp_ +. + `t +( +uuid +:: +log +:: + `fm_timeamp_ms +( +mesge +. +cڋ_ +-> +uime_ms +, 3). + `c_r +()); + +426 #agm +GCC + +dgnoic + +push + + +427 #agm +GCC + +dgnoic + +igned + "-Wformat" + +428 +udp_ +. + `tf_P +( + `PSTR +(" %%lu: [%S] "), +uuid +:: +log +:: + `fm_v_ch +( +mesge +. +cڋ_ +-> +v +), mesge. +id_ +, mesge.cڋ_-> +me +); + +429 #agm +GCC + +dgnoic + +p + + +430 +udp_ +. + `t +( +mesge +. +cڋ_ +-> +xt +. + `c_r +()); + +431 +bo + +ok + = ( +udp_ +. + `dPack +() == 1); + +433 +ϡ_sm_ + = +uuid +:: + `g_uime_ms +(); + +434  +ok +; + +439 + } +} + + @lib/uuid-syslog/src/uuid/syslog.h + +19 #ide +UUID_SYSLOG_H_ + + +20  + #UUID_SYSLOG_H_ + + + ) + +22  + ~ + +23 #ifde +ARDUINO_ARCH_ESP8266 + + +24  + ~ + +26  + ~ + +28  + ~ + +29  + ~ + +31  + ~ + +32  + ~
  • + +33  + ~ + +34  + ~ + +36  + ~ + +38 +mea + + guuid + { + +46 +mea + + gsyog + { + +53 as + cSyogSvi + : +public + +uuid +:: +log +:: +Hdr + { + +54 +public +: + +55  +cڡex + +size_t + +MAX_LOG_MESSAGES + = 50; + +56  +cڡex + +ut16_t + + gDEFAULT_PORT + = 514; + +63 +SyogSvi +() = ; + +65 ~ +SyogSvi +(); + +72  +t +(); + +83 + guuid +:: +log +:: +Lev + +log_v +() const; + +95  +log_v +( +uuid +:: +log +:: +Lev + +v +); + +103 +size_t + +maximum_log_mesges +() const; + +111  +maximum_log_mesges +( +size_t + +cou +); + +119 + gd +:: + +< +IPAddss +, + gut16_t +> +dei +() const; + +131  +dei +( +IPAddss + +ho +, +ut16_t + +pt + = +DEFAULT_PORT +); + +139 + gd +:: +rg + +home +() const; + +146  +home +( +d +:: +rg + hostname); + +154  +mk_rv +() const; + +164  +mk_rv +( +rv +); + +171  +lo +(); + +184 +vtu +  + gݔ +<<( + gd +:: +shed_r +< +uuid +:: +log +:: +Mesge +> +mesge +); + +186 + give +: + +196 as + cQueuedLogMesge + { + +197 +public +: + +205 +QueuedLogMesge +( +id +, +d +:: +shed_r +< +uuid +:: +log +:: +Mesge +> && +cڋ +); + +206 ~ +QueuedLogMesge +() = ; + +208  + gid_ +; + +209  +timev + + gtime_ +; + +210 cڡ + gd +:: +shed_r + +cڋ_ +; + +212 + give +: + +213  +bo + +time_good_ +; + +222  +move_queued_mesges +( +uuid +:: +log +:: +Lev + +v +); + +231 +bo + +n_sm +(); + +241 +bo + +sm +(cڡ +QueuedLogMesge + & +mesge +); + +243  + guuid +:: +log +:: +Logg + +logg_ +; + +245 +bo + + gd_ + = +l +; + +246 +WiFiUDP + + gudp_ +; + +247 +IPAddss + + gho_ +; + +248 +ut16_t + + gpt_ + = +DEFAULT_PORT +; + +249 +ut64_t + + gϡ_sm_ + = 0; + +250 + gd +:: +rg + +home_ +{'-'}; + +251 +size_t + + gmaximum_log_mesges_ + = +MAX_LOG_MESSAGES +; + +252  + glog_mesge_id_ + = 0; + +253 + gd +:: +li +< +QueuedLogMesge +> +log_mesges_ +; + +254 + gd +:: +omic +< +bo +> +log_mesges_ovow_ +{ +l +}; + +255 +ut64_t + + gmk_rv_ + = 0; + +256 +ut64_t + + gϡ_mesge_ + = 0; + + @lib/uuid-telnet/src/stream.cpp + +19  + ~"uuid/ʑ.h +" + +21  + ~ + +23  + ~ + +24  + ~ + +25  + ~ + +27 +mea + + guuid + { + +29 +mea + + gʑ + { + +31 + gTtSm +:: +TtSm +( +WiFiCl + & + +) + +32 : +_ +( + +) { + +33 +ouut_bufr_ +. +rve +( +BUFFER_SIZE +); + +36  + gTtSm +:: +t +() { + +37 +w_wre +({ + +38 +IAC +, +WILL +, +OPT_ECHO +, + +39 +IAC +, +WILL +, +OPT_BINARY +, + +40 +IAC +, +WILL +, +OPT_SGA +, + +41 +IAC +, +DONT +, +OPT_ECHO +, + +42 +IAC +, +DO +, +OPT_BINARY +, + +43 +IAC +, +DO +, +OPT_SGA + + +47  + gTtSm +:: +avaab +() { + +48 i( +ek +() == -1) { + +55  + gTtSm +:: +ad +() { + +56 i( +ek_ + != -1) { + +57  +da + = +ek_ +; + +58 + gek_ + = -1; + +59  + gda +; + +62 +bufr_ush +(); + +64 + gt +: + +65  +da + = +w_ad +(); + +67 i( + gda + == -1) { + +71  + gc + = +da +; + +73 i( + gsub_gٟti_ +) { + +74 i( + gevious_w__ + = +IAC +) { + +75  +c +) { + +76  +SE +: + +77 +sub_gٟti_ + = +l +; + +78 + gevious_w__ + = 0; + +79  + gt +; + +81  + gIAC +: + +82 +evious_w__ + = 0; + +83  + gt +; + +86  + gc +) { + +87  + gIAC +: + +88 +evious_w__ + = +c +; + +89  + gt +; + +92 +evious_w__ + = 0; + +93  + gt +; + +97 i( + gevious_w__ + = +IAC +) { + +98  +c +) { + +99  +IP +: + +101 +evious_w__ + = 0; + +102 + gc + = '\x03'; + +105  + gEC +: + +107 +evious_w__ + = 0; + +108 + gc + = '\x08'; + +111  + gEL +: + +113 +evious_w__ + = 0; + +114 + gc + = '\x15'; + +117  + gIAC +: + +118 +evious_w__ + = 0; + +121  + gSB +: + +122  +WILL +: + +123  +WONT +: + +124  +DO +: + +125  +DONT +: + +126 +evious_w__ + = +c +; + +127  + gt +; + +129  + gSE +: + +130  +DM +: + +131  +BRK +: + +132  +AO +: + +133  +AYT +: + +134  +GA +: + +135  +NOP +: + +137 +evious_w__ + = 0; + +138  + gt +; + +140 } i( + gevious_w__ + = +SB +) { + +141 +sub_gٟti_ + = +ue +; + +142 + gevious_w__ + = 0; + +143  + gt +; + +144 } i( + gevious_w__ + = +WILL + || +evious_w__ + = +WONT +) { + +145  +c +) { + +146  +OPT_ECHO +: + +148 +w_wre +({ +IAC +, +DONT +, +c +}); + +151  + gOPT_BINARY +: + +152  +OPT_SGA +: + +154 +w_wre +({ +IAC +, +DO +, +c +}); + +159 +w_wre +({ +IAC +, +DONT +, +c +}); + +163 + gevious_w__ + = 0; + +164  + gt +; + +165 } i( + gevious_w__ + = +DO +) { + +166  +c +) { + +167  +OPT_ECHO +: + +168  +OPT_BINARY +: + +169  +OPT_SGA +: + +175 +w_wre +({ +IAC +, +WONT +, +c +}); + +179 + gevious_w__ + = 0; + +180  + gt +; + +181 } i( + gevious_w__ + = +DONT +) { + +182  +c +) { + +183  +OPT_ECHO +: + +184  +OPT_BINARY +: + +185  +OPT_SGA +: + +187 +w_wre +({ +IAC +, +WILL +, +c +}); + +195 + gevious_w__ + = 0; + +196  + gt +; + +198  + gc +) { + +199  + gIAC +: + +200 +evious_w__ + = +c +; + +201  + gt +; + +204 +evious_w__ + = 0; + +210 i( + gevious__ + = +CR +) { + +211 i( +c + = +NUL +) { + +212 +evious__ + = 0; + +213  + gt +; + +217 + gevious__ + = +c +; + +218  + gc +; + +221  + gTtSm +:: +ek +() { + +222 +bufr_ush +(); + +227 i( + gek_ + == -1) { + +228 +ek_ + = +ad +(); + +231  + gek_ +; + +234 +size_t + + gTtSm +:: +wre +( +ut8_t + +da +) { + +235 i( +evious_out_ + = +CR + && +da + ! +LF +) { + +236 +evious_out_ + = +da +; + +238 i( +w_wre +({ +NUL +, +da +}) != 2) { + +242 + gevious_out_ + = +da +; + +245 i( + gda + = +IAC +) { + +246 i( +w_wre +({ +IAC +, IAC}) != 2) { + +250 i( +w_wre +( +da +) != 1) { + +258 +size_t + + gTtSm +:: +wre +(cڡ +ut8_t + * +bufr +, size_ +size +) { + +259 + gd +:: +ve +<> +da +; + +260 + gda +. +rve +( +size +); + +262  + gsize +-- > 0) { + +263  + gc + = * +bufr +++; + +265 i( + gevious_out_ + = +CR + && +c + ! +LF +) { + +266 +da +. +push_back +(() +NUL +); + +269 i( + gc + = +IAC +) { + +270 +da +. +push_back +(() +IAC +); + +273 + gevious_out_ + = +c +; + +274 + gda +. +push_back +( +c +); + +277 +size_t + + gn + = +w_wre +( +da +); + +278 i( + gn + < + gsize +) { + +279 + gn + = 0; + +281  + gn +; + +284  + gTtSm +:: +ush +() { + +291  +TtSm +:: +w_avaab +() { + +292  +_ +. +avaab +(); + +295  + gTtSm +:: +w_ad +() { + +296  +_ +. +ad +(); + +299  + gTtSm +:: +bufr_ush +() { + +300 i(! +ouut_bufr_ +. +emy +()) { + +301 +size_t + +n + = +_ +. +wre +( +t_ +( +ouut_bufr_ +. +da +()), ouut_bufr_. +size +()); + +302 i( + gn + ! +ouut_bufr_ +. +size +()) { + +303 +_ +. + +(); + +305 + gouut_bufr_ +. +r +(); + +306 + gouut_bufr_ +. +shrk_to_f +(); + +310 +size_t + + gTtSm +:: +w_wre +( +da +) { + +311 +ouut_bufr_ +. +push_back +( +da +); + +313 i( + gouut_bufr_ +. +size +(> +BUFFER_SIZE +) { + +314 +bufr_ush +(); + +320 +size_t + + gTtSm +:: +w_wre +(cڡ +d +:: +ve +<> & +da +) { + +321  +w_wre +( +t_ +( +da +.da()), da. +size +()); + +324 +size_t + + gTtSm +:: +w_wre +(cڡ +ut8_t + * +bufr +, size_ +size +) { + +325 +size_t + + gofft + = 0; + +326 +size_t + + gmag + = +size +; + +328 i(! + gouut_bufr_ +. +emy +()) { + +330 +size_t + + gblock + = +d +:: +m +( +mag +, +BUFFER_SIZE + - +ouut_bufr_ +. +size +()); + +332 + gouut_bufr_ +. + +( +ouut_bufr_ +. +d +(), +bufr +, buf+ +block +); + +333 + gofft + + +block +; + +334 + gmag + - +block +; + +336 i( + gouut_bufr_ +. +size +(> +BUFFER_SIZE +) { + +337 +bufr_ush +(); + +341 i( + gmag + > +BUFFER_SIZE +) { + +343 +size_t + +n + = +_ +. +wre +( +bufr + + +offt +, +mag +); + +344 i( + gn + ! +mag +) { + +345 +_ +. + +(); + +346  + gofft + + + gn +; + +348 } i( + gmag + > 0) { + +350 + gouut_bufr_ +. + +( +ouut_bufr_ +. +d +(), +bufr + + +offt +, buf+ off+ +mag +); + +353  + gsize +; + + @lib/uuid-telnet/src/telnet.cpp + +19  + ~"uuid/ʑ.h +" + +21  + ~ + +22 #i +defed +( +ESP8266 +) + +23  + ~ + +24 #i +defed +( +ESP32 +) + +25  + ~ + +28  + ~ + +30  + ~ + +31  + ~
  • + +32  + ~ + +33  + ~ + +35  + ~ + +36  + ~ + +38 #ide +UUID_TELNET_HAVE_WIFICLIENT_REMOTE + + +39 #i +defed +( +ARDUINO_ARCH_ESP8266 +|| defed( +ARDUINO_ARCH_ESP32 +) + +40  + #UUID_TELNET_HAVE_WIFICLIENT_REMOTE + 1 + + ) + +42  + #UUID_TELNET_HAVE_WIFICLIENT_REMOTE + 0 + + ) + +46 #ide +UUID_TELNET_HAVE_WIFICLIENT_NODELAY + + +47 #i +defed +( +ARDUINO_ARCH_ESP8266 +|| defed( +ARDUINO_ARCH_ESP32 +) + +48  + #UUID_TELNET_HAVE_WIFICLIENT_NODELAY + 1 + + ) + +50  + #UUID_TELNET_HAVE_WIFICLIENT_NODELAY + 0 + + ) + +54 #ide +UUID_TELNET_HAVE_WIFICLIENT_KEEPALIVE + + +55 #i +defed +( +ARDUINO_ARCH_ESP8266 +) + +56  + #UUID_TELNET_HAVE_WIFICLIENT_KEEPALIVE + 1 + + ) + +58  + #UUID_TELNET_HAVE_WIFICLIENT_KEEPALIVE + 0 + + ) + +62 cڡ  + g__pr__logg_me +[] +__ibu__ +(( +__igd__ +(())) +PROGMEM + = "telnet"; + +64 +mea + +uuid + { + +66 +mea + +ʑ + { + +68 +uuid +:: +log +:: +Logg + +TtSvi +:: +logg_ +{ + `FPSTR +( +__pr__logg_me +), uuid::log:: +Facy +:: +DAEMON +}; + +70 +TtSvi +:: + `TtSvi +( +d +:: +shed_r +< +uuid +:: +cse +:: +Commds +> +commds +,  +cڋxt +,  +ags +) + +71 : + `TtSvi +( +DEFAULT_PORT +, +commds +, +cڋxt +, +ags +) { + +74 +TtSvi +:: + `TtSvi +( +ut16_t + +pt +, +d +:: +shed_r +< +uuid +:: +cse +:: +Commds +> +commds +,  +cڋxt +,  +ags +) + +75 : + `TtSvi +( +pt +, + +76 [ +commds +, +cڋxt +, +ags +]( +Sm + & +am +, cڡ +IPAddss + & +addr + + `__ibu__ +(( +unud +)), +ut16_t + +pt + __attribute__((unused))) + +77 -> +d +:: +shed_r +< +uuid +:: +cse +:: +Shl +> {  std:: +make_shed +( +commds +, +am +, +cڋxt +, +ags +); }) { + +80 +TtSvi +:: + `TtSvi +( +shl_y_funi + +shl_y +) + +81 : + `TtSvi +( +DEFAULT_PORT +, +shl_y +) { + +84 +TtSvi +:: + `TtSvi +( +ut16_t + +pt +, +shl_y_funi + +shl_y +) + +85 : + `rv_ +( +pt +) + +86 , + `shl_y_ +( +shl_y +) { + +89  +TtSvi +:: + `t +() { + +90 +rv_ +. + `beg +(); + +93  +TtSvi +:: + `o_l +() { + +94 ! +cis_ +. + `emy +()) { + +95 +cis_ +. + `t +(). + ` +(); + +96 +cis_ +. + `p_t +(); + +100  +TtSvi +:: + ` +() { + +101 +rv_ +. + ` +(); + +104 +size_t + +TtSvi +:: + `maximum_cis +() const { + +105  +maximum_cis_ +; + +108  +TtSvi +:: + `maximum_cis +( +size_t + +cou +) { + +109 +maximum_cis_ + = +d +:: + `max +(( +size_t +)1, +cou +); + +111  +cis_ +. + `size +(> +maximum_cis_ +) { + +112 aut + + = +cis_ +. + `beg +(); i!cis_. + `d +();) { + +113 i( + +-> + `aive +()) { + +114 + +-> + ` +(); + +115 + + = +cis_ +. + `a +(it); + +118 + + = +cis_ +. + `a +(it); + +124  +TtSvi +:: + `l_id_timeout +() const { + +125  +l_id_timeout_ +; + +128  +TtSvi +:: + `l_id_timeout +( +timeout +) { + +129 +l_id_timeout_ + = +timeout +; + +132  +TtSvi +:: + `deu_wre_timeout +() const { + +133  +wre_timeout_ +; + +136  +TtSvi +:: + `deu_wre_timeout +( +timeout +) { + +137 +wre_timeout_ + = +timeout +; + +140  +TtSvi +:: + `lo +() { + +141 aut + + = +cis_ +. + `beg +(); i!cis_. + `d +();) { + +142 i(! + +-> + `lo +()) { + +143 + + = +cis_ +. + `a +(it); + +145 + +++; + +149 +WiFiCl + + + = +rv_ +. + `avaab +(); + +150 i( + +) { + +151 i( +cis_ +. + `size +(> +maximum_cis_ +) { + +152 #i +UUID_TELNET_HAVE_WIFICLIENT_REMOTE + + +153 +logg_ +. + `fo +( + `F +("New connection from [%s]:%uejected (connectionimiteached)"), + +154 +uuid +:: + `b_to_rg +( + +. + `meIP +()). + `c_r +(), + +155 + +. + `mePt +()); + +157 +logg_ +. + `fo +( + `F +("New connectionejected (connectionimiteached)")); + +159 + +. + `n +( + `F +("Maximum connectionimiteached")); + +160 + +. + ` +(); + +162 #i +UUID_TELNET_HAVE_WIFICLIENT_REMOTE + + +163 +logg_ +. + `fo +( + `F +("New ci from [%s]:%uced"), +uuid +:: + `b_to_rg +( + +. + `meIP +()). + `c_r +(), cl. + `mePt +()); + +165 +cis_ +. + `ema_back +( +shl_y_ +, +d +:: + `move +( + +), +l_id_timeout_ +, +wre_timeout_ +); + +166 #i!( +UUID_TELNET_HAVE_WIFICLIENT_REMOTE +) + +167 +logg_ +. + `fo +( + `F +("New ci %aced"), & +cis_ +. + `back +()); + +173 +TtSvi +:: +Ci +:: + `Ci +( +shl_y_funi + & +shl_y +, +WiFiCl + && + +,  +id_timeout +,  +wre_timeout +) + +174 : + `_ +( +d +:: + `move +( + +)) + +175 , + `am_ +( +_ +) { + +176 #i +UUID_TELNET_HAVE_WIFICLIENT_REMOTE + + +178 +addr_ + = +_ +. + `meIP +(); + +179 +pt_ + = +_ +. + `mePt +(); + +181 +pt_ + = 0; + +184 #i +UUID_TELNET_HAVE_WIFICLIENT_NODELAY + + +185 +_ +. + `tNoDay +( +ue +); + +188 #i +UUID_TELNET_HAVE_WIFICLIENT_KEEPALIVE + + +190 +_ +. + `kpAlive +(5, 5, 5); + +193 i( +wre_timeout + > 0) { + +194 +_ +. + `tTimeout +( +wre_timeout +); + +197 +am_ +. + `t +(); + +199 i( +_ +. + `ced +()) { + +200 +d +:: +shed_r +< +uuid +:: +cse +:: +Shl +> +shl + = + `shl_y +( +am_ +, +addr_ +, +pt_ +); + +201 +shl +-> + `id_timeout +( +id_timeout +); + +202 +shl +-> + `t +(); + +203 +shl_ + = +shl +; + +205 +shl_ + = +nuαr +; + +209 +bo + +TtSvi +:: +Ci +:: + `aive +() { + +210  +shl_ +. + `u_cou +() > 1; + +213 +bo + +TtSvi +:: +Ci +:: + `lo +() { + +214 i( + `aive +()) { + +215 i(! +_ +. + `ced +()) { + +216 +shl_ +-> + ` +(); + +218  +ue +; + +220 #i +UUID_TELNET_HAVE_WIFICLIENT_REMOTE + + +221 +logg_ +. + `fo +( + `F +("Ci from [%s]:%u clod"), +uuid +:: + `b_to_rg +( +addr_ +). + `c_r +(), +pt_ +); + +223 +logg_ +. + `fo +( + `F +("Ci %od"), +this +); + +225  +l +; + +229  +TtSvi +:: +Ci +:: + ` +() { + +230 i( +shl_ +) { + +231 +shl_ +-> + ` +(); + +237 + } +} + + @lib/uuid-telnet/src/uuid/telnet.h + +19 #ide +UUID_TELNET_H_ + + +20  + #UUID_TELNET_H_ + + + ) + +22  + ~ + +23 #ifde +ARDUINO_ARCH_ESP8266 + + +24  + ~ + +26  + ~ + +28  + ~ + +30  + ~ + +31  + ~
  • + +32  + ~ + +33  + ~ + +34  + ~ + +36  + ~ + +38 +mea + + guuid + { + +46 +mea + + gʑ + { + +54 as + cTtSm +: +public + :: +Sm + { + +55 +public +: + +62 +exic + +TtSm +( +WiFiCl + & + +); + +63 + gvtu + ~ +TtSm +() = ; + +70  +t +(); + +78  +avaab +( + govride +; + +85  +ad +( + govride +; + +93  +ek +( + govride +; + +103 +size_t + +wre +( +ut8_t + +da + + govride +; + +114 +size_t + +wre +(cڡ +ut8_t + * +bufr +, size_ +size + + govride +; + +125  +ush +( + govride +; + +127 + give +: + +128  +cڡex + cڡ  +NUL + = 0; + +129  +cڡex + cڡ  + gBEL + = 7; + +130  +cڡex + cڡ  + gBS + = 8; + +131  +cڡex + cڡ  + gHT + = 9; + +132  +cڡex + cڡ  + gLF + = 10; + +133  +cڡex + cڡ  + gVT + = 11; + +134  +cڡex + cڡ  + gFF + = 12; + +135  +cڡex + cڡ  + gCR + = 13; + +136  +cڡex + cڡ  + gSE + = 240; + +137  +cڡex + cڡ  + gNOP + = 241; + +138  +cڡex + cڡ  + gDM + = 242; + +139  +cڡex + cڡ  + gBRK + = 243; + +140  +cڡex + cڡ  + gIP + = 244; + +141  +cڡex + cڡ  + gAO + = 245; + +142  +cڡex + cڡ  + gAYT + = 246; + +143  +cڡex + cڡ  + gEC + = 247; + +144  +cڡex + cڡ  + gEL + = 248; + +145  +cڡex + cڡ  + gGA + = 249; + +146  +cڡex + cڡ  + gSB + = 250; + +147  +cڡex + cڡ  + gWILL + = 251; + +148  +cڡex + cڡ  + gWONT + = 252; + +149  +cڡex + cڡ  + gDO + = 253; + +150  +cڡex + cڡ  + gDONT + = 254; + +151  +cڡex + cڡ  + gIAC + = 255; + +153  +cڡex + cڡ  + gOPT_BINARY + = 0; + +154  +cڡex + cڡ  + gOPT_ECHO + = 1; + +155  +cڡex + cڡ  + gOPT_SGA + = 3; + +157  +cڡex + cڡ +size_t + + gBUFFER_SIZE + = 536; + +159 +TtSm +(cڡ TtSm& +de +; + +160 + gTtSm +& + gݔ +=(cڡ +TtSm +& +de +; + +168  +w_avaab +(); + +175  +w_ad +(); + +183  +bufr_ush +(); + +193 +size_t + +w_wre +( +da +); + +203 +size_t + +w_wre +(cڡ +d +:: +ve +<> & +da +); + +214 +size_t + +w_wre +(cڡ +ut8_t + * +bufr +, size_ +size +); + +216 + gWiFiCl + & + g_ +; + +217  + gevious_w__ + = 0; + +218 +bo + + gsub_gٟti_ + = +l +; + +219  + gevious__ + = 0; + +220  + gevious_out_ + = 0; + +221  + gek_ + = -1; + +222 + gd +:: +ve +<> +ouut_bufr_ +; + +230 as + cTtSvi + { + +231 + gpublic +: + +232  +cڡex + +size_t + +MAX_CONNECTIONS + = 3; + +233  +cڡex + +ut16_t + + gDEFAULT_PORT + = 23; + +234  +cڡex +  + gDEFAULT_IDLE_TIMEOUT + = 600; + +235  +cڡex +  + gDEFAULT_WRITE_TIMEOUT + = 0; + +245 +usg + + gshl_y_funi + = +d +:: +funi +( +Sm + & +am +, cڡ + gIPAddss + & + gaddr +, +ut16_t + + gpt +)>; + +255 +TtSvi +( +d +:: +shed_r +< +uuid +:: +cse +:: +Commds +> +commds +,  +cڋxt + = 0,  +ags + = 0); + +266 +TtSvi +( +ut16_t + +pt +, +d +:: +shed_r +< +uuid +:: +cse +:: +Commds +> +commds +,  +cڋxt + = 0,  +ags + = 0); + +274 +exic + +TtSvi +( +shl_y_funi + +shl_y +); + +283 +TtSvi +( +ut16_t + +pt +, +shl_y_funi + +shl_y +); + +285 ~ +TtSvi +() = ; + +292  +t +(); + +300  +o_l +(); + +308  + +(); + +316 +size_t + +maximum_cis +() const; + +324  +maximum_cis +( +size_t + +cou +); + +332  +l_id_timeout +() const; + +341  +l_id_timeout +( +timeout +); + +350  +deu_wre_timeout +() const; + +361  +deu_wre_timeout +( +timeout +); + +368  +lo +(); + +370 + give +: + +378 as + cCi + { + +379 +public +: + +389 +Ci +( +shl_y_funi + & +shl_y +, +WiFiCl + && + +,  +id_timeout +,  +wre_timeout +); + +390 ~ +Ci +() = ; + +398 +bo + +aive +(); + +405 +bo + +lo +(); + +411  + +(); + +413 + give +: + +414 +Ci +(cڡ Ci& +de +; + +415 + gCi +& + gݔ +=(cڡ +Ci +& +de +; + +417 +WiFiCl + + g_ +; + +418 +TtSm + + gam_ +; + +419 + gd +:: +shed_r +< +uuid +:: +cse +:: +Shl +> +shl_ +; + +420 +IPAddss + + gaddr_ +; + +421 +ut16_t + + gpt_ +; + +424 +TtSvi +(cڡ TtSvi& +de +; + +425 + gTtSvi +& + gݔ +=(cڡ +TtSvi +& +de +; + +427  + guuid +:: +log +:: +Logg + +logg_ +; + +429 +WiFiSv + + grv_ +; + +430 +size_t + + gmaximum_cis_ + = +MAX_CONNECTIONS +; + +431 + gd +:: +li +< +Ci +> +cis_ +; + +432 +shl_y_funi + + gshl_y_ +; + +433  + gl_id_timeout_ + = +DEFAULT_IDLE_TIMEOUT +; + +434  + gwre_timeout_ + = +DEFAULT_WRITE_TIMEOUT +; + + @lib_standalone/Arduino.cpp + +18  + ~ + +19  + ~ + +20  + ~ + +22  + ~ + +24 +NiveCse + + gSl +; + +35  + g__mlis + = 0; + +36  +bo + + g__ouut_ps +[256]; + +37  + g__ouut_v +[256]; + +39  +ma +( +gc + +__ibu__ +(( +unud +)), * +gv +[] __attribute__((unused))) { + +40 +memt +( +__ouut_ps +, 0, (__output_pins)); + +41 +memt +( +__ouut_v +, 0, (__output_level)); + +43 +tup +(); + +46  + g__cyes + = 0; + +48  +mlis +(<10 * 1000 && +__cyes +++ <= 10 * 1000) { + +49 +lo +(); + +55  + $mlis +() { + +56  +__mlis +; + +57 + } +} + +59  + $day +( +mlis +) { + +60 +__mlis + + +mlis +; + +61 + } +} + +63  + $yld +() { + +64 + } +} + +66  + $tf_P +(* +r +, +size_t + +size +, cڡ * +fm +, ...) { + +67 +va_li + + +; + +69 + `va_t +( + +, +fm +); + +70  +t + = + `vtf_P +( +r +, +size +, +fm +, + +); + +71 + `va_d +( + +); + +73  +t +; + +74 + } +} + +76  + $vtf_P +(* +r +, +size_t + +size +, cڡ * +fm +, +va_li + + +) { + +77 +d +:: +rg + +tive_fm +; + +79  +evious + = 0; + +80  +size_t + +i + = 0; i < + ` +( +fm +); i++) { + +81  +c + = +fm +[ +i +]; + +86 i( +evious + ='%' && +c + == 'S') { + +87 +c + = 's'; + +90 +tive_fm + + +c +; + +91 +evious + = +c +; + +94  + `vtf +( +r +, +size +, +tive_fm +. + `c_r +(), + +); + +95 + } +} + +97  + $pMode +( +ut8_t + +p +, ut8_ +mode +) { + +98 +__ouut_ps +[ +p +] = ( +mode + = +OUTPUT +); + +99 + } +} + +101  + $digWre +( +ut8_t + +p +, ut8_ +vue +) { + +102 +__ouut_v +[ +p +] = ( +vue + = +HIGH +? HIGH : +LOW +; + +103 + } +} + +105  + $digRd +( +ut8_t + +p +) { + +106 i( +__ouut_ps +[ +p +]) { + +107  +__ouut_v +[ +p +]; + +108 } i( +p + & 1) { + +109  +HIGH +; + +111  +LOW +; + +113 + } +} + + @lib_standalone/Arduino.h + +18 #ide +ARDUINO_H_ + + +19  + #ARDUINO_H_ + + + ) + +21  + ~ + +23  + ~ + +24  + ~ + +25  + ~ + +26  + ~ + +27  + ~ + +29  + ~ + +31  + #IPAddss + +d +:: +rg + + + ) + +32  + #ICACHE_FLASH_ATTR + + + ) + +33  + #ICACHE_RAM_ATTR + + + ) + +34  + #os_evt_t +  + + ) + +35  + #by + +ut8_t + + + ) + +36  + # + + + + + ) + +37  + #boޗn + +bo + + + ) + +39  + #LOW + 0 + + ) + +40  + #HIGH + 1 + + ) + +42  + #NAN + 0 + + ) + +44  + #INPUT + 0 + + ) + +45  + #OUTPUT + 1 + + ) + +46  + #INPUT_PULLUP + 2 + + ) + +48  +pMode +( +ut8_t + +p +, ut8_ +mode +); + +49  +digWre +( +ut8_t + +p +, ut8_ +vue +); + +50  +digRd +( +ut8_t + +p +); + +52  + #PROGMEM + + + ) + +53  + #PGM_P + cڡ * + + ) + +54  + #PSTR +( +s +) \ + +55 ( + `__exnsi__ +({ \ + +56 cڡ  +__c +[] = ( +s +); \ + +57 & +__c +[0]; \ + +58 })) + + ) + +61 +ass + + g__FshSgHr +; + +62  + #FPSTR +( +rg_l +( +t_ +(rg_l)) + + ) + +63  + #F +( +rg_l +( + `FPSTR +( + `PSTR +(rg_l))) + + ) + +65  +tf_P +(* +r +, +size_t + +size +, cڡ * +fm +, ...); + +66  +vtf_P +(* +r +, +size_t + +size +, cڡ * +fm +, +va_li + + +); + +68  + #pgm_ad_by +( +addr +(* +t_ +ddr)) + + ) + +70 +ass + + gPrt +; + +72 as + cPrb + { + +73 + mpublic +: + +74 +vtu + +size_t + + $tTo +( +Prt + & +t +) const = 0; + +77 as + cPrt + { + +78 +public +: + +79 +vtu + +size_t + + `wre +( +ut8_t + +c +) = 0; + +80 +vtu + +size_t + + `wre +(cڡ +ut8_t + * +bufr +, size_ +size +) = 0; + +81 +size_t + + $t +( +c +) { + +82  + `wre +(( +ut8_t +) +c +); + +84 +size_t + + $t +(cڡ * +da +) { + +85  + `wre +( +t_ +( +da +), + ` +(data)); + +86 + } +} + +87 +size_t + + $t +(cڡ +__FshSgHr + * +da +) { + +88  + `t +( +t_ +( +da +)); + +89 + } +} + +90 +size_t + + $t +(cڡ +Prb + & +b +) { + +91  +b +. + `tTo +(* +this +); + +92 + } +} + +93 +size_t + + $t +( +vue +) { + +94  + `t +( +d +:: + `to_rg +( +vue +). + `c_r +()); + +95 + } +} + +96 +size_t + + $t +( +vue +) { + +97  + `t +( +d +:: + `to_rg +( +vue +). + `c_r +()); + +98 + } +} + +99 +size_t + + $t +( +vue +) { + +100  + `t +( +d +:: + `to_rg +( +vue +). + `c_r +()); + +101 + } +} + +102 +size_t + + $t +( +vue +) { + +103  + `t +( +d +:: + `to_rg +( +vue +). + `c_r +()); + +104 + } +} + +105 +size_t + + $n +() { + +106  + `t +("\r\n"); + +107 + } +} + +108 +size_t + + $n +(cڡ * +da +) { + +109  + `t +( +da ++ + `n +(); + +110 + } +} + +111 +size_t + + $n +(cڡ +__FshSgHr + * +da +) { + +112  + `t +( +t_ +( +da +)+ + `n +(); + +113 + } +} + +114 +size_t + + $n +(cڡ +Prb + & +b +) { + +115  +b +. + `tTo +(* +this ++ + `n +(); + +116 + } +} + +117 +size_t + + $n +( +vue +) { + +118  + `t +( +d +:: + `to_rg +( +vue +). + `c_r +()+ + `n +(); + +119 + } +} + +120 +size_t + + $n +( +vue +) { + +121  + `t +( +d +:: + `to_rg +( +vue +). + `c_r +()+ + `n +(); + +122 + } +} + +123 +size_t + + $n +( +vue +) { + +124  + `t +( +d +:: + `to_rg +( +vue +). + `c_r +()+ + `n +(); + +125 + } +} + +126 +size_t + + $n +( +vue +) { + +127  + `t +( +d +:: + `to_rg +( +vue +). + `c_r +()+ + `n +(); + +128 + } +} + +129 +vtu +  + $ush +(){ + } +}; + +132 as + cSm + : +public + +Prt + { + +133 +public +: + +134 +vtu +  +avaab +() = 0; + +135 +vtu +  +ad +() = 0; + +136 +vtu +  +ek +() = 0; + +139 as + cNiveCse + : +public + +Sm + { + +140 +public +: + +141  +beg +( +baud + +__ibu__ +(( +unud +))) { + +144  + $avaab +( +ovride + { + +145 i( + `ek +() >= 0) { + +150 + } +} + +152  + $ad +( +ovride + { + +153 + `ek +(); + +155 i( +ek_ +) { + +156 +ek_ + = +l +; + +157  +ek_da_ +; + +161 + } +} + +163  + $ek +( +ovride + { + +164 i(! +ek_ +) { + +165  +t + = :: + `ad +( +STDIN_FILENO +, & +ek_da_ +, 1); + +166 +ek_ + = +t + > 0; + +169 i( +ek_ +) { + +170  +ek_da_ +; + +174 + } +} + +176 +size_t + + $wre +( +ut8_t + +c + +ovride + { + +177  :: + `wre +( +STDOUT_FILENO +, & +c +, 1); + +178 + } +} + +180 +size_t + + $wre +(cڡ +ut8_t + * +bufr +, +size_t + +size + +ovride + { + +181  :: + `wre +( +STDOUT_FILENO +, +bufr +, +size +); + +182 + } +} + +184 + give +: + +185 +bo + +ek_ + = +l +; + +186  + gek_da_ +; + +189 +NiveCse + +Sl +; + +191  +mlis +(); + +193  +day +( +mlis +); + +195  +yld +(); + +197  +tup +(); + +198  +lo +(); + +200  + ~"WSg.h +" + + @lib_standalone/ArduinoJson/ArduinoJson.h + +5  + ~"c/ArduoJs.h +" + + @lib_standalone/ArduinoJson/extras/fuzzing/fuzzer_main.cpp + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 "C"  +LLVMFuzzTeOIut +(cڡ +ut8_t +* +da +, +size_t + +size +); + +16 + gd +:: +ve +< +ut8_t +> + $ad +(cڡ * +th +) { + +17 +FILE +* +f + = + `fݒ +( +th +, "rb"); + +18 i(! +f +) { + +19 +d +:: + + << "Faedݒ " << +th + << std:: +dl +; + +20 + `ex +(1); + +23 + `fek +( +f +, 0, +SEEK_END +); + +24 +size_t + +size + = + `l +( +f +); + +25 + `fek +( +f +, 0, +SEEK_SET +); + +27 +d +:: +ve +< +ut8_t +> + `bufr +( +size +); + +28 i( + `d +( +bufr +. + `da +(), 1, +size +, +f +) != size) { + +29 + `fo +( +f +); + +30 +d +:: + + << "Faedػad " << +th + << std:: +dl +; + +31 + `ex +(1); + +34 + `fo +( +f +); + +35  +bufr +; + +36 + } +} + +38  + $ma +( +gc +, cڡ * +gv +[]) { + +39 i( +gc + < 2) { + +40 +d +:: + + << "Uge: msgck_fuzz fes" << std:: +dl +; + +44  +i + = 1; i < +gc +; i++) { + +45 +d +:: +cout + << "Ldg " << +gv +[ +i +] << std:: +dl +; + +46 +d +:: +ve +< +ut8_t +> +bufr + = + `ad +( +gv +[ +i +]); + +47 + `LLVMFuzzTeOIut +( +bufr +. + `da +(), bufr. + `size +()); + +50 + } +} + + @lib_standalone/ArduinoJson/extras/fuzzing/json_fuzzer.cpp + +1  + ~ + +3 "C"  + $LLVMFuzzTeOIut +(cڡ +ut8_t + * +da +, +size_t + +size +) { + +4 +DymicJsDocumt + + `doc +(4096); + +5 +DerliziE + +r + = + `derlizeJs +( +doc +, +da +, +size +); + +6 i(! +r +) { + +7 +d +:: +rg + +js +; + +8 + `rlizeJs +( +doc +, +js +); + +11 + } +} + + @lib_standalone/ArduinoJson/extras/fuzzing/msgpack_fuzzer.cpp + +1  + ~ + +3 "C"  + $LLVMFuzzTeOIut +(cڡ +ut8_t + * +da +, +size_t + +size +) { + +4 +DymicJsDocumt + + `doc +(4096); + +5 +DerliziE + +r + = + `derlizeMsgPack +( +doc +, +da +, +size +); + +6 i(! +r +) { + +7 +d +:: +rg + +js +; + +8 + `rlizeMsgPack +( +doc +, +js +); + +11 + } +} + + @lib_standalone/ArduinoJson/extras/scripts/wandbox/JsonGeneratorExample.cpp + +7  + ~ + +8  + ~"ArduoJs.h +" + +10  + $ma +() { + +16 +SticJsDocumt +<200> +doc +; + +30 +doc +["sensor"] = "gps"; + +31 +doc +["time"] = 1351824120; + +35 +JsAay + +da + = +doc +. + `NeedAay +("data"); + +36 +da +. + `add +(48.756080); + +37 +da +. + `add +(2.302038); + +41 + `rlizeJs +( +doc +, +d +:: +cout +); + +46 +d +:: +cout + << std:: +dl +; + +50 + `rlizeJsPy +( +doc +, +d +:: +cout +); + +60 + } +} + + @lib_standalone/ArduinoJson/extras/scripts/wandbox/JsonParserExample.cpp + +7  + ~ + +8  + ~"ArduoJs.h +" + +10  + $ma +() { + +16 +SticJsDocumt +<300> +doc +; + +31  +js +[] = + +35 +DerliziE + +r + = + `derlizeJs +( +doc +, +js +); + +38 i( +r +) { + +39 +d +:: + + << "derlizeJs(ed: " << +r +. + `c_r +(<< std:: +dl +; + +47 cڡ * +ns + = +doc +["sensor"]; + +48  +time + = +doc +["time"]; + +49  +tude + = +doc +["data"][0]; + +50  +lgude + = +doc +["data"][1]; + +53 +d +:: +cout + << +ns + << std:: +dl +; + +54 +d +:: +cout + << +time + << std:: +dl +; + +55 +d +:: +cout + << +tude + << std:: +dl +; + +56 +d +:: +cout + << +lgude + << std:: +dl +; + +59 + } +} + + @lib_standalone/ArduinoJson/extras/scripts/wandbox/MsgPackParserExample.cpp + +7  + ~ + +8  + ~"ArduoJs.h +" + +10  + $ma +() { + +16 +SticJsDocumt +<300> +doc +; + +28 +ut8_t + +put +[] = {131, 166, 115, 101, 110, 115, 111, 114, 163, 103, 112, 115, + +44 +DerliziE + +r + = + `derlizeMsgPack +( +doc +, +put +); + +47 i( +r +) { + +48 +d +:: + + << "derlizeMsgPack(ed: " << +r +. + `c_r +(<< std:: +dl +; + +56 cڡ * +ns + = +doc +["sensor"]; + +57  +time + = +doc +["time"]; + +58  +tude + = +doc +["data"][0]; + +59  +lgude + = +doc +["data"][1]; + +62 +d +:: +cout + << +ns + << std:: +dl +; + +63 +d +:: +cout + << +time + << std:: +dl +; + +64 +d +:: +cout + << +tude + << std:: +dl +; + +65 +d +:: +cout + << +lgude + << std:: +dl +; + +68 + } +} + + @lib_standalone/ArduinoJson/extras/tests/ElementProxy/add.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("ElementProxy::add()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gdoc +. +addEmt +(); + +13 + gEmtProxy +< + gJsDocumt +&> + g + = +doc +[0]; + +15 +SECTION +("add(int)") { + +16 + g +. +add +(42); + +18 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[[42]]"); + +21 +SECTION +("add(const char*)") { + +22 + g +. +add +("world"); + +24 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[[\"world\"]]"); + +27 +SECTION +("set(char[])") { + +28  + gs +[] = "world"; + +29 + g +. +add +( +s +); + +30 +ry +( +s +, "!!!!!"); + +32 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[[\"world\"]]"); + + @lib_standalone/ArduinoJson/extras/tests/ElementProxy/clear.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("ElementProxy::clear()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gdoc +. +addEmt +(); + +13 + gEmtProxy +< + gJsDocumt +&> + g + = +doc +[0]; + +15 +SECTION +("size goes backo zero") { + +16 + g +. +add +(42); + +17 + g +. +r +(); + +19 +REQUIRE +( + +. +size +() == 0); + +22 +SECTION +("isNull()eturnrue") { + +23 + g +. +add +("hello"); + +24 + g +. +r +(); + +26 +REQUIRE +( + +. +isNu +(= +ue +); + + @lib_standalone/ArduinoJson/extras/tests/ElementProxy/compare.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("ElementProxy::operator==()") { + +11 +DymicJsDocumt + +doc +(4096); + +13 +SECTION +("same value") { + +14 + gdoc +. +add +(1); + +15 + gdoc +. +add +(1); + +17 +REQUIRE +( +doc +[0] == doc[1]); + +18 +REQUIRE_FALSE +( +doc +[0] != doc[1]); + +21 +SECTION +("different values") { + +22 + gdoc +. +add +(1); + +23 + gdoc +. +add +(2); + +25 +REQUIRE_FALSE +( +doc +[0] == doc[1]); + +26 +REQUIRE +( +doc +[0] != doc[1]); + + @lib_standalone/ArduinoJson/extras/tests/ElementProxy/remove.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("ElementProxy::remove()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gdoc +. +addEmt +(); + +13 + gEmtProxy +< + gJsDocumt +&> + g + = +doc +[0]; + +15 +SECTION +("remove(int)") { + +16 + g +. +add +(1); + +17 + g +. +add +(2); + +18 + g +. +add +(3); + +20 + g +. +move +(1); + +22 +REQUIRE +( + +. +as +< +d +:: +rg +>() == "[1,3]"); + +25 +SECTION +("remove(const char *)") { + +26 + g +["a"] = 1; + +27 + g +["b"] = 2; + +29 + g +. +move +("a"); + +31 +REQUIRE +( + +. +as +< +d +:: +rg +>() == "{\"b\":2}"); + +34 +SECTION +("remove(std::string)") { + +35 + g +["a"] = 1; + +36 + g +["b"] = 2; + +38 + g +. +move +( +d +:: +rg +("b")); + +40 +REQUIRE +( + +. +as +< +d +:: +rg +>() == "{\"a\":1}"); + +43 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +44 +SECTION +("remove(vla)") { + +45 + g +["a"] = 1; + +46 + g +["b"] = 2; + +48  + gi + = 4; + +49  + gv +[ +i +]; + +50 +ry +( +v +, "b"); + +51 + g +. +move +( +v +); + +53 +REQUIRE +( + +. +as +< +d +:: +rg +>() == "{\"a\":1}"); + + @lib_standalone/ArduinoJson/extras/tests/ElementProxy/set.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("ElementProxy::set()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gEmtProxy +< + gJsDocumt +&> + g + = +doc +[0]; + +14 +SECTION +("set(int)") { + +15 + g +. +t +(42); + +17 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[42]"); + +20 +SECTION +("set(const char*)") { + +21 + g +. +t +("world"); + +23 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[\"world\"]"); + +26 +SECTION +("set(char[])") { + +27  + gs +[] = "world"; + +28 + g +. +t +( +s +); + +29 +ry +( +s +, "!!!!!"); + +31 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[\"world\"]"); + + @lib_standalone/ArduinoJson/extras/tests/ElementProxy/size.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("ElementProxy::size()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gdoc +. +addEmt +(); + +13 + gEmtProxy +< + gJsDocumt +&> + g + = +doc +[0]; + +15 +SECTION +("returns 0") { + +16 +REQUIRE +( + +. +size +() == 0); + +19 +SECTION +("asnrray,eturns 2") { + +20 + g +. +add +(1); + +21 + g +. +add +(2); + +22 +REQUIRE +( + +. +size +() == 2); + +25 +SECTION +("asn object,eturns 2") { + +26 + g +["a"] = 1; + +27 + g +["b"] = 2; + +28 +REQUIRE +( + +. +size +() == 2); + + @lib_standalone/ArduinoJson/extras/tests/ElementProxy/subscript.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemberProxy::operator[]") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gEmtProxy +< + gJsDocumt +&> + g + = +doc +[1]; + +14 +SECTION +("set member") { + +15 + g +["world"] = 42; + +17 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[null,{\"world\":42}]"); + +20 +SECTION +("setlement") { + +21 + g +[2] = 42; + +23 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[null,[null,null,42]]"); + + @lib_standalone/ArduinoJson/extras/tests/Helpers/CustomReader.hpp + +5 #agm + + + +7  + ~ + +9 as + cCuomRd + { + +10 + md +:: +rgam + +_am +; + +12 + mpublic +: + +13 + $CuomRd +(cڡ * +put +: + $_am +( +put +) {} + +15  + $ad +() { + +16  +_am +. + `g +(); + +17 + } +} + +19 +size_t + + $adBys +(* +bufr +, +size_t + +ngth +) { + +20 +_am +. + `ad +( +bufr +, +ic_ +< +d +:: +amsize +>( +ngth +)); + +21  +ic_ +< +size_t +>( +_am +. + `gcou +()); + +22 + } +} + +24 + give +: + +25 +CuomRd +(const CustomReader&); + + @lib_standalone/ArduinoJson/extras/tests/Helpers/Stream.h + +5 #agm + + + +8 as + cSm + + +10 + mpublic +: + +11 +vtu + ~ + $Sm +() {} + +12 +vtu +  + `ad +() = 0; + +13 +vtu + +size_t + + `adBys +(* +bufr +, size_ +ngth +) = 0; + +14 + } +}; + + @lib_standalone/ArduinoJson/extras/tests/Helpers/WString.h + +5 #agm + + + +7  + ~ + +10 as + cSg + { + +11 + mpublic +: + +12 +Sg +& +ݔ ++=(cڡ * +rhs +) { + +13 +_r + + +rhs +; + +14  * + mthis +; + +17 +size_t + + $ngth +() const { + +18  +_r +. + `size +(); + +19 + } +} + +21 cڡ * + $c_r +() const { + +22  +_r +. + `c_r +(); + +23 + } +} + +25 +bo + + gݔ +==(cڡ * +s +) const { + +26  +_r + = +s +; + +29 +nd + + gd +:: +oam +& +ݔ +<<( +d +::oam& +lhs +, cڡ :: +Sg +& +rhs +) { + +30 +lhs + << +rhs +. +_r +; + +31  + glhs +; + +34 + give +: + +35 +d +:: +rg + +_r +; + +38 +ass + + gSgSumHr +; + +40 +le + +bo + + gݔ +==(cڡ +d +:: +rg +& +lhs +, cڡ :: +Sg +& +rhs +) { + +41  +lhs + = +rhs +. +c_r +(); + + @lib_standalone/ArduinoJson/extras/tests/Helpers/progmem_emulation.hpp + +5  + ~ + +6  + ~ + +8 +ass + + g__FshSgHr +; + +10 +le + cڡ * + $cvtPToFsh +(cڡ * +s +) { + +11  +t_ +( +s +) + 42; + +12 + } +} + +14 +le + cڡ * + $cvtFshToP +(cڡ * +s +) { + +15  +t_ +( +s +) - 42; + +16 + } +} + +18  + #F +( +X + +t_ +( + `cvtPToFsh +(X)) + + ) + +19  + #FC +( +X + +t_ +( + `cvtPToFsh +(X)) + + ) + +21 +le + +ut8_t + + $pgm_ad_by +(cڡ * +p +) { + +22  * +t_ +( + `cvtFshToP +( +p +)); + +23 + } +} + + @lib_standalone/ArduinoJson/extras/tests/IntegrationTests/gbathree.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("Gbathree") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +DerliziE + + gr + = +derlizeJs +( + +12 +doc +, + +23 +JsObje + + gro + = +doc +. +as +(); + +25 +SECTION +("Success") { + +26 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +29 +SECTION +("ProtocolName") { + +30 +REQUIRE +("uesn" = +ro +["protocol_name"]); + +33 +SECTION +("Repeats") { + +34 +REQUIRE +(1 = +ro +["repeats"]); + +37 +SECTION +("Wait") { + +38 +REQUIRE +(0 = +ro +["wait"]); + +41 +SECTION +("Measurements") { + +42 +REQUIRE +(3 = +ro +["measurements"]); + +45 +SECTION +("Meas2_Light") { + +46 +REQUIRE +(15 = +ro +["meas2_light"]); + +49 +SECTION +("Meas1_Baseline") { + +50 +REQUIRE +(0 = +ro +["meas1_baseline"]); + +53 +SECTION +("Act_Light") { + +54 +REQUIRE +(20 = +ro +["act_light"]); + +57 +SECTION +("Pulsesize") { + +58 +REQUIRE +(25 = +ro +["pulsesize"]); + +61 +SECTION +("Pulsedistance") { + +62 +REQUIRE +(10000 = +ro +["pulsedistance"]); + +65 +SECTION +("Actintensity1") { + +66 +REQUIRE +(50 = +ro +["actintensity1"]); + +69 +SECTION +("Actintensity2") { + +70 +REQUIRE +(255 = +ro +["actintensity2"]); + +73 +SECTION +("Measintensity") { + +74 +REQUIRE +(255 = +ro +["measintensity"]); + +77 +SECTION +("Calintensity") { + +78 +REQUIRE +(255 = +ro +["calintensity"]); + +81 +SECTION +("Pulses") { + +84 +JsAay + + gy + = +ro +["pulses"]; + +85 +REQUIRE +( +y +. +isNu +(= +l +); + +87 +REQUIRE +(3 = +y +. +size +()); + +89  +size_t + + gi + = 0; i < 3; i++) { + +90 +REQUIRE +(50 = +y +[ +i +]); + +94 +SECTION +("Act") { + +97 +JsAay + + gy + = +ro +["act"]; + +98 +REQUIRE +( +y +. +isNu +(= +l +); + +100 +REQUIRE +(4 = +y +. +size +()); + +101 +REQUIRE +(2 = +y +[0]); + +102 +REQUIRE +(1 = +y +[1]); + +103 +REQUIRE +(2 = +y +[2]); + +104 +REQUIRE +(2 = +y +[3]); + +107 +SECTION +("Detectors") { + +110 +JsAay + + gy + = +ro +["detectors"]; + +111 +REQUIRE +( +y +. +isNu +(= +l +); + +112 +REQUIRE +(4 = +y +. +size +()); + +114  +size_t + + gi + = 0; i < 4; i++) { + +115 +JsAay + + gáedAay + = +y +[ +i +]; + +116 +REQUIRE +(4 = +áedAay +. +size +()); + +118  +size_t + + gj + = 0; j < 4; j++) { + +119 +REQUIRE +(34 = +áedAay +[ +j +]); + +124 +SECTION +("Alta") { + +127 +JsAay + + gy + = +ro +["alta"]; + +128 +REQUIRE +( +y +. +isNu +(= +l +); + +130 +REQUIRE +(4 = +y +. +size +()); + +132  +size_t + + gi + = 0; i < 4; i++) { + +133 +REQUIRE +(2 = +y +[ +i +]); + +137 +SECTION +("Altb") { + +140 +JsAay + + gy + = +ro +["altb"]; + +141 +REQUIRE +( +y +. +isNu +(= +l +); + +143 +REQUIRE +(4 = +y +. +size +()); + +145  +size_t + + gi + = 0; i < 4; i++) { + +146 +REQUIRE +(2 = +y +[ +i +]); + +150 +SECTION +("Measlights") { + +153 +JsAay + + gy + = +ro +["measlights"]; + +154 +REQUIRE +( +y +. +isNu +(= +l +); + +155 +REQUIRE +(4 = +y +. +size +()); + +157  +size_t + + gi + = 0; i < 4; i++) { + +158 +JsAay + + gáedAay + = +y +[ +i +]; + +160 +REQUIRE +(4 = +áedAay +. +size +()); + +162  +size_t + + gj + = 0; j < 4; j++) { + +163 +REQUIRE +(15 = +áedAay +[ +j +]); + +168 +SECTION +("Measlights2") { + +171 +JsAay + + gy + = +ro +["measlights2"]; + +172 +REQUIRE +( +y +. +isNu +(= +l +); + +173 +REQUIRE +(4 = +y +. +size +()); + +175  +size_t + + gi + = 0; i < 4; i++) { + +176 +JsAay + + gáedAay + = +y +[ +i +]; + +177 +REQUIRE +(4 = +áedAay +. +size +()); + +179  +size_t + + gj + = 0; j < 4; j++) { + +180 +REQUIRE +(15 = +áedAay +[ +j +]); + +185 +SECTION +("Altc") { + +188 +JsAay + + gy + = +ro +["altc"]; + +189 +REQUIRE +( +y +. +isNu +(= +l +); + +191 +REQUIRE +(4 = +y +. +size +()); + +193  +size_t + + gi + = 0; i < 4; i++) { + +194 +REQUIRE +(2 = +y +[ +i +]); + +198 +SECTION +("Altd") { + +201 +JsAay + + gy + = +ro +["altd"]; + +202 +REQUIRE +( +y +. +isNu +(= +l +); + +204 +REQUIRE +(4 = +y +. +size +()); + +206  +size_t + + gi + = 0; i < 4; i++) { + +207 +REQUIRE +(2 = +y +[ +i +]); + + @lib_standalone/ArduinoJson/extras/tests/IntegrationTests/issue772.cpp + +5  + ~ + +6  + ~ + +10 +TEST_CASE +("Issue772") { + +11 +DymicJsDocumt + +doc1 +(4096); + +12 +DymicJsDocumt + +doc2 +(4096); + +13 +DerliziE + + gr +; + +14 + gd +:: +rg + +da + = + +20 + gr + = +derlizeJs +( +doc1 +, +da +); + +21 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +23 + gda + = ""; + +24 +rlizeMsgPack +( +doc1 +, +da +); + +25 + gr + = +derlizeMsgPack +( +doc2 +, +da +); + +27 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + + @lib_standalone/ArduinoJson/extras/tests/IntegrationTests/openweathermap.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("OpenWeatherMap") { + +10 cڡ * + gput_js + = "{\"cod\":\"200\",\"message\":0,\"cnt\":40,\"list\":[{\"dt\":1581498000,\"main\":{\"temp\":3.23,\"feels_like\":-3.63,\"temp_min\":3.23,\"temp_max\":4.62,\"pressure\":1014,\"sea_level\":1014,\"grnd_level\":1010,\"humidity\":58,\"temp_kf\":-1.39},\"weather\":[{\"id\":800,\"main\":\"Clear\",\"description\":\"clear sky\",\"icon\":\"01d\"}],\"clouds\":{\"all\":0},\"wind\":{\"speed\":6.19,\"deg\":266},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-12 09:00:00\"},{\"dt\":1581508800,\"main\":{\"temp\":6.09,\"feels_like\":-1.07,\"temp_min\":6.09,\"temp_max\":7.13,\"pressure\":1015,\"sea_level\":1015,\"grnd_level\":1011,\"humidity\":48,\"temp_kf\":-1.04},\"weather\":[{\"id\":800,\"main\":\"Clear\",\"description\":\"clear sky\",\"icon\":\"01d\"}],\"clouds\":{\"all\":9},\"wind\":{\"speed\":6.64,\"deg\":268},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-12 12:00:00\"},{\"dt\":1581519600,\"main\":{\"temp\":6.82,\"feels_like\":0.47,\"temp_min\":6.82,\"temp_max\":7.52,\"pressure\":1015,\"sea_level\":1015,\"grnd_level\":1011,\"humidity\":47,\"temp_kf\":-0.7},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":97},\"wind\":{\"speed\":5.55,\"deg\":267},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-12 15:00:00\"},{\"dt\":1581530400,\"main\":{\"temp\":5.76,\"feels_like\":1.84,\"temp_min\":5.76,\"temp_max\":6.11,\"pressure\":1015,\"sea_level\":1015,\"grnd_level\":1010,\"humidity\":57,\"temp_kf\":-0.35},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":99},\"wind\":{\"speed\":2.35,\"deg\":232},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-12 18:00:00\"},{\"dt\":1581541200,\"main\":{\"temp\":5.7,\"feels_like\":1.34,\"temp_min\":5.7,\"temp_max\":5.7,\"pressure\":1012,\"sea_level\":1012,\"grnd_level\":1008,\"humidity\":71,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":3.57,\"deg\":198},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-12 21:00:00\"},{\"dt\":1581552000,\"main\":{\"temp\":5.82,\"feels_like\":1.39,\"temp_min\":5.82,\"temp_max\":5.82,\"pressure\":1009,\"sea_level\":1009,\"grnd_level\":1004,\"humidity\":86,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":4.35,\"deg\":169},\"rain\":{\"3h\":0.5},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 00:00:00\"},{\"dt\":1581562800,\"main\":{\"temp\":5.9,\"feels_like\":-0.85,\"temp_min\":5.9,\"temp_max\":5.9,\"pressure\":1000,\"sea_level\":1000,\"grnd_level\":997,\"humidity\":86,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":7.69,\"deg\":178},\"rain\":{\"3h\":1.75},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 03:00:00\"},{\"dt\":1581573600,\"main\":{\"temp\":7.52,\"feels_like\":1.74,\"temp_min\":7.52,\"temp_max\":7.52,\"pressure\":993,\"sea_level\":993,\"grnd_level\":988,\"humidity\":88,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderateain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":6.84,\"deg\":184},\"rain\":{\"3h\":7.06},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 06:00:00\"},{\"dt\":1581584400,\"main\":{\"temp\":7.23,\"feels_like\":0.81,\"temp_min\":7.23,\"temp_max\":7.23,\"pressure\":992,\"sea_level\":992,\"grnd_level\":988,\"humidity\":69,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":49},\"wind\":{\"speed\":6.77,\"deg\":239},\"rain\":{\"3h\":0.25},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-13 09:00:00\"},{\"dt\":1581595200,\"main\":{\"temp\":7.67,\"feels_like\":2.81,\"temp_min\":7.67,\"temp_max\":7.67,\"pressure\":991,\"sea_level\":991,\"grnd_level\":987,\"humidity\":75,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":73},\"wind\":{\"speed\":4.93,\"deg\":235},\"rain\":{\"3h\":0.75},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-13 12:00:00\"},{\"dt\":1581606000,\"main\":{\"temp\":8.83,\"feels_like\":3.23,\"temp_min\":8.83,\"temp_max\":8.83,\"pressure\":993,\"sea_level\":993,\"grnd_level\":990,\"humidity\":64,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":83},\"wind\":{\"speed\":5.7,\"deg\":293},\"rain\":{\"3h\":0.38},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-13 15:00:00\"},{\"dt\":1581616800,\"main\":{\"temp\":7.42,\"feels_like\":1.77,\"temp_min\":7.42,\"temp_max\":7.42,\"pressure\":1000,\"sea_level\":1000,\"grnd_level\":996,\"humidity\":71,\"temp_kf\":0},\"weather\":[{\"id\":803,\"main\":\"Clouds\",\"description\":\"broken clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":54},\"wind\":{\"speed\":5.81,\"deg\":307},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 18:00:00\"},{\"dt\":1581627600,\"main\":{\"temp\":5.82,\"feels_like\":0.89,\"temp_min\":5.82,\"temp_max\":5.82,\"pressure\":1007,\"sea_level\":1007,\"grnd_level\":1003,\"humidity\":79,\"temp_kf\":0},\"weather\":[{\"id\":800,\"main\":\"Clear\",\"description\":\"clear sky\",\"icon\":\"01n\"}],\"clouds\":{\"all\":6},\"wind\":{\"speed\":4.76,\"deg\":300},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 21:00:00\"},{\"dt\":1581638400,\"main\":{\"temp\":5.58,\"feels_like\":2.09,\"temp_min\":5.58,\"temp_max\":5.58,\"pressure\":1011,\"sea_level\":1011,\"grnd_level\":1007,\"humidity\":81,\"temp_kf\":0},\"weather\":[{\"id\":802,\"main\":\"Clouds\",\"description\":\"scattered clouds\",\"icon\":\"03n\"}],\"clouds\":{\"all\":47},\"wind\":{\"speed\":2.73,\"deg\":326},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 00:00:00\"},{\"dt\":1581649200,\"main\":{\"temp\":4.27,\"feels_like\":1.72,\"temp_min\":4.27,\"temp_max\":4.27,\"pressure\":1014,\"sea_level\":1014,\"grnd_level\":1010,\"humidity\":85,\"temp_kf\":0},\"weather\":[{\"id\":803,\"main\":\"Clouds\",\"description\":\"broken clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":69},\"wind\":{\"speed\":1.24,\"deg\":295},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 03:00:00\"},{\"dt\":1581660000,\"main\":{\"temp\":3.91,\"feels_like\":1.54,\"temp_min\":3.91,\"temp_max\":3.91,\"pressure\":1016,\"sea_level\":1016,\"grnd_level\":1012,\"humidity\":87,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":85},\"wind\":{\"speed\":0.98,\"deg\":211},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 06:00:00\"},{\"dt\":1581670800,\"main\":{\"temp\":4.77,\"feels_like\":0.74,\"temp_min\":4.77,\"temp_max\":4.77,\"pressure\":1017,\"sea_level\":1017,\"grnd_level\":1013,\"humidity\":78,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":3.19,\"deg\":184},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-14 09:00:00\"},{\"dt\":1581681600,\"main\":{\"temp\":9.03,\"feels_like\":4,\"temp_min\":9.03,\"temp_max\":9.03,\"pressure\":1016,\"sea_level\":1016,\"grnd_level\":1012,\"humidity\":73,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":5.43,\"deg\":206},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-14 12:00:00\"},{\"dt\":1581692400,\"main\":{\"temp\":9.86,\"feels_like\":4.22,\"temp_min\":9.86,\"temp_max\":9.86,\"pressure\":1014,\"sea_level\":1014,\"grnd_level\":1010,\"humidity\":74,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":6.58,\"deg\":209},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-14 15:00:00\"},{\"dt\":1581703200,\"main\":{\"temp\":9.48,\"feels_like\":4.8,\"temp_min\":9.48,\"temp_max\":9.48,\"pressure\":1013,\"sea_level\":1013,\"grnd_level\":1009,\"humidity\":83,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":5.6,\"deg\":206},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 18:00:00\"},{\"dt\":1581714000,\"main\":{\"temp\":10.03,\"feels_like\":6.48,\"temp_min\":10.03,\"temp_max\":10.03,\"pressure\":1013,\"sea_level\":1013,\"grnd_level\":1009,\"humidity\":93,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderateain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":4.75,\"deg\":226},\"rain\":{\"3h\":3.13},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 21:00:00\"},{\"dt\":1581724800,\"main\":{\"temp\":9.48,\"feels_like\":6.25,\"temp_min\":9.48,\"temp_max\":9.48,\"pressure\":1013,\"sea_level\":1013,\"grnd_level\":1009,\"humidity\":89,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":3.87,\"deg\":214},\"rain\":{\"3h\":2.38},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 00:00:00\"},{\"dt\":1581735600,\"main\":{\"temp\":9.12,\"feels_like\":7.08,\"temp_min\":9.12,\"temp_max\":9.12,\"pressure\":1011,\"sea_level\":1011,\"grnd_level\":1007,\"humidity\":96,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":2.43,\"deg\":194},\"rain\":{\"3h\":1},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 03:00:00\"},{\"dt\":1581746400,\"main\":{\"temp\":10.32,\"feels_like\":6.71,\"temp_min\":10.32,\"temp_max\":10.32,\"pressure\":1009,\"sea_level\":1009,\"grnd_level\":1004,\"humidity\":95,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":5.05,\"deg\":196},\"rain\":{\"3h\":1.75},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 06:00:00\"},{\"dt\":1581757200,\"main\":{\"temp\":11.57,\"feels_like\":5.85,\"temp_min\":11.57,\"temp_max\":11.57,\"pressure\":1006,\"sea_level\":1006,\"grnd_level\":1002,\"humidity\":85,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":7.91,\"deg\":205},\"rain\":{\"3h\":1.44},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-15 09:00:00\"},{\"dt\":1581768000,\"main\":{\"temp\":12.25,\"feels_like\":4.46,\"temp_min\":12.25,\"temp_max\":12.25,\"pressure\":1003,\"sea_level\":1003,\"grnd_level\":998,\"humidity\":78,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":10.65,\"deg\":201},\"rain\":{\"3h\":1.81},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-15 12:00:00\"},{\"dt\":1581778800,\"main\":{\"temp\":12.19,\"feels_like\":3.17,\"temp_min\":12.19,\"temp_max\":12.19,\"pressure\":998,\"sea_level\":998,\"grnd_level\":994,\"humidity\":80,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderateain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":12.52,\"deg\":204},\"rain\":{\"3h\":3.5},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-15 15:00:00\"},{\"dt\":1581789600,\"main\":{\"temp\":12.25,\"feels_like\":4.15,\"temp_min\":12.25,\"temp_max\":12.25,\"pressure\":996,\"sea_level\":996,\"grnd_level\":992,\"humidity\":83,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderateain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":11.42,\"deg\":215},\"rain\":{\"3h\":4.88},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 18:00:00\"},{\"dt\":1581800400,\"main\":{\"temp\":12.64,\"feels_like\":5.85,\"temp_min\":12.64,\"temp_max\":12.64,\"pressure\":994,\"sea_level\":994,\"grnd_level\":990,\"humidity\":76,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderateain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":9.22,\"deg\":217},\"rain\":{\"3h\":6.88},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 21:00:00\"},{\"dt\":1581811200,\"main\":{\"temp\":12.96,\"feels_like\":4.03,\"temp_min\":12.96,\"temp_max\":12.96,\"pressure\":988,\"sea_level\":988,\"grnd_level\":984,\"humidity\":83,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderateain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":12.88,\"deg\":211},\"rain\":{\"3h\":5.63},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 00:00:00\"},{\"dt\":1581822000,\"main\":{\"temp\":13.13,\"feels_like\":5.17,\"temp_min\":13.13,\"temp_max\":13.13,\"pressure\":987,\"sea_level\":987,\"grnd_level\":982,\"humidity\":82,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderateain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":11.49,\"deg\":246},\"rain\":{\"3h\":7.25},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 03:00:00\"},{\"dt\":1581832800,\"main\":{\"temp\":9.07,\"feels_like\":0.79,\"temp_min\":9.07,\"temp_max\":9.07,\"pressure\":990,\"sea_level\":990,\"grnd_level\":986,\"humidity\":75,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":10.18,\"deg\":255},\"rain\":{\"3h\":2},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 06:00:00\"},{\"dt\":1581843600,\"main\":{\"temp\":8.05,\"feels_like\":-0.9,\"temp_min\":8.05,\"temp_max\":8.05,\"pressure\":994,\"sea_level\":994,\"grnd_level\":990,\"humidity\":51,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":9.65,\"deg\":245},\"rain\":{\"3h\":1.19},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-16 09:00:00\"},{\"dt\":1581854400,\"main\":{\"temp\":9.54,\"feels_like\":0.13,\"temp_min\":9.54,\"temp_max\":9.54,\"pressure\":996,\"sea_level\":996,\"grnd_level\":991,\"humidity\":41,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":94},\"wind\":{\"speed\":10.03,\"deg\":243},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-16 12:00:00\"},{\"dt\":1581865200,\"main\":{\"temp\":9.08,\"feels_like\":-0.35,\"temp_min\":9.08,\"temp_max\":9.08,\"pressure\":996,\"sea_level\":996,\"grnd_level\":991,\"humidity\":44,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"lightain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":89},\"wind\":{\"speed\":10.15,\"deg\":246},\"rain\":{\"3h\":0.25},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-16 15:00:00\"},{\"dt\":1581876000,\"main\":{\"temp\":7.41,\"feels_like\":-1.34,\"temp_min\":7.41,\"temp_max\":7.41,\"pressure\":996,\"sea_level\":996,\"grnd_level\":992,\"humidity\":50,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":94},\"wind\":{\"speed\":9.21,\"deg\":240},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 18:00:00\"},{\"dt\":1581886800,\"main\":{\"temp\":6.42,\"feels_like\":-1.7,\"temp_min\":6.42,\"temp_max\":6.42,\"pressure\":997,\"sea_level\":997,\"grnd_level\":993,\"humidity\":58,\"temp_kf\":0},\"weather\":[{\"id\":803,\"main\":\"Clouds\",\"description\":\"broken clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":67},\"wind\":{\"speed\":8.52,\"deg\":236},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 21:00:00\"},{\"dt\":1581897600,\"main\":{\"temp\":6.03,\"feels_like\":-2.65,\"temp_min\":6.03,\"temp_max\":6.03,\"pressure\":996,\"sea_level\":996,\"grnd_level\":993,\"humidity\":51,\"temp_kf\":0},\"weather\":[{\"id\":802,\"main\":\"Clouds\",\"description\":\"scattered clouds\",\"icon\":\"03n\"}],\"clouds\":{\"all\":38},\"wind\":{\"speed\":8.94,\"deg\":240},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-17 00:00:00\"},{\"dt\":1581908400,\"main\":{\"temp\":5.62,\"feels_like\":-2.86,\"temp_min\":5.62,\"temp_max\":5.62,\"pressure\":995,\"sea_level\":995,\"grnd_level\":991,\"humidity\":53,\"temp_kf\":0},\"weather\":[{\"id\":800,\"main\":\"Clear\",\"description\":\"clear sky\",\"icon\":\"01n\"}],\"clouds\":{\"all\":0},\"wind\":{\"speed\":8.67,\"deg\":241},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-17 03:00:00\"},{\"dt\":1581919200,\"main\":{\"temp\":5.51,\"feels_like\":-2.41,\"temp_min\":5.51,\"temp_max\":5.51,\"pressure\":995,\"sea_level\":995,\"grnd_level\":991,\"humidity\":61,\"temp_kf\":0},\"weather\":[{\"id\":802,\"main\":\"Clouds\",\"description\":\"scattered clouds\",\"icon\":\"03n\"}],\"clouds\":{\"all\":35},\"wind\":{\"speed\":8.2,\"deg\":244},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-17 06:00:00\"}],\"city\":{\"id\":2643743,\"name\":\"London\",\"coord\":{\"lat\":51.5085,\"lon\":-0.1257},\"country\":\"GB\",\"population\":1000000,\"timezone\":0,\"sunrise\":1581492085,\"sunset\":1581527294}}"; + +12 cڡ * + gexed_js + = "{\"list\":[" + +56 + gSticJsDocumt +<512> + gfr +; + +57 + gfr +["li"][0]["dt"] = +ue +; + +58 + gfr +["li"][0]["ma"]["mp"] = +ue +; + +59 + gfr +["li"][0]["wth"][0]["desti"] = +ue +; + +61 +DymicJsDocumt + +doc +(16384); + +63 +REQUIRE +( + +64 +derlizeJs +( +doc +, +put_js +, +DerliziOi +:: +Fr +( +fr +)) == + +65 +DerliziE +:: +Ok +); + +67 +REQUIRE +( +doc +. +as +< +d +:: +rg +>(= +exed_js +); + + @lib_standalone/ArduinoJson/extras/tests/IntegrationTests/round_trip.cpp + +5  + ~ + +6  + ~ + +8  + $check +( +d +:: +rg + +igJs +) { + +9 +DymicJsDocumt + + `doc +(16384); + +11 +d +:: +rg + +tyJs +; + +12 + `derlizeJs +( +doc +, +igJs +); + +13 + `rlizeJsPy +( +doc +, +tyJs +); + +15 +d +:: +rg + +fJs +; + +16 + `derlizeJs +( +doc +, +igJs +); + +17 + `rlizeJs +( +doc +, +fJs +); + +19 + `REQUIRE +( +igJs + = +fJs +); + +20 + } +} + +22 +TEST_CASE +("Round Trip:arse ->rettyPrint ->arse ->rint") { + +23 +SECTION +("OpenWeatherMap") { + +24 +check +( + +35 +SECTION +("YahooQueryLanguage") { + +36 +check +( + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/add.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonArray::add()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsAay + + gy + = +doc +. +to +(); + +12 +SECTION +("int") { + +13 + gy +. +add +(123); + +14 +REQUIRE +(123 = +y +[0]. +as +<>()); + +15 +REQUIRE +( +y +[0]. +is +<>()); + +16 +REQUIRE +( +y +[0]. +is +<>()); + +19 +SECTION +("double") { + +20 + gy +. +add +(123.45); + +21 +REQUIRE +(123.45 = +y +[0]. +as +<>()); + +22 +REQUIRE +( +y +[0]. +is +<>()); + +23 +REQUIRE_FALSE +( +y +[0]. +is +< +bo +>()); + +26 +SECTION +("bool") { + +27 + gy +. +add +( +ue +); + +28 +REQUIRE +( +ue + = +y +[0]. +as +< +bo +>()); + +29 +REQUIRE +( +y +[0]. +is +< +bo +>()); + +30 +REQUIRE_FALSE +( +y +[0]. +is +<>()); + +33 +SECTION +("const char*") { + +34 cڡ * + gr + = "hello"; + +35 + gy +. +add +( +r +); + +36 +REQUIRE +( +r + = +y +[0]. +as +< +d +:: +rg +>()); + +37 +REQUIRE +( +y +[0]. +is +()); + +38 +REQUIRE_FALSE +( +y +[0]. +is +<>()); + +41 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +42 +SECTION +("vla") { + +43  + gi + = 16; + +44  + gv +[ +i +]; + +45 +ry +( +v +, "world"); + +47 + gy +. +add +( +v +); + +49 +REQUIRE +( +d +:: +rg +("wld"= +y +[0]); + +53 +SECTION +("nestedrray") { + +54 +DymicJsDocumt + +doc2 +(4096); + +55 +JsAay + + gr + = +doc2 +. +to +(); + +57 + gy +. +add +( +r +); + +59 +REQUIRE +( +r + = +y +[0]. +as +< +JsAay +>()); + +60 +REQUIRE +( +y +[0]. +is +< +JsAay +>()); + +61 +REQUIRE_FALSE +( +y +[0]. +is +<>()); + +64 +SECTION +("nested object") { + +65 +DymicJsDocumt + +doc2 +(4096); + +66 +JsObje + + gobj + = +doc2 +. +to +(); + +68 + gy +. +add +( +obj +); + +70 +REQUIRE +( +obj + = +y +[0]. +as +< +JsObje +>()); + +71 +REQUIRE +( +y +[0]. +is +< +JsObje +>()); + +72 +REQUIRE_FALSE +( +y +[0]. +is +<>()); + +75 +SECTION +("array subscript") { + +76 cڡ * + gr + = "hello"; + +77 +DymicJsDocumt + +doc2 +(4096); + +78 +JsAay + + gr + = +doc2 +. +to +(); + +79 + gr +. +add +( +r +); + +81 + gy +. +add +( +r +[0]); + +83 +REQUIRE +( +r + = +y +[0]); + +86 +SECTION +("object subscript") { + +87 cڡ * + gr + = "hello"; + +88 +DymicJsDocumt + +doc2 +(4096); + +89 +JsObje + + gobj + = +doc2 +. +to +(); + +90 + gobj +["x"] = +r +; + +92 + gy +. +add +( +obj +["x"]); + +94 +REQUIRE +( +r + = +y +[0]); + +97 +SECTION +("shouldot duplicate const char*") { + +98 + gy +. +add +("world"); + +99 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1); + +100 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +103 +SECTION +("should duplicate char*") { + +104 + gy +. +add +( +cڡ_ +<*>("world")); + +105 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1+ +JSON_STRING_SIZE +(6); + +106 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +109 +SECTION +("should duplicate std::string") { + +110 + gy +. +add +( +d +:: +rg +("world")); + +111 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1+ +JSON_STRING_SIZE +(6); + +112 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +115 +SECTION +("shouldot duplicate serialized(const char*)") { + +116 + gy +. +add +( +rlized +("{}")); + +117 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1); + +118 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +121 +SECTION +("should duplicate serialized(char*)") { + +122 + gy +. +add +( +rlized +( +cڡ_ +<*>("{}"))); + +123 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1+ +JSON_STRING_SIZE +(2); + +124 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +127 +SECTION +("should duplicate serialized(std::string)") { + +128 + gy +. +add +( +rlized +( +d +:: +rg +("{}"))); + +129 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1+ +JSON_STRING_SIZE +(2); + +130 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +133 +SECTION +("should duplicate serialized(std::string)") { + +134 + gy +. +add +( +rlized +( +d +:: +rg +("\0XX", 3))); + +135 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1+ +JSON_STRING_SIZE +(3); + +136 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/copyArray.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("copyArray()") { + +9 +SECTION +("1D -> JsonArray") { + +10 +DymicJsDocumt + +doc +(4096); + +11 +JsAay + + gy + = +doc +. +to +(); + +12  + gjs +[32]; + +13  + gsour +[] = {1, 2, 3}; + +15 +bo + + gok + = +cyAay +( +sour +, +y +); + +16 +REQUIRE +( +ok +); + +18 +rlizeJs +( +y +, +js +, (json)); + +19 +REQUIRE +( +d +:: +rg +("[1,2,3]"= +js +); + +22 +SECTION +("1D -> JsonArray, butotnough memory") { + +23 cڡ +size_t + + gSIZE + = +JSON_ARRAY_SIZE +(2); + +24 + gSticJsDocumt +< + gSIZE +> + gdoc +; + +25 +JsAay + + gy + = +doc +. +to +(); + +26  + gjs +[32]; + +27  + gsour +[] = {1, 2, 3}; + +29 +bo + + gok + = +cyAay +( +sour +, +y +); + +30 +REQUIRE_FALSE +( +ok +); + +32 +rlizeJs +( +y +, +js +, (json)); + +33 +REQUIRE +( +d +:: +rg +("[1,2]"= +js +); + +36 +SECTION +("2D -> JsonArray") { + +37 +DymicJsDocumt + +doc +(4096); + +38 +JsAay + + gy + = +doc +. +to +(); + +39  + gjs +[32]; + +40  + gsour +[][3] = {{1, 2, 3}, {4, 5, 6}}; + +42 +bo + + gok + = +cyAay +( +sour +, +y +); + +43 +REQUIRE +( +ok +); + +45 +rlizeJs +( +y +, +js +, (json)); + +46 +REQUIRE +( +d +:: +rg +("[[1,2,3],[4,5,6]]"= +js +); + +49 +SECTION +("2D -> JsonArray, butotnough memory") { + +50 cڡ +size_t + + gSIZE + = + +51 +JSON_ARRAY_SIZE +(2) + JSON_ARRAY_SIZE(3) + JSON_ARRAY_SIZE(2); + +52 + gSticJsDocumt +< + gSIZE +> + gdoc +; + +53 +JsAay + + gy + = +doc +. +to +(); + +54  + gjs +[32] = ""; + +55  + gsour +[][3] = {{1, 2, 3}, {4, 5, 6}}; + +57 +CAPTURE +( +SIZE +) + +59 +bo + + gok + = +cyAay +( +sour +, +y +); + +60 +CAPTURE +( +doc +. +memyUge +()); + +61 +CHECK_FALSE +( +ok +); + +63 +rlizeJs +( +y +, +js +, (json)); + +64 +REQUIRE +( +d +:: +rg +("[[1,2,3],[4,5]]"= +js +); + +67 +SECTION +("JsonArray -> 1D, with more spacehaneeded") { + +68 +DymicJsDocumt + +doc +(4096); + +69  + gjs +[] = "[1,2,3]"; + +70 +DerliziE + + gr + = +derlizeJs +( +doc +, +js +); + +71 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +72 +JsAay + + gy + = +doc +. +as +(); + +74  + gdei +[4] = {0}; + +75 +size_t + + gsu + = +cyAay +( +y +, +dei +); + +77 +REQUIRE +(3 = +su +); + +78 +REQUIRE +(1 = +dei +[0]); + +79 +REQUIRE +(2 = +dei +[1]); + +80 +REQUIRE +(3 = +dei +[2]); + +81 +REQUIRE +(0 = +dei +[3]); + +84 +SECTION +("JsonArray -> 1D, withoutnough space") { + +85 +DymicJsDocumt + +doc +(4096); + +86  + gjs +[] = "[1,2,3]"; + +87 +DerliziE + + gr + = +derlizeJs +( +doc +, +js +); + +88 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +89 +JsAay + + gy + = +doc +. +as +(); + +91  + gdei +[2] = {0}; + +92 +size_t + + gsu + = +cyAay +( +y +, +dei +); + +94 +REQUIRE +(2 = +su +); + +95 +REQUIRE +(1 = +dei +[0]); + +96 +REQUIRE +(2 = +dei +[1]); + +99 +SECTION +("JsonArray -> 2D") { + +100 +DymicJsDocumt + +doc +(4096); + +101  + gjs +[] = "[[1,2],[3],[4]]"; + +103 +DerliziE + + gr + = +derlizeJs +( +doc +, +js +); + +104 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +105 +JsAay + + gy + = +doc +. +as +(); + +107  + gdei +[3][2] = {{0}}; + +108 +cyAay +( +y +, +dei +); + +110 +REQUIRE +(1 = +dei +[0][0]); + +111 +REQUIRE +(2 = +dei +[0][1]); + +112 +REQUIRE +(3 = +dei +[1][0]); + +113 +REQUIRE +(0 = +dei +[1][1]); + +114 +REQUIRE +(4 = +dei +[2][0]); + +115 +REQUIRE +(0 = +dei +[2][1]); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/createNested.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonArray basics") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsAay + + gy + = +doc +. +to +(); + +12 +SECTION +("CreateNestedArray") { + +13 +JsAay + + gr + = +y +. +NeedAay +(); + +14 +REQUIRE +( +r + = +y +[0]. +as +< +JsAay +>()); + +17 +SECTION +("CreateNestedObject") { + +18 +JsObje + + gobj + = +y +. +NeedObje +(); + +19 +REQUIRE +( +obj + = +y +[0]. +as +< +JsObje +>()); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/equals.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonArray::operator==()") { + +9 +DymicJsDocumt + +doc1 +(4096); + +10 +JsAay + + gy1 + = +doc1 +. +to +(); + +11 +JsAayCڡ + + gy1c + = +y1 +; + +13 +DymicJsDocumt + +doc2 +(4096); + +14 +JsAay + + gy2 + = +doc2 +. +to +(); + +15 +JsAayCڡ + + gy2c + = +y2 +; + +17 +SECTION +("shouldeturn false whenrrays differ") { + +18 + gy1 +. +add +("coucou"); + +19 + gy2 +. +add +(1); + +21 +REQUIRE_FALSE +( +y1 + = +y2 +); + +22 +REQUIRE_FALSE +( +y1c + = +y2c +); + +25 +SECTION +("shouldeturn false when LHS has morelements") { + +26 + gy1 +. +add +(1); + +27 + gy1 +. +add +(2); + +28 + gy2 +. +add +(1); + +30 +REQUIRE_FALSE +( +y1 + = +y2 +); + +31 +REQUIRE_FALSE +( +y1c + = +y2c +); + +34 +SECTION +("shouldeturn false when RHS has morelements") { + +35 + gy1 +. +add +(1); + +36 + gy2 +. +add +(1); + +37 + gy2 +. +add +(2); + +39 +REQUIRE_FALSE +( +y1 + = +y2 +); + +40 +REQUIRE_FALSE +( +y1c + = +y2c +); + +43 +SECTION +("shouldeturnrue whenrraysqual") { + +44 + gy1 +. +add +("coucou"); + +45 + gy2 +. +add +("coucou"); + +47 +REQUIRE +( +y1 + = +y2 +); + +48 +REQUIRE +( +y1c + = +y2c +); + +51 +SECTION +("shouldeturn false when RHS isull") { + +52 +JsAay + + gnu +; + +54 +REQUIRE_FALSE +( +y1 + = +nu +); + +57 +SECTION +("shouldeturn false when LHS isull") { + +58 +JsAay + + gnu +; + +60 +REQUIRE_FALSE +( +nu + = +y1 +); + +63 +SECTION +("shouldeturnrue when bothreull") { + +64 +JsAay + + gnu1 +; + +65 +JsAay + + gnu2 +; + +67 +REQUIRE +( +nu1 + = +nu2 +); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/get.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonArray::get()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +derlizeJs +( +doc +, "[1,2,3]"); + +11 +JsAay + + gy + = +doc +. +as +(); + +13 +SECTION +("Overflow") { + +14 +REQUIRE +( +y +. +gEmt +(3). +isNu +()); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/isNull.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonArray::isNull()") { + +9 +SECTION +("returnsrue") { + +10 +JsAay + + gr +; + +11 +REQUIRE +( +r +. +isNu +(= +ue +); + +14 +SECTION +("returns false") { + +15 +DymicJsDocumt + +doc +(4096); + +16 +JsAay + + gr + = +doc +. +to +(); + +17 +REQUIRE +( +r +. +isNu +(= +l +); + +21 +TEST_CASE +("JsonArrayConst::isNull()") { + +22 +SECTION +("returnsrue") { + +23 +JsAayCڡ + + gr +; + +24 +REQUIRE +( +r +. +isNu +(= +ue +); + +27 +SECTION +("returns false") { + +28 +DymicJsDocumt + +doc +(4096); + +29 +JsAayCڡ + + gr + = +doc +. +to +< +JsAay +>(); + +30 +REQUIRE +( +r +. +isNu +(= +l +); + +34 +TEST_CASE +("JsonArray::operator bool()") { + +35 +SECTION +("returns false") { + +36 +JsAay + + gr +; + +37 +REQUIRE +( +ic_ +< +bo +>( +r += +l +); + +40 +SECTION +("returnsrue") { + +41 +DymicJsDocumt + +doc +(4096); + +42 +JsAay + + gr + = +doc +. +to +(); + +43 +REQUIRE +( +ic_ +< +bo +>( +r += +ue +); + +47 +TEST_CASE +("JsonArrayConst::operator bool()") { + +48 +SECTION +("returns false") { + +49 +JsAayCڡ + + gr +; + +50 +REQUIRE +( +ic_ +< +bo +>( +r += +l +); + +53 +SECTION +("returnsrue") { + +54 +DymicJsDocumt + +doc +(4096); + +55 +JsAayCڡ + + gr + = +doc +. +to +< +JsAay +>(); + +56 +REQUIRE +( +ic_ +< +bo +>( +r += +ue +); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/iterator.cpp + +5  + ~ + +6  + ~ + +8 + gme + < +tyme + + gTAay +> + +9  + $run__ +() { + +10 +SticJsDocumt +< + `JSON_ARRAY_SIZE +(2)> +doc +; + +11 +JsAay + +tmp + = +doc +. +to +(); + +12 +tmp +. + `add +(12); + +13 +tmp +. + `add +(34); + +15 +TAay + +y + = +tmp +; + +16 +tyme + +TAay +:: + + + + = +y +. + `beg +(); + +17 +tyme + +TAay +:: + + +d + = +y +. + `d +(); + +19 + `REQUIRE +( +d + ! + +); + +20 + `REQUIRE +(12 = + +-> +me + +as +<>()); + +21 + `REQUIRE +(12 = +ic_ +<>(* + +)); + +22 ++ + +; + +23 + `REQUIRE +( +d + ! + +); + +24 + `REQUIRE +(34 = + +-> +me + +as +<>()); + +25 + `REQUIRE +(34 = +ic_ +<>(* + +)); + +26 ++ + +; + +27 + `REQUIRE +( +d + = + +); + +28 + } +} + +30 +TEST_CASE +("JsonArray::begin()/end()") { + +31 +SECTION +("Nonull JsonArray") { + +32 + grun__ +< + gJsAay +>(); + +35 +SECTION +("Null JsonArray") { + +36 +JsAay + + gy +; + +38 +REQUIRE +( +y +. +beg +(=y. +d +()); + +42 +TEST_CASE +("JsonArrayConst::begin()/end()") { + +43 +SECTION +("Nonull JsonArrayConst") { + +44 + grun__ +< + gJsAayCڡ +>(); + +47 +SECTION +("Null JsonArrayConst") { + +48 +JsAayCڡ + + gy +; + +50 +REQUIRE +( +y +. +beg +(=y. +d +()); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/memoryUsage.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonArray::memoryUsage()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsAay + + gr + = +doc +. +to +(); + +12 +SECTION +("return 0 if uninitialized") { + +13 +JsAay + + gunlized +; + +14 +REQUIRE +( +unlized +. +memyUge +() == 0); + +17 +SECTION +("JSON_ARRAY_SIZE(0) ifmpty") { + +18 +REQUIRE +( +r +. +memyUge +(= +JSON_ARRAY_SIZE +(0)); + +21 +SECTION +("JSON_ARRAY_SIZE(1)fterdd") { + +22 + gr +. +add +("hello"); + +23 +REQUIRE +( +r +. +memyUge +(= +JSON_ARRAY_SIZE +(1)); + +26 +SECTION +("includeshe size ofhe string") { + +27 + gr +. +add +( +d +:: +rg +("hello")); + +28 +REQUIRE +( +r +. +memyUge +(= +JSON_ARRAY_SIZE +(1) + 6); + +31 +SECTION +("includeshe size ofheestedrray") { + +32 +JsAay + + gáed + = +r +. +NeedAay +(); + +33 + gáed +. +add +(42); + +34 +REQUIRE +( +r +. +memyUge +(=2 * +JSON_ARRAY_SIZE +(1)); + +37 +SECTION +("includeshe size ofheestedrrect") { + +38 +JsObje + + gáed + = +r +. +NeedObje +(); + +39 + gáed +["hello"] = "world"; + +40 +REQUIRE +( +r +. +memyUge +(= +JSON_OBJECT_SIZE +(1+ +JSON_ARRAY_SIZE +(1)); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/nesting.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonArray::nesting()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsAay + + gr + = +doc +. +to +(); + +12 +SECTION +("return 0 if uninitialized") { + +13 +JsAay + + gunlized +; + +14 +REQUIRE +( +unlized +. +ág +() == 0); + +17 +SECTION +("returns 1 formptyrray") { + +18 +REQUIRE +( +r +. +ág +() == 1); + +21 +SECTION +("returns 1 for flatrray") { + +22 + gr +. +add +("hello"); + +23 +REQUIRE +( +r +. +ág +() == 1); + +26 +SECTION +("returns 2 withestedrray") { + +27 + gr +. +NeedAay +(); + +28 +REQUIRE +( +r +. +ág +() == 2); + +31 +SECTION +("returns 2 withested object") { + +32 + gr +. +NeedObje +(); + +33 +REQUIRE +( +r +. +ág +() == 2); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/remove.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonArray::remove()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsAay + + g_y + = +doc +. +to +(); + +11 + g_y +. +add +(1); + +12 + g_y +. +add +(2); + +13 + g_y +. +add +(3); + +15 +SECTION +("RemoveFirstByIndex") { + +16 + g_y +. +move +(0); + +18 +REQUIRE +(2 = +_y +. +size +()); + +19 +REQUIRE +( +_y +[0] == 2); + +20 +REQUIRE +( +_y +[1] == 3); + +23 +SECTION +("RemoveMiddleByIndex") { + +24 + g_y +. +move +(1); + +26 +REQUIRE +(2 = +_y +. +size +()); + +27 +REQUIRE +( +_y +[0] == 1); + +28 +REQUIRE +( +_y +[1] == 3); + +31 +SECTION +("RemoveLastByIndex") { + +32 + g_y +. +move +(2); + +34 +REQUIRE +(2 = +_y +. +size +()); + +35 +REQUIRE +( +_y +[0] == 1); + +36 +REQUIRE +( +_y +[1] == 2); + +39 +SECTION +("RemoveFirstByIterator") { + +40 + gJsAay +:: + + + + = +_y +. +beg +(); + +41 + g_y +. +move +( + +); + +43 +REQUIRE +(2 = +_y +. +size +()); + +44 +REQUIRE +( +_y +[0] == 2); + +45 +REQUIRE +( +_y +[1] == 3); + +48 +SECTION +("RemoveMiddleByIterator") { + +49 + gJsAay +:: + + + + = +_y +. +beg +(); + +50 ++ + g +; + +51 + g_y +. +move +( + +); + +53 +REQUIRE +(2 = +_y +. +size +()); + +54 +REQUIRE +( +_y +[0] == 1); + +55 +REQUIRE +( +_y +[1] == 3); + +58 +SECTION +("RemoveLastByIterator") { + +59 + gJsAay +:: + + + + = +_y +. +beg +(); + +60 ++ + g +; + +61 ++ + g +; + +62 + g_y +. +move +( + +); + +64 +REQUIRE +(2 = +_y +. +size +()); + +65 +REQUIRE +( +_y +[0] == 1); + +66 +REQUIRE +( +_y +[1] == 2); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/size.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonArray::size()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsAay + + gy + = +doc +. +to +(); + +12 +SECTION +("returns 0 ismpty") { + +13 +REQUIRE +(0U = +y +. +size +()); + +16 +SECTION +("increasesfterdd()") { + +17 + gy +. +add +("hello"); + +18 +REQUIRE +(1U = +y +. +size +()); + +20 + gy +. +add +("world"); + +21 +REQUIRE +(2U = +y +. +size +()); + +24 +SECTION +("remainshe sameftereplacingnlement") { + +25 + gy +. +add +("hello"); + +26 +REQUIRE +(1U = +y +. +size +()); + +28 + gy +[0] = "hello"; + +29 +REQUIRE +(1U = +y +. +size +()); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/std_string.cpp + +5  + ~ + +6  + ~ + +8  + $aSg +( +d +:: +rg + & +r +) { + +9 * +p + = +cڡ_ +<*>( +r +. + `c_r +()); + +10 * +p +) *p++ = '*'; + +11 + } +} + +13 +TEST_CASE +("std::string") { + +14 +DymicJsDocumt + +doc +(4096); + +15 +JsAay + + gy + = +doc +. +to +(); + +17 +SECTION +("add()") { + +18 + gd +:: +rg + +vue +("hello"); + +19 + gy +. +add +( +vue +); + +20 +aSg +( +vue +); + +21 +REQUIRE +( +d +:: +rg +("hlo"= +y +[0]); + +24 +SECTION +("operator[]") { + +25 + gd +:: +rg + +vue +("world"); + +26 + gy +. +add +("hello"); + +27 + gy +[0] = +vue +; + +28 +aSg +( +vue +); + +29 +REQUIRE +( +d +:: +rg +("wld"= +y +[0]); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/subscript.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("JsonArray::operator[]") { + +10 +DymicJsDocumt + +doc +(4096); + +11 +JsAay + + gy + = +doc +. +to +(); + +13 +SECTION +("Pad withull") { + +14 + gy +[2] = 2; + +15 + gy +[5] = 5; + +16 +REQUIRE +( +y +. +size +() == 6); + +17 +REQUIRE +( +y +[0]. +isNu +(= +ue +); + +18 +REQUIRE +( +y +[1]. +isNu +(= +ue +); + +19 +REQUIRE +( +y +[2]. +isNu +(= +l +); + +20 +REQUIRE +( +y +[3]. +isNu +(= +ue +); + +21 +REQUIRE +( +y +[4]. +isNu +(= +ue +); + +22 +REQUIRE +( +y +[5]. +isNu +(= +l +); + +23 +REQUIRE +( +y +[2] == 2); + +24 +REQUIRE +( +y +[5] == 5); + +27 +SECTION +("int") { + +28 + gy +[0] = 123; + +29 +REQUIRE +(123 = +y +[0]. +as +<>()); + +30 +REQUIRE +( +ue + = +y +[0]. +is +<>()); + +31 +REQUIRE +( +l + = +y +[0]. +is +< +bo +>()); + +34 #i +ARDUINOJSON_USE_LONG_LONG + + +35 +SECTION +("longong") { + +36 + gy +[0] = 9223372036854775807; + +37 +REQUIRE +(9223372036854775807 = +y +[0]. +as +< +t64_t +>()); + +38 +REQUIRE +( +ue + = +y +[0]. +is +< +t64_t +>()); + +39 +REQUIRE +( +l + = +y +[0]. +is +< +t32_t +>()); + +40 +REQUIRE +( +l + = +y +[0]. +is +< +bo +>()); + +44 +SECTION +("double") { + +45 + gy +[0] = 123.45; + +46 +REQUIRE +(123.45 = +y +[0]. +as +<>()); + +47 +REQUIRE +( +ue + = +y +[0]. +is +<>()); + +48 +REQUIRE +( +l + = +y +[0]. +is +<>()); + +51 +SECTION +("bool") { + +52 + gy +[0] = +ue +; + +53 +REQUIRE +( +ue + = +y +[0]. +as +< +bo +>()); + +54 +REQUIRE +( +ue + = +y +[0]. +is +< +bo +>()); + +55 +REQUIRE +( +l + = +y +[0]. +is +<>()); + +58 +SECTION +("const char*") { + +59 cڡ * + gr + = "hello"; + +61 + gy +[0] = +r +; + +62 +REQUIRE +( +r + = +y +[0]. +as +()); + +63 +REQUIRE +( +r + = +y +[0]. +as +<*>()); + +64 +REQUIRE +( +ue + = +y +[0]. +is +()); + +65 +REQUIRE +( +l + = +y +[0]. +is +<>()); + +68 +SECTION +("nestedrray") { + +69 +DymicJsDocumt + +doc2 +(4096); + +70 +JsAay + + gr2 + = +doc2 +. +to +(); + +72 + gy +[0] = +r2 +; + +74 +REQUIRE +( +r2 + = +y +[0]. +as +< +JsAay +>()); + +75 +REQUIRE +( +ue + = +y +[0]. +is +< +JsAay +>()); + +76 +REQUIRE +( +l + = +y +[0]. +is +<>()); + +79 +SECTION +("nested object") { + +80 +DymicJsDocumt + +doc2 +(4096); + +81 +JsObje + + gobj + = +doc2 +. +to +(); + +83 + gy +[0] = +obj +; + +85 +REQUIRE +( +obj + = +y +[0]. +as +< +JsObje +>()); + +86 +REQUIRE +( +ue + = +y +[0]. +is +< +JsObje +>()); + +87 +REQUIRE +( +l + = +y +[0]. +is +<>()); + +90 +SECTION +("array subscript") { + +91 +DymicJsDocumt + +doc2 +(4096); + +92 +JsAay + + gr2 + = +doc2 +. +to +(); + +93 cڡ * + gr + = "hello"; + +95 + gr2 +. +add +( +r +); + +97 + gy +[0] = +r2 +[0]; + +99 +REQUIRE +( +r + = +y +[0]); + +102 +SECTION +("object subscript") { + +103 cڡ * + gr + = "hello"; + +104 +DymicJsDocumt + +doc2 +(4096); + +105 +JsObje + + gobj + = +doc2 +. +to +(); + +107 + gobj +["x"] = +r +; + +109 + gy +[0] = +obj +["x"]; + +111 +REQUIRE +( +r + = +y +[0]); + +114 +SECTION +("shouldot duplicate const char*") { + +115 + gy +[0] = "world"; + +116 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1); + +117 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +120 +SECTION +("should duplicate char*") { + +121 + gy +[0] = +cڡ_ +<*>("world"); + +122 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1+ +JSON_STRING_SIZE +(6); + +123 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +126 +SECTION +("should duplicate std::string") { + +127 + gy +[0] = +d +:: +rg +("world"); + +128 cڡ +size_t + + gexedSize + = +JSON_ARRAY_SIZE +(1+ +JSON_STRING_SIZE +(6); + +129 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +132 +SECTION +("array[0].to()") { + +133 +JsObje + + gobj + = +y +[0]. +to +(); + +134 +REQUIRE +( +obj +. +isNu +(= +l +); + +137 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +138 +SECTION +("set(VLA)") { + +139  + gi + = 16; + +140  + gv +[ +i +]; + +141 +ry +( +v +, "world"); + +143 + gy +. +add +("hello"); + +144 + gy +[0]. +t +( +v +); + +146 +REQUIRE +( +d +:: +rg +("wld"= +y +[0]); + +149 +SECTION +("operator=(VLA)") { + +150  + gi + = 16; + +151  + gv +[ +i +]; + +152 +ry +( +v +, "world"); + +154 + gy +. +add +("hello"); + +155 + gy +[0] = +v +; + +157 +REQUIRE +( +d +:: +rg +("wld"= +y +[0]); + +162 +TEST_CASE +("JsonArrayConst::operator[]") { + +163 +DymicJsDocumt + +doc +(4096); + +164 +JsAay + + gy + = +doc +. +to +(); + +165 + gy +. +add +(0); + +167 +SECTION +("int") { + +168 + gy +[0] = 123; + +169 +JsAayCڡ + + g + = +y +; + +171 +REQUIRE +(123 = + +[0]. +as +<>()); + +172 +REQUIRE +( +ue + = + +[0]. +is +<>()); + +173 +REQUIRE +( +l + = + +[0]. +is +< +bo +>()); + + @lib_standalone/ArduinoJson/extras/tests/JsonArray/undefined.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gCch +:: +Mchs +; + +10 +TEST_CASE +("Undefined JsonArray") { + +11 +JsAay + + gy +; + +13 +SECTION +("SubscriptFails") { + +14 +REQUIRE +( +y +[0]. +isNu +()); + +17 +SECTION +("AddFails") { + +18 + gy +. +add +(1); + +19 +REQUIRE +(0 = +y +. +size +()); + +22 +SECTION +("CreateNestedArrayFails") { + +23 +REQUIRE +( +y +. +NeedAay +(). +isNu +()); + +26 +SECTION +("CreateNestedObjectFails") { + +27 +REQUIRE +( +y +. +NeedObje +(). +isNu +()); + +30 +SECTION +("PrintToWritesBrackets") { + +31  + gbufr +[32]; + +32 +rlizeJs +( +y +, +bufr +, (buffer)); + +33 +REQUIRE_THAT +( +bufr +, +Equs +("null")); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/DeserializationError.cpp + +5  + ~ + +6  + ~ + +8  + $Sgifiti +( +DerliziE + +r +, +d +:: +rg + +exed +) { + +9 + `REQUIRE +( +r +. + `c_r +(= +exed +); + +10 + } +} + +12  + $Boifiti +( +DerliziE + +r +, +bo + +exed +) { + +14 + `CHECK +( +r + = +exed +); + +15 + `CHECK +( +r + !! +exed +); + +16 + `CHECK +(! +r + =! +exed +); + +19 + `CHECK +( +exed + = +r +); + +20 + `CHECK +(! +exed + ! +r +); + +21 + `CHECK +(! +exed + =! +r +); + +22 + } +} + +24  + #TEST_STRINGIFICATION +( +symb +) \ + +25 + `Sgifiti +( +DerliziE +:: +symb +, #symb) + + ) + +27  + #TEST_BOOLIFICATION +( +symb +, +exed +) \ + +28 + `Boifiti +( +DerliziE +:: +symb +, +exed +) + + ) + +30 +TEST_CASE +("DeserializationError") { + +31 +SECTION +("c_str()") { + +32 +TEST_STRINGIFICATION +( +Ok +); + +33 +TEST_STRINGIFICATION +( +TooDp +); + +34 +TEST_STRINGIFICATION +( +NoMemy +); + +35 +TEST_STRINGIFICATION +( +InvidIut +); + +36 +TEST_STRINGIFICATION +( +IncomeIut +); + +37 +TEST_STRINGIFICATION +( +NSu܋d +); + +40 +SECTION +("as boolean") { + +41 +TEST_BOOLIFICATION +( +Ok +, +l +); + +42 +TEST_BOOLIFICATION +( +TooDp +, +ue +); + +43 +TEST_BOOLIFICATION +( +NoMemy +, +ue +); + +44 +TEST_BOOLIFICATION +( +InvidIut +, +ue +); + +45 +TEST_BOOLIFICATION +( +IncomeIut +, +ue +); + +46 +TEST_BOOLIFICATION +( +NSu܋d +, +ue +); + +49 +SECTION +("ostream DeserializationError") { + +50 + gd +:: +rgam + +s +; + +51 + gs + << +DerliziE +(DerliziE:: +InvidIut +); + +52 +REQUIRE +( +s +. +r +() == "InvalidInput"); + +55 +SECTION +("ostream DeserializationError::Code") { + +56 + gd +:: +rgam + +s +; + +57 + gs + << + gDerliziE +:: +InvidIut +; + +58 +REQUIRE +( +s +. +r +() == "InvalidInput"); + +61 +SECTION +("out ofange") { + +62  + gcode + = 666; + +63 +DerliziE + +r +( + +64 * +t_ +< +DerliziE +:: +Code +*>(& +code +)); + +65 +REQUIRE +( +r +. +c_r +(= +d +:: +rg +("???")); + +68 +SECTION +("switch") { + +69 +DerliziE + + gr + = DerliziE:: +InvidIut +; + +70  + gr +. +code +()) { + +71  + gDerliziE +:: +InvidIut +: + +72 +SUCCEED +(); + +75 +FAIL +(); + +80 +SECTION +("Comparisons") { + +81 +DerliziE + +vidIut +(DerliziE:: +InvidIut +); + +82 +DerliziE + +ok +(DerliziE:: +Ok +); + +84 +SECTION +("DeserializationError == bool") { + +85 +REQUIRE +( +vidIut + = +ue +); + +86 +REQUIRE +( +ok + = +l +); + +89 +SECTION +("bool == DeserializationError") { + +90 +REQUIRE +( +ue + = +vidIut +); + +91 +REQUIRE +( +l + = +ok +); + +94 +SECTION +("DeserializationError != bool") { + +95 +REQUIRE +( +vidIut + ! +l +); + +96 +REQUIRE +( +ok + ! +ue +); + +99 +SECTION +("bool != DeserializationError") { + +100 +REQUIRE +( +l + ! +vidIut +); + +101 +REQUIRE +( +ue + ! +ok +); + +104 +SECTION +("Negations") { + +105 +REQUIRE +(! +vidIut + = +l +); + +106 +REQUIRE +(! +ok + = +ue +); + +109 +SECTION +("DeserializationError == Code") { + +110 +REQUIRE +( +vidIut + = +DerliziE +:: +InvidIut +); + +111 +REQUIRE +( +ok + = +DerliziE +:: +Ok +); + +114 +SECTION +("Code == DeserializationError") { + +115 +REQUIRE +( +DerliziE +:: +InvidIut + = +vidIut +); + +116 +REQUIRE +( +DerliziE +:: +Ok + = +ok +); + +119 +SECTION +("DeserializationError != Code") { + +120 +REQUIRE +( +vidIut + ! +DerliziE +:: +Ok +); + +121 +REQUIRE +( +ok + ! +DerliziE +:: +InvidIut +); + +124 +SECTION +("Code != DeserializationError") { + +125 +REQUIRE +( +DerliziE +:: +Ok + ! +vidIut +); + +126 +REQUIRE +( +DerliziE +:: +InvidIut + ! +ok +); + +129 +SECTION +("DeserializationError == DeserializationError") { + +130 +REQUIRE_FALSE +( +vidIut + = +ok +); + +133 +SECTION +("DeserializationError != DeserializationError") { + +134 +REQUIRE +( +vidIut + ! +ok +); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/array.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("deserialize JSONrray") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("Anmptyrray") { + +12 +DerliziE + + gr + = +derlizeJs +( +doc +, "[]"); + +13 +JsAay + + gr + = +doc +. +as +(); + +15 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +16 +REQUIRE +(0 = +r +. +size +()); + +19 +SECTION +("Spaces") { + +20 +SECTION +("Beforehe opening bracket") { + +21 +DerliziE + + gr + = +derlizeJs +( +doc +, " []"); + +22 +JsAay + + gr + = +doc +. +as +(); + +24 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +25 +REQUIRE +(0 = +r +. +size +()); + +28 +SECTION +("Before first value") { + +29 +DerliziE + + gr + = +derlizeJs +( +doc +, "[ \t\r\n42]"); + +30 +JsAay + + gr + = +doc +. +as +(); + +32 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +33 +REQUIRE +(1 = +r +. +size +()); + +34 +REQUIRE +( +r +[0] == 42); + +37 +SECTION +("After first value") { + +38 +DerliziE + + gr + = +derlizeJs +( +doc +, "[42 \t\r\n]"); + +39 +JsAay + + gr + = +doc +. +as +(); + +41 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +42 +REQUIRE +(1 = +r +. +size +()); + +43 +REQUIRE +( +r +[0] == 42); + +47 +SECTION +("Valuesypes") { + +48 +SECTION +("On integer") { + +49 +DerliziE + + gr + = +derlizeJs +( +doc +, "[42]"); + +50 +JsAay + + gr + = +doc +. +as +(); + +52 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +53 +REQUIRE +(1 = +r +. +size +()); + +54 +REQUIRE +( +r +[0] == 42); + +57 +SECTION +("Two integers") { + +58 +DerliziE + + gr + = +derlizeJs +( +doc +, "[42,84]"); + +59 +JsAay + + gr + = +doc +. +as +(); + +61 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +62 +REQUIRE +(2 = +r +. +size +()); + +63 +REQUIRE +( +r +[0] == 42); + +64 +REQUIRE +( +r +[1] == 84); + +67 +SECTION +("Double") { + +68 +DerliziE + + gr + = +derlizeJs +( +doc +, "[4.2,1e2]"); + +69 +JsAay + + gr + = +doc +. +as +(); + +71 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +72 +REQUIRE +(2 = +r +. +size +()); + +73 +REQUIRE +( +r +[0] == 4.2); + +74 +REQUIRE +( +r +[1] == 1e2); + +77 +SECTION +("Unsignedong") { + +78 +DerliziE + + gr + = +derlizeJs +( +doc +, "[4294967295]"); + +79 +JsAay + + gr + = +doc +. +as +(); + +81 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +82 +REQUIRE +(1 = +r +. +size +()); + +83 +REQUIRE +( +r +[0] == 4294967295UL); + +86 +SECTION +("Boolean") { + +87 +DerliziE + + gr + = +derlizeJs +( +doc +, "[true,false]"); + +88 +JsAay + + gr + = +doc +. +as +(); + +90 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +91 +REQUIRE +(2 = +r +. +size +()); + +92 +REQUIRE +( +r +[0] = +ue +); + +93 +REQUIRE +( +r +[1] = +l +); + +96 +SECTION +("Null") { + +97 +DerliziE + + gr + = +derlizeJs +( +doc +, "[null,null]"); + +98 +JsAay + + gr + = +doc +. +as +(); + +100 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +101 +REQUIRE +(2 = +r +. +size +()); + +102 +REQUIRE +( +r +[0]. +as +<*>() == 0); + +103 +REQUIRE +( +r +[1]. +as +<*>() == 0); + +107 +SECTION +("Quotes") { + +108 +SECTION +("Double quotes") { + +109 +DerliziE + + gr + = + +110 +derlizeJs +( +doc +, "[ \"hello\" , \"world\" ]"); + +111 +JsAay + + gr + = +doc +. +as +(); + +113 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +114 +REQUIRE +(2 = +r +. +size +()); + +115 +REQUIRE +( +r +[0] == "hello"); + +116 +REQUIRE +( +r +[1] == "world"); + +119 +SECTION +("Single quotes") { + +120 +DerliziE + + gr + = +derlizeJs +( +doc +, "[ 'hello' , 'world' ]"); + +121 +JsAay + + gr + = +doc +. +as +(); + +123 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +124 +REQUIRE +(2 = +r +. +size +()); + +125 +REQUIRE +( +r +[0] == "hello"); + +126 +REQUIRE +( +r +[1] == "world"); + +129 +SECTION +("No quotes") { + +130 +DerliziE + + gr + = +derlizeJs +( +doc +, "[ hello , world ]"); + +131 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +134 +SECTION +("Double quotes (empty strings)") { + +135 +DerliziE + + gr + = +derlizeJs +( +doc +, "[\"\",\"\"]"); + +136 +JsAay + + gr + = +doc +. +as +(); + +138 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +139 +REQUIRE +(2 = +r +. +size +()); + +140 +REQUIRE +( +r +[0] == ""); + +141 +REQUIRE +( +r +[1] == ""); + +144 +SECTION +("Single quotes (empty strings)") { + +145 +DerliziE + + gr + = +derlizeJs +( +doc +, "[\'\',\'\']"); + +146 +JsAay + + gr + = +doc +. +as +(); + +148 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +149 +REQUIRE +(2 = +r +. +size +()); + +150 +REQUIRE +( +r +[0] == ""); + +151 +REQUIRE +( +r +[1] == ""); + +154 +SECTION +("No quotes (empty strings)") { + +155 +DerliziE + + gr + = +derlizeJs +( +doc +, "[,]"); + +157 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +160 +SECTION +("Closing single quotes missing") { + +161 +DerliziE + + gr + = +derlizeJs +( +doc +, "[\"]"); + +163 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +166 +SECTION +("Closing double quotes missing") { + +167 +DerliziE + + gr + = +derlizeJs +( +doc +, "[\']"); + +169 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +173 +SECTION +("Prematureull-terminator") { + +174 +SECTION +("After opening bracket") { + +175 +DerliziE + + gr + = +derlizeJs +( +doc +, "["); + +177 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +180 +SECTION +("After value") { + +181 +DerliziE + + gr + = +derlizeJs +( +doc +, "[1"); + +183 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +186 +SECTION +("After comma") { + +187 +DerliziE + + gr + = +derlizeJs +( +doc +, "[1,"); + +189 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +193 +SECTION +("Prematurend of input") { + +194 cڡ * + gput + = "[1,2]"; + +196 +SECTION +("After opening bracket") { + +197 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +, 1); + +199 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +202 +SECTION +("After value") { + +203 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +, 2); + +205 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +208 +SECTION +("After comma") { + +209 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +, 3); + +211 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +215 +SECTION +("Misc") { + +216 +SECTION +("Nested objects") { + +217  + gjsSg +[] = + +220 +DerliziE + + gr + = +derlizeJs +( +doc +, +jsSg +); + +221 +JsAay + + gr + = +doc +. +as +(); + +223 +JsObje + + gobje1 + = +r +[0]; + +224 cڡ +JsObje + + gobje2 + = +r +[1]; + +225 +JsObje + + gobje3 + = +r +[2]; + +227 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +229 +REQUIRE +( +obje1 +. +isNu +(= +l +); + +230 +REQUIRE +( +obje2 +. +isNu +(= +l +); + +231 +REQUIRE +( +obje3 +. +isNu +(= +ue +); + +233 +REQUIRE +(2 = +obje1 +. +size +()); + +234 +REQUIRE +(2 = +obje2 +. +size +()); + +235 +REQUIRE +(0 = +obje3 +. +size +()); + +237 +REQUIRE +(1 = +obje1 +["a"]. +as +<>()); + +238 +REQUIRE +(2 = +obje1 +["b"]. +as +<>()); + +239 +REQUIRE +(3 = +obje2 +["c"]. +as +<>()); + +240 +REQUIRE +(4 = +obje2 +["d"]. +as +<>()); + +241 +REQUIRE +(0 = +obje3 +["e"]. +as +<>()); + +245 +SECTION +("Should clearhe JsonArray") { + +246 +derlizeJs +( +doc +, "[1,2,3,4]"); + +247 +derlizeJs +( +doc +, "[]"); + +248 +JsAay + + gr + = +doc +. +as +(); + +250 +REQUIRE +( +r +. +size +() == 0); + +251 +REQUIRE +( +doc +. +memyUge +(= +JSON_ARRAY_SIZE +(0)); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/array_static.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("deserialize JSONrray with StaticJsonDocument") { + +9 +SECTION +("BufferOfTheRightSizeForEmptyArray") { + +10 + gSticJsDocumt +< +JSON_ARRAY_SIZE +(0)> + gdoc +; + +11  + gput +[] = "[]"; + +13 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +15 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +18 +SECTION +("TooSmallBufferForArrayWithOneValue") { + +19 + gSticJsDocumt +< +JSON_ARRAY_SIZE +(0)> + gdoc +; + +20  + gput +[] = "[1]"; + +22 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +24 +REQUIRE +( +r + = +DerliziE +:: +NoMemy +); + +27 +SECTION +("BufferOfTheRightSizeForArrayWithOneValue") { + +28 + gSticJsDocumt +< +JSON_ARRAY_SIZE +(1)> + gdoc +; + +29  + gput +[] = "[1]"; + +31 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +33 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +36 +SECTION +("TooSmallBufferForArrayWithNestedObject") { + +37 + gSticJsDocumt +< +JSON_ARRAY_SIZE +(0+ +JSON_OBJECT_SIZE +(0)> + gdoc +; + +38  + gput +[] = "[{}]"; + +40 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +42 +REQUIRE +( +r + = +DerliziE +:: +NoMemy +); + +45 +SECTION +("BufferOfTheRightSizeForArrayWithNestedObject") { + +46 + gSticJsDocumt +< +JSON_ARRAY_SIZE +(1+ +JSON_OBJECT_SIZE +(0)> + gdoc +; + +47  + gput +[] = "[{}]"; + +49 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +51 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +54 +SECTION +("CopyStringNotSpaces") { + +55 + gSticJsDocumt +<100> + gdoc +; + +57 +derlizeJs +( +doc +, " [ \"1234567\" ] "); + +59 +REQUIRE +( +JSON_ARRAY_SIZE +(1+ +JSON_STRING_SIZE +(8= +doc +. +memyUge +()); + +64 +SECTION +("Should clearhe JsonArray") { + +65 + gSticJsDocumt +< +JSON_ARRAY_SIZE +(4)> + gdoc +; + +66  + gput +[] = "[1,2,3,4]"; + +68 +derlizeJs +( +doc +, +put +); + +69 +derlizeJs +( +doc +, "[]"); + +71 +JsAay + + gr + = +doc +. +as +(); + +72 +REQUIRE +( +r +. +size +() == 0); + +73 +REQUIRE +( +doc +. +memyUge +(= +JSON_ARRAY_SIZE +(0)); + +76 +SECTION +("Array") { + +77 + gSticJsDocumt +< +JSON_ARRAY_SIZE +(2)> + gdoc +; + +78  + gput +[] = "[1,2]"; + +80 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +81 +JsAay + + gr + = +doc +. +as +(); + +83 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +84 +REQUIRE +( +doc +. +is +< +JsAay +>()); + +85 +REQUIRE +( +doc +. +memyUge +(= +JSON_ARRAY_SIZE +(2)); + +86 +REQUIRE +( +r +[0] == 1); + +87 +REQUIRE +( +r +[1] == 2); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/filter.cpp + +5  + #ARDUINOJSON_ENABLE_COMMENTS + 1 + + ) + +6  + ~ + +7  + ~ + +9  + ~ + +10  + ~ + +12 +TEST_CASE +("Filtering") { + +13  + sTeCa + { + +14 cڡ * + gput +; + +15 cڡ * + gfr +; + +16 +ut8_t + + gágLim +; + +17 +DerliziE + + gr +; + +18 cڡ * + gouut +; + +19 +size_t + + gmemyUge +; + +23 +TeCa + + gCas +[] = { + +28 +DerliziE +:: +Ok +, + +36 +DerliziE +:: +Ok +, + +44 +DerliziE +:: +Ok +, + +46 +JSON_OBJECT_SIZE +(1) + 16 + +52 +DerliziE +:: +Ok +, + +54 +JSON_OBJECT_SIZE +(0) + +61 +DerliziE +:: +Ok +, + +70 +DerliziE +:: +Ok +, + +79 +DerliziE +:: +Ok +, + +88 +DerliziE +:: +Ok +, + +97 +DerliziE +:: +Ok +, + +99 +JSON_OBJECT_SIZE +(1) + 8 + +106 +DerliziE +:: +Ok +, + +108 +JSON_OBJECT_SIZE +(1) + 8 + +115 +DerliziE +:: +Ok +, + +117 +JSON_OBJECT_SIZE +(1) + 8 + +124 +DerliziE +:: +Ok +, + +126 +JSON_OBJECT_SIZE +(1) + 8 + +133 +DerliziE +:: +Ok +, + +135 +JSON_OBJECT_SIZE +(1) + 8 + +142 +DerliziE +:: +Ok +, + +144 +JSON_OBJECT_SIZE +(1) + 8 + +151 +DerliziE +:: +Ok +, + +153 +JSON_OBJECT_SIZE +(1) + 8 + +160 +DerliziE +:: +Ok +, + +162 +JSON_OBJECT_SIZE +(1) + 8 + +169 +DerliziE +:: +Ok +, + +171 +JSON_OBJECT_SIZE +(1) + 8 + +178 +DerliziE +:: +Ok +, + +180 +JSON_OBJECT_SIZE +(1) + 8 + +187 +DerliziE +:: +Ok +, + +189 +JSON_OBJECT_SIZE +(1) + 8 + +196 +DerliziE +:: +Ok +, + +198 +JSON_OBJECT_SIZE +(1) + 8 + +205 +DerliziE +:: +Ok +, + +207 +JSON_OBJECT_SIZE +(1) + 8 + +213 +DerliziE +:: +Ok +, + +215 2 * +JSON_OBJECT_SIZE +(1) + 16 + +222 +DerliziE +:: +Ok +, + +224 +JSON_ARRAY_SIZE +(3) + +231 +DerliziE +:: +Ok +, + +233 +JSON_ARRAY_SIZE +(0) + +240 +DerliziE +:: +Ok +, + +242 +JSON_ARRAY_SIZE +(2+ 2 * +JSON_OBJECT_SIZE +(1) + 16 + +248 +DerliziE +:: +IncomeIut +, + +250 +JSON_ARRAY_SIZE +(0) + +256 +DerliziE +:: +IncomeIut +, + +258 +JSON_ARRAY_SIZE +(0) + +265 +DerliziE +:: +InvidIut +, + +267 +JSON_ARRAY_SIZE +(0) + +274 +DerliziE +:: +IncomeIut +, + +283 +DerliziE +:: +IncomeIut +, + +292 +DerliziE +:: +Ok +, + +301 +DerliziE +:: +Ok +, + +310 +DerliziE +:: +IncomeIut +, + +319 +DerliziE +:: +IncomeIut +, + +328 +DerliziE +:: +Ok +, + +337 +DerliziE +:: +Ok +, + +346 +DerliziE +:: +IncomeIut +, + +355 +DerliziE +:: +IncomeIut +, + +364 +DerliziE +:: +InvidIut +, + +373 +DerliziE +:: +IncomeIut +, + +382 +DerliziE +:: +InvidIut +, + +391 +DerliziE +:: +InvidIut +, + +400 +DerliziE +:: +TooDp +, + +409 +DerliziE +:: +TooDp +, + +418 +DerliziE +:: +TooDp +, + +420 +JSON_OBJECT_SIZE +(0) + +427 +DerliziE +:: +TooDp +, + +436 +DerliziE +:: +TooDp +, + +445 +DerliziE +:: +TooDp +, + +447 +JSON_ARRAY_SIZE +(0) + +454 +DerliziE +:: +IncomeIut +, + +463 +DerliziE +:: +InvidIut +, + +472 +DerliziE +:: +IncomeIut +, + +481 +DerliziE +:: +InvidIut +, + +490 +DerliziE +:: +InvidIut +, + +492 +JSON_ARRAY_SIZE +(0) + +499 +DerliziE +:: +IncomeIut +, + +501 +JSON_ARRAY_SIZE +(0) + +508 +DerliziE +:: +InvidIut +, + +510 +JSON_OBJECT_SIZE +(0) + +517 +DerliziE +:: +IncomeIut +, + +519 +JSON_OBJECT_SIZE +(0) + +526 +DerliziE +:: +InvidIut +, + +528 +JSON_OBJECT_SIZE +(0) + 8 + +535 +DerliziE +:: +IncomeIut +, + +537 +JSON_OBJECT_SIZE +(0) + 8 + +544 +DerliziE +:: +InvidIut +, + +546 +JSON_OBJECT_SIZE +(0) + +553 +DerliziE +:: +IncomeIut +, + +555 +JSON_OBJECT_SIZE +(0) + +562 +DerliziE +:: +Ok +, + +564 +JSON_OBJECT_SIZE +(0) + +571 +DerliziE +:: +InvidIut +, + +580 +DerliziE +:: +IncomeIut +, + +589 +DerliziE +:: +InvidIut +, + +598 +DerliziE +:: +IncomeIut +, + +607 +DerliziE +:: +InvidIut +, + +616 +DerliziE +:: +IncomeIut +, + +622  +size_t + + gi + = 0; i < ( + gCas +) / (testCases[0]); i++) { + +623 +CAPTURE +( +i +); + +625 +DymicJsDocumt + +fr +(256); + +626 +DymicJsDocumt + +doc +(256); + +627 + gTeCa +& + gtc + = +Cas +[ +i +]; + +629 +CAPTURE +( +tc +. +fr +); + +630 +REQUIRE +( +derlizeJs +( +fr +, +tc +.fr= +DerliziE +:: +Ok +); + +632 +CAPTURE +( +tc +. +put +); + +633 +CAPTURE +( +tc +. +ágLim +); + +634 +CHECK +( +derlizeJs +( +doc +, +tc +. +put +, +DerliziOi +:: +Fr +( +fr +), + +635 +DerliziOi +:: +NegLim +( + +636 +tc +. +ágLim +)=tc. +r +); + +638 +CHECK +( +doc +. +as +< +d +:: +rg +>(= +tc +. +ouut +); + +639 +CHECK +( +doc +. +memyUge +(= +tc +.memoryUsage); + +643 +TEST_CASE +("Overloads") { + +644 + gSticJsDocumt +<256> + gdoc +; + +645 + gSticJsDocumt +<256> + gfr +; + +647 +usg + +mea + + gDerliziOi +; + +651 +SECTION +("const char*, Filter") { + +652 +derlizeJs +( +doc +, "{}", +Fr +( +fr +)); + +655 +SECTION +("const char*, size_t, Filter") { + +656 +derlizeJs +( +doc +, "{}", 2, +Fr +( +fr +)); + +659 +SECTION +("const std::string&, Filter") { + +660 +derlizeJs +( +doc +, +d +:: +rg +("{}"), +Fr +( +fr +)); + +663 +SECTION +("std::istream&, Filter") { + +664 + gd +:: +rgam + +s +("{}"); + +665 +derlizeJs +( +doc +, +s +, +Fr +( +fr +)); + +668 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +669 +SECTION +("char[n], Filter") { + +670  + gi + = 4; + +671  + gv +[ +i +]; + +672 +ry +( +v +, "{}"); + +673 +derlizeJs +( +doc +, +v +, +Fr +( +fr +)); + +679 +SECTION +("const char*, Filter, NestingLimit") { + +680 +derlizeJs +( +doc +, "{}", +Fr +( +fr +), +NegLim +(5)); + +683 +SECTION +("const char*, size_t, Filter, NestingLimit") { + +684 +derlizeJs +( +doc +, "{}", 2, +Fr +( +fr +), +NegLim +(5)); + +687 +SECTION +("const std::string&, Filter, NestingLimit") { + +688 +derlizeJs +( +doc +, +d +:: +rg +("{}"), +Fr +( +fr +), +NegLim +(5)); + +691 +SECTION +("std::istream&, Filter, NestingLimit") { + +692 + gd +:: +rgam + +s +("{}"); + +693 +derlizeJs +( +doc +, +s +, +Fr +( +fr +), +NegLim +(5)); + +696 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +697 +SECTION +("char[n], Filter, NestingLimit") { + +698  + gi + = 4; + +699  + gv +[ +i +]; + +700 +ry +( +v +, "{}"); + +701 +derlizeJs +( +doc +, +v +, +Fr +( +fr +), +NegLim +(5)); + +707 +SECTION +("const char*, NestingLimit, Filter") { + +708 +derlizeJs +( +doc +, "{}", +NegLim +(5), +Fr +( +fr +)); + +711 +SECTION +("const char*, size_t, NestingLimit, Filter") { + +712 +derlizeJs +( +doc +, "{}", 2, +NegLim +(5), +Fr +( +fr +)); + +715 +SECTION +("const std::string&, NestingLimit, Filter") { + +716 +derlizeJs +( +doc +, +d +:: +rg +("{}"), +NegLim +(5), +Fr +( +fr +)); + +719 +SECTION +("std::istream&, NestingLimit, Filter") { + +720 + gd +:: +rgam + +s +("{}"); + +721 +derlizeJs +( +doc +, +s +, +NegLim +(5), +Fr +( +fr +)); + +724 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +725 +SECTION +("char[n], NestingLimit, Filter") { + +726  + gi + = 4; + +727  + gv +[ +i +]; + +728 +ry +( +v +, "{}"); + +729 +derlizeJs +( +doc +, +v +, +NegLim +(5), +Fr +( +fr +)); + +734 +TEST_CASE +("StringMover::reclaim()") { + +735 + gSticJsDocumt +<200> + gfr +; + +736 + gfr +["a"] = +ue +; + +737 + gfr +["c"] = +ue +; + +738  + gput +[] = "{\"a\":1,\"b\":2,\"c\":1}"; + +740 + gSticJsDocumt +<200> + gdoc +; + +741 +derlizeJs +( +doc +, +put +, +DerliziOi +:: +Fr +( +fr +)); + +743 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"a\":1,\"c\":1}"); + +745 +CHECK +( +put +[0] == 'a'); + +746 +CHECK +( +put +[1] == 0); + +747 +CHECK +( +put +[2] == 'c'); + +748 +CHECK +( +put +[3] == 0); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/incomplete_input.cpp + +5  + #ARDUINOJSON_DECODE_UNICODE + 1 + + ) + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("Truncated JSON input") { + +10 cڡ * + gCas +[] = {"\"hello", "\'hello", "'\\u", "'\\u00", "'\\u000", + +19 cڡ +size_t + + gCou + = ( +Cas +) / (testCases[0]); + +21 +DymicJsDocumt + +doc +(4096); + +23  +size_t + + gi + = 0; i < + gCou +; i++) { + +24 cڡ * + gput + = +Cas +[ +i +]; + +25 +CAPTURE +( +put +); + +26 +REQUIRE +( +derlizeJs +( +doc +, +put +) == + +27 +DerliziE +:: +IncomeIut +); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/input_types.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9  + ~"CuomRd.h +" + +11 +TEST_CASE +("deserializeJson(const std::string&)") { + +12 +DymicJsDocumt + +doc +(4096); + +14 +SECTION +("shouldccept const string") { + +15 cڡ + gd +:: +rg + +put +("[42]"); + +17 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +19 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +22 +SECTION +("shouldcceptemporary string") { + +23 +DerliziE + + gr + = +derlizeJs +( +doc +, +d +:: +rg +("[42]")); + +25 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +28 +SECTION +("should duplicate content") { + +29 + gd +:: +rg + +put +("[\"hello\"]"); + +31 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +32 + gput +[2] = 'X'; + +34 +JsAay + + gy + = +doc +. +as +(); + +35 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +36 +REQUIRE +( +d +:: +rg +("hlo"= +y +[0]); + +40 +TEST_CASE +("deserializeJson(std::istream&)") { + +41 +DymicJsDocumt + +doc +(4096); + +43 +SECTION +("array") { + +44 + gd +:: +irgam + +js +(" [ 42 ] "); + +46 +DerliziE + + gr + = +derlizeJs +( +doc +, +js +); + +47 +JsAay + + gr + = +doc +. +as +(); + +49 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +50 +REQUIRE +(1 = +r +. +size +()); + +51 +REQUIRE +(42 = +r +[0]); + +54 +SECTION +("object") { + +55 + gd +:: +irgam + +js +(" { hello : 'world' }"); + +57 +DerliziE + + gr + = +derlizeJs +( +doc +, +js +); + +58 +JsObje + + gobj + = +doc +. +as +(); + +60 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +61 +REQUIRE +(1 = +obj +. +size +()); + +62 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hello"]); + +65 +SECTION +("Shouldoteadfterhe closing brace ofnmpty object") { + +66 + gd +:: +irgam + +js +("{}123"); + +68 +derlizeJs +( +doc +, +js +); + +70 +REQUIRE +('1' =( +js +. +g +())); + +73 +SECTION +("Shouldoteadfterhe closing brace") { + +74 + gd +:: +irgam + +js +("{\"hello\":\"world\"}123"); + +76 +derlizeJs +( +doc +, +js +); + +78 +REQUIRE +('1' =( +js +. +g +())); + +81 +SECTION +("Shouldoteadfterhe closing bracket ofnmptyrray") { + +82 + gd +:: +irgam + +js +("[]123"); + +84 +derlizeJs +( +doc +, +js +); + +86 +REQUIRE +('1' =( +js +. +g +())); + +89 +SECTION +("Shouldoteadfterhe closing bracket") { + +90 + gd +:: +irgam + +js +("[\"hello\",\"world\"]123"); + +92 +derlizeJs +( +doc +, +js +); + +94 +REQUIRE +('1' =( +js +. +g +())); + +97 +SECTION +("Shouldoteadfterhe closing quote") { + +98 + gd +:: +irgam + +js +("\"hello\"123"); + +100 +derlizeJs +( +doc +, +js +); + +102 +REQUIRE +('1' =( +js +. +g +())); + +106 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +107 +TEST_CASE +("deserializeJson(VLA)") { + +108  + gi + = 9; + +109  + gv +[ +i +]; + +110 +ry +( +v +, "{\"a\":42}"); + +112 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(1)> + gdoc +; + +113 +DerliziE + + gr + = +derlizeJs +( +doc +, +v +); + +115 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +119 +TEST_CASE +("deserializeJson(CustomReader)") { + +120 +DymicJsDocumt + +doc +(4096); + +121 +CuomRd + +ad +("[4,2]"); + +122 +DerliziE + + gr + = +derlizeJs +( +doc +, +ad +); + +124 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +125 +REQUIRE +( +doc +. +size +() == 2); + +126 +REQUIRE +( +doc +[0] == 4); + +127 +REQUIRE +( +doc +[1] == 2); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/invalid_input.cpp + +5  + #ARDUINOJSON_DECODE_UNICODE + 1 + + ) + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("Invalid JSON input") { + +10 cڡ * + gCas +[] = {"'\\u'", "'\\u000g'", "'\\u000'", "'\\u000G'", + +13 cڡ +size_t + + gCou + = ( +Cas +) / (testCases[0]); + +15 +DymicJsDocumt + +doc +(4096); + +17  +size_t + + gi + = 0; i < + gCou +; i++) { + +18 cڡ * + gput + = +Cas +[ +i +]; + +19 +CAPTURE +( +put +); + +20 +REQUIRE +( +derlizeJs +( +doc +, +put += +DerliziE +:: +InvidIut +); + +24 +TEST_CASE +("Invalid JSON inputhat shouldass") { + +25 cڡ * + gCas +[] = { + +33 cڡ +size_t + + gCou + = ( +Cas +) / (testCases[0]); + +35 +DymicJsDocumt + +doc +(4096); + +37  +size_t + + gi + = 0; i < + gCou +; i++) { + +38 cڡ * + gput + = +Cas +[ +i +]; + +39 +CAPTURE +( +put +); + +40 +REQUIRE +( +derlizeJs +( +doc +, +put += +DerliziE +:: +Ok +); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/misc.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gCch +:: +Mchs +; + +10 +TEST_CASE +("deserializeJson(DynamicJsonDocument&)") { + +11 +DymicJsDocumt + +doc +(4096); + +13 +SECTION +("Edge cases") { + +14 +SECTION +("null char*") { + +15 +DerliziE + + gr + = +derlizeJs +( +doc +, +ic_ +<*>(0)); + +17 +REQUIRE +( +r + ! +DerliziE +:: +Ok +); + +20 +SECTION +("null const char*") { + +21 +DerliziE + + gr + = + +22 +derlizeJs +( +doc +, +ic_ +(0)); + +24 +REQUIRE +( +r + ! +DerliziE +:: +Ok +); + +27 +SECTION +("Empty input") { + +28 +DerliziE + + gr + = +derlizeJs +( +doc +, ""); + +30 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +33 +SECTION +("issue #628") { + +34 +DerliziE + + gr + = +derlizeJs +( +doc +, "null"); + +35 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +36 +REQUIRE +( +doc +. +is +<>(= +l +); + +39 +SECTION +("Garbage") { + +40 +DerliziE + + gr + = +derlizeJs +( +doc +, "%*$£¤"); + +42 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +46 +SECTION +("Booleans") { + +47 +SECTION +("True") { + +48 +DerliziE + + gr + = +derlizeJs +( +doc +, "true"); + +50 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +51 +REQUIRE +( +doc +. +is +< +bo +>()); + +52 +REQUIRE +( +doc +. +as +< +bo +>(= +ue +); + +55 +SECTION +("False") { + +56 +DerliziE + + gr + = +derlizeJs +( +doc +, "false"); + +58 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +59 +REQUIRE +( +doc +. +is +< +bo +>()); + +60 +REQUIRE +( +doc +. +as +< +bo +>(= +l +); + +64 +SECTION +("Prematureull-terminator") { + +65 +SECTION +("Inscape sequence") { + +66 +DerliziE + + gr + = +derlizeJs +( +doc +, "\"\\"); + +68 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +71 +SECTION +("In double quoted string") { + +72 +DerliziE + + gr + = +derlizeJs +( +doc +, "\"hello"); + +74 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +77 +SECTION +("In single quoted string") { + +78 +DerliziE + + gr + = +derlizeJs +( +doc +, "'hello"); + +80 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +84 +SECTION +("Prematurend of input") { + +85 +SECTION +("Inscape sequence") { + +86 +DerliziE + + gr + = +derlizeJs +( +doc +, "\"\\n\"", 2); + +88 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +91 +SECTION +("In double quoted string") { + +92 +DerliziE + + gr + = +derlizeJs +( +doc +, "\"hello\"", 6); + +94 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +97 +SECTION +("In single quoted string") { + +98 +DerliziE + + gr + = +derlizeJs +( +doc +, "'hello'", 6); + +100 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +104 +SECTION +("Should clearhe JsonVariant") { + +105 +derlizeJs +( +doc +, "[1,2,3]"); + +106 +derlizeJs +( +doc +, "{}"); + +108 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +109 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(0)); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/nestingLimit.cpp + +5  + ~ + +6  + ~ + +8  + #SHOULD_WORK +( +exessi + + `REQUIRE +( +DerliziE +:: +Ok + =exessi); + + ) + +9  + #SHOULD_FAIL +( +exessi +) \ + +10 + `REQUIRE +( +DerliziE +:: +TooDp + = +exessi +); + + ) + +12 +TEST_CASE +("JsonDeserializeresting") { + +13 +DymicJsDocumt + +doc +(4096); + +15 +SECTION +("Input = const char*") { + +16 +SECTION +("limit = 0") { + +17 + gDerliziOi +:: +NegLim + +ág +(0); + +18 +SHOULD_WORK +( +derlizeJs +( +doc +, "\"to\"", +ág +)); + +19 +SHOULD_WORK +( +derlizeJs +( +doc +, "123", +ág +)); + +20 +SHOULD_WORK +( +derlizeJs +( +doc +, "ue", +ág +)); + +21 +SHOULD_FAIL +( +derlizeJs +( +doc +, "[]", +ág +)); + +22 +SHOULD_FAIL +( +derlizeJs +( +doc +, "{}", +ág +)); + +23 +SHOULD_FAIL +( +derlizeJs +( +doc +, "[\"to\"]", +ág +)); + +24 +SHOULD_FAIL +( +derlizeJs +( +doc +, "{\"to\":1}", +ág +)); + +27 +SECTION +("limit = 1") { + +28 + gDerliziOi +:: +NegLim + +ág +(1); + +29 +SHOULD_WORK +( +derlizeJs +( +doc +, "[\"to\"]", +ág +)); + +30 +SHOULD_WORK +( +derlizeJs +( +doc +, "{\"to\":1}", +ág +)); + +31 +SHOULD_FAIL +( +derlizeJs +( +doc +, "{\"to\":{}}", +ág +)); + +32 +SHOULD_FAIL +( +derlizeJs +( +doc +, "{\"to\":[]}", +ág +)); + +33 +SHOULD_FAIL +( +derlizeJs +( +doc +, "[[\"to\"]]", +ág +)); + +34 +SHOULD_FAIL +( +derlizeJs +( +doc +, "[{\"to\":1}]", +ág +)); + +38 +SECTION +("char*nd size_t") { + +39 +SECTION +("limit = 0") { + +40 + gDerliziOi +:: +NegLim + +ág +(0); + +41 +SHOULD_WORK +( +derlizeJs +( +doc +, "\"to\"", 6, +ág +)); + +42 +SHOULD_WORK +( +derlizeJs +( +doc +, "123", 3, +ág +)); + +43 +SHOULD_WORK +( +derlizeJs +( +doc +, "ue", 4, +ág +)); + +44 +SHOULD_FAIL +( +derlizeJs +( +doc +, "[]", 2, +ág +)); + +45 +SHOULD_FAIL +( +derlizeJs +( +doc +, "{}", 2, +ág +)); + +46 +SHOULD_FAIL +( +derlizeJs +( +doc +, "[\"to\"]", 8, +ág +)); + +47 +SHOULD_FAIL +( +derlizeJs +( +doc +, "{\"to\":1}", 10, +ág +)); + +50 +SECTION +("limit = 1") { + +51 + gDerliziOi +:: +NegLim + +ág +(1); + +52 +SHOULD_WORK +( +derlizeJs +( +doc +, "[\"to\"]", 8, +ág +)); + +53 +SHOULD_WORK +( +derlizeJs +( +doc +, "{\"to\":1}", 10, +ág +)); + +54 +SHOULD_FAIL +( +derlizeJs +( +doc +, "{\"to\":{}}", 11, +ág +)); + +55 +SHOULD_FAIL +( +derlizeJs +( +doc +, "{\"to\":[]}", 11, +ág +)); + +56 +SHOULD_FAIL +( +derlizeJs +( +doc +, "[[\"to\"]]", 10, +ág +)); + +57 +SHOULD_FAIL +( +derlizeJs +( +doc +, "[{\"to\":1}]", 12, +ág +)); + +61 +SECTION +("Input = std::string") { + +62 +SECTION +("limit = 0") { + +63 + gDerliziOi +:: +NegLim + +ág +(0); + +64 +SHOULD_WORK +( +derlizeJs +( +doc +, +d +:: +rg +("\"to\""), +ág +)); + +65 +SHOULD_WORK +( +derlizeJs +( +doc +, +d +:: +rg +("123"), +ág +)); + +66 +SHOULD_WORK +( +derlizeJs +( +doc +, +d +:: +rg +("ue"), +ág +)); + +67 +SHOULD_FAIL +( +derlizeJs +( +doc +, +d +:: +rg +("[]"), +ág +)); + +68 +SHOULD_FAIL +( +derlizeJs +( +doc +, +d +:: +rg +("{}"), +ág +)); + +69 +SHOULD_FAIL +( +derlizeJs +( +doc +, +d +:: +rg +("[\"to\"]"), +ág +)); + +70 +SHOULD_FAIL +( +derlizeJs +( +doc +, +d +:: +rg +("{\"to\":1}"), +ág +)); + +73 +SECTION +("limit = 1") { + +74 + gDerliziOi +:: +NegLim + +ág +(1); + +75 +SHOULD_WORK +( +derlizeJs +( +doc +, +d +:: +rg +("[\"to\"]"), +ág +)); + +76 +SHOULD_WORK +( +derlizeJs +( +doc +, +d +:: +rg +("{\"to\":1}"), +ág +)); + +77 +SHOULD_FAIL +( +derlizeJs +( +doc +, +d +:: +rg +("{\"to\":{}}"), +ág +)); + +78 +SHOULD_FAIL +( +derlizeJs +( +doc +, +d +:: +rg +("{\"to\":[]}"), +ág +)); + +79 +SHOULD_FAIL +( +derlizeJs +( +doc +, +d +:: +rg +("[[\"to\"]]"), +ág +)); + +80 +SHOULD_FAIL +( +derlizeJs +( +doc +, +d +:: +rg +("[{\"to\":1}]"), +ág +)); + +84 +SECTION +("Input = std::istream") { + +85 +SECTION +("limit = 0") { + +86 + gDerliziOi +:: +NegLim + +ág +(0); + +87 + gd +:: +irgam + +good +("true"); + +88 + gd +:: +irgam + +bad +("[]"); + +89 +SHOULD_WORK +( +derlizeJs +( +doc +, +good +, +ág +)); + +90 +SHOULD_FAIL +( +derlizeJs +( +doc +, +bad +, +ág +)); + +93 +SECTION +("limit = 1") { + +94 + gDerliziOi +:: +NegLim + +ág +(1); + +95 + gd +:: +irgam + +good +("[\"toto\"]"); + +96 + gd +:: +irgam + +bad +("{\"toto\":{}}"); + +97 +SHOULD_WORK +( +derlizeJs +( +doc +, +good +, +ág +)); + +98 +SHOULD_FAIL +( +derlizeJs +( +doc +, +bad +, +ág +)); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/number.cpp + +5  + #ARDUINOJSON_USE_LONG_LONG + 0 + + ) + +6  + #ARDUINOJSON_ENABLE_NAN + 1 + + ) + +7  + #ARDUINOJSON_ENABLE_INFINITY + 1 + + ) + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gmy + { + +14 +usg + + gARDUINOJSON_NAMESPACE +:: +isf +; + +15 +usg + + gARDUINOJSON_NAMESPACE +:: +i +; + +18 +TEST_CASE +("deserializen integer") { + +19 +DymicJsDocumt + +doc +(4096); + +21 +SECTION +("Integer") { + +22 +SECTION +("0") { + +23 +DerliziE + + gr + = +derlizeJs +( +doc +, "0"); + +24 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +25 +REQUIRE +( +doc +. +is +<>(= +ue +); + +26 +REQUIRE +( +doc +. +as +<>() == 0); + +27 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "0"); + +30 +SECTION +("Negative") { + +31 +DerliziE + + gr + = +derlizeJs +( +doc +, "-42"); + +33 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +34 +REQUIRE +( +doc +. +is +<>()); + +35 +REQUIRE_FALSE +( +doc +. +is +< +bo +>()); + +36 +REQUIRE +( +doc +. +as +<>() == -42); + +39 #i +LONG_MAX + == 2147483647 + +40 +SECTION +("LONG_MAX") { + +41 +DerliziE + + gr + = +derlizeJs +( +doc +, "2147483647"); + +43 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +44 +REQUIRE +( +doc +. +is +<>(= +ue +); + +45 +REQUIRE +( +doc +. +as +<>(= +LONG_MAX +); + +48 +SECTION +("LONG_MAX + 1") { + +49 +DerliziE + + gr + = +derlizeJs +( +doc +, "2147483648"); + +51 +CAPTURE +( +LONG_MIN +); + +52 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +53 +REQUIRE +( +doc +. +is +<>(= +l +); + +54 +REQUIRE +( +doc +. +is +<>(= +ue +); + +58 #i +LONG_MIN + == -2147483648 + +59 +SECTION +("LONG_MIN") { + +60 +DerliziE + + gr + = +derlizeJs +( +doc +, "-2147483648"); + +61 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +62 +REQUIRE +( +doc +. +is +<>(= +ue +); + +63 +REQUIRE +( +doc +. +as +<>(= +LONG_MIN +); + +66 +SECTION +("LONG_MIN - 1") { + +67 +DerliziE + + gr + = +derlizeJs +( +doc +, "-2147483649"); + +69 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +70 +REQUIRE +( +doc +. +is +<>(= +l +); + +71 +REQUIRE +( +doc +. +is +<>(= +ue +); + +75 #i +ULONG_MAX + == 4294967295 + +76 +SECTION +("ULONG_MAX") { + +77 +DerliziE + + gr + = +derlizeJs +( +doc +, "4294967295"); + +79 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +80 +REQUIRE +( +doc +. +is +<>(= +ue +); + +81 +REQUIRE +( +doc +. +as +<>(= +ULONG_MAX +); + +82 +REQUIRE +( +doc +. +is +<>(= +l +); + +85 +SECTION +("ULONG_MAX + 1") { + +86 +DerliziE + + gr + = +derlizeJs +( +doc +, "4294967296"); + +88 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +89 +REQUIRE +( +doc +. +is +<>(= +l +); + +90 +REQUIRE +( +doc +. +is +<>(= +ue +); + +95 +SECTION +("Floats") { + +96 +SECTION +("Double") { + +97 +DerliziE + + gr + = +derlizeJs +( +doc +, "-1.23e+4"); + +99 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +100 +REQUIRE_FALSE +( +doc +. +is +<>()); + +101 +REQUIRE +( +doc +. +is +<>()); + +102 +REQUIRE +( +doc +. +as +<>(= +Arox +(-1.23e+4)); + +105 +SECTION +("NaN") { + +106 +DerliziE + + gr + = +derlizeJs +( +doc +, "NaN"); + +107 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +108 +REQUIRE +( +doc +. +is +<>(= +ue +); + +109 +REQUIRE +( +my +:: +i +( +doc +. +as +<>())); + +112 +SECTION +("Infinity") { + +113 +DerliziE + + gr + = +derlizeJs +( +doc +, "Infinity"); + +114 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +115 +REQUIRE +( +doc +. +is +<>(= +ue +); + +116 +REQUIRE +( +my +:: +isf +( +doc +. +as +<>())); + +119 +SECTION +("+Infinity") { + +120 +DerliziE + + gr + = +derlizeJs +( +doc +, "+Infinity"); + +121 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +122 +REQUIRE +( +doc +. +is +<>(= +ue +); + +123 +REQUIRE +( +my +:: +isf +( +doc +. +as +<>())); + +126 +SECTION +("-Infinity") { + +127 +DerliziE + + gr + = +derlizeJs +( +doc +, "-Infinity"); + +128 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +129 +REQUIRE +( +doc +. +is +<>(= +ue +); + +130 +REQUIRE +( +my +:: +isf +( +doc +. +as +<>())); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/object.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("deserialize JSON object") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("Anmpty object") { + +12 +DerliziE + + gr + = +derlizeJs +( +doc +, "{}"); + +13 +JsObje + + gobj + = +doc +. +as +(); + +15 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +16 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +17 +REQUIRE +( +obj +. +size +() == 0); + +20 +SECTION +("Quotes") { + +21 +SECTION +("Double quotes") { + +22 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"key\":\"value\"}"); + +23 +JsObje + + gobj + = +doc +. +as +(); + +25 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +26 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +27 +REQUIRE +( +obj +. +size +() == 1); + +28 +REQUIRE +( +obj +["key"] == "value"); + +31 +SECTION +("Single quotes") { + +32 +DerliziE + + gr + = +derlizeJs +( +doc +, "{'key':'value'}"); + +33 +JsObje + + gobj + = +doc +. +as +(); + +35 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +36 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +37 +REQUIRE +( +obj +. +size +() == 1); + +38 +REQUIRE +( +obj +["key"] == "value"); + +41 +SECTION +("No quotes") { + +42 +DerliziE + + gr + = +derlizeJs +( +doc +, "{key:'value'}"); + +43 +JsObje + + gobj + = +doc +. +as +(); + +45 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +46 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +47 +REQUIRE +( +obj +. +size +() == 1); + +48 +REQUIRE +( +obj +["key"] == "value"); + +51 +SECTION +("No quotes,llow underscore in key") { + +52 +DerliziE + + gr + = +derlizeJs +( +doc +, "{_k_e_y_:42}"); + +53 +JsObje + + gobj + = +doc +. +as +(); + +55 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +56 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +57 +REQUIRE +( +obj +. +size +() == 1); + +58 +REQUIRE +( +obj +["_k_e_y_"] == 42); + +62 +SECTION +("Spaces") { + +63 +SECTION +("Beforehe key") { + +64 +DerliziE + + gr + = +derlizeJs +( +doc +, "{ \"key\":\"value\"}"); + +65 +JsObje + + gobj + = +doc +. +as +(); + +67 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +68 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +69 +REQUIRE +( +obj +. +size +() == 1); + +70 +REQUIRE +( +obj +["key"] == "value"); + +73 +SECTION +("Afterhe key") { + +74 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"key\" :\"value\"}"); + +75 +JsObje + + gobj + = +doc +. +as +(); + +77 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +78 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +79 +REQUIRE +( +obj +. +size +() == 1); + +80 +REQUIRE +( +obj +["key"] == "value"); + +83 +SECTION +("Beforehe value") { + +84 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"key\": \"value\"}"); + +85 +JsObje + + gobj + = +doc +. +as +(); + +87 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +88 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +89 +REQUIRE +( +obj +. +size +() == 1); + +90 +REQUIRE +( +obj +["key"] == "value"); + +93 +SECTION +("Afterhe value") { + +94 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"key\":\"value\" }"); + +95 +JsObje + + gobj + = +doc +. +as +(); + +97 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +98 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +99 +REQUIRE +( +obj +. +size +() == 1); + +100 +REQUIRE +( +obj +["key"] == "value"); + +103 +SECTION +("Beforehe colon") { + +104 +DerliziE + + gr + = + +105 +derlizeJs +( +doc +, "{\"key1\":\"value1\" ,\"key2\":\"value2\"}"); + +106 +JsObje + + gobj + = +doc +. +as +(); + +108 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +109 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +110 +REQUIRE +( +obj +. +size +() == 2); + +111 +REQUIRE +( +obj +["key1"] == "value1"); + +112 +REQUIRE +( +obj +["key2"] == "value2"); + +115 +SECTION +("Afterhe colon") { + +116 +DerliziE + + gr + = + +117 +derlizeJs +( +doc +, "{\"key1\":\"value1\" ,\"key2\":\"value2\"}"); + +118 +JsObje + + gobj + = +doc +. +as +(); + +120 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +121 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +122 +REQUIRE +( +obj +. +size +() == 2); + +123 +REQUIRE +( +obj +["key1"] == "value1"); + +124 +REQUIRE +( +obj +["key2"] == "value2"); + +128 +SECTION +("Valuesypes") { + +129 +SECTION +("String") { + +130 +DerliziE + + gr + = + +131 +derlizeJs +( +doc +, "{\"key1\":\"value1\",\"key2\":\"value2\"}"); + +132 +JsObje + + gobj + = +doc +. +as +(); + +134 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +135 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +136 +REQUIRE +( +obj +. +size +() == 2); + +137 +REQUIRE +( +obj +["key1"] == "value1"); + +138 +REQUIRE +( +obj +["key2"] == "value2"); + +141 +SECTION +("Integer") { + +142 +DerliziE + + gr + = + +143 +derlizeJs +( +doc +, "{\"key1\":42,\"key2\":-42}"); + +144 +JsObje + + gobj + = +doc +. +as +(); + +146 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +147 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +148 +REQUIRE +( +obj +. +size +() == 2); + +149 +REQUIRE +( +obj +["key1"] == 42); + +150 +REQUIRE +( +obj +["key2"] == -42); + +153 +SECTION +("Double") { + +154 +DerliziE + + gr + = + +155 +derlizeJs +( +doc +, "{\"key1\":12.345,\"key2\":-7E89}"); + +156 +JsObje + + gobj + = +doc +. +as +(); + +158 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +159 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +160 +REQUIRE +( +obj +. +size +() == 2); + +161 +REQUIRE +( +obj +["key1"] == 12.345); + +162 +REQUIRE +( +obj +["key2"] == -7E89); + +165 +SECTION +("Booleans") { + +166 +DerliziE + + gr + = + +167 +derlizeJs +( +doc +, "{\"key1\":true,\"key2\":false}"); + +168 +JsObje + + gobj + = +doc +. +as +(); + +170 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +171 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +172 +REQUIRE +( +obj +. +size +() == 2); + +173 +REQUIRE +( +obj +["key1"] = +ue +); + +174 +REQUIRE +( +obj +["key2"] = +l +); + +177 +SECTION +("Null") { + +178 +DerliziE + + gr + = + +179 +derlizeJs +( +doc +, "{\"key1\":null,\"key2\":null}"); + +180 +JsObje + + gobj + = +doc +. +as +(); + +182 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +183 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +184 +REQUIRE +( +obj +. +size +() == 2); + +185 +REQUIRE +( +obj +["key1"]. +as +<*>() == 0); + +186 +REQUIRE +( +obj +["key2"]. +as +<*>() == 0); + +189 +SECTION +("Array") { + +190  + gjsSg +[] = " { \"ab\" : [ 1 , 2 ] , \"cd\" : [ 3 , 4 ] } "; + +192 +DerliziE + + gr + = +derlizeJs +( +doc +, +jsSg +); + +193 +JsObje + + gobj + = +doc +. +as +(); + +195 +JsAay + + gy1 + = +obj +["ab"]; + +196 cڡ +JsAay + + gy2 + = +obj +["cd"]; + +197 +JsAay + + gy3 + = +obj +["ef"]; + +199 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +201 +REQUIRE +( +y1 +. +isNu +(= +l +); + +202 +REQUIRE +( +y2 +. +isNu +(= +l +); + +203 +REQUIRE +( +y3 +. +isNu +(= +ue +); + +205 +REQUIRE +(2 = +y1 +. +size +()); + +206 +REQUIRE +(2 = +y2 +. +size +()); + +207 +REQUIRE +(0 = +y3 +. +size +()); + +209 +REQUIRE +(1 = +y1 +[0]. +as +<>()); + +210 +REQUIRE +(2 = +y1 +[1]. +as +<>()); + +212 +REQUIRE +(3 = +y2 +[0]. +as +<>()); + +213 +REQUIRE +(4 = +y2 +[1]. +as +<>()); + +215 +REQUIRE +(0 = +y3 +[0]. +as +<>()); + +219 +SECTION +("Prematureullerminator") { + +220 +SECTION +("After opening brace") { + +221 +DerliziE + + gr + = +derlizeJs +( +doc +, "{"); + +223 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +226 +SECTION +("After key") { + +227 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"hello\""); + +229 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +232 +SECTION +("After colon") { + +233 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"hello\":"); + +235 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +238 +SECTION +("After value") { + +239 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"hello\":\"world\""); + +241 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +244 +SECTION +("After comma") { + +245 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"hello\":\"world\","); + +247 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +251 +SECTION +("Misc") { + +252 +SECTION +("A quoted key without value") { + +253 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"key\"}"); + +255 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +258 +SECTION +("Aon-quoted key without value") { + +259 +DerliziE + + gr + = +derlizeJs +( +doc +, "{key}"); + +261 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +264 +SECTION +("A dangling comma") { + +265 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"key1\":\"value1\",}"); + +267 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +270 +SECTION +("nulls key") { + +271 +DerliziE + + gr + = +derlizeJs +( +doc +, "{null:\"value\"}"); + +273 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +276 +SECTION +("Repeated key") { + +277 +DerliziE + + gr + = +derlizeJs +( +doc +, "{a:{b:{c:1}},a:2}"); + +279 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +280 +REQUIRE +( +doc +["a"] == 2); + +284 +SECTION +("Should clearhe JsonObject") { + +285 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +286 +derlizeJs +( +doc +, "{}"); + +287 +JsObje + + gobj + = +doc +. +as +(); + +289 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +290 +REQUIRE +( +obj +. +size +() == 0); + +291 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(0)); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/object_static.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("deserialize JSON object with StaticJsonDocument") { + +9 +SECTION +("BufferOfTheRightSizeForEmptyObject") { + +10 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(0)> + gdoc +; + +11  + gput +[] = "{}"; + +13 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +15 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +18 +SECTION +("TooSmallBufferForObjectWithOneValue") { + +19 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(0)> + gdoc +; + +20  + gput +[] = "{\"a\":1}"; + +22 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +24 +REQUIRE +( +r + = +DerliziE +:: +NoMemy +); + +27 +SECTION +("BufferOfTheRightSizeForObjectWithOneValue") { + +28 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(1)> + gdoc +; + +29  + gput +[] = "{\"a\":1}"; + +31 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +33 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +36 +SECTION +("TooSmallBufferForObjectWithNestedObject") { + +37 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(0+ +JSON_ARRAY_SIZE +(0)> + gdoc +; + +38  + gput +[] = "{\"a\":[]}"; + +40 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +42 +REQUIRE +( +r + = +DerliziE +:: +NoMemy +); + +45 +SECTION +("BufferOfTheRightSizeForObjectWithNestedObject") { + +46 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(1+ +JSON_ARRAY_SIZE +(0)> + gdoc +; + +47  + gput +[] = "{\"a\":[]}"; + +49 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +51 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +54 +SECTION +("Should clearhe JsonObject") { + +55 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(1)> + gdoc +; + +56  + gput +[] = "{\"hello\":\"world\"}"; + +58 +derlizeJs +( +doc +, +put +); + +59 +derlizeJs +( +doc +, "{}"); + +61 +REQUIRE +( +doc +. +as +< +JsObje +>(). +size +() == 0); + +62 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(0)); + + @lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/string.cpp + +5  + #ARDUINOJSON_DECODE_UNICODE + 1 + + ) + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("Valid JSON strings value") { + +10  + sTeCa + { + +11 cڡ * + gput +; + +12 cڡ * + gexedOuut +; + +15 +TeCa + + gCas +[] = { + +36 cڡ +size_t + + gCou + = ( +Cas +) / (testCases[0]); + +38 +DymicJsDocumt + +doc +(4096); + +40  +size_t + + gi + = 0; i < + gCou +; i++) { + +41 cڡ + gTeCa +& + gCa + = +Cas +[ +i +]; + +42 +CAPTURE +( +Ca +. +put +); + +43 +DerliziE + + gr + = +derlizeJs +( +doc +, +Ca +. +put +); + +44 +CHECK +( +r + = +DerliziE +:: +Ok +); + +45 +CHECK +( +doc +. +as +< +d +:: +rg +>(= +Ca +. +exedOuut +); + +49 +TEST_CASE +("Truncated JSON string") { + +50 cڡ * + gCas +[] = {"\"hello", "\'hello", "'\\u", "'\\u00", "'\\u000"}; + +51 cڡ +size_t + + gCou + = ( +Cas +) / (testCases[0]); + +53 +DymicJsDocumt + +doc +(4096); + +55  +size_t + + gi + = 0; i < + gCou +; i++) { + +56 cڡ * + gput + = +Cas +[ +i +]; + +57 +CAPTURE +( +put +); + +58 +REQUIRE +( +derlizeJs +( +doc +, +put +) == + +59 +DerliziE +:: +IncomeIut +); + +63 +TEST_CASE +("Invalid JSON string") { + +64 cڡ * + gCas +[] = {"'\\u'", "'\\u000g'", "'\\u000'", + +66 cڡ +size_t + + gCou + = ( +Cas +) / (testCases[0]); + +68 +DymicJsDocumt + +doc +(4096); + +70  +size_t + + gi + = 0; i < + gCou +; i++) { + +71 cڡ * + gput + = +Cas +[ +i +]; + +72 +CAPTURE +( +put +); + +73 +REQUIRE +( +derlizeJs +( +doc +, +put += +DerliziE +:: +InvidIut +); + +77 +TEST_CASE +("Notnoughoomo duplicatehe string") { + +78 +DymicJsDocumt + +doc +( +JSON_OBJECT_SIZE +(0)); + +80 +SECTION +("Quoted string") { + +81 +REQUIRE +( +derlizeJs +( +doc +, "{\"example\":1}") == + +82 +DerliziE +:: +NoMemy +); + +85 +SECTION +("Non-quoted string") { + +86 +REQUIRE +( +derlizeJs +( +doc +, "{example:1}") == + +87 +DerliziE +:: +NoMemy +); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/BasicJsonDocument.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +8  + ~ + +10 +usg + + gARDUINOJSON_NAMESPACE +:: +addPaddg +; + +11 +usg + + gARDUINOJSON_NAMESPACE +:: +move +; + +13 as + cSpygAot + { + +14 + mpublic +: + +15 + $SpygAot +(cڡ +SpygAot +& +c +: + $_log +( +c +. +_log +) {} + +16 + $SpygAot +( +d +:: +oam +& +log +: + $_log +( +log +{ + } +} + +18 * + $lo +( +size_t + +n +) { + +19 +_log + << "A" << +n +; + +20  + `mloc +( +n +); + +21 + } +} + +22  + $do +(* +p +) { + +23 +_log + << "F"; + +24 + ` +( +p +); + +25 + } +} + +27 + give +: + +28 +SpygAot +& +ݔ +=(cڡ SpygAot& +c +); + +30 + gd +:: +oam +& +_log +; + +33 as + cCڌbAot + { + +34 + mpublic +: + +35 + $CڌbAot +(: + $_abd +( +ue +) {} + +37 * + $lo +( +size_t + +n +) { + +38  +_abd + ? + `mloc +( +n +) : 0; + +39 + } +} + +41  + $do +(* +p +) { + +42 + ` +( +p +); + +43 + } +} + +45  + $dib +() { + +46 +_abd + = +l +; + +47 + } +} + +49 + give +: + +50 +bo + +_abd +; + +53 +TEST_CASE +("BasicJsonDocument") { + +54 + gd +:: +rgam + +log +; + +56 +SECTION +("Construct/Destruct") { + +57 { + gBasicJsDocumt +< + gSpygAot +> +doc +(4096, +log +); } + +58 +REQUIRE +( +log +. +r +() == "A4096F"); + +61 +SECTION +("Copy construct") { + +63 + gBasicJsDocumt +< + gSpygAot +> +doc1 +(4096, +log +); + +64 + gdoc1 +. +t +( +d +:: +rg +("The size ofhis string is 32!!")); + +66 + gBasicJsDocumt +< + gSpygAot +> +doc2 +( +doc1 +); + +68 +REQUIRE +( +doc1 +. +as +< +d +:: +rg +>() == "The size ofhis string is 32!!"); + +69 +REQUIRE +( +doc2 +. +as +< +d +:: +rg +>() == "The size ofhis string is 32!!"); + +70 +REQUIRE +( +doc2 +. +cy +() == 4096); + +72 +REQUIRE +( +log +. +r +() == "A4096A4096FF"); + +75 #i +ARDUINOJSON_HAS_RVALUE_REFERENCES + + +76 +SECTION +("Move construct") { + +78 + gBasicJsDocumt +< + gSpygAot +> +doc1 +(4096, +log +); + +79 + gdoc1 +. +t +( +d +:: +rg +("The size ofhis string is 32!!")); + +81 + gBasicJsDocumt +< + gSpygAot +> +doc2 +( +move +( +doc1 +)); + +83 +REQUIRE +( +doc2 +. +as +< +d +:: +rg +>() == "The size ofhis string is 32!!"); + +84 +REQUIRE +( +doc1 +. +as +< +d +:: +rg +>() == "null"); + +85 +REQUIRE +( +doc1 +. +cy +() == 0); + +86 +REQUIRE +( +doc2 +. +cy +() == 4096); + +88 +REQUIRE +( +log +. +r +() == "A4096F"); + +92 +SECTION +("Copyssign") { + +94 + gBasicJsDocumt +< + gSpygAot +> +doc1 +(4096, +log +); + +95 + gdoc1 +. +t +( +d +:: +rg +("The size ofhis string is 32!!")); + +96 + gBasicJsDocumt +< + gSpygAot +> +doc2 +(8, +log +); + +98 + gdoc2 + = +doc1 +; + +100 +REQUIRE +( +doc1 +. +as +< +d +:: +rg +>() == "The size ofhis string is 32!!"); + +101 +REQUIRE +( +doc2 +. +as +< +d +:: +rg +>() == "The size ofhis string is 32!!"); + +102 +REQUIRE +( +doc2 +. +cy +() == 4096); + +104 +REQUIRE +( +log +. +r +() == "A4096A8FA4096FF"); + +107 #i +ARDUINOJSON_HAS_RVALUE_REFERENCES + + +108 +SECTION +("Movessign") { + +110 + gBasicJsDocumt +< + gSpygAot +> +doc1 +(4096, +log +); + +111 + gdoc1 +. +t +( +d +:: +rg +("The size ofhis string is 32!!")); + +112 + gBasicJsDocumt +< + gSpygAot +> +doc2 +(8, +log +); + +114 + gdoc2 + = +move +( +doc1 +); + +116 +REQUIRE +( +doc2 +. +as +< +d +:: +rg +>() == "The size ofhis string is 32!!"); + +117 +REQUIRE +( +doc1 +. +as +< +d +:: +rg +>() == "null"); + +118 +REQUIRE +( +doc1 +. +cy +() == 0); + +119 +REQUIRE +( +doc2 +. +cy +() == 4096); + +121 +REQUIRE +( +log +. +r +() == "A4096A8FF"); + +125 +SECTION +("garbageCollect()") { + +126 + gBasicJsDocumt +< + gCڌbAot +> +doc +(4096); + +128 +SECTION +("whenllocation succeeds") { + +129 +derlizeJs +( +doc +, "{\"blanket\":1,\"dancing\":2}"); + +130 +REQUIRE +( +doc +. +cy +() == 4096); + +131 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(2) + 16); + +132 + gdoc +. +move +("blanket"); + +134 +bo + + gsu + = +doc +. +gbageC +(); + +136 +REQUIRE +( +su + = +ue +); + +137 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(1) + 8); + +138 +REQUIRE +( +doc +. +cy +() == 4096); + +139 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"dancing\":2}"); + +142 +SECTION +("whenllocation fails") { + +143 +derlizeJs +( +doc +, "{\"blanket\":1,\"dancing\":2}"); + +144 +REQUIRE +( +doc +. +cy +() == 4096); + +145 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(2) + 16); + +146 + gdoc +. +move +("blanket"); + +147 + gdoc +. +lot +(). +dib +(); + +149 +bo + + gsu + = +doc +. +gbageC +(); + +151 +REQUIRE +( +su + = +l +); + +152 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(2) + 16); + +153 +REQUIRE +( +doc +. +cy +() == 4096); + +154 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"dancing\":2}"); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/DynamicJsonDocument.cpp + +5  + ~ + +6  + ~ + +8 +usg + + gARDUINOJSON_NAMESPACE +:: +addPaddg +; + +10  + $REQUIRE_JSON +( +JsDocumt +& +doc +, cڡ +d +:: +rg +& +exed +) { + +11 +d +:: +rg + +js +; + +12 + `rlizeJs +( +doc +, +js +); + +13 + `REQUIRE +( +js + = +exed +); + +14 + } +} + +16 +TEST_CASE +("DynamicJsonDocument") { + +17 +DymicJsDocumt + +doc +(4096); + +19 +SECTION +("serializeJson()") { + +20 +JsObje + + gobj + = +doc +. +to +(); + +21 + gobj +["hello"] = "world"; + +23 + gd +:: +rg + +js +; + +24 +rlizeJs +( +doc +, +js +); + +26 +REQUIRE +( +js + == "{\"hello\":\"world\"}"); + +29 +SECTION +("memoryUsage()") { + +30 +SECTION +("startst zero") { + +31 +REQUIRE +( +doc +. +memyUge +() == 0); + +34 +SECTION +("JSON_ARRAY_SIZE(0)") { + +35 + gdoc +. + gto +< + gJsAay +>(); + +36 +REQUIRE +( +doc +. +memyUge +(= +JSON_ARRAY_SIZE +(0)); + +39 +SECTION +("JSON_ARRAY_SIZE(1)") { + +40 + gdoc +. + gto +< + gJsAay +>(). +add +(42); + +41 +REQUIRE +( +doc +. +memyUge +(= +JSON_ARRAY_SIZE +(1)); + +44 +SECTION +("JSON_ARRAY_SIZE(1) + JSON_ARRAY_SIZE(0)") { + +45 + gdoc +. + gto +< + gJsAay +>(). +NeedAay +(); + +46 +REQUIRE +( +doc +. +memyUge +(= +JSON_ARRAY_SIZE +(1) + JSON_ARRAY_SIZE(0)); + +50 +SECTION +("capacity()") { + +51 +SECTION +("matches constructorrgument") { + +52 +DymicJsDocumt + +doc2 +(256); + +53 +REQUIRE +( +doc2 +. +cy +() == 256); + +56 +SECTION +("rounds up constructorrgument") { + +57 +DymicJsDocumt + +doc2 +(253); + +58 +REQUIRE +( +doc2 +. +cy +() == 256); + +62 +SECTION +("memoryUsage()") { + +63 +SECTION +("Increasesfterdding valueorray") { + +64 +JsAay + + gr + = +doc +. +to +(); + +66 +REQUIRE +( +doc +. +memyUge +(= +JSON_ARRAY_SIZE +(0)); + +67 + gr +. +add +(42); + +68 +REQUIRE +( +doc +. +memyUge +(= +JSON_ARRAY_SIZE +(1)); + +69 + gr +. +add +(43); + +70 +REQUIRE +( +doc +. +memyUge +(= +JSON_ARRAY_SIZE +(2)); + +73 +SECTION +("Increasesfterdding valueo object") { + +74 +JsObje + + gobj + = +doc +. +to +(); + +76 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(0)); + +77 + gobj +["a"] = 1; + +78 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(1)); + +79 + gobj +["b"] = 2; + +80 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(2)); + +85 +TEST_CASE +("DynamicJsonDocument constructor") { + +86 +SECTION +("Copy constructor") { + +87 +DymicJsDocumt + +doc1 +(1234); + +88 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +90 +DymicJsDocumt + + gdoc2 + = +doc1 +; + +92 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +94 +REQUIRE +( +doc2 +. +cy +(= +doc1 +.capacity()); + +97 +SECTION +("Construct from StaticJsonDocument") { + +98 + gSticJsDocumt +<200> + gdoc1 +; + +99 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +101 +DymicJsDocumt + + gdoc2 + = +doc1 +; + +103 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +104 +REQUIRE +( +doc2 +. +cy +(= +doc1 +.capacity()); + +107 +SECTION +("Construct from JsonObject") { + +108 + gSticJsDocumt +<200> + gdoc1 +; + +109 +JsObje + + gobj + = +doc1 +. +to +(); + +110 + gobj +["hello"] = "world"; + +112 +DymicJsDocumt + + gdoc2 + = +obj +; + +114 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +115 +REQUIRE +( +doc2 +. +cy +(= +addPaddg +( +doc1 +. +memyUge +())); + +118 +SECTION +("Construct from JsonArray") { + +119 + gSticJsDocumt +<200> + gdoc1 +; + +120 +JsAay + + gr + = +doc1 +. +to +(); + +121 + gr +. +add +("hello"); + +123 +DymicJsDocumt + + gdoc2 + = +r +; + +125 +REQUIRE_JSON +( +doc2 +, "[\"hello\"]"); + +126 +REQUIRE +( +doc2 +. +cy +(= +addPaddg +( +doc1 +. +memyUge +())); + +129 +SECTION +("Construct from JsonVariant") { + +130 + gSticJsDocumt +<200> + gdoc1 +; + +131 +derlizeJs +( +doc1 +, "42"); + +133 +DymicJsDocumt + + gdoc2 + = +doc1 +. +as +< +JsV +>(); + +135 +REQUIRE_JSON +( +doc2 +, "42"); + +136 +REQUIRE +( +doc2 +. +cy +(= +addPaddg +( +doc1 +. +memyUge +())); + +140 +TEST_CASE +("DynamicJsonDocumentssignment") { + +141 +SECTION +("Copyssignmentreserveshe buffer when capacity is sufficient") { + +142 +DymicJsDocumt + +doc1 +(1234); + +143 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +145 +DymicJsDocumt + +doc2 +( +doc1 +. +cy +()); + +146 + gdoc2 + = +doc1 +; + +148 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +149 +REQUIRE +( +doc2 +. +cy +(= +doc1 +.capacity()); + +152 +SECTION +("Copyssignmentealloche buffer when capacity is insufficient") { + +153 +DymicJsDocumt + +doc1 +(1234); + +154 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +155 +DymicJsDocumt + +doc2 +(8); + +157 +REQUIRE +( +doc2 +. +cy +(< +doc1 +. +memyUge +()); + +158 + gdoc2 + = +doc1 +; + +159 +REQUIRE +( +doc2 +. +cy +(> +doc1 +. +memyUge +()); + +161 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +164 +SECTION +("Assign from StaticJsonDocument") { + +165 + gSticJsDocumt +<200> + gdoc1 +; + +166 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +167 +DymicJsDocumt + +doc2 +(4096); + +168 + gdoc2 +. + gto +< + gJsV +>(). +t +(666); + +170 + gdoc2 + = +doc1 +; + +172 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +175 +SECTION +("Assign from JsonObject") { + +176 + gSticJsDocumt +<200> + gdoc1 +; + +177 +JsObje + + gobj + = +doc1 +. +to +(); + +178 + gobj +["hello"] = "world"; + +180 +DymicJsDocumt + +doc2 +(4096); + +181 + gdoc2 + = +obj +; + +183 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +184 +REQUIRE +( +doc2 +. +cy +() == 4096); + +187 +SECTION +("Assign from JsonArray") { + +188 + gSticJsDocumt +<200> + gdoc1 +; + +189 +JsAay + + gr + = +doc1 +. +to +(); + +190 + gr +. +add +("hello"); + +192 +DymicJsDocumt + +doc2 +(4096); + +193 + gdoc2 + = +r +; + +195 +REQUIRE_JSON +( +doc2 +, "[\"hello\"]"); + +196 +REQUIRE +( +doc2 +. +cy +() == 4096); + +199 +SECTION +("Assign from JsonVariant") { + +200 + gSticJsDocumt +<200> + gdoc1 +; + +201 +derlizeJs +( +doc1 +, "42"); + +203 +DymicJsDocumt + +doc2 +(4096); + +204 + gdoc2 + = +doc1 +. +as +< +JsV +>(); + +206 +REQUIRE_JSON +( +doc2 +, "42"); + +207 +REQUIRE +( +doc2 +. +cy +() == 4096); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/StaticJsonDocument.cpp + +5  + ~ + +6  + ~ + +8  + $REQUIRE_JSON +( +JsDocumt +& +doc +, cڡ +d +:: +rg +& +exed +) { + +9 +d +:: +rg + +js +; + +10 + `rlizeJs +( +doc +, +js +); + +11 + `REQUIRE +( +js + = +exed +); + +12 + } +} + +14 +TEST_CASE +("StaticJsonDocument") { + +15 +SECTION +("capacity()") { + +16 +SECTION +("matchesemplatergument") { + +17 + gSticJsDocumt +<256> + gdoc +; + +18 +REQUIRE +( +doc +. +cy +() == 256); + +21 +SECTION +("rounds upemplatergument") { + +22 + gSticJsDocumt +<253> + gdoc +; + +23 +REQUIRE +( +doc +. +cy +() == 256); + +27 +SECTION +("serializeJson()") { + +28 + gSticJsDocumt +<200> + gdoc +; + +29 +JsObje + + gobj + = +doc +. +to +(); + +30 + gobj +["hello"] = "world"; + +32 + gd +:: +rg + +js +; + +33 +rlizeJs +( +doc +, +js +); + +35 +REQUIRE +( +js + == "{\"hello\":\"world\"}"); + +38 +SECTION +("Copyssignment") { + +39 + gSticJsDocumt +<200> + gdoc1 +, + gdoc2 +; + +40 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +41 +derlizeJs +( +doc2 +, "{\"hello\":\"world\"}"); + +43 + gdoc1 + = +doc2 +; + +45 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +48 +SECTION +("Contructor") { + +49 +SECTION +("Copy constructor") { + +50 + gSticJsDocumt +<200> + gdoc1 +; + +51 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +53 + gSticJsDocumt +<200> + gdoc2 + = +doc1 +; + +55 +derlizeJs +( +doc1 +, "{\"HELLO\":\"WORLD\"}"); + +56 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +59 +SECTION +("Construct from StaticJsonDocument of different size") { + +60 + gSticJsDocumt +<300> + gdoc1 +; + +61 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +63 + gSticJsDocumt +<200> + gdoc2 + = +doc1 +; + +65 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +68 +SECTION +("Construct from DynamicJsonDocument") { + +69 +DymicJsDocumt + +doc1 +(4096); + +70 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +72 + gSticJsDocumt +<200> + gdoc2 + = +doc1 +; + +74 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +77 +SECTION +("Construct from JsonObject") { + +78 +DymicJsDocumt + +doc1 +(4096); + +79 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +81 + gSticJsDocumt +<200> + gdoc2 + = +doc1 +. +as +< +JsObje +>(); + +83 +derlizeJs +( +doc1 +, "{\"HELLO\":\"WORLD\"}"); + +84 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +87 +SECTION +("Construct from JsonArray") { + +88 +DymicJsDocumt + +doc1 +(4096); + +89 +derlizeJs +( +doc1 +, "[\"hello\",\"world\"]"); + +91 + gSticJsDocumt +<200> + gdoc2 + = +doc1 +. +as +< +JsAay +>(); + +93 +derlizeJs +( +doc1 +, "[\"HELLO\",\"WORLD\"]"); + +94 +REQUIRE_JSON +( +doc2 +, "[\"hello\",\"world\"]"); + +97 +SECTION +("Construct from JsonVariant") { + +98 +DymicJsDocumt + +doc1 +(4096); + +99 +derlizeJs +( +doc1 +, "42"); + +101 + gSticJsDocumt +<200> + gdoc2 + = +doc1 +. +as +< +JsV +>(); + +103 +REQUIRE_JSON +( +doc2 +, "42"); + +107 +SECTION +("Assignment") { + +108 +SECTION +("Copyssignment") { + +109 + gSticJsDocumt +<200> + gdoc1 +, + gdoc2 +; + +110 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +111 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +113 + gdoc2 + = +doc1 +; + +115 +derlizeJs +( +doc1 +, "{\"HELLO\":\"WORLD\"}"); + +116 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +119 +SECTION +("Assign from StaticJsonDocument of different capacity") { + +120 + gSticJsDocumt +<200> + gdoc1 +; + +121 + gSticJsDocumt +<300> + gdoc2 +; + +122 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +123 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +125 + gdoc2 + = +doc1 +; + +127 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +130 +SECTION +("Assign from DynamicJsonDocument") { + +131 + gSticJsDocumt +<200> + gdoc1 +; + +132 +DymicJsDocumt + +doc2 +(4096); + +133 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +134 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +136 + gdoc2 + = +doc1 +; + +138 +derlizeJs +( +doc1 +, "{\"HELLO\":\"WORLD\"}"); + +139 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +142 +SECTION +("Assign from JsonArray") { + +143 + gSticJsDocumt +<200> + gdoc1 +; + +144 +DymicJsDocumt + +doc2 +(4096); + +145 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +146 +derlizeJs +( +doc1 +, "[\"hello\",\"world\"]"); + +148 + gdoc2 + = +doc1 +. +as +< +JsAay +>(); + +150 +derlizeJs +( +doc1 +, "[\"HELLO\",\"WORLD\"]"); + +151 +REQUIRE_JSON +( +doc2 +, "[\"hello\",\"world\"]"); + +154 +SECTION +("Assign from JsonArrayConst") { + +155 + gSticJsDocumt +<200> + gdoc1 +; + +156 +DymicJsDocumt + +doc2 +(4096); + +157 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +158 +derlizeJs +( +doc1 +, "[\"hello\",\"world\"]"); + +160 + gdoc2 + = +doc1 +. +as +< +JsAayCڡ +>(); + +162 +derlizeJs +( +doc1 +, "[\"HELLO\",\"WORLD\"]"); + +163 +REQUIRE_JSON +( +doc2 +, "[\"hello\",\"world\"]"); + +166 +SECTION +("Assign from JsonObject") { + +167 + gSticJsDocumt +<200> + gdoc1 +; + +168 +DymicJsDocumt + +doc2 +(4096); + +169 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +170 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +172 + gdoc2 + = +doc1 +. +as +< +JsObje +>(); + +174 +derlizeJs +( +doc1 +, "{\"HELLO\":\"WORLD\"}"); + +175 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +178 +SECTION +("Assign from JsonObjectConst") { + +179 + gSticJsDocumt +<200> + gdoc1 +; + +180 +DymicJsDocumt + +doc2 +(4096); + +181 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +182 +derlizeJs +( +doc1 +, "{\"hello\":\"world\"}"); + +184 + gdoc2 + = +doc1 +. +as +< +JsObjeCڡ +>(); + +186 +derlizeJs +( +doc1 +, "{\"HELLO\":\"WORLD\"}"); + +187 +REQUIRE_JSON +( +doc2 +, "{\"hello\":\"world\"}"); + +190 +SECTION +("Assign from JsonVariant") { + +191 +DymicJsDocumt + +doc1 +(4096); + +192 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +193 +derlizeJs +( +doc1 +, "42"); + +195 + gSticJsDocumt +<200> + gdoc2 +; + +196 + gdoc2 + = +doc1 +. +as +< +JsV +>(); + +198 +REQUIRE_JSON +( +doc2 +, "42"); + +201 +SECTION +("Assign from JsonVariantConst") { + +202 +DymicJsDocumt + +doc1 +(4096); + +203 + gdoc1 +. + gto +< + gJsV +>(). +t +(666); + +204 +derlizeJs +( +doc1 +, "42"); + +206 + gSticJsDocumt +<200> + gdoc2 +; + +207 + gdoc2 + = +doc1 +. +as +< +JsVCڡ +>(); + +209 +REQUIRE_JSON +( +doc2 +, "42"); + +213 +SECTION +("garbageCollect()") { + +214 + gSticJsDocumt +<256> + gdoc +; + +215 + gdoc +[ +d +:: +rg +("example")] = std::string("example"); + +216 + gdoc +. +move +("example"); + +217 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(1) + 16); + +219 + gdoc +. +gbageC +(); + +221 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(0)); + +222 +REQUIRE_JSON +( +doc +, "{}"); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/add.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonDocument::add()") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("integer") { + +12 + gdoc +. +add +(42); + +14 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[42]"); + +17 +SECTION +("const char*") { + +18 + gdoc +. +add +("hello"); + +20 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[\"hello\"]"); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/compare.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("DynamicJsonDocument::operator==(const DynamicJsonDocument&)") { + +9 +DymicJsDocumt + +doc1 +(4096); + +10 +DymicJsDocumt + +doc2 +(4096); + +12 +SECTION +("Empty") { + +13 +REQUIRE +( +doc1 + = +doc2 +); + +14 +REQUIRE_FALSE +( +doc1 + ! +doc2 +); + +17 +SECTION +("With same object") { + +18 + gdoc1 +["hello"] = "world"; + +19 + gdoc2 +["hello"] = "world"; + +20 +REQUIRE +( +doc1 + = +doc2 +); + +21 +REQUIRE_FALSE +( +doc1 + ! +doc2 +); + +23 +SECTION +("With different object") { + +24 + gdoc1 +["hello"] = "world"; + +25 + gdoc2 +["world"] = "hello"; + +26 +REQUIRE_FALSE +( +doc1 + = +doc2 +); + +27 +REQUIRE +( +doc1 + ! +doc2 +); + +31 +TEST_CASE +("DynamicJsonDocument::operator==(const StaticJsonDocument&)") { + +32 +DymicJsDocumt + +doc1 +(4096); + +33 + gSticJsDocumt +<256> + gdoc2 +; + +35 +SECTION +("Empty") { + +36 +REQUIRE +( +doc1 + = +doc2 +); + +37 +REQUIRE_FALSE +( +doc1 + ! +doc2 +); + +40 +SECTION +("With same object") { + +41 + gdoc1 +["hello"] = "world"; + +42 + gdoc2 +["hello"] = "world"; + +43 +REQUIRE +( +doc1 + = +doc2 +); + +44 +REQUIRE_FALSE +( +doc1 + ! +doc2 +); + +47 +SECTION +("With different object") { + +48 + gdoc1 +["hello"] = "world"; + +49 + gdoc2 +["world"] = "hello"; + +50 +REQUIRE_FALSE +( +doc1 + = +doc2 +); + +51 +REQUIRE +( +doc1 + ! +doc2 +); + +55 +TEST_CASE +("StaticJsonDocument::operator==(const DynamicJsonDocument&)") { + +56 + gSticJsDocumt +<256> + gdoc1 +; + +57 +DymicJsDocumt + +doc2 +(4096); + +59 +SECTION +("Empty") { + +60 +REQUIRE +( +doc1 + = +doc2 +); + +61 +REQUIRE_FALSE +( +doc1 + ! +doc2 +); + +64 +SECTION +("With same object") { + +65 + gdoc1 +["hello"] = "world"; + +66 + gdoc2 +["hello"] = "world"; + +67 +REQUIRE +( +doc1 + = +doc2 +); + +68 +REQUIRE_FALSE +( +doc1 + ! +doc2 +); + +71 +SECTION +("With different object") { + +72 + gdoc1 +["hello"] = "world"; + +73 + gdoc2 +["world"] = "hello"; + +74 +REQUIRE_FALSE +( +doc1 + = +doc2 +); + +75 +REQUIRE +( +doc1 + ! +doc2 +); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/containsKey.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonDocument::containsKey()") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("returnsrue on object") { + +12 + gdoc +["hello"] = "world"; + +14 +REQUIRE +( +doc +. +cڏsKey +("hlo"= +ue +); + +17 +SECTION +("returnsrue when value isull") { + +18 + gdoc +["hlo"] = +ic_ +(0); + +20 +REQUIRE +( +doc +. +cڏsKey +("hlo"= +ue +); + +23 +SECTION +("returnsrue when key is std::string") { + +24 + gdoc +["hello"] = "world"; + +26 +REQUIRE +( +doc +. +cڏsKey +( +d +:: +rg +("hlo")= +ue +); + +29 +SECTION +("returns false on object") { + +30 + gdoc +["world"] = "hello"; + +32 +REQUIRE +( +doc +. +cڏsKey +("hlo"= +l +); + +35 +SECTION +("returns false onrray") { + +36 + gdoc +. +add +("hello"); + +38 +REQUIRE +( +doc +. +cڏsKey +("hlo"= +l +); + +41 +SECTION +("returns false onull") { + +42 +REQUIRE +( +doc +. +cڏsKey +("hlo"= +l +); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/createNested.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonDocument::createNestedArray()") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("promotesorray") { + +12 + gdoc +. +NeedAay +(); + +14 +REQUIRE +( +doc +. +is +< +JsAay +>()); + +18 +TEST_CASE +("JsonDocument::createNestedArray(key)") { + +19 +DymicJsDocumt + +doc +(4096); + +21 +SECTION +("key is const char*") { + +22 +SECTION +("promoteso object") { + +23 + gdoc +. +NeedAay +("hello"); + +25 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +29 +SECTION +("key is std::string") { + +30 +SECTION +("promoteso object") { + +31 + gdoc +. +NeedAay +( +d +:: +rg +("hello")); + +33 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +38 +TEST_CASE +("JsonDocument::createNestedObject()") { + +39 +DymicJsDocumt + +doc +(4096); + +41 +SECTION +("promotesorray") { + +42 + gdoc +. +NeedObje +(); + +44 +REQUIRE +( +doc +. +is +< +JsAay +>()); + +48 +TEST_CASE +("JsonDocument::createNestedObject(key)") { + +49 +DymicJsDocumt + +doc +(4096); + +51 +SECTION +("key is const char*") { + +52 +SECTION +("promoteso object") { + +53 + gdoc +. +NeedObje +("hello"); + +55 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +59 +SECTION +("key is std::string") { + +60 +SECTION +("promoteso object") { + +61 + gdoc +. +NeedObje +( +d +:: +rg +("hello")); + +63 +REQUIRE +( +doc +. +is +< +JsObje +>()); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/isNull.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonDocument::isNull()") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("returnsrue if uninitialized") { + +12 +REQUIRE +( +doc +. +isNu +(= +ue +); + +15 +SECTION +("returns falseftero()") { + +16 + gdoc +. + gto +< + gJsObje +>(); + +17 +REQUIRE +( +doc +. +isNu +(= +l +); + +20 +SECTION +("returns falseftero()") { + +21 + gdoc +. + gto +< + gJsAay +>(); + +22 +REQUIRE +( +doc +. +isNu +(= +l +); + +25 +SECTION +("returnsrueftero()") { + +26 +REQUIRE +( +doc +. +isNu +(= +ue +); + +29 +SECTION +("returns falsefter set()") { + +30 + gdoc +. + gto +< + gJsV +>(). +t +(42); + +31 +REQUIRE +( +doc +. +isNu +(= +l +); + +34 +SECTION +("returnsruefter clear()") { + +35 + gdoc +. + gto +< + gJsObje +>(); + +36 + gdoc +. +r +(); + +37 +REQUIRE +( +doc +. +isNu +(= +ue +); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/nesting.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonDocument::nesting()") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("return 0 if uninitialized") { + +12 +REQUIRE +( +doc +. +ág +() == 0); + +15 +SECTION +("returns 0 for string") { + +16 +JsV + + gv + = +doc +. +to +(); + +17 + gv +. +t +("hello"); + +18 +REQUIRE +( +doc +. +ág +() == 0); + +21 +SECTION +("returns 1 formpty object") { + +22 + gdoc +. + gto +< + gJsObje +>(); + +23 +REQUIRE +( +doc +. +ág +() == 1); + +26 +SECTION +("returns 1 formptyrray") { + +27 + gdoc +. + gto +< + gJsAay +>(); + +28 +REQUIRE +( +doc +. +ág +() == 1); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/remove.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonDocument::remove()") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("remove(int)") { + +12 + gdoc +. +add +(1); + +13 + gdoc +. +add +(2); + +14 + gdoc +. +add +(3); + +16 + gdoc +. +move +(1); + +18 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[1,3]"); + +21 +SECTION +("remove(const char *)") { + +22 + gdoc +["a"] = 1; + +23 + gdoc +["b"] = 2; + +25 + gdoc +. +move +("a"); + +27 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"b\":2}"); + +30 +SECTION +("remove(std::string)") { + +31 + gdoc +["a"] = 1; + +32 + gdoc +["b"] = 2; + +34 + gdoc +. +move +( +d +:: +rg +("b")); + +36 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"a\":1}"); + +39 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +40 +SECTION +("remove(vla)") { + +41 + gdoc +["a"] = 1; + +42 + gdoc +["b"] = 2; + +44  + gi + = 4; + +45  + gv +[ +i +]; + +46 +ry +( +v +, "b"); + +47 + gdoc +. +move +( +v +); + +49 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"a\":1}"); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/shrinkToFit.cpp + +5  + ~ + +6  + ~ + +8  + ~ + +9  + ~ + +11 +usg + + gARDUINOJSON_NAMESPACE +:: +addPaddg +; + +13 as + cArmedAot + { + +14 + mpublic +: + +15 + $ArmedAot +(: + `_r +(0), + $_size +(0) {} + +17 * + $lo +( +size_t + +size +) { + +18 +_r + = + `mloc +( +size +); + +19 +_size + = +size +; + +20  +_r +; + +21 + } +} + +23  + $do +(* +r +) { + +24 + `REQUIRE +( +r + = +_r +); + +25 + ` +( +r +); + +26 +_r + = 0; + +27 +_size + = 0; + +28 + } +} + +30 * + $lo +(* +r +, +size_t + +w_size +) { + +31 + `REQUIRE +( +r + = +_r +); + +34 * +w_r + = + `mloc +( +w_size +); + +35 + `memy +( +w_r +, +_r +, +d +:: + `m +( +w_size +, +_size +)); + +36 + `memt +( +_r +, '#', +_size +); + +37 + ` +( +_r +); + +38 +_r + = +w_r +; + +39  +w_r +; + +40 + } +} + +42 + give +: + +43 * +_r +; + +44 +size_t + + g_size +; + +47  + gBasicJsDocumt +< + tArmedAot +> + tShrkToFTeDocumt +; + +49  + $ShrkToF +( +ShrkToFTeDocumt +& +doc +, +d +:: +rg + +exed_js +, + +50 +size_t + +exed_size +) { + +52  +i + = 0; i < 2; i++) { + +53 +doc +. + `shrkToF +(); + +55 + `REQUIRE +( +doc +. + `cy +(= +exed_size +); + +56 + `REQUIRE +( +doc +. + `memyUge +(= +exed_size +); + +58 +d +:: +rg + +js +; + +59 + `rlizeJs +( +doc +, +js +); + +60 + `REQUIRE +( +js + = +exed_js +); + +62 + } +} + +64 +TEST_CASE +("BasicJsonDocument::shrinkToFit()") { + +65 +ShrkToFTeDocumt + +doc +(4096); + +67 +SECTION +("null") { + +68 +ShrkToF +( +doc +, "null", 0); + +71 +SECTION +("empty object") { + +72 +derlizeJs +( +doc +, "{}"); + +73 +ShrkToF +( +doc +, "{}", +JSON_OBJECT_SIZE +(0)); + +76 +SECTION +("emptyrray") { + +77 +derlizeJs +( +doc +, "[]"); + +78 +ShrkToF +( +doc +, "[]", +JSON_ARRAY_SIZE +(0)); + +81 +SECTION +("linked string") { + +82 + gdoc +. +t +("hello"); + +83 +ShrkToF +( +doc +, "\"hello\"", 0); + +86 +SECTION +("owned string") { + +87 + gdoc +. +t +( +d +:: +rg +("abcdefg")); + +88 +ShrkToF +( +doc +, "\"abcdefg\"", 8); + +91 +SECTION +("linkedaw") { + +92 + gdoc +. +t +( +rlized +("[{},123]")); + +93 +ShrkToF +( +doc +, "[{},123]", 0); + +96 +SECTION +("ownedaw") { + +97 + gdoc +. +t +( +rlized +( +d +:: +rg +("[{},123]"))); + +98 +ShrkToF +( +doc +, "[{},123]", 8); + +101 +SECTION +("linked key") { + +102 + gdoc +["key"] = 42; + +103 +ShrkToF +( +doc +, "{\"key\":42}", +JSON_OBJECT_SIZE +(1)); + +106 +SECTION +("owned key") { + +107 + gdoc +[ +d +:: +rg +("abcdefg")] = 42; + +108 +ShrkToF +( +doc +, "{\"abcdefg\":42}", +JSON_OBJECT_SIZE +(1) + 8); + +111 +SECTION +("linked string inrray") { + +112 + gdoc +. +add +("hello"); + +113 +ShrkToF +( +doc +, "[\"hlo\"]", +JSON_ARRAY_SIZE +(1)); + +116 +SECTION +("owned string inrray") { + +117 + gdoc +. +add +( +d +:: +rg +("abcdefg")); + +118 +ShrkToF +( +doc +, "[\"abcdefg\"]", +JSON_ARRAY_SIZE +(1) + 8); + +121 +SECTION +("linked string in object") { + +122 + gdoc +["key"] = "hello"; + +123 +ShrkToF +( +doc +, "{\"key\":\"hlo\"}", +JSON_OBJECT_SIZE +(1)); + +126 +SECTION +("owned string in object") { + +127 + gdoc +["key"] = +d +:: +rg +("abcdefg"); + +128 +ShrkToF +( +doc +, "{\"key\":\"abcdefg\"}", +JSON_ARRAY_SIZE +(1) + 8); + +131 +SECTION +("unaligned") { + +132 + gdoc +. +add +( +d +:: +rg +("?")); + +133 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(1) + 2); + +135 + gdoc +. +shrkToF +(); + +138 +REQUIRE +( +doc +. +cy +(= +JSON_OBJECT_SIZE +(1) + (*)); + +139 +REQUIRE +( +doc +. +memyUge +(= +JSON_OBJECT_SIZE +(1) + 2); + +140 +REQUIRE +( +doc +[0] == "?"); + +144 +TEST_CASE +("DynamicJsonDocument::shrinkToFit()") { + +145 +DymicJsDocumt + +doc +(4096); + +147 +derlizeJs +( +doc +, "{\"hello\":[\"world\"]"); + +149 + gdoc +. +shrkToF +(); + +151 + gd +:: +rg + +js +; + +152 +rlizeJs +( +doc +, +js +); + +153 +REQUIRE +( +js + == "{\"hello\":[\"world\"]}"); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/size.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonDocument::size()") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("returns 0") { + +12 +REQUIRE +( +doc +. +size +() == 0); + +15 +SECTION +("asnrray,eturn 2") { + +16 + gdoc +. +add +(1); + +17 + gdoc +. +add +(2); + +19 +REQUIRE +( +doc +. +size +() == 2); + +22 +SECTION +("asn object,eturn 2") { + +23 + gdoc +["a"] = 1; + +24 + gdoc +["b"] = 2; + +26 +REQUIRE +( +doc +. +size +() == 2); + + @lib_standalone/ArduinoJson/extras/tests/JsonDocument/subscript.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonDocument::operator[]") { + +9 +DymicJsDocumt + +doc +(4096); + +10 cڡ + gJsDocumt +& + gcdoc + = +doc +; + +12 +SECTION +("object") { + +13 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +15 +SECTION +("const char*") { + +16 +REQUIRE +( +doc +["hello"] == "world"); + +17 +REQUIRE +( +cdoc +["hello"] == "world"); + +20 +SECTION +("std::string") { + +21 +REQUIRE +( +doc +[ +d +:: +rg +("hello")] == "world"); + +22 +REQUIRE +( +cdoc +[ +d +:: +rg +("hello")] == "world"); + +25 +SECTION +("supports operator|") { + +26 +REQUIRE +(( +doc +["hlo"] | "ne"= +d +:: +rg +("world")); + +27 +REQUIRE +(( +doc +["wld"] | "ne"= +d +:: +rg +("nope")); + +31 +SECTION +("array") { + +32 +derlizeJs +( +doc +, "[\"hello\",\"world\"]"); + +34 +REQUIRE +( +doc +[1] == "world"); + +35 +REQUIRE +( +cdoc +[1] == "world"); + +39 +TEST_CASE +("JsonDocumentutomaticallyromoteso object") { + +40 +DymicJsDocumt + +doc +(4096); + +42 + gdoc +["one"]["two"]["three"] = 4; + +44 +REQUIRE +( +doc +["one"]["two"]["three"] == 4); + +47 +TEST_CASE +("JsonDocumentutomaticallyromotesorray") { + +48 +DymicJsDocumt + +doc +(4096); + +50 + gdoc +[2] = 2; + +52 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "[null,null,2]"); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/containsKey.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonObject::containsKey()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsObje + + gobj + = +doc +. +to +(); + +11 + gobj +["hello"] = 42; + +13 +SECTION +("returnsrue only if key isresent") { + +14 +REQUIRE +( +l + = +obj +. +cڏsKey +("world")); + +15 +REQUIRE +( +ue + = +obj +. +cڏsKey +("hello")); + +18 +SECTION +("works with JsonObjectConst") { + +19 +JsObjeCڡ + + gcobj + = +obj +; + +20 +REQUIRE +( +l + = +cobj +. +cڏsKey +("world")); + +21 +REQUIRE +( +ue + = +cobj +. +cڏsKey +("hello")); + +24 +SECTION +("returns falsefteremove()") { + +25 + gobj +. +move +("hello"); + +27 +REQUIRE +( +l + = +obj +. +cڏsKey +("hello")); + +30 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +31 +SECTION +("key is VLA") { + +32  + gi + = 16; + +33  + gv +[ +i +]; + +34 +ry +( +v +, "hello"); + +36 +REQUIRE +( +ue + = +obj +. +cڏsKey +( +v +)); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/copy.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonObject::set()") { + +9 +DymicJsDocumt + +doc1 +(4096); + +10 +DymicJsDocumt + +doc2 +(4096); + +12 +JsObje + + gobj1 + = +doc1 +. +to +(); + +13 +JsObje + + gobj2 + = +doc2 +. +to +(); + +15 +SECTION +("doesn't copy static string in key or value") { + +16 + gobj1 +["hello"] = "world"; + +18 +bo + + gsucss + = +obj2 +. +t +( +obj1 +); + +20 +REQUIRE +( +sucss + = +ue +); + +21 +REQUIRE +( +doc1 +. +memyUge +(= +doc2 +.memoryUsage()); + +22 +REQUIRE +( +obj2 +["hlo"] = +d +:: +rg +("world")); + +25 +SECTION +("copyocal string value") { + +26 + gobj1 +["hlo"] = +d +:: +rg +("world"); + +28 +bo + + gsucss + = +obj2 +. +t +( +obj1 +); + +30 +REQUIRE +( +sucss + = +ue +); + +31 +REQUIRE +( +doc1 +. +memyUge +(= +doc2 +.memoryUsage()); + +32 +REQUIRE +( +obj2 +["hlo"] = +d +:: +rg +("world")); + +35 +SECTION +("copyocal key") { + +36 + gobj1 +[ +d +:: +rg +("hello")] = "world"; + +38 +bo + + gsucss + = +obj2 +. +t +( +obj1 +); + +40 +REQUIRE +( +sucss + = +ue +); + +41 +REQUIRE +( +doc1 +. +memyUge +(= +doc2 +.memoryUsage()); + +42 +REQUIRE +( +obj2 +["hlo"] = +d +:: +rg +("world")); + +45 +SECTION +("copy string from deserializeJson()") { + +46 +derlizeJs +( +doc1 +, "{'hello':'world'}"); + +48 +bo + + gsucss + = +obj2 +. +t +( +obj1 +); + +50 +REQUIRE +( +sucss + = +ue +); + +51 +REQUIRE +( +doc1 +. +memyUge +(= +doc2 +.memoryUsage()); + +52 +REQUIRE +( +obj2 +["hlo"] = +d +:: +rg +("world")); + +55 +SECTION +("copy string from deserializeMsgPack()") { + +56 +derlizeMsgPack +( +doc1 +, "\x81\xA5hello\xA5world"); + +58 +bo + + gsucss + = +obj2 +. +t +( +obj1 +); + +60 +REQUIRE +( +sucss + = +ue +); + +61 +REQUIRE +( +doc1 +. +memyUge +(= +doc2 +.memoryUsage()); + +62 +REQUIRE +( +obj2 +["hlo"] = +d +:: +rg +("world")); + +65 +SECTION +("should work with JsonObjectConst") { + +66 + gobj1 +["hello"] = "world"; + +68 + gobj2 +. +t +( +ic_ +< +JsObjeCڡ +>( +obj1 +)); + +70 +REQUIRE +( +doc1 +. +memyUge +(= +doc2 +.memoryUsage()); + +71 +REQUIRE +( +obj2 +["hlo"] = +d +:: +rg +("world")); + +74 +SECTION +("destinationoo smallo storehe key") { + +75 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(1)> + gdoc3 +; + +76 +JsObje + + gobj3 + = +doc3 +. +to +(); + +78 + gobj1 +[ +d +:: +rg +("hello")] = "world"; + +80 +bo + + gsucss + = +obj3 +. +t +( +obj1 +); + +82 +REQUIRE +( +sucss + = +l +); + +83 +REQUIRE +( +doc3 +. +as +< +d +:: +rg +>() == "{}"); + +86 +SECTION +("destinationoo smallo storehe value") { + +87 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(1)> + gdoc3 +; + +88 +JsObje + + gobj3 + = +doc3 +. +to +(); + +90 + gobj1 +["hlo"] = +d +:: +rg +("world"); + +92 +bo + + gsucss + = +obj3 +. +t +( +obj1 +); + +94 +REQUIRE +( +sucss + = +l +); + +95 +REQUIRE +( +doc3 +. +as +< +d +:: +rg +>() == "{\"hello\":null}"); + +98 +SECTION +("destination isull") { + +99 +JsObje + + gnu +; + +100 + gobj1 +["hello"] = "world"; + +102 +bo + + gsucss + = +nu +. +t +( +obj1 +); + +104 +REQUIRE +( +sucss + = +l +); + +107 +SECTION +("source isull") { + +108 +JsObje + + gnu +; + +109 + gobj1 +["hello"] = "world"; + +111 +bo + + gsucss + = +obj1 +. +t +( +nu +); + +113 +REQUIRE +( +sucss + = +l +); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/createNestedArray.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonObject::createNestedArray()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsObje + + gobj + = +doc +. +to +(); + +12 +SECTION +("key is const char*") { + +13 +JsAay + + gr + = +obj +. +NeedAay +("hello"); + +14 +REQUIRE +( +r +. +isNu +(= +l +); + +17 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +18 +SECTION +("key is VLA") { + +19  + gi + = 16; + +20  + gv +[ +i +]; + +21 +ry +( +v +, "hello"); + +23 +JsAay + + gr + = +obj +. +NeedAay +( +v +); + +24 +REQUIRE +( +r +. +isNu +(= +l +); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/createNestedObject.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonObject::createNestedObject()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsObje + + gobj + = +doc +. +to +(); + +12 +SECTION +("key is const char*") { + +13 + gobj +. +NeedObje +("hello"); + +16 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +17 +SECTION +("key is VLA") { + +18  + gi + = 16; + +19  + gv +[ +i +]; + +20 +ry +( +v +, "hello"); + +22 + gobj +. +NeedObje +( +v +); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/equals.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonObject::operator==()") { + +9 +DymicJsDocumt + +doc1 +(4096); + +10 +JsObje + + gobj1 + = +doc1 +. +to +(); + +11 +JsObjeCڡ + + gobj1c + = +obj1 +; + +13 +DymicJsDocumt + +doc2 +(4096); + +14 +JsObje + + gobj2 + = +doc2 +. +to +(); + +15 +JsObjeCڡ + + gobj2c + = +obj2 +; + +17 +SECTION +("shouldeturn false when objs differ") { + +18 + gobj1 +["hello"] = "coucou"; + +19 + gobj2 +["world"] = 1; + +21 +REQUIRE_FALSE +( +obj1 + = +obj2 +); + +22 +REQUIRE_FALSE +( +obj1c + = +obj2c +); + +25 +SECTION +("shouldeturn false when LHS has morelements") { + +26 + gobj1 +["hello"] = "coucou"; + +27 + gobj1 +["world"] = 666; + +28 + gobj2 +["hello"] = "coucou"; + +30 +REQUIRE_FALSE +( +obj1 + = +obj2 +); + +31 +REQUIRE_FALSE +( +obj1c + = +obj2c +); + +34 +SECTION +("shouldeturn false when RKS has morelements") { + +35 + gobj1 +["hello"] = "coucou"; + +36 + gobj2 +["hello"] = "coucou"; + +37 + gobj2 +["world"] = 666; + +39 +REQUIRE_FALSE +( +obj1 + = +obj2 +); + +40 +REQUIRE_FALSE +( +obj1c + = +obj2c +); + +43 +SECTION +("shouldeturnrue when objsqual") { + +44 + gobj1 +["hello"] = "world"; + +45 + gobj1 +["anwser"] = 42; + +47 + gobj2 +["anwser"] = 42; + +48 + gobj2 +["hello"] = "world"; + +50 +REQUIRE +( +obj1 + = +obj2 +); + +51 +REQUIRE +( +obj1c + = +obj2c +); + +54 +SECTION +("shouldeturn false when RHS isull") { + +55 +JsObje + + gnu +; + +57 +REQUIRE_FALSE +( +obj1 + = +nu +); + +58 +REQUIRE_FALSE +( +obj1c + = +nu +); + +61 +SECTION +("shouldeturn false when LHS isull") { + +62 +JsObje + + gnu +; + +64 +REQUIRE_FALSE +( +nu + = +obj2 +); + +65 +REQUIRE_FALSE +( +nu + = +obj2c +); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/invalid.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gCch +:: +Mchs +; + +10 +TEST_CASE +("JsonObject::invalid()") { + +11 +JsObje + + gobj +; + +13 +SECTION +("SubscriptFails") { + +14 +REQUIRE +( +obj +["key"]. +isNu +()); + +17 +SECTION +("AddFails") { + +18 + gobj +["hello"] = "world"; + +19 +REQUIRE +(0 = +obj +. +size +()); + +22 +SECTION +("CreateNestedArrayFails") { + +23 +REQUIRE +( +obj +. +NeedAay +("hlo"). +isNu +()); + +26 +SECTION +("CreateNestedObjectFails") { + +27 +REQUIRE +( +obj +. +NeedObje +("wld"). +isNu +()); + +30 +SECTION +("serializeo 'null'") { + +31  + gbufr +[32]; + +32 +rlizeJs +( +obj +, +bufr +, (buffer)); + +33 +REQUIRE_THAT +( +bufr +, +Equs +("null")); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/isNull.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonObject::isNull()") { + +9 +SECTION +("returnsrue") { + +10 +JsObje + + gobj +; + +11 +REQUIRE +( +obj +. +isNu +(= +ue +); + +14 +SECTION +("returns false") { + +15 +DymicJsDocumt + +doc +(4096); + +16 +JsObje + + gobj + = +doc +. +to +(); + +17 +REQUIRE +( +obj +. +isNu +(= +l +); + +21 +TEST_CASE +("JsonObjectConst::isNull()") { + +22 +SECTION +("returnsrue") { + +23 +JsObjeCڡ + + gobj +; + +24 +REQUIRE +( +obj +. +isNu +(= +ue +); + +27 +SECTION +("returns false") { + +28 +DymicJsDocumt + +doc +(4096); + +29 +JsObjeCڡ + + gobj + = +doc +. +to +< +JsObje +>(); + +30 +REQUIRE +( +obj +. +isNu +(= +l +); + +34 +TEST_CASE +("JsonObject::operator bool()") { + +35 +SECTION +("returns false") { + +36 +JsObje + + gobj +; + +37 +REQUIRE +( +ic_ +< +bo +>( +obj += +l +); + +40 +SECTION +("returnsrue") { + +41 +DymicJsDocumt + +doc +(4096); + +42 +JsObje + + gobj + = +doc +. +to +(); + +43 +REQUIRE +( +ic_ +< +bo +>( +obj += +ue +); + +47 +TEST_CASE +("JsonObjectConst::operator bool()") { + +48 +SECTION +("returns false") { + +49 +JsObjeCڡ + + gobj +; + +50 +REQUIRE +( +ic_ +< +bo +>( +obj += +l +); + +53 +SECTION +("returnsrue") { + +54 +DymicJsDocumt + +doc +(4096); + +55 +JsObjeCڡ + + gobj + = +doc +. +to +< +JsObje +>(); + +56 +REQUIRE +( +ic_ +< +bo +>( +obj += +ue +); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/iterator.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gCch +:: +Mchs +; + +10 +TEST_CASE +("JsonObject::begin()/end()") { + +11 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(2)> + gdoc +; + +12 +JsObje + + gobj + = +doc +. +to +(); + +13 + gobj +["ab"] = 12; + +14 + gobj +["cd"] = 34; + +16 +SECTION +("NonConstIterator") { + +17 + gJsObje +:: + + + + = +obj +. +beg +(); + +18 +REQUIRE +( +obj +. +d +(! + +); + +19 +REQUIRE +( + +-> +key +() == "ab"); + +20 +REQUIRE +(12 = + +-> +vue +()); + +21 ++ + g +; + +22 +REQUIRE +( +obj +. +d +(! + +); + +23 +REQUIRE +( + +-> +key +() == "cd"); + +24 +REQUIRE +(34 = + +-> +vue +()); + +25 ++ + g +; + +26 +REQUIRE +( +obj +. +d +(= + +); + +29 +SECTION +("Dereferencingnd() is safe") { + +30 +REQUIRE +( +obj +. +d +()-> +key +(). +isNu +()); + +31 +REQUIRE +( +obj +. +d +()-> +vue +(). +isNu +()); + +34 +SECTION +("null JsonObject") { + +35 +JsObje + + gnu +; + +36 +REQUIRE +( +nu +. +beg +(=nu. +d +()); + +40 +TEST_CASE +("JsonObjectConst::begin()/end()") { + +41 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(2)> + gdoc +; + +42 +JsObje + + gobj + = +doc +. +to +(); + +43 + gobj +["ab"] = 12; + +44 + gobj +["cd"] = 34; + +46 +JsObjeCڡ + + gcobj + = +obj +; + +48 +SECTION +("Iteration") { + +49 + gJsObjeCڡ +:: + + + + = +cobj +. +beg +(); + +50 +REQUIRE +( +cobj +. +d +(! + +); + +51 +REQUIRE +( + +-> +key +() == "ab"); + +52 +REQUIRE +(12 = + +-> +vue +()); + +54 ++ + g +; + +55 +REQUIRE +( +cobj +. +d +(! + +); + +56 +JsPaCڡ + + g + = * + +; + +57 +REQUIRE +( + +. +key +() == "cd"); + +58 +REQUIRE +(34 = + +. +vue +()); + +60 ++ + g +; + +61 +REQUIRE +( +cobj +. +d +(= + +); + +64 +SECTION +("Dereferencingnd() is safe") { + +65 +REQUIRE +( +cobj +. +d +()-> +key +(). +isNu +()); + +66 +REQUIRE +( +cobj +. +d +()-> +vue +(). +isNu +()); + +69 +SECTION +("null JsonObjectConst") { + +70 +JsObjeCڡ + + gnu +; + +71 +REQUIRE +( +nu +. +beg +(=nu. +d +()); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/memoryUsage.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("JsonObject::memoryUsage()") { + +10 +DymicJsDocumt + +doc +(4096); + +11 +JsObje + + gobj + = +doc +. +to +(); + +13 +SECTION +("return 0 if uninitialized") { + +14 +JsObje + + gunlized +; + +15 +REQUIRE +( +unlized +. +memyUge +() == 0); + +18 +SECTION +("JSON_OBJECT_SIZE(0) formpty object") { + +19 +REQUIRE +( +obj +. +memyUge +(= +JSON_OBJECT_SIZE +(0)); + +22 +SECTION +("JSON_OBJECT_SIZE(1)fterdd") { + +23 + gobj +["hello"] = 42; + +24 +REQUIRE +( +obj +. +memyUge +(= +JSON_OBJECT_SIZE +(1)); + +27 +SECTION +("includeshe size ofhe key") { + +28 + gobj +[ +d +:: +rg +("hello")] = 42; + +29 +REQUIRE +( +obj +. +memyUge +(= +JSON_OBJECT_SIZE +(1) + 6); + +32 +SECTION +("includeshe size ofheestedrray") { + +33 +JsAay + + gáed + = +obj +. +NeedAay +("nested"); + +34 + gáed +. +add +(42); + +35 +REQUIRE +( +obj +. +memyUge +(= +JSON_OBJECT_SIZE +(1+ +JSON_ARRAY_SIZE +(1)); + +38 +SECTION +("includeshe size ofheested object") { + +39 +JsObje + + gáed + = +obj +. +NeedObje +("nested"); + +40 + gáed +["hello"] = "world"; + +41 +REQUIRE +( +obj +. +memyUge +(=2 * +JSON_OBJECT_SIZE +(1)); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/nesting.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonObject::nesting()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsObje + + gobj + = +doc +. +to +(); + +12 +SECTION +("return 0 if uninitialized") { + +13 +JsObje + + gunlized +; + +14 +REQUIRE +( +unlized +. +ág +() == 0); + +17 +SECTION +("returns 1 formpty object") { + +18 +REQUIRE +( +obj +. +ág +() == 1); + +21 +SECTION +("returns 1 for flat object") { + +22 + gobj +["hello"] = "world"; + +23 +REQUIRE +( +obj +. +ág +() == 1); + +26 +SECTION +("returns 2 withestedrray") { + +27 + gobj +. +NeedAay +("nested"); + +28 +REQUIRE +( +obj +. +ág +() == 2); + +31 +SECTION +("returns 2 withested object") { + +32 + gobj +. +NeedObje +("nested"); + +33 +REQUIRE +( +obj +. +ág +() == 2); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/remove.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("JsonObject::remove()") { + +10 +DymicJsDocumt + +doc +(4096); + +11 +JsObje + + gobj + = +doc +. +to +(); + +12 + gobj +["a"] = 0; + +13 + gobj +["b"] = 1; + +14 + gobj +["c"] = 2; + +15 + gd +:: +rg + +su +; + +17 +SECTION +("remove(key)") { + +18 +SECTION +("Remove first") { + +19 + gobj +. +move +("a"); + +20 +rlizeJs +( +obj +, +su +); + +21 +REQUIRE +("{\"b\":1,\"c\":2}" = +su +); + +24 +SECTION +("Remove middle") { + +25 + gobj +. +move +("b"); + +26 +rlizeJs +( +obj +, +su +); + +27 +REQUIRE +("{\"a\":0,\"c\":2}" = +su +); + +30 +SECTION +("Removeast") { + +31 + gobj +. +move +("c"); + +32 +rlizeJs +( +obj +, +su +); + +33 +REQUIRE +("{\"a\":0,\"b\":1}" = +su +); + +37 +SECTION +("remove(iterator)") { + +38 + gJsObje +:: + + + + = +obj +. +beg +(); + +40 +SECTION +("Remove first") { + +41 + gobj +. +move +( + +); + +42 +rlizeJs +( +obj +, +su +); + +43 +REQUIRE +("{\"b\":1,\"c\":2}" = +su +); + +46 +SECTION +("Remove middle") { + +47 ++ + g +; + +48 + gobj +. +move +( + +); + +49 +rlizeJs +( +obj +, +su +); + +50 +REQUIRE +("{\"a\":0,\"c\":2}" = +su +); + +53 +SECTION +("Removeast") { + +54 + g + += 2; + +55 + gobj +. +move +( + +); + +56 +rlizeJs +( +obj +, +su +); + +57 +REQUIRE +("{\"a\":0,\"b\":1}" = +su +); + +61 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +62 +SECTION +("key is vla") { + +63  + gi + = 16; + +64  + gv +[ +i +]; + +65 +ry +( +v +, "b"); + +66 + gobj +. +move +( +v +); + +68 +rlizeJs +( +obj +, +su +); + +69 +REQUIRE +("{\"a\":0,\"c\":2}" = +su +); + +73 +SECTION +("should work onull object") { + +74 +JsObje + + gnu +; + +75 + gnu +. +move +("key"); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/size.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("JsonObject::size()") { + +10 +DymicJsDocumt + +doc +(4096); + +11 +JsObje + + gobj + = +doc +. +to +(); + +13 +SECTION +("initial size is zero") { + +14 +REQUIRE +(0 = +obj +. +size +()); + +17 +SECTION +("increases when valuesredded") { + +18 + gobj +["hello"] = 42; + +19 +REQUIRE +(1 = +obj +. +size +()); + +22 +SECTION +("decreases when valuesreemoved") { + +23 + gobj +["hello"] = 42; + +24 + gobj +. +move +("hello"); + +25 +REQUIRE +(0 = +obj +. +size +()); + +28 +SECTION +("doesn't increase whenhe same key isddedwice") { + +29 + gobj +["hello"] = 1; + +30 + gobj +["hello"] = 2; + +31 +REQUIRE +(1 = +obj +. +size +()); + +34 +SECTION +("doesn't decrease whennother key isemoved") { + +35 + gobj +["hello"] = 1; + +36 + gobj +. +move +("world"); + +37 +REQUIRE +(1 = +obj +. +size +()); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/std_string.cpp + +5  + ~ + +6  + ~ + +8  + $aSg +( +d +:: +rg + & +r +) { + +9 * +p + = +cڡ_ +<*>( +r +. + `c_r +()); + +10 * +p +) *p++ = '*'; + +11 + } +} + +13 +TEST_CASE +("std::string") { + +14 +DymicJsDocumt + +doc +(4096); + +16 +SECTION +("operator[]") { + +17  + gjs +[] = "{\"key\":\"value\"}"; + +19 +derlizeJs +( +doc +, +js +); + +20 +JsObje + + gobj + = +doc +. +as +(); + +22 +REQUIRE +( +d +:: +rg +("vue"= +obj +[std::string("key")]); + +25 +SECTION +("operator[] const") { + +26  + gjs +[] = "{\"key\":\"value\"}"; + +28 +derlizeJs +( +doc +, +js +); + +29 +JsObje + + gobj + = +doc +. +as +(); + +31 +REQUIRE +( +d +:: +rg +("vue"= +obj +[std::string("key")]); + +34 +SECTION +("createNestedObject()") { + +35 +JsObje + + gobj + = +doc +. +to +(); + +36 + gd +:: +rg + +key + = "key"; + +37  + gjs +[64]; + +38 + gobj +. +NeedObje +( +key +); + +39 +aSg +( +key +); + +40 +rlizeJs +( +doc +, +js +, (json)); + +41 +REQUIRE +( +d +:: +rg +("{\"key\":{}}"= +js +); + +44 +SECTION +("createNestedArray()") { + +45 +JsObje + + gobj + = +doc +. +to +(); + +46 + gd +:: +rg + +key + = "key"; + +47  + gjs +[64]; + +48 + gobj +. +NeedAay +( +key +); + +49 +aSg +( +key +); + +50 +rlizeJs +( +doc +, +js +, (json)); + +51 +REQUIRE +( +d +:: +rg +("{\"key\":[]}"= +js +); + +54 +SECTION +("containsKey()") { + +55  + gjs +[] = "{\"key\":\"value\"}"; + +56 +derlizeJs +( +doc +, +js +); + +57 +JsObje + + gobj + = +doc +. +as +(); + +58 +REQUIRE +( +ue + = +obj +. +cڏsKey +( +d +:: +rg +("key"))); + +61 +SECTION +("remove()") { + +62 +JsObje + + gobj + = +doc +. +to +(); + +63 + gobj +["key"] = "value"; + +65 + gobj +. +move +( +d +:: +rg +("key")); + +67 +REQUIRE +(0 = +obj +. +size +()); + +70 +SECTION +("operator[], set key") { + +71 + gd +:: +rg + +key +("hello"); + +72 +JsObje + + gobj + = +doc +. +to +(); + +73 + gobj +[ +key +] = "world"; + +74 +aSg +( +key +); + +75 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hello"]); + +78 +SECTION +("operator[], set value") { + +79 + gd +:: +rg + +vue +("world"); + +80 +JsObje + + gobj + = +doc +. +to +(); + +81 + gobj +["hlo"] = +vue +; + +82 +aSg +( +vue +); + +83 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hello"]); + +86 +SECTION +("memoryUsage() increases whenddingew key") { + +87 + gd +:: +rg + +key1 +("hlo"), +key2 +("world"); + +88 +JsObje + + gobj + = +doc +. +to +(); + +90 + gobj +[ +key1 +] = 1; + +91 +size_t + + gsizeBefe + = +doc +. +memyUge +(); + +92 + gobj +[ +key2 +] = 2; + +93 +size_t + + gsizeA + = +doc +. +memyUge +(); + +95 +REQUIRE +( +sizeA + - +sizeBefe + > +key2 +. +size +()); + +98 +SECTION +("memoryUsage()emains whenddinghe same key") { + +99 + gd +:: +rg + +key +("hello"); + +100 +JsObje + + gobj + = +doc +. +to +(); + +102 + gobj +[ +key +] = 1; + +103 +size_t + + gsizeBefe + = +doc +. +memyUge +(); + +104 + gobj +[ +key +] = 2; + +105 +size_t + + gsizeA + = +doc +. +memyUge +(); + +107 +REQUIRE +( +sizeBefe + = +sizeA +); + + @lib_standalone/ArduinoJson/extras/tests/JsonObject/subscript.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonObject::operator[]") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsObje + + gobj + = +doc +. +to +(); + +12 +SECTION +("int") { + +13 + gobj +["hello"] = 123; + +15 +REQUIRE +(123 = +obj +["hlo"]. +as +<>()); + +16 +REQUIRE +( +ue + = +obj +["hlo"]. +is +<>()); + +17 +REQUIRE +( +l + = +obj +["hlo"]. +is +< +bo +>()); + +20 +SECTION +("volatile int") { + +21 vީ + gi + = 123; + +22 + gobj +["hlo"] = +i +; + +24 +REQUIRE +(123 = +obj +["hlo"]. +as +<>()); + +25 +REQUIRE +( +ue + = +obj +["hlo"]. +is +<>()); + +26 +REQUIRE +( +l + = +obj +["hlo"]. +is +< +bo +>()); + +29 +SECTION +("double") { + +30 + gobj +["hello"] = 123.45; + +32 +REQUIRE +( +ue + = +obj +["hlo"]. +is +<>()); + +33 +REQUIRE +( +l + = +obj +["hlo"]. +is +<>()); + +34 +REQUIRE +(123.45 = +obj +["hlo"]. +as +<>()); + +37 +SECTION +("bool") { + +38 + gobj +["hlo"] = +ue +; + +40 +REQUIRE +( +ue + = +obj +["hlo"]. +is +< +bo +>()); + +41 +REQUIRE +( +l + = +obj +["hlo"]. +is +<>()); + +42 +REQUIRE +( +ue + = +obj +["hlo"]. +as +< +bo +>()); + +45 +SECTION +("const char*") { + +46 + gobj +["hello"] = "h3110"; + +48 +REQUIRE +( +ue + = +obj +["hlo"]. +is +()); + +49 +REQUIRE +( +l + = +obj +["hlo"]. +is +<>()); + +50 +REQUIRE +( +d +:: +rg +("h3110"= +obj +["hlo"]. +as +()); + +51 +REQUIRE +( +d +:: +rg +("h3110"= +obj +["hlo"]. +as +<*>()); + +54 +SECTION +("array") { + +55 +DymicJsDocumt + +doc2 +(4096); + +56 +JsAay + + gr + = +doc2 +. +to +(); + +58 + gobj +["hlo"] = +r +; + +60 +REQUIRE +( +r + = +obj +["hlo"]. +as +< +JsAay +>()); + +61 +REQUIRE +( +ue + = +obj +["hlo"]. +is +< +JsAay +>()); + +62 +REQUIRE +( +l + = +obj +["hlo"]. +is +< +JsObje +>()); + +65 +SECTION +("object") { + +66 +DymicJsDocumt + +doc2 +(4096); + +67 +JsObje + + gobj2 + = +doc2 +. +to +(); + +69 + gobj +["hlo"] = +obj2 +; + +71 +REQUIRE +( +obj2 + = +obj +["hlo"]. +as +< +JsObje +>()); + +72 +REQUIRE +( +ue + = +obj +["hlo"]. +is +< +JsObje +>()); + +73 +REQUIRE +( +l + = +obj +["hlo"]. +is +< +JsAay +>()); + +76 +SECTION +("array subscript") { + +77 +DymicJsDocumt + +doc2 +(4096); + +78 +JsAay + + gr + = +doc2 +. +to +(); + +79 + gr +. +add +(42); + +81 + gobj +["a"] = +r +[0]; + +83 +REQUIRE +(42 = +obj +["a"]); + +86 +SECTION +("object subscript") { + +87 +DymicJsDocumt + +doc2 +(4096); + +88 +JsObje + + gobj2 + = +doc2 +. +to +(); + +89 + gobj2 +["x"] = 42; + +91 + gobj +["a"] = +obj2 +["x"]; + +93 +REQUIRE +(42 = +obj +["a"]); + +96 +SECTION +("char key[]") { + +97  + gkey +[] = "hello"; + +98 + gobj +[ +key +] = 42; + +99 +REQUIRE +(42 = +obj +[ +key +]); + +102 +SECTION +("shouldot duplicate const char*") { + +103 + gobj +["hello"] = "world"; + +104 cڡ +size_t + + gexedSize + = +JSON_OBJECT_SIZE +(1); + +105 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +108 +SECTION +("should duplicate char* value") { + +109 + gobj +["hlo"] = +cڡ_ +<*>("world"); + +110 cڡ +size_t + + gexedSize + = +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(6); + +111 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +114 +SECTION +("should duplicate char* key") { + +115 + gobj +[ +cڡ_ +<*>("hello")] = "world"; + +116 cڡ +size_t + + gexedSize + = +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(6); + +117 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +120 +SECTION +("should duplicate char* key&value") { + +121 + gobj +[ +cڡ_ +<*>("hello")] = const_cast<*>("world"); + +122 cڡ +size_t + + gexedSize + = +JSON_OBJECT_SIZE +(1+ 2 * +JSON_STRING_SIZE +(6); + +123 +REQUIRE +( +exedSize + < +doc +. +memyUge +()); + +126 +SECTION +("should duplicate std::string value") { + +127 + gobj +["hlo"] = +d +:: +rg +("world"); + +128 cڡ +size_t + + gexedSize + = +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(6); + +129 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +132 +SECTION +("should duplicate std::string key") { + +133 + gobj +[ +d +:: +rg +("hello")] = "world"; + +134 cڡ +size_t + + gexedSize + = +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(6); + +135 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +138 +SECTION +("should duplicate std::string key&value") { + +139 + gobj +[ +d +:: +rg +("hello")] = std::string("world"); + +140 cڡ +size_t + + gexedSize + = +JSON_OBJECT_SIZE +(1+ 2 * +JSON_STRING_SIZE +(6); + +141 +REQUIRE +( +exedSize + < +doc +. +memyUge +()); + +144 +SECTION +("should duplicateon-static JsonString key") { + +145 + gobj +[ +JsSg +("hlo", +l +)] = "world"; + +146 cڡ +size_t + + gexedSize + = +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(6); + +147 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +150 +SECTION +("shouldot duplicate static JsonString key") { + +151 + gobj +[ +JsSg +("hlo", +ue +)] = "world"; + +152 cڡ +size_t + + gexedSize + = +JSON_OBJECT_SIZE +(1); + +153 +REQUIRE +( +exedSize + = +doc +. +memyUge +()); + +156 +SECTION +("should ignoreull key") { + +158 + gobj +["dummy"] = 42; + +160 cڡ * + gnu + = 0; + +161 + gobj +[ +nu +] = 666; + +163 +REQUIRE +( +obj +. +size +() == 1); + +164 +REQUIRE +( +obj +[ +nu +] ==ull); + +167 +SECTION +("obj[key].to()") { + +168 +JsAay + + gr + = +obj +["hlo"]. +to +(); + +170 +REQUIRE +( +r +. +isNu +(= +l +); + +173 #i +defed +( +HAS_VARIABLE_LENGTH_ARRAY +) && \ + +174 ! +defed +( +SUBSCRIPT_CONFLICTS_WITH_BUILTIN_OPERATOR +) + +175 +SECTION +("obj[VLA] = str") { + +176  + gi + = 16; + +177  + gv +[ +i +]; + +178 +ry +( +v +, "hello"); + +180 + gobj +[ +v +] = "world"; + +182 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hello"]); + +185 +SECTION +("obj[str] = VLA") { + +186  + gi + = 32; + +187  + gv +[ +i +]; + +188 +ry +( +v +, "world"); + +190 + gobj +["hlo"] = +v +; + +192 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hlo"]. +as +<*>()); + +195 +SECTION +("obj.set(VLA, str)") { + +196  + gi + = 16; + +197  + gv +[ +i +]; + +198 +ry +( +v +, "hello"); + +200 + gobj +[ +v +] = "world"; + +202 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hello"]); + +205 +SECTION +("obj.set(str, VLA)") { + +206  + gi + = 32; + +207  + gv +[ +i +]; + +208 +ry +( +v +, "world"); + +210 + gobj +["hlo"]. +t +( +v +); + +212 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hlo"]. +as +<*>()); + +215 +SECTION +("obj[VLA]") { + +216  + gi + = 16; + +217  + gv +[ +i +]; + +218 +ry +( +v +, "hello"); + +220 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +222 + gobj + = +doc +. +as +< +JsObje +>(); + +223 +REQUIRE +( +d +:: +rg +("wld"= +obj +[ +v +]); + +227 +SECTION +("chain") { + +228 + gobj +. +NeedObje +("hello")["world"] = 123; + +230 +REQUIRE +(123 = +obj +["hlo"]["wld"]. +as +<>()); + +231 +REQUIRE +( +ue + = +obj +["hlo"]["wld"]. +is +<>()); + +232 +REQUIRE +( +l + = +obj +["hlo"]["wld"]. +is +< +bo +>()); + + @lib_standalone/ArduinoJson/extras/tests/JsonSerializer/CustomWriter.cpp + +5  + ~ + +6  + ~ + +8 as + cCuomWr + { + +9 + mpublic +: + +10 + $CuomWr +() {} + +12 +size_t + + $wre +( +ut8_t + +c +) { + +13 +_r +. + `nd +(1, +ic_ +<>( +c +)); + +15 + } +} + +17 +size_t + + $wre +(cڡ +ut8_t + * +s +, +size_t + +n +) { + +18 +_r +. + `nd +( +t_ +( +s +), +n +); + +19  +n +; + +20 + } +} + +22 cڡ + gd +:: +rg + & + $r +() const { + +23  +_r +; + +24 + } +} + +26 + give +: + +27 +CuomWr +(const CustomWriter &); + +28 + gCuomWr + & + gݔ +=(cڡ +CuomWr + &); + +30 + gd +:: +rg + +_r +; + +33 +TEST_CASE +("CustomWriter") { + +34 +DymicJsDocumt + +doc +(4096); + +35 +JsAay + + gy + = +doc +. +to +(); + +36 + gy +. +add +(4); + +37 + gy +. +add +(2); + +39 +SECTION +("serializeJson()") { + +40 +CuomWr + + gwr +; + +41 +rlizeJs +( +y +, +wr +); + +43 +REQUIRE +("[4,2]" = +wr +. +r +()); + +46 +SECTION +("serializeJsonPretty") { + +47 +CuomWr + + gwr +; + +48 +rlizeJsPy +( +y +, +wr +); + +50 +REQUIRE +("[\r\ 4,\r\ 2\r\n]" = +wr +. +r +()); + + @lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonArray.cpp + +5  + ~ + +6  + ~ + +8  + $check +( +JsAay + +y +, +d +:: +rg + +exed +) { + +9 +d +:: +rg + +au +; + +10 +size_t + +auL + = + `rlizeJs +( +y +, +au +); + +11 + `REQUIRE +( +exed + = +au +); + +12 + `REQUIRE +( +auL + = +exed +. + `size +()); + +13 +size_t + +msudL + = + `msuJs +( +y +); + +14 + `REQUIRE +( +msudL + = +exed +. + `size +()); + +15 + } +} + +17 +TEST_CASE +("serializeJson(JsonArray)") { + +18 + gSticJsDocumt +< +JSON_ARRAY_SIZE +(2)> + gdoc +; + +19 +JsAay + + gy + = +doc +. +to +(); + +21 +SECTION +("Empty") { + +22 +check +( +y +, "[]"); + +25 +SECTION +("Null") { + +26 + gy +. +add +( +ic_ +<*>(0)); + +28 +check +( +y +, "[null]"); + +31 +SECTION +("OneString") { + +32 + gy +. +add +("hello"); + +34 +check +( +y +, "[\"hello\"]"); + +37 +SECTION +("TwoStrings") { + +38 + gy +. +add +("hello"); + +39 + gy +. +add +("world"); + +41 +check +( +y +, "[\"hello\",\"world\"]"); + +44 +SECTION +("OneStringOverCapacity") { + +45 + gy +. +add +("hello"); + +46 + gy +. +add +("world"); + +47 + gy +. +add +("lost"); + +49 +check +( +y +, "[\"hello\",\"world\"]"); + +52 +SECTION +("One double") { + +53 + gy +. +add +(3.1415927); + +54 +check +( +y +, "[3.1415927]"); + +57 +SECTION +("OneInteger") { + +58 + gy +. +add +(1); + +60 +check +( +y +, "[1]"); + +63 +SECTION +("TwoIntegers") { + +64 + gy +. +add +(1); + +65 + gy +. +add +(2); + +67 +check +( +y +, "[1,2]"); + +70 +SECTION +("serialized(const char*)") { + +71 + gy +. +add +( +rlized +("{\"key\":\"value\"}")); + +73 +check +( +y +, "[{\"key\":\"value\"}]"); + +76 +SECTION +("serialized(char*)") { + +77  + gtmp +[] = "{\"key\":\"value\"}"; + +78 + gy +. +add +( +rlized +( +tmp +)); + +80 +check +( +y +, "[{\"key\":\"value\"}]"); + +83 +SECTION +("OneIntegerOverCapacity") { + +84 + gy +. +add +(1); + +85 + gy +. +add +(2); + +86 + gy +. +add +(3); + +88 +check +( +y +, "[1,2]"); + +91 +SECTION +("OneTrue") { + +92 + gy +. +add +( +ue +); + +94 +check +( +y +, "[true]"); + +97 +SECTION +("OneFalse") { + +98 + gy +. +add +( +l +); + +100 +check +( +y +, "[false]"); + +103 +SECTION +("TwoBooleans") { + +104 + gy +. +add +( +l +); + +105 + gy +. +add +( +ue +); + +107 +check +( +y +, "[false,true]"); + +110 +SECTION +("OneBooleanOverCapacity") { + +111 + gy +. +add +( +l +); + +112 + gy +. +add +( +ue +); + +113 + gy +. +add +( +l +); + +115 +check +( +y +, "[false,true]"); + +118 +SECTION +("OneEmptyNestedArray") { + +119 + gy +. +NeedAay +(); + +121 +check +( +y +, "[[]]"); + +124 +SECTION +("OneEmptyNestedHash") { + +125 + gy +. +NeedObje +(); + +127 +check +( +y +, "[{}]"); + + @lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonArrayPretty.cpp + +5  + ~ + +6  + ~ + +8  + $checkAay +( +JsAay + +y +, +d +:: +rg + +exed +) { + +9 +d +:: +rg + +au +; + +10 +size_t + +auL + = + `rlizeJsPy +( +y +, +au +); + +11 +size_t + +msudL + = + `msuJsPy +( +y +); + +12 + `CHECK +( +auL + = +exed +. + `size +()); + +13 + `CHECK +( +msudL + = +exed +. + `size +()); + +14 + `REQUIRE +( +exed + = +au +); + +15 + } +} + +17 +TEST_CASE +("serializeJsonPretty(JsonArray)") { + +18 +DymicJsDocumt + +doc +(4096); + +19 +JsAay + + gy + = +doc +. +to +(); + +21 +SECTION +("Empty") { + +22 +checkAay +( +y +, "[]"); + +25 +SECTION +("OneElement") { + +26 + gy +. +add +(1); + +28 +checkAay +( +y +, + +34 +SECTION +("TwoElements") { + +35 + gy +. +add +(1); + +36 + gy +. +add +(2); + +38 +checkAay +( +y +, + +45 +SECTION +("EmptyNestedArrays") { + +46 + gy +. +NeedAay +(); + +47 + gy +. +NeedAay +(); + +49 +checkAay +( +y +, + +56 +SECTION +("NestedArrays") { + +57 +JsAay + + gáed1 + = +y +. +NeedAay +(); + +58 + gáed1 +. +add +(1); + +59 + gáed1 +. +add +(2); + +61 +JsObje + + gáed2 + = +y +. +NeedObje +(); + +62 + gáed2 +["key"] = 3; + +64 +checkAay +( +y +, + + @lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonObject.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9  + $checkObje +(cڡ +JsObje + +obj +, cڡ +d +:: +rg + & +exed +) { + +10  +au +[256]; + +11 +size_t + +auL + = + `rlizeJs +( +obj +, +au +); + +12 +size_t + +msudL + = + `msuJs +( +obj +); + +14 + `REQUIRE +( +exed + = +au +); + +15 + `REQUIRE +( +exed +. + `size +(= +auL +); + +16 + `REQUIRE +( +exed +. + `size +(= +msudL +); + +17 + } +} + +19 +TEST_CASE +("serializeJson(JsonObject)") { + +20 +DymicJsDocumt + +doc +(4096); + +21 +JsObje + + gobj + = +doc +. +to +(); + +23 +SECTION +("EmptyObject") { + +24 +checkObje +( +obj +, "{}"); + +27 +SECTION +("TwoStrings") { + +28 + gobj +["key1"] = "value1"; + +29 + gobj +["key2"] = "value2"; + +31 +checkObje +( +obj +, "{\"key1\":\"value1\",\"key2\":\"value2\"}"); + +34 +SECTION +("RemoveFirst") { + +35 + gobj +["key1"] = "value1"; + +36 + gobj +["key2"] = "value2"; + +37 + gobj +. +move +("key1"); + +39 +checkObje +( +obj +, "{\"key2\":\"value2\"}"); + +42 +SECTION +("RemoveLast") { + +43 + gobj +["key1"] = "value1"; + +44 + gobj +["key2"] = "value2"; + +45 + gobj +. +move +("key2"); + +47 +checkObje +( +obj +, "{\"key1\":\"value1\"}"); + +50 +SECTION +("RemoveUnexistingKey") { + +51 + gobj +["key1"] = "value1"; + +52 + gobj +["key2"] = "value2"; + +53 + gobj +. +move +("key3"); + +55 +checkObje +( +obj +, "{\"key1\":\"value1\",\"key2\":\"value2\"}"); + +58 +SECTION +("ReplaceExistingKey") { + +59 + gobj +["key"] = "value1"; + +60 + gobj +["key"] = "value2"; + +62 +checkObje +( +obj +, "{\"key\":\"value2\"}"); + +65 +SECTION +("TwoIntegers") { + +66 + gobj +["a"] = 1; + +67 + gobj +["b"] = 2; + +68 +checkObje +( +obj +, "{\"a\":1,\"b\":2}"); + +71 +SECTION +("serialized(const char*)") { + +72 + gobj +["a"] = +rlized +("[1,2]"); + +73 + gobj +["b"] = +rlized +("[4,5]"); + +74 +checkObje +( +obj +, "{\"a\":[1,2],\"b\":[4,5]}"); + +77 +SECTION +("Two doubles") { + +78 + gobj +["a"] = 12.34; + +79 + gobj +["b"] = 56.78; + +80 +checkObje +( +obj +, "{\"a\":12.34,\"b\":56.78}"); + +83 +SECTION +("TwoNull") { + +84 + gobj +["a"] = +ic_ +<*>(0); + +85 + gobj +["b"] = +ic_ +<*>(0); + +86 +checkObje +( +obj +, "{\"a\":null,\"b\":null}"); + +89 +SECTION +("TwoBooleans") { + +90 + gobj +["a"] = +ue +; + +91 + gobj +["b"] = +l +; + +92 +checkObje +( +obj +, "{\"a\":true,\"b\":false}"); + +95 +SECTION +("ThreeNestedArrays") { + +96 +DymicJsDocumt + +b +(4096); + +97 +DymicJsDocumt + +c +(4096); + +99 + gobj +. +NeedAay +("a"); + +100 + gobj +["b"] = +b +. +to +< +JsAay +>(); + +101 + gobj +["c"] = +c +. +to +< +JsAay +>(); + +103 +checkObje +( +obj +, "{\"a\":[],\"b\":[],\"c\":[]}"); + +106 +SECTION +("ThreeNestedObjects") { + +107 +DymicJsDocumt + +b +(4096); + +108 +DymicJsDocumt + +c +(4096); + +110 + gobj +. +NeedObje +("a"); + +111 + gobj +["b"] = +b +. +to +< +JsObje +>(); + +112 + gobj +["c"] = +c +. +to +< +JsObje +>(); + +114 +checkObje +( +obj +, "{\"a\":{},\"b\":{},\"c\":{}}"); + + @lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonObjectPretty.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9  + $checkObjePy +(cڡ +JsObje + +obj +, + +10 cڡ +d +:: +rg + +exed +) { + +11  +js +[256]; + +13 +size_t + +auL + = + `rlizeJsPy +( +obj +, +js +); + +14 +size_t + +msudL + = + `msuJsPy +( +obj +); + +16 + `REQUIRE +( +js + = +exed +); + +17 + `REQUIRE +( +exed +. + `size +(= +auL +); + +18 + `REQUIRE +( +exed +. + `size +(= +msudL +); + +19 + } +} + +21 +TEST_CASE +("serializeJsonPretty(JsonObject)") { + +22 +DymicJsDocumt + +doc +(4096); + +23 +JsObje + + gobj + = +doc +. +to +(); + +25 +SECTION +("EmptyObject") { + +26 +checkObjePy +( +obj +, "{}"); + +29 +SECTION +("OneMember") { + +30 + gobj +["key"] = "value"; + +32 +checkObjePy +( +obj +, + +38 +SECTION +("TwoMembers") { + +39 + gobj +["key1"] = "value1"; + +40 + gobj +["key2"] = "value2"; + +42 +checkObjePy +( +obj +, + +49 +SECTION +("EmptyNestedContainers") { + +50 + gobj +. +NeedObje +("key1"); + +51 + gobj +. +NeedAay +("key2"); + +53 +checkObjePy +( +obj +, + +60 +SECTION +("NestedContainers") { + +61 +JsObje + + gáed1 + = +obj +. +NeedObje +("key1"); + +62 + gáed1 +["a"] = 1; + +64 +JsAay + + gáed2 + = +obj +. +NeedAay +("key2"); + +65 + gáed2 +. +add +(2); + +67 +checkObjePy +( +obj +, + + @lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonVariant.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 + gme + < +tyme + + gT +> + +10  + $check +( +T + +vue +, cڡ +d +:: +rg + & +exed +) { + +11 +DymicJsDocumt + + `doc +(4096); + +12 +doc +. +to +< +JsV +>(). + `t +( +vue +); + +13  +bufr +[256] = ""; + +14 +size_t + +tuVue + = + `rlizeJs +( +doc +, +bufr +, (buffer)); + +15 + `REQUIRE +( +exed + = +bufr +); + +16 + `REQUIRE +( +exed +. + `size +(= +tuVue +); + +17 + } +} + +19 +TEST_CASE +("serializeJson(JsonVariant)") { + +20 +SECTION +("Undefined") { + +21 +check +( +JsV +(), "null"); + +24 +SECTION +("Null string") { + +25 +check +( +ic_ +<*>(0), "null"); + +28 +SECTION +("const char*") { + +29 +check +("hello", "\"hello\""); + +32 +SECTION +("string") { + +33 +check +( +d +:: +rg +("hello"), "\"hello\""); + +35 +SECTION +("Escape quotation mark") { + +36 +check +( +d +:: +rg +("hello \"world\""), "\"hello \\\"world\\\"\""); + +39 +SECTION +("Escapeeverse solidus") { + +40 +check +( +d +:: +rg +("hello\\world"), "\"hello\\\\world\""); + +43 +SECTION +("Don'tscape solidus") { + +44 +check +( +d +:: +rg +("fifty/fifty"), "\"fifty/fifty\""); + +47 +SECTION +("Escape backspace") { + +48 +check +( +d +:: +rg +("hello\bworld"), "\"hello\\bworld\""); + +51 +SECTION +("Escape formfeed") { + +52 +check +( +d +:: +rg +("hello\fworld"), "\"hello\\fworld\""); + +55 +SECTION +("Escapeinefeed") { + +56 +check +( +d +:: +rg +("hello\nworld"), "\"hello\\nworld\""); + +59 +SECTION +("Escape carriageeturn") { + +60 +check +( +d +:: +rg +("hello\rworld"), "\"hello\\rworld\""); + +63 +SECTION +("Escapeab") { + +64 +check +( +d +:: +rg +("hello\tworld"), "\"hello\\tworld\""); + +68 +SECTION +("SerializedValue") { + +69 +check +( +rlized +("[1,2]"), "[1,2]"); + +72 +SECTION +("SerializedValue") { + +73 +check +( +rlized +( +d +:: +rg +("[1,2]")), "[1,2]"); + +76 +SECTION +("Double") { + +77 +check +(3.1415927, "3.1415927"); + +80 +SECTION +("Zero") { + +81 +check +(0, "0"); + +84 +SECTION +("Integer") { + +85 +check +(42, "42"); + +88 +SECTION +("NegativeLong") { + +89 +check +(-42, "-42"); + +92 +SECTION +("UnsignedLong") { + +93 +check +(4294967295UL, "4294967295"); + +96 +SECTION +("True") { + +97 +check +( +ue +, "true"); + +100 +SECTION +("OneFalse") { + +101 +check +( +l +, "false"); + +104 #i +ARDUINOJSON_USE_LONG_LONG + + +105 +SECTION +("NegativeInt64") { + +106 +check +(-9223372036854775807 - 1, "-9223372036854775808"); + +109 +SECTION +("PositiveInt64") { + +110 +check +(9223372036854775807, "9223372036854775807"); + +113 +SECTION +("UInt64") { + +114 +check +(18446744073709551615U, "18446744073709551615"); + + @lib_standalone/ArduinoJson/extras/tests/JsonSerializer/misc.cpp + +1  + ~ + +2  + ~ + +3  + ~ + +5 +TEST_CASE +("serializeJson(MemberProxy)") { + +6 +DymicJsDocumt + +doc +(4096); + +7 +derlizeJs +( +doc +, "{\"hello\":42}"); + +8 +JsObje + + gobj + = +doc +. +as +(); + +9 + gd +:: +rg + +su +; + +11 +rlizeJs +( +obj +["hlo"], +su +); + +13 +REQUIRE +( +su + == "42"); + +16 +TEST_CASE +("serializeJson(ElementProxy)") { + +17 +DymicJsDocumt + +doc +(4096); + +18 +derlizeJs +( +doc +, "[42]"); + +19 +JsAay + + gr + = +doc +. +as +(); + +20 + gd +:: +rg + +su +; + +22 +rlizeJs +( +r +[0], +su +); + +24 +REQUIRE +( +su + == "42"); + +27 +TEST_CASE +("serializeJson(JsonVariantSubscript)") { + +28 +DymicJsDocumt + +doc +(4096); + +29 +derlizeJs +( +doc +, "[42]"); + +30 +JsV + + gv + = +doc +. +as +(); + +31 + gd +:: +rg + +su +; + +33 +rlizeJs +( +v +[0], +su +); + +35 +REQUIRE +( +su + == "42"); + + @lib_standalone/ArduinoJson/extras/tests/JsonSerializer/std_stream.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("operator<<(std::ostream)") { + +10 +DymicJsDocumt + +doc +(4096); + +11 + gd +:: +orgam + +os +; + +13 +SECTION +("JsonVariant containing false") { + +14 +JsV + + gv + = +doc +. +to +(); + +16 + gv +. +t +( +l +); + +17 + gos + << + gv +; + +19 +REQUIRE +("l" = +os +. +r +()); + +22 +SECTION +("JsonVariant containing string") { + +23 +JsV + + gv + = +doc +. +to +(); + +25 + gv +. +t +("coucou"); + +26 + gos + << + gv +; + +28 +REQUIRE +("\"coucou\"" = +os +. +r +()); + +31 +SECTION +("JsonObject") { + +32 +JsObje + + gobje + = +doc +. +to +(); + +33 + gobje +["key"] = "value"; + +35 + gos + << + gobje +; + +37 +REQUIRE +("{\"key\":\"vue\"}" = +os +. +r +()); + +40 +SECTION +("MemberProxy") { + +41 +JsObje + + gobje + = +doc +. +to +(); + +42 + gobje +["key"] = "value"; + +44 + gos + << + gobje +["key"]; + +46 +REQUIRE +("\"vue\"" = +os +. +r +()); + +49 +SECTION +("JsonArray") { + +50 +JsAay + + gy + = +doc +. +to +(); + +51 + gy +. +add +("value"); + +53 + gos + << + gy +; + +55 +REQUIRE +("[\"vue\"]" = +os +. +r +()); + +58 +SECTION +("ElementProxy") { + +59 +JsAay + + gy + = +doc +. +to +(); + +60 + gy +. +add +("value"); + +62 + gos + << + gy +[0]; + +64 +REQUIRE +("\"vue\"" = +os +. +r +()); + + @lib_standalone/ArduinoJson/extras/tests/JsonSerializer/std_string.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("serialize JsonArrayo std::string") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsAay + + gy + = +doc +. +to +(); + +11 + gy +. +add +(4); + +12 + gy +. +add +(2); + +14 +SECTION +("serializeJson()") { + +15 + gd +:: +rg + +js +; + +16 +rlizeJs +( +y +, +js +); + +18 +REQUIRE +("[4,2]" = +js +); + +21 +SECTION +("serializeJsonPretty") { + +22 + gd +:: +rg + +js +; + +23 +rlizeJsPy +( +y +, +js +); + +25 +REQUIRE +("[\r\ 4,\r\ 2\r\n]" = +js +); + +29 +TEST_CASE +("serialize JsonObjecto std::string") { + +30 +DymicJsDocumt + +doc +(4096); + +31 +JsObje + + gobj + = +doc +. +to +(); + +32 + gobj +["key"] = "value"; + +34 +SECTION +("object") { + +35 + gd +:: +rg + +js +; + +36 +rlizeJs +( +doc +, +js +); + +38 +REQUIRE +("{\"key\":\"vue\"}" = +js +); + +41 +SECTION +("serializeJsonPretty") { + +42 + gd +:: +rg + +js +; + +43 +rlizeJsPy +( +doc +, +js +); + +45 +REQUIRE +("{\r\ \"key\": \"vue\"\r\n}" = +js +); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/add.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("JsonVariant::add()") { + +10 +DymicJsDocumt + +doc +(4096); + +11 +JsV + + gv + = +doc +. +to +(); + +13 +SECTION +("integer") { + +14 + gv +. +add +(42); + +16 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "[42]"); + +19 +SECTION +("const char*") { + +20 + gv +. +add +("hello"); + +22 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "[\"hello\"]"); + +25 +SECTION +("std::string") { + +26 + gv +. +add +( +d +:: +rg +("hello")); + +28 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "[\"hello\"]"); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/as.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +mea + + gmy + { + +10 +usg + + gARDUINOJSON_NAMESPACE +:: +isf +; + +13 +TEST_CASE +("JsonVariant::as()") { + +14 cڡ * + gnu + = 0; + +16 +DymicJsDocumt + +doc +(4096); + +17 +JsV + + gv + = +doc +. +to +(); + +19 +SECTION +("not set") { + +20 +REQUIRE +( +l + = +v +. +as +< +bo +>()); + +21 +REQUIRE +(0 = +v +. +as +<>()); + +22 +REQUIRE +(0.0= +v +. +as +<>()); + +23 +REQUIRE +(0 = +v +. +as +<*>()); + +24 +REQUIRE +("nu" = +v +. +as +< +d +:: +rg +>()); + +27 +SECTION +("set(4.2)") { + +28 + gv +. +t +(4.2); + +30 +REQUIRE +( +v +. +as +< +bo +>()); + +31 +REQUIRE +(0 = +v +. +as +()); + +32 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "4.2"); + +33 +REQUIRE +( +v +. +as +<>() == 4L); + +34 +REQUIRE +( +v +. +as +<>() == 4U); + +37 +SECTION +("set(0.0)") { + +38 + gv +. +t +(0.0); + +40 +REQUIRE +( +v +. +as +< +bo +>(= +l +); + +41 +REQUIRE +( +v +. +as +<>() == 0L); + +44 +SECTION +("set(false)") { + +45 + gv +. +t +( +l +); + +47 +REQUIRE +( +l + = +v +. +as +< +bo +>()); + +48 +REQUIRE +( +v +. +as +<>() == 0.0); + +49 +REQUIRE +( +v +. +as +<>() == 0L); + +50 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "false"); + +53 +SECTION +("set(true)") { + +54 + gv +. +t +( +ue +); + +56 +REQUIRE +( +v +. +as +< +bo +>()); + +57 +REQUIRE +( +v +. +as +<>() == 1.0); + +58 +REQUIRE +( +v +. +as +<>() == 1L); + +59 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "true"); + +62 +SECTION +("set(42L)") { + +63 + gv +. +t +(42L); + +65 +REQUIRE +( +v +. +as +< +bo +>(= +ue +); + +66 +REQUIRE +( +v +. +as +<>() == 42.0); + +67 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "42"); + +70 +SECTION +("set(-42L)") { + +71 + gv +. +t +(-42L); + +73 +REQUIRE +( +v +. +as +<>() == -42.0); + +74 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "-42"); + +77 +SECTION +("set(0L)") { + +78 + gv +. +t +(0L); + +80 +REQUIRE +( +v +. +as +< +bo +>(= +l +); + +81 +REQUIRE +( +v +. +as +<>() == 0.0); + +84 +SECTION +("set(null)") { + +85 + gv +. +t +( +nu +); + +87 +REQUIRE +( +v +. +as +< +bo +>(= +l +); + +88 +REQUIRE +( +v +. +as +<>() == 0.0); + +89 +REQUIRE +( +v +. +as +<>() == 0L); + +90 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "null"); + +93 +SECTION +("set(\"42\")") { + +94 + gv +. +t +("42"); + +96 +REQUIRE +( +v +. +as +<>() == 42L); + +99 +SECTION +("set(\"hello\")") { + +100 + gv +. +t +("hello"); + +102 +REQUIRE +( +v +. +as +< +bo +>(= +ue +); + +103 +REQUIRE +( +v +. +as +<>() == 0L); + +104 +REQUIRE +( +v +. +as +(= +d +:: +rg +("hello")); + +105 +REQUIRE +( +v +. +as +<*>(= +d +:: +rg +("hello")); + +106 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == std::string("hello")); + +109 +SECTION +("set(std::string(\"4.2\"))") { + +110 + gv +. +t +( +d +:: +rg +("4.2")); + +112 +REQUIRE +( +v +. +as +< +bo +>(= +ue +); + +113 +REQUIRE +( +v +. +as +<>() == 4L); + +114 +REQUIRE +( +v +. +as +<>() == 4.2); + +115 +REQUIRE +( +v +. +as +<*>(= +d +:: +rg +("4.2")); + +116 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == std::string("4.2")); + +119 +SECTION +("set(\"true\")") { + +120 + gv +. +t +("true"); + +122 +REQUIRE +( +v +. +as +< +bo +>(= +ue +); + +123 +REQUIRE +( +v +. +as +<>() == 0); + +126 +SECTION +("set(-1e300)") { + +127 + gv +. +t +(-1e300); + +129 +REQUIRE +( +v +. +as +< +bo +>(= +ue +); + +130 +REQUIRE +( +v +. +as +<>() == -1e300); + +131 +REQUIRE +( +v +. +as +<>() < 0); + +132 +REQUIRE +( +my +:: +isf +( +v +. +as +<>())); + +135 +SECTION +("set(1e300)") { + +136 + gv +. +t +(1e300); + +138 +REQUIRE +( +v +. +as +< +bo +>(= +ue +); + +139 +REQUIRE +( +v +. +as +<>() == 1e300); + +140 +REQUIRE +( +v +. +as +<>() > 0); + +141 +REQUIRE +( +my +:: +isf +( +v +. +as +<>())); + +144 +SECTION +("set(1e-300)") { + +145 + gv +. +t +(1e-300); + +147 +REQUIRE +( +v +. +as +< +bo +>(= +ue +); + +148 +REQUIRE +( +v +. +as +<>() == 1e-300); + +149 +REQUIRE +( +v +. +as +<>() == 0); + +152 +SECTION +("to()") { + +153 +JsObje + + gobj + = +v +. +to +(); + +154 + gobj +["key"] = "value"; + +156 +SECTION +("as()") { + +157 +REQUIRE +( +v +. +as +< +bo +>(= +ue +); + +160 +SECTION +("as()") { + +161 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == std::string("{\"key\":\"value\"}")); + +164 +SECTION +("ObjectAsJsonObject") { + +165 +JsObje + + go + = +v +. +as +(); + +166 +REQUIRE +( +o +. +size +() == 1); + +167 +REQUIRE +( +o +["key"] = +d +:: +rg +("value")); + +171 +SECTION +("to()") { + +172 +JsAay + + gr + = +v +. +to +(); + +173 + gr +. +add +(4); + +174 + gr +. +add +(2); + +176 +SECTION +("as()") { + +177 +REQUIRE +( +v +. +as +< +bo +>(= +ue +); + +180 +SECTION +("as()") { + +181 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == std::string("[4,2]")); + +184 +SECTION +("as()") { + +185 +JsAay + + ga + = +v +. +as +(); + +186 +REQUIRE +( +a +. +size +() == 2); + +187 +REQUIRE +( +a +[0] == 4); + +188 +REQUIRE +( +a +[1] == 2); + +192 #i +ARDUINOJSON_USE_LONG_LONG + + +193 +SECTION +("Smallest int64egative") { + +194 + gv +. +t +("-9223372036854775808"); + +195 +REQUIRE +( +v +. +as +<>() == -9223372036854775807 - 1); + +198 +SECTION +("Biggerst int64ositive") { + +199 + gv +. +t +("9223372036854775807"); + +200 +REQUIRE +( +v +. +as +<>() == 9223372036854775807); + +204 +SECTION +("should work on JsonVariantConst") { + +205 + gv +. +t +("hello"); + +207 +JsVCڡ + + gcv + = +v +; + +209 +REQUIRE +( +cv +. +as +< +bo +>(= +ue +); + +210 +REQUIRE +( +cv +. +as +<>() == 0L); + +211 +REQUIRE +( +cv +. +as +(= +d +:: +rg +("hello")); + +212 +REQUIRE +( +cv +. +as +<*>(= +d +:: +rg +("hello")); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/clear.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("JsonVariant::clear()") { + +10 +DymicJsDocumt + +doc +(4096); + +11 +JsV + + gv + = +doc +. +to +(); + +13 +SECTION +("size goes backo zero") { + +14 + gv +. +add +(42); + +15 + gv +. +r +(); + +17 +REQUIRE +( +v +. +size +() == 0); + +20 +SECTION +("isNull()eturnrue") { + +21 + gv +. +add +("hello"); + +22 + gv +. +r +(); + +24 +REQUIRE +( +v +. +isNu +(= +ue +); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/compare.cpp + +5  + ~ + +6  + ~ + +8 + gme + < +tyme + + gT +> + +9  + $checkEqus +( +T + +a +, T +b +) { + +10 +DymicJsDocumt + + `doc +(4096); + +11 +JsV + +v + = +doc +. +to +(); + +12 +v +. + `t +( +a +); + +14 + `REQUIRE +( +b + = +v +); + +15 + `REQUIRE +( +v + = +b +); + +16 + `REQUIRE +( +b + < +v +); + +17 + `REQUIRE +( +v + < +b +); + +18 + `REQUIRE +( +b + > +v +); + +19 + `REQUIRE +( +v + > +b +); + +21 + `REQUIRE_FALSE +( +b + ! +v +); + +22 + `REQUIRE_FALSE +( +v + ! +b +); + +23 + `REQUIRE_FALSE +( +b + > +v +); + +24 + `REQUIRE_FALSE +( +v + > +b +); + +25 + `REQUIRE_FALSE +( +b + < +v +); + +26 + `REQUIRE_FALSE +( +v + < +b +); + +27 + } +} + +29 + gme + < +tyme + + gT +> + +30  + $checkG +( +T + +a +, T +b +) { + +31 +DymicJsDocumt + + `doc +(4096); + +32 +JsV + +v + = +doc +. +to +(); + +33 +v +. + `t +( +a +); + +35 + `REQUIRE +( +v + > +b +); + +36 + `REQUIRE +( +b + < +v +); + +37 + `REQUIRE +( +v + ! +b +); + +38 + `REQUIRE +( +b + ! +v +); + +40 + `REQUIRE_FALSE +( +v + < +b +); + +41 + `REQUIRE_FALSE +( +b + > +v +); + +42 + `REQUIRE_FALSE +( +v + = +b +); + +43 + `REQUIRE_FALSE +( +b + = +v +); + +44 + } +} + +46 + gme + < +tyme + + gT +> + +47  + $checkLow +( +T + +a +, T +b +) { + +48 +DymicJsDocumt + + `doc +(4096); + +49 +JsV + +v + = +doc +. +to +(); + +50 +v +. + `t +( +a +); + +52 + `REQUIRE +( +v + < +b +); + +53 + `REQUIRE +( +b + > +v +); + +54 + `REQUIRE +( +v + ! +b +); + +55 + `REQUIRE +( +b + ! +v +); + +57 + `REQUIRE_FALSE +( +v + > +b +); + +58 + `REQUIRE_FALSE +( +b + < +v +); + +59 + `REQUIRE_FALSE +( +v + = +b +); + +60 + `REQUIRE_FALSE +( +b + = +v +); + +61 + } +} + +63 + gme + < +tyme + + gT +> + +64  + $checkComriss +( +T + +low +, T +mid +, T +high +) { + +65 + `checkEqus +( +mid +, mid); + +66 + `checkG +( +mid +, +low +); + +67 + `checkLow +( +mid +, +high +); + +68 + } +} + +70 +TEST_CASE +("JsonVariant comparisons") { + +71 cڡ * + gnu + = 0; + +73 +SECTION +("Double") { + +74 + gcheckComriss +<>(123.44, 123.45, 123.46); + +77 +SECTION +("Float") { + +78 + gcheckComriss +<>(123.44f, 123.45f, 123.46f); + +81 +SECTION +("SChar") { + +82 + gcheckComriss +(122, 123, 124); + +85 +SECTION +("SInt") { + +86 + gcheckComriss +(122, 123, 124); + +89 +SECTION +("SLong") { + +90 + gcheckComriss +(122L, 123L, 124L); + +93 +SECTION +("SShort") { + +94 + gcheckComriss +(122, 123, 124); + +97 +SECTION +("UChar") { + +98 + gcheckComriss +<>(122, 123, 124); + +101 +SECTION +("UInt") { + +102 + gcheckComriss +<>(122, 123, 124); + +105 +SECTION +("ULong") { + +106 + gcheckComriss +<>(122L, 123L, 124L); + +109 +SECTION +("UShort") { + +110 + gcheckComriss +<>(122, 123, 124); + +113 +SECTION +("null") { + +114 +DymicJsDocumt + +doc +(4096); + +115 +JsV + + gv + = +doc +. +to +(); + +116 + gv +. +t +( +nu +); + +118 +REQUIRE +( +v + == variant); + +119 +REQUIRE_FALSE +( +v + != variant); + +121 +REQUIRE +( +v + = +nu +); + +122 +REQUIRE_FALSE +( +v + ! +nu +); + +124 +REQUIRE +( +v + != "null"); + +125 +REQUIRE_FALSE +( +v + == "null"); + +128 +SECTION +("StringLiteral") { + +129 +DymicJsDocumt + +doc +(4096); + +130 +derlizeJs +( +doc +, "\"hello\""); + +131 +JsV + + gv + = +doc +. +as +(); + +133 +REQUIRE +( +v + == variant); + +134 +REQUIRE_FALSE +( +v + != variant); + +136 +REQUIRE +( +v + == "hello"); + +137 +REQUIRE_FALSE +( +v + != "hello"); + +139 +REQUIRE +( +v + != "world"); + +140 +REQUIRE_FALSE +( +v + == "world"); + +142 +REQUIRE +( +v + ! +nu +); + +143 +REQUIRE_FALSE +( +v + = +nu +); + +145 +REQUIRE +("hlo" = +v +); + +146 +REQUIRE_FALSE +("hlo" ! +v +); + +148 +REQUIRE +("wld" ! +v +); + +149 +REQUIRE_FALSE +("wld" = +v +); + +151 +REQUIRE +( +nu + ! +v +); + +152 +REQUIRE_FALSE +( +nu + = +v +); + +155 +SECTION +("String") { + +156 +DymicJsDocumt + +doc +(4096); + +157 +JsV + + gv + = +doc +. +to +(); + +158 + gv +. +t +("hello"); + +160 +REQUIRE +( +v + == variant); + +161 +REQUIRE_FALSE +( +v + != variant); + +163 +REQUIRE +( +v + = +d +:: +rg +("hello")); + +164 +REQUIRE_FALSE +( +v + ! +d +:: +rg +("hello")); + +166 +REQUIRE +( +v + ! +d +:: +rg +("world")); + +167 +REQUIRE_FALSE +( +v + = +d +:: +rg +("world")); + +169 +REQUIRE +( +v + ! +nu +); + +170 +REQUIRE_FALSE +( +v + = +nu +); + +172 +REQUIRE +( +d +:: +rg +("hlo"= +v +); + +173 +REQUIRE_FALSE +( +d +:: +rg +("hlo"! +v +); + +175 +REQUIRE +( +d +:: +rg +("wld"! +v +); + +176 +REQUIRE_FALSE +( +d +:: +rg +("wld"= +v +); + +178 +REQUIRE +( +nu + ! +v +); + +179 +REQUIRE_FALSE +( +nu + = +v +); + +182 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +183 +SECTION +("VLAquals") { + +184  + gi + = 16; + +185  + gv +[ +i +]; + +186 +ry +( +v +, "hello"); + +188 +DymicJsDocumt + +doc +(4096); + +189 +JsV + + gv + = +doc +. +to +(); + +190 + gv +. +t +("hello"); + +192 +REQUIRE +(( +v + = +v +)); + +193 +REQUIRE +(( +v + = +v +)); + +194 +REQUIRE_FALSE +(( +v + ! +v +)); + +195 +REQUIRE_FALSE +(( +v + ! +v +)); + +198 +SECTION +("VLA differs") { + +199  + gi + = 16; + +200  + gv +[ +i +]; + +201 +ry +( +v +, "hello"); + +203 +DymicJsDocumt + +doc +(4096); + +204 +JsV + + gv + = +doc +. +to +(); + +205 + gv +. +t +("world"); + +207 +REQUIRE +(( +v + ! +v +)); + +208 +REQUIRE +(( +v + ! +v +)); + +209 +REQUIRE_FALSE +(( +v + = +v +)); + +210 +REQUIRE_FALSE +(( +v + = +v +)); + +214 +DymicJsDocumt + +doc1 +(4096), +doc2 +(4096), +doc3 +(4096); + +215 +JsV + + gv1 + = +doc1 +. +to +(); + +216 +JsV + + gv2 + = +doc2 +. +to +(); + +217 +JsV + + gv3 + = +doc3 +. +to +(); + +219 +SECTION +("Variants containing integers") { + +220 + gv1 +. +t +(42); + +221 + gv2 +. +t +(42); + +222 + gv3 +. +t +(666); + +224 +REQUIRE +( +v1 + = +v2 +); + +225 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +227 +REQUIRE +( +v1 + ! +v3 +); + +228 +REQUIRE_FALSE +( +v1 + = +v3 +); + +231 +SECTION +("Variants containinginked strings") { + +233  + ghlo1 +[] = "hello"; + +234  + ghlo2 +[] = "hello"; + +235 +REQUIRE +( +hlo1 + ! +hlo2 +); + +237 + gv1 +. +t +( +hlo1 +); + +238 + gv2 +. +t +( +hlo2 +); + +239 + gv3 +. +t +("world"); + +241 +REQUIRE +( +v1 + = +v2 +); + +242 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +244 +REQUIRE +( +v1 + ! +v3 +); + +245 +REQUIRE_FALSE +( +v1 + = +v3 +); + +248 +SECTION +("Variants containing owned strings") { + +249 + gv1 +. +t +( +d +:: +rg +("hello")); + +250 + gv2 +. +t +( +d +:: +rg +("hello")); + +251 + gv3 +. +t +( +d +:: +rg +("world")); + +253 +REQUIRE +( +v1 + = +v2 +); + +254 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +256 +REQUIRE +( +v1 + ! +v3 +); + +257 +REQUIRE_FALSE +( +v1 + = +v3 +); + +260 +SECTION +("Variants containinginkedaws") { + +262  + ghlo1 +[] = "hello"; + +263  + ghlo2 +[] = "hello"; + +264 +REQUIRE +( +hlo1 + ! +hlo2 +); + +266 + gv1 +. +t +( +rlized +( +hlo1 +)); + +267 + gv2 +. +t +( +rlized +( +hlo2 +)); + +268 + gv3 +. +t +( +rlized +("world")); + +270 +REQUIRE +( +v1 + = +v2 +); + +271 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +273 +REQUIRE +( +v1 + ! +v3 +); + +274 +REQUIRE_FALSE +( +v1 + = +v3 +); + +277 +SECTION +("Variants containing ownedaws") { + +278 + gv1 +. +t +( +rlized +( +d +:: +rg +("hello"))); + +279 + gv2 +. +t +( +rlized +( +d +:: +rg +("hello"))); + +280 + gv3 +. +t +( +rlized +( +d +:: +rg +("world"))); + +282 +REQUIRE +( +v1 + = +v2 +); + +283 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +285 +REQUIRE +( +v1 + ! +v3 +); + +286 +REQUIRE_FALSE +( +v1 + = +v3 +); + +289 +SECTION +("Variants containing mixed strings (issue #1051)") { + +290 + gv1 +. +t +("hello"); + +291 + gv2 +. +t +( +d +:: +rg +("hello")); + +293 +REQUIRE +( +v1 + = +v2 +); + +294 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +296 +REQUIRE +( +v2 + = +v1 +); + +297 +REQUIRE_FALSE +( +v2 + ! +v1 +); + +300 +SECTION +("Variants containing double") { + +301 + gv1 +. +t +(42.0); + +302 + gv2 +. +t +(42.0); + +303 + gv3 +. +t +(666.0); + +305 +REQUIRE +( +v1 + = +v2 +); + +306 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +308 +REQUIRE +( +v1 + ! +v3 +); + +309 +REQUIRE_FALSE +( +v1 + = +v3 +); + +312 +SECTION +("BoolInVariant") { + +313 + gv1 +. +t +( +ue +); + +314 + gv2 +. +t +( +ue +); + +315 + gv3 +. +t +( +l +); + +317 +REQUIRE +( +v1 + = +v2 +); + +318 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +320 +REQUIRE +( +v1 + ! +v3 +); + +321 +REQUIRE_FALSE +( +v1 + = +v3 +); + +324 +SECTION +("ArrayInVariant") { + +325 +JsAay + + gy1 + = +v1 +. +to +(); + +326 +JsAay + + gy2 + = +v2 +. +to +(); + +328 + gy1 +. +add +(42); + +329 + gy2 +. +add +(42); + +331 +REQUIRE +( +v1 + = +v2 +); + +332 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +334 +REQUIRE +( +v1 + ! +v3 +); + +335 +REQUIRE_FALSE +( +v1 + = +v3 +); + +338 +SECTION +("ObjectInVariant") { + +339 +JsObje + + gobj1 + = +v1 +. +to +(); + +340 +JsObje + + gobj2 + = +v2 +. +to +(); + +342 + gobj1 +["hello"] = "world"; + +343 + gobj2 +["hello"] = "world"; + +345 +REQUIRE +( +v1 + = +v2 +); + +346 +REQUIRE_FALSE +( +v1 + ! +v2 +); + +348 +REQUIRE +( +v1 + ! +v3 +); + +349 +REQUIRE_FALSE +( +v1 + = +v3 +); + +353 as + cVComrisiFixtu + { + +354 + mive +: + +355 +SticJsDocumt +<256> +doc +; + +356 +JsV + + mv +; + +358 + mpublic +: + +359 + $VComrisiFixtu +(: + `v +( +doc +. +to +< +JsV +>()) {} + +361 +eed +: + +362 +me + < +tyme + +T +> + +363  + $tVue +(cڡ +T +& +vue +) { + +364 +v +. + `t +( +vue +); + +365 + } +} + +367 + gme + < +tyme + + gT +> + +368  + $asEqusTo +(cڡ +T +& +vue +) { + +369 + `REQUIRE +( +v + = +vue +); + +370 + `REQUIRE +( +vue + = +v +); + +372 + `REQUIRE_FALSE +( +v + ! +vue +); + +373 + `REQUIRE_FALSE +( +vue + ! +v +); + +374 + } +} + +376 + gme + < +tyme + + gT +> + +377  + $asDifrsFrom +(cڡ +T +& +vue +) { + +378 + `REQUIRE +( +v + ! +vue +); + +379 + `REQUIRE +( +vue + ! +v +); + +381 + `REQUIRE_FALSE +( +v + = +vue +); + +382 + `REQUIRE_FALSE +( +vue + = +v +); + +383 + } +} + +385 + gme + < +tyme + + gT +> + +386  + $asGTh +(cڡ +T +& +vue +) { + +387 + `REQUIRE +(( +v + > +vue +)); + +388 + `REQUIRE +(( +v + > +vue +)); + +389 + `REQUIRE +( +vue + < +v +); + +390 + `REQUIRE +( +vue + < +v +); + +392 + `REQUIRE_FALSE +(( +v + < +vue +)); + +393 + `REQUIRE_FALSE +(( +v + < +vue +)); + +394 + `REQUIRE_FALSE +( +vue + > +v +); + +395 + `REQUIRE_FALSE +( +vue + > +v +); + +396 + } +} + +398 + gme + < +tyme + + gT +> + +399  + $asLowTh +(cڡ +T +& +vue +) { + +400 + `REQUIRE +( +v + < +vue +); + +401 + `REQUIRE +( +v + < +vue +); + +402 + `REQUIRE +( +vue + > +v +); + +403 + `REQUIRE +( +vue + > +v +); + +405 + `REQUIRE_FALSE +( +v + > +vue +); + +406 + `REQUIRE_FALSE +( +v + > +vue +); + +407 + `REQUIRE_FALSE +( +vue + < +v +); + +408 + `REQUIRE_FALSE +( +vue + < +v +); + +409 + } +} + +412 +TEST_CASE_METHOD +( +VComrisiFixtu +, + +414 +SECTION +("null") { + +415 +asDifrsFrom +(3); + +416 +asDifrsFrom +("world"); + +419 +SECTION +("string") { + +420 +tVue +("hello"); + +421 +asEqusTo +("hello"); + +422 +asDifrsFrom +(3); + +423 +asDifrsFrom +("world"); + +424 +asGTh +("helln"); + +425 +asLowTh +("hellp"); + +428 +SECTION +("positive integer") { + +429 +tVue +(42); + +430 +asEqusTo +(42); + +431 +asDifrsFrom +(43); + +432 +asGTh +(41); + +433 +asLowTh +(43); + +434 +asDifrsFrom +("world"); + +437 +SECTION +("negative integer") { + +438 +tVue +(-42); + +439 +asEqusTo +(-42); + +440 +asDifrsFrom +(42); + +441 +asGTh +(-43); + +442 +asLowTh +(-41); + +443 +asDifrsFrom +("world"); + +446 +SECTION +("double") { + +447 +tVue +(42.0); + +448 +asEqusTo +(42.0); + +449 +asDifrsFrom +(42.1); + +450 +asGTh +(41.0); + +451 +asLowTh +(43.0); + +452 +asDifrsFrom +("42.0"); + +455 +SECTION +("true") { + +456 +tVue +( +ue +); + +457 +asEqusTo +( +ue +); + +458 +asDifrsFrom +( +l +); + +459 +asDifrsFrom +(1); + +460 +asDifrsFrom +("true"); + +461 +asDifrsFrom +(1.0); + +462 +asGTh +( +l +); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/containsKey.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 cڡ * + gnu + = 0; + +11 +TEST_CASE +("JsonVariant::containsKey()") { + +12 +DymicJsDocumt + +doc +(4096); + +13 +JsV + + gv + = +doc +. +to +(); + +15 +SECTION +("containsKey(const char*)eturnsrue") { + +16 + gv +["hello"] = "world"; + +18 +REQUIRE +( +v +. +cڏsKey +("hlo"= +ue +); + +19 +REQUIRE +( +v +. +cڏsKey +("wld"= +l +); + +22 +SECTION +("containsKey(std::string)eturnsrue") { + +23 + gv +["hello"] = "world"; + +25 +REQUIRE +( +v +. +cڏsKey +( +d +:: +rg +("hlo")= +ue +); + +26 +REQUIRE +( +v +. +cڏsKey +( +d +:: +rg +("wld")= +l +); + +30 +TEST_CASE +("JsonVariantConst::containsKey()") { + +31 +DymicJsDocumt + +doc +(4096); + +32 + gdoc +["hello"] = "world"; + +33 +JsVCڡ + + gcv + = +doc +. +as +< +JsV +>(); + +35 +SECTION +("containsKey(const char*)eturnsrue") { + +36 +REQUIRE +( +cv +. +cڏsKey +("hlo"= +ue +); + +37 +REQUIRE +( +cv +. +cڏsKey +("wld"= +l +); + +40 +SECTION +("containsKey(std::string)eturnsrue") { + +41 +REQUIRE +( +cv +. +cڏsKey +( +d +:: +rg +("hlo")= +ue +); + +42 +REQUIRE +( +cv +. +cڏsKey +( +d +:: +rg +("wld")= +l +); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/copy.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonVariant::set(JsonVariant)") { + +9 +DymicJsDocumt + +doc1 +(4096); + +10 +DymicJsDocumt + +doc2 +(4096); + +11 +JsV + + gv1 + = +doc1 +. +to +(); + +12 +JsV + + gv2 + = +doc2 +. +to +(); + +14 +SECTION +("stores JsonArray by copy") { + +15 +JsAay + + gr + = +doc2 +. +to +(); + +16 +JsObje + + gobj + = +r +. +NeedObje +(); + +17 + gobj +["hello"] = "world"; + +19 + gv1 +. +t +( +r +); + +21 + gr +[0] = 666; + +22 +REQUIRE +( +v1 +. +as +< +d +:: +rg +>() == "[{\"hello\":\"world\"}]"); + +25 +SECTION +("stores JsonObject by copy") { + +26 +JsObje + + gobj + = +doc2 +. +to +(); + +27 +JsAay + + gr + = +obj +. +NeedAay +("value"); + +28 + gr +. +add +(42); + +30 + gv1 +. +t +( +obj +); + +32 + gobj +["value"] = 666; + +33 +REQUIRE +( +v1 +. +as +< +d +:: +rg +>() == "{\"value\":[42]}"); + +36 +SECTION +("stores const char* byeference") { + +37 + gv1 +. +t +("hello!!"); + +38 + gv2 +. +t +( +v1 +); + +40 +REQUIRE +( +doc1 +. +memyUge +() == 0); + +41 +REQUIRE +( +doc2 +. +memyUge +() == 0); + +44 +SECTION +("stores char* by copy") { + +45  + gr +[] = "hello!!"; + +47 + gv1 +. +t +( +r +); + +48 + gv2 +. +t +( +v1 +); + +50 +REQUIRE +( +doc1 +. +memyUge +(= +JSON_STRING_SIZE +(8)); + +51 +REQUIRE +( +doc2 +. +memyUge +(= +JSON_STRING_SIZE +(8)); + +54 +SECTION +("stores std::string by copy") { + +55 + gv1 +. +t +( +d +:: +rg +("hello!!")); + +56 + gv2 +. +t +( +v1 +); + +58 +REQUIRE +( +doc1 +. +memyUge +(= +JSON_STRING_SIZE +(8)); + +59 +REQUIRE +( +doc2 +. +memyUge +(= +JSON_STRING_SIZE +(8)); + +62 +SECTION +("stores Serialized byeference") { + +63 + gv1 +. +t +( +rlized +("hlo!!", +JSON_STRING_SIZE +(8))); + +64 + gv2 +. +t +( +v1 +); + +66 +REQUIRE +( +doc1 +. +memyUge +() == 0); + +67 +REQUIRE +( +doc2 +. +memyUge +() == 0); + +70 +SECTION +("stores Serialized by copy") { + +71  + gr +[] = "hello!!"; + +72 + gv1 +. +t +( +rlized +( +r +, 8)); + +73 + gv2 +. +t +( +v1 +); + +75 +REQUIRE +( +doc1 +. +memyUge +(= +JSON_STRING_SIZE +(8)); + +76 +REQUIRE +( +doc2 +. +memyUge +(= +JSON_STRING_SIZE +(8)); + +79 +SECTION +("stores Serialized by copy") { + +80 + gv1 +. +t +( +rlized +( +d +:: +rg +("hello!!!"))); + +81 + gv2 +. +t +( +v1 +); + +83 +REQUIRE +( +doc1 +. +memyUge +(= +JSON_STRING_SIZE +(8)); + +84 +REQUIRE +( +doc2 +. +memyUge +(= +JSON_STRING_SIZE +(8)); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/createNested.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("JsonVariant::createNestedObject()") { + +10 +DymicJsDocumt + +doc +(4096); + +11 +JsV + + gv + = +doc +. +to +(); + +13 +SECTION +("promotesorray") { + +14 +JsObje + + gobj + = +v +. +NeedObje +(); + +15 + gobj +["value"] = 42; + +17 +REQUIRE +( +v +. +is +< +JsAay +>(= +ue +); + +18 +REQUIRE +( +v +[0]["value"] == 42); + +19 +REQUIRE +( +obj +. +isNu +(= +l +); + +22 +SECTION +("works on MemberProxy") { + +23 +JsObje + + gobj + = +v +["ems"]. +NeedObje +(); + +24 + gobj +["value"] = 42; + +26 +REQUIRE +( +v +["items"][0]["value"] == 42); + +30 +TEST_CASE +("JsonVariant::createNestedArray()") { + +31 +DymicJsDocumt + +doc +(4096); + +32 +JsV + + gv + = +doc +. +to +(); + +34 +SECTION +("promotesorray") { + +35 +JsAay + + gr + = +v +. +NeedAay +(); + +37 +REQUIRE +( +v +. +is +< +JsAay +>(= +ue +); + +38 +REQUIRE +( +r +. +isNu +(= +l +); + +41 +SECTION +("works on MemberProxy") { + +42 +JsAay + + gr + = +v +["ems"]. +NeedAay +(); + +43 + gr +. +add +(42); + +45 +REQUIRE +( +v +["items"][0][0] == 42); + +49 +TEST_CASE +("JsonVariant::createNestedObject(key)") { + +50 +DymicJsDocumt + +doc +(4096); + +51 +JsV + + gv + = +doc +. +to +(); + +53 +SECTION +("promoteso object") { + +54 +JsObje + + gobj + = +v +. +NeedObje +("weather"); + +55 + gobj +["temp"] = 42; + +57 +REQUIRE +( +v +. +is +< +JsObje +>(= +ue +); + +58 +REQUIRE +( +v +["weather"]["temp"] == 42); + +61 +SECTION +("works on MemberProxy") { + +62 +JsObje + + gobj + = +v +["us"]. +NeedObje +("weather"); + +63 + gobj +["temp"] = 42; + +65 +REQUIRE +( +v +["status"]["weather"]["temp"] == 42); + +69 +TEST_CASE +("JsonVariant::createNestedArray(key)") { + +70 +DymicJsDocumt + +doc +(4096); + +71 +JsV + + gv + = +doc +. +to +(); + +73 +SECTION +("promoteso object") { + +74 +JsAay + + gr + = +v +. +NeedAay +("items"); + +76 +REQUIRE +( +v +. +is +< +JsObje +>(= +ue +); + +77 +REQUIRE +( +r +. +isNu +(= +l +); + +80 +SECTION +("works on MemberProxy") { + +81 +JsAay + + gr + = +v +["wth"]. +NeedAay +("temp"); + +82 + gr +. +add +(42); + +84 +REQUIRE +( +v +["weather"]["temp"][0] == 42); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/is.cpp + +5  + ~ + +6  + ~ + +8 + gme + < +tyme + + gTV +> + +9  + $checkIsAay +( +TV + +v +) { + +10 + `REQUIRE +( +v +. +me + +is +< +JsAay +>()); + +12 + `REQUIRE_FALSE +( +v +. +me + +is +< +bo +>()); + +13 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +14 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +15 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +16 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +17 + `REQUIRE_FALSE +( +v +. +me + +is +()); + +18 + `REQUIRE_FALSE +( +v +. +me + +is +< +JsObje +>()); + +19 + } +} + +21  + $Aay +( +JsAay + +vue +) { + +22 +DymicJsDocumt + + `doc +(4096); + +24 +JsV + +v + = +doc +. +to +(); + +25 +v +. + `t +( +vue +); + +27 + `checkIsAay +( +v +); + +29 +JsVCڡ + +cv + = +v +; + +30 + `checkIsAay +( +cv +); + +31 + } +} + +33 + gme + < +tyme + + gTV +> + +34  + $checkIsBo +( +TV + +v +) { + +35 + `REQUIRE +( +v +. +me + +is +< +bo +>()); + +37 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +38 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +39 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +40 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +41 + `REQUIRE_FALSE +( +v +. +me + +is +()); + +42 + `REQUIRE_FALSE +( +v +. +me + +is +< +JsAay +>()); + +43 + `REQUIRE_FALSE +( +v +. +me + +is +< +JsObje +>()); + +44 + } +} + +46  + $Bo +( +bo + +vue +) { + +47 +DymicJsDocumt + + `doc +(4096); + +48 +JsV + +v + = +doc +. +to +(); + +49 +v +. + `t +( +vue +); + +51 + `checkIsBo +( +v +); + +52 + `checkIsBo +( + `JsVCڡ +( +v +)); + +53 + } +} + +55 + gme + < +tyme + + gTV +> + +56  + $checkIsFlt +( +TV + +v +) { + +57 + `REQUIRE +( +v +. +me + +is +<>()); + +58 + `REQUIRE +( +v +. +me + +is +<>()); + +60 + `REQUIRE_FALSE +( +v +. +me + +is +< +bo +>()); + +61 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +62 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +63 + `REQUIRE_FALSE +( +v +. +me + +is +()); + +64 + `REQUIRE_FALSE +( +v +. +me + +is +< +JsAay +>()); + +65 + `REQUIRE_FALSE +( +v +. +me + +is +< +JsObje +>()); + +66 + } +} + +68  + $Flt +( +vue +) { + +69 +DymicJsDocumt + + `doc +(4096); + +70 +JsV + +v + = +doc +. +to +(); + +71 +v +. + `t +( +vue +); + +73 + `checkIsFlt +( +v +); + +74 + `checkIsFlt +( + `JsVCڡ +( +v +)); + +75 + } +} + +77 + gme + < +tyme + + gTV +> + +78  + $checkIsIeg +( +TV + +v +) { + +79 + `REQUIRE +( +v +. +me + +is +<>()); + +80 + `REQUIRE +( +v +. +me + +is +<>()); + +81 + `REQUIRE +( +v +. +me + +is +<>()); + +82 + `REQUIRE +( +v +. +me + +is +<>()); + +84 + `REQUIRE_FALSE +( +v +. +me + +is +< +bo +>()); + +85 + `REQUIRE_FALSE +( +v +. +me + +is +()); + +86 + `REQUIRE_FALSE +( +v +. +me + +is +< +JsAay +>()); + +87 + `REQUIRE_FALSE +( +v +. +me + +is +< +JsObje +>()); + +88 + } +} + +90 + gme + < +tyme + + gT +> + +91  + $Ieg +( +T + +vue +) { + +92 +DymicJsDocumt + + `doc +(4096); + +93 +JsV + +v + = +doc +. +to +(); + +94 +v +. + `t +( +vue +); + +96 + `checkIsIeg +( +v +); + +97 + `checkIsIeg +( + `JsVCڡ +( +v +)); + +98 + } +} + +100 + gme + < +tyme + + gTV +> + +101  + $checkIsSg +( +TV + +v +) { + +102 + `REQUIRE +( +v +. +me + +is +()); + +103 + `REQUIRE +( +v +. +me + +is +< +d +:: +rg +>()); + +105 + `REQUIRE_FALSE +( +v +. +me + +is +< +bo +>()); + +106 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +107 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +108 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +109 + `REQUIRE_FALSE +( +v +. +me + +is +<>()); + +110 + `REQUIRE_FALSE +( +v +. +me + +is +< +JsAay +>()); + +111 + `REQUIRE_FALSE +( +v +. +me + +is +< +JsObje +>()); + +112 + } +} + +114  + $Sg +(cڡ * +vue +) { + +115 +DymicJsDocumt + + `doc +(4096); + +116 +JsV + +v + = +doc +. +to +(); + +117 +v +. + `t +( +vue +); + +119 + `checkIsSg +( +v +); + +120 + `checkIsSg +( + `JsVCڡ +( +v +)); + +121 + } +} + +123 +TEST_CASE +("JsonVariant::is()") { + +124 +SECTION +("JsonArray") { + +125 +DymicJsDocumt + +doc +(4096); + +126 +JsAay + + gy + = +doc +. +to +(); + +127 +Aay +( +y +); + +130 +SECTION +("bool") { + +131 +Bo +( +ue +); + +132 +Bo +( +l +); + +135 +SECTION +("double") { + +136 +Flt +(4.2); + +139 +SECTION +("int") { + +140 +Ieg +(42); + +143 +SECTION +("long") { + +144 +Ieg +(42L); + +147 +SECTION +("string") { + +148 +Sg +("42"); + +151 +SECTION +("null") { + +152 +DymicJsDocumt + +doc +(4096); + +153 +derlizeJs +( +doc +, "[null]"); + +154 +JsV + + gv + = +doc +[0]; + +156 +REQUIRE +( +v +. +is +< +bo +>(= +l +); + +157 +REQUIRE +( +v +. +is +<*>(= +l +); + +158 +REQUIRE +( +v +. +is +<>(= +l +); + +159 +REQUIRE +( +v +. +is +< +d +:: +rg +>(= +l +); + +160 +REQUIRE +( +v +. +is +<>(= +l +); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/isnull.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonVariant::isNull()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsV + + gv + = +doc +. +to +(); + +12 +SECTION +("returnrue when Undefined") { + +13 +REQUIRE +( +v +. +isNu +(= +ue +); + +16 +SECTION +("return false when Integer") { + +17 + gv +. +t +(42); + +19 +REQUIRE +( +v +. +isNu +(= +l +); + +22 +SECTION +("return false when EmptyArray") { + +23 +DymicJsDocumt + +doc2 +(4096); + +24 +JsAay + + gy + = +doc2 +. +to +(); + +26 + gv +. +t +( +y +); + +27 +REQUIRE +( +v +. +isNu +(= +l +); + +30 +SECTION +("return false when EmptyObject") { + +31 +DymicJsDocumt + +doc2 +(4096); + +32 +JsObje + + gobj + = +doc2 +. +to +(); + +34 + gv +. +t +( +obj +); + +35 +REQUIRE +( +v +. +isNu +(= +l +); + +38 +SECTION +("returnruefter set(JsonArray())") { + +39 + gv +. +t +( +JsAay +()); + +40 +REQUIRE +( +v +. +isNu +(= +ue +); + +43 +SECTION +("returnruefter set(JsonObject())") { + +44 + gv +. +t +( +JsObje +()); + +45 +REQUIRE +( +v +. +isNu +(= +ue +); + +48 +SECTION +("return falsefter set('hello')") { + +49 + gv +. +t +("hello"); + +50 +REQUIRE +( +v +. +isNu +(= +l +); + +53 +SECTION +("returnruefter set((char*)0)") { + +54 + gv +. +t +( +ic_ +<*>(0)); + +55 +REQUIRE +( +v +. +isNu +(= +ue +); + +58 +SECTION +("returnruefter set((const char*)0)") { + +59 + gv +. +t +( +ic_ +(0)); + +60 +REQUIRE +( +v +. +isNu +(= +ue +); + +63 +SECTION +("returnruefter set(serialized((char*)0))") { + +64 + gv +. +t +( +rlized +( +ic_ +<*>(0))); + +65 +REQUIRE +( +v +. +isNu +(= +ue +); + +68 +SECTION +("returnruefter set(serialized((const char*)0))") { + +69 + gv +. +t +( +rlized +( +ic_ +(0))); + +70 +REQUIRE +( +v +. +isNu +(= +ue +); + +73 +SECTION +("works with JsonVariantConst") { + +74 + gv +. +t +(42); + +76 +JsVCڡ + + gcv + = +v +; + +78 +REQUIRE +( +cv +. +isNu +(= +l +); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/memoryUsage.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +TEST_CASE +("JsonVariant::memoryUsage()") { + +10 +DymicJsDocumt + +doc +(4096); + +11 +JsV + + gv + = +doc +. +to +(); + +13 +SECTION +("returns 0 if uninitialized") { + +14 +JsV + + gunlized +; + +15 +REQUIRE +( +unlized +. +memyUge +() == 0); + +18 +SECTION +("returns size of object") { + +19 +JsObje + + gobj + = +v +. +to +(); + +20 + gobj +["hello"] = 42; + +21 +REQUIRE +( +v +. +memyUge +(= +JSON_OBJECT_SIZE +(1)); + +24 +SECTION +("returns size ofrray") { + +25 +JsAay + + gr + = +v +. +to +(); + +26 + gr +. +add +(42); + +27 +REQUIRE +( +v +. +memyUge +(= +JSON_ARRAY_SIZE +(1)); + +30 +SECTION +("returns size of owned string") { + +31 + gv +. +t +( +d +:: +rg +("hello")); + +32 +REQUIRE +( +v +. +memyUge +() == 6); + +35 +SECTION +("returns size of ownedaw") { + +36 + gv +. +t +( +rlized +( +d +:: +rg +("hello"))); + +37 +REQUIRE +( +v +. +memyUge +() == 5); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/misc.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonVariant from JsonArray") { + +9 +SECTION +("JsonArray isull") { + +10 +JsAay + + gr +; + +11 +JsV + + gv + = +r +; + +12 +REQUIRE +( +v +. +isNu +(= +ue +); + +15 +SECTION +("JsonArray isotull") { + +16 +DymicJsDocumt + +doc +(4096); + +17 +JsAay + + gr + = +doc +. +to +(); + +18 + gr +. +add +(12); + +19 + gr +. +add +(34); + +21 +JsV + + gv + = +r +; + +23 +REQUIRE +( +v +. +is +< +JsAay +>(= +ue +); + +24 +REQUIRE +( +v +. +size +() == 2); + +25 +REQUIRE +( +v +[0] == 12); + +26 +REQUIRE +( +v +[1] == 34); + +30 +TEST_CASE +("JsonVariant from JsonObject") { + +31 +SECTION +("JsonObject isull") { + +32 +JsObje + + gobj +; + +33 +JsV + + gv + = +obj +; + +34 +REQUIRE +( +v +. +isNu +(= +ue +); + +37 +SECTION +("JsonObject isotull") { + +38 +DymicJsDocumt + +doc +(4096); + +39 +JsObje + + gobj + = +doc +. +to +(); + +40 + gobj +["a"] = 12; + +41 + gobj +["b"] = 34; + +43 +JsV + + gv + = +obj +; + +45 +REQUIRE +( +v +. +is +< +JsObje +>(= +ue +); + +46 +REQUIRE +( +v +. +size +() == 2); + +47 +REQUIRE +( +v +["a"] == 12); + +48 +REQUIRE +( +v +["b"] == 34); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/nesting.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonVariant::nesting()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsV + + gv + = +doc +. +to +(); + +12 +SECTION +("return 0 if uninitialized") { + +13 +JsV + + gunlized +; + +14 +REQUIRE +( +unlized +. +ág +() == 0); + +17 +SECTION +("returns 0 for string") { + +18 + gv +. +t +("hello"); + +19 +REQUIRE +( +v +. +ág +() == 0); + +22 +SECTION +("returns 1 formpty object") { + +23 + gv +. + gto +< + gJsObje +>(); + +24 +REQUIRE +( +v +. +ág +() == 1); + +27 +SECTION +("returns 1 formptyrray") { + +28 + gv +. + gto +< + gJsAay +>(); + +29 +REQUIRE +( +v +. +ág +() == 1); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/or.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonVariant::operator|()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsV + + gv + = +doc +. +to +(); + +12 +SECTION +("undefined") { + +13 +SECTION +("undefined | const char*") { + +14 + gd +:: +rg + +su + = +v + | "default"; + +15 +REQUIRE +( +su + == "default"); + +18 +SECTION +("undefined | int") { + +19  + gsu + = +v + | 42; + +20 +REQUIRE +( +su + == 42); + +23 +SECTION +("undefined | bool") { + +24 +bo + + gsu + = +v + | +ue +; + +25 +REQUIRE +( +su + = +ue +); + +29 +SECTION +("null") { + +30 + gv +. +t +( +ic_ +(0)); + +32 +SECTION +("null | const char*") { + +33 + gd +:: +rg + +su + = +v + | "default"; + +34 +REQUIRE +( +su + == "default"); + +37 +SECTION +("null | int") { + +38  + gsu + = +v + | 42; + +39 +REQUIRE +( +su + == 42); + +42 +SECTION +("null | bool") { + +43 +bo + + gsu + = +v + | +ue +; + +44 +REQUIRE +( +su + = +ue +); + +48 +SECTION +("int | const char*") { + +49 + gv +. +t +(42); + +50 + gd +:: +rg + +su + = +v + | "default"; + +51 +REQUIRE +( +su + == "default"); + +54 +SECTION +("int | uint8_t (out ofange)") { + +55 + gv +. +t +(666); + +56 +ut8_t + + gsu + = +v + | +ic_ +(42); + +57 +REQUIRE +( +su + == 42); + +60 +SECTION +("int | int") { + +61 + gv +. +t +(0); + +62  + gsu + = +v + | 666; + +63 +REQUIRE +( +su + == 0); + +66 +SECTION +("double | int") { + +68 + gv +. +t +(666.0); + +69  + gsu + = +v + | 42; + +70 +REQUIRE +( +su + == 42); + +73 +SECTION +("bool | bool") { + +74 + gv +. +t +( +l +); + +75 +bo + + gsu + = +v + | +ue +; + +76 +REQUIRE +( +su + = +l +); + +79 +SECTION +("int | bool") { + +80 + gv +. +t +(0); + +81 +bo + + gsu + = +v + | +ue +; + +82 +REQUIRE +( +su + = +ue +); + +85 +SECTION +("const char* | const char*") { + +86 + gv +. +t +("not default"); + +87 + gd +:: +rg + +su + = +v + | "default"; + +88 +REQUIRE +( +su + == "not default"); + +91 +SECTION +("const char* | int") { + +92 + gv +. +t +("not default"); + +93  + gsu + = +v + | 42; + +94 +REQUIRE +( +su + == 42); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/overflow.cpp + +5  + ~ + +6  + ~ + +8 + gme + < +tyme + + gTOut +,ym + gTIn +> + +9  + $shouldBeOk +( +TIn + +vue +) { + +10 +SticJsDocumt +<1> +doc +; + +11 +JsV + +v + = +doc +. +to +(); + +12 +v +. + `t +( +vue +); + +13 + `REQUIRE +( +v +. +as +< +TOut +>(= + `TOut +( +vue +)); + +14 + } +} + +16 + gme + < +tyme + + gTOut +,ym + gTIn +> + +17  + $shouldOvow +( +TIn + +vue +) { + +18 +SticJsDocumt +<1> +doc +; + +19 +JsV + +v + = +doc +. +to +(); + +20 +v +. + `t +( +vue +); + +21 + `REQUIRE +( +v +. +as +< +TOut +>() == 0); + +22 + `REQUIRE +( +v +. +is +< +TOut +>(= +l +); + +23 + } +} + +25 +TEST_CASE +("Handle integer overflow in stored integer") { + +26 +SECTION +("int8_t") { + +28 + gshouldBeOk +< + gt8_t +>(-128); + +29 + gshouldBeOk +< + gt8_t +>(42.0); + +30 + gshouldBeOk +< + gt8_t +>(127); + +33 + gshouldOvow +< + gt8_t +>(-128.1); + +34 + gshouldOvow +< + gt8_t +>(-129); + +37 + gshouldOvow +< + gt8_t +>(128); + +38 + gshouldOvow +< + gt8_t +>(127.1); + +41 +SECTION +("int16_t") { + +43 + gshouldBeOk +< + gt16_t +>(-32768); + +44 + gshouldBeOk +< + gt16_t +>(-32767.9); + +45 + gshouldBeOk +< + gt16_t +>(32766.9); + +46 + gshouldBeOk +< + gt16_t +>(32767); + +49 + gshouldOvow +< + gt16_t +>(-32768.1); + +50 + gshouldOvow +< + gt16_t +>(-32769); + +53 + gshouldOvow +< + gt16_t +>(32767.1); + +54 + gshouldOvow +< + gt16_t +>(32768); + +57 +SECTION +("uint8_t") { + +59 + gshouldBeOk +< + gut8_t +>(1); + +60 + gshouldBeOk +< + gut8_t +>(42.0); + +61 + gshouldBeOk +< + gut8_t +>(255); + +64 + gshouldOvow +< + gut8_t +>(-1); + +65 + gshouldOvow +< + gut8_t +>(-0.1); + +68 + gshouldOvow +< + gut8_t +>(255.1); + +69 + gshouldOvow +< + gut8_t +>(256); + +70 + gshouldOvow +< + gut8_t +>(257); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/remove.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 cڡ * + gnu + = 0; + +11 +TEST_CASE +("JsonVariant::remove()") { + +12 +DymicJsDocumt + +doc +(4096); + +13 +JsV + + gv + = +doc +. +to +(); + +15 +SECTION +("remove(int)") { + +16 + gv +. +add +(1); + +17 + gv +. +add +(2); + +18 + gv +. +add +(3); + +20 + gv +. +move +(1); + +22 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "[1,3]"); + +25 +SECTION +("remove(const char *)") { + +26 + gv +["a"] = 1; + +27 + gv +["b"] = 2; + +29 + gv +. +move +("a"); + +31 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "{\"b\":2}"); + +34 +SECTION +("remove(std::string)") { + +35 + gv +["a"] = 1; + +36 + gv +["b"] = 2; + +38 + gv +. +move +( +d +:: +rg +("b")); + +40 +REQUIRE +( +v +. +as +< +d +:: +rg +>() == "{\"a\":1}"); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/set.cpp + +5  + ~ + +6  + ~ + +8 + eECode + { + mERROR_01 + = 1, + mERROR_10 + = 10 }; + +10 +TEST_CASE +("JsonVariantnd strings") { + +11 +DymicJsDocumt + +doc +(4096); + +12 +JsV + + gv + = +doc +. +to +(); + +14 +SECTION +("stores const char* byeference") { + +15  + gr +[16]; + +17 +ry +( +r +, "hello"); + +18 + gv +. +t +( +ic_ +( +r +)); + +19 +ry +( +r +, "world"); + +21 +REQUIRE +( +v + == "world"); + +24 +SECTION +("stores char* by copy") { + +25  + gr +[16]; + +27 +ry +( +r +, "hello"); + +28 + gv +. +t +( +r +); + +29 +ry +( +r +, "world"); + +31 +REQUIRE +( +v + == "hello"); + +34 +SECTION +("stores unsigned char* by copy") { + +35  + gr +[16]; + +37 +ry +( +r +, "hello"); + +38 + gv +. +t +( +t_ +<*>( +r +)); + +39 +ry +( +r +, "world"); + +41 +REQUIRE +( +v + == "hello"); + +44 +SECTION +("stores signed char* by copy") { + +45  + gr +[16]; + +47 +ry +( +r +, "hello"); + +48 + gv +. +t +( +t_ +( +r +)); + +49 +ry +( +r +, "world"); + +51 +REQUIRE +( +v + == "hello"); + +54 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +55 +SECTION +("stores VLA by copy") { + +56  + gn + = 16; + +57  + gr +[ +n +]; + +59 +ry +( +r +, "hello"); + +60 + gv +. +t +( +r +); + +61 +ry +( +r +, "world"); + +63 +REQUIRE +( +v + == "hello"); + +67 +SECTION +("stores std::string by copy") { + +68 + gd +:: +rg + +r +; + +70 + gr + = "hello"; + +71 + gv +. +t +( +r +); + +72 + gr +. +a +(0, 5, "world"); + +74 +REQUIRE +( +v + == "hello"); + +77 +SECTION +("stores static JsonString byeference") { + +78  + gr +[16]; + +80 +ry +( +r +, "hello"); + +81 + gv +. +t +( +JsSg +( +r +, +ue +)); + +82 +ry +( +r +, "world"); + +84 +REQUIRE +( +v + == "world"); + +87 +SECTION +("storeson-static JsonString by copy") { + +88  + gr +[16]; + +90 +ry +( +r +, "hello"); + +91 + gv +. +t +( +JsSg +( +r +, +l +)); + +92 +ry +( +r +, "world"); + +94 +REQUIRE +( +v + == "hello"); + +97 +SECTION +("storesnnumsn integer") { + +98 +ECode + + gcode + = +ERROR_10 +; + +100 + gv +. +t +( +code +); + +102 +REQUIRE +( +v +. +is +<>(= +ue +); + +103 +REQUIRE +( +v +. +as +<>() == 10); + +107 +TEST_CASE +("JsonVariant withotnough memory") { + +108 + gSticJsDocumt +<1> + gdoc +; + +110 +JsV + + gv + = +doc +. +to +(); + +112 +SECTION +("std::string") { + +113 + gv +. +t +( +d +:: +rg +("hello world!!")); + +114 +REQUIRE +( +v +. +isNu +()); + +117 +SECTION +("Serialized") { + +118 + gv +. +t +( +rlized +( +d +:: +rg +("hello world!!"))); + +119 +REQUIRE +( +v +. +isNu +()); + +123 +TEST_CASE +("JsonVariant::set(DynamicJsonDocument)") { + +124 +DymicJsDocumt + +doc1 +(1024); + +125 + gdoc1 +["hello"] = "world"; + +127 +DymicJsDocumt + +doc2 +(1024); + +128 +JsV + + gv + = +doc2 +. +to +(); + +131 + gv +. +t +( +doc1 +); + +132 + gdoc1 +. +r +(); + +134 + gd +:: +rg + +js +; + +135 +rlizeJs +( +doc2 +, +js +); + +136 +REQUIRE +( +js + == "{\"hello\":\"world\"}"); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/subscript.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonVariant::operator[]") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsV + + gv + = +doc +. +to +(); + +12 +SECTION +("The JsonVariant is undefined") { + +13 +REQUIRE +(0 = +v +. +size +()); + +14 +REQUIRE +( +v +["0"]. +isNu +()); + +15 +REQUIRE +( +v +[0]. +isNu +()); + +18 +SECTION +("The JsonVariant is string") { + +19 + gv +. +t +("hello world"); + +20 +REQUIRE +(0 = +v +. +size +()); + +21 +REQUIRE +( +v +["0"]. +isNu +()); + +22 +REQUIRE +( +v +[0]. +isNu +()); + +25 +SECTION +("The JsonVariant is JsonArray") { + +26 +JsAay + + gy + = +v +. +to +(); + +28 +SECTION +("get value") { + +29 + gy +. +add +("elementt index 0"); + +30 + gy +. +add +("elementt index 1"); + +32 +REQUIRE +(2 = +v +. +size +()); + +33 + gv +[0]. + gas +< + gd +:: +rg +>(); + +35 +REQUIRE +( +d +:: +rg +("em index 1"= +v +[1]); + +36 +REQUIRE +( +d +:: +rg +("elementt index 0") == + +37 +v +[ +ic_ +<>(0)]); + +38 +REQUIRE +( +v +[666]. +isNu +()); + +39 +REQUIRE +( +v +[3]. +isNu +()); + +40 +REQUIRE +( +v +["0"]. +isNu +()); + +43 +SECTION +("set value") { + +44 + gy +. +add +("hello"); + +46 + gv +[1] = "world"; + +48 +REQUIRE +( +v +. +size +() == 2); + +49 +REQUIRE +( +d +:: +rg +("wld"= +v +[1]); + +52 +SECTION +("set value inested object") { + +53 + gy +. +NeedObje +(); + +55 + gv +[0]["hello"] = "world"; + +57 +REQUIRE +(1 = +v +. +size +()); + +58 +REQUIRE +(1 = +v +[0]. +size +()); + +59 +REQUIRE +( +d +:: +rg +("wld"= +v +[0]["hello"]); + +63 +SECTION +("The JsonVariant is JsonObject") { + +64 +JsObje + + gobje + = +v +. +to +(); + +66 +SECTION +("get value") { + +67 + gobje +["a"] = "elementt key \"a\""; + +68 + gobje +["b"] = "elementt key \"b\""; + +70 +REQUIRE +(2 = +v +. +size +()); + +71 +REQUIRE +( +d +:: +rg +("em key \"a\""= +v +["a"]); + +72 +REQUIRE +( +d +:: +rg +("em key \"b\""= +v +["b"]); + +73 +REQUIRE +( +v +["c"]. +isNu +()); + +74 +REQUIRE +( +v +[0]. +isNu +()); + +77 +SECTION +("set value, key is const char*") { + +78 + gv +["hello"] = "world"; + +80 +REQUIRE +(1 = +v +. +size +()); + +81 +REQUIRE +( +d +:: +rg +("wld"= +v +["hello"]); + +84 +SECTION +("set value, key is char[]") { + +85  + gkey +[] = "hello"; + +86 + gv +[ +key +] = "world"; + +87 + gkey +[0] = '!'; + +89 +REQUIRE +(1 = +v +. +size +()); + +90 +REQUIRE +( +d +:: +rg +("wld"= +v +["hello"]); + +93 +SECTION +("var[key].to()") { + +94 +JsAay + + gr + = +v +["hlo"]. +to +(); + +95 +REQUIRE +( +r +. +isNu +(= +l +); + +99 #i +defed +( +HAS_VARIABLE_LENGTH_ARRAY +) && \ + +100 ! +defed +( +SUBSCRIPT_CONFLICTS_WITH_BUILTIN_OPERATOR +) + +101 +SECTION +("key is VLA") { + +102  + gi + = 16; + +103  + gv +[ +i +]; + +104 +ry +( +v +, "hello"); + +106 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +107 +JsV + + gv + = +doc +. +as +(); + +109 +REQUIRE +( +d +:: +rg +("wld"= +v +[ +v +]); + +112 +SECTION +("key is VLA, const JsonVariant") { + +113  + gi + = 16; + +114  + gv +[ +i +]; + +115 +ry +( +v +, "hello"); + +117 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +118 cڡ +JsV + + gv + = +doc +. +as +(); + +120 +REQUIRE +( +d +:: +rg +("wld"= +v +[ +v +]); + +125 +TEST_CASE +("JsonVariantConst::operator[]") { + +126 +DymicJsDocumt + +doc +(4096); + +127 +JsV + + gv + = +doc +. +to +(); + +128 +JsVCڡ + + gcv + = +v +; + +130 +SECTION +("The JsonVariant is undefined") { + +131 +REQUIRE +(0 = +cv +. +size +()); + +132 +REQUIRE +( +cv +["0"]. +isNu +()); + +133 +REQUIRE +( +cv +[0]. +isNu +()); + +136 +SECTION +("The JsonVariant is string") { + +137 + gv +. +t +("hello world"); + +138 +REQUIRE +(0 = +cv +. +size +()); + +139 +REQUIRE +( +cv +["0"]. +isNu +()); + +140 +REQUIRE +( +cv +[0]. +isNu +()); + +143 +SECTION +("The JsonVariant is JsonArray") { + +144 +JsAay + + gy + = +v +. +to +(); + +146 +SECTION +("get value") { + +147 + gy +. +add +("elementt index 0"); + +148 + gy +. +add +("elementt index 1"); + +150 +REQUIRE +(2 = +cv +. +size +()); + +151 +REQUIRE +( +d +:: +rg +("em index 0"= +cv +[0]); + +152 +REQUIRE +( +d +:: +rg +("em index 1"= +cv +[1]); + +153 +REQUIRE +( +d +:: +rg +("elementt index 0") == + +154 +v +[ +ic_ +<>(0)]); + +155 +REQUIRE +( +cv +[666]. +isNu +()); + +156 +REQUIRE +( +cv +[3]. +isNu +()); + +157 +REQUIRE +( +cv +["0"]. +isNu +()); + +161 +SECTION +("The JsonVariant is JsonObject") { + +162 +JsObje + + gobje + = +v +. +to +(); + +164 +SECTION +("get value") { + +165 + gobje +["a"] = "elementt key \"a\""; + +166 + gobje +["b"] = "elementt key \"b\""; + +168 +REQUIRE +(2 = +cv +. +size +()); + +169 +REQUIRE +( +d +:: +rg +("em key \"a\""= +cv +["a"]); + +170 +REQUIRE +( +d +:: +rg +("em key \"b\""= +cv +["b"]); + +171 +REQUIRE +( +cv +["c"]. +isNu +()); + +172 +REQUIRE +( +cv +[0]. +isNu +()); + +176 +SECTION +("Autoromoteull JsonVarianto JsonObject") { + +177 + gv +["hello"] = "world"; + +179 +REQUIRE +( +v +. +is +< +JsObje +>(= +ue +); + +182 +SECTION +("Don'tutoromoteon-null JsonVarianto JsonObject") { + +183 + gv +. +t +(42); + +184 + gv +["hello"] = "world"; + +186 +REQUIRE +( +v +. +is +< +JsObje +>(= +l +); + +189 +SECTION +("Don'tutoromoteull JsonVarianto JsonObject wheneading") { + +190 cڡ * + gvue + = +v +["hello"]; + +192 +REQUIRE +( +v +. +is +< +JsObje +>(= +l +); + +193 +REQUIRE +( +vue + == 0); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/types.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +8  + ~ + +10 + gme + < +tyme + + gT +> + +11  + $checkVue +( +T + +exed +) { + +12 +DymicJsDocumt + + `doc +(4096); + +13 +JsV + +v + = +doc +. +to +(); + +15 +v +. + `t +( +exed +); + +16 + `REQUIRE +( +exed + = +v +. +as +< +T +>()); + +17 + } +} + +19 + gme + < +tyme + + gT +> + +20  + $checkRen +( +T + & +exed +) { + +21 +JsV + +v + = +exed +; + +22 + `REQUIRE +( +exed + = +v +. +as +< +T + &>()); + +23 + } +} + +25 + gme + < +tyme + + gT +> + +26  + $checkNumicTy +() { + +27 +DymicJsDocumt + + `docM +(4096), + `docMax +(4096); + +28 +JsV + +vM + = +docM +. +to +(); + +29 +JsV + +vMax + = +docMax +. +to +(); + +31 +T + +m + = +d +:: +numic_lims +:: + `m +(); + +32 +T + +max + = +d +:: +numic_lims +:: + `max +(); + +34 +vM +. + `t +( +m +); + +35 +vMax +. + `t +( +max +); + +37 + `REQUIRE +( +m + = +vM +. +as +< +T +>()); + +38 + `REQUIRE +( +max + = +vMax +. +as +< +T +>()); + +39 + } +} + +41 +TEST_CASE +("JsonVariant set()/get()") { + +42 #i +ARDUINOJSON_USE_LONG_LONG + + +43 +SECTION +("SizeOfJsonInteger") { + +44 +REQUIRE +(8 =( +JsIeg +)); + +48 +SECTION +("Null") { + +49 + gcheckVue +( + gNULL +); + +51 +SECTION +("const char*") { + +52 + gcheckVue +("hello"); + +54 +SECTION +("std::string") { + +55 + gcheckVue +< + gd +:: +rg +>("hello"); + +58 +SECTION +("False") { + +59 + gcheckVue +< + gbo +>( + gl +); + +61 +SECTION +("True") { + +62 + gcheckVue +< + gbo +>( + gue +); + +65 +SECTION +("Double") { + +66 + gcheckNumicTy +<>(); + +68 +SECTION +("Float") { + +69 + gcheckNumicTy +<>(); + +71 +SECTION +("Char") { + +72 + gcheckNumicTy +<>(); + +74 +SECTION +("SChar") { + +75 + gcheckNumicTy +(); + +77 +SECTION +("SInt") { + +78 + gcheckNumicTy +(); + +80 +SECTION +("SLong") { + +81 + gcheckNumicTy +(); + +83 +SECTION +("SShort") { + +84 + gcheckNumicTy +(); + +86 +SECTION +("UChar") { + +87 + gcheckNumicTy +<>(); + +89 +SECTION +("UInt") { + +90 + gcheckNumicTy +<>(); + +92 +SECTION +("ULong") { + +93 + gcheckNumicTy +<>(); + +95 +SECTION +("UShort") { + +96 + gcheckNumicTy +<>(); + +98 #i +ARDUINOJSON_USE_LONG_LONG + + +99 +SECTION +("LongLong") { + +100 + gcheckNumicTy +<>(); + +102 +SECTION +("ULongLong") { + +103 + gcheckNumicTy +<>(); + +107 +SECTION +("Int8") { + +108 + gcheckNumicTy +< + gt8_t +>(); + +110 +SECTION +("Uint8") { + +111 + gcheckNumicTy +< + gut8_t +>(); + +113 +SECTION +("Int16") { + +114 + gcheckNumicTy +< + gt16_t +>(); + +116 +SECTION +("Uint16") { + +117 + gcheckNumicTy +< + gut16_t +>(); + +119 +SECTION +("Int32") { + +120 + gcheckNumicTy +< + gt32_t +>(); + +122 +SECTION +("Uint32") { + +123 + gcheckNumicTy +< + gut32_t +>(); + +125 #i +ARDUINOJSON_USE_LONG_LONG + + +126 +SECTION +("Int64") { + +127 + gcheckNumicTy +< + gt64_t +>(); + +129 +SECTION +("Uint64") { + +130 + gcheckNumicTy +< + gut64_t +>(); + +134 +SECTION +("CanStoreObject") { + +135 +DymicJsDocumt + +doc +(4096); + +136 +JsObje + + gobje + = +doc +. +to +(); + +138 + gcheckVue +< + gJsObje +>( + gobje +); + + @lib_standalone/ArduinoJson/extras/tests/JsonVariant/undefined.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("JsonVariant undefined") { + +9 +JsV + + gv +; + +11 +SECTION +("as()") { + +12 +SECTION +("long") { + +13 +REQUIRE +( +v +. +as +<>() == 0); + +16 +SECTION +("unsigned") { + +17 +REQUIRE +( +v +. +as +<>() == 0); + +20 +SECTION +("char*") { + +21 +REQUIRE +( +v +. +as +<*>() == 0); + +24 +SECTION +("double") { + +25 +REQUIRE +( +v +. +as +<>() == 0); + +28 +SECTION +("bool") { + +29 +REQUIRE +( +v +. +as +< +bo +>(= +l +); + +32 +SECTION +("JsonArray") { + +33 +REQUIRE +( +v +. +as +< +JsAay +>(). +isNu +()); + +36 +SECTION +("JsonObject") { + +37 +REQUIRE +( +v +. +as +< +JsObje +>(). +isNu +()); + +41 +SECTION +("is()") { + +42 +SECTION +("long") { + +43 +REQUIRE +( +v +. +is +<>(= +l +); + +46 +SECTION +("unsigned") { + +47 +REQUIRE +( +v +. +is +<>(= +l +); + +50 +SECTION +("char*") { + +51 +REQUIRE +( +v +. +is +<*>(= +l +); + +54 +SECTION +("double") { + +55 +REQUIRE +( +v +. +is +<>(= +l +); + +58 +SECTION +("bool") { + +59 +REQUIRE +( +v +. +is +< +bo +>(= +l +); + +62 +SECTION +("JsonArray") { + +63 +REQUIRE +( +v +. +is +< +JsAay +>(= +l +); + +66 +SECTION +("JsonObject") { + +67 +REQUIRE +( +v +. +is +< +JsObje +>(= +l +); + + @lib_standalone/ArduinoJson/extras/tests/MemberProxy/add.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemberProxy::add()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gMembProxy +< + gJsDocumt +&, cڡ *> + gmp + = +doc +["hello"]; + +14 +SECTION +("add(int)") { + +15 + gmp +. +add +(42); + +17 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"hello\":[42]}"); + +20 +SECTION +("add(const char*)") { + +21 + gmp +. +add +("world"); + +23 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"hello\":[\"world\"]}"); + + @lib_standalone/ArduinoJson/extras/tests/MemberProxy/clear.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemberProxy::clear()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gMembProxy +< + gJsDocumt +&, cڡ *> + gmp + = +doc +["hello"]; + +14 +SECTION +("size goes backo zero") { + +15 + gmp +. +add +(42); + +16 + gmp +. +r +(); + +18 +REQUIRE +( +mp +. +size +() == 0); + +21 +SECTION +("isNull()eturnrue") { + +22 + gmp +. +add +("hello"); + +23 + gmp +. +r +(); + +25 +REQUIRE +( +mp +. +isNu +(= +ue +); + + @lib_standalone/ArduinoJson/extras/tests/MemberProxy/compare.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemberProxy::operator==()") { + +11 +DymicJsDocumt + +doc +(4096); + +13 +SECTION +("same values") { + +14 + gdoc +["key1"] = "value"; + +15 + gdoc +["key2"] = "value"; + +16 +REQUIRE +( +doc +["key1"] == doc["key2"]); + +17 +REQUIRE_FALSE +( +doc +["key1"] != doc["key2"]); + +20 +SECTION +("different values") { + +21 + gdoc +["key1"] = "value1"; + +22 + gdoc +["key2"] = "value2"; + +23 +REQUIRE_FALSE +( +doc +["key1"] == doc["key2"]); + +24 +REQUIRE +( +doc +["key1"] != doc["key2"]); + + @lib_standalone/ArduinoJson/extras/tests/MemberProxy/containsKey.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemberProxy::containsKey()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gMembProxy +< + gJsDocumt +&, cڡ *> + gmp + = +doc +["hello"]; + +14 +SECTION +("containsKey(const char*)") { + +15 + gmp +["key"] = "value"; + +17 +REQUIRE +( +mp +. +cڏsKey +("key"= +ue +); + +18 +REQUIRE +( +mp +. +cڏsKey +("key"= +ue +); + +21 +SECTION +("containsKey(std::string)") { + +22 + gmp +["key"] = "value"; + +24 +REQUIRE +( +mp +. +cڏsKey +( +d +:: +rg +("key")= +ue +); + +25 +REQUIRE +( +mp +. +cڏsKey +( +d +:: +rg +("key")= +ue +); + + @lib_standalone/ArduinoJson/extras/tests/MemberProxy/remove.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemberProxy::remove()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gMembProxy +< + gJsDocumt +&, cڡ *> + gmp + = +doc +["hello"]; + +14 +SECTION +("remove(int)") { + +15 + gmp +. +add +(1); + +16 + gmp +. +add +(2); + +17 + gmp +. +add +(3); + +19 + gmp +. +move +(1); + +21 +REQUIRE +( +mp +. +as +< +d +:: +rg +>() == "[1,3]"); + +24 +SECTION +("remove(const char *)") { + +25 + gmp +["a"] = 1; + +26 + gmp +["b"] = 2; + +28 + gmp +. +move +("a"); + +30 +REQUIRE +( +mp +. +as +< +d +:: +rg +>() == "{\"b\":2}"); + +33 +SECTION +("remove(std::string)") { + +34 + gmp +["a"] = 1; + +35 + gmp +["b"] = 2; + +37 + gmp +. +move +( +d +:: +rg +("b")); + +39 +REQUIRE +( +mp +. +as +< +d +:: +rg +>() == "{\"a\":1}"); + +42 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +43 +SECTION +("remove(vla)") { + +44 + gmp +["a"] = 1; + +45 + gmp +["b"] = 2; + +47  + gi + = 4; + +48  + gv +[ +i +]; + +49 +ry +( +v +, "b"); + +50 + gmp +. +move +( +v +); + +52 +REQUIRE +( +mp +. +as +< +d +:: +rg +>() == "{\"a\":1}"); + + @lib_standalone/ArduinoJson/extras/tests/MemberProxy/set.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemberProxy::set()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gMembProxy +< + gJsDocumt +&, cڡ *> + gmp + = +doc +["hello"]; + +14 +SECTION +("set(int)") { + +15 + gmp +. +t +(42); + +17 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"hello\":42}"); + +20 +SECTION +("set(const char*)") { + +21 + gmp +. +t +("world"); + +23 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"hello\":\"world\"}"); + +26 +SECTION +("set(char[])") { + +27  + gs +[] = "world"; + +28 + gmp +. +t +( +s +); + +29 +ry +( +s +, "!!!!!"); + +31 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"hello\":\"world\"}"); + + @lib_standalone/ArduinoJson/extras/tests/MemberProxy/size.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemberProxy::size()") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gMembProxy +< + gJsDocumt +&, cڡ *> + gmp + = +doc +["hello"]; + +14 +SECTION +("returns 0") { + +15 +REQUIRE +( +mp +. +size +() == 0); + +18 +SECTION +("asnrray,eturn 2") { + +19 + gmp +. +add +(1); + +20 + gmp +. +add +(2); + +22 +REQUIRE +( +mp +. +size +() == 2); + +25 +SECTION +("asn object,eturn 2") { + +26 + gmp +["a"] = 1; + +27 + gmp +["b"] = 2; + +29 +REQUIRE +( +mp +. +size +() == 2); + + @lib_standalone/ArduinoJson/extras/tests/MemberProxy/subscript.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemberProxy::operator[]") { + +11 +DymicJsDocumt + +doc +(4096); + +12 + gMembProxy +< + gJsDocumt +&, cڡ *> + gmp + = +doc +["hello"]; + +14 +SECTION +("set member") { + +15 + gmp +["world"] = 42; + +17 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"hello\":{\"world\":42}}"); + +20 +SECTION +("setlement") { + +21 + gmp +[2] = 42; + +23 +REQUIRE +( +doc +. +as +< +d +:: +rg +>() == "{\"hello\":[null,null,42]}"); + + @lib_standalone/ArduinoJson/extras/tests/MemoryPool/StringBuilder.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +11 +TEST_CASE +("StringBuilder") { + +12  + gbufr +[4096]; + +14 +SECTION +("Works when buffer is bignough") { + +15 +MemyPo + +po +( +bufr +, +addPaddg +( +JSON_STRING_SIZE +(6))); + +17 +SgBud + +r +(& +po +); + +18 + gr +. +nd +("hello"); + +20 +REQUIRE +( +r +. +come +(= +d +:: +rg +("hello")); + +23 +SECTION +("Returnsull whenoo small") { + +24 +MemyPo + +po +( +bufr +, (*)); + +26 +SgBud + +r +(& +po +); + +27 + gr +. +nd +("hello world!"); + +29 +REQUIRE +( +r +. +come +() == 0); + +32 +SECTION +("Increases size of memoryool") { + +33 +MemyPo + +po +( +bufr +, +addPaddg +( +JSON_STRING_SIZE +(6))); + +35 +SgBud + +r +(& +po +); + +36 + gr +. +nd +('h'); + +37 + gr +. +come +(); + +39 +REQUIRE +( +JSON_STRING_SIZE +(2= +po +. +size +()); + + @lib_standalone/ArduinoJson/extras/tests/MemoryPool/allocString.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemoryPool::allocFrozenString()") { + +11 cڡ +size_t + + gpoCacy + = 64; + +12 cڡ +size_t + + glgeSg + = +poCacy +; + +13  + gbufr +[ +poCacy +]; + +14 +MemyPo + +po +( +bufr +, +poCacy +); + +16 +SECTION +("Returns differentddresses") { + +17 * + ga + = +po +. +locFrozSg +(1); + +18 * + gb + = +po +. +locFrozSg +(1); + +19 +REQUIRE +( +a + ! +b +); + +22 +SECTION +("Returns NULL when full") { + +23 * + gp1 + = +po +. +locFrozSg +( +lgeSg +); + +24 +REQUIRE +( +p1 + != 0); + +26 * + gp2 + = +po +. +locFrozSg +(1); + +27 +REQUIRE +( +p2 + == 0); + +30 +SECTION +("Returns NULL whenool isoo small") { + +31 * + gp + = +po +. +locFrozSg +( +lgeSg + + 1); + +32 +REQUIRE +(0 = +p +); + +35 +SECTION +("Returns NULL when buffer is NULL") { + +36 +MemyPo + +po2 +(0, +poCacy +); + +37 +REQUIRE +(0 = +po2 +. +locFrozSg +(2)); + +40 +SECTION +("Returns NULL when capacity is 0") { + +41 +MemyPo + +po2 +( +bufr +, 0); + +42 +REQUIRE +(0 = +po2 +. +locFrozSg +(2)); + +45 +SECTION +("Returns sameddressfter clear()") { + +46 * + ga + = +po +. +locFrozSg +(1); + +47 + gpo +. +r +(); + +48 * + gb + = +po +. +locFrozSg +(1); + +50 +REQUIRE +( +a + = +b +); + +53 +SECTION +("Can use full capacity when fresh") { + +54 * + ga + = +po +. +locFrozSg +( +lgeSg +); + +56 +REQUIRE +( +a + != 0); + +59 +SECTION +("Can use full capacityfter clear") { + +60 + gpo +. +locFrozSg +( +lgeSg +); + +61 + gpo +. +r +(); + +63 * + ga + = +po +. +locFrozSg +( +lgeSg +); + +65 +REQUIRE +( +a + != 0); + + @lib_standalone/ArduinoJson/extras/tests/MemoryPool/allocVariant.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemoryPool::allocVariant()") { + +11  + gbufr +[4096]; + +13 +SECTION +("Returns differentointer") { + +14 +MemyPo + +po +( +bufr +, (buffer)); + +16 +VSl +* + gs1 + = +po +. +locV +(); + +17 +REQUIRE +( +s1 + != 0); + +18 +VSl +* + gs2 + = +po +. +locV +(); + +19 +REQUIRE +( +s2 + != 0); + +21 +REQUIRE +( +s1 + ! +s2 +); + +24 +SECTION +("Returnslignedointers") { + +25 +MemyPo + +po +( +bufr +, (buffer)); + +27 +REQUIRE +( +isAligd +( +po +. +locV +())); + +28 +REQUIRE +( +isAligd +( +po +. +locV +())); + +31 +SECTION +("Returns zero if capacity is 0") { + +32 +MemyPo + +po +( +bufr +, 0); + +34 +REQUIRE +( +po +. +locV +() == 0); + +37 +SECTION +("Returns zero if buffer isull") { + +38 +MemyPo + +po +(0, ( +bufr +)); + +40 +REQUIRE +( +po +. +locV +() == 0); + +43 +SECTION +("Returns zero if capacity is insufficient") { + +44 +MemyPo + +po +( +bufr +, ( +VSl +)); + +46 + gpo +. +locV +(); + +48 +REQUIRE +( +po +. +locV +() == 0); + + @lib_standalone/ArduinoJson/extras/tests/MemoryPool/clear.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 cڡ +size_t + + gpoCacy + = 512; + +12 +TEST_CASE +("MemoryPool::clear()") { + +13  + gbufr +[ +poCacy +]; + +14 +MemyPo + +po +( +bufr +, (buffer)); + +16 +SECTION +("Discardsllocated variants") { + +17 + gpo +. +locV +(); + +19 + gpo +. +r +(); + +20 +REQUIRE +( +po +. +size +() == 0); + +23 +SECTION +("Discardsllocated strings") { + +24 + gpo +. +locFrozSg +(10); + +25 +REQUIRE +( +po +. +size +() > 0); + +27 + gpo +. +r +(); + +29 +REQUIRE +( +po +. +size +() == 0); + + @lib_standalone/ArduinoJson/extras/tests/MemoryPool/size.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("MemoryPool::capacity()") { + +11  + gbufr +[4096]; + +12 cڡ +size_t + + gcy + = 64; + +13 +MemyPo + +po +( +bufr +, +cy +); + +14 +REQUIRE +( +cy + = +po +.capacity()); + +17 +TEST_CASE +("MemoryPool::size()") { + +18  + gbufr +[4096]; + +19 +MemyPo + +po +( +bufr +, (buffer)); + +21 +SECTION +("Initial size is 0") { + +22 +REQUIRE +(0 = +po +. +size +()); + +25 +SECTION +("size() == capacity()fterllocExpandableString()") { + +26 + gpo +. +locExndabSg +(); + +27 +REQUIRE +( +po +. +size +(=po. +cy +()); + +30 +SECTION +("Decreasesfter freezeString()") { + +31 +SgSl + + ga + = +po +. +locExndabSg +(); + +32 + gpo +. +zeSg +( +a +, 1); + +33 +REQUIRE +( +po +. +size +(= +JSON_STRING_SIZE +(1)); + +35 +SgSl + + gb + = +po +. +locExndabSg +(); + +36 + gpo +. +zeSg +( +b +, 1); + +37 +REQUIRE +( +po +. +size +(=2 * +JSON_STRING_SIZE +(1)); + +40 +SECTION +("IncreasesfterllocFrozenString()") { + +41 + gpo +. +locFrozSg +(0); + +42 +REQUIRE +( +po +. +size +(= +JSON_STRING_SIZE +(0)); + +44 + gpo +. +locFrozSg +(0); + +45 +REQUIRE +( +po +. +size +(=2 * +JSON_STRING_SIZE +(0)); + +48 +SECTION +("Doesn't grow when memoryool is full") { + +49 cڡ +size_t + + gvCou + = ( +bufr +/ ( +VSl +); + +51  +size_t + + gi + = 0; i < + gvCou +; i++ + gpo +. +locV +(); + +52 +size_t + + gsize + = +po +. +size +(); + +54 + gpo +. +locV +(); + +56 +REQUIRE +( +size + = +po +.size()); + + @lib_standalone/ArduinoJson/extras/tests/Misc/FloatParts.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("FloatParts") { + +11 +SECTION +("1.7976931348623157E+308") { + +12 + gFltPts +<> +s +(1.7976931348623157E+308); + +13 +REQUIRE +( +s +. +gl + == 1); + +14 +REQUIRE +( +s +. +decim + == 797693135); + +15 +REQUIRE +( +s +. +decimPs + == 9); + +16 +REQUIRE +( +s +. +expڒt + == 308); + +19 +SECTION +("4.94065645841247e-324") { + +20 + gFltPts +<> +s +(4.94065645841247e-324); + +21 +REQUIRE +( +s +. +gl + == 4); + +22 +REQUIRE +( +s +. +decim + == 940656458); + +23 +REQUIRE +( +s +. +decimPs + == 9); + +24 +REQUIRE +( +s +. +expڒt + == -324); + +28 +TEST_CASE +("FloatParts") { + +29 +SECTION +("3.4E+38") { + +30 + gFltPts +<> +s +(3.4E+38f); + +31 +REQUIRE +( +s +. +gl + == 3); + +32 +REQUIRE +( +s +. +decim + == 4); + +33 +REQUIRE +( +s +. +decimPs + == 1); + +34 +REQUIRE +( +s +. +expڒt + == 38); + +37 +SECTION +("1.17549435e−38") { + +38 + gFltPts +<> +s +(1.17549435e-38f); + +39 +REQUIRE +( +s +. +gl + == 1); + +40 +REQUIRE +( +s +. +decim + == 175494); + +41 +REQUIRE +( +s +. +decimPs + == 6); + +42 +REQUIRE +( +s +. +expڒt + == -38); + + @lib_standalone/ArduinoJson/extras/tests/Misc/Issue1189.cpp + +5  + ~ + +8  + $f +( +JsDocumt +{ + } +} + +10  + $ma +() { + +11 +DymicJsDocumt + + `doc +(1024); + +12 + `f +( +doc +); + +13 + } +} + + @lib_standalone/ArduinoJson/extras/tests/Misc/Issue978.cpp + +5  + ~ + +7  + sSm + {}; + +9  + $ma +() { + +10 +Sm +* +am + = 0; + +11 +DymicJsDocumt + + `doc +(1024); + +12 + `derlizeJs +( +doc +, +am +); + +13 + } +} + + @lib_standalone/ArduinoJson/extras/tests/Misc/Readers.cpp + +5  + #ARDUINOJSON_ENABLE_ARDUINO_STREAM + 1 + + ) + +6  + ~ + +7  + ~ + +9 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +11 +TEST_CASE +("Reader") { + +12 +SECTION +("read()") { + +13 + gd +:: +irgam + +c +("\x01\xFF"); + +14 + gRd +< + gd +:: +irgam +> +ad +( +c +); + +16 +REQUIRE +( +ad +. +ad +() == 0x01); + +17 +REQUIRE +( +ad +. +ad +() == 0xFF); + +18 +REQUIRE +( +ad +. +ad +() == -1); + +21 +SECTION +("readBytes()llt once") { + +22 + gd +:: +irgam + +c +("ABC"); + +23 + gRd +< + gd +:: +irgam +> +ad +( +c +); + +25  + gbufr +[8] = "abcd"; + +26 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 3); + +28 +REQUIRE +( +bufr +[0] == 'A'); + +29 +REQUIRE +( +bufr +[1] == 'B'); + +30 +REQUIRE +( +bufr +[2] == 'C'); + +31 +REQUIRE +( +bufr +[3] == 'd'); + +34 +SECTION +("readBytes() inwoarts") { + +35 + gd +:: +irgam + +c +("ABCDEF"); + +36 + gRd +< + gd +:: +irgam +> +ad +( +c +); + +38  + gbufr +[12] = "abcdefg"; + +39 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 4); + +40 +REQUIRE +( +ad +. +adBys +( +bufr + + 4, 4) == 2); + +42 +REQUIRE +( +bufr +[0] == 'A'); + +43 +REQUIRE +( +bufr +[1] == 'B'); + +44 +REQUIRE +( +bufr +[2] == 'C'); + +45 +REQUIRE +( +bufr +[3] == 'D'); + +46 +REQUIRE +( +bufr +[4] == 'E'); + +47 +REQUIRE +( +bufr +[5] == 'F'); + +48 +REQUIRE +( +bufr +[6] == 'g'); + +52 +TEST_CASE +("BoundedReader") { + +53 +SECTION +("read") { + +54 + gBoundedRd + +ad +("\x01\xFF", 2); + +55 +REQUIRE +( +ad +. +ad +() == 0x01); + +56 +REQUIRE +( +ad +. +ad +() == 0xFF); + +57 +REQUIRE +( +ad +. +ad +() == -1); + +58 +REQUIRE +( +ad +. +ad +() == -1); + +61 +SECTION +("readBytes()llt once") { + +62 + gBoundedRd + +ad +("ABCD", 3); + +64  + gbufr +[8] = "abcd"; + +65 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 3); + +67 +REQUIRE +( +bufr +[0] == 'A'); + +68 +REQUIRE +( +bufr +[1] == 'B'); + +69 +REQUIRE +( +bufr +[2] == 'C'); + +70 +REQUIRE +( +bufr +[3] == 'd'); + +73 +SECTION +("readBytes() inwoarts") { + +74 + gBoundedRd + +ad +("ABCDEF", 6); + +76  + gbufr +[8] = "abcdefg"; + +77 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 4); + +78 +REQUIRE +( +ad +. +adBys +( +bufr + + 4, 4) == 2); + +80 +REQUIRE +( +bufr +[0] == 'A'); + +81 +REQUIRE +( +bufr +[1] == 'B'); + +82 +REQUIRE +( +bufr +[2] == 'C'); + +83 +REQUIRE +( +bufr +[3] == 'D'); + +84 +REQUIRE +( +bufr +[4] == 'E'); + +85 +REQUIRE +( +bufr +[5] == 'F'); + +86 +REQUIRE +( +bufr +[6] == 'g'); + +90 +TEST_CASE +("Reader") { + +91 +SECTION +("read()") { + +92 + gRd + +ad +("\x01\xFF\x00\x12"); + +93 +REQUIRE +( +ad +. +ad +() == 0x01); + +94 +REQUIRE +( +ad +. +ad +() == 0xFF); + +95 +REQUIRE +( +ad +. +ad +() == 0); + +96 +REQUIRE +( +ad +. +ad +() == 0x12); + +99 +SECTION +("readBytes()llt once") { + +100 + gRd + +ad +("ABCD"); + +102  + gbufr +[8] = "abcd"; + +103 +REQUIRE +( +ad +. +adBys +( +bufr +, 3) == 3); + +105 +REQUIRE +( +bufr +[0] == 'A'); + +106 +REQUIRE +( +bufr +[1] == 'B'); + +107 +REQUIRE +( +bufr +[2] == 'C'); + +108 +REQUIRE +( +bufr +[3] == 'd'); + +111 +SECTION +("readBytes() inwoarts") { + +112 + gRd + +ad +("ABCDEF"); + +114  + gbufr +[8] = "abcdefg"; + +115 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 4); + +116 +REQUIRE +( +ad +. +adBys +( +bufr + + 4, 2) == 2); + +118 +REQUIRE +( +bufr +[0] == 'A'); + +119 +REQUIRE +( +bufr +[1] == 'B'); + +120 +REQUIRE +( +bufr +[2] == 'C'); + +121 +REQUIRE +( +bufr +[3] == 'D'); + +122 +REQUIRE +( +bufr +[4] == 'E'); + +123 +REQUIRE +( +bufr +[5] == 'F'); + +124 +REQUIRE +( +bufr +[6] == 'g'); + +128 +TEST_CASE +("IteratorReader") { + +129 +SECTION +("read()") { + +130 + gd +:: +rg + +c +("\x01\xFF"); + +131 + gItRd +< + gd +:: +rg +:: +cڡ_ +> +ad +( +c +. +beg +(), src. +d +()); + +133 +REQUIRE +( +ad +. +ad +() == 0x01); + +134 +REQUIRE +( +ad +. +ad +() == 0xFF); + +135 +REQUIRE +( +ad +. +ad +() == -1); + +138 +SECTION +("readBytes()llt once") { + +139 + gd +:: +rg + +c +("ABC"); + +140 + gItRd +< + gd +:: +rg +:: +cڡ_ +> +ad +( +c +. +beg +(), src. +d +()); + +142  + gbufr +[8] = "abcd"; + +143 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 3); + +145 +REQUIRE +( +bufr +[0] == 'A'); + +146 +REQUIRE +( +bufr +[1] == 'B'); + +147 +REQUIRE +( +bufr +[2] == 'C'); + +148 +REQUIRE +( +bufr +[3] == 'd'); + +151 +SECTION +("readBytes() inwoarts") { + +152 + gd +:: +rg + +c +("ABCDEF"); + +153 + gItRd +< + gd +:: +rg +:: +cڡ_ +> +ad +( +c +. +beg +(), src. +d +()); + +155  + gbufr +[12] = "abcdefg"; + +156 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 4); + +157 +REQUIRE +( +ad +. +adBys +( +bufr + + 4, 4) == 2); + +159 +REQUIRE +( +bufr +[0] == 'A'); + +160 +REQUIRE +( +bufr +[1] == 'B'); + +161 +REQUIRE +( +bufr +[2] == 'C'); + +162 +REQUIRE +( +bufr +[3] == 'D'); + +163 +REQUIRE +( +bufr +[4] == 'E'); + +164 +REQUIRE +( +bufr +[5] == 'F'); + +165 +REQUIRE +( +bufr +[6] == 'g'); + +169 as + cSmStub + : +public + +Sm + { + +170 +public +: + +171 + $SmStub +(cڡ * +s +: + $_am +( +s +) {} + +173  + $ad +() { + +174  +_am +. + `g +(); + +175 + } +} + +177 +size_t + + $adBys +(* +bufr +, +size_t + +ngth +) { + +178 +_am +. + `ad +( +bufr +, +ic_ +< +d +:: +amsize +>( +ngth +)); + +179  +ic_ +< +size_t +>( +_am +. + `gcou +()); + +180 + } +} + +182 + give +: + +183 +d +:: +irgam + +_am +; + +186 +TEST_CASE +("Reader") { + +187 +SECTION +("read()") { + +188 +SmStub + +c +("\x01\xFF"); + +189 + gRd +< + gSmStub +> +ad +( +c +); + +191 +REQUIRE +( +ad +. +ad +() == 0x01); + +192 +REQUIRE +( +ad +. +ad +() == 0xFF); + +193 +REQUIRE +( +ad +. +ad +() == -1); + +196 +SECTION +("readBytes()llt once") { + +197 +SmStub + +c +("ABC"); + +198 + gRd +< + gSmStub +> +ad +( +c +); + +200  + gbufr +[8] = "abcd"; + +201 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 3); + +203 +REQUIRE +( +bufr +[0] == 'A'); + +204 +REQUIRE +( +bufr +[1] == 'B'); + +205 +REQUIRE +( +bufr +[2] == 'C'); + +206 +REQUIRE +( +bufr +[3] == 'd'); + +209 +SECTION +("readBytes() inwoarts") { + +210 +SmStub + +c +("ABCDEF"); + +211 + gRd +< + gSmStub +> +ad +( +c +); + +213  + gbufr +[12] = "abcdefg"; + +214 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 4); + +215 +REQUIRE +( +ad +. +adBys +( +bufr + + 4, 4) == 2); + +217 +REQUIRE +( +bufr +[0] == 'A'); + +218 +REQUIRE +( +bufr +[1] == 'B'); + +219 +REQUIRE +( +bufr +[2] == 'C'); + +220 +REQUIRE +( +bufr +[3] == 'D'); + +221 +REQUIRE +( +bufr +[4] == 'E'); + +222 +REQUIRE +( +bufr +[5] == 'F'); + +223 +REQUIRE +( +bufr +[6] == 'g'); + + @lib_standalone/ArduinoJson/extras/tests/Misc/StringAdapters.cpp + +5  + ~"cuom_rg.h +" + +6  + ~"ogmem_emuti.h +" + +7  + ~"wed_rcmp.h +" + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14  + ~ + +16 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +18 +TEST_CASE +("ConstRamStringAdapter") { + +19 +SECTION +("null") { + +20 +CڡRamSgAdr + +adr +( +NULL +); + +22 +CHECK +( +adr +. +com +("bravo") < 0); + +23 +CHECK +( +adr +. +com +( +NULL +) == 0); + +25 +CHECK +( +adr +. +equs +( +NULL +)); + +26 +CHECK_FALSE +( +adr +. +equs +("charlie")); + +28 +CHECK +( +adr +. +size +() == 0); + +31 +SECTION +("non-null") { + +32 +CڡRamSgAdr + +adr +("bravo"); + +34 +CHECK +( +adr +. +com +( +NULL +) > 0); + +35 +CHECK +( +adr +. +com +("alpha") > 0); + +36 +CHECK +( +adr +. +com +("bravo") == 0); + +37 +CHECK +( +adr +. +com +("charlie") < 0); + +39 +CHECK +( +adr +. +equs +("bravo")); + +40 +CHECK_FALSE +( +adr +. +equs +("charlie")); + +42 +CHECK +( +adr +. +size +() == 5); + +46 +TEST_CASE +("SizedRamStringAdapter") { + +47 +SECTION +("null") { + +48 +SizedRamSgAdr + +adr +( +NULL +, 10); + +50 +CHECK +( +adr +. +com +("bravo") < 0); + +51 +CHECK +( +adr +. +com +( +NULL +) == 0); + +53 +CHECK +( +adr +. +equs +( +NULL +)); + +54 +CHECK_FALSE +( +adr +. +equs +("charlie")); + +56 +CHECK +( +adr +. +size +() == 10); + +59 +SECTION +("non-null") { + +60 +SizedRamSgAdr + +adr +("bravo", 5); + +62 +CHECK +( +adr +. +com +( +NULL +) > 0); + +63 +CHECK +( +adr +. +com +("alpha") > 0); + +64 +CHECK +( +adr +. +com +("bravo") == 0); + +65 +CHECK +( +adr +. +com +("charlie") < 0); + +67 +CHECK +( +adr +. +equs +("bravo")); + +68 +CHECK_FALSE +( +adr +. +equs +("charlie")); + +70 +CHECK +( +adr +. +size +() == 5); + +74 +TEST_CASE +("FlashStringAdapter") { + +75 +SECTION +("null") { + +76 +FshSgAdr + +adr +( +NULL +); + +78 +CHECK +( +adr +. +com +("bravo") < 0); + +79 +CHECK +( +adr +. +com +( +NULL +) == 0); + +81 +CHECK +( +adr +. +equs +( +NULL +)); + +82 +CHECK_FALSE +( +adr +. +equs +("charlie")); + +84 +CHECK +( +adr +. +size +() == 0); + +87 +SECTION +("non-null") { + +88 +FshSgAdr + + gadr + = +adtSg +( +F +("bravo")); + +90 +CHECK +( +adr +. +com +( +NULL +) > 0); + +91 +CHECK +( +adr +. +com +("alpha") > 0); + +92 +CHECK +( +adr +. +com +("bravo") == 0); + +93 +CHECK +( +adr +. +com +("charlie") < 0); + +95 +CHECK +( +adr +. +equs +("bravo")); + +96 +CHECK_FALSE +( +adr +. +equs +("charlie")); + +98 +CHECK +( +adr +. +size +() == 5); + +102 +TEST_CASE +("std::string") { + +103 + gd +:: +rg + +r +("bravo"); + +104 + gSSgAdr +< + gd +:: +rg +> +adr + = +adtSg +( +r +); + +106 +CHECK +( +adr +. +com +( +NULL +) > 0); + +107 +CHECK +( +adr +. +com +("alpha") > 0); + +108 +CHECK +( +adr +. +com +("bravo") == 0); + +109 +CHECK +( +adr +. +com +("charlie") < 0); + +111 +CHECK +( +adr +. +equs +("bravo")); + +112 +CHECK_FALSE +( +adr +. +equs +("charlie")); + +114 +CHECK +( +adr +. +size +() == 5); + +117 +TEST_CASE +("custom_string") { + +118 +cuom_rg + +r +("bravo"); + +119 + gSSgAdr +< + gcuom_rg +> + gadr + = +adtSg +( +r +); + +121 +CHECK +( +adr +. +com +( +NULL +) > 0); + +122 +CHECK +( +adr +. +com +("alpha") > 0); + +123 +CHECK +( +adr +. +com +("bravo") == 0); + +124 +CHECK +( +adr +. +com +("charlie") < 0); + +126 +CHECK +( +adr +. +equs +("bravo")); + +127 +CHECK_FALSE +( +adr +. +equs +("charlie")); + +129 +CHECK +( +adr +. +size +() == 5); + +132 +TEST_CASE +("IsString") { + +133 +SECTION +("std::string") { + +134 +CHECK +( +IsSg +< +d +:: +rg +>:: +vue + = +ue +); + +137 +SECTION +("basic_string") { + +138 +CHECK +( +IsSg +< +d +:: +basic_rg +< +wch_t +> >:: +vue + = +l +); + +141 +SECTION +("custom_string") { + +142 +CHECK +( +IsSg +< +cuom_rg +>:: +vue + = +ue +); + +145 +SECTION +("const __FlashStringHelper*") { + +146 +CHECK +( +IsSg +:: +vue + = +ue +); + + @lib_standalone/ArduinoJson/extras/tests/Misc/StringWriter.cpp + +5  + #ARDUINOJSON_ENABLE_ARDUINO_STRING + 1 + + ) + +6  + #ARDUINOJSON_STRING_BUFFER_SIZE + 5 + + ) + +7  + ~ + +8  + ~ + +9  + ~"cuom_rg.h +" + +11 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +13 + gme + < +tyme + + gSgWr +> + +14  +size_t + + $t +( +SgWr +& +sb +, cڡ * +s +) { + +15  +sb +. + `wre +( +t_ +( +s +), + ` +(s)); + +16 + } +} + +18 + gme + < +tyme + + gSgWr +,ym + gSg +> + +19  + $comm_s +( +SgWr +& +sb +, cڡ +Sg +& +ouut +) { + +20 + `SECTION +("InitialState") { + +21 + `REQUIRE +( +d +:: + `rg +(""= +ouut +); + +24 + `SECTION +("EmptyString") { + +25 + `REQUIRE +(0 = + `t +( +sb +, "")); + +26 + `REQUIRE +( +d +:: + `rg +(""= +ouut +); + +29 + `SECTION +("OneString") { + +30 + `REQUIRE +(4 = + `t +( +sb +, "ABCD")); + +31 + `REQUIRE +( +d +:: + `rg +("ABCD"= +ouut +); + +34 + `SECTION +("TwoStrings") { + +35 + `REQUIRE +(4 = + `t +( +sb +, "ABCD")); + +36 + `REQUIRE +(4 = + `t +( +sb +, "EFGH")); + +37 + `REQUIRE +( +d +:: + `rg +("ABCDEFGH"= +ouut +); + +39 + } +} + +41 +TEST_CASE +("StaticStringWriter") { + +42  + gouut +[20]; + +43 +SticSgWr + +sb +( +ouut +, (output)); + +45 +comm_s +( +sb +, +ic_ +( +ouut +)); + +47 +SECTION +("OverCapacity") { + +48 +REQUIRE +(19 = +t +( +sb +, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")); + +49 +REQUIRE +(0 = +t +( +sb +, "ABC")); + +50 +REQUIRE +( +d +:: +rg +("ABCDEFGHIJKLMNOPQRS"= +ouut +); + +54 +TEST_CASE +("Writer") { + +55 + gd +:: +rg + +ouut +; + +56 + gWr +< + gd +:: +rg +> +sb +( +ouut +); + +57 +comm_s +( +sb +, +ouut +); + +60 +TEST_CASE +("Writer") { + +61 :: +Sg + +ouut +; + +62 + gWr +< :: +Sg +> +sb +( +ouut +); + +64 +comm_s +( +sb +, +ouut +); + +66 +SECTION +("Writes charactersoemporary buffer") { + +68 + gsb +. +wre +('a'); + +69 + gsb +. +wre +('b'); + +70 + gsb +. +wre +('c'); + +71 +REQUIRE +( +ouut + == ""); + +74 + gsb +. +wre +('d'); + +75 +REQUIRE +( +ouut + == "abcd"); + +78 + gsb +. +wre +('e'); + +79 + gsb +.~ +Wr +(); + +80 +REQUIRE +( +ouut + == "abcde"); + +83 +SECTION +("Writes stringsoemporary buffer") { + +85 +t +( +sb +, "abc"); + +86 +REQUIRE +( +ouut + == ""); + +89 +t +( +sb +, "de"); + +90 +REQUIRE +( +ouut + == "abcd"); + +93 + gsb +.~ +Wr +(); + +94 +REQUIRE +( +ouut + == "abcde"); + +98 +TEST_CASE +("Writer") { + +99 +cuom_rg + + gouut +; + +100 + gWr +< + gcuom_rg +> +sb +( +ouut +); + +102 +REQUIRE +(4 = +t +( +sb +, "ABCD")); + +103 +REQUIRE +("ABCD" = +ouut +); + +106 +TEST_CASE +("IsWriteableString") { + +107 +SECTION +("std::string") { + +108 +REQUIRE +( +IsWrbSg +< +d +:: +rg +>:: +vue + = +ue +); + +111 +SECTION +("custom_string") { + +112 +REQUIRE +( +IsWrbSg +< +cuom_rg +>:: +vue + = +ue +); + +115 +SECTION +("basic_string") { + +116 +REQUIRE +( +IsWrbSg +< +d +:: +basic_rg +< +wch_t +> >:: +vue + = +l +); + + @lib_standalone/ArduinoJson/extras/tests/Misc/TypeTraits.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 as + cEmyCss + {}; + +11 + eEmyEnum + {}; + +13 +TEST_CASE +("Polyfills/type_traits") { + +14 +SECTION +("is_base_of") { + +15 +REQUIRE_FALSE +( + +16 +ic_ +< +bo +>( +is_ba_of +< +d +:: +iam +, std:: +orgam +>:: +vue +)); + +17 +REQUIRE +( + +18 +ic_ +< +bo +>( +is_ba_of +< +d +:: +iam +, std:: +irgam +>:: +vue +)); + +21 +SECTION +("is_array") { + +22 +REQUIRE_FALSE +(( +is_y +:: +vue +)); + +23 +REQUIRE +(( +is_y +:: +vue +)); + +24 +REQUIRE +(( +is_y +:: +vue +)); + +27 +SECTION +("is_const") { + +28 +CHECK +( +is_cڡ +<>:: +vue + = +l +); + +29 +CHECK +( +is_cڡ +:: +vue + = +ue +); + +32 +SECTION +("is_signed") { + +33 +CHECK +( +is_sigd +<>:: +vue + = +ue +); + +34 +CHECK +( +is_sigd +:: +vue + = +ue +); + +35 +CHECK +( +is_sigd +:: +vue + = +ue +); + +36 +CHECK +( +is_sigd +:: +vue + = +ue +); + +37 +CHECK +( +is_sigd +:: +vue + = +ue +); + +38 +CHECK +( +is_sigd +<>:: +vue + = +ue +); + +39 +CHECK +( +is_sigd +<>:: +vue + = +ue +); + +40 +CHECK +( +is_sigd +< +bo +>:: +vue + = +l +); + +43 +SECTION +("is_unsigned") { + +44 +CHECK +( +is_unsigd +<>:: +vue + = +ue +); + +45 +CHECK +( +is_unsigd +<>:: +vue + = +ue +); + +46 +CHECK +( +is_unsigd +<>:: +vue + = +ue +); + +47 +CHECK +( +is_unsigd +<>:: +vue + = +ue +); + +48 +CHECK +( +is_unsigd +< +bo +>:: +vue + = +ue +); + +49 +CHECK +( +is_unsigd +<>:: +vue + = +l +); + +50 +CHECK +( +is_unsigd +<>:: +vue + = +l +); + +51 +CHECK +( +is_unsigd +<>:: +vue + = +l +); + +54 +SECTION +("is_convertible") { + +55 +CHECK +(( +is_cvtib +<, >:: +vue + = +ue +)); + +56 +CHECK +(( +is_cvtib +<, >:: +vue + = +ue +)); + +57 +CHECK +(( +is_cvtib +< +EmyEnum +, >:: +vue + = +ue +)); + +58 +CHECK +(( +is_cvtib +<*, >:: +vue + = +l +)); + +59 +CHECK +(( +is_cvtib +< +EmyCss +, >:: +vue + = +l +)); + +62 +SECTION +("is_class") { + +63 +CHECK +(( +is_ass +<>:: +vue + = +l +)); + +64 +CHECK +(( +is_ass +< +EmyEnum +>:: +vue + = +l +)); + +65 +CHECK +(( +is_ass +<*>:: +vue + = +l +)); + +66 +CHECK +(( +is_ass +< +EmyCss +>:: +vue + = +ue +)); + +69 +SECTION +("is_enum") { + +70 +CHECK +( +is_um +<>:: +vue + = +l +); + +71 +CHECK +( +is_um +< +EmyEnum +>:: +vue + = +ue +); + +72 +CHECK +( +is_um +<*>:: +vue + = +l +); + +73 +CHECK +( +is_um +< +EmyCss +>:: +vue + = +l +); + +74 +CHECK +( +is_um +< +bo +>:: +vue + = +l +); + +75 +CHECK +( +is_um +<>:: +vue + = +l +); + +78 +SECTION +("IsVisitable") { + +79 +CHECK +( +IsVisab +< +DerliziE +>:: +vue + = +l +); + +80 +CHECK +( +IsVisab +< +JsPa +>:: +vue + = +l +); + +81 +CHECK +( +IsVisab +< +VRef +>:: +vue + = +ue +); + +82 +CHECK +( +IsVisab +< +VCڡRef +>:: +vue + = +ue +); + +83 +CHECK +( +IsVisab +< +AayRef +>:: +vue + = +ue +); + +84 +CHECK +( +IsVisab +< +EmtProxy +< +AayRef +> >:: +vue + = +ue +); + +85 +CHECK +( +IsVisab +< +AayCڡRef +>:: +vue + = +ue +); + +86 +CHECK +( +IsVisab +< +ObjeRef +>:: +vue + = +ue +); + +87 +CHECK +(( +IsVisab +< +MembProxy +< +ObjeRef +, cڡ *> >:: +vue + = +ue +)); + +88 +CHECK +( +IsVisab +< +ObjeCڡRef +>:: +vue + = +ue +); + +89 +CHECK +( +IsVisab +< +DymicJsDocumt +>:: +vue + = +ue +); + +90 +CHECK +( +IsVisab +< +SticJsDocumt +<10> >:: +vue + = +ue +); + + @lib_standalone/ArduinoJson/extras/tests/Misc/Utf16.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10  + $Utf16Codot +( +ut16_t + +codeun +, +ut32_t + +exedCodot +) { + +11 +Utf16 +:: +Codot + + +; + +12 + `REQUIRE +( + +. + `nd +( +codeun += +ue +); + +13 + `REQUIRE +( + +. + `vue +(= +exedCodot +); + +14 + } +} + +16  + $Utf16Codot +( +ut16_t + +codeun1 +, ut16_ +codeun2 +, + +17 +ut32_t + +exedCodot +) { + +18 +Utf16 +:: +Codot + + +; + +19 + `REQUIRE +( + +. + `nd +( +codeun1 += +l +); + +20 + `REQUIRE +( + +. + `nd +( +codeun2 += +ue +); + +21 + `REQUIRE +( + +. + `vue +(= +exedCodot +); + +22 + } +} + +24 +TEST_CASE +("Utf16::Codepoint()") { + +25 +SECTION +("U+0000") { + +26 +Utf16Codot +(0x0000, 0x000000); + +29 +SECTION +("U+0001") { + +30 +Utf16Codot +(0x0001, 0x000001); + +33 +SECTION +("U+D7FF") { + +34 +Utf16Codot +(0xD7FF, 0x00D7FF); + +37 +SECTION +("U+E000") { + +38 +Utf16Codot +(0xE000, 0x00E000); + +41 +SECTION +("U+FFFF") { + +42 +Utf16Codot +(0xFFFF, 0x00FFFF); + +45 +SECTION +("U+010000") { + +46 +Utf16Codot +(0xD800, 0xDC00, 0x010000); + +49 +SECTION +("U+010001") { + +50 +Utf16Codot +(0xD800, 0xDC01, 0x010001); + +53 +SECTION +("U+0103FF") { + +54 +Utf16Codot +(0xD800, 0xDFFF, 0x0103FF); + +57 +SECTION +("U+010400") { + +58 +Utf16Codot +(0xD801, 0xDC00, 0x010400); + +61 +SECTION +("U+010400") { + +62 +Utf16Codot +(0xDBFF, 0xDC00, 0x10FC00); + +65 +SECTION +("U+10FFFF") { + +66 +Utf16Codot +(0xDBFF, 0xDFFF, 0x10FFFF); + + @lib_standalone/ArduinoJson/extras/tests/Misc/Utf8.cpp + +5  + ~ + +6  + ~ + +8  + ~ + +10 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +12  + $Codot +( +ut32_t + +codot +, +d +:: +rg + +exed +) { + +13  +bufr +[4096]; + +14 +MemyPo + + `po +( +bufr +, 4096); + +15 +SgBud + + `r +(& +po +); + +17 + `CAPTURE +( +codot +); + +18 +Utf8 +:: + `codeCodot +( +codot +, +r +); + +20 + `REQUIRE +( +r +. + `come +(= +exed +); + +21 + } +} + +23 +TEST_CASE +("Utf8::encodeCodepoint()") { + +24 +SECTION +("U+0000") { + +25 +Codot +(0x0000, ""); + +28 +SECTION +("U+0001") { + +29 +Codot +(0x0001, "\x01"); + +32 +SECTION +("U+007F") { + +33 +Codot +(0x007F, "\x7f"); + +36 +SECTION +("U+0080") { + +37 +Codot +(0x0080, "\xc2\x80"); + +40 +SECTION +("U+07FF") { + +41 +Codot +(0x07FF, "\xdf\xbf"); + +44 +SECTION +("U+0800") { + +45 +Codot +(0x0800, "\xe0\xa0\x80"); + +48 +SECTION +("U+FFFF") { + +49 +Codot +(0xFFFF, "\xef\xbf\xbf"); + +52 +SECTION +("U+10000") { + +53 +Codot +(0x10000, "\xf0\x90\x80\x80"); + +56 +SECTION +("U+10FFFF") { + +57 +Codot +(0x10FFFF, "\xf4\x8f\xbf\xbf"); + + @lib_standalone/ArduinoJson/extras/tests/Misc/conflicts.cpp + +6  + ~ + +7  + ~ + +8  + ~ + +11  + #b +() + + ) + +12  + #cڡ +() + + ) + +13  + #DEFAULT + + + ) + +14  + #DISABLED + + + ) + +15  + #HIGH + + + ) + +16  + #INPUT + + + ) + +17  + #LOW + + + ) + +18  + #max +() + + ) + +19  + #m +() + + ) + +20  + #OUTPUT + + + ) + +21  + #round +() + + ) + +22  + #sq +() + + ) + +23  + #wd +() + + ) + +24  + #bRd +() + + ) + +25  + #bS +() + + ) + +26  + #bCˬ +() + + ) + +27  + #bWre +() + + ) + +28  + #us +() + + ) + +29  + #lowBy +() + + ) + +30  + #highBy +() + + ) + +31  + #DEC + + + ) + +32  + #HEX + + + ) + +33  + #OCT + + + ) + +34  + #BIN + + + ) + +35  + #cbi +() + + ) + +36  + #sbi +() + + ) + +39  + #_max +() + + ) + +40  + #_m +() + + ) + +43  + #BLOCKSIZE + + + ) + +44  + #CAPACITY + + + ) + +47  + ~"ArduoJs.h +" + + @lib_standalone/ArduinoJson/extras/tests/Misc/custom_string.hpp + +5 #agm + + + +7  + ~ + +9  + gcuom_ch_as + : +d +:: +ch_as +<> {}; + +10  + gcuom_lot + : +d +:: +lot +<> {}; + +11  + gd +:: + tbasic_rg +<, + tcuom_ch_as +, + tcuom_lot +> + +12 + tcuom_rg +; + + @lib_standalone/ArduinoJson/extras/tests/Misc/unsigned_char.cpp + +5  + ~ + +6  + ~ + +8 #i +defed +( +__g__ +) + +9  + #CONFLICTS_WITH_BUILTIN_OPERATOR + + + ) + +12 +TEST_CASE +("unsigned char[]") { + +13 +SECTION +("deserializeJson()") { + +14  + gput +[] = "{\"a\":42}"; + +16 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(1)> + gdoc +; + +17 +DerliziE + + gr + = +derlizeJs +( +doc +, +put +); + +19 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +22 +SECTION +("deserializeMsgPack()") { + +23  + gput +[] = "\xDE\x00\x01\xA5Hello\xA5world"; + +25 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(2)> + gdoc +; + +26 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +28 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +31 +SECTION +("serializeMsgPack(unsigned char[])") { + +32  + gbufr +[32]; + +33 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(2)> + gdoc +; + +34 + gdoc +["hello"] = "world"; + +36 +size_t + + gn + = +rlizeMsgPack +( +doc +, +bufr +); + +38 +REQUIRE +( +n + == 13); + +39 +REQUIRE +( +memcmp +( +bufr +, "\x81\xA5hello\xA5world", 13) == 0); + +42 +SECTION +("serializeMsgPack(unsigned char*)") { + +43  + gbufr +[32]; + +44 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(2)> + gdoc +; + +45 + gdoc +["hello"] = "world"; + +47 +size_t + + gn + = +rlizeMsgPack +( +doc +, +bufr +, (buffer)); + +49 +REQUIRE +( +n + == 13); + +50 +REQUIRE +( +memcmp +( +bufr +, "\x81\xA5hello\xA5world", 13) == 0); + +53 +SECTION +("serializeJson(unsigned char[])") { + +54  + gbufr +[32]; + +55 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(2)> + gdoc +; + +56 + gdoc +["hello"] = "world"; + +58 +size_t + + gn + = +rlizeJs +( +doc +, +bufr +); + +60 +REQUIRE +( +n + == 17); + +61 +REQUIRE +( +memcmp +( +bufr +, "{\"hlo\":\"wld\"}", +n +) == 0); + +64 +SECTION +("serializeJson(unsigned char*)") { + +65  + gbufr +[32]; + +66 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(2)> + gdoc +; + +67 + gdoc +["hello"] = "world"; + +69 +size_t + + gn + = +rlizeJs +( +doc +, +bufr +, (buffer)); + +71 +REQUIRE +( +n + == 17); + +72 +REQUIRE +( +memcmp +( +bufr +, "{\"hlo\":\"wld\"}", +n +) == 0); + +75 +SECTION +("serializeJsonPretty(unsigned char[])") { + +76  + gbufr +[32]; + +77 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(2)> + gdoc +; + +78 + gdoc +["hello"] = "world"; + +80 +size_t + + gn + = +rlizeJsPy +( +doc +, +bufr +); + +82 +REQUIRE +( +n + == 24); + +85 +SECTION +("serializeJsonPretty(unsigned char*)") { + +86  + gbufr +[32]; + +87 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(2)> + gdoc +; + +88 + gdoc +["hello"] = "world"; + +90 +size_t + + gn + = +rlizeJsPy +( +doc +, +bufr +, (buffer)); + +92 +REQUIRE +( +n + == 24); + +95 +SECTION +("JsonVariant") { + +96 +DymicJsDocumt + +doc +(4096); + +98 +SECTION +("set") { + +99  + gvue +[] = "42"; + +101 +JsV + + gv + = +doc +. +to +(); + +102 + gv +. +t +( +vue +); + +104 +REQUIRE +(42 = +v +. +as +<>()); + +107 #ide +CONFLICTS_WITH_BUILTIN_OPERATOR + + +108 +SECTION +("operator[]") { + +109  + gkey +[] = "hello"; + +111 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +112 +JsV + + gv + = +doc +. +as +(); + +114 +REQUIRE +( +d +:: +rg +("wld"= +v +[ +key +]); + +118 #ide +CONFLICTS_WITH_BUILTIN_OPERATOR + + +119 +SECTION +("operator[] const") { + +120  + gkey +[] = "hello"; + +122 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +123 cڡ +JsV + + gv + = +doc +. +as +(); + +125 +REQUIRE +( +d +:: +rg +("wld"= +v +[ +key +]); + +129 +SECTION +("operator==") { + +130  + gcomnd +[] = "hello"; + +132 +JsV + + gv + = +doc +. +to +(); + +133 + gv +. +t +("hello"); + +135 +REQUIRE +( +comnd + = +v +); + +136 +REQUIRE +( +v + = +comnd +); + +137 +REQUIRE_FALSE +( +comnd + ! +v +); + +138 +REQUIRE_FALSE +( +v + ! +comnd +); + +141 +SECTION +("operator!=") { + +142  + gcomnd +[] = "hello"; + +144 +JsV + + gv + = +doc +. +to +(); + +145 + gv +. +t +("world"); + +147 +REQUIRE +( +comnd + ! +v +); + +148 +REQUIRE +( +v + ! +comnd +); + +149 +REQUIRE_FALSE +( +comnd + = +v +); + +150 +REQUIRE_FALSE +( +v + = +comnd +); + +154 +SECTION +("JsonObject") { + +155 #ide +CONFLICTS_WITH_BUILTIN_OPERATOR + + +156 +SECTION +("operator[]") { + +157  + gkey +[] = "hello"; + +159 +DymicJsDocumt + +doc +(4096); + +160 +JsObje + + gobj + = +doc +. +to +(); + +161 + gobj +[ +key +] = "world"; + +163 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hello"]); + +166 +SECTION +("JsonObject::operator[] const") { + +167  + gkey +[] = "hello"; + +169 +DymicJsDocumt + +doc +(4096); + +170 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +172 +JsObje + + gobj + = +doc +. +as +(); + +173 +REQUIRE +( +d +:: +rg +("wld"= +obj +[ +key +]); + +177 +SECTION +("containsKey()") { + +178  + gkey +[] = "hello"; + +180 +DymicJsDocumt + +doc +(4096); + +181 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +182 +JsObje + + gobj + = +doc +. +as +(); + +183 +REQUIRE +( +ue + = +obj +. +cڏsKey +( +key +)); + +186 +SECTION +("remove()") { + +187  + gkey +[] = "hello"; + +189 +DymicJsDocumt + +doc +(4096); + +190 +derlizeJs +( +doc +, "{\"hello\":\"world\"}"); + +191 +JsObje + + gobj + = +doc +. +as +(); + +192 + gobj +. +move +( +key +); + +194 +REQUIRE +(0 = +obj +. +size +()); + +197 +SECTION +("createNestedArray()") { + +198  + gkey +[] = "hello"; + +200 +DymicJsDocumt + +doc +(4096); + +201 +JsObje + + gobj + = +doc +. +to +(); + +202 + gobj +. +NeedAay +( +key +); + +205 +SECTION +("createNestedObject()") { + +206  + gkey +[] = "hello"; + +208 +DymicJsDocumt + +doc +(4096); + +209 +JsObje + + gobj + = +doc +. +to +(); + +210 + gobj +. +NeedObje +( +key +); + +214 +SECTION +("MemberProxy") { + +215 +SECTION +("operator=") { + +216  + gvue +[] = "world"; + +218 +DymicJsDocumt + +doc +(4096); + +219 +JsObje + + gobj + = +doc +. +to +(); + +220 + gobj +["hlo"] = +vue +; + +222 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hello"]); + +225 +SECTION +("set()") { + +226  + gvue +[] = "world"; + +228 +DymicJsDocumt + +doc +(4096); + +229 +JsObje + + gobj + = +doc +. +to +(); + +230 + gobj +["hlo"]. +t +( +vue +); + +232 +REQUIRE +( +d +:: +rg +("wld"= +obj +["hello"]); + +236 +SECTION +("JsonArray") { + +237 +SECTION +("add()") { + +238  + gvue +[] = "world"; + +240 +DymicJsDocumt + +doc +(4096); + +241 +JsAay + + gr + = +doc +. +to +(); + +242 + gr +. +add +( +vue +); + +244 +REQUIRE +( +d +:: +rg +("wld"= +r +[0]); + +248 +SECTION +("ElementProxy") { + +249 +SECTION +("set()") { + +250  + gvue +[] = "world"; + +252 +DymicJsDocumt + +doc +(4096); + +253 +JsAay + + gr + = +doc +. +to +(); + +254 + gr +. +add +("hello"); + +255 + gr +[0]. +t +( +vue +); + +257 +REQUIRE +( +d +:: +rg +("wld"= +r +[0]); + +260 +SECTION +("operator=") { + +261  + gvue +[] = "world"; + +263 +DymicJsDocumt + +doc +(4096); + +264 +JsAay + + gr + = +doc +. +to +(); + +265 + gr +. +add +("hello"); + +266 + gr +[0] = +vue +; + +268 +REQUIRE +( +d +:: +rg +("wld"= +r +[0]); + + @lib_standalone/ArduinoJson/extras/tests/Misc/version.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +usg + + gCch +:: +Mchs +:: +SsWh +; + +11 +TEST_CASE +("ARDUINOJSON_VERSION") { + +12 + gd +:: +rgam + +vsi +; + +14 + gvsi + << + gARDUINOJSON_VERSION_MAJOR + << "." << + gARDUINOJSON_VERSION_MINOR + + +15 << "." << + gARDUINOJSON_VERSION_REVISION +; + +17 +REQUIRE_THAT +( +ARDUINOJSON_VERSION +, +SsWh +( +vsi +. +r +())); + + @lib_standalone/ArduinoJson/extras/tests/Misc/weird_strcmp.hpp + +1  + ~ + +5 +mea + + gARDUINOJSON_NAMESPACE + { + +6  +rcmp +(cڡ * +a +, cڡ * +b +) { + +7  + gsu + = :: +rcmp +( +a +, +b +); + +8 i( + gsu + > 0) + +10 i( + gsu + < 0) + +15  +cmp +(cڡ * +a +, cڡ * +b +, +size_t + +n +) { + +16  + gsu + = :: +cmp +( +a +, +b +, +n +); + +17 i( + gsu + > 0) + +19 i( + gsu + < 0) + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/cpp11.cpp + +1  + ~ + +3  + ~ + +5 #i +__lulus + >= 201103L + +7 +TEST_CASE +("nullptr") { + +8 +DymicJsDocumt + +doc +(4096); + +9 +JsV + + gv + = +doc +. +to +(); + +11 +SECTION +("JsonVariant ==ullptr") { + +12 +REQUIRE +(( +v + = +nuαr +)); + +13 +REQUIRE_FALSE +(( +v + ! +nuαr +)); + +16 +SECTION +("JsonVariant !=ullptr") { + +17 + gv +. +t +(42); + +19 +REQUIRE_FALSE +(( +v + = +nuαr +)); + +20 +REQUIRE +(( +v + ! +nuαr +)); + +23 +SECTION +("JsonVariant.set(nullptr)") { + +24 + gv +. +t +(42); + +25 + gv +. +t +( +nuαr +); + +27 +REQUIRE +( +v +. +isNu +()); + +30 +SECTION +("JsonVariant.is()") { + +31 + gv +. +t +(42); + +32 +REQUIRE +( +v +. +is +< +d +:: +nuαr_t +>(= +l +); + +34 + gv +. +r +(); + +35 +REQUIRE +( +v +. +is +< +d +:: +nuαr_t +>(= +ue +); + +39 +TEST_CASE +("Issue #1120") { + +40 + gSticJsDocumt +<500> + gdoc +; + +41 +cڡex +  + gr +[] = + +43 +derlizeJs +( +doc +, +r +); + +45 +SECTION +("MemberProxy::isNull()") { + +46 +SECTION +("returns false") { + +47 aut + gvue + = +doc +[ +d +:: +rg +("contents")]; + +48 +CHECK +( +vue +. +isNu +(= +l +); + +51 +SECTION +("returnsrue") { + +52 aut + gvue + = +doc +[ +d +:: +rg +("zontents")]; + +53 +CHECK +( +vue +. +isNu +(= +ue +); + +57 +SECTION +("ElementProxy >::isNull()") { + +58 +SECTION +("returns false") { + +59 aut + gvue + = +doc +["contents"][1]; + +60 +CHECK +( +vue +. +isNu +(= +l +); + +63 +SECTION +("returnsrue") { + +64 aut + gvue + = +doc +["contents"][2]; + +65 +CHECK +( +vue +. +isNu +(= +ue +); + +69 +SECTION +("MemberProxy, const char*>::isNull()") { + +70 +SECTION +("returns false") { + +71 aut + gvue + = +doc +["contents"][1]["module"]; + +72 +CHECK +( +vue +. +isNu +(= +l +); + +75 +SECTION +("returnsrue") { + +76 aut + gvue + = +doc +["contents"][1]["zodule"]; + +77 +CHECK +( +vue +. +isNu +(= +ue +); + +81 +SECTION +("MemberProxy, std::string>::isNull()") { + +82 +SECTION +("returns false") { + +83 aut + gvue + = +doc +["cڋs"][1][ +d +:: +rg +("module")]; + +84 +CHECK +( +vue +. +isNu +(= +l +); + +87 +SECTION +("returnsrue") { + +88 aut + gvue + = +doc +["cڋs"][1][ +d +:: +rg +("zodule")]; + +89 +CHECK +( +vue +. +isNu +(= +ue +); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/decode_unicode_0.cpp + +1  + #ARDUINOJSON_DECODE_UNICODE + 0 + + ) + +2  + ~ + +4  + ~ + +6 +TEST_CASE +("ARDUINOJSON_DECODE_UNICODE == 0") { + +7 +DymicJsDocumt + +doc +(2048); + +8 +DerliziE + + gr + = +derlizeJs +( +doc +, "\"\\uD834\\uDD1E\""); + +10 +REQUIRE +( +r + = +DerliziE +:: +NSu܋d +); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/decode_unicode_1.cpp + +1  + #ARDUINOJSON_DECODE_UNICODE + 1 + + ) + +2  + ~ + +4  + ~ + +6 +TEST_CASE +("ARDUINOJSON_DECODE_UNICODE == 1") { + +7 +DymicJsDocumt + +doc +(2048); + +8 +DerliziE + + gr + = +derlizeJs +( +doc +, "\"\\uD834\\uDD1E\""); + +10 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_0.cpp + +5  + #ARDUINOJSON_ENABLE_COMMENTS + 0 + + ) + +6  + ~ + +8  + ~ + +10 +TEST_CASE +("Comments shouldroduce InvalidInput") { + +11 +DymicJsDocumt + +doc +(2048); + +13 cڡ * + gCas +[] = { + +47 cڡ +size_t + + gCou + = ( +Cas +) / (testCases[0]); + +49  +size_t + + gi + = 0; i < + gCou +; i++) { + +50 cڡ * + gput + = +Cas +[ +i +]; + +51 +CAPTURE +( +put +); + +52 +REQUIRE +( +derlizeJs +( +doc +, +put += +DerliziE +:: +InvidIut +); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_1.cpp + +5  + #ARDUINOJSON_ENABLE_COMMENTS + 1 + + ) + +6  + ~ + +8  + ~ + +10 +TEST_CASE +("Comments inrrays") { + +11 +DymicJsDocumt + +doc +(2048); + +13 +SECTION +("Block comments") { + +14 +SECTION +("Before opening bracket") { + +15 +DerliziE + + gr + = + +16 +derlizeJs +( +doc +, "/*COMMENT*/ [\"hello\"]"); + +17 +JsAay + + gr + = +doc +. +as +(); + +19 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +20 +REQUIRE +(1 = +r +. +size +()); + +21 +REQUIRE +( +r +[0] == "hello"); + +24 +SECTION +("After opening bracket") { + +25 +DerliziE + + gr + = + +26 +derlizeJs +( +doc +, "[/*COMMENT*/ \"hello\"]"); + +27 +JsAay + + gr + = +doc +. +as +(); + +29 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +30 +REQUIRE +(1 = +r +. +size +()); + +31 +REQUIRE +( +r +[0] == "hello"); + +34 +SECTION +("Before closing bracket") { + +35 +DerliziE + + gr + = +derlizeJs +( +doc +, "[\"hello\"/*COMMENT*/]"); + +36 +JsAay + + gr + = +doc +. +as +(); + +38 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +39 +REQUIRE +(1 = +r +. +size +()); + +40 +REQUIRE +( +r +[0] == "hello"); + +43 +SECTION +("After closing bracket") { + +44 +DerliziE + + gr + = +derlizeJs +( +doc +, "[\"hello\"]/*COMMENT*/"); + +45 +JsAay + + gr + = +doc +. +as +(); + +47 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +48 +REQUIRE +(1 = +r +. +size +()); + +49 +REQUIRE +( +r +[0] == "hello"); + +52 +SECTION +("Before comma") { + +53 +DerliziE + + gr + = + +54 +derlizeJs +( +doc +, "[\"hello\"/*COMMENT*/,\"world\"]"); + +55 +JsAay + + gr + = +doc +. +as +(); + +57 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +58 +REQUIRE +(2 = +r +. +size +()); + +59 +REQUIRE +( +r +[0] == "hello"); + +60 +REQUIRE +( +r +[1] == "world"); + +63 +SECTION +("After comma") { + +64 +DerliziE + + gr + = + +65 +derlizeJs +( +doc +, "[\"hello\",/*COMMENT*/ \"world\"]"); + +66 +JsAay + + gr + = +doc +. +as +(); + +68 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +69 +REQUIRE +(2 = +r +. +size +()); + +70 +REQUIRE +( +r +[0] == "hello"); + +71 +REQUIRE +( +r +[1] == "world"); + +74 +SECTION +("/*/") { + +75 +DerliziE + + gr + = +derlizeJs +( +doc +, "[/*/\n]"); + +76 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +79 +SECTION +("Unfinished comment") { + +80 +DerliziE + + gr + = +derlizeJs +( +doc +, "[/*COMMENT]"); + +81 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +84 +SECTION +("Final slash missing") { + +85 +DerliziE + + gr + = +derlizeJs +( +doc +, "[/*COMMENT*]"); + +86 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +90 +SECTION +("Trailing comments") { + +91 +SECTION +("Before opening bracket") { + +92 +DerliziE + + gr + = + +93 +derlizeJs +( +doc +, "//COMMENT\n\t[\"hello\"]"); + +94 +JsAay + + gr + = +doc +. +as +(); + +96 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +97 +REQUIRE +(1 = +r +. +size +()); + +98 +REQUIRE +( +r +[0] == "hello"); + +101 +SECTION +("After opening bracket") { + +102 +DerliziE + + gr + = +derlizeJs +( +doc +, "[//COMMENT\n\"hello\"]"); + +103 +JsAay + + gr + = +doc +. +as +(); + +105 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +106 +REQUIRE +(1 = +r +. +size +()); + +107 +REQUIRE +( +r +[0] == "hello"); + +110 +SECTION +("Before closing bracket") { + +111 +DerliziE + + gr + = + +112 +derlizeJs +( +doc +, "[\"hello\"//COMMENT\r\n]"); + +113 +JsAay + + gr + = +doc +. +as +(); + +115 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +116 +REQUIRE +(1 = +r +. +size +()); + +117 +REQUIRE +( +r +[0] == "hello"); + +120 +SECTION +("After closing bracket") { + +121 +DerliziE + + gr + = +derlizeJs +( +doc +, "[\"hello\"]//COMMENT\n"); + +122 +JsAay + + gr + = +doc +. +as +(); + +124 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +125 +REQUIRE +(1 = +r +. +size +()); + +126 +REQUIRE +( +r +[0] == "hello"); + +129 +SECTION +("Before comma") { + +130 +DerliziE + + gr + = + +131 +derlizeJs +( +doc +, "[\"hello\"//COMMENT\n,\"world\"]"); + +132 +JsAay + + gr + = +doc +. +as +(); + +134 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +135 +REQUIRE +(2 = +r +. +size +()); + +136 +REQUIRE +( +r +[0] == "hello"); + +137 +REQUIRE +( +r +[1] == "world"); + +140 +SECTION +("After comma") { + +141 +DerliziE + + gr + = + +142 +derlizeJs +( +doc +, "[\"hello\",//COMMENT\n\"world\"]"); + +143 +JsAay + + gr + = +doc +. +as +(); + +145 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +146 +REQUIRE +(2 = +r +. +size +()); + +147 +REQUIRE +( +r +[0] == "hello"); + +148 +REQUIRE +( +r +[1] == "world"); + +151 +SECTION +("Invalid comment") { + +152 +DerliziE + + gr + = +derlizeJs +( +doc +, "[/COMMENT\n]"); + +153 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +156 +SECTION +("End document with comment") { + +157 +DerliziE + + gr + = +derlizeJs +( +doc +, "[//COMMENT"); + +158 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +163 +TEST_CASE +("Comments in objects") { + +164 +DymicJsDocumt + +doc +(2048); + +166 +SECTION +("Block comments") { + +167 +SECTION +("Before opening brace") { + +168 +DerliziE + + gr + = + +169 +derlizeJs +( +doc +, "/*COMMENT*/ {\"hello\":\"world\"}"); + +170 +JsObje + + gobj + = +doc +. +as +(); + +172 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +173 +REQUIRE +( +obj +["hello"] == "world"); + +176 +SECTION +("After opening brace") { + +177 +DerliziE + + gr + = + +178 +derlizeJs +( +doc +, "{/*COMMENT*/\"hello\":\"world\"}"); + +179 +JsObje + + gobj + = +doc +. +as +(); + +181 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +182 +REQUIRE +( +obj +["hello"] == "world"); + +185 +SECTION +("Before colon") { + +186 +DerliziE + + gr + = + +187 +derlizeJs +( +doc +, "{\"hello\"/*COMMENT*/:\"world\"}"); + +188 +JsObje + + gobj + = +doc +. +as +(); + +190 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +191 +REQUIRE +( +obj +["hello"] == "world"); + +194 +SECTION +("After colon") { + +195 +DerliziE + + gr + = + +196 +derlizeJs +( +doc +, "{\"hello\":/*COMMENT*/\"world\"}"); + +197 +JsObje + + gobj + = +doc +. +as +(); + +199 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +200 +REQUIRE +( +obj +["hello"] == "world"); + +203 +SECTION +("Before closing brace") { + +204 +DerliziE + + gr + = + +205 +derlizeJs +( +doc +, "{\"hello\":\"world\"/*COMMENT*/}"); + +206 +JsObje + + gobj + = +doc +. +as +(); + +208 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +209 +REQUIRE +( +obj +["hello"] == "world"); + +212 +SECTION +("After closing brace") { + +213 +DerliziE + + gr + = + +214 +derlizeJs +( +doc +, "{\"hello\":\"world\"}/*COMMENT*/"); + +215 +JsObje + + gobj + = +doc +. +as +(); + +217 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +218 +REQUIRE +( +obj +["hello"] == "world"); + +221 +SECTION +("Before comma") { + +222 +DerliziE + + gr + = +derlizeJs +( + +223 +doc +, "{\"hello\":\"world\"/*COMMENT*/,\"answer\":42}"); + +224 +JsObje + + gobj + = +doc +. +as +(); + +226 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +227 +REQUIRE +( +obj +["hello"] == "world"); + +228 +REQUIRE +( +obj +["answer"] == 42); + +231 +SECTION +("After comma") { + +232 +DerliziE + + gr + = +derlizeJs +( + +233 +doc +, "{\"hello\":\"world\",/*COMMENT*/\"answer\":42}"); + +234 +JsObje + + gobj + = +doc +. +as +(); + +236 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +237 +REQUIRE +( +obj +["hello"] == "world"); + +238 +REQUIRE +( +obj +["answer"] == 42); + +242 +SECTION +("Trailing comments") { + +243 +SECTION +("Before opening brace") { + +244 +DerliziE + + gr + = + +245 +derlizeJs +( +doc +, "//COMMENT\n {\"hello\":\"world\"}"); + +246 +JsObje + + gobj + = +doc +. +as +(); + +248 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +249 +REQUIRE +( +obj +["hello"] == "world"); + +252 +SECTION +("After opening brace") { + +253 +DerliziE + + gr + = + +254 +derlizeJs +( +doc +, "{//COMMENT\n\"hello\":\"world\"}"); + +255 +JsObje + + gobj + = +doc +. +as +(); + +257 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +258 +REQUIRE +( +obj +["hello"] == "world"); + +261 +SECTION +("Before colon") { + +262 +DerliziE + + gr + = + +263 +derlizeJs +( +doc +, "{\"hello\"//COMMENT\n:\"world\"}"); + +264 +JsObje + + gobj + = +doc +. +as +(); + +266 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +267 +REQUIRE +( +obj +["hello"] == "world"); + +270 +SECTION +("After colon") { + +271 +DerliziE + + gr + = + +272 +derlizeJs +( +doc +, "{\"hello\"://COMMENT\n\"world\"}"); + +273 +JsObje + + gobj + = +doc +. +as +(); + +275 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +276 +REQUIRE +( +obj +["hello"] == "world"); + +279 +SECTION +("Before closing brace") { + +280 +DerliziE + + gr + = + +281 +derlizeJs +( +doc +, "{\"hello\":\"world\"//COMMENT\n}"); + +282 +JsObje + + gobj + = +doc +. +as +(); + +284 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +285 +REQUIRE +( +obj +["hello"] == "world"); + +288 +SECTION +("After closing brace") { + +289 +DerliziE + + gr + = + +290 +derlizeJs +( +doc +, "{\"hello\":\"world\"}//COMMENT\n"); + +291 +JsObje + + gobj + = +doc +. +as +(); + +293 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +294 +REQUIRE +( +obj +["hello"] == "world"); + +297 +SECTION +("Before comma") { + +298 +DerliziE + + gr + = +derlizeJs +( + +299 +doc +, "{\"hello\":\"world\"//COMMENT\n,\"answer\":42}"); + +300 +JsObje + + gobj + = +doc +. +as +(); + +302 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +303 +REQUIRE +( +obj +["hello"] == "world"); + +304 +REQUIRE +( +obj +["answer"] == 42); + +307 +SECTION +("After comma") { + +308 +DerliziE + + gr + = +derlizeJs +( + +309 +doc +, "{\"hello\":\"world\",//COMMENT\n\"answer\":42}"); + +310 +JsObje + + gobj + = +doc +. +as +(); + +312 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +313 +REQUIRE +( +obj +["hello"] == "world"); + +314 +REQUIRE +( +obj +["answer"] == 42); + +318 +SECTION +("Dangling slash") { + +319 +SECTION +("Before opening brace") { + +320 +DerliziE + + gr + = +derlizeJs +( +doc +, "/{\"hello\":\"world\"}"); + +322 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +325 +SECTION +("After opening brace") { + +326 +DerliziE + + gr + = +derlizeJs +( +doc +, "{/\"hello\":\"world\"}"); + +328 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +331 +SECTION +("Before colon") { + +332 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"hello\"/:\"world\"}"); + +334 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +337 +SECTION +("After colon") { + +338 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"hello\":/\"world\"}"); + +340 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +343 +SECTION +("Before closing brace") { + +344 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"hello\":\"world\"/}"); + +346 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +349 +SECTION +("After closing brace") { + +350 +DerliziE + + gr + = +derlizeJs +( +doc +, "{\"hello\":\"world\"}/"); + +351 +JsObje + + gobj + = +doc +. +as +(); + +353 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +354 +REQUIRE +( +obj +["hello"] == "world"); + +357 +SECTION +("Before comma") { + +358 +DerliziE + + gr + = + +359 +derlizeJs +( +doc +, "{\"hello\":\"world\"/,\"answer\":42}"); + +361 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +364 +SECTION +("After comma") { + +365 +DerliziE + + gr + = + +366 +derlizeJs +( +doc +, "{\"hello\":\"world\",/\"answer\":42}"); + +368 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +373 +TEST_CASE +("Commentslone") { + +374 +DymicJsDocumt + +doc +(2048); + +376 +SECTION +("Justrailing comment") { + +377 +DerliziE + + gr + = +derlizeJs +( +doc +, "// comment"); + +379 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +382 +SECTION +("Just block comment") { + +383 +DerliziE + + gr + = +derlizeJs +( +doc +, "/*comment*/"); + +385 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +388 +SECTION +("Just slash") { + +389 +DerliziE + + gr + = +derlizeJs +( +doc +, "/"); + +391 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +394 +SECTION +("Prematureerminator") { + +395 +DerliziE + + gr + = +derlizeJs +( +doc +, "/* comment"); + +397 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +400 +SECTION +("Prematurend on sized input") { + +401 +DerliziE + + gr + = +derlizeJs +( +doc +, "/* comment */", 10); + +403 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_infinity_0.cpp + +1  + #ARDUINOJSON_ENABLE_INFINITY + 0 + + ) + +2  + ~ + +4  + ~ + +5  + ~ + +7  + $asPFas +(cڡ * +js +) { + +8 +DymicJsDocumt + + `doc +(4096); + +9 aut +r + = + `derlizeJs +( +doc +, +js +); + +11 + `REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + +12 + } +} + +14  + $asJsEqus +(cڡ +JsDocumt +& +doc +, + +15 +d +:: +rg + +exedJs +) { + +16 +d +:: +rg + +auJs +; + +17 + `rlizeJs +( +doc +, +auJs +); + +18 + `REQUIRE +( +auJs + = +exedJs +); + +19 + } +} + +21 +TEST_CASE +("ARDUINOJSON_ENABLE_INFINITY == 0") { + +22 +SECTION +("serializeJson()") { + +23 +DymicJsDocumt + +doc +(4096); + +24 + gdoc +. +add +( +d +:: +numic_lims +<>:: +fy +()); + +25 + gdoc +. +add +(- +d +:: +numic_lims +<>:: +fy +()); + +27 +asJsEqus +( +doc +, "[null,null]"); + +30 +SECTION +("deserializeJson()") { + +31 +asPFas +("{\"X\":Infinity}"); + +32 +asPFas +("{\"X\":-Infinity}"); + +33 +asPFas +("{\"X\":+Infinity}"); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_infinity_1.cpp + +1  + #ARDUINOJSON_ENABLE_INFINITY + 1 + + ) + +2  + ~ + +4  + ~ + +5  + ~ + +7 +mea + + gmy + { + +8 +usg + + gARDUINOJSON_NAMESPACE +:: +isf +; + +11 +TEST_CASE +("ARDUINOJSON_ENABLE_INFINITY == 1") { + +12 +DymicJsDocumt + +doc +(4096); + +14 +SECTION +("serializeJson()") { + +15 + gdoc +. +add +( +d +:: +numic_lims +<>:: +fy +()); + +16 + gdoc +. +add +(- +d +:: +numic_lims +<>:: +fy +()); + +18 + gd +:: +rg + +js +; + +19 +rlizeJs +( +doc +, +js +); + +21 +REQUIRE +( +js + == "[Infinity,-Infinity]"); + +24 +SECTION +("deserializeJson()") { + +25 aut + gr + = +derlizeJs +( +doc +, "[Infinity,-Infinity,+Infinity]"); + +26  + ga + = +doc +[0]; + +27  + gb + = +doc +[1]; + +28  + gc + = +doc +[2]; + +30 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +31 +REQUIRE +( +my +:: +isf +( +a +)); + +32 +REQUIRE +( +a + > 0); + +33 +REQUIRE +( +my +:: +isf +( +b +)); + +34 +REQUIRE +( +b + < 0); + +35 +REQUIRE +( +my +:: +isf +( +c +)); + +36 +REQUIRE +( +c + > 0); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_nan_0.cpp + +1  + #ARDUINOJSON_ENABLE_NAN + 0 + + ) + +2  + ~ + +4  + ~ + +5  + ~ + +7 +TEST_CASE +("ARDUINOJSON_ENABLE_NAN == 0") { + +8 +DymicJsDocumt + +doc +(4096); + +9 +JsObje + + gro + = +doc +. +to +(); + +11 +SECTION +("serializeJson()") { + +12 + gro +["X"] = +d +:: +numic_lims +<>:: +siglg_NaN +(); + +14 + gd +:: +rg + +js +; + +15 +rlizeJs +( +doc +, +js +); + +17 +REQUIRE +( +js + == "{\"X\":null}"); + +20 +SECTION +("deserializeJson()") { + +21 aut + gr + = +derlizeJs +( +doc +, "{\"X\":NaN}"); + +23 +REQUIRE +( +r + = +DerliziE +:: +InvidIut +); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_nan_1.cpp + +1  + #ARDUINOJSON_ENABLE_NAN + 1 + + ) + +2  + ~ + +4  + ~ + +5  + ~ + +7 +mea + + gmy + { + +8 +usg + + gARDUINOJSON_NAMESPACE +:: +i +; + +11 +TEST_CASE +("ARDUINOJSON_ENABLE_NAN == 1") { + +12 +DymicJsDocumt + +doc +(4096); + +13 +JsObje + + gro + = +doc +. +to +(); + +15 +SECTION +("serializeJson()") { + +16 + gro +["X"] = +d +:: +numic_lims +<>:: +siglg_NaN +(); + +18 + gd +:: +rg + +js +; + +19 +rlizeJs +( +doc +, +js +); + +21 +REQUIRE +( +js + == "{\"X\":NaN}"); + +24 +SECTION +("deserializeJson()") { + +25 aut + gr + = +derlizeJs +( +doc +, "{\"X\":NaN}"); + +26  + gx + = +doc +["X"]; + +28 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +29 +REQUIRE +( +my +:: +i +( +x +)); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_progmem_1.cpp + +5  + ~"ogmem_emuti.h +" + +7  + #ARDUINOJSON_ENABLE_PROGMEM + 1 + + ) + +8  + ~ + +10  + ~ + +12 +TEST_CASE +("Flash strings") { + +13 +DymicJsDocumt + +doc +(2048); + +15 +SECTION +("deserializeJson()") { + +16 +DerliziE + + gr + = +derlizeJs +( +doc +, +F +("{'hello':'world'}")); + +18 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +19 +REQUIRE +( +doc +["hello"] == "world"); + +22 +SECTION +("JsonDocument::operator[]") { + +23 + gdoc +[ +F +("hello")] = F("world"); + +25 +REQUIRE +( +doc +["hello"] == "world"); + +28 +SECTION +("JsonDocument::add()") { + +29 + gdoc +. +add +( +F +("world")); + +31 +REQUIRE +( +doc +[0] == "world"); + +34 +SECTION +("JsonVariant::set()") { + +35 +JsV + + gv + = +doc +. +to +(); + +37 + gv +. +t +( +F +("world")); + +39 +REQUIRE +( +v + == "world"); + +42 +SECTION +("MemberProxy::operator==") { + +43 + gdoc +["hello"] = "world"; + +45 +REQUIRE +( +doc +["hlo"] = +F +("world")); + +48 +SECTION +("ElementProxy::operator==") { + +49 + gdoc +. +add +("world"); + +51 +REQUIRE +( +doc +[0] = +F +("world")); + +55 +TEST_CASE +("strlen_P") { + +56 +CHECK +( +_P +( +FC +("")) == 0); + +57 +CHECK +( +_P +( +FC +("a")) == 1); + +58 +CHECK +( +_P +( +FC +("ac")) == 2); + +61 +TEST_CASE +("strncmp_P") { + +62 +CHECK +( +cmp_P +("a", +FC +("b"), 0) == 0); + +63 +CHECK +( +cmp_P +("a", +FC +("b"), 1) == -1); + +64 +CHECK +( +cmp_P +("b", +FC +("a"), 1) == 1); + +65 +CHECK +( +cmp_P +("a", +FC +("a"), 0) == 0); + +66 +CHECK +( +cmp_P +("a", +FC +("b"), 2) == -1); + +67 +CHECK +( +cmp_P +("b", +FC +("a"), 2) == 1); + +68 +CHECK +( +cmp_P +("a", +FC +("a"), 2) == 0); + +71 +TEST_CASE +("strcmp_P") { + +72 +CHECK +( +rcmp_P +("a", +FC +("b")) == -1); + +73 +CHECK +( +rcmp_P +("b", +FC +("a")) == 1); + +74 +CHECK +( +rcmp_P +("a", +FC +("a")) == 0); + +75 +CHECK +( +rcmp_P +("", +FC +("ab")) == -1); + +76 +CHECK +( +rcmp_P +("ab", +FC +("aa")) == 1); + +77 +CHECK +( +rcmp_P +("", +FC +("aa")) == 0); + +80 +TEST_CASE +("memcpy_P") { + +81  + gd +[4]; + +82 +CHECK +( +memy_P +( +d +, +FC +("ABC"), 4) == dst); + +83 +CHECK +( +d +[0] == 'A'); + +84 +CHECK +( +d +[1] == 'B'); + +85 +CHECK +( +d +[2] == 'C'); + +86 +CHECK +( +d +[3] == 0); + +89 +TEST_CASE +("BoundedReader") { + +90 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +92 +SECTION +("read") { + +93 + gBoundedRd + +ad +( +F +("\x01\xFF"), 2); + +94 +REQUIRE +( +ad +. +ad +() == 0x01); + +95 +REQUIRE +( +ad +. +ad +() == 0xFF); + +96 +REQUIRE +( +ad +. +ad +() == -1); + +97 +REQUIRE +( +ad +. +ad +() == -1); + +100 +SECTION +("readBytes()llt once") { + +101 + gBoundedRd + +ad +( +F +("ABCD"), 3); + +103  + gbufr +[8] = "abcd"; + +104 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 3); + +106 +REQUIRE +( +bufr +[0] == 'A'); + +107 +REQUIRE +( +bufr +[1] == 'B'); + +108 +REQUIRE +( +bufr +[2] == 'C'); + +109 +REQUIRE +( +bufr +[3] == 'd'); + +112 +SECTION +("readBytes() inwoarts") { + +113 + gBoundedRd + +ad +( +F +("ABCDEF"), 6); + +115  + gbufr +[8] = "abcdefg"; + +116 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 4); + +117 +REQUIRE +( +ad +. +adBys +( +bufr + + 4, 4) == 2); + +119 +REQUIRE +( +bufr +[0] == 'A'); + +120 +REQUIRE +( +bufr +[1] == 'B'); + +121 +REQUIRE +( +bufr +[2] == 'C'); + +122 +REQUIRE +( +bufr +[3] == 'D'); + +123 +REQUIRE +( +bufr +[4] == 'E'); + +124 +REQUIRE +( +bufr +[5] == 'F'); + +125 +REQUIRE +( +bufr +[6] == 'g'); + +129 +TEST_CASE +("Reader") { + +130 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +132 +SECTION +("read()") { + +133 + gRd + +ad +( +F +("\x01\xFF\x00\x12")); + +134 +REQUIRE +( +ad +. +ad +() == 0x01); + +135 +REQUIRE +( +ad +. +ad +() == 0xFF); + +136 +REQUIRE +( +ad +. +ad +() == 0); + +137 +REQUIRE +( +ad +. +ad +() == 0x12); + +140 +SECTION +("readBytes()llt once") { + +141 + gRd + +ad +( +F +("ABCD")); + +143  + gbufr +[8] = "abcd"; + +144 +REQUIRE +( +ad +. +adBys +( +bufr +, 3) == 3); + +146 +REQUIRE +( +bufr +[0] == 'A'); + +147 +REQUIRE +( +bufr +[1] == 'B'); + +148 +REQUIRE +( +bufr +[2] == 'C'); + +149 +REQUIRE +( +bufr +[3] == 'd'); + +152 +SECTION +("readBytes() inwoarts") { + +153 + gRd + +ad +( +F +("ABCDEF")); + +155  + gbufr +[8] = "abcdefg"; + +156 +REQUIRE +( +ad +. +adBys +( +bufr +, 4) == 4); + +157 +REQUIRE +( +ad +. +adBys +( +bufr + + 4, 2) == 2); + +159 +REQUIRE +( +bufr +[0] == 'A'); + +160 +REQUIRE +( +bufr +[1] == 'B'); + +161 +REQUIRE +( +bufr +[2] == 'C'); + +162 +REQUIRE +( +bufr +[3] == 'D'); + +163 +REQUIRE +( +bufr +[4] == 'E'); + +164 +REQUIRE +( +bufr +[5] == 'F'); + +165 +REQUIRE +( +bufr +[6] == 'g'); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_double_0.cpp + +1  + #ARDUINOJSON_USE_DOUBLE + 0 + + ) + +2  + ~ + +4  + ~ + +6 +TEST_CASE +("ARDUINOJSON_USE_DOUBLE == 0") { + +7 +DymicJsDocumt + +doc +(4096); + +8 +JsObje + + gro + = +doc +. +to +(); + +10 + gro +["pi"] = 3.14; + +11 + gro +["e"] = 2.72; + +13 + gd +:: +rg + +js +; + +14 +rlizeJs +( +doc +, +js +); + +16 +REQUIRE +( +js + == "{\"pi\":3.14,\"e\":2.72}"); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_double_1.cpp + +1  + #ARDUINOJSON_USE_DOUBLE + 1 + + ) + +2  + ~ + +4  + ~ + +6 +TEST_CASE +("ARDUINOJSON_USE_DOUBLE == 1") { + +7 +DymicJsDocumt + +doc +(4096); + +8 +JsObje + + gro + = +doc +. +to +(); + +10 + gro +["pi"] = 3.14; + +11 + gro +["e"] = 2.72; + +13 + gd +:: +rg + +js +; + +14 +rlizeJs +( +doc +, +js +); + +16 +REQUIRE +( +js + == "{\"pi\":3.14,\"e\":2.72}"); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_long_long_0.cpp + +1  + #ARDUINOJSON_USE_LONG_LONG + 0 + + ) + +2  + ~ + +4  + ~ + +6 + gme + < +size_t + + gsize_of_lg +> + +7 + gd +:: +rg + +g_exed_js +(); + +9 + gme + <> + +10 + gd +:: +rg + +g_exed_js +<4>() { + +14 + gme + <> + +15 + gd +:: +rg + +g_exed_js +<8>() { + +19 +TEST_CASE +("ARDUINOJSON_USE_LONG_LONG == 0") { + +20 +DymicJsDocumt + +doc +(4096); + +21 +JsObje + + gro + = +doc +. +to +(); + +23 + gro +["A"] = 123456789123456789; + +24 + gro +["B"] = 987654321987654321; + +26 + gd +:: +rg + +js +; + +27 +rlizeJs +( +doc +, +js +); + +29 +REQUIRE +( +js + = +g_exed_js +<()>()); + + @lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_long_long_1.cpp + +1  + #ARDUINOJSON_USE_LONG_LONG + 1 + + ) + +2  + ~ + +4  + ~ + +6 +TEST_CASE +("ARDUINOJSON_USE_LONG_LONG == 1") { + +7 +DymicJsDocumt + +doc +(4096); + +8 +JsObje + + gro + = +doc +. +to +(); + +10 + gro +["A"] = 123456789123456789; + +11 + gro +["B"] = 987654321987654321; + +13 + gd +:: +rg + +js +; + +14 +rlizeJs +( +doc +, +js +); + +16 +REQUIRE +( +js + == "{\"A\":123456789123456789,\"B\":987654321987654321}"); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeArray.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("deserialize MsgPackrray") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("fixarray") { + +12 +SECTION +("empty") { + +13 cڡ * + gput + = "\x90"; + +15 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +16 +JsAay + + gy + = +doc +. +as +(); + +18 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +19 +REQUIRE +( +y +. +size +() == 0); + +22 +SECTION +("two integers") { + +23 cڡ * + gput + = "\x92\x01\x02"; + +25 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +26 +JsAay + + gy + = +doc +. +as +(); + +28 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +29 +REQUIRE +( +y +. +size +() == 2); + +30 +REQUIRE +( +y +[0] == 1); + +31 +REQUIRE +( +y +[1] == 2); + +35 +SECTION +("array 16") { + +36 +SECTION +("empty") { + +37 cڡ * + gput + = "\xDC\x00\x00"; + +39 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +40 +JsAay + + gy + = +doc +. +as +(); + +42 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +43 +REQUIRE +( +y +. +size +() == 0); + +46 +SECTION +("two strings") { + +47 cڡ * + gput + = "\xDC\x00\x02\xA5hello\xA5world"; + +49 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +50 +JsAay + + gy + = +doc +. +as +(); + +52 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +53 +REQUIRE +( +y +. +size +() == 2); + +54 +REQUIRE +( +y +[0] == "hello"); + +55 +REQUIRE +( +y +[1] == "world"); + +59 +SECTION +("array 32") { + +60 +SECTION +("empty") { + +61 cڡ * + gput + = "\xDD\x00\x00\x00\x00"; + +63 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +64 +JsAay + + gy + = +doc +. +as +(); + +66 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +67 +REQUIRE +( +y +. +size +() == 0); + +70 +SECTION +("two floats") { + +71 cڡ * + gput + = + +74 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +75 +JsAay + + gy + = +doc +. +as +(); + +77 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +78 +REQUIRE +( +y +. +size +() == 2); + +79 +REQUIRE +( +y +[0] == 0.0f); + +80 +REQUIRE +( +y +[1] == 3.14f); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeObject.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("deserialize MsgPack object") { + +9 +DymicJsDocumt + +doc +(4096); + +11 +SECTION +("fixmap") { + +12 +SECTION +("empty") { + +13 cڡ * + gput + = "\x80"; + +15 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +16 +JsObje + + gobj + = +doc +. +as +(); + +18 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +19 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +20 +REQUIRE +( +obj +. +size +() == 0); + +23 +SECTION +("two integers") { + +24 cڡ * + gput + = "\x82\xA3one\x01\xA3two\x02"; + +26 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +27 +JsObje + + gobj + = +doc +. +as +(); + +29 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +30 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +31 +REQUIRE +( +obj +. +size +() == 2); + +32 +REQUIRE +( +obj +["one"] == 1); + +33 +REQUIRE +( +obj +["two"] == 2); + +36 +SECTION +("key is str 8") { + +37 cڡ * + gput + = "\x82\xd9\x03one\x01\xd9\x03two\x02"; + +39 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +40 +JsObje + + gobj + = +doc +. +as +(); + +42 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +43 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +44 +REQUIRE +( +obj +. +size +() == 2); + +45 +REQUIRE +( +obj +["one"] == 1); + +46 +REQUIRE +( +obj +["two"] == 2); + +49 +SECTION +("key is str 16") { + +50 cڡ * + gput + = "\x82\xda\x00\x03one\x01\xda\x00\x03two\x02"; + +52 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +53 +JsObje + + gobj + = +doc +. +as +(); + +55 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +56 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +57 +REQUIRE +( +obj +. +size +() == 2); + +58 +REQUIRE +( +obj +["one"] == 1); + +59 +REQUIRE +( +obj +["two"] == 2); + +62 +SECTION +("key is str 32") { + +63 cڡ * + gput + = + +66 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +67 +JsObje + + gobj + = +doc +. +as +(); + +69 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +70 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +71 +REQUIRE +( +obj +. +size +() == 2); + +72 +REQUIRE +( +obj +["one"] == 1); + +73 +REQUIRE +( +obj +["two"] == 2); + +77 +SECTION +("map 16") { + +78 +SECTION +("empty") { + +79 cڡ * + gput + = "\xDE\x00\x00"; + +81 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +82 +JsObje + + gobj + = +doc +. +as +(); + +84 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +85 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +86 +REQUIRE +( +obj +. +size +() == 0); + +89 +SECTION +("two strings") { + +90 cڡ * + gput + = "\xDE\x00\x02\xA1H\xA5hello\xA1W\xA5world"; + +92 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +93 +JsObje + + gobj + = +doc +. +as +(); + +95 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +96 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +97 +REQUIRE +( +obj +. +size +() == 2); + +98 +REQUIRE +( +obj +["H"] == "hello"); + +99 +REQUIRE +( +obj +["W"] == "world"); + +103 +SECTION +("map 32") { + +104 +SECTION +("empty") { + +105 cڡ * + gput + = "\xDF\x00\x00\x00\x00"; + +107 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +108 +JsObje + + gobj + = +doc +. +as +(); + +110 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +111 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +112 +REQUIRE +( +obj +. +size +() == 0); + +115 +SECTION +("two floats") { + +116 cڡ * + gput + = + +120 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +121 +JsObje + + gobj + = +doc +. +as +(); + +123 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +124 +REQUIRE +( +doc +. +is +< +JsObje +>()); + +125 +REQUIRE +( +obj +. +size +() == 2); + +126 +REQUIRE +( +obj +["zero"] == 0.0f); + +127 +REQUIRE +( +obj +["pi"] == 3.14f); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeStaticVariant.cpp + +5  + ~ + +6  + ~ + +8 + gme + < +size_t + + gCacy +> + +9  + $check +(cڡ * +put +, +DerliziE + +exed +) { + +10 +SticJsDocumt +< +Cacy +> +v +; + +12 +DerliziE + +r + = + `derlizeMsgPack +( +v +, +put +); + +14 + `CAPTURE +( +put +); + +15 + `REQUIRE +( +r + = +exed +); + +16 + } +} + +18 + gme + < +size_t + + gSize +> + +19  + $checkSg +(cڡ * +put +, +DerliziE + +exed +) { + +20 +check +< + `JSON_STRING_SIZE +( +Size +)>( +put +, +exed +); + +21 + } +} + +23 +TEST_CASE +("deserializeMsgPack(StaticJsonDocument&)") { + +24 +SECTION +("single valueslways fit") { + +25 + gcheck +<0>("\xc0", + gDerliziE +:: +Ok +); + +26 + gcheck +<0>("\xc2", + gDerliziE +:: +Ok +); + +27 + gcheck +<0>("\xc3", + gDerliziE +:: +Ok +); + +28 + gcheck +<0>("\xcc\x00", + gDerliziE +:: +Ok +); + +29 + gcheck +<0>("\xcd\x30\x39", + gDerliziE +:: +Ok +); + +30 + gcheck +<0>("\xCE\x12\x34\x56\x78", + gDerliziE +:: +Ok +); + +33 +SECTION +("fixstr") { + +34 + gcheckSg +<8>("\xA0", + gDerliziE +:: +Ok +); + +35 + gcheckSg +<8>("\xA7ZZZZZZZ", + gDerliziE +:: +Ok +); + +36 + gcheckSg +<8>("\xA8ZZZZZZZZ", + gDerliziE +:: +NoMemy +); + +37 + gcheckSg +<16>("\xAFZZZZZZZZZZZZZZZ", + gDerliziE +:: +Ok +); + +38 + gcheckSg +<16>("\xB0ZZZZZZZZZZZZZZZZ", + gDerliziE +:: +NoMemy +); + +41 +SECTION +("str 8") { + +42 + gcheckSg +<8>("\xD9\x00", + gDerliziE +:: +Ok +); + +43 + gcheckSg +<8>("\xD9\x07ZZZZZZZ", + gDerliziE +:: +Ok +); + +44 + gcheckSg +<8>("\xD9\x08ZZZZZZZZ", + gDerliziE +:: +NoMemy +); + +45 + gcheckSg +<16>("\xD9\x0FZZZZZZZZZZZZZZZ", + gDerliziE +:: +Ok +); + +46 + gcheckSg +<16>("\xD9\x10ZZZZZZZZZZZZZZZZ", + gDerliziE +:: +NoMemy +); + +49 +SECTION +("str 16") { + +50 + gcheckSg +<8>("\xDA\x00\x00", + gDerliziE +:: +Ok +); + +51 + gcheckSg +<8>("\xDA\x00\x07ZZZZZZZ", + gDerliziE +:: +Ok +); + +52 + gcheckSg +<8>("\xDA\x00\x08ZZZZZZZZ", + gDerliziE +:: +NoMemy +); + +53 + gcheckSg +<16>("\xDA\x00\x0FZZZZZZZZZZZZZZZ", + gDerliziE +:: +Ok +); + +54 + gcheckSg +<16>("\xDA\x00\x10ZZZZZZZZZZZZZZZZ", + +55 + gDerliziE +:: +NoMemy +); + +58 +SECTION +("str 32") { + +59 + gcheckSg +<8>("\xDB\x00\x00\x00\x00", + gDerliziE +:: +Ok +); + +60 + gcheckSg +<8>("\xDB\x00\x00\x00\x07ZZZZZZZ", + gDerliziE +:: +Ok +); + +61 + gcheckSg +<8>("\xDB\x00\x00\x00\x08ZZZZZZZZ", + +62 + gDerliziE +:: +NoMemy +); + +63 + gcheckSg +<16>("\xDB\x00\x00\x00\x0FZZZZZZZZZZZZZZZ", + +64 + gDerliziE +:: +Ok +); + +65 + gcheckSg +<16>("\xDB\x00\x00\x00\x10ZZZZZZZZZZZZZZZZ", + +66 + gDerliziE +:: +NoMemy +); + +69 +SECTION +("fixarray") { + +70 + gcheck +< +JSON_ARRAY_SIZE +(0)>("\x90", + gDerliziE +:: +Ok +); + +71 + gcheck +< +JSON_ARRAY_SIZE +(0)>("\x91\x01", + +72 + gDerliziE +:: +NoMemy +); + +73 + gcheck +< +JSON_ARRAY_SIZE +(1)>("\x91\x01", + gDerliziE +:: +Ok +); + +74 + gcheck +< +JSON_ARRAY_SIZE +(1)>("\x92\x01\x02", + +75 + gDerliziE +:: +NoMemy +); + +78 +SECTION +("array 16") { + +79 + gcheck +< +JSON_ARRAY_SIZE +(0)>("\xDC\x00\x00", + gDerliziE +:: +Ok +); + +80 + gcheck +< +JSON_ARRAY_SIZE +(0)>("\xDC\x00\x01\x01", + +81 + gDerliziE +:: +NoMemy +); + +82 + gcheck +< +JSON_ARRAY_SIZE +(1)>("\xDC\x00\x01\x01", + gDerliziE +:: +Ok +); + +83 + gcheck +< +JSON_ARRAY_SIZE +(1)>("\xDC\x00\x02\x01\x02", + +84 + gDerliziE +:: +NoMemy +); + +87 +SECTION +("array 32") { + +88 + gcheck +< +JSON_ARRAY_SIZE +(0)>("\xDD\x00\x00\x00\x00", + gDerliziE +:: +Ok +); + +89 + gcheck +< +JSON_ARRAY_SIZE +(0)>("\xDD\x00\x00\x00\x01\x01", + +90 + gDerliziE +:: +NoMemy +); + +91 + gcheck +< +JSON_ARRAY_SIZE +(1)>("\xDD\x00\x00\x00\x01\x01", + +92 + gDerliziE +:: +Ok +); + +93 + gcheck +< +JSON_ARRAY_SIZE +(1)>("\xDD\x00\x00\x00\x02\x01\x02", + +94 + gDerliziE +:: +NoMemy +); + +97 +SECTION +("fixmap") { + +98 +SECTION +("{}") { + +99 + gcheck +< +JSON_OBJECT_SIZE +(0)>("\x80", + gDerliziE +:: +Ok +); + +101 +SECTION +("{H:1}") { + +102 + gcheck +< +JSON_OBJECT_SIZE +(0)>("\x81\xA1H\x01", + +103 + gDerliziE +:: +NoMemy +); + +104 + gcheck +< +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(2)>( + +105 "\x81\xA1H\x01", + gDerliziE +:: +Ok +); + +107 +SECTION +("{H:1,W:2}") { + +108 + gcheck +< +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(2)>( + +109 "\x82\xA1H\x01\xA1W\x02", + gDerliziE +:: +NoMemy +); + +110 + gcheck +< +JSON_OBJECT_SIZE +(2+ 2 * +JSON_STRING_SIZE +(2)>( + +111 "\x82\xA1H\x01\xA1W\x02", + gDerliziE +:: +Ok +); + +115 +SECTION +("map 16") { + +116 +SECTION +("{}") { + +117 + gcheck +< +JSON_OBJECT_SIZE +(0)>("\xDE\x00\x00", + gDerliziE +:: +Ok +); + +119 +SECTION +("{H:1}") { + +120 + gcheck +< +JSON_OBJECT_SIZE +(0)>("\xDE\x00\x01\xA1H\x01", + +121 + gDerliziE +:: +NoMemy +); + +122 + gcheck +< +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(2)>( + +123 "\xDE\x00\x01\xA1H\x01", + gDerliziE +:: +Ok +); + +125 +SECTION +("{H:1,W:2}") { + +126 + gcheck +< +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(2)>( + +127 "\xDE\x00\x02\xA1H\x01\xA1W\x02", + gDerliziE +:: +NoMemy +); + +128 + gcheck +< +JSON_OBJECT_SIZE +(2) + 2 * JSON_OBJECT_SIZE(1)>( + +129 "\xDE\x00\x02\xA1H\x01\xA1W\x02", + gDerliziE +:: +Ok +); + +133 +SECTION +("map 32") { + +134 +SECTION +("{}") { + +135 + gcheck +< +JSON_OBJECT_SIZE +(0)>("\xDF\x00\x00\x00\x00", + +136 + gDerliziE +:: +Ok +); + +138 +SECTION +("{H:1}") { + +139 + gcheck +< +JSON_OBJECT_SIZE +(0)>("\xDF\x00\x00\x00\x01\xA1H\x01", + +140 + gDerliziE +:: +NoMemy +); + +141 + gcheck +< +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(2)>( + +142 "\xDF\x00\x00\x00\x01\xA1H\x01", + gDerliziE +:: +Ok +); + +144 +SECTION +("{H:1,W:2}") { + +145 + gcheck +< +JSON_OBJECT_SIZE +(1+ +JSON_STRING_SIZE +(2)>( + +147 + gDerliziE +:: +NoMemy +); + +148 + gcheck +< +JSON_OBJECT_SIZE +(2) + 2 * JSON_OBJECT_SIZE(1)>( + +149 "\xDF\x00\x00\x00\x02\xA1H\x01\xA1W\x02", + gDerliziE +:: +Ok +); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeVariant.cpp + +5  + ~ + +6  + ~ + +8 + gme + < +tyme + + gT +,ym + gU +> + +9  + $check +(cڡ * +put +, +U + +exed +) { + +10 +DymicJsDocumt + + `doc +(4096); + +12 +DerliziE + +r + = + `derlizeMsgPack +( +doc +, +put +); + +14 + `REQUIRE +( +r + = +DerliziE +:: +Ok +); + +15 + `REQUIRE +( +doc +. +is +< +T +>()); + +16 + `REQUIRE +( +doc +. +as +< +T +>(= +exed +); + +17 + } +} + +19 #i +ARDUINOJSON_USE_LONG_LONG + == 0 + +20  + $checkNSu܋d +(cڡ * +put +) { + +21 +DymicJsDocumt + + `doc +(4096); + +22 +DerliziE + +r + = + `derlizeMsgPack +( +doc +, +put +); + +23 + `REQUIRE +( +r + = +DerliziE +:: +NSu܋d +); + +24 + } +} + +27  + $checkIsNu +(cڡ * +put +) { + +28 +DymicJsDocumt + + `doc +(4096); + +30 +DerliziE + +r + = + `derlizeMsgPack +( +doc +, +put +); + +32 + `REQUIRE +( +r + = +DerliziE +:: +Ok +); + +33 + `REQUIRE +( +doc +. +as +< +JsV +>(). + `isNu +()); + +34 + } +} + +36 +TEST_CASE +("deserialize MsgPack value") { + +37 +SECTION +("nil") { + +38 +checkIsNu +("\xc0"); + +41 +SECTION +("bool") { + +42 + gcheck +< + gbo +>("\xc2", + gl +); + +43 + gcheck +< + gbo +>("\xc3", + gue +); + +46 +SECTION +("positive fixint") { + +47 + gcheck +<>("\x00", 0); + +48 + gcheck +<>("\x7F", 127); + +51 +SECTION +("negative fixint") { + +52 + gcheck +<>("\xe0", -32); + +53 + gcheck +<>("\xff", -1); + +56 +SECTION +("uint 8") { + +57 + gcheck +<>("\xcc\x00", 0); + +58 + gcheck +<>("\xcc\xff", 255); + +61 +SECTION +("uint 16") { + +62 + gcheck +<>("\xcd\x00\x00", 0); + +63 + gcheck +<>("\xcd\xFF\xFF", 65535); + +64 + gcheck +<>("\xcd\x30\x39", 12345); + +67 +SECTION +("uint 32") { + +68 + gcheck +< + gut32_t +>("\xCE\x00\x00\x00\x00", 0x00000000U); + +69 + gcheck +< + gut32_t +>("\xCE\xFF\xFF\xFF\xFF", 0xFFFFFFFFU); + +70 + gcheck +< + gut32_t +>("\xCE\x12\x34\x56\x78", 0x12345678U); + +73 +SECTION +("uint 64") { + +74 #i +ARDUINOJSON_USE_LONG_LONG + + +75 + gcheck +< + gut64_t +>("\xCF\x00\x00\x00\x00\x00\x00\x00\x00", 0U); + +76 + gcheck +< + gut64_t +>("\xCF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF", + +78 + gcheck +< + gut64_t +>("\xCF\x12\x34\x56\x78\x9A\xBC\xDE\xF0", + +81 +checkNSu܋d +("\xCF\x00\x00\x00\x00\x00\x00\x00\x00"); + +82 +checkNSu܋d +("\xCF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"); + +83 +checkNSu܋d +("\xCF\x12\x34\x56\x78\x9A\xBC\xDE\xF0"); + +87 +SECTION +("int 8") { + +88 + gcheck +<>("\xd0\x00", 0); + +89 + gcheck +<>("\xd0\xff", -1); + +92 +SECTION +("int 16") { + +93 + gcheck +<>("\xD1\x00\x00", 0); + +94 + gcheck +<>("\xD1\xFF\xFF", -1); + +95 + gcheck +<>("\xD1\xCF\xC7", -12345); + +98 +SECTION +("int 32") { + +99 + gcheck +<>("\xD2\x00\x00\x00\x00", 0); + +100 + gcheck +<>("\xD2\xFF\xFF\xFF\xFF", -1); + +101 + gcheck +<>("\xD2\xB6\x69\xFD\x2E", -1234567890); + +104 +SECTION +("int 64") { + +105 #i +ARDUINOJSON_USE_LONG_LONG + + +106 + gcheck +< + gt64_t +>("\xD3\x00\x00\x00\x00\x00\x00\x00\x00", +t64_t +(0U)); + +107 + gcheck +< + gt64_t +>("\xD3\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF", + +108 +t64_t +(0xFFFFFFFFFFFFFFFFU)); + +109 + gcheck +< + gt64_t +>("\xD3\x12\x34\x56\x78\x9A\xBC\xDE\xF0", + +110 +t64_t +(0x123456789ABCDEF0)); + +112 +checkNSu܋d +("\xD3\x00\x00\x00\x00\x00\x00\x00\x00"); + +113 +checkNSu܋d +("\xD3\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"); + +114 +checkNSu܋d +("\xD3\x12\x34\x56\x78\x9A\xBC\xDE\xF0"); + +118 +SECTION +("float 32") { + +119 + gcheck +<>("\xCA\x00\x00\x00\x00", 0.0f); + +120 + gcheck +<>("\xCA\x40\x48\xF5\xC3", 3.14f); + +123 +SECTION +("float 64") { + +124 + gcheck +<>("\xCB\x00\x00\x00\x00\x00\x00\x00\x00", 0.0); + +125 + gcheck +<>("\xCB\x40\x09\x21\xCA\xC0\x83\x12\x6F", 3.1415); + +128 +SECTION +("fixstr") { + +129 + gcheck +("\xA0", + gd +:: +rg +("")); + +130 + gcheck +("\xABhlwld", + gd +:: +rg +("hello world")); + +131 + gcheck +("\xBFhello world hello world hello !", + +132 + gd +:: +rg +("hello world hello world hello !")); + +135 +SECTION +("str 8") { + +136 + gcheck +("\xd9\x05hlo", + gd +:: +rg +("hello")); + +139 +SECTION +("str 16") { + +140 + gcheck +("\xda\x00\x05hlo", + gd +:: +rg +("hello")); + +143 +SECTION +("str 32") { + +144 + gcheck +("\xdb\x00\x00\x00\x05hlo", + gd +:: +rg +("hello")); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/doubleToFloat.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 + gme + < +tyme + + gT +> + +11  + $check +(cڡ * +put +, +T + +exed +) { + +12 +T + +au +; + +13 +ut8_t +* +f + = +t_ +(& +au +); + +14 cڡ +ut8_t +* +d + = +t_ +( +put +); + +15 + `doubToFlt +( +d +, +f +); + +16 + `fixEndss +( +au +); + +17 + `CHECK +( +au + = +exed +); + +18 + } +} + +20 +TEST_CASE +("doubleToFloat()") { + +21 +check +("\x40\x09\x21\xCA\xC0\x83\x12\x6F", 3.1415f); + +22 +check +("\x00\x00\x00\x00\x00\x00\x00\x00", 0.0f); + +23 +check +("\x80\x00\x00\x00\x00\x00\x00\x00", -0.0f); + +24 +check +("\xC0\x5E\xDC\xCC\xCC\xCC\xCC\xCD", -123.45f); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/incompleteInput.cpp + +5  + ~ + +6  + ~ + +8 +DerliziE + + $derlize +(cڡ * +put +, +size_t + +n +) { + +9 +DymicJsDocumt + + `doc +(4096); + +11  + `derlizeMsgPack +( +doc +, +put +, +n +); + +12 + } +} + +14  + $checkASizes +(cڡ * +put +, +size_t + +n +) { + +15 + `REQUIRE +( + `derlize +( +put +, +n += +DerliziE +:: +Ok +); + +17 -- +n +) { + +18 + `REQUIRE +( + `derlize +( +put +, +n += +DerliziE +:: +IncomeIut +); + +20 + } +} + +22 +TEST_CASE +("deserializeMsgPack()eturns IncompleteInput") { + +23 +SECTION +("empty input") { + +24 +checkASizes +("\x00", 1); + +27 +SECTION +("fixarray") { + +28 +checkASizes +("\x91\x01", 2); + +31 +SECTION +("array 16") { + +32 +checkASizes +("\xDC\x00\x01\x01", 4); + +35 +SECTION +("array 32") { + +36 +checkASizes +("\xDD\x00\x00\x00\x01\x01", 6); + +39 +SECTION +("fixmap") { + +40 +checkASizes +("\x81\xA3one\x01", 6); + +43 +SECTION +("map 16") { + +44 +checkASizes +("\xDE\x00\x01\xA3one\x01", 8); + +47 +SECTION +("map 32") { + +48 +checkASizes +("\xDF\x00\x00\x00\x01\xA3one\x01", 10); + +49 +checkASizes +("\xDF\x00\x00\x00\x01\xd9\x03one\x01", 11); + +52 +SECTION +("uint 8") { + +53 +checkASizes +("\xcc\x01", 2); + +56 +SECTION +("uint 16") { + +57 +checkASizes +("\xcd\x00\x01", 3); + +60 +SECTION +("uint 32") { + +61 +checkASizes +("\xCE\x00\x00\x00\x01", 5); + +64 #i +ARDUINOJSON_USE_LONG_LONG + + +65 +SECTION +("uint 64") { + +66 +checkASizes +("\xCF\x00\x00\x00\x00\x00\x00\x00\x00", 9); + +70 +SECTION +("int 8") { + +71 +checkASizes +("\xD0\x01", 2); + +74 +SECTION +("int 16") { + +75 +checkASizes +("\xD1\x00\x01", 3); + +78 +SECTION +("int 32") { + +79 +checkASizes +("\xD2\x00\x00\x00\x01", 5); + +82 #i +ARDUINOJSON_USE_LONG_LONG + + +83 +SECTION +("int 64") { + +84 +checkASizes +("\xD3\x00\x00\x00\x00\x00\x00\x00\x00", 9); + +88 +SECTION +("float 32") { + +89 +checkASizes +("\xCA\x40\x48\xF5\xC3", 5); + +92 +SECTION +("float 64") { + +93 +checkASizes +("\xCB\x40\x09\x21\xCA\xC0\x83\x12\x6F", 9); + +96 +SECTION +("fixstr") { + +97 +checkASizes +("\xABhello world", 12); + +100 +SECTION +("str 8") { + +101 +checkASizes +("\xd9\x05hello", 7); + +104 +SECTION +("str 16") { + +105 +checkASizes +("\xda\x00\x05hello", 8); + +108 +SECTION +("str 32") { + +109 +checkASizes +("\xdb\x00\x00\x00\x05hello", 10); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/input_types.cpp + +5  + ~ + +6  + ~ + +8  + ~"CuomRd.h +" + +10 +TEST_CASE +("deserializeMsgPack(const std::string&)") { + +11 +DymicJsDocumt + +doc +(4096); + +13 +SECTION +("shouldccept const string") { + +14 cڡ + gd +:: +rg + +put +("\x92\x01\x02"); + +16 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +18 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +21 +SECTION +("shouldcceptemporary string") { + +22 +DerliziE + + gr + = + +23 +derlizeMsgPack +( +doc +, +d +:: +rg +("\x92\x01\x02")); + +25 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +28 +SECTION +("should duplicate content") { + +29 + gd +:: +rg + +put +("\x91\xA5hello"); + +31 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +32 + gput +[2] = 'X'; + +34 +JsAay + + gy + = +doc +. +as +(); + +35 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +36 +REQUIRE +( +d +:: +rg +("hlo"= +y +[0]); + +39 +SECTION +("shouldccept zero in input") { + +40 +DerliziE + + gr + = + +41 +derlizeMsgPack +( +doc +, +d +:: +rg +("\x92\x00\x02", 3)); + +43 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +44 +JsAay + + gr + = +doc +. +as +(); + +45 +REQUIRE +( +r +[0] == 0); + +46 +REQUIRE +( +r +[1] == 2); + +50 +TEST_CASE +("deserializeMsgPack(std::istream&)") { + +51 +DymicJsDocumt + +doc +(4096); + +53 +SECTION +("shouldccept zero in input") { + +54 + gd +:: +irgam + +put +( +d +:: +rg +("\x92\x00\x02", 3)); + +56 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +58 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +59 +JsAay + + gr + = +doc +. +as +(); + +60 +REQUIRE +( +r +[0] == 0); + +61 +REQUIRE +( +r +[1] == 2); + +64 +SECTION +("should detect incomplete input") { + +65 + gd +:: +irgam + +put +("\x92\x00\x02"); + +67 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +put +); + +69 +REQUIRE +( +r + = +DerliziE +:: +IncomeIut +); + +73 #ifde +HAS_VARIABLE_LENGTH_ARRAY + + +74 +TEST_CASE +("deserializeMsgPack(VLA)") { + +75  + gi + = 16; + +76  + gv +[ +i +]; + +77 +memy +( +v +, "\xDE\x00\x01\xA5Hello\xA5world", 15); + +79 + gSticJsDocumt +< +JSON_OBJECT_SIZE +(1)> + gdoc +; + +80 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +v +); + +82 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +86 +TEST_CASE +("deserializeMsgPack(CustomReader)") { + +87 +DymicJsDocumt + +doc +(4096); + +88 +CuomRd + +ad +("\x92\xA5Hello\xA5world"); + +89 +DerliziE + + gr + = +derlizeMsgPack +( +doc +, +ad +); + +91 +REQUIRE +( +r + = +DerliziE +:: +Ok +); + +92 +REQUIRE +( +doc +. +size +() == 2); + +93 +REQUIRE +( +doc +[0] == "Hello"); + +94 +REQUIRE +( +doc +[1] == "world"); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/nestingLimit.cpp + +5  + ~ + +6  + ~ + +8  + #SHOULD_WORK +( +exessi + + `REQUIRE +( +DerliziE +:: +Ok + =exessi); + + ) + +9  + #SHOULD_FAIL +( +exessi +) \ + +10 + `REQUIRE +( +DerliziE +:: +TooDp + = +exessi +); + + ) + +12 +TEST_CASE +("JsonDeserializeresting") { + +13 +DymicJsDocumt + +doc +(4096); + +15 +SECTION +("Input = const char*") { + +16 +SECTION +("limit = 0") { + +17 + gDerliziOi +:: +NegLim + +ág +(0); + +18 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, "\xA1H", +ág +)); + +19 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, "\x90", +ág +)); + +20 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, "\x80", +ág +)); + +23 +SECTION +("limit = 1") { + +24 + gDerliziOi +:: +NegLim + +ág +(1); + +25 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, "\x90", +ág +)); + +26 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, "\x80", +ág +)); + +27 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, "\x81\xA1H\x80", +ág +)); + +28 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, "\x91\x90", +ág +)); + +32 +SECTION +("char*nd size_t") { + +33 +SECTION +("limit = 0") { + +34 + gDerliziOi +:: +NegLim + +ág +(0); + +35 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, "\xA1H", 2, +ág +)); + +36 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, "\x90", 1, +ág +)); + +37 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, "\x80", 1, +ág +)); + +40 +SECTION +("limit = 1") { + +41 + gDerliziOi +:: +NegLim + +ág +(1); + +42 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, "\x90", 1, +ág +)); + +43 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, "\x80", 1, +ág +)); + +44 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, "\x81\xA1H\x80", 4, +ág +)); + +45 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, "\x91\x90", 2, +ág +)); + +49 +SECTION +("Input = std::string") { + +50 +usg + + gd +:: +rg +; + +52 +SECTION +("limit = 0") { + +53 + gDerliziOi +:: +NegLim + +ág +(0); + +54 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, +rg +("\xA1H"), +ág +)); + +55 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, +rg +("\x90"), +ág +)); + +56 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, +rg +("\x80"), +ág +)); + +59 +SECTION +("limit = 1") { + +60 + gDerliziOi +:: +NegLim + +ág +(1); + +61 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, +rg +("\x90"), +ág +)); + +62 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, +rg +("\x80"), +ág +)); + +63 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, +rg +("\x81\xA1H\x80"), +ág +)); + +64 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, +rg +("\x91\x90"), +ág +)); + +68 +SECTION +("Input = std::istream") { + +69 +SECTION +("limit = 0") { + +70 + gDerliziOi +:: +NegLim + +ág +(0); + +71 + gd +:: +irgam + +good +("\xA1H"); + +72 + gd +:: +irgam + +bad +("\x90"); + +73 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, +good +, +ág +)); + +74 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, +bad +, +ág +)); + +77 +SECTION +("limit = 1") { + +78 + gDerliziOi +:: +NegLim + +ág +(1); + +79 + gd +:: +irgam + +good +("\x90"); + +80 + gd +:: +irgam + +bad +("\x91\x90"); + +81 +SHOULD_WORK +( +derlizeMsgPack +( +doc +, +good +, +ág +)); + +82 +SHOULD_FAIL +( +derlizeMsgPack +( +doc +, +bad +, +ág +)); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/notSupported.cpp + +5  + ~ + +6  + ~ + +8  + $checkNSu܋d +(cڡ * +put +) { + +9 +DymicJsDocumt + + `doc +(4096); + +11 +DerliziE + +r + = + `derlizeMsgPack +( +doc +, +put +); + +13 + `REQUIRE +( +r + = +DerliziE +:: +NSu܋d +); + +14 + } +} + +16 +TEST_CASE +("deserializeMsgPack()eturn NotSupported") { + +17 +SECTION +("bin 8") { + +18 +checkNSu܋d +("\xc4"); + +21 +SECTION +("bin 16") { + +22 +checkNSu܋d +("\xc5"); + +25 +SECTION +("bin 32") { + +26 +checkNSu܋d +("\xc6"); + +29 +SECTION +("ext 8") { + +30 +checkNSu܋d +("\xc7"); + +33 +SECTION +("ext 16") { + +34 +checkNSu܋d +("\xc8"); + +37 +SECTION +("ext 32") { + +38 +checkNSu܋d +("\xc9"); + +41 +SECTION +("fixext 1") { + +42 +checkNSu܋d +("\xd4"); + +45 +SECTION +("fixext 2") { + +46 +checkNSu܋d +("\xd5"); + +49 +SECTION +("fixext 4") { + +50 +checkNSu܋d +("\xd6"); + +53 +SECTION +("fixext 8") { + +54 +checkNSu܋d +("\xd7"); + +57 +SECTION +("fixext 16") { + +58 +checkNSu܋d +("\xd8"); + +61 +SECTION +("unsupported inrray") { + +62 +checkNSu܋d +("\x91\xc4"); + +65 +SECTION +("unsupported in map") { + +66 +checkNSu܋d +("\x81\xc4\x00\xA1H"); + +67 +checkNSu܋d +("\x81\xA1H\xc4\x00"); + +70 +SECTION +("integers key") { + +71 +checkNSu܋d +("\x81\x01\xA1H"); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/destination_types.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("serialize MsgPacko various destinationypes") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsObje + + gobje + = +doc +. +to +(); + +11 + gobje +["hello"] = "world"; + +12 cڡ * + gexed_su + = "\x81\xA5hello\xA5world"; + +13 cڡ +size_t + + gexed_ngth + = 13; + +15 +SECTION +("std::string") { + +16 + gd +:: +rg + +su +; + +17 +size_t + + gn + = +rlizeMsgPack +( +obje +, +su +); + +19 +REQUIRE +( +exed_su + = +su +); + +20 +REQUIRE +( +exed_ngth + = +n +); + +32 +SECTION +("char[]") { + +33  + gsu +[64]; + +34 +size_t + + gn + = +rlizeMsgPack +( +obje +, +su +); + +36 +REQUIRE +( +d +:: +rg +( +exed_su += +su +); + +37 +REQUIRE +( +exed_ngth + = +n +); + +40 +SECTION +("char*") { + +41  + gsu +[64]; + +42 +size_t + + gn + = +rlizeMsgPack +( +obje +, +su +, 64); + +44 +REQUIRE +( +d +:: +rg +( +exed_su += +su +); + +45 +REQUIRE +( +exed_ngth + = +n +); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/measure.cpp + +5  + ~ + +6  + ~ + +8 +TEST_CASE +("measureMsgPack()") { + +9 +DymicJsDocumt + +doc +(4096); + +10 +JsObje + + gobje + = +doc +. +to +(); + +11 + gobje +["hello"] = "world"; + +13 +REQUIRE +( +msuMsgPack +( +doc +) == 13); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/misc.cpp + +1  + ~ + +2  + ~ + +3  + ~ + +5 + gme + < +tyme + + gT +> + +6  + $check +( +T + +vue +, cڡ +d +:: +rg + & +exed +) { + +7 +DymicJsDocumt + + `doc +(4096); + +8 +doc +. +to +< +JsV +>(). + `t +( +vue +); + +9  +bufr +[256] = ""; + +10 +size_t + +tuVue + = + `rlizeMsgPack +( +doc +, +bufr +, (buffer)); + +11 + `REQUIRE +( +exed + = +bufr +); + +12 + `REQUIRE +( +exed +. + `size +(= +tuVue +); + +13 + } +} + +15 +TEST_CASE +("serializeMsgPack(MemberProxy)") { + +16 +DymicJsDocumt + +doc +(4096); + +17 +derlizeJs +( +doc +, "{\"hello\":42}"); + +18 +JsObje + + gobj + = +doc +. +as +(); + +19 + gd +:: +rg + +su +; + +21 +rlizeMsgPack +( +obj +["hlo"], +su +); + +23 +REQUIRE +( +su + == "*"); + +26 +TEST_CASE +("serializeMsgPack(ElementProxy)") { + +27 +DymicJsDocumt + +doc +(4096); + +28 +derlizeJs +( +doc +, "[42]"); + +29 +JsAay + + gr + = +doc +. +as +(); + +30 + gd +:: +rg + +su +; + +32 +rlizeMsgPack +( +r +[0], +su +); + +34 +REQUIRE +( +su + == "*"); + +37 +TEST_CASE +("serializeMsgPack(JsonVariantSubscript)") { + +38 +DymicJsDocumt + +doc +(4096); + +39 +derlizeJs +( +doc +, "[42]"); + +40 +JsV + + gv + = +doc +. +as +(); + +41 + gd +:: +rg + +su +; + +43 +rlizeMsgPack +( +v +[0], +su +); + +45 +REQUIRE +( +su + == "*"); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeArray.cpp + +5  + ~ + +6  + ~ + +8  + $check +(cڡ +JsAay + +y +, cڡ * +exed_da +, + +9 +size_t + +exed_n +) { + +10 +d +:: +rg + + `exed +( +exed_da +,xed_d+ +exed_n +); + +11 +d +:: +rg + +au +; + +12 +size_t + +n + = + `rlizeMsgPack +( +y +, +au +); + +13 + `CAPTURE +( +y +); + +14 + `REQUIRE +( +n + = +exed_n +); + +15 + `REQUIRE +( +au + = +exed +); + +16 + } +} + +18 + gme + < +size_t + + gN +> + +19  +check +(cڡ +JsAay + +y +, cڡ (& +exed_da +)[ +N +]) { + +20 cڡ +size_t + + gexed_n + = +N + - 1; + +21 +check +( +y +, +exed_da +, +exed_n +); + +24  + $check +(cڡ +JsAay + +y +, cڡ +d +:: +rg +& +exed +) { + +25 + `check +( +y +, +exed +. + `da +(),xed. + `ngth +()); + +26 + } +} + +28 +TEST_CASE +("serialize MsgPackrray") { + +29 +DymicJsDocumt + +doc +( +JSON_ARRAY_SIZE +(65536)); + +30 +JsAay + + gy + = +doc +. +to +(); + +32 +SECTION +("empty") { + +33 +check +( +y +, "\x90"); + +36 +SECTION +("fixarray") { + +37 + gy +. +add +("hello"); + +38 + gy +. +add +("world"); + +40 +check +( +y +, "\x92\xA5hello\xA5world"); + +43 +SECTION +("array 16") { + +44  + gi + = 0; i < 16; i++ + gy +. +add +( +i +); + +46 +check +( +y +, + +51 +SECTION +("array 32") { + +52 cڡ * + gn + = 0; + +53  + gi + = 0; i < 65536; i++ + gy +. +add +( +n +); + +55 +check +( +y +, + +56 +d +:: +rg +("\xDD\x00\x01\x00\x00", 5) + std::string(65536, '\xc0')); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeObject.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9  + $check +(cڡ +JsObje + +obje +, cڡ * +exed_da +, + +10 +size_t + +exed_n +) { + +11 +d +:: +rg + + `exed +( +exed_da +,xed_d+ +exed_n +); + +12 +d +:: +rg + +au +; + +13 +size_t + +n + = + `rlizeMsgPack +( +obje +, +au +); + +14 + `CAPTURE +( +obje +); + +15 + `REQUIRE +( +n + = +exed_n +); + +16 + `REQUIRE +( +au + = +exed +); + +17 + } +} + +19 + gme + < +size_t + + gN +> + +20  +check +(cڡ +JsObje + +obje +, cڡ (& +exed_da +)[ +N +]) { + +21 cڡ +size_t + + gexed_n + = +N + - 1; + +22 +check +( +obje +, +exed_da +, +exed_n +); + +25 +TEST_CASE +("serialize MsgPack object") { + +26 +DymicJsDocumt + +doc +(4096); + +27 +JsObje + + gobje + = +doc +. +to +(); + +29 +SECTION +("empty") { + +30 +check +( +obje +, "\x80"); + +33 +SECTION +("fixmap") { + +34 + gobje +["hello"] = "world"; + +36 +check +( +obje +, "\x81\xA5hello\xA5world"); + +39 +SECTION +("map 16") { + +40  + gi + = 0; i < 16; ++i) { + +41  + gkey +[16]; + +42 +rtf +( +key +, "i%X", +i +); + +43 + gobje +[ +key +] = +i +; + +46 +check +( +obje +, + +52 +SECTION +("serialized(const char*)") { + +53 + gobje +["hlo"] = +rlized +("\xDB\x00\x01\x00\x00", 5); + +54 +check +( +obje +, "\x81\xA5hello\xDB\x00\x01\x00\x00"); + +57 +SECTION +("serialized(std::string)") { + +58 + gobje +["hlo"] = +rlized +( +d +:: +rg +("\xDB\x00\x01\x00\x00", 5)); + +59 +check +( +obje +, "\x81\xA5hello\xDB\x00\x01\x00\x00"); + + @lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeVariant.cpp + +5  + ~ + +6  + ~ + +8 + gme + < +tyme + + gT +> + +9  + $checkV +( +T + +vue +, cڡ * +exed_da +, + +10 +size_t + +exed_n +) { + +11 +DymicJsDocumt + + `doc +(4096); + +12 +JsV + +v + = +doc +. +to +(); + +13 +v +. + `t +( +vue +); + +14 +d +:: +rg + + `exed +( +exed_da +,xed_d+ +exed_n +); + +15 +d +:: +rg + +au +; + +16 +size_t + +n + = + `rlizeMsgPack +( +v +, +au +); + +17 + `CAPTURE +( +v +); + +18 + `REQUIRE +( +n + = +exed_n +); + +19 + `REQUIRE +( +au + = +exed +); + +20 + } +} + +22 + gme + < +tyme + + gT +, +size_t + + gN +> + +23  +checkV +( +T + +vue +, cڡ (& +exed_da +)[ +N +]) { + +24 cڡ +size_t + + gexed_n + = +N + - 1; + +25 +checkV +( +vue +, +exed_da +, +exed_n +); + +28 + gme + < +tyme + + gT +> + +29  + $checkV +( +T + +vue +, cڡ +d +:: +rg +& +exed +) { + +30 + `checkV +( +vue +, +exed +. + `da +(),xed. + `ngth +()); + +31 + } +} + +33 +TEST_CASE +("serialize MsgPack value") { + +34 +SECTION +("undefined") { + +35 +checkV +( +JsV +(), "\xC0"); + +38 +SECTION +("nil") { + +39 cڡ * + gn + = 0; + +40 +checkV +( +n +, "\xC0"); + +43 +SECTION +("bool") { + +44 +checkV +( +l +, "\xC2"); + +45 +checkV +( +ue +, "\xC3"); + +48 +SECTION +("positive fixint") { + +49 +checkV +(0, "\x00"); + +50 +checkV +(127, "\x7F"); + +53 +SECTION +("uint 8") { + +54 +checkV +(128, "\xCC\x80"); + +55 +checkV +(255, "\xCC\xFF"); + +58 +SECTION +("uint 16") { + +59 +checkV +(256, "\xCD\x01\x00"); + +60 +checkV +(0xFFFF, "\xCD\xFF\xFF"); + +63 +SECTION +("uint 32") { + +64 +checkV +(0x00010000U, "\xCE\x00\x01\x00\x00"); + +65 +checkV +(0x12345678U, "\xCE\x12\x34\x56\x78"); + +66 +checkV +(0xFFFFFFFFU, "\xCE\xFF\xFF\xFF\xFF"); + +69 #i +ARDUINOJSON_USE_LONG_LONG + + +70 +SECTION +("uint 64") { + +71 +checkV +(0x0001000000000000U, "\xCF\x00\x01\x00\x00\x00\x00\x00\x00"); + +72 +checkV +(0x123456789ABCDEF0U, "\xCF\x12\x34\x56\x78\x9A\xBC\xDE\xF0"); + +73 +checkV +(0xFFFFFFFFFFFFFFFFU, "\xCF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"); + +77 +SECTION +("negative fixint") { + +78 +checkV +(-1, "\xFF"); + +79 +checkV +(-32, "\xE0"); + +82 +SECTION +("int 8") { + +83 +checkV +(-33, "\xD0\xDF"); + +84 +checkV +(-128, "\xD0\x80"); + +87 +SECTION +("int 16") { + +88 +checkV +(-129, "\xD1\xFF\x7F"); + +89 +checkV +(-32768, "\xD1\x80\x00"); + +92 +SECTION +("int 32") { + +93 +checkV +(-32769, "\xD2\xFF\xFF\x7F\xFF"); + +94 +checkV +(-2147483647 - 1, "\xD2\x80\x00\x00\x00"); + +97 #i +ARDUINOJSON_USE_LONG_LONG + + +98 +SECTION +("int 64") { + +99 +checkV +( +t64_t +(0xFEDCBA9876543210), + +104 +SECTION +("float 32") { + +105 +checkV +(1.25, "\xCA\x3F\xA0\x00\x00"); + +108 +SECTION +("float 64") { + +109 +checkV +(3.1415, "\xCB\x40\x09\x21\xCA\xC0\x83\x12\x6F"); + +112 +SECTION +("fixstr") { + +113 +checkV +("", "\xA0"); + +114 +checkV +("hello world hello world hello !", + +118 +SECTION +("str 8") { + +119 +checkV +("hello world hello world hello !!", + +123 +SECTION +("str 16") { + +124 + gd +:: +rg + +sh܋ +(256, '?'); + +125 +checkV +( +sh܋ +. +c_r +(), +d +:: +rg +("\xDA\x01\x00", 3) + shortest); + +127 + gd +:: +rg + +lge +(65535, '?'); + +128 +checkV +( +lge +. +c_r +(), +d +:: +rg +("\xDA\xFF\xFF", 3) +ongest); + +131 +SECTION +("str 32") { + +132 + gd +:: +rg + +sh܋ +(65536, '?'); + +133 +checkV +( +sh܋ +. +c_r +(), + +134 +d +:: +rg +("\xDB\x00\x01\x00\x00", 5+ +sh܋ +); + +137 +SECTION +("serialized(const char*)") { + +138 +checkV +( +rlized +("\xDA\xFF\xFF"), "\xDA\xFF\xFF"); + +139 +checkV +( +rlized +("\xDB\x00\x01\x00\x00", 5), "\xDB\x00\x01\x00\x00"); + + @lib_standalone/ArduinoJson/extras/tests/Numbers/parseFloat.cpp + +5  + #ARDUINOJSON_USE_DOUBLE + 0 + + ) + +6  + #ARDUINOJSON_ENABLE_NAN + 1 + + ) + +7  + #ARDUINOJSON_ENABLE_INFINITY + 1 + + ) + +9  + ~ + +10  + ~ + +12 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +14 + gme + < +tyme + + gT +> + +15  + $checkFlt +(cڡ * +put +, +T + +exed +) { + +16 + `CAPTURE +( +put +); + +17 + `REQUIRE +( +rFlt +< +T +>( +put += + `Arox +( +exed +)); + +18 + } +} + +20 + gme + < +tyme + + gT +> + +21  + $checkNaN +(cڡ * +put +) { + +22 + `CAPTURE +( +put +); + +23 +T + +su + = +rFlt +( +put +); + +24 + `REQUIRE +( +su + !=esult); + +25 + } +} + +27 + gme + < +tyme + + gT +> + +28  + $checkInf +(cڡ * +put +, +bo + +give +) { + +29 + `CAPTURE +( +put +); + +30 +T + +x + = +rFlt +( +put +); + +31 i( +give +) + +32 + `REQUIRE +( +x + < 0); + +34 + `REQUIRE +( +x + > 0); + +35 + `REQUIRE +( +x + == x); + +36 + `REQUIRE +( +x + * 2 == x); + +37 + } +} + +39 +TEST_CASE +("parseFloat()") { + +40 +SECTION +("Float_Short_NoExponent") { + +41 + gcheckFlt +<>("3.14", 3.14f); + +42 + gcheckFlt +<>("-3.14", -3.14f); + +43 + gcheckFlt +<>("+3.14", +3.14f); + +46 +SECTION +("Short_NoDot") { + +47 + gcheckFlt +<>("1E+38", 1E+38f); + +48 + gcheckFlt +<>("-1E+38", -1E+38f); + +49 + gcheckFlt +<>("+1E-38", +1E-38f); + +50 + gcheckFlt +<>("+1e+38", +1e+38f); + +51 + gcheckFlt +<>("-1e-38", -1e-38f); + +54 +SECTION +("Max") { + +55 + gcheckFlt +<>("340.2823e+36", 3.402823e+38f); + +56 + gcheckFlt +<>("34.02823e+37", 3.402823e+38f); + +57 + gcheckFlt +<>("3.402823e+38", 3.402823e+38f); + +58 + gcheckFlt +<>("0.3402823e+39", 3.402823e+38f); + +59 + gcheckFlt +<>("0.03402823e+40", 3.402823e+38f); + +60 + gcheckFlt +<>("0.003402823e+41", 3.402823e+38f); + +63 +SECTION +("VeryLong") { + +64 + gcheckFlt +<>("0.00000000000000000000000000000001", 1e-32f); + +65 + gcheckFlt +<>("100000000000000000000000000000000.0", 1e+32f); + +66 + gcheckFlt +<>( + +71 +SECTION +("MantissaTooLongToFit") { + +72 + gcheckFlt +<>("0.340282346638528861111111111111", 0.34028234663852886f); + +73 + gcheckFlt +<>("34028234663852886.11111111111111", 34028234663852886.0f); + +74 + gcheckFlt +<>("34028234.66385288611111111111111", 34028234.663852886f); + +76 + gcheckFlt +<>("-0.340282346638528861111111111111", + +78 + gcheckFlt +<>("-34028234663852886.11111111111111", + +80 + gcheckFlt +<>("-34028234.66385288611111111111111", + +84 +SECTION +("ExponentTooBig") { + +85 + gcheckInf +<>("1e39", + gl +); + +86 + gcheckInf +<>("-1e39", + gue +); + +87 + gcheckInf +<>("1e255", + gl +); + +88 + gcheckFlt +<>("1e-255", 0.0f); + +91 +SECTION +("NaN") { + +92 + gcheckNaN +<>("NaN"); + +93 + gcheckNaN +<>("nan"); + +96 +SECTION +("Infinity") { + +97 + gcheckInf +<>("Infy", + gl +); + +98 + gcheckInf +<>("+Infy", + gl +); + +99 + gcheckInf +<>("-Infy", + gue +); + +100 + gcheckInf +<>("f", + gl +); + +101 + gcheckInf +<>("+f", + gl +); + +102 + gcheckInf +<>("-f", + gue +); + +104 + gcheckInf +<>("1e300", + gl +); + +105 + gcheckInf +<>("-1e300", + gue +); + +109 +TEST_CASE +("parseFloat()") { + +110 +SECTION +("Short_NoExponent") { + +111 + gcheckFlt +<>("3.14", 3.14); + +112 + gcheckFlt +<>("-3.14", -3.14); + +113 + gcheckFlt +<>("+3.14", +3.14); + +116 +SECTION +("Short_NoDot") { + +117 + gcheckFlt +<>("1E+308", 1E+308); + +118 + gcheckFlt +<>("-1E+308", -1E+308); + +119 + gcheckFlt +<>("+1E-308", +1E-308); + +120 + gcheckFlt +<>("+1e+308", +1e+308); + +121 + gcheckFlt +<>("-1e-308", -1e-308); + +124 +SECTION +("Max") { + +125 + gcheckFlt +<>(".017976931348623147e+310", 1.7976931348623147e+308); + +126 + gcheckFlt +<>(".17976931348623147e+309", 1.7976931348623147e+308); + +127 + gcheckFlt +<>("1.7976931348623147e+308", 1.7976931348623147e+308); + +128 + gcheckFlt +<>("17.976931348623147e+307", 1.7976931348623147e+308); + +129 + gcheckFlt +<>("179.76931348623147e+306", 1.7976931348623147e+308); + +132 +SECTION +("Min") { + +133 + gcheckFlt +<>(".022250738585072014e-306", 2.2250738585072014e-308); + +134 + gcheckFlt +<>(".22250738585072014e-307", 2.2250738585072014e-308); + +135 + gcheckFlt +<>("2.2250738585072014e-308", 2.2250738585072014e-308); + +136 + gcheckFlt +<>("22.250738585072014e-309", 2.2250738585072014e-308); + +137 + gcheckFlt +<>("222.50738585072014e-310", 2.2250738585072014e-308); + +140 +SECTION +("VeryLong") { + +141 + gcheckFlt +<>("0.00000000000000000000000000000001", 1e-32); + +142 + gcheckFlt +<>("100000000000000000000000000000000.0", 1e+32); + +143 + gcheckFlt +<>( + +148 +SECTION +("MantissaTooLongToFit") { + +149 + gcheckFlt +<>("0.179769313486231571111111111111", 0.17976931348623157); + +150 + gcheckFlt +<>("17976931348623157.11111111111111", 17976931348623157.0); + +151 + gcheckFlt +<>("1797693.134862315711111111111111", 1797693.1348623157); + +153 + gcheckFlt +<>("-0.179769313486231571111111111111", + +155 + gcheckFlt +<>("-17976931348623157.11111111111111", + +157 + gcheckFlt +<>("-1797693.134862315711111111111111", + +161 +SECTION +("ExponentTooBig") { + +162 + gcheckInf +<>("1e309", + gl +); + +163 + gcheckInf +<>("-1e309", + gue +); + +164 + gcheckInf +<>("1e65535", + gl +); + +165 + gcheckFlt +<>("1e-65535", 0.0); + +168 +SECTION +("NaN") { + +169 + gcheckNaN +<>("NaN"); + +170 + gcheckNaN +<>("nan"); + + @lib_standalone/ArduinoJson/extras/tests/Numbers/parseInteger.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +11 + gme + < +tyme + + gT +> + +12  + $checkIeg +(cڡ * +put +, +T + +exed +) { + +13 + `CAPTURE +( +put +); + +14 +T + +au + = +rIeg +( +put +); + +15 + `REQUIRE +( +exed + = +au +); + +16 + } +} + +18 +TEST_CASE +("parseInteger()") { + +19 + gcheckIeg +< + gt8_t +>("-128", -128); + +20 + gcheckIeg +< + gt8_t +>("127", 127); + +21 + gcheckIeg +< + gt8_t +>("+127", 127); + +22 + gcheckIeg +< + gt8_t +>("3.14", 3); + +23 + gcheckIeg +< + gt8_t +>("x42", 0); + +24 + gcheckIeg +< + gt8_t +>("128", 0); + +25 + gcheckIeg +< + gt8_t +>("-129", 0); + +28 +TEST_CASE +("parseInteger()") { + +29 + gcheckIeg +< + gt16_t +>("-32768", -32768); + +30 + gcheckIeg +< + gt16_t +>("32767", 32767); + +31 + gcheckIeg +< + gt16_t +>("+32767", 32767); + +32 + gcheckIeg +< + gt16_t +>("3.14", 3); + +33 + gcheckIeg +< + gt16_t +>("x42", 0); + +34 + gcheckIeg +< + gt16_t +>("-32769", 0); + +35 + gcheckIeg +< + gt16_t +>("32768", 0); + +38 +TEST_CASE +("parseInteger()") { + +39 + gcheckIeg +< + gt32_t +>("-2147483648", (-2147483647 - 1)); + +40 + gcheckIeg +< + gt32_t +>("2147483647", 2147483647); + +41 + gcheckIeg +< + gt32_t +>("+2147483647", 2147483647); + +42 + gcheckIeg +< + gt32_t +>("3.14", 3); + +43 + gcheckIeg +< + gt32_t +>("x42", 0); + +44 + gcheckIeg +< + gt32_t +>("-2147483649", 0); + +45 + gcheckIeg +< + gt32_t +>("2147483648", 0); + +48 +TEST_CASE +("parseInteger()") { + +49 + gcheckIeg +< + gut8_t +>("0", 0); + +50 + gcheckIeg +< + gut8_t +>("255", 255); + +51 + gcheckIeg +< + gut8_t +>("+255", 255); + +52 + gcheckIeg +< + gut8_t +>("3.14", 3); + +53 + gcheckIeg +< + gut8_t +>("x42", 0); + +54 + gcheckIeg +< + gut8_t +>("-1", 0); + +55 + gcheckIeg +< + gut8_t +>("256", 0); + +58 +TEST_CASE +("parseInteger()") { + +59 + gcheckIeg +< + gut16_t +>("0", 0); + +60 + gcheckIeg +< + gut16_t +>("65535", 65535); + +61 + gcheckIeg +< + gut16_t +>("+65535", 65535); + +62 + gcheckIeg +< + gut16_t +>("3.14", 3); + +64 + gcheckIeg +< + gut16_t +>("x42", 0); + +65 + gcheckIeg +< + gut16_t +>("-1", 0); + +66 + gcheckIeg +< + gut16_t +>("65536", 0); + + @lib_standalone/ArduinoJson/extras/tests/Numbers/parseNumber.cpp + +5  + ~ + +6  + ~ + +8 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +10 +TEST_CASE +("Test uint32_t overflow") { + +11 + gPdNumb +<, + gut32_t +> + gf + = + +12 +rNumb +<, + gut32_t +>("4294967295"); + +13 + gPdNumb +<, + gut32_t +> + gcd + = + +14 +rNumb +<, + gut32_t +>("4294967296"); + +16 +REQUIRE +( +f +. +ty +(= +ut8_t +( +VALUE_IS_POSITIVE_INTEGER +)); + +17 +REQUIRE +( +cd +. +ty +(= +ut8_t +( +VALUE_IS_FLOAT +)); + +20 +TEST_CASE +("Invalid value") { + +21 + gPdNumb +<, + gut32_t +> + gsu + = +rNumb +<, uint32_t>("6a3"); + +23 +REQUIRE +( +su +. +ty +(= +ut8_t +( +VALUE_IS_NULL +)); + + @lib_standalone/ArduinoJson/extras/tests/TextFormatter/writeFloat.cpp + +5  + ~ + +6  + ~ + +7  + ~ + +9  + #ARDUINOJSON_ENABLE_NAN + 1 + + ) + +10  + #ARDUINOJSON_ENABLE_INFINITY + 1 + + ) + +11  + ~ + +12  + ~ + +14 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +16 + gme + < +tyme + + gTFlt +> + +17  + $check +( +TFlt + +put +, cڡ +d +:: +rg +& +exed +) { + +18 +d +:: +rg + +ouut +; + +19 +Wr +< +d +:: +rg +> + `sb +( +ouut +); + +20 +TextFmr +< +Wr +< +d +:: +rg +> > + `wr +( +sb +); + +21 +wr +. + `wreFlt +( +put +); + +22 + `REQUIRE +( +wr +. + `bysWrn +(= +ouut +. + `size +()); + +23 + `CHECK +( +exed + = +ouut +); + +24 + } +} + +26 +TEST_CASE +("TextFormatter::writeFloat(double)") { + +27 +SECTION +("Pi") { + +28 + gcheck +<>(3.14159265359, "3.141592654"); + +31 +SECTION +("Signaling NaN") { + +32  + gn + = +d +:: +numic_lims +<>:: +siglg_NaN +(); + +33 + gcheck +<>( + gn +, "NaN"); + +36 +SECTION +("Quiet NaN") { + +37  + gn + = +d +:: +numic_lims +<>:: +qut_NaN +(); + +38 + gcheck +<>( + gn +, "NaN"); + +41 +SECTION +("Infinity") { + +42  + gf + = +d +:: +numic_lims +<>:: +fy +(); + +43 + gcheck +<>( + gf +, "Infinity"); + +44 + gcheck +<>(- + gf +, "-Infinity"); + +47 +SECTION +("Zero") { + +48 + gcheck +<>(0.0, "0"); + +49 + gcheck +<>(-0.0, "0"); + +52 +SECTION +("Espilon") { + +53 + gcheck +<>(2.2250738585072014E-308, "2.225073859e-308"); + +54 + gcheck +<>(-2.2250738585072014E-308, "-2.225073859e-308"); + +57 +SECTION +("Max double") { + +58 + gcheck +<>(1.7976931348623157E+308, "1.797693135e308"); + +59 + gcheck +<>(-1.7976931348623157E+308, "-1.797693135e308"); + +62 +SECTION +("Bigxponent") { + +64 + gcheck +<>(1e255, "1e255"); + +65 + gcheck +<>(1e-255, "1e-255"); + +68 +SECTION +("Exponentation when <= 1e-5") { + +69 + gcheck +<>(1e-4, "0.0001"); + +70 + gcheck +<>(1e-5, "1e-5"); + +72 + gcheck +<>(-1e-4, "-0.0001"); + +73 + gcheck +<>(-1e-5, "-1e-5"); + +76 +SECTION +("Exponentation when >= 1e7") { + +77 + gcheck +<>(9999999.999, "9999999.999"); + +78 + gcheck +<>(10000000.0, "1e7"); + +80 + gcheck +<>(-9999999.999, "-9999999.999"); + +81 + gcheck +<>(-10000000.0, "-1e7"); + +84 +SECTION +("Rounding whenoo many decimals") { + +85 + gcheck +<>(0.000099999999999, "0.0001"); + +86 + gcheck +<>(0.0000099999999999, "1e-5"); + +87 + gcheck +<>(0.9999999996, "1"); + +90 +SECTION +("9 decimallaces") { + +91 + gcheck +<>(0.100000001, "0.100000001"); + +92 + gcheck +<>(0.999999999, "0.999999999"); + +94 + gcheck +<>(9.000000001, "9.000000001"); + +95 + gcheck +<>(9.999999999, "9.999999999"); + +98 +SECTION +("10 decimallaces") { + +99 + gcheck +<>(0.1000000001, "0.1"); + +100 + gcheck +<>(0.9999999999, "1"); + +102 + gcheck +<>(9.0000000001, "9"); + +103 + gcheck +<>(9.9999999999, "10"); + +107 +TEST_CASE +("TextFormatter::writeFloat(float)") { + +108 +SECTION +("Pi") { + +109 + gcheck +<>(3.14159265359f, "3.141593"); + +112 +SECTION +("999.9") { + +113 + gcheck +<>(999.9f, "999.9"); + +116 +SECTION +("24.3") { + +117 + gcheck +<>(24.3f, "24.3"); + + @lib_standalone/ArduinoJson/extras/tests/TextFormatter/writeString.cpp + +5  + ~ + +7  + ~ + +8  + ~ + +10 +usg + +mea + + gARDUINOJSON_NAMESPACE +; + +12  + $check +(cڡ * +put +, +d +:: +rg + +exed +) { + +13  +ouut +[1024]; + +14 +SticSgWr + + `sb +( +ouut +, (output)); + +15 +TextFmr +< +SticSgWr +> + `wr +( +sb +); + +16 +wr +. + `wreSg +( +put +); + +17 + `REQUIRE +( +exed + = +ouut +); + +18 + `REQUIRE +( +wr +. + `bysWrn +(= +exed +. + `size +()); + +19 + } +} + +21 +TEST_CASE +("TextFormatter::writeString()") { + +22 +SECTION +("EmptyString") { + +23 +check +("", "\"\""); + +26 +SECTION +("QuotationMark") { + +27 +check +("\"", "\"\\\"\""); + +30 +SECTION +("ReverseSolidus") { + +31 +check +("\\", "\"\\\\\""); + +34 +SECTION +("Solidus") { + +35 +check +("/", "\"/\""); + +38 +SECTION +("Backspace") { + +39 +check +("\b", "\"\\b\""); + +42 +SECTION +("Formfeed") { + +43 +check +("\f", "\"\\f\""); + +46 +SECTION +("Newline") { + +47 +check +("\n", "\"\\n\""); + +50 +SECTION +("CarriageReturn") { + +51 +check +("\r", "\"\\r\""); + +54 +SECTION +("HorizontalTab") { + +55 +check +("\t", "\"\\t\""); + + @lib_standalone/ArduinoJson/extras/tests/catch/catch.cpp + +5  + #CATCH_CONFIG_MAIN + + + ) + +6  + ~"tch.h +" + + @lib_standalone/ArduinoJson/extras/tests/catch/catch.hpp + +11 #ide +TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED + + +12  + #TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED + + + ) + +14  + #TWOBLUECUBES_CATCH_HPP_INCLUDED + + + ) + +16 #ifde +__g__ + + +17 #agm +g + +syem_hd + + +18 #i +defed + +__GNUC__ + + +19 #agm +GCC + +syem_hd + + +24 #ifde +__g__ + + +25 #ifde +__ICC + + +26 #agm +wng +( +push +) + +27 #agm +wng +( +dib +: 161 1682) + +29 #agm +g + +dgnoic + +igned + "-Wglobal-constructors" + +30 #agm +g + +dgnoic + +igned + "-Wvariadic-macros" + +31 #agm +g + +dgnoic + +igned + "-Wc99-extensions" + +32 #agm +g + +dgnoic + +igned + "-Wunused-variable" + +33 #agm +g + +dgnoic + +push + + +34 #agm +g + +dgnoic + +igned + "-Wpadded" + +35 #agm +g + +dgnoic + +igned + "-Wc++98-compat" + +36 #agm +g + +dgnoic + +igned + "-Wc++98-compat-pedantic" + +37 #agm +g + +dgnoic + +igned + "-Wswitch-enum" + +38 #agm +g + +dgnoic + +igned + "-Wcovered-switch-default" + +40 #i +defed + +__GNUC__ + + +41 #agm +GCC + +dgnoic + +igned + "-Wvariadic-macros" + +42 #agm +GCC + +dgnoic + +igned + "-Wunused-variable" + +43 #agm +GCC + +dgnoic + +igned + "-Wparentheses" + +45 #agm +GCC + +dgnoic + +push + + +46 #agm +GCC + +dgnoic + +igned + "-Wpadded" + +48 #i +defed +( +CATCH_CONFIG_MAIN +|| defed( +CATCH_CONFIG_RUNNER +) + +49  + #CATCH_IMPL + + + ) + +52 #ifde +CATCH_IMPL + + +53 #ide +CLARA_CONFIG_MAIN + + +54  + #CLARA_CONFIG_MAIN_NOT_DEFINED + + + ) + +55  + #CLARA_CONFIG_MAIN + + + ) + +60  + #TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED + + + ) + +63  + #TWOBLUECUBES_CATCH_COMMON_H_INCLUDED + + + ) + +66  + #TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED + + + ) + +100 #ifde +__lulus + + +102 #i +__lulus + >= 201103L + +103  + #CATCH_CPP11_OR_GREATER + + + ) + +106 #i +__lulus + >= 201402L + +107  + #CATCH_CPP14_OR_GREATER + + + ) + +112 #ifde +__g__ + + +114 #i +__has_u +( +cxx_nuαr +) + +115  + #CATCH_INTERNAL_CONFIG_CPP11_NULLPTR + + + ) + +118 #i +__has_u +( +cxx_nx +) + +119  + #CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT + + + ) + +122 #i +defed +( +CATCH_CPP11_OR_GREATER +) + +123  + #CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + \ + +124 + `_Pgma +( "clang diagnosticush" ) \ + +125 + `_Pgma +"g dgnoiigned \"-Wex-time-derus\"" ) + + ) + +126  + #CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + \ + +127 + `_Pgma +"g dgnoip" ) + + ) + +129  + #CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS + \ + +130 + `_Pgma +( "clang diagnosticush" ) \ + +131 + `_Pgma +"g dgnoiigned \"-Whes\"" ) + + ) + +132  + #CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS + \ + +133 + `_Pgma +"g dgnoip" ) + + ) + +140 #i +defed +( +__CYGWIN__ +|| defed( +__QNX__ +) + +142 #i! +defed +( +CATCH_CONFIG_POSIX_SIGNALS +) + +143  + #CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS + + + ) + +148 #ifde +__OS400__ + + +149  + #CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS + + + ) + +150  + #CATCH_CONFIG_COLOUR_NONE + + + ) + +155 #ifde +__CYGWIN__ + + +159  + #_BSD_SOURCE + + + ) + +165 #ifde +__BORLANDC__ + + +171 #ifde +__EDG_VERSION__ + + +177 #ifde +__DMC__ + + +183 #ifde +__GNUC__ + + +185 #i +__GNUC__ + =4 && +__GNUC_MINOR__ + >6 && +defed +( +__GXX_EXPERIMENTAL_CXX0X__ +) + +186  + #CATCH_INTERNAL_CONFIG_CPP11_NULLPTR + + + ) + +196 #ifde +_MSC_VER + + +198  + #CATCH_INTERNAL_CONFIG_WINDOWS_SEH + + + ) + +200 #i( +_MSC_VER + >= 1600) + +201  + #CATCH_INTERNAL_CONFIG_CPP11_NULLPTR + + + ) + +202  + #CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR + + + ) + +205 #i( +_MSC_VER + >= 1900 ) + +206  + #CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT + + + ) + +207  + #CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS + + + ) + +208  + #CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE + + + ) + +209  + #CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS + + + ) + +217 #i +defed + +_MSC_VER + && _MSC_VER > 1400 && !defed +__EDGE__ +) || \ + +218 +defed + + g__WAVE__ + && + g__WAVE_HAS_VARIADICS + ) || \ + +219 +defed + + g__GNUC__ + && __GNUC__ >= 3 ) || \ + +220 ! +defed + +__lulus + && +__STDC_VERSION__ + >= 199901L || __cplusplus >= 201103L ) + +222  + #CATCH_INTERNAL_CONFIG_VARIADIC_MACROS + + + ) + +227 #i +defed + +_MSC_VER + && _MSC_VER >= 1300 ) || \ + +228 +defed + +__GNUC__ + && ( __GNUC__ > 4 || (__GNUC__ =4 && +__GNUC_MINOR__ + >= 3 )) ) || \ + +229 +defed + +__g__ + && +__g_maj__ + >= 3 ) + +231  + #CATCH_INTERNAL_CONFIG_COUNTER + + + ) + +239 #i +defed +( +CATCH_CPP11_OR_GREATER +) + +241 #i! +defed +( +CATCH_INTERNAL_CONFIG_CPP11_NULLPTR +) + +242  + #CATCH_INTERNAL_CONFIG_CPP11_NULLPTR + + + ) + +245 #ide +CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT + + +246  + #CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT + + + ) + +249 #ide +CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS + + +250  + #CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS + + + ) + +253 #ide +CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM + + +254  + #CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM + + + ) + +257 #ide +CATCH_INTERNAL_CONFIG_CPP11_TUPLE + + +258  + #CATCH_INTERNAL_CONFIG_CPP11_TUPLE + + + ) + +261 #ide +CATCH_INTERNAL_CONFIG_VARIADIC_MACROS + + +262  + #CATCH_INTERNAL_CONFIG_VARIADIC_MACROS + + + ) + +265 #i! +defed +( +CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG +) + +266  + #CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG + + + ) + +269 #i! +defed +( +CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE +) + +270  + #CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE + + + ) + +272 #i! +defed +( +CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR +) + +273  + #CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR + + + ) + +275 #i! +defed +( +CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE +) + +276  + #CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE + + + ) + +278 #i! +defed +( +CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS +) + +279  + #CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS + + + ) + +285 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_NULLPTR +&& !defed( +CATCH_CONFIG_CPP11_NO_NULLPTR +&& !defed( +CATCH_CONFIG_CPP11_NULLPTR +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +286  + #CATCH_CONFIG_CPP11_NULLPTR + + + ) + +288 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT +&& !defed( +CATCH_CONFIG_CPP11_NO_NOEXCEPT +&& !defed( +CATCH_CONFIG_CPP11_NOEXCEPT +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +289  + #CATCH_CONFIG_CPP11_NOEXCEPT + + + ) + +291 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS +&& !defed( +CATCH_CONFIG_CPP11_NO_GENERATED_METHODS +&& !defed( +CATCH_CONFIG_CPP11_GENERATED_METHODS +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +292  + #CATCH_CONFIG_CPP11_GENERATED_METHODS + + + ) + +294 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM +&& !defed( +CATCH_CONFIG_CPP11_NO_IS_ENUM +&& !defed( +CATCH_CONFIG_CPP11_IS_ENUM +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +295  + #CATCH_CONFIG_CPP11_IS_ENUM + + + ) + +297 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_TUPLE +&& !defed( +CATCH_CONFIG_CPP11_NO_TUPLE +&& !defed( +CATCH_CONFIG_CPP11_TUPLE +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +298  + #CATCH_CONFIG_CPP11_TUPLE + + + ) + +300 #i +defed +( +CATCH_INTERNAL_CONFIG_VARIADIC_MACROS +&& !defed( +CATCH_CONFIG_NO_VARIADIC_MACROS +&& !defed( +CATCH_CONFIG_VARIADIC_MACROS +) + +301  + #CATCH_CONFIG_VARIADIC_MACROS + + + ) + +303 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG +&& !defed( +CATCH_CONFIG_CPP11_NO_LONG_LONG +&& !defed( +CATCH_CONFIG_CPP11_LONG_LONG +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +304  + #CATCH_CONFIG_CPP11_LONG_LONG + + + ) + +306 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE +&& !defed( +CATCH_CONFIG_CPP11_NO_OVERRIDE +&& !defed( +CATCH_CONFIG_CPP11_OVERRIDE +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +307  + #CATCH_CONFIG_CPP11_OVERRIDE + + + ) + +309 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR +&& !defed( +CATCH_CONFIG_CPP11_NO_UNIQUE_PTR +&& !defed( +CATCH_CONFIG_CPP11_UNIQUE_PTR +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +310  + #CATCH_CONFIG_CPP11_UNIQUE_PTR + + + ) + +315 #i +defed +( +CATCH_INTERNAL_CONFIG_COUNTER +&& !defed( +CATCH_CONFIG_NO_COUNTER +&& !defed( +CATCH_CONFIG_COUNTER +&& !defed( +__JETBRAINS_IDE__ +) + +316  + #CATCH_CONFIG_COUNTER + + + ) + +318 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE +&& !defed( +CATCH_CONFIG_CPP11_NO_SHUFFLE +&& !defed( +CATCH_CONFIG_CPP11_SHUFFLE +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +319  + #CATCH_CONFIG_CPP11_SHUFFLE + + + ) + +321 #i +defed +( +CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS +&& !defed( +CATCH_CONFIG_CPP11_NO_TYPE_TRAITS +&& !defed( +CATCH_CONFIG_CPP11_TYPE_TRAITS +&& !defed( +CATCH_CONFIG_NO_CPP11 +) + +322  + #CATCH_CONFIG_CPP11_TYPE_TRAITS + + + ) + +324 #i +defed +( +CATCH_INTERNAL_CONFIG_WINDOWS_SEH +&& !defed( +CATCH_CONFIG_NO_WINDOWS_SEH +&& !defed( +CATCH_CONFIG_WINDOWS_SEH +) + +325  + #CATCH_CONFIG_WINDOWS_SEH + + + ) + +328 #i! +defed +( +CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS +&& !defed( +CATCH_CONFIG_NO_POSIX_SIGNALS +&& !defed( +CATCH_CONFIG_POSIX_SIGNALS +) + +329  + #CATCH_CONFIG_POSIX_SIGNALS + + + ) + +332 #i! +defed +( +CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS +) + +333  + #CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS + + + ) + +334  + #CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS + + + ) + +336 #i! +defed +( +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS +) + +337  + #CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + + + ) + +338  + #CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + + + ) + +342 #i +defed +( +CATCH_CONFIG_CPP11_NOEXCEPT +&& !defed( +CATCH_NOEXCEPT +) + +343  + #CATCH_NOEXCEPT + +nx + + + ) + +344  + #CATCH_NOEXCEPT_IS +( +x + + `nx +(x) + + ) + +346  + #CATCH_NOEXCEPT + + `throw +() + + ) + +347  + #CATCH_NOEXCEPT_IS +( +x +) + + ) + +351 #ifde +CATCH_CONFIG_CPP11_NULLPTR + + +352  + #CATCH_NULL + +nuαr + + + ) + +354  + #CATCH_NULL + +NULL + + + ) + +358 #ifde +CATCH_CONFIG_CPP11_OVERRIDE + + +359  + #CATCH_OVERRIDE + +ovride + + + ) + +361  + #CATCH_OVERRIDE + + + ) + +365 #ifde +CATCH_CONFIG_CPP11_UNIQUE_PTR + + +366  + #CATCH_AUTO_PTR + +T + ) +d +:: +unique_r + + + ) + +368  + #CATCH_AUTO_PTR + +T + ) +d +:: +auto_r + + + ) + +371  + #INTERNAL_CATCH_UNIQUE_NAME_LINE2 + +me +, +le + )ame## + ) +line + +372  + #INTERNAL_CATCH_UNIQUE_NAME_LINE + +me +, +le + ) + `INTERNAL_CATCH_UNIQUE_NAME_LINE2 +me,) + + ) + +373 #ifde +CATCH_CONFIG_COUNTER + + +374  + #INTERNAL_CATCH_UNIQUE_NAME + +me + ) + `INTERNAL_CATCH_UNIQUE_NAME_LINE +me, +__COUNTER__ + ) + + ) + +376  + #INTERNAL_CATCH_UNIQUE_NAME + +me + ) + `INTERNAL_CATCH_UNIQUE_NAME_LINE +me, +__LINE__ + ) + + ) + +379  + #INTERNAL_CATCH_STRINGIFY2 + +ex + ) #ex + + ) + +380  + #INTERNAL_CATCH_STRINGIFY + +ex + ) + `INTERNAL_CATCH_STRINGIFY2 +ex ) + + ) + +382  + ~ + +383  + ~ + +385 +mea + + gCch + { + +387  + gICfig +; + +389  + sCaSsive + { + eChoi + { + +390 + gYes +, + +391 + gNo + + +394 as + cNCyab + { + +395 #ifde +CATCH_CONFIG_CPP11_GENERATED_METHODS + + +396 +NCyab +NCyab cڡ& ) = +de +; + +397 +NCyab +NCyab && ) = +de +; + +398 + gNCyab +& + gݔ + = ( +NCyab + cڡ& ) = +de +; + +399 + gNCyab +& + gݔ + = ( +NCyab + && ) = +de +; + +401 +NCyab +NCyab cڡ& +fo + ); + +402 + gNCyab +& + gݔ + = ( +NCyab + const& ); + +405 + geed +: + +406 +NCyab +() {} + +407 +vtu + ~ +NCyab +(); + +410 as + cSaBo + { + +411 + gpublic +: + +412 ( +SaBo +::* + tty +)() const; + +414  +ty + +makeSa + +bo + +vue + ) { + +415  + gvue + ? & + gSaBo +:: +ueVue + : 0; + +417 + give +: + +418  +ueVue +() const {} + +421 + gme +< +tyme + + gCڏT +> + +422  + $deA + +CڏT +& +cڏ + ) { + +423 +tyme + +CڏT +:: +cڡ_ + + + = +cڏ +. + `beg +(); + +424 +tyme + +CڏT +:: +cڡ_ + +End + = +cڏ +. + `d +(); + +425 ; + + ! +End +; ++it ) + +426 +de + * + +; + +427 + } +} + +428 + gme +< +tyme + + gAssoctiveCڏT +> + +429  + $deAVues + +AssoctiveCڏT +& +cڏ + ) { + +430 +tyme + +AssoctiveCڏT +:: +cڡ_ + + + = +cڏ +. + `beg +(); + +431 +tyme + +AssoctiveCڏT +:: +cڡ_ + +End + = +cڏ +. + `d +(); + +432 ; + + ! +End +; ++it ) + +433 +de + + +-> +cd +; + +434 + } +} + +436 +bo + +tsWh + +d +:: +rg + cڡ& +s +, std::rg cڡ& +efix + ); + +437 +bo + +tsWh + +d +:: +rg + cڡ& +s +,  +efix + ); + +438 +bo + +dsWh + +d +:: +rg + cڡ& +s +, std::rg cڡ& +suffix + ); + +439 +bo + +dsWh + +d +:: +rg + cڡ& +s +,  +suffix + ); + +440 +bo + +cڏs + +d +:: +rg + cڡ& +s +, std::rg cڡ& +fix + ); + +441  +toLowInP + +d +:: +rg +& +s + ); + +442 + gd +:: +rg + +toLow + +d +::rg cڡ& +s + ); + +443 + gd +:: +rg + +im + +d +::rg cڡ& +r + ); + +444 +bo + +aInP + +d +:: +rg +& +r +, std::rg cڡ& +aThis +, std::rg cڡ& +whThis + ); + +446  + suli + { + +447 +uli + +d +:: +size_t + +cou +, std:: +rg + cڡ& +b + ); + +449 +nd + + gd +:: +oam +& +ݔ + << ( +d +::oam& +os +, +uli + cڡ& + gulir + ); + +451 + gd +:: +size_t + +m_cou +; + +452 + gd +:: +rg + +m_b +; + +455  + sSourLeInfo + { + +457 +SourLeInfo +(); + +458 +SourLeInfo +cڡ* +_fe +, +d +:: +size_t + +_le + ); + +459 #ifde +CATCH_CONFIG_CPP11_GENERATED_METHODS + + +460 +SourLeInfo +(SourLeInfcڡ& +h +) = ; + +461 +SourLeInfo +( SourceLineInfo && ) = ; + +462 + gSourLeInfo +& + gݔ + = ( +SourLeInfo + const& ) = ; + +463 + gSourLeInfo +& + gݔ + = ( +SourLeInfo + && ) = ; + +465 +bo + +emy +() const; + +466 +bo + + gݔ + = +SourLeInfo + cڡ& +h + ) const; + +467 +bo + + gݔ + < ( +SourLeInfo + cڡ& + gh + ) const; + +469 cڡ* + gfe +; + +470 + gd +:: +size_t + +le +; + +473 + gd +:: +oam +& +ݔ + << ( +d +::oam& +os +, +SourLeInfo + cڡ& + gfo + ); + +476 +le + +bo + + $isTrue + +bo + +vue + ){  vue; + } +} + +477 +le + +bo + + $waysTrue +({  +ue +; + } +} + +478 +le + +bo + + $waysF +({  +l +; + } +} + +480  +throwLogicE + +d +:: +rg + cڡ& +mesge +, +SourLeInfo + cڡ& +lotiInfo + ); + +482  +edRng + +ICfig + cڡ& +cfig + ); + +483  +gSd +(); + +489  + sSmEndSt + { + +490 + gd +:: +rg + +ݔ ++() { + +491  +d +:: +rg +(); + +494 + gme +< +tyme + + gT +> + +495 +T + cڡ& + gݔ + + ( T cڡ& + gvue +, + gSmEndSt + ) { + +496  + gvue +; + +500  + #CATCH_INTERNAL_LINEINFO + :: +Cch +:: + `SourLeInfo + +__FILE__ +, +ic_ +< +d +:: +size_t +> +__LINE__ + ) ) + + ) + +501  + #CATCH_INTERNAL_ERROR + +msg + ) :: +Cch +:: + `throwLogicE +msg, +CATCH_INTERNAL_LINEINFO + ); + + ) + +503 +mea + + gCch + { + +505 as + cNImemdExi + : +public + +d +:: +exi + + +507 +public +: + +508 +NImemdExi + +SourLeInfo + cڡ& +leInfo + ); + +510 + gvtu + ~ +NImemdExi +( + gCATCH_NOEXCEPT + {} + +512 +vtu + cڡ * +wh +(cڡ + gCATCH_NOEXCEPT +; + +514 + give +: + +515 +d +:: +rg + +m_wh +; + +516 +SourLeInfo + + gm_leInfo +; + +522  + #CATCH_NOT_IMPLEMENTED + +throw + +Cch +:: + `NImemdExi + +CATCH_INTERNAL_LINEINFO + ) + + ) + +525  + #TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED + + + ) + +528  + #TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED + + + ) + +530  + ~ + +532 +mea + + gCch + { + +534  + sIGInfo + { + +535 + gvtu + ~ +IGInfo +(); + +536 +vtu + +bo + +moveNext +() = 0; + +537 +vtu + + gd +:: +size_t + +gCutIndex +() const = 0; + +540  + sIGsFTe + { + +541 + gvtu + ~ +IGsFTe +(); + +543 +vtu + + gIGInfo +& +gGInfo + +d +:: +rg + cڡ& +feInfo +, std:: +size_t + +size + ) = 0; + +544 +vtu + +bo + +moveNext +() = 0; + +547 +IGsFTe +* +GsFTe +(); + +552  + #TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED + + + ) + +554 #ifde +__g__ + + +555 #agm +g + +dgnoic + +push + + +556 #agm +g + +dgnoic + +igned + "-Wpadded" + +559 +mea + + gCch + { + +564 + gme +< +tyme + + gT +> + +565 as + cP + { + +566 + gpublic +: + +567 +P +(: +m_p + +CATCH_NULL + ){} + +568 +P + +T +* +p + ) : +m_p +( ){ + +569 if +m_p + ) + +570 +m_p +-> +addRef +(); + +572 +P +P cڡ& +h + ) : +m_p +( other.m_p ){ + +573 if +m_p + ) + +574 +m_p +-> +addRef +(); + +576 ~ +P +(){ + +577 if + gm_p + ) + +578 + gm_p +-> +a +(); + +580  +t +() { + +581 if + gm_p + ) + +582 + gm_p +-> +a +(); + +583 + gm_p + = +CATCH_NULL +; + +585 + gP +& + gݔ + = ( +T +* +p + ){ + +586 +P + +mp + +p + ); + +587 +sw + +mp + ); + +588  * + gthis +; + +590 + gP +& + gݔ + = ( +P + cڡ& +h + ){ + +591 +P + +mp + +h + ); + +592 +sw + +mp + ); + +593  * + gthis +; + +595  +sw + +P +& +h + ) { + gd +::sw +m_p +, other.m_p ); } + +596 +T +* +g +(cڡ{  + gm_p +; } + +597 + gT +& + gݔ +*(cڡ {  * + gm_p +; } + +598 +T +* + gݔ +->(cڡ {  + gm_p +; } + +599 +bo + + gݔ + !(cڡ {  + gm_p + = +CATCH_NULL +; } + +600 +ݔ + + gSaBo +:: +ty +(cڡ {  +SaBo +:: +makeSa + +m_p + ! +CATCH_NULL + ); } + +602 + give +: + +603 +T +* +m_p +; + +606  + gIShed + : +NCyab + { + +607 +vtu + ~ +IShed +(); + +608 +vtu +  +addRef +() const = 0; + +609 +vtu +  +a +() const = 0; + +612 + gme +< +tyme + + gT + = +IShed +> + +613  +ShedIm + : +T + { + +615 +ShedIm +(: +m_rc +( 0 ){} + +617 +vtu +  +addRef +() const { + +618 ++ +m_rc +; + +620 +vtu +  +a +() const { + +621 if-- + gm_rc + == 0 ) + +622 +de + +this +; + +625 +mub +  + gm_rc +; + +630 #ifde +__g__ + + +631 #agm +g + +dgnoic + +p + + +634 +mea + + gCch + { + +636 +ass + + gTeCa +; + +637 +ass + + gSm +; + +638  + gIResuCtu +; + +639  + gIRu” +; + +640  + gIGsFTe +; + +641  + gICfig +; + +643  + sICڋxt + + +645 + gvtu + ~ +ICڋxt +(); + +647 +vtu + +IResuCtu +* +gResuCtu +() = 0; + +648 +vtu + +IRu” +* +gRu” +() = 0; + +649 +vtu + +size_t + +gGIndex + +d +:: +rg + cڡ& +feInfo +, size_ +tٮSize + ) = 0; + +650 +vtu + +bo + +advGsFCutTe +() = 0; + +651 +vtu + + gP +< +ICfig + cڡ> +gCfig +() const = 0; + +654  + gIMubCڋxt + : +ICڋxt + + +656 +vtu + ~ +IMubCڋxt +(); + +657 +vtu +  +tResuCtu + +IResuCtu +* +suCtu + ) = 0; + +658 +vtu +  +tRu” + +IRu” +* +ru” + ) = 0; + +659 +vtu +  +tCfig + +P +< +ICfig + cڡ> cڡ& +cfig + ) = 0; + +662 + gICڋxt +& +gCutCڋxt +(); + +663 + gIMubCڋxt +& +gCutMubCڋxt +(); + +664  +nUpCڋxt +(); + +665 +Sm + +Sm + +d +:: +rg + cڡ& +amName + ); + +670  + #TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED + + + ) + +673  + #TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED + + + ) + +675  + ~ + +677 +mea + + gCch + { + +679 +ass + + gTeSc +; + +681  + gITeCa + : +IShed + { + +682 +vtu +  +voke + () const = 0; + +683 + geed +: + +684 +vtu + ~ +ITeCa +(); + +687 +ass + + gTeCa +; + +688  + gICfig +; + +690  + sITeCaRegiry + { + +691 + gvtu + ~ +ITeCaRegiry +(); + +692 +vtu + + gd +:: +ve +< +TeCa +> cڡ& +gATes +() const = 0; + +693 +vtu + + gd +:: +ve +< +TeCa +> cڡ& +gATesS܋d + +ICfig + cڡ& +cfig + ) const = 0; + +696 +bo + +mchTe + +TeCa + cڡ& +Ca +, +TeSc + cڡ& +Sc +, +ICfig + cڡ& +cfig + ); + +697 + gd +:: +ve +< +TeCa +> +frTes + +d +::ve cڡ& +Cas +, +TeSc + cڡ& +Sc +, +ICfig + cڡ& +cfig + ); + +698 + gd +:: +ve +< +TeCa +> cڡ& +gATeCasS܋d + +ICfig + cڡ& +cfig + ); + +702 +mea + + gCch + { + +704 + gme +< +tyme + + gC +> + +705 +ass + + gMhodTeCa + : +public + +ShedIm +< +ITeCa +> { + +707 +public +: + +708 +MhodTeCa +( +C +::* +mhod +)(: +m_mhod +( method ) {} + +710 +vtu +  +voke +() const { + +711 +C + +obj +; + +712 ( + gobj +.* + gm_mhod +)(); + +715 + give +: + +716 +vtu + ~ +MhodTeCa +() {} + +718 ( +C +::* +m_mhod +)(); + +721 (* + gTeFuni +)(); + +723  + sNameAndDesc + { + +724 +NameAndDesc +cڡ * +_me + = "", cڡ * +_desti += "" ) + +725 : +me + +_me + ), +desti + +_desti + ) + +728 cڡ * + gme +; + +729 cڡ * + gdesti +; + +732  + ggiTeCa + + +733 +ITeCa +* + gCa +, + +734 cڡ* + gassName +, + +735 +NameAndDesc + cڡ& + gmeAndDesc +, + +736 +SourLeInfo + cڡ& + gleInfo + ); + +738  + sAutoReg + { + +740 + gAutoReg + + +741 +TeFuni + + gfuni +, + +742 +SourLeInfo + cڡ& + gleInfo +, + +743 +NameAndDesc + cڡ& + gmeAndDesc + ); + +745 + gme +< +tyme + + gC +> + +746 + gAutoReg + + +747 ( + gC +::* +mhod +)(), + +748 cڡ* + gassName +, + +749 +NameAndDesc + cڡ& + gmeAndDesc +, + +750 +SourLeInfo + cڡ& + gleInfo + ) { + +752 + ggiTeCa + + +753 +w + + gMhodTeCa +< + gC +> + gmhod + ), + +754 + gassName +, + +755 + gmeAndDesc +, + +756 + gleInfo + ); + +759 ~ +AutoReg +(); + +761 + give +: + +762 +AutoReg +( AutoReg const& ); + +763  + gݔ + +AutoReg + const& ); + +766  + ggiTeCaFuni + + +767 +TeFuni + + gfuni +, + +768 +SourLeInfo + cڡ& + gleInfo +, + +769 +NameAndDesc + cڡ& + gmeAndDesc + ); + +773 #ifde +CATCH_CONFIG_VARIADIC_MACROS + + +775  + #INTERNAL_CATCH_TESTCASE2 + +TeName +, ... ) \ + +776  + `TeName +(); \ + +777 +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + \ + +778 +mea +{ +Cch +:: +AutoReg + + `INTERNAL_CATCH_UNIQUE_NAME + +autoRegir + )& +TeName +, +CATCH_INTERNAL_LINEINFO +, Cch:: + `NameAndDesc + +__VA_ARGS__ + ) ); } \ + +779 +CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + \ + +780  + `TeName +() + + ) + +781  + #INTERNAL_CATCH_TESTCASE +( ... ) \ + +782 + `INTERNAL_CATCH_TESTCASE2 + + `INTERNAL_CATCH_UNIQUE_NAME + +____C_A_T_C_H____T_E_S_T____ + ), +__VA_ARGS__ + ) + + ) + +785  + #INTERNAL_CATCH_METHOD_AS_TEST_CASE + +QuifdMhod +, ... ) \ + +786 +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + \ + +787 +mea +{ +Cch +:: +AutoReg + + `INTERNAL_CATCH_UNIQUE_NAME + +autoRegir + )& +QuifdMhod +, "&" #QuifdMhod, Cch:: + `NameAndDesc + +__VA_ARGS__ + ), +CATCH_INTERNAL_LINEINFO + ); } \ + +788 +CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + + + ) + +791  + #INTERNAL_CATCH_TEST_CASE_METHOD2 + +TeName +, +CssName +, ... )\ + +792 +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + \ + +793 +mea +{ \ + +794  +TeName + : +CssName +{ \ + +795  + ` +(); \ + +797 +Cch +:: +AutoReg + + `INTERNAL_CATCH_UNIQUE_NAME + +autoRegir + ) ( & +TeName +:: + +, #CssName, Cch:: + `NameAndDesc + +__VA_ARGS__ + ), +CATCH_INTERNAL_LINEINFO + ); \ + +799 +CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + \ + +800  +TeName +:: + ` +() + + ) + +801  + #INTERNAL_CATCH_TEST_CASE_METHOD + +CssName +, ... ) \ + +802 + `INTERNAL_CATCH_TEST_CASE_METHOD2 + + `INTERNAL_CATCH_UNIQUE_NAME + +____C_A_T_C_H____T_E_S_T____ + ), +CssName +, +__VA_ARGS__ + ) + + ) + +805  + #INTERNAL_CATCH_REGISTER_TESTCASE + +Funi +, ... ) \ + +806 +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + \ + +807 +Cch +:: + `AutoReg + +Funi +, +CATCH_INTERNAL_LINEINFO +, Cch:: + `NameAndDesc + +__VA_ARGS__ + ) ); \ + +808 +CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + + + ) + +812  + #INTERNAL_CATCH_TESTCASE2 + +TeName +, +Name +, +Desc + ) \ + +813  + `TeName +(); \ + +814 +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + \ + +815 +mea +{ +Cch +:: +AutoReg + + `INTERNAL_CATCH_UNIQUE_NAME + +autoRegir + )& +TeName +, +CATCH_INTERNAL_LINEINFO +, Cch:: + `NameAndDesc + +Name +, +Desc + ) ); } \ + +816 +CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + \ + +817  + `TeName +() + + ) + +818  + #INTERNAL_CATCH_TESTCASE + +Name +, +Desc + ) \ + +819 + `INTERNAL_CATCH_TESTCASE2 + + `INTERNAL_CATCH_UNIQUE_NAME + +____C_A_T_C_H____T_E_S_T____ + ), +Name +, +Desc + ) + + ) + +822  + #INTERNAL_CATCH_METHOD_AS_TEST_CASE + +QuifdMhod +, +Name +, +Desc + ) \ + +823 +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + \ + +824 +mea +{ +Cch +:: +AutoReg + + `INTERNAL_CATCH_UNIQUE_NAME + +autoRegir + )& +QuifdMhod +, "&" #QuifdMhod, Cch:: + `NameAndDesc + +Name +, +Desc + ), +CATCH_INTERNAL_LINEINFO + ); } \ + +825 +CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + + + ) + +828  + #INTERNAL_CATCH_TEST_CASE_METHOD2 + +TeCaName +, +CssName +, +TeName +, +Desc + )\ + +829 +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + \ + +830 +mea +{ \ + +831  +TeCaName + : +CssName +{ \ + +832  + ` +(); \ + +834 +Cch +:: +AutoReg + + `INTERNAL_CATCH_UNIQUE_NAME + +autoRegir + ) ( & +TeCaName +:: + +, #CssName, Cch:: + `NameAndDesc + +TeName +, +Desc + ), +CATCH_INTERNAL_LINEINFO + ); \ + +836 +CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + \ + +837  +TeCaName +:: + ` +() + + ) + +838  + #INTERNAL_CATCH_TEST_CASE_METHOD + +CssName +, +TeName +, +Desc + )\ + +839 + `INTERNAL_CATCH_TEST_CASE_METHOD2 + + `INTERNAL_CATCH_UNIQUE_NAME + +____C_A_T_C_H____T_E_S_T____ + ), +CssName +, +TeName +, +Desc + ) + + ) + +842  + #INTERNAL_CATCH_REGISTER_TESTCASE + +Funi +, +Name +, +Desc + ) \ + +843 +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + \ + +844 +Cch +:: + `AutoReg + +Funi +, +CATCH_INTERNAL_LINEINFO +, Cch:: + `NameAndDesc + +Name +, +Desc + ) ); \ + +845 +CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + + + ) + +850  + #TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED + + + ) + +853  + #TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED + + + ) + +856  + #TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED + + + ) + +858 +mea + + gCch + { + +861  + sResuWas + { + eOfTy + { + +862 + gUnknown + = -1, + +863 + gOk + = 0, + +864 + gInfo + = 1, + +865 + gWng + = 2, + +867 + gFauB + = 0x10, + +869 + gExessiFaed + = +FauB + | 1, + +870 + gExicFau + = +FauB + | 2, + +872 + gExi + = 0x100 | +FauB +, + +874 + gThwExi + = +Exi + | 1, + +875 + gDidThrowExi + = +Exi + | 2, + +877 + gFECdi + = 0x200 | +FauB + + +881 +le + +bo + +isOk + +ResuWas +:: +OfTy + +suTy + ) { + +882  ( +suTy + & +ResuWas +:: +FauB + ) == 0; + +884 +le + +bo + +isJuInfo + +ags + ) { + +885  + gags + = +ResuWas +:: +Info +; + +889  + sResuDiosi + { + eFgs + { + +890 + gNm + = 0x01, + +892 + gCtueOnFau + = 0x02, + +893 + gFTe + = 0x04, + +894 + gSussFa + = 0x08 + +897 +le + + gResuDiosi +:: +Fgs + +ݔ + | ( +ResuDiosi +::Fg +lhs +, ResuDiosi::Fg +rhs + ) { + +898  +ic_ +< +ResuDiosi +:: +Fgs +>Сic_<> +lhs + ) | stic_<> +rhs + ) ); + +901 +le + +bo + +shouldCtueOnFau + +ags + ) {  ( + gags + & + gResuDiosi +:: +CtueOnFau + ) != 0; } + +902 +le + +bo + +isFTe + +ags + ) {  ( + gags + & + gResuDiosi +:: +FTe + ) != 0; } + +903 +le + +bo + +shouldSussFau + +ags + ) {  ( + gags + & + gResuDiosi +:: +SussFa + ) != 0; } + +908  + #TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED + + + ) + +910  + ~ + +912 +mea + + gCch + { + +914  + gSTATIC_ASSERT_Exessi_Too_Comex_Pa_Rewre_As_By_Comris +; + +916  + sDecompodExessi + + +918 + gvtu + ~ +DecompodExessi +() {} + +919 +vtu + +bo + +isByExessi +() const { + +920  + gl +; + +922 +vtu +  +cڡruExessi + +d +:: +rg +& +de + ) const = 0; + +926 + gme +< +tyme + + gT +> + gSTATIC_ASSERT_Exessi_Too_Comex_Pa_Rewre_As_By_Comris +& + gݔ + + ( +T + const& ); + +927 + gme +< +tyme + + gT +> + gSTATIC_ASSERT_Exessi_Too_Comex_Pa_Rewre_As_By_Comris +& + gݔ + - ( +T + const& ); + +928 + gme +< +tyme + + gT +> + gSTATIC_ASSERT_Exessi_Too_Comex_Pa_Rewre_As_By_Comris +& + gݔ + * ( +T + const& ); + +929 + gme +< +tyme + + gT +> + gSTATIC_ASSERT_Exessi_Too_Comex_Pa_Rewre_As_By_Comris +& + gݔ + / ( +T + const& ); + +930 + gme +< +tyme + + gT +> + gSTATIC_ASSERT_Exessi_Too_Comex_Pa_Rewre_As_By_Comris +& + gݔ + % ( +T + const& ); + +931 + gme +< +tyme + + gT +> + gSTATIC_ASSERT_Exessi_Too_Comex_Pa_Rewre_As_By_Comris +& + gݔ + && ( +T + const& ); + +932 + gme +< +tyme + + gT +> + gSTATIC_ASSERT_Exessi_Too_Comex_Pa_Rewre_As_By_Comris +& + gݔ + || ( +T + const& ); + +934 + give +: + +935 +DecompodExessi +& +ݔ + = (DecomposedExpression const&); + +938  + sAsiInfo + + +940 +AsiInfo +(); + +941 +AsiInfo +cڡ * +_maoName +, + +942 +SourLeInfo + cڡ& +_leInfo +, + +943 cڡ * +_udExessi +, + +944 +ResuDiosi +:: +Fgs + +_suDiosi +, + +945 cڡ * +_cdArg + = ""); + +947 cڡ * + gmaoName +; + +948 +SourLeInfo + + gleInfo +; + +949 cڡ * + gudExessi +; + +950 + gResuDiosi +:: +Fgs + +suDiosi +; + +951 cڡ * + gcdArg +; + +954  + sAsiResuDa + + +956 +AsiResuDa +(: +decompodExessi + +CATCH_NULL + ) + +957 , +suTy + +ResuWas +:: +Unknown + ) + +958 , +ged + +l + ) + +959 , +hesized + +l + ) {} + +961  +ge + +bo + +hesize + ) { + +962 + gged + = ! +ged +; + +963 + ghesized + = +hesize +; + +964 if + gsuTy + = +ResuWas +:: +Ok + ) + +965 +suTy + = +ResuWas +:: +ExessiFaed +; + +966 if + gsuTy + = +ResuWas +:: +ExessiFaed + ) + +967 +suTy + = +ResuWas +:: +Ok +; + +970 + gd +:: +rg + cڡ& +cڡruExessi +() const { + +971 if +decompodExessi + ! +CATCH_NULL + ) { + +972 +decompodExessi +-> +cڡruExessi + +cڡruedExessi + ); + +973 if + ghesized + ) { + +974 + gcڡruedExessi +. + +( 0, 1, '(' ); + +975 + gcڡruedExessi +. +nd +( 1, ')' ); + +977 if + gged + ) { + +978 + gcڡruedExessi +. + +( 0, 1, '!' ); + +980 + gdecompodExessi + = +CATCH_NULL +; + +982  + gcڡruedExessi +; + +985 +mub + +DecompodExessi + cڡ* + gdecompodExessi +; + +986 +mub + + gd +:: +rg + +cڡruedExessi +; + +987 + gd +:: +rg + +mesge +; + +988 + gResuWas +:: +OfTy + +suTy +; + +989 +bo + + gged +; + +990 +bo + + ghesized +; + +993 as + cAsiResu + { + +994 + gpublic +: + +995 +AsiResu +(); + +996 +AsiResu + +AsiInfo + cڡ& +fo +, +AsiResuDa + cڡ& +da + ); + +997 ~ +AsiResu +(); + +998 #ifde +CATCH_CONFIG_CPP11_GENERATED_METHODS + + +999 +AsiResu +( AssertionResult const& ) = ; + +1000 +AsiResu +( AssertionResult && ) = ; + +1001 + gAsiResu +& + gݔ + = ( +AsiResu + const& ) = ; + +1002 + gAsiResu +& + gݔ + = ( +AsiResu + && ) = ; + +1005 +bo + +isOk +() const; + +1006 +bo + +suceded +() const; + +1007 + gResuWas +:: +OfTy + +gResuTy +() const; + +1008 +bo + +hasExessi +() const; + +1009 +bo + +hasMesge +() const; + +1010 + gd +:: +rg + +gExessi +() const; + +1011 + gd +:: +rg + +gExessiInMao +() const; + +1012 +bo + +hasExndedExessi +() const; + +1013 + gd +:: +rg + +gExndedExessi +() const; + +1014 + gd +:: +rg + +gMesge +() const; + +1015 +SourLeInfo + +gSourInfo +() const; + +1016 + gd +:: +rg + +gTeMaoName +() const; + +1017  +disrdDecompodExessi +() const; + +1018  +exndDecompodExessi +() const; + +1020 + geed +: + +1021 +AsiInfo + +m_fo +; + +1022 +AsiResuDa + + gm_suDa +; + +1028  + #TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED + + + ) + +1030 +mea + + gCch + { + +1031 +mea + + gMchs + { + +1032 +mea + + gIm + { + +1034 + gme +< +tyme + + gArgT +>  + gMchAOf +; + +1035 + gme +< +tyme + + gArgT +>  + gMchAnyOf +; + +1036 + gme +< +tyme + + gArgT +>  + gMchNOf +; + +1038 as + cMchUydBa + { + +1039 + gpublic +: + +1040 +d +:: +rg + +toSg +() const { + +1041 if +m_chedToSg +. +emy +() ) + +1042 +m_chedToSg + = +desibe +(); + +1043  + gm_chedToSg +; + +1046 + geed +: + +1047 +vtu + ~ +MchUydBa +(); + +1048 +vtu + + gd +:: +rg + +desibe +() const = 0; + +1049 +mub + + gd +:: +rg + +m_chedToSg +; + +1050 + give +: + +1051 +MchUydBa +& +ݔ + = ( MatcherUntypedBase const& ); + +1054 + gme +< +tyme + + gObjeT +> + +1055  + sMchMhod + { + +1056 +vtu + +bo + +mch + +ObjeT + cڡ& +g + ) const = 0; + +1058 + gme +< +tyme + + gPT +> + +1059  + gMchMhod +< + gPT +*> { + +1060 +vtu + +bo + +mch + +PT +* +g + ) const = 0; + +1063 + gme +< +tyme + + gObjeT +,ym + gComtT + = +ObjeT +> + +1064  +MchBa + : +MchUydBa +, + gMchMhod +< + gObjeT +> { + +1066 + gMchAOf +< + gComtT +> + gݔ + && ( +MchBa + cڡ& + gh + ) const; + +1067 + gMchAnyOf +< + gComtT +> + gݔ + || ( +MchBa + cڡ& + gh + ) const; + +1068 + gMchNOf +< + gComtT +> + gݔ + ! () const; + +1071 + gme +< +tyme + + gArgT +> + +1072  + gMchAOf + : +MchBa +< +ArgT +> { + +1073 +vtu + +bo + +mch + +ArgT + cڡ& +g + ) cڡ +CATCH_OVERRIDE + { + +1074  +d +:: +size_t + +i + = 0; + gi + < + gm_mchs +. +size +(); ++i ) { + +1075 i(! + gm_mchs +[ +i +]-> +mch +( +g +)) + +1076  + gl +; + +1078  + gue +; + +1080 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +1081 +d +:: +rg + +desti +; + +1082 + gdesti +. +rve +4 + +m_mchs +. +size +()*32 ); + +1083 + gdesti + += "( "; + +1084  + gd +:: +size_t + +i + = 0; + gi + < + gm_mchs +. +size +(); ++i ) { + +1085 if + gi + != 0 ) + +1086 +desti + += "nd "; + +1087 + gdesti + + +m_mchs +[ +i +]-> +toSg +(); + +1089 + gdesti + += " )"; + +1090  + gdesti +; + +1093 + gMchAOf +< + gArgT +>& + gݔ + && ( + gMchBa + cڡ& + gh + ) { + +1094 + gm_mchs +. +push_back +& +h + ); + +1095  * + gthis +; + +1098 + gd +:: +ve +< +MchBa +< +ArgT +> cڡ*> +m_mchs +; + +1100 + gme +< +tyme + + gArgT +> + +1101  + gMchAnyOf + : +MchBa +< +ArgT +> { + +1103 +vtu + +bo + +mch + +ArgT + cڡ& +g + ) cڡ +CATCH_OVERRIDE + { + +1104  +d +:: +size_t + +i + = 0; + gi + < + gm_mchs +. +size +(); ++i ) { + +1105 i( + gm_mchs +[ +i +]-> +mch +( +g +)) + +1106  + gue +; + +1108  + gl +; + +1110 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +1111 +d +:: +rg + +desti +; + +1112 + gdesti +. +rve +4 + +m_mchs +. +size +()*32 ); + +1113 + gdesti + += "( "; + +1114  + gd +:: +size_t + +i + = 0; + gi + < + gm_mchs +. +size +(); ++i ) { + +1115 if + gi + != 0 ) + +1116 +desti + += " or "; + +1117 + gdesti + + +m_mchs +[ +i +]-> +toSg +(); + +1119 + gdesti + += " )"; + +1120  + gdesti +; + +1123 + gMchAnyOf +< + gArgT +>& + gݔ + || ( + gMchBa + cڡ& + gh + ) { + +1124 + gm_mchs +. +push_back +& +h + ); + +1125  * + gthis +; + +1128 + gd +:: +ve +< +MchBa +< +ArgT +> cڡ*> +m_mchs +; + +1131 + gme +< +tyme + + gArgT +> + +1132  + gMchNOf + : +MchBa +< +ArgT +> { + +1134 +MchNOf + +MchBa +< +ArgT +> cڡ& +undlygMch + ) : +m_undlygMch +( underlyingMatcher ) {} + +1136 +vtu + +bo + +mch + +ArgT + cڡ& +g + ) cڡ +CATCH_OVERRIDE + { + +1137  ! +m_undlygMch +. +mch + +g + ); + +1140 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +1141  "n " + +m_undlygMch +. +toSg +(); + +1143 + gMchBa +< + gArgT +> cڡ& + gm_undlygMch +; + +1146 + gme +< +tyme + + gObjeT +,ym + gComtT +> + +1147 + gMchAOf +< + gComtT +> + gMchBa +< + gObjeT +, ComtT>:: +ݔ + && ( +MchBa + cڡ& +h + ) const { + +1148  +MchAOf +< +ComtT +>(&& * +this + && +h +; + +1150 + gme +< +tyme + + gObjeT +,ym + gComtT +> + +1151 + gMchAnyOf +< + gComtT +> + gMchBa +< + gObjeT +, ComtT>:: +ݔ + || ( +MchBa + cڡ& +h + ) const { + +1152  +MchAnyOf +< +ComtT +>(|| * +this + || +h +; + +1154 + gme +< +tyme + + gObjeT +,ym + gComtT +> + +1155 + gMchNOf +< + gComtT +> + gMchBa +< + gObjeT +, ComtT>:: +ݔ + ! () const { + +1156  +MchNOf +< +ComtT +>* +this + ); + +1164 + gme +< +tyme + + gT +> + +1165 + gIm +:: +MchNOf +< +T +> +N + +Im +:: +MchBa + cڡ& +undlygMch + ) { + +1166  +Im +:: +MchNOf +< +T +> +undlygMch + ); + +1168 + gme +< +tyme + + gT +> + +1169 + gIm +:: +MchAOf +< +T +> +AOf + +Im +:: +MchBa + cڡ& +m1 +, Im::MchBa cڡ& +m2 + ) { + +1170  +Im +:: +MchAOf +< +T +>(&& +m1 + && +m2 +; + +1172 + gme +< +tyme + + gT +> + +1173 + gIm +:: +MchAOf +< +T +> +AOf + +Im +:: +MchBa + cڡ& +m1 +, Im::MchBa cڡ& +m2 +, Im::MchBa cڡ& +m3 + ) { + +1174  +Im +:: +MchAOf +< +T +>(&& +m1 + && +m2 + && +m3 +; + +1176 + gme +< +tyme + + gT +> + +1177 + gIm +:: +MchAnyOf +< +T +> +AnyOf + +Im +:: +MchBa + cڡ& +m1 +, Im::MchBa cڡ& +m2 + ) { + +1178  +Im +:: +MchAnyOf +< +T +>(|| +m1 + || +m2 +; + +1180 + gme +< +tyme + + gT +> + +1181 + gIm +:: +MchAnyOf +< +T +> +AnyOf + +Im +:: +MchBa + cڡ& +m1 +, Im::MchBa cڡ& +m2 +, Im::MchBa cڡ& +m3 + ) { + +1182  +Im +:: +MchAnyOf +< +T +>(|| +m1 + || +m2 + || +m3 +; + +1187 +usg + +mea + + gMchs +; + +1188 +usg + + gMchs +:: +Im +:: +MchBa +; + +1192 +mea + + gCch + { + +1194  + sTeFauExi +{}; + +1196 + gme +< +tyme + + gT +> +ass + + gExessiLhs +; + +1198  + sCyabSm + { + +1199 +CyabSm +() {} + +1200 +CyabSm +CyabSm cڡ& +h + ) { + +1201 + goss + << + gh +.oss. +r +(); + +1203 + gCyabSm +& + gݔ += +CyabSm + cڡ& +h + ) { + +1204 +oss +. +r +( +d +:: +rg +()); + +1205 + goss + << + gh +.oss. +r +(); + +1206  * + gthis +; + +1208 + gd +:: +orgam + +oss +; + +1211 as + cResuBud + : +public + +DecompodExessi + { + +1212 +public +: + +1213 +ResuBud +cڡ* +maoName +, + +1214 +SourLeInfo + cڡ& +leInfo +, + +1215 cڡ* +udExessi +, + +1216 +ResuDiosi +:: +Fgs + +suDiosi +, + +1217 cڡ* +cdArg + = "" ); + +1218 ~ +ResuBud +(); + +1220 + gme +< +tyme + + gT +> + +1221 + gExessiLhs +< +T + cڡ&> + gݔ + + gݔ + < +bo + +vue + ); + +1224 + gme +< +tyme + + gT +> + +1225 + gResuBud +& + gݔ + << ( +T + cڡ& + gvue + ) { + +1226 +am +(). + goss + << + gvue +; + +1227  * + gthis +; + +1230 + gResuBud +& +tResuTy + +ResuWas +:: +OfTy + +su + ); + +1231 + gResuBud +& +tResuTy + +bo + +su + ); + +1233  +dExessi + +DecompodExessi + cڡ& +ex + ); + +1235 +vtu +  +cڡruExessi + +d +:: +rg +& +de + ) cڡ +CATCH_OVERRIDE +; + +1237 +AsiResu + +bud +() const; + +1238 +AsiResu + +bud + +DecompodExessi + cڡ& +ex + ) const; + +1240  +uAiveExi + +ResuDiosi +:: +Fgs + +suDiosi + = ResuDiosi:: +Nm + ); + +1241  +uResu + +ResuWas +:: +OfTy + +suTy + ); + +1242  +uExessi +(); + +1243  +uExedExi + +d +:: +rg + cڡ& +exedMesge + ); + +1244  +uExedExi + +Mchs +:: +Im +:: +MchBa +< +d +:: +rg +> cڡ& +mch + ); + +1245  +hdResu + +AsiResu + cڡ& +su + ); + +1246  +a +(); + +1247 +bo + +shouldDebugBak +() const; + +1248 +bo + +lowThrows +() const; + +1250 + gme +< +tyme + + gArgT +,ym + gMchT +> + +1251  +uMch + +ArgT + cڡ& +g +, +MchT + cڡ& +mch +, cڡ* +mchSg + ); + +1253  +tExiGud +(); + +1254  +untExiGud +(); + +1256 + give +: + +1257 +AsiInfo + +m_asiInfo +; + +1258 +AsiResuDa + + gm_da +; + +1260 + gCyabSm + & +am +() + +1262 if(! + gm_udSm +) + +1264 + gm_udSm + = +ue +; + +1265 +m_am +(). + goss +. +r +(""); + +1267  +m_am +(); + +1270  + gCyabSm + & +m_am +() + +1272  +CyabSm + + gs +; + +1273  + gs +; + +1276 +bo + + gm_shouldDebugBak +; + +1277 +bo + + gm_shouldThrow +; + +1278 +bo + + gm_gudExi +; + +1279 +bo + + gm_udSm +; + +1286  + #TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED + + + ) + +1289  + #TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED + + + ) + +1291 #ifde +_MSC_VER + + +1292 #agm +wng +( +push +) + +1293 #agm +wng +( +dib +:4389) + +1294 #agm +wng +( +dib +:4312) + +1297  + ~ + +1299 +mea + + gCch + { + +1300 +mea + + gIl + { + +1302 + eOt + { + +1303 + gIsEquTo +, + +1304 + gIsNEquTo +, + +1305 + gIsLessTh +, + +1306 + gIsGTh +, + +1307 + gIsLessThOrEquTo +, + +1308 + gIsGThOrEquTo + + +1311 + gme +< +Ot + + gOp +>  + sOtTs + { cڡ * +gName +(){  "*error*"; } }; + +1312 + gme +<>  + gOtTs +< + gIsEquTo +> { cڡ * +gName +(){  "=="; } }; + +1313 + gme +<>  + gOtTs +< + gIsNEquTo +> { cڡ * +gName +(){  "!="; } }; + +1314 + gme +<>  + gOtTs +< + gIsLessTh +> { cڡ * +gName +(){  "<"; } }; + +1315 + gme +<>  + gOtTs +< + gIsGTh +> { cڡ * +gName +(){  ">"; } }; + +1316 + gme +<>  + gOtTs +< + gIsLessThOrEquTo +> { cڡ * +gName +(){  "<="; } }; + +1317 + gme +<>  + gOtTs +< + gIsGThOrEquTo +>{ cڡ * +gName +(){  ">="; } }; + +1319 + gme +< +tyme + + gT +> + +1320 + gT +& +Ca +( +T + cڡ& +t +{  + gcڡ_ +( + gt +); } + +1323 #ifde +CATCH_CONFIG_CPP11_NULLPTR + + +1324 +le + + gd +:: +nuαr_t + +Ca +( +d +::nuαr_t{  +nuαr +; } + +1329 + gme +< +tyme + + gT1 +,ym + gT2 +, +Ot + + gOp +> + +1330  + sEvu +{}; + +1332 + gme +< +tyme + + gT1 +,ym + gT2 +> + +1333  + gEvu +< + gT1 +, + gT2 +, + gIsEquTo +> { + +1334  +bo + +evue + +T1 + cڡ& +lhs +, +T2 + cڡ& +rhs +) { + +1335  +bo + +Ca + +lhs + ) =Ca +rhs + ) ); + +1338 + gme +< +tyme + + gT1 +,ym + gT2 +> + +1339  + gEvu +< + gT1 +, + gT2 +, + gIsNEquTo +> { + +1340  +bo + +evue + +T1 + cڡ& +lhs +, +T2 + cڡ& +rhs + ) { + +1341  +bo + +Ca + +lhs + ) !Ca +rhs + ) ); + +1344 + gme +< +tyme + + gT1 +,ym + gT2 +> + +1345  + gEvu +< + gT1 +, + gT2 +, + gIsLessTh +> { + +1346  +bo + +evue + +T1 + cڡ& +lhs +, +T2 + cڡ& +rhs + ) { + +1347  +bo + +Ca + +lhs + ) < opCa +rhs + ) ); + +1350 + gme +< +tyme + + gT1 +,ym + gT2 +> + +1351  + gEvu +< + gT1 +, + gT2 +, + gIsGTh +> { + +1352  +bo + +evue + +T1 + cڡ& +lhs +, +T2 + cڡ& +rhs + ) { + +1353  +bo + +Ca + +lhs + ) > opCa +rhs + ) ); + +1356 + gme +< +tyme + + gT1 +,ym + gT2 +> + +1357  + gEvu +< + gT1 +, + gT2 +, + gIsGThOrEquTo +> { + +1358  +bo + +evue + +T1 + cڡ& +lhs +, +T2 + cڡ& +rhs + ) { + +1359  +bo + +Ca + +lhs + ) >Ca +rhs + ) ); + +1362 + gme +< +tyme + + gT1 +,ym + gT2 +> + +1363  + gEvu +< + gT1 +, + gT2 +, + gIsLessThOrEquTo +> { + +1364  +bo + +evue + +T1 + cڡ& +lhs +, +T2 + cڡ& +rhs + ) { + +1365  +bo + +Ca + +lhs + ) + +1370 +bo + +yEvu + +T1 + cڡ& +lhs +, +T2 + cڡ& +rhs + ) { + +1371  + gEvu +< + gT1 +, + gT2 +, + gOp +>:: +evue + +lhs +, +rhs + ); + +1378 + gme +< +Ot + + gOp +, +tyme + + gT1 +,ym + gT2 +> + +1379 +bo + +com + +T1 + cڡ& +lhs +, +T2 + cڡ& +rhs + ) { + +1380  + gEvu +< + gT1 +, + gT2 +, + gOp +>:: +evue + +lhs +, +rhs + ); + +1384 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1385  + gyEvu +< + gOp +> + glhs +, + gic_ +<> + grhs + ) ); + +1387 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1388  + gyEvu +< + gOp +> + glhs +, + gic_ +<> + grhs + ) ); + +1390 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1391  + gyEvu +< + gOp +> + glhs +, + gic_ +<> + grhs + ) ); + +1395 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1396  + gyEvu +< + gOp +> + glhs +, + gic_ +<> + grhs + ) ); + +1398 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1399  + gyEvu +< + gOp +> + glhs +, + gic_ +<> + grhs + ) ); + +1401 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1402  + gyEvu +< + gOp +> + glhs +, + gic_ +<> + grhs + ) ); + +1406 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1407  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1409 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1410  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1412 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1413  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1417 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1418  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1420 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1421  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1423 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1424  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1428 + gme +< +Ot + + gOp +, +tyme + + gT +> +bo + +com + +lhs +, +T +* +rhs + ) { + +1429  + gEvu +< + gT +*, T*, + gOp +>:: +evue + +t_ +< +T +*> +lhs + ), +rhs + ); + +1431 + gme +< +Ot + + gOp +, +tyme + + gT +> +bo + +com + +T +* +lhs +,  +rhs + ) { + +1432  + gEvu +< + gT +*, T*, + gOp +>:: +evue + +lhs +, +t_ +< +T +*> +rhs + ) ); + +1436 + gme +< +Ot + + gOp +, +tyme + + gT +> +bo + +com + +lhs +, +T +* +rhs + ) { + +1437  + gEvu +< + gT +*, T*, + gOp +>:: +evue + +t_ +< +T +*> +lhs + ), +rhs + ); + +1439 + gme +< +Ot + + gOp +, +tyme + + gT +> +bo + +com + +T +* +lhs +,  +rhs + ) { + +1440  + gEvu +< + gT +*, T*, + gOp +>:: +evue + +lhs +, +t_ +< +T +*> +rhs + ) ); + +1443 #ifde +CATCH_CONFIG_CPP11_LONG_LONG + + +1445 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1446  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1448 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1449  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1451 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1452  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1454 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1455  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1459 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1460  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1462 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1463  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1465 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1466  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1468 + gme +< +Ot + + gOp +> +bo + +com + +lhs +,  +rhs + ) { + +1469  + gyEvu +< + gOp +> + gic_ +<> + glhs + ), + grhs + ); + +1473 + gme +< +Ot + + gOp +, +tyme + + gT +> +bo + +com + +lhs +, +T +* +rhs + ) { + +1474  + gEvu +< + gT +*, T*, + gOp +>:: +evue + +t_ +< +T +*> +lhs + ), +rhs + ); + +1476 + gme +< +Ot + + gOp +, +tyme + + gT +> +bo + +com + +T +* +lhs +,  +rhs + ) { + +1477  + gEvu +< + gT +*, T*, + gOp +>:: +evue + +lhs +, +t_ +< +T +*> +rhs + ) ); + +1481 #ifde +CATCH_CONFIG_CPP11_NULLPTR + + +1483 + gme +< +Ot + + gOp +, +tyme + + gT +> +bo + +com + +d +:: +nuαr_t +, +T +* +rhs + ) { + +1484  + gEvu +< + gT +*, T*, + gOp +>:: +evue + +nuαr +, +rhs + ); + +1486 + gme +< +Ot + + gOp +, +tyme + + gT +> +bo + +com + +T +* +lhs +, +d +:: +nuαr_t + ) { + +1487  +Evu +< +T +*, + gT +*, + gOp +>:: +evue + +lhs +, +nuαr + ); + +1494 #ifde +_MSC_VER + + +1495 #agm +wng +( +p +) + +1499  + #TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED + + + ) + +1501  + ~ + +1502  + ~ + +1503  + ~ + +1504  + ~ + +1505  + ~ + +1507 #ifde +__OBJC__ + + +1509  + #TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED + + + ) + +1511 #imp܈< +Foundi +/Foundi. +h +> + +1513 #ifde +__has_u + + +1514  + #CATCH_ARC_ENABLED + + `__has_u +( +objc_c +) + + ) + +1516  + #CATCH_ARC_ENABLED + 0 + + ) + +1519  +cSaR + +NSObje +* +obj + ); + +1520 +id + +rfmOiڮSe +id +obj +, +SEL + +l + ); + +1522 #i! +CATCH_ARC_ENABLED + + +1523 +le +  + $cSaR + +NSObje +* +obj + ) { + +1524 [ +obj + +a +]; + +1525 + } +} + +1526 +le + +id + + $rfmOiڮSe + +id + +obj +, +SEL + +l + ) { + +1527 if[ +obj + +dsToSe +: +l +] ) + +1528  [ +obj + +rfmSe +: +l +]; + +1529  +n +; + +1530 + } +} + +1531  + #CATCH_UNSAFE_UNRETAINED + + + ) + +1532  + #CATCH_ARC_STRONG + + + ) + +1534 +le +  + $cSaR + +NSObje +* ){ + } +} + +1535 +le + +id + + $rfmOiڮSe + +id + +obj +, +SEL + +l + ) { + +1536 #ifde +__g__ + + +1537 #agm +g + +dgnoic + +push + + +1538 #agm +g + +dgnoic + +igned + "-Warc-performSelector-leaks" + +1540 if[ +obj + +dsToSe +: +l +] ) + +1541  [ +obj + +rfmSe +: +l +]; + +1542 #ifde +__g__ + + +1543 #agm +g + +dgnoic + +p + + +1545  +n +; + +1546 + } +} + +1547  + #CATCH_UNSAFE_UNRETAINED + +__un_uđaed + + + ) + +1548  + #CATCH_ARC_STRONG + +__rg + + + ) + +1553 #ifde +CATCH_CONFIG_CPP11_TUPLE + + +1554  + ~ + +1557 #ifde +CATCH_CONFIG_CPP11_IS_ENUM + + +1558  + ~ + +1561 +mea + + gCch + { + +1564 + gme +< +tyme + + gT +> + +1565 + gd +:: +rg + +toSg + +T + cڡ& +vue + ); + +1569 + gd +:: +rg + +toSg + +d +::rg cڡ& +vue + ); + +1570 + gd +:: +rg + +toSg + +d +:: +wrg + cڡ& +vue + ); + +1571 + gd +:: +rg + +toSg +cڡ * cڡ +vue + ); + +1572 + gd +:: +rg + +toSg +* cڡ +vue + ); + +1573 + gd +:: +rg + +toSg +cڡ +wch_t +* cڡ +vue + ); + +1574 + gd +:: +rg + +toSg + +wch_t +* cڡ +vue + ); + +1575 + gd +:: +rg + +toSg + +vue + ); + +1576 + gd +:: +rg + +toSg + +vue + ); + +1577 + gd +:: +rg + +toSg + +vue + ); + +1578 + gd +:: +rg + +toSg +cڡ  +vue + ); + +1579 + gd +:: +rg + +toSg +cڡ  +vue + ); + +1580 + gd +:: +rg + +toSg + +bo + +vue + ); + +1581 + gd +:: +rg + +toSg + +vue + ); + +1582 + gd +:: +rg + +toSg +sigd  +vue + ); + +1583 + gd +:: +rg + +toSg + +vue + ); + +1585 #ifde +CATCH_CONFIG_CPP11_LONG_LONG + + +1586 + gd +:: +rg + +toSg + +vue + ); + +1587 + gd +:: +rg + +toSg + +vue + ); + +1590 #ifde +CATCH_CONFIG_CPP11_NULLPTR + + +1591 + gd +:: +rg + +toSg + +d +:: +nuαr_t + ); + +1594 #ifde +__OBJC__ + + +1595 + gd +:: +rg + +toSg + +NSSg + cڡ * cڡ& +nsrg + ); + +1596 + gd +:: +rg + +toSg + +NSSg + * +CATCH_ARC_STRONG + & +nsrg + ); + +1597 + gd +:: +rg + +toSg + +NSObje +* cڡ& +nsObje + ); + +1600 +mea + + gDa + { + +1602 cڡ +d +:: +rg + +urbSg +; + +1604 #i! +defed +( +CATCH_CONFIG_CPP11_STREAM_INSERTABLE_CHECK +) + +1605  + sBgTy + { + +1606 + gme +< +tyme + + gT +> +BgTy + +T + const& ); + +1609  + sTrueTy + {  + gsiz +[1]; }; + +1610  + sFTy + {  + gsiz +[2]; }; + +1612 + gTrueTy +& +Smab + +d +:: +oam +& ); + +1613 +FTy + +Smab +( FalseType ); + +1615 +FTy + + gݔ +<< + gd +:: +oam + cڡ&, +BgTy + const& ); + +1617 + gme +< +tyme + + gT +> + +1618  + sIsSmInab + { + +1619  + gd +:: +oam + & +s +; + +1620  +T + cڡ& + gt +; + +1621 um { + gvue + =  +Smab +( +s + << +t += +TrueTy + ) }; + +1624 + gme +< +tyme + + gT +> + +1625 as + cIsSmInab + { + +1626 + gme +< +tyme + + gSS +,ym + gTT +> + +1627 aut + +() + +1628 -> +dety + +d +:: +dev +< +SS +&>(<< std::dev< +TT +>(), std:: +ue_ty +() ); + +1630 + gme +< + gtyme +,ypename> + +1631 aut + +(...-> + gd +:: +l_ty +; + +1633 + gpublic +: + +1634 cڡ +bo + +vue + = +dety +( + +< +d +:: +oam +,cڡ +T +&>(0))::value; + +1638 #i +defed +( +CATCH_CONFIG_CPP11_IS_ENUM +) + +1639 + gme +< +tyme + + gT +, + +1640 +bo + + gIsEnum + = +d +:: +is_um +< +T +>:: +vue + + +1642  + sEnumSgMak + + +1644  +d +:: +rg + +cvt + +T + cڡ& ) {  +urbSg +; } + +1647 + gme +< +tyme + + gT +> + +1648  + gEnumSgMak +< + gT +, + gue +> + +1650  + gd +:: +rg + +cvt + +T + cڡ& +v + ) + +1652  :: +Cch +:: +toSg +( + +1653 +ic_ +< +tyme + +d +:: +undlyg_ty +< +T +>:: +ty +>( +v +) + +1658 + gme +< +bo + + gC +> + +1659  + sSgMakBa + { + +1660 #i +defed +( +CATCH_CONFIG_CPP11_IS_ENUM +) + +1661 + gme +< +tyme + + gT +> + +1662  + gd +:: +rg + +cvt + +T + cڡ& +v + ) + +1664  +EnumSgMak +< +T +>:: +cvt + +v + ); + +1667 + gme +< +tyme + + gT +> + +1668  + gd +:: +rg + +cvt + +T + cڡ& ) {  +urbSg +; } + +1672 + gme +<> + +1673  + gSgMakBa +< + gue +> { + +1674 + gme +< +tyme + + gT +> + +1675  + gd +:: +rg + +cvt + +T + cڡ& +_vue + ) { + +1676 +d +:: +orgam + +oss +; + +1677 + goss + << + g_vue +; + +1678  + goss +. +r +(); + +1682 + gd +:: +rg + +wMemyToSg +cڡ * +obje +, +d +:: +size_t + +size + ); + +1684 + gme +< +tyme + + gT +> + +1685 + gd +:: +rg + +wMemyToSg +cڡ +T +& +obje + ) { + +1686  +wMemyToSg +& +obje +, (object) ); + +1691 + gme +< +tyme + + gT +> + +1692  + gSgMak + : + +1693 +Da +:: +SgMakBa +:: +vue +> {}; + +1695 + gme +< +tyme + + gT +> + +1696  + gSgMak +< + gT +*> { + +1697 + gme +< +tyme + + gU +> + +1698  + gd +:: +rg + +cvt + +U +* +p + ) { + +1699 if! +p + ) + +1702  + gDa +:: +wMemyToSg + +p + ); + +1706 + gme +< +tyme + + gR +,ym + gC +> + +1707  + gSgMak +< +R + + gC +::*> { + +1708  +d +:: +rg + +cvt + +R + +C +::* +p + ) { + +1709 if! +p + ) + +1712  + gDa +:: +wMemyToSg + +p + ); + +1716 +mea + + gDa + { + +1717 + gme +< +tyme + + gIutIt +> + +1718 + gd +:: +rg + +ngeToSg + +IutIt + +f +, IutIt +ϡ + ); + +1728 + gme +< +tyme + + gT +,ym + gAot +> + +1729 + gd +:: +rg + +toSg + +d +:: +ve +< +T +, +Aot +> cڡ& +v + ) { + +1730  + gDa +:: +ngeToSg + +v +. +beg +(), v. +d +() ); + +1733 #ifde +CATCH_CONFIG_CPP11_TUPLE + + +1736 +mea + + gTueDa + { + +1737 + gme +< + +1738 +tyme + + gTue +, + +1739 + gd +:: +size_t + +N + = 0, + +1740 + gbo + = ( +N + < +d +:: +tue_size +< +Tue +>:: +vue +) + +1742  + sEmtPrr + { + +1743  +t +cڡ +Tue +& +tue +, +d +:: +oam +& +os + ) + +1745 +os + << ( +N + ? ", " : " " ) + +1746 << +Cch +:: +toSg +( +d +:: +g +< +N +>( +tue +)); + +1747 + gEmtPrr +< + gTue +, + gN ++1>:: +t +( +tue +, +os +); + +1751 + gme +< + +1752 +tyme + + gTue +, + +1753 + gd +:: +size_t + +N + + +1755  +EmtPrr +< +Tue +, + gN +, + gl +> { + +1756  +t +cڡ +Tue +&, +d +:: +oam +& ) {} + +1761 + gme +< + gtyme + ... + gTys +> + +1762  + gSgMak +< + gd +:: +tue +< +Tys +...>> { + +1764  +d +:: +rg + +cvt +cڡ std:: +tue +< +Tys +...>&uple ) + +1766 +d +:: +orgam + +os +; + +1767 + gos + << '{'; + +1768 + gTueDa +:: +EmtPrr +< +d +:: +tue +< +Tys +...>>:: +t +tue, +os + ); + +1769 + gos + << " }"; + +1770  + gos +. +r +(); + +1775 +mea + + gDa + { + +1776 + gme +< +tyme + + gT +> + +1777 + gd +:: +rg + +makeSg + +T + cڡ& +vue + ) { + +1778  +SgMak +< +T +>:: +cvt + +vue + ); + +1789 + gme +< +tyme + + gT +> + +1790 + gd +:: +rg + + $toSg + +T + cڡ& +vue + ) { + +1791  +SgMak +< +T +>:: + `cvt + +vue + ); + +1792 + } +} + +1794 +mea + + gDa + { + +1795 + gme +< +tyme + + gIutIt +> + +1796 + gd +:: +rg + +ngeToSg + +IutIt + +f +, IutIt +ϡ + ) { + +1797 + gd +:: +orgam + +oss +; + +1798 + goss + << "{ "; + +1799 if + gf + ! +ϡ + ) { + +1800 +oss + << +Cch +:: +toSg +* +f + ); + +1801  ++ + gf + ; f ! +ϡ + ; ++first ) + +1802 + goss + << ", " << + gCch +:: +toSg +* +f + ); + +1804 + goss + << " }"; + +1805  + goss +. +r +(); + +1811 +mea + + gCch + { + +1813 + gme +< +tyme + + gLhsT +, + gIl +:: +Ot + +Op +,ym + gRhsT +> + +1814 +ass + + gByExessi +; + +1816 + gme +< +tyme + + gArgT +,ym + gMchT +> + +1817 +ass + + gMchExessi +; + +1821 + gme +< +tyme + + gT +> + +1822 as + cExessiLhs + : +public + +DecompodExessi + { + +1823 +public +: + +1824 +ExessiLhs + +ResuBud +& +rb +, +T + +lhs + ) : +m_rb +rb ), +m_lhs +lh), +m_uthy +( +l +) {} + +1826 + gExessiLhs +& + gݔ + = ( cڡ +ExessiLhs +& ); + +1828 + gme +< +tyme + + gRhsT +> + +1829 + gByExessi +< + gT +, + gIl +:: +IsEquTo +, +RhsT + const&> + +1830 + gݔ + = +RhsT + cڡ& +rhs + ) { + +1831  +uExessi +< +Il +:: +IsEquTo +> +rhs + ); + +1834 + gme +< +tyme + + gRhsT +> + +1835 + gByExessi +< + gT +, + gIl +:: +IsNEquTo +, +RhsT + const&> + +1836 + gݔ + ! +RhsT + cڡ& +rhs + ) { + +1837  +uExessi +< +Il +:: +IsNEquTo +> +rhs + ); + +1840 + gme +< +tyme + + gRhsT +> + +1841 + gByExessi +< + gT +, + gIl +:: +IsLessTh +, +RhsT + const&> + +1842 + gݔ + < ( +RhsT + cڡ& + grhs + ) { + +1843  + guExessi +< + gIl +:: +IsLessTh +> +rhs + ); + +1846 + gme +< +tyme + + gRhsT +> + +1847 + gByExessi +< + gT +, + gIl +:: +IsGTh +, +RhsT + const&> + +1848 + gݔ + > ( +RhsT + cڡ& + grhs + ) { + +1849  + guExessi +< + gIl +:: +IsGTh +> +rhs + ); + +1852 + gme +< +tyme + + gRhsT +> + +1853 + gByExessi +< + gT +, + gIl +:: +IsLessThOrEquTo +, +RhsT + const&> + +1854 + gݔ + < +RhsT + cڡ& +rhs + ) { + +1855  +uExessi +< +Il +:: +IsLessThOrEquTo +> +rhs + ); + +1858 + gme +< +tyme + + gRhsT +> + +1859 + gByExessi +< + gT +, + gIl +:: +IsGThOrEquTo +, +RhsT + const&> + +1860 + gݔ + > +RhsT + cڡ& +rhs + ) { + +1861  +uExessi +< +Il +:: +IsGThOrEquTo +> +rhs + ); + +1864 + gByExessi +< + gT +, + gIl +:: +IsEquTo +, + gbo +> + gݔ + = +bo + +rhs + ) { + +1865  +uExessi +< +Il +:: +IsEquTo +> +rhs + ); + +1868 + gByExessi +< + gT +, + gIl +:: +IsNEquTo +, + gbo +> + gݔ + ! +bo + +rhs + ) { + +1869  +uExessi +< +Il +:: +IsNEquTo +> +rhs + ); + +1872  +dExessi +() { + +1873 + gm_uthy + = +m_lhs + ? +ue + : +l +; + +1874 + gm_rb + + +1875 . +tResuTy + +m_uthy + ) + +1876 . +dExessi +* +this + ); + +1879 +vtu +  +cڡruExessi + +d +:: +rg +& +de + ) cڡ +CATCH_OVERRIDE + { + +1880 +de + = +Cch +:: +toSg + +m_lhs + ); + +1883 + give +: + +1884 +me +< +Il +:: +Ot + +Op +, +tyme + + gRhsT +> + +1885 + gByExessi +< + gT +, + gOp +, + gRhsT +&> +uExessi + +RhsT +& +rhs + ) const { + +1886  + gByExessi +< + gT +, + gOp +, + gRhsT +&> + gm_rb +, + gm_lhs +, + grhs + ); + +1889 + gme +< + gIl +:: +Ot + +Op +> + +1890 +ByExessi +< +T +, + gOp +, + gbo +> +uExessi + +bo + +rhs + ) const { + +1891  + gByExessi +< + gT +, + gOp +, + gbo +> + gm_rb +, + gm_lhs +, + grhs + ); + +1894 + give +: + +1895 +ResuBud +& +m_rb +; + +1896 +T + + gm_lhs +; + +1897 +bo + + gm_uthy +; + +1900 + gme +< +tyme + + gLhsT +, + gIl +:: +Ot + +Op +,ym + gRhsT +> + +1901 as + cByExessi + : +public + +DecompodExessi + { + +1902 +public +: + +1903 +ByExessi + +ResuBud +& +rb +, +LhsT + +lhs +, +RhsT + +rhs + ) + +1904 : +m_rb + +rb + ), +m_lhs + +lhs + ), +m_rhs + +rhs + ) {} + +1906 + gByExessi +& + gݔ + = ( +ByExessi +& ); + +1908  +dExessi +() const { + +1909 + gm_rb + + +1910 . +tResuTy + +Il +:: +com +< +Op +> +m_lhs +, +m_rhs + ) ) + +1911 . +dExessi +* +this + ); + +1914 +vtu + +bo + +isByExessi +(cڡ + gCATCH_OVERRIDE + { + +1915  + gue +; + +1918 +vtu +  +cڡruExessi + +d +:: +rg +& +de + ) cڡ +CATCH_OVERRIDE + { + +1919 +d +:: +rg + +lhs + = +Cch +:: +toSg + +m_lhs + ); + +1920 + gd +:: +rg + +rhs + = +Cch +:: +toSg + +m_rhs + ); + +1921  + gdim + = +lhs +. +size +(+ +rhs +.size() < 40 && + +1922 +lhs +. +fd +('\n'= +d +:: +rg +:: +os + && + +1923 +rhs +. +fd +('\n'= +d +:: +rg +:: +os + ? ' ' : '\n'; + +1924 + gde +. +rve +7 + +lhs +. +size +(+ +rhs +.size() ); + +1929 + gde + = +lhs +; + +1930 + gde + + +dim +; + +1931 + gde + + +Il +:: +OtTs +< +Op +>:: +gName +(); + +1932 + gde + + +dim +; + +1933 + gde + + +rhs +; + +1936 + give +: + +1937 +ResuBud +& +m_rb +; + +1938 +LhsT + + gm_lhs +; + +1939 +RhsT + + gm_rhs +; + +1942 + gme +< +tyme + + gArgT +,ym + gMchT +> + +1943 as + cMchExessi + : +public + +DecompodExessi + { + +1944 +public +: + +1945 +MchExessi + +ArgT + +g +, +MchT + +mch +, cڡ* +mchSg + ) + +1946 : +m_g + +g + ), +m_mch + +mch + ), +m_mchSg + +mchSg + ) {} + +1948 +vtu + +bo + +isByExessi +(cڡ + gCATCH_OVERRIDE + { + +1949  + gue +; + +1952 +vtu +  +cڡruExessi + +d +:: +rg +& +de + ) cڡ +CATCH_OVERRIDE + { + +1953 +d +:: +rg + +mchAsSg + = +m_mch +. +toSg +(); + +1954 + gde + = +Cch +:: +toSg + +m_g + ); + +1955 + gde + += ' '; + +1956 if + gmchAsSg + = +Da +:: +urbSg + ) + +1957 +de + + +m_mchSg +; + +1959 + gde + + +mchAsSg +; + +1962 + give +: + +1963 +ArgT + +m_g +; + +1964 +MchT + + gm_mch +; + +1965 cڡ* + gm_mchSg +; + +1971 +mea + + gCch + { + +1973 + gme +< +tyme + + gT +> + +1974 + gExessiLhs +< +T + cڡ&> + gResuBud +:: +ݔ + * +this +, +ݔd + ); + +1978 +le + + gExessiLhs +< + gbo +> + gResuBud +:: +ݔ + < +bo + +vue + ) { + +1979  +ExessiLhs +< +bo +>* +this +, +vue + ); + +1982 + gme +< +tyme + + gArgT +,ym + gMchT +> + +1983  + gResuBud +:: +uMch + +ArgT + cڡ& +g +, +MchT + cڡ& +mch +, + +1984 cڡ* +mchSg + ) { + +1985 + gMchExessi +< +ArgT + cڡ&, +MchT + cڡ&> +ex + +g +, +mch +, +mchSg + ); + +1986 +tResuTy + +mch +. +mch + +g + ) ); + +1987 +dExessi + +ex + ); + +1993  + #TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED + + + ) + +1995  + ~ + +1997 +mea + + gCch + { + +1999  + sMesgeInfo + { + +2000 +MesgeInfo + +d +:: +rg + cڡ& +_maoName +, + +2001 +SourLeInfo + cڡ& +_leInfo +, + +2002 +ResuWas +:: +OfTy + +_ty + ); + +2004 + gd +:: +rg + +maoName +; + +2005 +SourLeInfo + + gleInfo +; + +2006 + gResuWas +:: +OfTy + +ty +; + +2007 + gd +:: +rg + +mesge +; + +2008  + gqu +; + +2010 +bo + + gݔ + = +MesgeInfo + cڡ& +h + ) const { + +2011  +qu + = +h +.sequence; + +2013 +bo + + gݔ + < ( +MesgeInfo + cڡ& + gh + ) const { + +2014  + gqu + < + gh +.sequence; + +2016 + give +: + +2017  +globCou +; + +2020  + sMesgeBud + { + +2021 +MesgeBud + +d +:: +rg + cڡ& +maoName +, + +2022 +SourLeInfo + cڡ& +leInfo +, + +2023 +ResuWas +:: +OfTy + +ty + ) + +2024 : +m_fo + +maoName +, +leInfo +, +ty + ) + +2027 + gme +< +tyme + + gT +> + +2028 + gMesgeBud +& + gݔ + << ( +T + cڡ& + gvue + ) { + +2029 + gm_am + << + gvue +; + +2030  * + gthis +; + +2033 +MesgeInfo + + gm_fo +; + +2034 + gd +:: +orgam + +m_am +; + +2037 as + cScedMesge + { + +2038 + gpublic +: + +2039 +ScedMesge + +MesgeBud + cڡ& +bud + ); + +2040 +ScedMesge +ScedMesgcڡ& +h + ); + +2041 ~ +ScedMesge +(); + +2043 +MesgeInfo + + gm_fo +; + +2049  + #TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED + + + ) + +2051  + ~ + +2053 +mea + + gCch + { + +2055 +ass + + gTeCa +; + +2056 +ass + + gAsiResu +; + +2057  + gAsiInfo +; + +2058  + gSeiInfo +; + +2059  + gSeiEndInfo +; + +2060  + gMesgeInfo +; + +2061 +ass + + gScedMesgeBud +; + +2062  + gCous +; + +2064  + sIResuCtu + { + +2066 + gvtu + ~ +IResuCtu +(); + +2068 +vtu +  +asiEnded + +AsiResu + cڡ& +su + ) = 0; + +2069 +vtu + +bo + +iSed + +SeiInfo + cڡ& +iInfo +, + +2070 +Cous +& +asis + ) = 0; + +2071 +vtu +  +iEnded + +SeiEndInfo + cڡ& +dInfo + ) = 0; + +2072 +vtu +  +iEndedEly + +SeiEndInfo + cڡ& +dInfo + ) = 0; + +2073 +vtu +  +pushScedMesge + +MesgeInfo + cڡ& +mesge + ) = 0; + +2074 +vtu +  +pScedMesge + +MesgeInfo + cڡ& +mesge + ) = 0; + +2076 +vtu + + gd +:: +rg + +gCutTeName +() const = 0; + +2077 +vtu + cڡ +AsiResu +* +gLaResu +() const = 0; + +2079 +vtu +  +exiElyR܋d +() = 0; + +2081 +vtu +  +hdFECdi + +d +:: +rg + cڡ& +mesge + ) = 0; + +2083 +vtu + +bo + +ϡAsiPasd +() = 0; + +2084 +vtu +  +asiPasd +() = 0; + +2085 +vtu +  +asiRun +() = 0; + +2088 + gIResuCtu +& +gResuCtu +(); + +2092  + #TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED + + + ) + +2095  + #TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED + + + ) + +2097 #i +defed +( +__MAC_OS_X_VERSION_MIN_REQUIRED +) + +2098  + #CATCH_PLATFORM_MAC + + + ) + +2099 #i +defed +( +__IPHONE_OS_VERSION_MIN_REQUIRED +) + +2100  + #CATCH_PLATFORM_IPHONE + + + ) + +2101 #i +defed +( +lux +|| defed( +__lux +|| defed( +__lux__ +) + +2102  + #CATCH_PLATFORM_LINUX + + + ) + +2103 #i +defed +( +WIN32 +|| defed( +__WIN32__ +|| defed( +_WIN32 +|| defed( +_MSC_VER +) + +2104  + #CATCH_PLATFORM_WINDOWS + + + ) + +2105 #i! +defed +( +NOMINMAX +&& !defed( +CATCH_CONFIG_NO_NOMINMAX +) + +2106  + #CATCH_DEFINES_NOMINMAX + + + ) + +2108 #i! +defed +( +WIN32_LEAN_AND_MEAN +&& !defed( +CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN +) + +2109  + #CATCH_DEFINES_WIN32_LEAN_AND_MEAN + + + ) + +2113  + ~ + +2115 +mea + + gCch +{ + +2117 +bo + +isDebuggAive +(); + +2118  +wreToDebugCse + +d +:: +rg + cڡ& +xt + ); + +2121 #ifde +CATCH_PLATFORM_MAC + + +2125 #i +defed +( +__c64__ +|| defed( +__c__ +) + +2126  + #CATCH_TRAP +() \ + +2127 + `__asm__ +("li0, 20\nsc\nnop\nli0, 37\nli4, 2\nsc\nnop\n" \ + +2128 : : : "memy","r0","r3","r4" ) + + ) + +2130  + #CATCH_TRAP +( + `__asm__ +("$3\n" : : ) + + ) + +2133 #i +defed +( +CATCH_PLATFORM_LINUX +) + +2137 #i +defed +( +__GNUC__ +&& (defed( +__i386 +|| defed( +__x86_64 +)) + +2138  + #CATCH_TRAP +( +asm + vީ("$3" + + ) + +2140  + ~ + +2142  + #CATCH_TRAP +( + `i +( +SIGTRAP +) + + ) + +2144 #i +defed +( +_MSC_VER +) + +2145  + #CATCH_TRAP +( + `__debugbak +() + + ) + +2146 #i +defed +( +__MINGW32__ +) + +2147 "C" + $__deec +( +dimpt + +__d + + `DebugBak +(); + +2148  + #CATCH_TRAP +( + `DebugBak +() + + ) + +2151 #ifde +CATCH_TRAP + + +2152  + #CATCH_BREAK_INTO_DEBUGGER +(if +Cch +:: + `isDebuggAive +({ + `CATCH_TRAP +(); + } + + ) +} + +2154  + #CATCH_BREAK_INTO_DEBUGGER +( +Cch +:: + `waysTrue +(); + + ) + +2158  + #TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED + + + ) + +2160 +mea + + gCch + { + +2161 +ass + + gTeCa +; + +2163  + sIRu” + { + +2164 + gvtu + ~ +IRu” +(); + +2165 +vtu + +bo + +abtg +() const = 0; + +2169 #i +defed +( +CATCH_CONFIG_FAST_COMPILE +) + +2174  + #INTERNAL_CATCH_REACT + +suBud + ) \ + +2175 +suBud +. + `a +(); + + ) + +2182  + #INTERNAL_CATCH_TEST_NO_TRY + +maoName +, +suDiosi +, +ex + ) \ + +2184 +Cch +:: +ResuBud + + `__tchResu + +maoName +, +CATCH_INTERNAL_LINEINFO +, #ex, +suDiosi + ); \ + +2185 +__tchResu +. + `tExiGud +(); \ + +2186 +CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS + \ + +2187 +__tchResu + < +ex + ). + `dExessi +(); \ + +2188 +CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS + \ + +2189 +__tchResu +. + `untExiGud +(); \ + +2190 + `INTERNAL_CATCH_REACT + +__tchResu + ) \ + +2191 }  +Cch +:: + `isTrue + +l + && +ic_ +< +bo +>!!( +ex +) ) ) ) + +2193 + + ) + +2194  + #INTERNAL_CHECK_THAT_NO_TRY + +maoName +, +mch +, +suDiosi +, +g + ) \ + +2196 +Cch +:: +ResuBud + + `__tchResu + +maoName +, +CATCH_INTERNAL_LINEINFO +, #g ", " #mch, +suDiosi + ); \ + +2197 +__tchResu +. + `tExiGud +(); \ + +2198 +__tchResu +. + `uMch + +g +, +mch +, #matcher ); \ + +2199 +__tchResu +. + `untExiGud +(); \ + +2200 + `INTERNAL_CATCH_REACT + +__tchResu + ) \ + +2201 }  +Cch +:: + `waysF +() + + ) + +2209  + #INTERNAL_CATCH_REACT + +suBud + ) \ + +2210 if +suBud +. + `shouldDebugBak +( + `CATCH_BREAK_INTO_DEBUGGER +(); \ + +2211 +suBud +. + `a +(); + + ) + +2215  + #INTERNAL_CATCH_TEST + +maoName +, +suDiosi +, +ex + ) \ + +2217 +Cch +:: +ResuBud + + `__tchResu + +maoName +, +CATCH_INTERNAL_LINEINFO +, #ex, +suDiosi + ); \ + +2218 +y + { \ + +2219 +CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS + \ + +2220 +__tchResu + < +ex + ). + `dExessi +(); \ + +2221 +CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS + \ + +2223 + `tch +( ... ) { \ + +2224 +__tchResu +. + `uAiveExi + +suDiosi + ); \ + +2226 + `INTERNAL_CATCH_REACT + +__tchResu + ) \ + +2227 }  +Cch +:: + `isTrue + +l + && +ic_ +< +bo +>!!( +ex +) ) ) ) + +2229 + + ) + +2231  + #INTERNAL_CATCH_IF + +maoName +, +suDiosi +, +ex + ) \ + +2232 + `INTERNAL_CATCH_TEST + +maoName +, +suDiosi +, +ex + ); \ + +2233 if +Cch +:: + `gResuCtu +(). + `ϡAsiPasd +() + + ) + +2236  + #INTERNAL_CATCH_ELSE + +maoName +, +suDiosi +, +ex + ) \ + +2237 + `INTERNAL_CATCH_TEST + +maoName +, +suDiosi +, +ex + ); \ + +2238 if! +Cch +:: + `gResuCtu +(). + `ϡAsiPasd +() + + ) + +2241  + #INTERNAL_CATCH_NO_THROW + +maoName +, +suDiosi +, +ex + ) \ + +2243 +Cch +:: +ResuBud + + `__tchResu + +maoName +, +CATCH_INTERNAL_LINEINFO +, #ex, +suDiosi + ); \ + +2244 +y + { \ + +2245 +ic_ +<>( +ex +); \ + +2246 +__tchResu +. + `uResu + +Cch +:: +ResuWas +:: +Ok + ); \ + +2248 + `tch +( ... ) { \ + +2249 +__tchResu +. + `uAiveExi + +suDiosi + ); \ + +2251 + `INTERNAL_CATCH_REACT + +__tchResu + ) \ + +2252 }  +Cch +:: + `waysF +() + + ) + +2255  + #INTERNAL_CATCH_THROWS + +maoName +, +suDiosi +, +mch +, +ex + ) \ + +2257 +Cch +:: +ResuBud + + `__tchResu + +maoName +, +CATCH_INTERNAL_LINEINFO +, #ex, +suDiosi +, #matcher ); \ + +2258 if +__tchResu +. + `lowThrows +() ) \ + +2259 +y + { \ + +2260 +ic_ +<>( +ex +); \ + +2261 +__tchResu +. + `uResu + +Cch +:: +ResuWas +:: +DidThrowExi + ); \ + +2263 + `tch +( ... ) { \ + +2264 +__tchResu +. + `uExedExi + +mch + ); \ + +2267 +__tchResu +. + `uResu + +Cch +:: +ResuWas +:: +Ok + ); \ + +2268 + `INTERNAL_CATCH_REACT + +__tchResu + ) \ + +2269 }  +Cch +:: + `waysF +() + + ) + +2272  + #INTERNAL_CATCH_THROWS_AS + +maoName +, +exiTy +, +suDiosi +, +ex + ) \ + +2274 +Cch +:: +ResuBud + + `__tchResu + +maoName +, +CATCH_INTERNAL_LINEINFO +, #ex ", " #exiTy, +suDiosi + ); \ + +2275 if +__tchResu +. + `lowThrows +() ) \ + +2276 +y + { \ + +2277 +ic_ +<>( +ex +); \ + +2278 +__tchResu +. + `uResu + +Cch +:: +ResuWas +:: +DidThrowExi + ); \ + +2280 + `tch + +exiTy + ) { \ + +2281 +__tchResu +. + `uResu + +Cch +:: +ResuWas +:: +Ok + ); \ + +2283 + `tch +( ... ) { \ + +2284 +__tchResu +. + `uAiveExi + +suDiosi + ); \ + +2287 +__tchResu +. + `uResu + +Cch +:: +ResuWas +:: +Ok + ); \ + +2288 + `INTERNAL_CATCH_REACT + +__tchResu + ) \ + +2289 }  +Cch +:: + `waysF +() + + ) + +2292 #ifde +CATCH_CONFIG_VARIADIC_MACROS + + +2293  + #INTERNAL_CATCH_MSG + +maoName +, +mesgeTy +, +suDiosi +, ... ) \ + +2295 +Cch +:: +ResuBud + + `__tchResu + +maoName +, +CATCH_INTERNAL_LINEINFO +, "", +suDiosi + ); \ + +2296 +__tchResu + << +__VA_ARGS__ + + :: +Cch +:: + `SmEndSt +(); \ + +2297 +__tchResu +. + `uResu + +mesgeTy + ); \ + +2298 + `INTERNAL_CATCH_REACT + +__tchResu + ) \ + +2299 }  +Cch +:: + `waysF +() + + ) + +2301  + #INTERNAL_CATCH_MSG + +maoName +, +mesgeTy +, +suDiosi +, +log + ) \ + +2303 +Cch +:: +ResuBud + + `__tchResu + +maoName +, +CATCH_INTERNAL_LINEINFO +, "", +suDiosi + ); \ + +2304 +__tchResu + << +log + + :: +Cch +:: + `SmEndSt +(); \ + +2305 +__tchResu +. + `uResu + +mesgeTy + ); \ + +2306 + `INTERNAL_CATCH_REACT + +__tchResu + ) \ + +2307 }  +Cch +:: + `waysF +() + + ) + +2311  + #INTERNAL_CATCH_INFO + +maoName +, +log + ) \ + +2312 +Cch +:: +ScedMesge + + `INTERNAL_CATCH_UNIQUE_NAME + +scedMesge + ) = Cch:: + `MesgeBud + +maoName +, +CATCH_INTERNAL_LINEINFO +, Cch:: +ResuWas +:: +Info + ) << +log +; + + ) + +2315  + #INTERNAL_CHECK_THAT + +maoName +, +mch +, +suDiosi +, +g + ) \ + +2317 +Cch +:: +ResuBud + + `__tchResu + +maoName +, +CATCH_INTERNAL_LINEINFO +, #g ", " #mch, +suDiosi + ); \ + +2318 +y + { \ + +2319 +__tchResu +. + `uMch + +g +, +mch +, #matcher ); \ + +2320 } + `tch +( ... ) { \ + +2321 +__tchResu +. + `uAiveExi + +suDiosi + | +Cch +:: +ResuDiosi +:: +CtueOnFau + ); \ + +2323 + `INTERNAL_CATCH_REACT + +__tchResu + ) \ + +2324 }  +Cch +:: + `waysF +() + + ) + +2327  + #TWOBLUECUBES_CATCH_SECTION_H_INCLUDED + + + ) + +2330  + #TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED + + + ) + +2333  + #TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED + + + ) + +2335  + ~ + +2337 +mea + + gCch + { + +2339  + sCous + { + +2340 +Cous +(: +sd +0 ), +ed +0 ), +edButOk +( 0 ) {} + +2342 +Cous + + gݔ + - ( Coucڡ& + gh + ) const { + +2343 +Cous + + gdiff +; + +2344 + gdiff +. + gsd + = +sd + - +h +.passed; + +2345 + gdiff +. + ged + = +ed + - +h +.failed; + +2346 + gdiff +. + gedButOk + = +edButOk + - +h +.failedButOk; + +2347  + gdiff +; + +2349 + gCous +& + gݔ + + +Cous + cڡ& +h + ) { + +2350 +sd + + +h +.passed; + +2351 + ged + + +h +. +ed +; + +2352 + gedButOk + + +h +. +edButOk +; + +2353  * + gthis +; + +2356 + gd +:: +size_t + +tٮ +() const { + +2357  +sd + + +ed + + +edButOk +; + +2359 +bo + +lPasd +() const { + +2360  + ged + =0 && +edButOk + == 0; + +2362 +bo + +lOk +() const { + +2363  + ged + == 0; + +2366 + gd +:: +size_t + +sd +; + +2367 + gd +:: +size_t + +ed +; + +2368 + gd +:: +size_t + +edButOk +; + +2371  + sTٮs + { + +2373 +Tٮs + + gݔ + - ( Tٮcڡ& + gh + ) const { + +2374 +Tٮs + + gdiff +; + +2375 + gdiff +. + gasis + = +asis + - +h +.assertions; + +2376 + gdiff +. + gCas + = +Cas + - +h +.testCases; + +2377  + gdiff +; + +2380 +Tٮs + +d +Tٮcڡ& +evTٮs + ) const { + +2381 +Tٮs + + gdiff + = * +this + - +evTٮs +; + +2382 if + gdiff +. + gasis +. + ged + > 0 ) + +2383 ++ + gdiff +. + gCas +. + ged +; + +2384 if + gdiff +. + gasis +. + gedButOk + > 0 ) + +2385 ++ + gdiff +. + gCas +. + gedButOk +; + +2387 ++ + gdiff +. + gCas +. + gsd +; + +2388  + gdiff +; + +2391 + gTٮs +& + gݔ + + +Tٮs + cڡ& +h + ) { + +2392 +asis + + +h +.assertions; + +2393 + gCas + + +h +. +Cas +; + +2394  * + gthis +; + +2397 +Cous + + gasis +; + +2398 +Cous + + gCas +; + +2402  + ~ + +2404 +mea + + gCch + { + +2406  + sSeiInfo + { + +2407 + gSeiInfo + + +2408 +SourLeInfo + cڡ& + g_leInfo +, + +2409 + gd +:: +rg + cڡ& +_me +, + +2410 + gd +:: +rg + cڡ& +_desti + = +d +::string() ); + +2412 + gd +:: +rg + +me +; + +2413 + gd +:: +rg + +desti +; + +2414 +SourLeInfo + + gleInfo +; + +2417  + sSeiEndInfo + { + +2418 +SeiEndInfo + +SeiInfo + cڡ& +_iInfo +, +Cous + cڡ& +_evAsis +,  +_dutiInSecds + ) + +2419 : +iInfo + +_iInfo + ), +evAsis + +_evAsis + ), +dutiInSecds + +_dutiInSecds + ) + +2422 +SeiInfo + + giInfo +; + +2423 +Cous + + gevAsis +; + +2424  + gdutiInSecds +; + +2430  + #TWOBLUECUBES_CATCH_TIMER_H_INCLUDED + + + ) + +2432 #ifde +_MSC_VER + + +2434 +mea + + gCch + { + +2435  + tUI64 +; + +2438  + ~ + +2439 +mea + + gCch + { + +2440  +ut64_t + + tUI64 +; + +2444 +mea + + gCch + { + +2445 as + cTim + { + +2446 + gpublic +: + +2447 +Tim +(: +m_ticks +( 0 ) {} + +2448  +t +(); + +2449  +gEpdMiocds +() const; + +2450  +gEpdMlicds +() const; + +2451  +gEpdSecds +() const; + +2453 + give +: + +2454 +UI64 + +m_ticks +; + +2459  + ~ + +2461 +mea + + gCch + { + +2463 as + cSei + : +NCyab + { + +2464 +public +: + +2465 +Sei + +SeiInfo + cڡ& +fo + ); + +2466 ~ +Sei +(); + +2469 +ݔ + +bo +() const; + +2471 + give +: + +2472 +SeiInfo + +m_fo +; + +2474 + gd +:: +rg + +m_me +; + +2475 +Cous + + gm_asis +; + +2476 +bo + + gm_iInuded +; + +2477 +Tim + + gm_tim +; + +2482 #ifde +CATCH_CONFIG_VARIADIC_MACROS + + +2483  + #INTERNAL_CATCH_SECTION +( ... ) \ + +2484 if +Cch +:: +Sei + cڡ& + `INTERNAL_CATCH_UNIQUE_NAME + +tch__Sei + ) = Cch:: + `SeiInfo + +CATCH_INTERNAL_LINEINFO +, +__VA_ARGS__ + ) ) + + ) + +2486  + #INTERNAL_CATCH_SECTION + +me +, +desc + ) \ + +2487 if +Cch +:: +Sei + cڡ& + `INTERNAL_CATCH_UNIQUE_NAME + +tch__Sei + ) = Cch:: + `SeiInfo + +CATCH_INTERNAL_LINEINFO +, +me +, +desc + ) ) + + ) + +2491  + #TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED + + + ) + +2493  + ~ + +2494  + ~ + +2495  + ~ + +2497 +mea + + gCch + { + +2499 + gme +< +tyme + + gT +> + +2500  + sIG + { + +2501 + gvtu + ~ +IG +() {} + +2502 +vtu + +T + +gVue + +d +:: +size_t + +dex + ) const = 0; + +2503 +vtu + + gd +:: +size_t + +size + () const = 0; + +2506 + gme +< +tyme + + gT +> + +2507 +ass + + gBwnG + : +public + +IG +< +T +> { + +2508 +public +: + +2509 +BwnG + +T + +om +, T +to + ) : +m_om +om ), +m_to +(o ){} + +2511 +vtu + +T + +gVue + +d +:: +size_t + +dex + ) const { + +2512  +m_om ++ +ic_ +<> +dex + ); + +2515 +vtu + + gd +:: +size_t + +size +() const { + +2516  +ic_ +< +d +:: +size_t +>1+ +m_to +- +m_om + ); + +2519 + give +: + +2521 +T + +m_om +; + +2522 +T + + gm_to +; + +2525 + gme +< +tyme + + gT +> + +2526 +ass + + gVuesG + : +public + +IG +< +T +> { + +2527 +public +: + +2528 +VuesG +(){} + +2530  +add + +T + +vue + ) { + +2531 +m_vues +. +push_back + +vue + ); + +2534 +vtu + +T + +gVue + +d +:: +size_t + +dex + ) const { + +2535  +m_vues +[ +dex +]; + +2538 +vtu + + gd +:: +size_t + +size +() const { + +2539  +m_vues +. +size +(); + +2542 + give +: + +2543 +d +:: +ve +< +T +> +m_vues +; + +2546 + gme +< +tyme + + gT +> + +2547 as + cComposeG + { + +2548 + gpublic +: + +2549 +ComposeG +(: +m_tٮSize +( 0 ) {} + +2552 +ComposeG +ComposeG& +h + ) + +2553 : +m_feInfo + +h +.m_fileInfo ), + +2554 +m_tٮSize +( 0 ) + +2556 +move + +h + ); + +2559 + gComposeG +& +tFeInfo +cڡ * +feInfo + ) { + +2560 + gm_feInfo + = +feInfo +; + +2561  * + gthis +; + +2564 ~ +ComposeG +() { + +2565 +deA + +m_compod + ); + +2568 +ݔ + +T + () const { + +2569 +size_t + + govlIndex + = +gCutCڋxt +(). +gGIndex + +m_feInfo +, +m_tٮSize + ); + +2571 +tyme + + gd +:: +ve +*>:: +cڡ_ + + + = +m_compod +. +beg +(); + +2572 +tyme + + gd +:: +ve +*>:: +cڡ_ + +End + = +m_compod +. +d +(); + +2573  +size_t + + gdex + = 0; + g + ! +End +; ++it ) + +2575 cڡ + gIG +< + gT +>* + gg + = * + +; + +2576 if + govlIndex + > +dex + && +ovlIndex + < index + +g +-> +size +() ) + +2578  +g +-> +gVue + +ovlIndex +- +dex + ); + +2580 + gdex + + +g +-> +size +(); + +2582 +CATCH_INTERNAL_ERROR +( "Indexedastnd of generatedange" ); + +2583  +T +(); + +2586  +add +cڡ +IG +< +T +>* +g + ) { + +2587 + gm_tٮSize + + +g +-> +size +(); + +2588 + gm_compod +. +push_back + +g + ); + +2591 + gComposeG +& +th + +ComposeG +& +h + ) { + +2592 +move + +h + ); + +2593  * + gthis +; + +2596 + gComposeG +& +th + +T + +vue + ) { + +2597 + gVuesG +< + gT +>* + gvuesG + = +w + +VuesG +< +T +>(); + +2598 + gvuesG +-> +add + +vue + ); + +2599 +add + +vuesG + ); + +2600  * + gthis +; + +2603 + give +: + +2605  +move + +ComposeG +& +h + ) { + +2606 +m_compod +. + +m_compod. +d +(), +h +.m_compod. +beg +(), other.m_composed.end() ); + +2607 + gm_tٮSize + + +h +. +m_tٮSize +; + +2608 + gh +. + gm_compod +. +r +(); + +2611 + gd +:: +ve +*> +m_compod +; + +2612 + gd +:: +rg + +m_feInfo +; + +2613 +size_t + + gm_tٮSize +; + +2616 +mea + + gGs + + +2618 + gme +< +tyme + + gT +> + +2619 + gComposeG +< + gT +> +bwn + +T + +om +, T +to + ) { + +2620 + gComposeG +< + gT +> + ggs +; + +2621 + ggs +. +add + +w + +BwnG +< +T +> +om +, +to + ) ); + +2622  + ggs +; + +2625 + gme +< +tyme + + gT +> + +2626 + gComposeG +< + gT +> +vues + +T + +v1 +, T +v2 + ) { + +2627 + gComposeG +< + gT +> + ggs +; + +2628 + gVuesG +< + gT +>* + gvuesG + = +w + +VuesG +< +T +>(); + +2629 + gvuesG +-> +add + +v1 + ); + +2630 + gvuesG +-> +add + +v2 + ); + +2631 + ggs +. +add + +vuesG + ); + +2632  + ggs +; + +2635 + gme +< +tyme + + gT +> + +2636 + gComposeG +< + gT +> +vues + +T + +v1 +, T +v2 +, T +v3 + ){ + +2637 + gComposeG +< + gT +> + ggs +; + +2638 + gVuesG +< + gT +>* + gvuesG + = +w + +VuesG +< +T +>(); + +2639 + gvuesG +-> +add + +v1 + ); + +2640 + gvuesG +-> +add + +v2 + ); + +2641 + gvuesG +-> +add + +v3 + ); + +2642 + ggs +. +add + +vuesG + ); + +2643  + ggs +; + +2646 + gme +< +tyme + + gT +> + +2647 + gComposeG +< + gT +> +vues + +T + +v1 +, T +v2 +, T +v3 +, T +v4 + ) { + +2648 + gComposeG +< + gT +> + ggs +; + +2649 + gVuesG +< + gT +>* + gvuesG + = +w + +VuesG +< +T +>(); + +2650 + gvuesG +-> +add + +v1 + ); + +2651 + gvuesG +-> +add + +v2 + ); + +2652 + gvuesG +-> +add + +v3 + ); + +2653 + gvuesG +-> +add + +v4 + ); + +2654 + ggs +. +add + +vuesG + ); + +2655  + ggs +; + +2660 +usg + +mea + + gGs +; + +2664  + #INTERNAL_CATCH_LINESTR2 + +le + ) #le + + ) + +2665  + #INTERNAL_CATCH_LINESTR + +le + ) + `INTERNAL_CATCH_LINESTR2 +l) + + ) + +2667  + #INTERNAL_CATCH_GENERATE + +ex + )x. + `tFeInfo + +__FILE__ + "(" + `INTERNAL_CATCH_LINESTR + +__LINE__ + ) ")" ) + + ) + +2670  + #TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED + + + ) + +2672  + ~ + +2673  + ~ + +2676  + #TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED + + + ) + +2678  + ~ + +2680 +mea + + gCch + { + +2682 +ass + + gTeCa +; + +2683  + gITeCaRegiry +; + +2684  + gIExiTnRegiry +; + +2685  + gIExiTn +; + +2686  + gIR܋rRegiry +; + +2687  + gIR܋rFay +; + +2688  + gITagAlsRegiry +; + +2690  + sIRegiryHub + { + +2691 + gvtu + ~ +IRegiryHub +(); + +2693 +vtu + +IR܋rRegiry + cڡ& +gR܋rRegiry +() const = 0; + +2694 +vtu + +ITeCaRegiry + cڡ& +gTeCaRegiry +() const = 0; + +2695 +vtu + +ITagAlsRegiry + cڡ& +gTagAlsRegiry +() const = 0; + +2697 +vtu + + gIExiTnRegiry +& +gExiTnRegiry +() = 0; + +2700  + sIMubRegiryHub + { + +2701 + gvtu + ~ +IMubRegiryHub +(); + +2702 +vtu +  +giR܋r + +d +:: +rg + cڡ& +me +, +P +< +IR܋rFay +> cڡ& +y + ) = 0; + +2703 +vtu +  +giLi + +P +< +IR܋rFay +> cڡ& +y + ) = 0; + +2704 +vtu +  +giTe + +TeCa + cڡ& +Info + ) = 0; + +2705 +vtu +  +giTn +cڡ +IExiTn +* + + ) = 0; + +2706 +vtu +  +giTagAls + +d +:: +rg + cڡ& +s +, std::rg cڡ& +g +, +SourLeInfo + cڡ& +leInfo + ) = 0; + +2709 + gIRegiryHub +& +gRegiryHub +(); + +2710 + gIMubRegiryHub +& +gMubRegiryHub +(); + +2711  +nUp +(); + +2712 + gd +:: +rg + +eAiveExi +(); + +2716 +mea + + gCch + { + +2718  + gd +:: + trg +(* + texiTneFuni +)(); + +2720  + gIExiTn +; + +2721  + gd +:: + tve + + tExiTns +; + +2723  + sIExiTn + { + +2724 + gvtu + ~ +IExiTn +(); + +2725 +vtu + + gd +:: +rg + +e + +ExiTns +:: +cڡ_ + + +, ExiTns::cڡ_ +End + ) const = 0; + +2728  + sIExiTnRegiry + { + +2729 + gvtu + ~ +IExiTnRegiry +(); + +2731 +vtu + + gd +:: +rg + +eAiveExi +() const = 0; + +2734 as + cExiTnRegir + { + +2735 + gme +< +tyme + + gT +> + +2736 as + cExiTn + : +public + +IExiTn + { + +2737 +public +: + +2739 +ExiTn + +d +:: +rg +(* +eFuni +) +T +& ) ) + +2740 : +m_eFuni + +eFuni + ) + +2743 +vtu + +d +:: +rg + +e + +ExiTns +:: +cڡ_ + + +, ExiTns::cڡ_ +End + ) cڡ +CATCH_OVERRIDE + { + +2744 +y + { + +2745 if + + = +End + ) + +2746 +throw +; + +2748  (* + g +)-> +e + + ++1, +End + ); + +2750 +tch + +T +& +ex + ) { + +2751  +m_eFuni + +ex + ); + +2755 + geed +: + +2756 +d +:: +rg +(* +m_eFuni +) +T +& ); + +2759 + gpublic +: + +2760 +me +< +tyme + +T +> + +2761 +ExiTnRegir + +d +:: +rg +(* +eFuni +) +T +& ) ) { + +2762 +gMubRegiryHub +(). +giTn + + +2763 +w + +ExiTn +< +T +> +eFuni + ) ); + +2769  + #INTERNAL_CATCH_TRANSLATE_EXCEPTION2 + +Name +, +sigtu + ) \ + +2770  +d +:: +rg + + `Name + +sigtu + ); \ + +2771 +mea +{ +Cch +:: +ExiTnRegir + + `INTERNAL_CATCH_UNIQUE_NAME + +tch__ExiRegir + )& +Name + ); }\ + +2772  +d +:: +rg + + `Name + +sigtu + ) + + ) + +2774  + #INTERNAL_CATCH_TRANSLATE_EXCEPTION + +sigtu + ) + `INTERNAL_CATCH_TRANSLATE_EXCEPTION2 + + `INTERNAL_CATCH_UNIQUE_NAME + +tch__ExiTn + ), sigtu ) + + ) + +2777  + #TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED + + + ) + +2779  + ~ + +2780  + ~ + +2782 #i +defed +( +CATCH_CONFIG_CPP11_TYPE_TRAITS +) + +2783  + ~ + +2786 +mea + + gCch + { + +2787 +mea + + gDa + { + +2789 as + cArox + { + +2790 + gpublic +: + +2791 +exic + +Arox + (  +vue + ) + +2792 : +m_s + +d +:: +numic_lims +<>:: +s +()*100 ), + +2793 +m_mg +( 0.0 ), + +2794 +m_s +( 1.0 ), + +2795 +m_vue + +vue + ) + +2798  +Arox + +cuom +() { + +2799  +Arox +( 0 ); + +2802 #i +defed +( +CATCH_CONFIG_CPP11_TYPE_TRAITS +) + +2804 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2805 +Arox + +ݔ +() +T + +vue + ) { + +2806 +Arox + +ox + +ic_ +<>( +vue +) ); + +2807 + gox +. +s + +m_s + ); + +2808 + gox +. +mg + +m_mg + ); + +2809 + gox +. +s + +m_s + ); + +2810  + gox +; + +2813 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2814 +exic + +Arox + +T + +vue + ): Arox( +ic_ +<>(value)) + +2817 +me + < +tyme + +T +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2818 +nd + +bo + +ݔ + =cڡ +T +& +lhs +, +Arox + cڡ& + grhs + ) { + +2820 aut + glhs_v + = ( +lhs +); + +2821 +bo + + gtiveOK + = +d +:: +bs +( +lhs_v + - +rhs +. +m_vue +:: +vue +>:: +ty +> + +2829 +nd + +bo + +ݔ + = +Arox + cڡ& +lhs +, cڡ + gT +& + grhs + ) { + +2830  + gݔ +== +rhs +, + glhs + ); + +2833 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2834 +nd + +bo + +ݔ + ! +T + +lhs +, +Arox + cڡ& + grhs + ) { + +2835  ! + gݔ +== +lhs +, + grhs + ); + +2838 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2839 +nd + +bo + +ݔ + ! +Arox + cڡ& +lhs +, +T + + grhs + ) { + +2840  ! + gݔ +== +rhs +, + glhs + ); + +2843 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2844 +nd + +bo + +ݔ + < +T + +lhs +, +Arox + cڡ& + grhs + ) { + +2845  ( + glhs +< + grhs +. + gm_vue + ||h= +rhs +; + +2848 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2849 +nd + +bo + +ݔ + < +Arox + cڡ& +lhs +, +T + + grhs + ) { + +2850  + glhs +. + gm_vue + < ( + grhs +||h= +rhs +; + +2853 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2854 +nd + +bo + +ݔ + > +T + +lhs +, +Arox + cڡ& + grhs + ) { + +2855  ( + glhs +> + grhs +. + gm_vue + ||h= +rhs +; + +2858 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2859 +nd + +bo + +ݔ + > +Arox + cڡ& +lhs +, +T + + grhs + ) { + +2860  + glhs +. + gm_vue + > ( + grhs +||h= +rhs +; + +2863 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2864 +Arox +& +s + +T + +wEps + ) { + +2865 +m_s + = ( +wEps +); + +2866  * + gthis +; + +2869 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2870 +Arox +& +mg + +T + +wMg + ) { + +2871 +m_mg + = ( +wMg +); + +2872  * + gthis +; + +2875 + gme + < +tyme + + gT +, + gtyme + =ym +d +:: +ab_if +:: +vue +>:: +ty +> + +2876 +Arox +& +s + +T + +wS + ) { + +2877 +m_s + = ( +wS +); + +2878  * + gthis +; + +2883 +Arox + +ݔ +() + gvue + ) { + +2884 +Arox + +ox + +vue + ); + +2885 + gox +. +s + +m_s + ); + +2886 + gox +. +mg + +m_mg + ); + +2887 + gox +. +s + +m_s + ); + +2888  + gox +; + +2891 +nd + +bo + + gݔ + = +lhs +, +Arox + cڡ& + grhs + ) { + +2893 +bo + + gtiveOK + = +d +:: +bs + +lhs + - +rhs +. +m_vue + )  +lhs +, +Arox + cڡ& + grhs + ) { + +2921  + glhs + > + grhs +. + gm_vue + ||h= +rhs +; + +2924 +nd + +bo + + gݔ + > +Arox + cڡ& +lhs +,  + grhs + ) { + +2925  + glhs +. + gm_vue + > + grhs + ||h= +rhs +; + +2928 + gArox +& +s + +wEps + ) { + +2929 + gm_s + = +wEps +; + +2930  * + gthis +; + +2933 + gArox +& +mg + +wMg + ) { + +2934 + gm_mg + = +wMg +; + +2935  * + gthis +; + +2938 + gArox +& +s + +wS + ) { + +2939 + gm_s + = +wS +; + +2940  * + gthis +; + +2944 + gd +:: +rg + +toSg +() const { + +2945 +d +:: +orgam + +oss +; + +2946 + goss + << "Arox" << + gCch +:: +toSg + +m_vue + ) << " )"; + +2947  + goss +. +r +(); + +2950 + give +: + +2951  +m_s +; + +2952  + gm_mg +; + +2953  + gm_s +; + +2954  + gm_vue +; + +2958 + gme +<> + +2959 +le + + gd +:: +rg + +toSg +< +Da +:: +Arox +>Da::Arox cڡ& +vue + ) { + +2960  +vue +. +toSg +(); + +2966  + #TWOBLUECUBES_CATCH_MATCHERS_STRING_H_INCLUDED + + + ) + +2968 +mea + + gCch + { + +2969 +mea + + gMchs + { + +2971 +mea + + gStdSg + { + +2973  + sCadSg + + +2975 +CadSg + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + ); + +2976 + gd +:: +rg + +adjuSg + +d +::rg cڡ& +r + ) const; + +2977 + gd +:: +rg + +SsivySuffix +() const; + +2979 + gCaSsive +:: +Choi + +m_Ssivy +; + +2980 + gd +:: +rg + +m_r +; + +2983  + gSgMchBa + : +MchBa +< +d +:: +rg +> { + +2984 +SgMchBa + +d +:: +rg + cڡ& +ݔi +, +CadSg + cڡ& +comt + ); + +2985 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE +; + +2987 +CadSg + + gm_comt +; + +2988 + gd +:: +rg + +m_ݔi +; + +2991  + gEqusMch + : +SgMchBa + { + +2992 +EqusMch + +CadSg + cڡ& +comt + ); + +2993 +vtu + +bo + +mch + +d +:: +rg + cڡ& +sour + ) cڡ +CATCH_OVERRIDE +; + +2995  + gCڏsMch + : +SgMchBa + { + +2996 +CڏsMch + +CadSg + cڡ& +comt + ); + +2997 +vtu + +bo + +mch + +d +:: +rg + cڡ& +sour + ) cڡ +CATCH_OVERRIDE +; + +2999  + gSsWhMch + : +SgMchBa + { + +3000 +SsWhMch + +CadSg + cڡ& +comt + ); + +3001 +vtu + +bo + +mch + +d +:: +rg + cڡ& +sour + ) cڡ +CATCH_OVERRIDE +; + +3003  + gEndsWhMch + : +SgMchBa + { + +3004 +EndsWhMch + +CadSg + cڡ& +comt + ); + +3005 +vtu + +bo + +mch + +d +:: +rg + cڡ& +sour + ) cڡ +CATCH_OVERRIDE +; + +3013 + gStdSg +:: +EqusMch + +Equs + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + = CaSsive:: +Yes + ); + +3014 + gStdSg +:: +CڏsMch + +Cڏs + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + = CaSsive:: +Yes + ); + +3015 + gStdSg +:: +EndsWhMch + +EndsWh + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + = CaSsive:: +Yes + ); + +3016 + gStdSg +:: +SsWhMch + +SsWh + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + = CaSsive:: +Yes + ); + +3022  + #TWOBLUECUBES_CATCH_MATCHERS_VECTOR_H_INCLUDED + + + ) + +3024 +mea + + gCch + { + +3025 +mea + + gMchs + { + +3027 +mea + + gVe + { + +3029 + gme +< +tyme + + gT +> + +3030  + gCڏsEmtMch + : +MchBa +< +d +:: +ve +< +T +>, + gT +> { + +3032 +CڏsEmtMch +( +T + cڡ & +comt +: +m_comt +( comparator) {} + +3034 +bo + +mch +( +d +:: +ve +< +T +> cڡ & +v +cڡ +CATCH_OVERRIDE + { + +3035  +d +:: +fd +( +v +. +beg +(), v. +d +(), +m_comt +) != v.end(); + +3038 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +3039  "Cڏs: " + +Cch +:: +toSg + +m_comt + ); + +3042 +T + cڡ& + gm_comt +; + +3045 + gme +< +tyme + + gT +> + +3046  + gCڏsMch + : +MchBa +< +d +:: +ve +< +T +>, + gd +::vector > { + +3048 +CڏsMch +( +d +:: +ve +< +T +> cڡ & +comt +: +m_comt +( comparator ) {} + +3050 +bo + +mch +( +d +:: +ve +< +T +> cڡ & +v +cڡ +CATCH_OVERRIDE + { + +3052 i( +m_comt +. +size +(> +v +.size()) + +3053  +l +; + +3054  +size_t + + gi + = 0; i < + gm_comt +. +size +(); ++i) + +3055 i( + gd +:: +fd +( +v +. +beg +(), v. +d +(), +m_comt +[ +i +]) == v.end()) + +3056  +l +; + +3057  + gue +; + +3059 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +3060  "Cڏs: " + +Cch +:: +toSg + +m_comt + ); + +3063 + gd +:: +ve +< +T +> cڡ& +m_comt +; + +3066 + gme +< +tyme + + gT +> + +3067  + gEqusMch + : +MchBa +< +d +:: +ve +< +T +>, + gd +::vector > { + +3069 +EqusMch +( +d +:: +ve +< +T +> cڡ & +comt +: +m_comt +( comparator ) {} + +3071 +bo + +mch +( +d +:: +ve +< +T +> cڡ & +v +cڡ +CATCH_OVERRIDE + { + +3076 i( +m_comt +. +size +(! +v +.size()) + +3077  +l +; + +3078  +size_t + + gi + = 0; i < + gv +. +size +(); ++i) + +3079 i( + gm_comt +[ +i +] ! +v +[i]) + +3080  +l +; + +3081  + gue +; + +3083 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +3084  "Equs: " + +Cch +:: +toSg + +m_comt + ); + +3086 + gd +:: +ve +< +T +> cڡ& +m_comt +; + +3094 + gme +< +tyme + + gT +> + +3095 + gVe +:: +CڏsMch +< +T +> +Cڏs + +d +:: +ve + cڡ& +comt + ) { + +3096  +Ve +:: +CڏsMch +< +T +> +comt + ); + +3099 + gme +< +tyme + + gT +> + +3100 + gVe +:: +CڏsEmtMch +< +T +> +VeCڏs +T cڡ& +comt + ) { + +3101  +Ve +:: +CڏsEmtMch +< +T +> +comt + ); + +3104 + gme +< +tyme + + gT +> + +3105 + gVe +:: +EqusMch +< +T +> +Equs + +d +:: +ve + cڡ& +comt + ) { + +3106  +Ve +:: +EqusMch +< +T +> +comt + ); + +3113  + #TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED + + + ) + +3116  + #TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED + + + ) + +3118  + ~ + +3120 +mea + + gCch + { + +3122  + sTagAls + { + +3123 +TagAls + +d +:: +rg + cڡ& +_g +, +SourLeInfo + +_leInfo + ) : +g +_g ), +leInfo +( _lineInfo ) {} + +3125 + gd +:: +rg + +g +; + +3126 +SourLeInfo + + gleInfo +; + +3129  + sRegirFTagAls + { + +3130 +RegirFTagAls +cڡ* +s +, cڡ* +g +, +SourLeInfo + cڡ& +leInfo + ); + +3135  + #CATCH_REGISTER_TAG_ALIAS + +s +, +ec + ) +mea +{ +Cch +:: +RegirFTagAls + + `INTERNAL_CATCH_UNIQUE_NAME + +AutoRegiTagAls + )Юs, sc, +CATCH_INTERNAL_LINEINFO + ); } + + ) + +3137  + #TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED + + + ) + +3139 +mea + + gCch + { + +3142 + gme +< +tyme + + gT +> + +3143 as + cOi + { + +3144 + gpublic +: + +3145 +Oi +(: +nuabVue + +CATCH_NULL + ) {} + +3146 +Oi + +T + cڡ& +_vue + ) + +3147 : +nuabVue + +w + +age + ) +T + +_vue + ) ) + +3149 +Oi +Oi cڡ& +_h + ) + +3150 : +nuabVue + +_h + ? +w + +age + ) +T +*_h ) : +CATCH_NULL + ) + +3153 ~ +Oi +() { + +3154 +t +(); + +3157 + gOi +& + gݔ + +Oi + cڡ& +_h + ) { + +3158 if& +_h + ! +this + ) { + +3159 +t +(); + +3160 if + g_h + ) + +3161 + gnuabVue + = +w + +age + ) +T +* +_h + ); + +3163  * + gthis +; + +3165 + gOi +& + gݔ + = ( +T + cڡ& +_vue + ) { + +3166 +t +(); + +3167 + gnuabVue + = +w + +age + ) +T + +_vue + ); + +3168  * + gthis +; + +3171  +t +() { + +3172 if + gnuabVue + ) + +3173 + gnuabVue +->~ +T +(); + +3174 + gnuabVue + = +CATCH_NULL +; + +3177 + gT +& + gݔ +*({  * + gnuabVue +; } + +3178 +T + cڡ& + gݔ +*(cڡ {  * + gnuabVue +; } + +3179 +T +* + gݔ +->({  + gnuabVue +; } + +3180 cڡ +T +* + gݔ +->(cڡ {  + gnuabVue +; } + +3182 +T + +vueOr +T cڡ& +deuVue + ) const { + +3183  + gnuabVue + ? *nuabVu: +deuVue +; + +3186 +bo + +some +(cڡ {  + gnuabVue + ! +CATCH_NULL +; } + +3187 +bo + +ne +(cڡ {  + gnuabVue + = +CATCH_NULL +; } + +3189 +bo + + gݔ + !(cڡ {  + gnuabVue + = +CATCH_NULL +; } + +3190 +ݔ + + gSaBo +:: +ty +() const { + +3191  +SaBo +:: +makeSa + +some +() ); + +3194 + give +: + +3195 +T + * +nuabVue +; + +3197  + gage +[( +T +)]; + +3200  + gdummy1 +; + +3201 (* + gdummy2 +)(); + +3202  + gdummy3 +; + +3203 #ifde +CATCH_CONFIG_CPP11_LONG_LONG + + +3204  + gdummy4 +; + +3211 +mea + + gCch + { + +3213  + sITagAlsRegiry + { + +3214 + gvtu + ~ +ITagAlsRegiry +(); + +3215 +vtu + + gOi +< + gTagAls +> +fd + +d +:: +rg + cڡ& +s + ) const = 0; + +3216 +vtu + + gd +:: +rg + +exndAls + +d +::rg cڡ& +uxndedTeSc + ) const = 0; + +3218  +ITagAlsRegiry + cڡ& +g +(); + +3226  + #TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED + + + ) + +3228  + ~ + +3229  + ~ + +3231 #ifde +__g__ + + +3232 #agm +g + +dgnoic + +push + + +3233 #agm +g + +dgnoic + +igned + "-Wpadded" + +3236 +mea + + gCch + { + +3238  + gITeCa +; + +3240  + sTeCaInfo + { + +3241 + eSclPrݔts +{ + +3242 + gNe + = 0, + +3243 + gIsHidd + = 1 << 1, + +3244 + gShouldFa + = 1 << 2, + +3245 + gMayFa + = 1 << 3, + +3246 + gThrows + = 1 << 4, + +3247 + gNP܏b + = 1 << 5 + +3250 +TeCaInfo + +d +:: +rg + cڡ& +_me +, + +3251 +d +:: +rg + cڡ& +_assName +, + +3252 +d +:: +rg + cڡ& +_desti +, + +3253 +d +:: +t + cڡ& +_gs +, + +3254 +SourLeInfo + cڡ& +_leInfo + ); + +3256 +TeCaInfo +TeCaInfcڡ& +h + ); + +3258 +nd +  +tTags + +TeCaInfo +& +CaInfo +, +d +:: +t + cڡ& +gs + ); + +3260 +bo + +isHidd +() const; + +3261 +bo + +throws +() const; + +3262 +bo + +okToFa +() const; + +3263 +bo + +exedToFa +() const; + +3265 + gd +:: +rg + +me +; + +3266 + gd +:: +rg + +assName +; + +3267 + gd +:: +rg + +desti +; + +3268 + gd +:: +t +< +d +:: +rg +> +gs +; + +3269 + gd +:: +t +< +d +:: +rg +> +lTags +; + +3270 + gd +:: +rg + +gsAsSg +; + +3271 +SourLeInfo + + gleInfo +; + +3272 +SclPrݔts + + gݔts +; + +3275 as + cTeCa + : +public + +TeCaInfo + { + +3276 +public +: + +3278 +TeCa + +ITeCa +* +Ca +, +TeCaInfo + cڡ& +fo + ); + +3279 +TeCa +TeCa cڡ& +h + ); + +3281 +TeCa + +whName + +d +:: +rg + cڡ& +_wName + ) const; + +3283  +voke +() const; + +3285 +TeCaInfo + cڡ& +gTeCaInfo +() const; + +3287  +sw + +TeCa +& +h + ); + +3288 +bo + + gݔ + = +TeCa + cڡ& +h + ) const; + +3289 +bo + + gݔ + < ( +TeCa + cڡ& + gh + ) const; + +3290 + gTeCa +& + gݔ + = ( +TeCa + cڡ& +h + ); + +3292 + give +: + +3293 +P +< +ITeCa +> + +; + +3296 +TeCa + +makeTeCa + +ITeCa +* +Ca +, + +3297 +d +:: +rg + cڡ& +assName +, + +3298 +d +:: +rg + cڡ& +me +, + +3299 +d +:: +rg + cڡ& +desti +, + +3300 +SourLeInfo + cڡ& +leInfo + ); + +3303 #ifde +__g__ + + +3304 #agm +g + +dgnoic + +p + + +3308 #ifde +__OBJC__ + + +3310  + #TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED + + + ) + +3312 #imp܈< +objc +/ +ruime +. +h +> + +3314  + ~ + +3323 @ +oc + + gOcFixtu + + +3325 @ + gtiڮ + + +3327 -( + gtUp +; + +3328 -( + gDown +; + +3330 @ +d + + +3332 +mea + + gCch + { + +3334 +ass + + gOcMhod + : +public + +ShedIm +< +ITeCa +> { + +3336 +public +: + +3337 +OcMhod + +Css + +s +, +SEL + +l + ) : +m_s +), +m_l +( sel ) {} + +3339 +vtu +  +voke +() const { + +3340 +id + + gobj + = [[ +m_s + +loc +] + +]; + +3342 +rfmOiڮSe + +obj +, @ + +( +tUp +) ); + +3343 +rfmOiڮSe + +obj +, +m_l + ); + +3344 +rfmOiڮSe + +obj +, @ + +( +Down +) ); + +3346 +cSaR + +obj + ); + +3348 + give +: + +3349 +vtu + ~ +OcMhod +() {} + +3351 +Css + +m_s +; + +3352 +SEL + + gm_l +; + +3355 +mea + + gDa +{ + +3357 +le + + gd +:: +rg + +gA٩i + +Css + +s +, + +3358 +d +:: +rg + cڡ& +n٩iName +, + +3359 +d +:: +rg + cڡ& +CaName + ) { + +3360 +NSSg +* +lS + = [[NSSg +loc +] +WhFm +:@"Cch_%s_%s", + gn٩iName +. +c_r +(), + gCaName +.c_str()]; + +3361 +SEL + + gl + = +NSSeFromSg + +lS + ); + +3362 +cSaR + +lS + ); + +3363 +id + + gvue + = +rfmOiڮSe + +s +, +l + ); + +3364 if + gvue + ) + +3365  [( +NSSg +*) +vue + +UTF8Sg +]; + +3370 +le + +size_t + +giTeMhods +() { + +3371 +size_t + + gnoTeMhods + = 0; + +3372  + gnoCss + = +objc_gCssLi + +CATCH_NULL +, 0 ); + +3374 +Css +* + gass + = ( +CATCH_UNSAFE_UNRETAINED + Cs*) +mloc +(Css* +noCss +); + +3375 +objc_gCssLi + +ass +, +noCss + ); + +3377   + gc + = 0; c < + gnoCss +; c++ ) { + +3378 +Css + + gs + = +ass +[ +c +]; + +3380 +u_t + + gcou +; + +3381 +Mhod +* + gmhods + = +ass_cyMhodLi + +s +, & +cou + ); + +3382  +u_t + + gm + = 0; m < + gcou + ; m++ ) { + +3383 +SEL + + g + = +mhod_gName +( +mhods +[ +m +]); + +3384 + gd +:: +rg + +mhodName + = +l_gName +( + +); + +3385 if +tsWh + +mhodName +, "Catch_TestCase_" ) ) { + +3386 + gd +:: +rg + +CaName + = +mhodName +. +subr +( 15 ); + +3387 + gd +:: +rg + +me + = +Da +:: +gA٩i + +s +, "Name", +CaName + ); + +3388 + gd +:: +rg + +desc + = +Da +:: +gA٩i + +s +, "Desti", +CaName + ); + +3389 cڡ * + gassName + = +ass_gName + +s + ); + +3391 +gMubRegiryHub +(). +giTe + +makeTeCa + +w + +OcMhod + +s +, + + ), +assName +, +me +. +c_r +(), +desc +.c_r(), +SourLeInfo +() ) ); + +3392 + gnoTeMhods +++; + +3395 + +( +mhods +); + +3398  + gnoTeMhods +; + +3401 +mea + + gMchs + { + +3402 +mea + + gIm + { + +3403 +mea + + gNSSgMchs + { + +3405  + gSgHd + : +MchBa +< +NSSg +*>{ + +3406 +SgHd + +NSSg +* +subr + ) : +m_subr +[sub +cy +] ){} + +3407 +SgHd +SgHd cڡ& +h + ) : +m_subr +[h.m_sub +cy +] ){} + +3408 +SgHd +() { + +3409 +cSaR + +m_subr + ); + +3412 +vtu + +bo + +mch + +NSSg +* +g + ) cڡ + gCATCH_OVERRIDE + { + +3413  + gl +; + +3416 +NSSg +* + gm_subr +; + +3419  + gEqus + : +SgHd + { + +3420 +Equs + +NSSg +* +subr + ) : +SgHd +( substr ){} + +3422 +vtu + +bo + +mch + +NSSg +* +r + ) cڡ +CATCH_OVERRIDE + { + +3423  ( +r + ! +n + || +m_subr + ==il ) && + +3424 [ +r + +isEquToSg +: +m_subr +]; + +3427 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +3428  "equrg: " + +Cch +:: +toSg + +m_subr + ); + +3432  + gCڏs + : +SgHd + { + +3433 +Cڏs + +NSSg +* +subr + ) : +SgHd +( substr ){} + +3435 +vtu + +bo + +mch + +NSSg +* +r + ) const { + +3436  ( +r + ! +n + || +m_subr + ==il ) && + +3437 [ +r + +ngeOfSg +: +m_subr +]. +loti + ! +NSNFound +; + +3440 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +3441  "cڏrg: " + +Cch +:: +toSg + +m_subr + ); + +3445  + gSsWh + : +SgHd + { + +3446 +SsWh + +NSSg +* +subr + ) : +SgHd +( substr ){} + +3448 +vtu + +bo + +mch + +NSSg +* +r + ) const { + +3449  ( +r + ! +n + || +m_subr + ==il ) && + +3450 [ +r + +ngeOfSg +: +m_subr +]. +loti + == 0; + +3453 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +3454  "twh: " + +Cch +:: +toSg + +m_subr + ); + +3457  + gEndsWh + : +SgHd + { + +3458 +EndsWh + +NSSg +* +subr + ) : +SgHd +( substr ){} + +3460 +vtu + +bo + +mch + +NSSg +* +r + ) const { + +3461  ( +r + ! +n + || +m_subr + ==il ) && + +3462 [ +r + +ngeOfSg +: +m_subr +]. +loti + =[ +ngth +] - [m_substrength]; + +3465 +vtu + + gd +:: +rg + +desibe +(cڡ +CATCH_OVERRIDE + { + +3466  "dwh: " + +Cch +:: +toSg + +m_subr + ); + +3473 +le + + gIm +:: +NSSgMchs +:: +Equs + + +3474 +Equs + +NSSg +* +subr + ){  +Im +:: +NSSgMchs +::Equals( substr ); } + +3476 +le + + gIm +:: +NSSgMchs +:: +Cڏs + + +3477 +Cڏs + +NSSg +* +subr + ){  +Im +:: +NSSgMchs +::Contains( substr ); } + +3479 +le + + gIm +:: +NSSgMchs +:: +SsWh + + +3480 +SsWh + +NSSg +* +subr + ){  +Im +:: +NSSgMchs +::StartsWith( substr ); } + +3482 +le + + gIm +:: +NSSgMchs +:: +EndsWh + + +3483 +EndsWh + +NSSg +* +subr + ){  +Im +:: +NSSgMchs +::EndsWith( substr ); } + +3487 +usg + +mea + + gMchs +; + +3492  + #OC_TEST_CASE + +me +, +desc + )\ + +3493 +( +NSSg +* + `INTERNAL_CATCH_UNIQUE_NAME + +Cch_Name_ + ) \ + +3495  @ +me +; \ + +3497 +( +NSSg +* + `INTERNAL_CATCH_UNIQUE_NAME + +Cch_Desti_ + ) \ + +3499  @ +desc +; \ + +3501 -( + `INTERNAL_CATCH_UNIQUE_NAME + +Cch_TeCa_ + ) + + ) + +3505 #ifde +CATCH_IMPL + + +3508 #ifde +CATCH_CONFIG_WINDOWS_CRTDBG + + +3509  + ~ + +3510 as + cLkDe + { + +3511 + mpublic +: + +3512 + $LkDe +() { + +3513  +ag + = + `_CSDbgFg +( +_CRTDBG_REPORT_FLAG +); + +3514 +ag + | +_CRTDBG_LEAK_CHECK_DF +; + +3515 +ag + | +_CRTDBG_ALLOC_MEM_DF +; + +3516 + `_CSDbgFg +( +ag +); + +3517 + `_CSRtMode +( +_CRT_WARN +, +_CRTDBG_MODE_FILE + | +_CRTDBG_MODE_DEBUG +); + +3518 + `_CSRtFe +( +_CRT_WARN +, +_CRTDBG_FILE_STDERR +); + +3520 + `_CSBakAoc +(-1); + +3522 + } +}; + +3524 as + cLkDe + {}; + +3527 +LkDe + + gakDe +; + +3530  + #TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED + + + ) + +3535 #ifde +__g__ + + +3536 #agm +g + +dgnoic + +push + + +3537 #agm +g + +dgnoic + +igned + "-Wweak-vtables" + +3541  + #TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED + + + ) + +3544  + #TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED + + + ) + +3547  + #TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED + + + ) + +3550  + #TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED + + + ) + +3552 #ifde +__g__ + + +3553 #agm +g + +dgnoic + +push + + +3554 #agm +g + +dgnoic + +igned + "-Wpadded" + +3558  + #TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED + + + ) + +3560 #ifde +__g__ + + +3561 #agm +g + +dgnoic + +push + + +3562 #agm +g + +dgnoic + +igned + "-Wpadded" + +3566  + #TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED + + + ) + +3568  + ~ + +3570 +mea + + gCch + + +3572 as + cWdrdP + { + +3573 + eWdrdPosi + { + +3574 + gNoWdrd + = 0, + +3575 + gWdrdAtS + = 1, + +3576 + gWdrdAtEnd + = 2, + +3577 + gWdrdAtBhEnds + = +WdrdAtS + | +WdrdAtEnd + + +3580 + gpublic +: + +3582 +WdrdP + +d +:: +rg + cڡ& +n +, +CaSsive +:: +Choi + +Ssivy + ) + +3583 : +m_Ssivy + +Ssivy + ), + +3584 +m_wdrd + +NoWdrd + ), + +3585 +m_n + +adjuCa + +n + ) ) + +3587 if +tsWh + +m_n +, '*' ) ) { + +3588 + gm_n + = +m_n +. +subr +( 1 ); + +3589 + gm_wdrd + = +WdrdAtS +; + +3591 if +dsWh + +m_n +, '*' ) ) { + +3592 + gm_n + = +m_n +. +subr +0, m_n. +size +()-1 ); + +3593 + gm_wdrd + = +ic_ +< +WdrdPosi +> +m_wdrd + | +WdrdAtEnd + ); + +3596 + gvtu + ~ +WdrdP +(); + +3597 +vtu + +bo + +mches + +d +:: +rg + cڡ& +r + ) const { + +3598  +m_wdrd + ) { + +3599  +NoWdrd +: + +3600  +m_n + = +adjuCa + +r + ); + +3601  + gWdrdAtS +: + +3602  +dsWh + +adjuCa + +r + ), +m_n + ); + +3603  + gWdrdAtEnd +: + +3604  +tsWh + +adjuCa + +r + ), +m_n + ); + +3605  + gWdrdAtBhEnds +: + +3606  +cڏs + +adjuCa + +r + ), +m_n + ); + +3609 #ifde +__g__ + + +3610 #agm +g + +dgnoic + +push + + +3611 #agm +g + +dgnoic + +igned + "-Wunreachable-code" + +3613 +throw + + gd +:: +logic_r +( "Unknownnum" ); + +3614 #ifde +__g__ + + +3615 #agm +g + +dgnoic + +p + + +3618 + give +: + +3619 +d +:: +rg + +adjuCa +Сd::rg cڡ& +r + ) const { + +3620  +m_Ssivy + = +CaSsive +:: +No + ? +toLow + +r + ) : str; + +3622 + gCaSsive +:: +Choi + +m_Ssivy +; + +3623 +WdrdPosi + + gm_wdrd +; + +3624 + gd +:: +rg + +m_n +; + +3628  + ~ + +3629  + ~ + +3631 +mea + + gCch + { + +3633 as + cTeSc + { + +3634  + gP + : +ShedIm +<> { + +3635 +vtu + ~ +P +(); + +3636 +vtu + +bo + +mches + +TeCaInfo + cڡ& +Ca + ) const = 0; + +3638 as + cNameP + : +public + +P + { + +3639 +public +: + +3640 +NameP + +d +:: +rg + cڡ& +me + ) + +3641 : +m_wdrdP + +toLow + +me + ), +CaSsive +:: +No + ) + +3643 +vtu + ~ +NameP +(); + +3644 +vtu + +bo + +mches + +TeCaInfo + cڡ& +Ca + ) const { + +3645  + gm_wdrdP +. +mches + +toLow + +Ca +. +me + ) ); + +3647 + give +: + +3648 +WdrdP + +m_wdrdP +; + +3651 as + cTagP + : +public + +P + { + +3652 +public +: + +3653 +TagP + +d +:: +rg + cڡ& +g + ) : +m_g + +toLow +(ag ) ) {} + +3654 +vtu + ~ +TagP +(); + +3655 +vtu + +bo + +mches + +TeCaInfo + cڡ& +Ca + ) const { + +3656  + gCa +. + glTags +. +fd + +m_g + ) ! +Ca +. +lTags +. +d +(); + +3658 + give +: + +3659 +d +:: +rg + +m_g +; + +3662 as + cExudedP + : +public + +P + { + +3663 +public +: + +3664 +ExudedP + +P +< +P +> cڡ& +undlygP + ) : +m_undlygP +( underlyingPattern ) {} + +3665 +vtu + ~ +ExudedP +(); + +3666 +vtu + +bo + +mches + +TeCaInfo + cڡ& +Ca + ) cڡ {  ! + gm_undlygP +->matches(estCase ); } + +3667 + give +: + +3668 +P +< +P +> +m_undlygP +; + +3671  + sFr + { + +3672 + gd +:: +ve +< +P +< +P +> > +m_ns +; + +3674 +bo + +mches + +TeCaInfo + cڡ& +Ca + ) const { + +3676  + gd +:: +ve +< +P +< +P +> >:: +cڡ_ + + + = +m_ns +. +beg +(), + gEnd + = m_ns. +d +(); + g + ! +End +; ++it ) { + +3677 if!(* + g +)-> +mches + +Ca + ) ) + +3678  + gl +; + +3680  + gue +; + +3684 + gpublic +: + +3685 +bo + +hasFrs +() const { + +3686  ! +m_frs +. +emy +(); + +3688 +bo + +mches + +TeCaInfo + cڡ& +Ca + ) const { + +3690  + gd +:: +ve +< +Fr +>:: +cڡ_ + + + = +m_frs +. +beg +(), + gEnd + = m_frs. +d +(); + g + ! +End +; ++it ) + +3691 if + g +-> +mches + +Ca + ) ) + +3692  + gue +; + +3693  + gl +; + +3696 + give +: + +3697 +d +:: +ve +< +Fr +> +m_frs +; + +3699 +nd + +ass + + gTeScPr +; + +3703 #ifde +__g__ + + +3704 #agm +g + +dgnoic + +p + + +3707 +mea + + gCch + { + +3709 as + cTeScPr + { + +3710 + eMode +{ + gNe +, + gName +, + gQuedName +, + gTag +, + gEsdName + }; + +3711 +Mode + + gm_mode +; + +3712 +bo + + gm_exusi +; + +3713 + gd +:: +size_t + +m_t +, + gm_pos +; + +3714 + gd +:: +rg + +m_g +; + +3715 + gd +:: +ve +< +d +:: +size_t +> +m_esChs +; + +3716 + gTeSc +:: +Fr + +m_cutFr +; + +3717 +TeSc + + gm_Sc +; + +3718 +ITagAlsRegiry + cڡ* + gm_gAls +; + +3720 + gpublic +: + +3721 +TeScPr + +ITagAlsRegiry + cڡ& +gAls + ) : +m_mode +( +Ne +), +m_exusi +( +l +), +m_t +(0), +m_pos +(0), +m_gAls +( &tagAliases ) {} + +3723 + gTeScPr +& +r + +d +:: +rg + cڡ& +g + ) { + +3724 +m_mode + = +Ne +; + +3725 + gm_exusi + = +l +; + +3726 + gm_t + = +d +:: +rg +:: +os +; + +3727 + gm_g + = +m_gAls +-> +exndAls + +g + ); + +3728 + gm_esChs +. +r +(); + +3729  + gm_pos + = 0; m_po< + gm_g +. +size +(); ++m_pos ) + +3730 +visCh + +m_g +[ +m_pos +] ); + +3731 if + gm_mode + = +Name + ) + +3732 +addP +< +TeSc +:: +NameP +>(); + +3733  * + gthis +; + +3735 +TeSc + +Sc +() { + +3736 +addFr +(); + +3737  + gm_Sc +; + +3739 + give +: + +3740  +visCh + +c + ) { + +3741 if +m_mode + = +Ne + ) { + +3742  +c + ) { + +3744 '~': +m_exusi + = +ue +; ; + +3745 '[':  +tNewMode + +Tag +, ++ +m_pos + ); + +3746 '"':  +tNewMode + +QuedName +, ++ +m_pos + ); + +3747 '\\':  +es +(); + +3748 : +tNewMode + +Name +, +m_pos + ); ; + +3751 if + gm_mode + = +Name + ) { + +3752 if +c + == ',' ) { + +3753 +addP +< +TeSc +:: +NameP +>(); + +3754 +addFr +(); + +3756 if + gc + == '[' ) { + +3757 if +subSg +() == "exclude:" ) + +3758 +m_exusi + = +ue +; + +3760 + gaddP +< + gTeSc +:: +NameP +>(); + +3761 +tNewMode + +Tag +, ++ +m_pos + ); + +3763 if + gc + == '\\' ) + +3764 +es +(); + +3766 if + gm_mode + = +EsdName + ) + +3767 +m_mode + = +Name +; + +3768 if + gm_mode + = +QuedName + && +c + == '"' ) + +3769 +addP +< +TeSc +:: +NameP +>(); + +3770 if + gm_mode + = +Tag + && +c + == ']' ) + +3771 +addP +< +TeSc +:: +TagP +>(); + +3773  +tNewMode + +Mode + +mode +, +d +:: +size_t + +t + ) { + +3774 +m_mode + = +mode +; + +3775 + gm_t + = +t +; + +3777  +es +() { + +3778 if + gm_mode + = +Ne + ) + +3779 +m_t + = +m_pos +; + +3780 + gm_mode + = +EsdName +; + +3781 + gm_esChs +. +push_back + +m_pos + ); + +3783 + gd +:: +rg + +subSg +(cڡ {  +m_g +. +subr + +m_t +, +m_pos + - m_start ); } + +3784 + gme +< +tyme + + gT +> + +3785  +addP +() { + +3786 + gd +:: +rg + +tok + = +subSg +(); + +3787  +size_t + + gi + = 0; i < + gm_esChs +. +size +(); ++i ) + +3788 + gtok + = +tok +. +subr +0, +m_esChs +[ +i +]- +m_t +-i ) +oken.substr( m_escapeChars[i]-m_start-i+1 ); + +3789 + gm_esChs +. +r +(); + +3790 if +tsWh + +tok +, "exclude:" ) ) { + +3791 + gm_exusi + = +ue +; + +3792 + gtok + = +tok +. +subr +( 8 ); + +3794 if! + gtok +. +emy +() ) { + +3795 + gP +< + gTeSc +:: +P +> +n + = +w + +T + +tok + ); + +3796 if + gm_exusi + ) + +3797 + gn + = +w + +TeSc +:: +ExudedP + +n + ); + +3798 + gm_cutFr +. + gm_ns +. +push_back + +n + ); + +3800 + gm_exusi + = +l +; + +3801 + gm_mode + = +Ne +; + +3803  +addFr +() { + +3804 if! + gm_cutFr +. + gm_ns +. +emy +() ) { + +3805 + gm_Sc +. + gm_frs +. +push_back + +m_cutFr + ); + +3806 + gm_cutFr + = +TeSc +:: +Fr +(); + +3810 +le + +TeSc + + $rTeSc + +d +:: +rg + cڡ& +g + ) { + +3811  + `TeScPr + +ITagAlsRegiry +:: + `g +(). + `r + +g + ). + `Sc +(); + +3812 + } +} + +3816 #ifde +__g__ + + +3817 #agm +g + +dgnoic + +p + + +3821  + #TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED + + + ) + +3823  + ~ + +3824  + ~ + +3825  + ~ + +3827 +mea + + gCch + { + +3829  + sVbosy + { + eLev + { + +3830 + gNoOuut + = 0, + +3831 + gQut +, + +3832 + gNm + + +3835  + sWnAbout + { + eWh + { + +3836 + gNhg + = 0x00, + +3837 + gNoAsis + = 0x01 + +3840  + sShowDutis + { + eOrN + { + +3841 + gDeuFR܋r +, + +3842 + gAlways +, + +3843 + gNev + + +3845  + sRunTes + { + eInWhOrd + { + +3846 + gInDeiOrd +, + +3847 + gInLexicogphilOrd +, + +3848 + gInRdomOrd + + +3850  + sUCour + { + eYesOrNo + { + +3851 + gAuto +, + +3852 + gYes +, + +3853 + gNo + + +3856 +ass + + gTeSc +; + +3858  + gICfig + : +IShed + { + +3860 +vtu + ~ +ICfig +(); + +3862 +vtu + +bo + +lowThrows +() const = 0; + +3863 +vtu + + gd +:: +oam +& +am +() const = 0; + +3864 +vtu + + gd +:: +rg + +me +() const = 0; + +3865 +vtu + +bo + +udeSucssfulResus +() const = 0; + +3866 +vtu + +bo + +shouldDebugBak +() const = 0; + +3867 +vtu + +bo + +wnAboutMissgAsis +() const = 0; + +3868 +vtu +  +abtA +() const = 0; + +3869 +vtu + +bo + +showInvisibs +() const = 0; + +3870 +vtu + + gShowDutis +:: +OrN + +showDutis +() const = 0; + +3871 +vtu + +TeSc + cڡ& +Sc +() const = 0; + +3872 +vtu + + gRunTes +:: +InWhOrd + +runOrd +() const = 0; + +3873 +vtu +  +gSd +() const = 0; + +3874 +vtu + + gUCour +:: +YesOrNo + +uCour +() const = 0; + +3875 +vtu + + gd +:: +ve +< +d +:: +rg +> cڡ& +gSeisToRun +() const = 0; + +3881  + #TWOBLUECUBES_CATCH_STREAM_H_INCLUDED + + + ) + +3884  + #TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED + + + ) + +3886  + ~ + +3888 +mea + + gCch + { + +3890 as + cSmBufBa + : +public + +d +:: +ambuf + { + +3891 +public +: + +3892 +vtu + ~ +SmBufBa +( +CATCH_NOEXCEPT +; + +3896  + ~ + +3897  + ~ + +3898  + ~ + +3899  + ~ + +3901 +mea + + gCch + { + +3903 + gd +:: +oam +& +cout +(); + +3904 + gd +:: +oam +& + +(); + +3905 + gd +:: +oam +& +og +(); + +3907  + sISm + { + +3908 + gvtu + ~ +ISm +( + gCATCH_NOEXCEPT +; + +3909 +vtu + + gd +:: +oam +& +am +() const = 0; + +3912 as + cFeSm + : +public + +ISm + { + +3913 +mub + +d +:: +ofam + +m_ofs +; + +3914 + gpublic +: + +3915 +FeSm + +d +:: +rg + cڡ& +fame + ); + +3916 + gvtu + ~ +FeSm +( + gCATCH_NOEXCEPT +; + +3917 + gpublic +: + +3918 +vtu + +d +:: +oam +& +am +(cڡ +CATCH_OVERRIDE +; + +3921 as + cCoutSm + : +public + +ISm + { + +3922 +mub + +d +:: +oam + +m_os +; + +3923 + gpublic +: + +3924 +CoutSm +(); + +3925 + gvtu + ~ +CoutSm +( + gCATCH_NOEXCEPT +; + +3927 + gpublic +: + +3928 +vtu + +d +:: +oam +& +am +(cڡ +CATCH_OVERRIDE +; + +3931 as + cDebugOutSm + : +public + +ISm + { + +3932 +CATCH_AUTO_PTR + +SmBufBa + ) +m_amBuf +; + +3933 +mub + + gd +:: +oam + +m_os +; + +3934 + gpublic +: + +3935 +DebugOutSm +(); + +3936 + gvtu + ~ +DebugOutSm +( + gCATCH_NOEXCEPT +; + +3938 + gpublic +: + +3939 +vtu + +d +:: +oam +& +am +(cڡ +CATCH_OVERRIDE +; + +3943  + ~ + +3944  + ~ + +3945  + ~ + +3946  + ~ + +3948 #ide +CATCH_CONFIG_CONSOLE_WIDTH + + +3949  + #CATCH_CONFIG_CONSOLE_WIDTH + 80 + + ) + +3952 +mea + + gCch + { + +3954  + sCfigDa + { + +3956 +CfigDa +() + +3957 : +liTes + +l + ), + +3958 +liTags + +l + ), + +3959 +liR܋rs + +l + ), + +3960 +liTeNamesOy + +l + ), + +3961 +liExaInfo + +l + ), + +3962 +showSucssfulTes + +l + ), + +3963 +shouldDebugBak + +l + ), + +3964 +noThrow + +l + ), + +3965 +showHp + +l + ), + +3966 +showInvisibs + +l + ), + +3967 +famesAsTags + +l + ), + +3968 +abtA +( -1 ), + +3969 +gSd +( 0 ), + +3970 +vbosy + +Vbosy +:: +Nm + ), + +3971 +wngs + +WnAbout +:: +Nhg + ), + +3972 +showDutis + +ShowDutis +:: +DeuFR܋r + ), + +3973 +runOrd + +RunTes +:: +InDeiOrd + ), + +3974 +uCour + +UCour +:: +Auto + ) + +3977 +bo + +liTes +; + +3978 +bo + + gliTags +; + +3979 +bo + + gliR܋rs +; + +3980 +bo + + gliTeNamesOy +; + +3981 +bo + + gliExaInfo +; + +3983 +bo + + gshowSucssfulTes +; + +3984 +bo + + gshouldDebugBak +; + +3985 +bo + + gnoThrow +; + +3986 +bo + + gshowHp +; + +3987 +bo + + gshowInvisibs +; + +3988 +bo + + gfamesAsTags +; + +3990  + gabtA +; + +3991  + ggSd +; + +3993 + gVbosy +:: +Lev + +vbosy +; + +3994 + gWnAbout +:: +Wh + +wngs +; + +3995 + gShowDutis +:: +OrN + +showDutis +; + +3996 + gRunTes +:: +InWhOrd + +runOrd +; + +3997 + gUCour +:: +YesOrNo + +uCour +; + +3999 + gd +:: +rg + +ouutFame +; + +4000 + gd +:: +rg + +me +; + +4001 + gd +:: +rg + +ossName +; + +4003 + gd +:: +ve +< +d +:: +rg +> +p܋rNames +; + +4004 + gd +:: +ve +< +d +:: +rg +> +sOrTags +; + +4005 + gd +:: +ve +< +d +:: +rg +> +isToRun +; + +4008 +ass + + gCfig + : +public + +ShedIm +< +ICfig +> { + +4009 +ive +: + +4010 +Cfig +Cfig cڡ& +h + ); + +4011 + gCfig +& + gݔ + = ( +Cfig + cڡ& +h + ); + +4012 +vtu +  +dummy +(); + +4013 + gpublic +: + +4015 +Cfig +() + +4018 +Cfig + +CfigDa + cڡ& +da + ) + +4019 : +m_da + +da + ), + +4020 +m_am + +ݒSm +() ) + +4022 if! + gda +. + gsOrTags +. +emy +() ) { + +4023 +TeScPr + +rr + +ITagAlsRegiry +:: +g +() ); + +4024  + gd +:: +size_t + +i + = 0; + gi + < + gda +. + gsOrTags +. +size +(); ++i ) + +4025 + grr +. +r + +da +. +sOrTags +[ +i +] ); + +4026 + gm_Sc + = +rr +. +Sc +(); + +4030 + gvtu + ~ +Cfig +() {} + +4032 + gd +:: +rg + cڡ& +gFame +() const { + +4033  +m_da +. +ouutFame + ; + +4036 +bo + +liTes +(cڡ {  + gm_da +. + gliTes +; } + +4037 +bo + +liTeNamesOy +(cڡ {  + gm_da +. + gliTeNamesOy +; } + +4038 +bo + +liTags +(cڡ {  + gm_da +. + gliTags +; } + +4039 +bo + +liR܋rs +(cڡ {  + gm_da +. + gliR܋rs +; } + +4040 +bo + +liExaInfo +(cڡ {  + gm_da +. + gliExaInfo +; } + +4042 + gd +:: +rg + +gProssName +(cڡ {  +m_da +. +ossName +; } + +4044 + gd +:: +ve +< +d +:: +rg +> cڡ& +gR܋rNames +(cڡ {  +m_da +. +p܋rNames +; } + +4045 + gd +:: +ve +< +d +:: +rg +> cڡ& +gSeisToRun +(cڡ +CATCH_OVERRIDE + {  +m_da +. +isToRun +; } + +4047 +vtu + +TeSc + cڡ& +Sc +(cڡ + gCATCH_OVERRIDE + {  + gm_Sc +; } + +4049 +bo + +showHp +(cڡ {  + gm_da +. + gshowHp +; } + +4052 +vtu + +bo + +lowThrows +(cڡ + gCATCH_OVERRIDE + {  ! + gm_da +. + gnoThrow +; } + +4053 +vtu + + gd +:: +oam +& +am +(cڡ +CATCH_OVERRIDE + {  +m_am +->stream(); } + +4054 +vtu + + gd +:: +rg + +me +(cڡ +CATCH_OVERRIDE + {  +m_da +.me. +emy +(? m_da. +ossName + : m_data.name; } + +4055 +vtu + +bo + +udeSucssfulResus +(cڡ + gCATCH_OVERRIDE + {  + gm_da +. + gshowSucssfulTes +; } + +4056 +vtu + +bo + +wnAboutMissgAsis +(cڡ + gCATCH_OVERRIDE + {  + gm_da +. + gwngs + & + gWnAbout +:: +NoAsis +; } + +4057 +vtu + + gShowDutis +:: +OrN + +showDutis +(cڡ +CATCH_OVERRIDE + {  +m_da +.showDurations; } + +4058 +vtu + + gRunTes +:: +InWhOrd + +runOrd +(cڡ +CATCH_OVERRIDE + {  +m_da +.runOrder; } + +4059 +vtu +  +gSd +(cڡ + gCATCH_OVERRIDE + {  + gm_da +. + ggSd +; } + +4060 +vtu + + gUCour +:: +YesOrNo + +uCour +(cڡ +CATCH_OVERRIDE + {  +m_da +.useColour; } + +4061 +vtu + +bo + +shouldDebugBak +(cڡ + gCATCH_OVERRIDE + {  + gm_da +. + gshouldDebugBak +; } + +4062 +vtu +  +abtA +(cڡ + gCATCH_OVERRIDE + {  + gm_da +. + gabtA +; } + +4063 +vtu + +bo + +showInvisibs +(cڡ + gCATCH_OVERRIDE + {  + gm_da +. + gshowInvisibs +; } + +4065 + give +: + +4067 +ISm + cڡ* +ݒSm +() { + +4068 if +m_da +. +ouutFame +. +emy +() ) + +4069  +w + +CoutSm +(); + +4070 if + gm_da +. + gouutFame +[0] == '%' ) { + +4071 if +m_da +. +ouutFame + == "%debug" ) + +4072  +w + +DebugOutSm +(); + +4074 +throw + + gd +:: +doma_r +"Uecognid sm: " + +m_da +. +ouutFame + ); + +4077  +w + +FeSm + +m_da +. +ouutFame + ); + +4079 +CfigDa + + gm_da +; + +4081 +CATCH_AUTO_PTR + +ISm + cڡ ) + gm_am +; + +4082 +TeSc + + gm_Sc +; + +4088  + #TWOBLUECUBES_CATCH_CLARA_H_INCLUDED + + + ) + +4091 #ifde +CLARA_CONFIG_CONSOLE_WIDTH + + +4092  + #CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH + +CLARA_CONFIG_CONSOLE_WIDTH + + + ) + +4093 #unde +CLARA_CONFIG_CONSOLE_WIDTH + + +4095  + #CLARA_CONFIG_CONSOLE_WIDTH + +CATCH_CONFIG_CONSOLE_WIDTH + + + ) + +4098  + #STITCH_CLARA_OPEN_NAMESPACE + +mea + +Cch + { + + ) + +4104 #i! +defed +( +TWOBLUECUBES_CLARA_H_INCLUDED +|| defed( +STITCH_CLARA_OPEN_NAMESPACE +) + +4106 #ide +STITCH_CLARA_OPEN_NAMESPACE + + +4107  + #TWOBLUECUBES_CLARA_H_INCLUDED + + + ) + +4108  + #STITCH_CLARA_OPEN_NAMESPACE + + + ) + +4109  + #STITCH_CLARA_CLOSE_NAMESPACE + + + ) + +4111  + #STITCH_CLARA_CLOSE_NAMESPACE + } + + ) + +4114  + #STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE + +STITCH_CLARA_OPEN_NAMESPACE + + + ) + +4119 #i! +defed +( +TBC_TEXT_FORMAT_H_INCLUDED +|| defed( +STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE +) + +4120 #ide +STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE + + +4121  + #TBC_TEXT_FORMAT_H_INCLUDED + + + ) + +4124  + ~ + +4125  + ~ + +4126  + ~ + +4127  + ~ + +4128  + ~ + +4131 #ifde +STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE + + +4132 +mea + + gSTITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE + { + +4135 +mea + + gTbc + { + +4137 #ifde +TBC_TEXT_FORMAT_CONSOLE_WIDTH + + +4138 cڡ  + gcseWidth + = +TBC_TEXT_FORMAT_CONSOLE_WIDTH +; + +4140 cڡ  + gcseWidth + = 80; + +4143  + sTextAribus + { + +4144 +TextAribus +() + +4145 : +lIndt + +d +:: +rg +:: +os + ), + +4146 +dt +( 0 ), + +4147 +width + +cseWidth +-1 ), + +4148 +bCh +( '\t' ) + +4151 + gTextAribus +& +tInlIndt + +d +:: +size_t + +_vue + ) { +lIndt + = _vue;  * + gthis +; } + +4152 + gTextAribus +& +tIndt + +d +:: +size_t + +_vue + ) { +dt + = _vue;  * + gthis +; } + +4153 + gTextAribus +& +tWidth + +d +:: +size_t + +_vue + ) { +width + = _vue;  * + gthis +; } + +4154 + gTextAribus +& +tTabCh + +_vue + ) { + gbCh + = _vue;  * + gthis +; } + +4156 + gd +:: +size_t + +lIndt +; + +4157 + gd +:: +size_t + +dt +; + +4158 + gd +:: +size_t + +width +; + +4159  + gbCh +; + +4162 as + cText + { + +4163 + gpublic +: + +4164 +Text + +d +:: +rg + cڡ& +_r +, +TextAribus + cڡ& +_ + = TextAttributes() ) + +4165 : + + +_ + ) + +4167 +d +:: +rg + +wabChs + = " [({.,/|\\-"; + +4168 + gd +:: +size_t + +dt + = +_ +. +lIndt + ! +d +:: +rg +:: +os + + +4169 ? +_ +. +lIndt + + +4170 : +_ +. +dt +; + +4171 + gd +:: +rg + +mad + = +_r +; + +4173  ! + gmad +. +emy +() ) { + +4174 if + gles +. +size +() >= 1000 ) { + +4175 +les +. +push_back +( "... messageruncated dueoxcessive size" ); + +4178 + gd +:: +size_t + +bPos + = +d +:: +rg +:: +os +; + +4179 + gd +:: +size_t + +width + = ( +d +:: +m +) +mad +. +size +(), + g_ +. + gwidth + - + gdt + ); + +4180 + gd +:: +size_t + +pos + = +mad +. +fd_f_of +( '\n' ); + +4181 if + gpos + < +width + ) { + +4182 +width + = +pos +; + +4184 + gpos + = +mad +. +fd_ϡ_of + +_ +. +bCh +, +width + ); + +4185 if + gpos + ! +d +:: +rg +:: +os + ) { + +4186 +bPos + = +pos +; + +4187 if + gmad +[ +width +] == '\n' ) + +4188 +width +--; + +4189 + gmad + = +mad +. +subr +0, +bPos + ) +emainder.substr(abPos+1 ); + +4192 if + gwidth + = +mad +. +size +() ) { + +4193 +liLe + +dt +, +mad +, +width + ); + +4195 if + gmad +[ +width +] == '\n' ) { + +4196 +liLe + +dt +, +mad +, +width + ); + +4197 if + gwidth + <1 || +mad +. +size +() != 1 ) + +4198 +mad + =emad. +subr +( 1 ); + +4199 + gdt + = +_ +. +dt +; + +4202 + gpos + = +mad +. +fd_ϡ_of + +wabChs +, +width + ); + +4203 if + gpos + ! +d +:: +rg +:: +os + && +pos + > 0 ) { + +4204 +liLe + +dt +, +mad +, +pos + ); + +4205 if + gmad +[0] == ' ' ) + +4206 +mad + =emad. +subr +( 1 ); + +4209 +liLe + +dt +, +mad +, +width +-1 ); + +4210 + gles +. +back +() += "-"; + +4212 if + gles +. +size +() == 1 ) + +4213 +dt + = +_ +.indent; + +4214 if + gbPos + ! +d +:: +rg +:: +os + ) + +4215 +dt + + +bPos +; + +4220  +liLe + +d +:: +size_t + +_dt +, std:: +rg +& +_mad +, std::size_ +_pos + ) { + +4221 +les +. +push_back + +d +:: +rg + +_dt +, ' ' ) + +_mad +. +subr +0, +_pos + ) ); + +4222 + g_mad + = +_mad +. +subr + +_pos + ); + +4225  + gd +:: + tve +< + td +:: + trg +>:: + tcڡ_ + const_iterator; + +4227 +cڡ_ + +beg +(cڡ {  + gles +.begin(); } + +4228 +cڡ_ + +d +(cڡ {  + gles +.end(); } + +4229 + gd +:: +rg + cڡ& +ϡ +(cڡ {  +les +. +back +(); } + +4230 + gd +:: +size_t + +size +(cڡ {  +les +.size(); } + +4231 + gd +:: +rg + cڡ& +ݔ +[] +d +:: +size_t + +_dex + ) cڡ {  +les +[_index]; } + +4232 + gd +:: +rg + +toSg +() const { + +4233 +d +:: +orgam + +oss +; + +4234 + goss + << * + gthis +; + +4235  + goss +. +r +(); + +4238 +nd + + gd +:: +oam +& +ݔ + << ( +d +::oam& +_am +, +Text + cڡ& + g_xt + ) { + +4239  + gText +:: +cڡ_ + + + = +_xt +. +beg +(), + gEnd + = _xt. +d +(); + +4240 + g + ! +End +; ++it ) { + +4241 if + g + ! +_xt +. +beg +() ) + +4242 +_am + << "\n"; + +4243 + g_am + << * + g +; + +4245  + g_am +; + +4248 + give +: + +4249 +d +:: +rg + +r +; + +4250 +TextAribus + + g +; + +4251 + gd +:: +ve +< +d +:: +rg +> +les +; + +4256 #ifde +STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE + + +4265 #unde +STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE + + +4269 #ide +TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED + + +4270  + #TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED + + + ) + +4292 #ifde +__g__ + + +4294 #i + $__has_u +( +cxx_nuαr +) + +4295  + #CLARA_INTERNAL_CONFIG_CPP11_NULLPTR + + + ) + +4298 #i + $__has_u +( +cxx_nx +) + +4299  + #CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT + + + ) + +4306 #ifde +__GNUC__ + + +4308 #i +__GNUC__ + =4 && +__GNUC_MINOR__ + >6 && + $defed +( +__GXX_EXPERIMENTAL_CXX0X__ +) + +4309  + #CLARA_INTERNAL_CONFIG_CPP11_NULLPTR + + + ) + +4319 #ifde +_MSC_VER + + +4321 #i( +_MSC_VER + >= 1600) + +4322  + #CLARA_INTERNAL_CONFIG_CPP11_NULLPTR + + + ) + +4323  + #CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR + + + ) + +4326 #i( +_MSC_VER + >= 1900 ) + +4327  + #CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT + + + ) + +4328  + #CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS + + + ) + +4337 #i + `defed +( +__lulus +) && __cplusplus >= 201103L + +4339  + #CLARA_CPP11_OR_GREATER + + + ) + +4341 #i! + $defed +( +CLARA_INTERNAL_CONFIG_CPP11_NULLPTR +) + +4342  + #CLARA_INTERNAL_CONFIG_CPP11_NULLPTR + + + ) + +4345 #ide +CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT + + +4346  + #CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT + + + ) + +4349 #ide +CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS + + +4350  + #CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS + + + ) + +4353 #i! + $defed +( +CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE +) + +4354  + #CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE + + + ) + +4356 #i! + $defed +( +CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR +) + +4357  + #CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR + + + ) + +4363 #i + `defed +( +CLARA_INTERNAL_CONFIG_CPP11_NULLPTR +&& !defed( +CLARA_CONFIG_CPP11_NO_NULLPTR +&& !defed( +CLARA_CONFIG_CPP11_NULLPTR +&& ! + $defed +( +CLARA_CONFIG_NO_CPP11 +) + +4364  + #CLARA_CONFIG_CPP11_NULLPTR + + + ) + +4366 #i + `defed +( +CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT +&& !defed( +CLARA_CONFIG_CPP11_NO_NOEXCEPT +&& !defed( +CLARA_CONFIG_CPP11_NOEXCEPT +&& ! + $defed +( +CLARA_CONFIG_NO_CPP11 +) + +4367  + #CLARA_CONFIG_CPP11_NOEXCEPT + + + ) + +4369 #i + `defed +( +CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS +&& !defed( +CLARA_CONFIG_CPP11_NO_GENERATED_METHODS +&& !defed( +CLARA_CONFIG_CPP11_GENERATED_METHODS +&& ! + $defed +( +CLARA_CONFIG_NO_CPP11 +) + +4370  + #CLARA_CONFIG_CPP11_GENERATED_METHODS + + + ) + +4372 #i + `defed +( +CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE +&& !defed( +CLARA_CONFIG_NO_OVERRIDE +&& !defed( +CLARA_CONFIG_CPP11_OVERRIDE +&& ! + $defed +( +CLARA_CONFIG_NO_CPP11 +) + +4373  + #CLARA_CONFIG_CPP11_OVERRIDE + + + ) + +4375 #i + `defed +( +CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR +&& !defed( +CLARA_CONFIG_NO_UNIQUE_PTR +&& !defed( +CLARA_CONFIG_CPP11_UNIQUE_PTR +&& ! + $defed +( +CLARA_CONFIG_NO_CPP11 +) + +4376  + #CLARA_CONFIG_CPP11_UNIQUE_PTR + + + ) + +4380 #i + `defed +( +CLARA_CONFIG_CPP11_NOEXCEPT +&& ! + $defed +( +CLARA_NOEXCEPT +) + +4381  + #CLARA_NOEXCEPT + +nx + + + ) + +4382  + #CLARA_NOEXCEPT_IS +( +x + + $nx +( +x +) + + ) + +4384  + #CLARA_NOEXCEPT + + $throw +() + + ) + +4385  + #CLARA_NOEXCEPT_IS +( +x +) + + ) + +4389 #ifde +CLARA_CONFIG_CPP11_NULLPTR + + +4390  + #CLARA_NULL + +nuαr + + + ) + +4392  + #CLARA_NULL + +NULL + + + ) + +4396 #ifde +CLARA_CONFIG_CPP11_OVERRIDE + + +4397  + #CLARA_OVERRIDE + +ovride + + + ) + +4399  + #CLARA_OVERRIDE + + + ) + +4403 #ifde +CLARA_CONFIG_CPP11_UNIQUE_PTR + + +4404  + #CLARA_AUTO_PTR + +T + ) +d +:: +unique_r + + + ) + +4406  + #CLARA_AUTO_PTR + +T + ) +d +:: +auto_r + + + ) + +4414  + ~ + +4415  + ~ + +4416  + ~ + +4418 #i + `defed +( +WIN32 +|| defed( +__WIN32__ +|| defed( +_WIN32 +|| + $defed +( +_MSC_VER +) + +4419  + #CLARA_PLATFORM_WINDOWS + + + ) + +4423 #ifde +STITCH_CLARA_OPEN_NAMESPACE + + +4424 +STITCH_CLARA_OPEN_NAMESPACE + + +4427 +mea + +CϿ + { + +4429  + sUosiڮTag + {}; + +4431 +UosiڮTag + +_ +; + +4433 #ifde +CLARA_CONFIG_MAIN + + +4434 +UosiڮTag + +_ +; + +4437 +mea + +Da + { + +4439 #ifde +CLARA_CONSOLE_WIDTH + + +4440 cڡ  +cseWidth + = +CLARA_CONFIG_CONSOLE_WIDTH +; + +4442 cڡ  +cseWidth + = 80; + +4445 +usg + +mea + +Tbc +; + +4447 +le + +bo + + `tsWh + +d +:: +rg + cڡ& +r +, std::rg cڡ& +efix + ) { + +4448  +r +. + `size +(> +efix +.size(&& s. + `subr +( 0,refix.size() ) ==refix; + +4451 +me +< +tyme + +T +>  + sRemoveCڡRef +{ T + tty +; }; + +4452 +me +< +tyme + +T +>  +RemoveCڡRef +{ T + tty +; }; + +4453 +me +< +tyme + +T +>  +RemoveCڡRef +{ T + tty +; }; + +4454 +me +< +tyme + +T +>  +RemoveCڡRef +{ T + tty +; }; + +4456 +me +< +tyme + +T +>  + sIsBo + { cڡ +bo + +vue + = +l +; }; + +4457 +me +<>  +IsBo +< +bo +> { cڡ bo +vue + = +ue +; }; + +4459 +me +< +tyme + +T +> + +4460  + `cvtIo + +d +:: +rg + cڡ& +_sour +, +T +& +_de + ) { + +4461 +d +:: +rgam + +ss +; + +4462 +ss + << +_sour +; + +4463 +ss + >> +_de +; + +4464 if +ss +. + ` +() ) + +4465 +throw + +d +:: + `ruime_r +"Ubˁcv" + +_sour + + "o destinationype" ); + +4467 +le +  + `cvtIo + +d +:: +rg + cڡ& +_sour +, std::rg& +_de + ) { + +4468 +_de + = +_sour +; + +4470  + `toLowCh +( +c +) { + +4471  +ic_ +<> +d +:: + `tow + +c + ) ); + +4473 +le +  + `cvtIo + +d +:: +rg + cڡ& +_sour +, +bo +& +_de + ) { + +4474 +d +:: +rg + +sourLC + = +_sour +; + +4475 +d +:: + `sfm + +sourLC +. + `beg +(), sourLC. + `d +(), sourLC.beg(), +toLowCh + ); + +4476 if +sourLC + == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" ) + +4477 +_de + = +ue +; + +4478 if +sourLC + == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" ) + +4479 +_de + = +l +; + +4481 +throw + +d +:: + `ruime_r +"Exed boޗvubudidلecogni:\ '" + +_sour + + "'" ); + +4484 +me +< +tyme + +CfigT +> + +4485  + sIArgFuni + { + +4486 +vtu + ~ + `IArgFuni +() {} + +4487 #ifde +CLARA_CONFIG_CPP11_GENERATED_METHODS + + +4488 + `IArgFuni +() = ; + +4489 + `IArgFuni + +IArgFuni + const& ) = ; + +4491 +vtu +  + `t + +CfigT +& +cfig +, +d +:: +rg + cڡ& +vue + ) const = 0; + +4492 +vtu + +bo + + `kesArg +() const = 0; + +4493 +vtu + +IArgFuni +* + `e +() const = 0; + +4496 +me +< +tyme + +CfigT +> + +4497 as + cBoundArgFuni + { + +4498 +public +: + +4499 + `BoundArgFuni +(: + `funiObj + +CLARA_NULL + ) {} + +4500 + `BoundArgFuni + +IArgFuni +< +CfigT +>* +_funiObj + ) : + `funiObj +( _functionObj ) {} + +4501 + `BoundArgFuni + +BoundArgFuni + cڡ& +h + ) : + `funiObj +h. +funiObj + ? oth.funiObj-> + `e +(: +CLARA_NULL + ) {} + +4502 +BoundArgFuni +& +ݔ + = ( BoundArgFuni cڡ& +h + ) { + +4503 +IArgFuni +< +CfigT +>* +wFuniObj + = +h +. +funiObj + ? oth.funiObj-> + `e +(: +CLARA_NULL +; + +4504 +de + +funiObj +; + +4505 +funiObj + = +wFuniObj +; + +4506  * +this +; + +4508 ~ + `BoundArgFuni +({ +de + +funiObj +; } + +4510  + `t + +CfigT +& +cfig +, +d +:: +rg + cڡ& +vue + ) const { + +4511 +funiObj +-> + `t + +cfig +, +vue + ); + +4513 +bo + + `kesArg +(cڡ {  +funiObj +->takesArg(); } + +4515 +bo + + `isS +() const { + +4516  +funiObj + ! +CLARA_NULL +; + +4518 +ive +: + +4519 +IArgFuni +< +CfigT +>* +funiObj +; + +4522 +me +< +tyme + +C +> + +4523  +NuBd + : +IArgFuni +< +C +>{ + +4524 +vtu +  + `t + +C +&, +d +:: +rg + const& ) const {} + +4525 +vtu + +bo + + `kesArg +(cڡ {  +ue +; } + +4526 +vtu + +IArgFuni +< +C +>* + `e +(cڡ {  +w + + `NuBd +* +this + ); } + +4529 +me +< +tyme + +C +,ym +M +> + +4530  +BoundDaMemb + : +IArgFuni +< +C +>{ + +4531 + `BoundDaMemb + +M + +C +::* +_memb + ) : + `memb +( _member ) {} + +4532 +vtu +  + `t + +C +& +p +, +d +:: +rg + cڡ& +rgVue + ) const { + +4533 + `cvtIo + +rgVue +, +p +.* +memb + ); + +4535 +vtu + +bo + + `kesArg +(cڡ {  ! +IsBo +< +M +>:: +vue +; } + +4536 +vtu + +IArgFuni +< +C +>* + `e +(cڡ {  +w + + `BoundDaMemb +* +this + ); } + +4537 +M + +C +::* +memb +; + +4539 +me +< +tyme + +C +,ym +M +> + +4540  +BoundUryMhod + : +IArgFuni +< +C +>{ + +4541 + `BoundUryMhod +( +C +::* +_memb +) +M + ) ) : + `memb +( _member ) {} + +4542 +vtu +  + `t + +C +& +p +, +d +:: +rg + cڡ& +rgVue + ) const { + +4543 +tyme + +RemoveCڡRef +< +M +>:: +ty + +vue +; + +4544 + `cvtIo + +rgVue +, +vue + ); + +4545 ( +p +.* +memb +) +vue + ); + +4547 +vtu + +bo + + `kesArg +(cڡ {  ! +IsBo +< +M +>:: +vue +; } + +4548 +vtu + +IArgFuni +< +C +>* + `e +(cڡ {  +w + + `BoundUryMhod +* +this + ); } + +4549 ( +C +::* +memb +) +M + ); + +4551 +me +< +tyme + +C +> + +4552  +BoundNuάyMhod + : +IArgFuni +< +C +>{ + +4553 + `BoundNuάyMhod +( +C +::* +_memb +)(: + `memb +( _member ) {} + +4554 +vtu +  + `t + +C +& +p +, +d +:: +rg + cڡ& +rgVue + ) const { + +4555 +bo + +vue +; + +4556 + `cvtIo + +rgVue +, +vue + ); + +4557 if +vue + ) + +4558 ( +p +.* +memb +)(); + +4560 +vtu + +bo + + `kesArg +(cڡ {  +l +; } + +4561 +vtu + +IArgFuni +< +C +>* + `e +(cڡ {  +w + + `BoundNuάyMhod +* +this + ); } + +4562 ( +C +::* +memb +)(); + +4565 +me +< +tyme + +C +> + +4566  +BoundUryFuni + : +IArgFuni +< +C +>{ + +4567 + `BoundUryFuni +(* +_funi +) +C +& ) ) : + `funi +( _function ) {} + +4568 +vtu +  + `t + +C +& +obj +, +d +:: +rg + cڡ& +rgVue + ) const { + +4569 +bo + +vue +; + +4570 + `cvtIo + +rgVue +, +vue + ); + +4571 if +vue + ) + +4572 + `funi + +obj + ); + +4574 +vtu + +bo + + `kesArg +(cڡ {  +l +; } + +4575 +vtu + +IArgFuni +< +C +>* + `e +(cڡ {  +w + + `BoundUryFuni +* +this + ); } + +4576 (* +funi +) +C +& ); + +4579 +me +< +tyme + +C +,ym +T +> + +4580  +BoundByFuni + : +IArgFuni +< +C +>{ + +4581 + `BoundByFuni +(* +_funi +) +C +&, +T + ) ) : + `funi +( _function ) {} + +4582 +vtu +  + `t + +C +& +obj +, +d +:: +rg + cڡ& +rgVue + ) const { + +4583 +tyme + +RemoveCڡRef +< +T +>:: +ty + +vue +; + +4584 + `cvtIo + +rgVue +, +vue + ); + +4585 + `funi + +obj +, +vue + ); + +4587 +vtu + +bo + + `kesArg +(cڡ {  ! +IsBo +< +T +>:: +vue +; } + +4588 +vtu + +IArgFuni +< +C +>* + `e +(cڡ {  +w + + `BoundByFuni +* +this + ); } + +4589 (* +funi +) +C +&, +T + ); + +4594 +le + +d +:: +ve + + `gsToVe + +gc +, cڡ* cڡ* cڡ +gv + ) { + +4595 +d +:: +ve + + `gs + +ic_ + +gc + ) ); + +4596  +d +:: +size_t + +i + = 0; i < +ic_ + +gc + ); ++i ) + +4597 +gs +[ +i +] = +gv +[i]; + +4599  +gs +; + +4602 as + cPr + { + +4603 + eMode + { +Ne +, +MaybeShtO +, +SshO +, +ShtO +, +LgO +, +Posiڮ + }; + +4604 +Mode + +mode +; + +4605 +d +:: +size_t + +om +; + +4606 +bo + +Ques +; + +4607 +public +: + +4609  + sTok + { + +4610 + eTy + { +Posiڮ +, +ShtO +, +LgO + }; + +4611 + `Tok + +Ty + +_ty +, +d +:: +rg + cڡ& +_da + ) : + `ty +_ty ), + `da +( _data ) {} + +4612 +Ty + +ty +; + +4613 +d +:: +rg + +da +; + +4616 + `Pr +(: + `mode + +Ne + ), + `om +0 ), + `Ques + +l + ){} + +4618  + `rIoToks + +d +:: +ve + cڡ& +gs +, std::ve< +Tok +>& +toks + ) { + +4619 cڡ +d +:: +rg + +doubDash + = "--"; + +4620  +d +:: +size_t + +i + = 1; i < +gs +. + `size +(&&rgs[i] ! +doubDash +; ++i ) + +4621 + `rIoToks + +gs +[ +i +], +toks +); + +4624  + `rIoToks + +d +:: +rg + cڡ& +g +, std:: +ve +< +Tok +>& +toks + ) { + +4625  +d +:: +size_t + +i + = 0; i < +g +. + `size +(); ++i ) { + +4626  +c + = +g +[ +i +]; + +4627 if +c + == '"' ) + +4628 +Ques + = !inQuotes; + +4629 +mode + = + `hdMode + +i +, +c +, +g +, +toks + ); + +4631 +mode + = + `hdMode + +g +. + `size +(), '\0',rg, +toks + ); + +4633 +Mode + + `hdMode + +d +:: +size_t + +i +,  +c +, std:: +rg + cڡ& +g +, std:: +ve +< +Tok +>& +toks + ) { + +4634  +mode + ) { + +4635  +Ne +:  + `hdNe + +i +, +c + ); + +4636  +MaybeShtO +:  + `hdMaybeShtO + +i +, +c + ); + +4637  +ShtO +: + +4638  +LgO +: + +4639  +SshO +:  + `hdO + +i +, +c +, +g +, +toks + ); + +4640  +Posiڮ +:  + `hdPosiڮ + +i +, +c +, +g +, +toks + ); + +4641 : +throw + +d +:: + `logic_r +( "Unknown mode" ); + +4645 +Mode + + `hdNe + +d +:: +size_t + +i +,  +c + ) { + +4646 if +Ques + ) { + +4647 +om + = +i +; + +4648  +Posiڮ +; + +4650  +c + ) { + +4651 '-':  +MaybeShtO +; + +4652 #ifde +CLARA_PLATFORM_WINDOWS + + +4653 '/': +om + = +i ++1;  +SshO +; + +4655 : +om + = +i +;  +Posiڮ +; + +4658 +Mode + + `hdMaybeShtO + +d +:: +size_t + +i +,  +c + ) { + +4659  +c + ) { + +4660 '-': +om + = +i ++1;  +LgO +; + +4661 : +om + = +i +;  +ShtO +; + +4665 +Mode + + `hdO + +d +:: +size_t + +i +,  +c +, std:: +rg + cڡ& +g +, std:: +ve +< +Tok +>& +toks + ) { + +4666 if +d +:: + `rg +":=\0", 3 ). + `fd + +c + ) =d:: +rg +:: +os + ) + +4667  +mode +; + +4669 +d +:: +rg + +tName + = +g +. + `subr + +om +, +i +-from ); + +4670 if +mode + = +ShtO + ) + +4671  +d +:: +size_t + +j + = 0; j < +tName +. + `size +(); ++j ) + +4672 +toks +. + `push_back + + `Tok + +Tok +:: +ShtO +, +tName +. + `subr + +j +, 1 ) ) ); + +4673 if +mode + = +SshO + && +tName +. + `size +() == 1 ) + +4674 +toks +. + `push_back + + `Tok + +Tok +:: +ShtO +, +tName + ) ); + +4676 +toks +. + `push_back + + `Tok + +Tok +:: +LgO +, +tName + ) ); + +4677  +Ne +; + +4679 +Mode + + `hdPosiڮ + +d +:: +size_t + +i +,  +c +, std:: +rg + cڡ& +g +, std:: +ve +< +Tok +>& +toks + ) { + +4680 if +Ques + || +d +:: + `rg +"\0", 1 ). + `fd + +c + ) =d:: +rg +:: +os + ) + +4681  +mode +; + +4683 +d +:: +rg + +da + = +g +. + `subr + +om +, +i +-from ); + +4684 +toks +. + `push_back + + `Tok + +Tok +:: +Posiڮ +, +da + ) ); + +4685  +Ne +; + +4689 +me +< +tyme + +CfigT +> + +4690  + sCommArgPrݔts + { + +4691 + `CommArgPrݔts +() {} + +4692 + `CommArgPrݔts + +Da +:: +BoundArgFuni +< +CfigT +> cڡ& +_boundFld + ) : + `boundFld +( _boundField ) {} + +4694 +Da +:: +BoundArgFuni +< +CfigT +> +boundFld +; + +4695 +d +:: +rg + +desti +; + +4696 +d +:: +rg + +da +; + +4697 +d +:: +rg + +ahd +; + +4699 +bo + + `kesArg +() const { + +4700  ! +ahd +. + `emy +(); + +4702  + `vide +() const { + +4703 if! +boundFld +. + `isS +() ) + +4704 +throw + +d +:: + `logic_r +( "optionot bound" ); + +4707  + sOiArgPrݔts + { + +4708 +d +:: +ve + +shtNames +; + +4709 +d +:: +rg + +lgName +; + +4711 +bo + + `hasShtName + +d +:: +rg + cڡ& +shtName + ) const { + +4712  +d +:: + `fd + +shtNames +. + `beg +(), shtNames. + `d +(), +shtName + ) != shortNames.end(); + +4714 +bo + + `hasLgName + +d +:: +rg + cڡ& +_lgName + ) const { + +4715  +_lgName + = +lgName +; + +4718  + sPosiڮArgPrݔts + { + +4719 + `PosiڮArgPrݔts +(: + `posi +( -1 ) {} + +4720  +posi +; + +4722 +bo + + `isFixedPosiڮ +() const { + +4723  +posi + != -1; + +4727 +me +< +tyme + +CfigT +> + +4728 as + cCommdLe + { + +4730  +Arg + : +CommArgPrݔts +< +CfigT +>, +OiArgPrݔts +, +PosiڮArgPrݔts + { + +4731 + `Arg +() {} + +4732 + `Arg + +Da +:: +BoundArgFuni +< +CfigT +> cڡ& +_boundFld + ) : +CommArgPrݔts +( _boundField ) {} + +4734 +usg + +CommArgPrݔts +< +CfigT +>:: +ahd +; + +4736 +d +:: +rg + + `dbgName +() const { + +4737 if! +lgName +. + `emy +() ) + +4738  "--" + +lgName +; + +4739 if! +shtNames +. + `emy +() ) + +4740  "-" + +shtNames +[0]; + +4743 +d +:: +rg + + `commds +() const { + +4744 +d +:: +orgam + +oss +; + +4745 +bo + +f + = +ue +; + +4746 +d +:: +ve +:: +cڡ_ + + + = +shtNames +. + `beg +(), +End + = shtNames. + `d +(); + +4747 ; + + ! +End +; ++it ) { + +4748 if +f + ) + +4749 +f + = +l +; + +4751 +oss + << ", "; + +4752 +oss + << "-" << * + +; + +4754 if! +lgName +. + `emy +() ) { + +4755 if! +f + ) + +4756 +oss + << ", "; + +4757 +oss + << "--" << +lgName +; + +4759 if! +ahd +. + `emy +() ) + +4760 +oss + << " <" << +ahd + << ">"; + +4761  +oss +. + `r +(); + +4765  + `CLARA_AUTO_PTR + + tArg + ) + tArgAutoP +; + +4767 +nd +  + `addOName + +Arg +& +g +, +d +:: +rg + cڡ& +tName + ) + +4769 if +tName +. + `emy +() ) + +4771 if +Da +:: + `tsWh + +tName +, "--" ) ) { + +4772 if! +g +. +lgName +. + `emy +() ) + +4773 +throw + +d +:: + `logic_r +( "Only oneong opt may be specified. '" + +4774 + +g +. +lgName + + +4776 + +tName + + "'" ); + +4777 +g +. +lgName + = +tName +. + `subr +( 2 ); + +4779 if +Da +:: + `tsWh + +tName +, "-" ) ) + +4780 +g +. +shtNames +. + `push_back + +tName +. + `subr +( 1 ) ); + +4782 +throw + +d +:: + `logic_r +"ti mu beg wh - o--. Oi was: '" + +tName + + "'" ); + +4784 +nd +  + `tPosiڮArg + +Arg +& +g +,  +posi + ) + +4786 +g +. +posi + =osition; + +4789 as + cArgBud + { + +4790 +public +: + +4791 + `ArgBud + +Arg +* +g + ) : + `m_g +(rg ) {} + +4794 +me +< +tyme + +C +,ym +M +> + +4795  + `bd + +M + +C +::* +fld +, +d +:: +rg + cڡ& +ahd + ) { + +4796 +m_g +-> +boundFld + = +w + +Da +:: +BoundDaMemb +< +C +, +M +> +fld + ); + +4797 +m_g +-> +ahd + =laceholder; + +4800 +me +< +tyme + +C +> + +4801  + `bd + +bo + +C +::* +fld + ) { + +4802 +m_g +-> +boundFld + = +w + +Da +:: +BoundDaMemb +< +C +, +bo +> +fld + ); + +4806 +me +< +tyme + +C +,ym +M +> + +4807  + `bd +( +C +::* +uryMhod +) +M + ), +d +:: +rg + cڡ& +ahd + ) { + +4808 +m_g +-> +boundFld + = +w + +Da +:: +BoundUryMhod +< +C +, +M +> +uryMhod + ); + +4809 +m_g +-> +ahd + =laceholder; + +4813 +me +< +tyme + +C +> + +4814  + `bd +( +C +::* +uryMhod +) +bo + ) ) { + +4815 +m_g +-> +boundFld + = +w + +Da +:: +BoundUryMhod +< +C +, +bo +> +uryMhod + ); + +4819 +me +< +tyme + +C +> + +4820  + `bd +( +C +::* +nuάyMhod +)() ) { + +4821 +m_g +-> +boundFld + = +w + +Da +:: +BoundNuάyMhod +< +C +> +nuάyMhod + ); + +4825 +me +< +tyme + +C +> + +4826  + `bd +(* +uryFuni +) +C +& ) ) { + +4827 +m_g +-> +boundFld + = +w + +Da +:: +BoundUryFuni +< +C +> +uryFuni + ); + +4831 +me +< +tyme + +C +,ym +T +> + +4832  + `bd +(* +byFuni +) +C +&, +T + ), +d +:: +rg + cڡ& +ahd + ) { + +4833 +m_g +-> +boundFld + = +w + +Da +:: +BoundByFuni +< +C +, +T +> +byFuni + ); + +4834 +m_g +-> +ahd + =laceholder; + +4837 +ArgBud +& + `desibe + +d +:: +rg + cڡ& +desti + ) { + +4838 +m_g +-> +desti + = description; + +4839  * +this +; + +4841 +ArgBud +& + `da + +d +:: +rg + cڡ& +da + ) { + +4842 +m_g +-> +da + = detail; + +4843  * +this +; + +4846 +eed +: + +4847 +Arg +* +m_g +; + +4850 as + cOBud + : +public + +ArgBud + { + +4851 +public +: + +4852 + `OBud + +Arg +* +g + ) : + `ArgBud +(rg ) {} + +4853 + `OBud + +OBud +& +h + ) : + `ArgBud +( other ) {} + +4855 +OBud +& +ݔ +[] +d +:: +rg + cڡ& +tName + ) { + +4856 + `addOName +* +ArgBud +:: +m_g +, +tName + ); + +4857  * +this +; + +4861 +public +: + +4863 + `CommdLe +() + +4864 : + `m_boundProssName + +w + +Da +:: +NuBd +< +CfigT +>() ), + +4865 + `m_higheScifdArgPosi +( 0 ), + +4866 + `m_throwOnUecognidToks + +l + ) + +4868 + `CommdLe + +CommdLe + cڡ& +h + ) + +4869 : + `m_boundProssName + +h +. +m_boundProssName + ), + +4870 + `m_tis + ( +h +. +m_tis + ), + +4871 + `m_posiڮArgs + +h +. +m_posiڮArgs + ), + +4872 + `m_higheScifdArgPosi + +h +. +m_higheScifdArgPosi + ), + +4873 + `m_throwOnUecognidToks + +h +. +m_throwOnUecognidToks + ) + +4875 if +h +. +m_tgArg +. + `g +() ) + +4876 +m_tgArg +. + `t + +w + + `Arg +* +h +.m_floatingArg ) ); + +4879 +CommdLe +& + `tThrowOnUecognidToks + +bo + +shouldThrow + = +ue + ) { + +4880 +m_throwOnUecognidToks + = +shouldThrow +; + +4881  * +this +; + +4884 +OBud + +ݔ +[] +d +:: +rg + cڡ& +tName + ) { + +4885 +m_tis +. + `push_back + + `Arg +() ); + +4886 + `addOName + +m_tis +. + `back +(), +tName + ); + +4887 +OBud + + `bud +& +m_tis +. + `back +() ); + +4888  +bud +; + +4891 +ArgBud + +ݔ +[] +posi + ) { + +4892 +m_posiڮArgs +. + ` + +d +:: + `make_ + +posi +, + `Arg +() ) ); + +4893 if +posi + > +m_higheScifdArgPosi + ) + +4894 +m_higheScifdArgPosi + = +posi +; + +4895 + `tPosiڮArg + +m_posiڮArgs +[ +posi +],osition ); + +4896 +ArgBud + + `bud +& +m_posiڮArgs +[ +posi +] ); + +4897  +bud +; + +4901 +ArgBud + +ݔ +[] +UosiڮTag + ) { + +4902 if +m_tgArg +. + `g +() ) + +4903 +throw + +d +:: + `logic_r +( "Only one unpositionalrgument can bedded" ); + +4904 +m_tgArg +. + `t + +w + + `Arg +() ); + +4905 +ArgBud + + `bud + +m_tgArg +. + `g +() ); + +4906  +bud +; + +4909 +me +< +tyme + +C +,ym +M +> + +4910  + `bdProssName + +M + +C +::* +fld + ) { + +4911 +m_boundProssName + = +w + +Da +:: +BoundDaMemb +< +C +, +M +> +fld + ); + +4913 +me +< +tyme + +C +,ym +M +> + +4914  + `bdProssName +( +C +::* +_uryMhod +) +M + ) ) { + +4915 +m_boundProssName + = +w + +Da +:: +BoundUryMhod +< +C +, +M +> +_uryMhod + ); + +4918  + `tUge + +d +:: +oam +& +os +, std:: +size_t + +dt + = 0, std::size_ +width + = +Da +:: +cseWidth + ) const { + +4919 +tyme + +d +:: +ve +< +Arg +>:: +cڡ_ + +Beg + = +m_tis +. + `beg +(), +End + = m_tis. + `d +(), + +; + +4920 +d +:: +size_t + +maxWidth + = 0; + +4921  + + = +Beg +; i! +End +; ++it ) + +4922 +maxWidth + = ( +d +:: +max +)maxWidth, + +-> + `commds +(). + `size +() ); + +4924  + + = +Beg +; i! +End +; ++it ) { + +4925 +Da +:: +Text + + `uge + + +-> + `commds +(), Da:: + `TextAribus +() + +4926 . + `tWidth + +maxWidth ++ +dt + ) + +4927 . + `tIndt + +dt + ) ); + +4928 +Da +:: +Text + + `desc + + +-> +desti +, Da:: + `TextAribus +() + +4929 . + `tWidth + +width + - +maxWidth + - 3 ) ); + +4931  +d +:: +size_t + +i + = 0; i < (d:: +max +) +uge +. + `size +(), +desc +.size() ); ++i ) { + +4932 +d +:: +rg + +ugeC + = +i + < +uge +. + `size +() ? usage[i] : ""; + +4933 +os + << +ugeC +; + +4935 if +i + < +desc +. + `size +(&& !desc[i]. + `emy +() ) + +4936 +os + << +d +:: + `rg + +dt + + 2 + +maxWidth + - +ugeC +. + `size +(), ' ' ) + +4937 << +desc +[ +i +]; + +4938 +os + << "\n"; + +4942 +d +:: +rg + + `tUge +() const { + +4943 +d +:: +orgam + +oss +; + +4944 + `tUge + +oss + ); + +4945  +oss +. + `r +(); + +4948  + `gSynsis + +d +:: +oam +& +os + ) const { + +4949   +i + = 1; i < +m_higheScifdArgPosi +; ++i ) { + +4950 if +i + > 1 ) + +4951 +os + << " "; + +4952 +tyme + +d +:: +m +<, +Arg +>:: +cڡ_ + + + = +m_posiڮArgs +. + `fd + +i + ); + +4953 if + + ! +m_posiڮArgs +. + `d +() ) + +4954 +os + << "<" << + +-> +cd +. +ahd + << ">"; + +4955 if +m_tgArg +. + `g +() ) + +4956 +os + << "<" << +m_tgArg +-> +ahd + << ">"; + +4958 +throw + +d +:: + `logic_r +( "non consecutiveositionalrguments witho floatingrgs" ); + +4961 if +m_tgArg +. + `g +() ) { + +4962 if +m_higheScifdArgPosi + > 1 ) + +4963 +os + << " "; + +4964 +os + << "[<" << +m_tgArg +-> +ahd + << "> ...]"; + +4967 +d +:: +rg + + `gSynsis +() const { + +4968 +d +:: +orgam + +oss +; + +4969 + `gSynsis + +oss + ); + +4970  +oss +. + `r +(); + +4973  + `uge + +d +:: +oam +& +os +, std:: +rg + cڡ& +ocName + ) const { + +4974 + `vide +(); + +4975 +os + << "uge:\ " << +ocName + << " "; + +4976 + `gSynsis + +os + ); + +4977 if! +m_tis +. + `emy +() ) { + +4978 +os + << " [options]\n\nwhere optionsre: \n"; + +4979 + `tUge + +os +, 2 ); + +4981 +os + << "\n"; + +4983 +d +:: +rg + + `uge +Сd::rg cڡ& +ocName + ) const { + +4984 +d +:: +orgam + +oss +; + +4985 + `uge + +oss +, +ocName + ); + +4986  +oss +. + `r +(); + +4989 +CfigT + + `r + +d +:: +ve + cڡ& +gs + ) const { + +4990 +CfigT + +cfig +; + +4991 + `rIo + +gs +, +cfig + ); + +4992  +cfig +; + +4995 +d +:: +ve +< +Pr +:: +Tok +> + `rIo +Сd::ve cڡ& +gs +, +CfigT +& +cfig + ) const { + +4996 +d +:: +rg + +ossName + = +gs +. + `emy +(? std:: + `rg +() :rgs[0]; + +4997 +d +:: +size_t + +ϡSsh + = +ossName +. + `fd_ϡ_of +( "/\\" ); + +4998 if +ϡSsh + ! +d +:: +rg +:: +os + ) + +4999 +ossName + =rossName. + `subr + +ϡSsh ++1 ); + +5000 +m_boundProssName +. + `t + +cfig +, +ossName + ); + +5001 +d +:: +ve +< +Pr +:: +Tok +> +toks +; + +5002 +Pr + +rr +; + +5003 +rr +. + `rIoToks + +gs +, +toks + ); + +5004  + `puϋ + +toks +, +cfig + ); + +5007 +d +:: +ve +< +Pr +:: +Tok +> + `puϋ +Сd::ve cڡ& +toks +, +CfigT +& +cfig + ) const { + +5008 + `vide +(); + +5009 +d +:: +ve +< +Pr +:: +Tok +> +unudToks + = + `puϋOis + +toks +, +cfig + ); + +5010 +unudToks + = + `puϋFixedArgs +unudToks, +cfig + ); + +5011 +unudToks + = + `puϋFltgArgs +unudToks, +cfig + ); + +5012  +unudToks +; + +5015 +d +:: +ve +< +Pr +:: +Tok +> + `puϋOis +Сd::ve cڡ& +toks +, +CfigT +& +cfig + ) const { + +5016 +d +:: +ve +< +Pr +:: +Tok +> +unudToks +; + +5017 +d +:: +ve + +rs +; + +5018  +d +:: +size_t + +i + = 0; i < +toks +. + `size +(); ++i ) { + +5019 +Pr +:: +Tok + cڡ& +tok + = +toks +[ +i +]; + +5020 +tyme + +d +:: +ve +< +Arg +>:: +cڡ_ + + + = +m_tis +. + `beg +(), +End + = m_tis. + `d +(); + +5021 ; + + ! +End +; ++it ) { + +5022 +Arg + cڡ& +g + = * + +; + +5024 +y + { + +5025 if +tok +. +ty + = +Pr +:: +Tok +:: +ShtO + && +g +. + `hasShtName +tok. +da + ) ) || + +5026 +tok +. +ty + = +Pr +:: +Tok +:: +LgO + && +g +. + `hasLgName +tok. +da + ) ) ) { + +5027 if +g +. + `kesArg +() ) { + +5028 if +i + = +toks +. + `size +()-1 ||oks[i+1]. +ty + ! +Pr +:: +Tok +:: +Posiڮ + ) + +5029 +rs +. + `push_back +"Exedrgumtti: " + +tok +. +da + ); + +5031 +g +. +boundFld +. + `t + +cfig +, +toks +[++ +i +]. +da + ); + +5034 +g +. +boundFld +. + `t + +cfig +, "true" ); + +5039 + `tch + +d +:: +exi +& +ex + ) { + +5040 +rs +. + `push_back + +d +:: + `rg + +ex +. + `wh +(+ "\n- whrsg: (" + +g +. + `commds +() + ")" ); + +5043 if + + = +End + ) { + +5044 if +tok +. +ty + = +Pr +:: +Tok +:: +Posiڮ + || ! +m_throwOnUecognidToks + ) + +5045 +unudToks +. + `push_back + +tok + ); + +5046 if +rs +. + `emy +(&& +m_throwOnUecognidToks + ) + +5047 +rs +. + `push_back +"uecognid oi: " + +tok +. +da + ); + +5050 if! +rs +. + `emy +() ) { + +5051 +d +:: +orgam + +oss +; + +5052  +d +:: +ve +:: +cڡ_ + + + = +rs +. + `beg +(), +End + =s. + `d +(); + +5053 + + ! +End +; + +5054 ++ + + ) { + +5055 if + + ! +rs +. + `beg +() ) + +5056 +oss + << "\n"; + +5057 +oss + << * + +; + +5059 +throw + +d +:: + `ruime_r + +oss +. + `r +() ); + +5061  +unudToks +; + +5063 +d +:: +ve +< +Pr +:: +Tok +> + `puϋFixedArgs +Сd::ve cڡ& +toks +, +CfigT +& +cfig + ) const { + +5064 +d +:: +ve +< +Pr +:: +Tok +> +unudToks +; + +5065  +posi + = 1; + +5066  +d +:: +size_t + +i + = 0; i < +toks +. + `size +(); ++i ) { + +5067 +Pr +:: +Tok + cڡ& +tok + = +toks +[ +i +]; + +5068 +tyme + +d +:: +m +<, +Arg +>:: +cڡ_ + + + = +m_posiڮArgs +. + `fd + +posi + ); + +5069 if + + ! +m_posiڮArgs +. + `d +() ) + +5070 + +-> +cd +. +boundFld +. + `t + +cfig +, +tok +. +da + ); + +5072 +unudToks +. + `push_back + +tok + ); + +5073 if +tok +. +ty + = +Pr +:: +Tok +:: +Posiڮ + ) + +5074 +posi +++; + +5076  +unudToks +; + +5078 +d +:: +ve +< +Pr +:: +Tok +> + `puϋFltgArgs +Сd::ve cڡ& +toks +, +CfigT +& +cfig + ) const { + +5079 if! +m_tgArg +. + `g +() ) + +5080  +toks +; + +5081 +d +:: +ve +< +Pr +:: +Tok +> +unudToks +; + +5082  +d +:: +size_t + +i + = 0; i < +toks +. + `size +(); ++i ) { + +5083 +Pr +:: +Tok + cڡ& +tok + = +toks +[ +i +]; + +5084 if +tok +. +ty + = +Pr +:: +Tok +:: +Posiڮ + ) + +5085 +m_tgArg +-> +boundFld +. + `t + +cfig +, +tok +. +da + ); + +5087 +unudToks +. + `push_back + +tok + ); + +5089  +unudToks +; + +5092  + `vide +() const + +5094 if +m_tis +. + `emy +(&& +m_posiڮArgs +.emy(&& ! +m_tgArg +. + `g +() ) + +5095 +throw + +d +:: + `logic_r +( "No options orrguments specified" ); + +5097  +tyme + +d +:: +ve +< +Arg +>:: +cڡ_ + + + = +m_tis +. + `beg +(), + +5098 +End + = +m_tis +. + `d +(); + +5099 + + ! +End +; ++it ) + +5100 + +-> + `vide +(); + +5103 +ive +: + +5104 +Da +:: +BoundArgFuni +< +CfigT +> +m_boundProssName +; + +5105 +d +:: +ve +< +Arg +> +m_tis +; + +5106 +d +:: +m +<, +Arg +> +m_posiڮArgs +; + +5107 +ArgAutoP + +m_tgArg +; + +5108  +m_higheScifdArgPosi +; + +5109 +bo + +m_throwOnUecognidToks +; + +5112 + } +} + +5114 + gSTITCH_CLARA_CLOSE_NAMESPACE + + +5115 #unde +STITCH_CLARA_OPEN_NAMESPACE + + +5116 #unde +STITCH_CLARA_CLOSE_NAMESPACE + + +5119 #unde +STITCH_CLARA_OPEN_NAMESPACE + + +5122 #ifde +CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH + + +5123  + #CLARA_CONFIG_CONSOLE_WIDTH + +CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH + + + ) + +5124 #unde +CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH + + +5127  + ~ + +5128  + ~ + +5130 +mea + + gCch + { + +5132 +le +  +abtAF + +CfigDa +& +cfig + ) { + gcfig +. + gabtA + = 1; } + +5133 +le +  +abtAX + +CfigDa +& +cfig +,  +x + ) { + +5134 if + gx + < 1 ) + +5135 +throw + + gd +:: +ruime_r +( "Valuefter -x or --abortAfter must be greaterhan zero" ); + +5136 + gcfig +. + gabtA + = +x +; + +5138 +le +  +addTeOrTags + +CfigDa +& +cfig +, +d +:: +rg + cڡ& +_Sc + ) { cfig. +sOrTags +. +push_back +( _testSpec ); } + +5139 +le +  +addSeiToRun + +CfigDa +& +cfig +, +d +:: +rg + cڡ& +iName + ) { cfig. +isToRun +. +push_back +( sectionName ); } + +5140 +le +  +addR܋rName + +CfigDa +& +cfig +, +d +:: +rg + cڡ& +_p܋rName + ) { cfig. +p܋rNames +. +push_back +( _reporterName ); } + +5142 +le +  +addWng + +CfigDa +& +cfig +, +d +:: +rg + cڡ& +_wng + ) { + +5143 if +_wng + == "NoAssertions" ) + +5144 +cfig +. +wngs + = +ic_ +< +WnAbout +:: +Wh +>cfig.wng| WnAbout:: +NoAsis + ); + +5146 +throw + + gd +:: +ruime_r +"Uecognid wng: '" + +_wng + + '\'' ); + +5148 +le +  +tOrd + +CfigDa +& +cfig +, +d +:: +rg + cڡ& +d + ) { + +5149 if +tsWh +"deed", +d + ) ) + +5150 + gcfig +. + grunOrd + = +RunTes +:: +InDeiOrd +; + +5151 if +tsWh +"xil", +d + ) ) + +5152 + gcfig +. + grunOrd + = +RunTes +:: +InLexicogphilOrd +; + +5153 if +tsWh +"ndom", +d + ) ) + +5154 + gcfig +. + grunOrd + = +RunTes +:: +InRdomOrd +; + +5156 +throw + + gd +:: +ruime_r +"Uecognid ordg: '" + +d + + '\'' ); + +5158 +le +  +tRngSd + +CfigDa +& +cfig +, +d +:: +rg + cڡ& +ed + ) { + +5159 if +ed + == "time" ) { + +5160 +cfig +. +gSd + = +ic_ +<> +d +:: +time +(0) ); + +5163 + gd +:: +rgam + +ss +; + +5164 + gss + << + ged +; + +5165 + gss + >> + gcfig +. + ggSd +; + +5166 if + gss +. + +() ) + +5167 +throw + + gd +:: +ruime_r +( "Argumento --rng-seed should behe word 'time' orumber" ); + +5170 +le +  +tVbosy + +CfigDa +& +cfig +,  +v + ) { + +5172 + gcfig +. + gvbosy + = +ic_ +< +Vbosy +:: +Lev +> +v + ); + +5174 +le +  +tShowDutis + +CfigDa +& +cfig +, +bo + +_showDutis + ) { + +5175 + gcfig +. + gshowDutis + = +_showDutis + + +5176 ? +ShowDutis +:: +Always + + +5177 : +ShowDutis +:: +Nev +; + +5179 +le +  +tUCour + +CfigDa +& +cfig +, +d +:: +rg + cڡ& +vue + ) { + +5180 +d +:: +rg + +mode + = +toLow + +vue + ); + +5182 if + gmode + == "yes" ) + +5183 +cfig +. +uCour + = +UCour +:: +Yes +; + +5184 if + gmode + == "no" ) + +5185 +cfig +. +uCour + = +UCour +:: +No +; + +5186 if + gmode + == "auto" ) + +5187 +cfig +. +uCour + = +UCour +:: +Auto +; + +5189 +throw + + gd +:: +ruime_r +( "colour mode must be one of:uto, yes oro" ); + +5191 +le +  +fCour + +CfigDa +& +cfig + ) { + +5192 + gcfig +. + guCour + = +UCour +:: +Yes +; + +5194 +le +  +ldTeNamesFromFe + +CfigDa +& +cfig +, +d +:: +rg + cڡ& +_fame + ) { + +5195 +d +:: +ifam + +f + +_fame +. +c_r +() ); + +5196 if! + gf +. +is_ݒ +() ) + +5197 +throw + + gd +:: +doma_r +"Ubˁld iufe: " + +_fame + ); + +5199 + gd +:: +rg + +le +; + +5200  + gd +:: +gle + +f +, +le + ) ) { + +5201 + gle + = +im +( +le +); + +5202 if! + gle +. +emy +(&& ! +tsWh + +le +, '#' ) ) { + +5203 if! +tsWh + +le +, '"' ) ) + +5204 + gle + = '"' + +le + + '"'; + +5205 +addTeOrTags + +cfig +, +le + + ',' ); + +5210 +le + + gCϿ +:: +CommdLe +< +CfigDa +> +makeCommdLePr +() { + +5212 +usg + +mea + +CϿ +; + +5213 + gCommdLe +< + gCfigDa +> + gi +; + +5215 + gi +. +bdProssName +& +CfigDa +:: +ossName + ); + +5217 + gi +["-?"]["-h"]["--help"] + +5218 . +desibe +( "display usage information" ) + +5219 . +bd +& +CfigDa +:: +showHp + ); + +5221 + gi +["-l"]["--list-tests"] + +5222 . +desibe +( "listll/matchingest cases" ) + +5223 . +bd +& +CfigDa +:: +liTes + ); + +5225 + gi +["-t"]["--list-tags"] + +5226 . +desibe +( "listll/matchingags" ) + +5227 . +bd +& +CfigDa +:: +liTags + ); + +5229 + gi +["-s"]["--success"] + +5230 . +desibe +( "include successfulests in output" ) + +5231 . +bd +& +CfigDa +:: +showSucssfulTes + ); + +5233 + gi +["-b"]["--break"] + +5234 . +desibe +( "break into debugger on failure" ) + +5235 . +bd +& +CfigDa +:: +shouldDebugBak + ); + +5237 + gi +["-e"]["--nothrow"] + +5238 . +desibe +( "skipxceptionests" ) + +5239 . +bd +& +CfigDa +:: +noThrow + ); + +5241 + gi +["-i"]["--invisibles"] + +5242 . +desibe +( "show invisibles (tabs,ewlines)" ) + +5243 . +bd +& +CfigDa +:: +showInvisibs + ); + +5245 + gi +["-o"]["--out"] + +5246 . +desibe +( "output filename" ) + +5247 . +bd +& +CfigDa +:: +ouutFame +, "filename" ); + +5249 + gi +["-r"]["--reporter"] + +5251 . +desibe +( "reportero use (defaultso console)" ) + +5252 . +bd +& +addR܋rName +, "name" ); + +5254 + gi +["-n"]["--name"] + +5255 . +desibe +( "suiteame" ) + +5256 . +bd +& +CfigDa +:: +me +, "name" ); + +5258 + gi +["-a"]["--abort"] + +5259 . +desibe +( "abortt first failure" ) + +5260 . +bd +& +abtAF + ); + +5262 + gi +["-x"]["--abortx"] + +5263 . +desibe +( "abortfter x failures" ) + +5264 . +bd +& +abtAX +, "no. failures" ); + +5266 + gi +["-w"]["--warn"] + +5267 . +desibe +( "enable warnings" ) + +5268 . +bd +& +addWng +, "warningame" ); + +5277 + gi +[ +_ +] + +5278 . +desibe +( "whichest orestso use" ) + +5279 . +bd +& +addTeOrTags +, "testame,attern orags" ); + +5281 + gi +["-d"]["--durations"] + +5282 . +desibe +( "showest durations" ) + +5283 . +bd +& +tShowDutis +, "yes|no" ); + +5285 + gi +["-f"]["--input-file"] + +5286 . +desibe +( "loadestamesoun from file" ) + +5287 . +bd +& +ldTeNamesFromFe +, "filename" ); + +5289 + gi +["-#"]["--filenames-as-tags"] + +5290 . +desibe +( "addsag forhe filename" ) + +5291 . +bd +& +CfigDa +:: +famesAsTags + ); + +5293 + gi +["-c"]["--section"] + +5294 . +desibe +( "specify sectionoun" ) + +5295 . +bd +& +addSeiToRun +, "sectioname" ); + +5298 + gi +["--list-test-names-only"] + +5299 . +desibe +( "listll/matchingest casesames only" ) + +5300 . +bd +& +CfigDa +:: +liTeNamesOy + ); + +5302 + gi +["--list-extra-info"] + +5303 . +desibe +( "listll/matchingest cases with more info" ) + +5304 . +bd +& +CfigDa +:: +liExaInfo + ); + +5306 + gi +["--list-reporters"] + +5307 . +desibe +( "listlleporters" ) + +5308 . +bd +& +CfigDa +:: +liR܋rs + ); + +5310 + gi +["--order"] + +5311 . +desibe +( "test case order (defaultso decl)" ) + +5312 . +bd +& +tOrd +, "decl|lex|rand" ); + +5314 + gi +["--rng-seed"] + +5315 . +desibe +( "set specific seed forandomumbers" ) + +5316 . +bd +& +tRngSd +, "'time'|number" ); + +5318 + gi +["--force-colour"] + +5319 . +desibe +( "force colourised output (deprecated)" ) + +5320 . +bd +& +fCour + ); + +5322 + gi +["--use-colour"] + +5323 . +desibe +( "should output be colourised" ) + +5324 . +bd +& +tUCour +, "yes|no" ); + +5326  + gi +; + +5332  + #TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED + + + ) + +5335  + #TWOBLUECUBES_CATCH_TEXT_H_INCLUDED + + + ) + +5337  + #TBC_TEXT_FORMAT_CONSOLE_WIDTH + +CATCH_CONFIG_CONSOLE_WIDTH + + + ) + +5339  + #CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE + +Cch + + + ) + +5342 #ide +CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE + + +5343 #ifde +TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED + + +5344 #ide +TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED + + +5345  + #TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED + + + ) + +5348  + #TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED + + + ) + +5351 #ide +TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED + + +5352  + ~ + +5353  + ~ + +5354  + ~ + +5357 #ifde +CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE + + +5358 +mea + + gCLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE + { + +5361 +mea + + gTbc + { + +5363 #ifde +TBC_TEXT_FORMAT_CONSOLE_WIDTH + + +5364 cڡ  + gcseWidth + = +TBC_TEXT_FORMAT_CONSOLE_WIDTH +; + +5366 cڡ  + gcseWidth + = 80; + +5369  + sTextAribus + { + +5370 +TextAribus +() + +5371 : +lIndt + +d +:: +rg +:: +os + ), + +5372 +dt +( 0 ), + +5373 +width + +cseWidth +-1 ) + +5376 + gTextAribus +& +tInlIndt + +d +:: +size_t + +_vue + ) { +lIndt + = _vue;  * + gthis +; } + +5377 + gTextAribus +& +tIndt + +d +:: +size_t + +_vue + ) { +dt + = _vue;  * + gthis +; } + +5378 + gTextAribus +& +tWidth + +d +:: +size_t + +_vue + ) { +width + = _vue;  * + gthis +; } + +5380 + gd +:: +size_t + +lIndt +; + +5381 + gd +:: +size_t + +dt +; + +5382 + gd +:: +size_t + +width +; + +5385 as + cText + { + +5386 + gpublic +: + +5387 +Text + +d +:: +rg + cڡ& +_r +, +TextAribus + cڡ& +_ + = TextAttributes() ) + +5388 : + + +_ + ) + +5390 cڡ +d +:: +rg + +wabBefeChs + = "[({<\t"; + +5391 cڡ + gd +:: +rg + +wabAChs + = "])}>-,./|\\"; + +5392 cڡ + gd +:: +rg + +wabIndOfChs + = " \n\r"; + +5393 + gd +:: +rg + +dt + = +_ +. +lIndt + ! +d +::rg:: +os + + +5394 ? +d +:: +rg + +_ +. +lIndt +, ' ' ) + +5395 : +d +:: +rg + +_ +. +dt +, ' ' ); + +5397  + gd +:: + trg +:: + tcڡ_ + + t +; + +5398 + + + g + = +_r +. +beg +(); + +5399 cڡ + + + grEnd + = +_r +. +d +(); + +5401  + g + ! +rEnd + ) { + +5403 if +les +. +size +() >= 1000 ) { + +5404 +les +. +push_back +( "... messageruncated dueoxcessive size" ); + +5408 + gd +:: +rg + +suffix +; + +5409 + gd +:: +size_t + +width + = ( +d +:: +m +) +ic_ + +rEnd +- + + ), + g_ +. + gwidth +- + gic_ +< + gsize_t +> + gdt +. +size +() ) ); + +5410 + + + gEnd + = + ++ +width +; + +5411 + + + gNext + = +_r +. +d +(); + +5413 + + + gNewLe + = +d +:: +fd + + +, +End +, '\n' ); + +5414 if + gNewLe + ! +End + ) + +5415 +End + = +NewLe +; + +5417 if + gEnd + ! +rEnd + ) { + +5418 +bo + +foundWpPot + = +l +; + +5419 + + + gfdIt + = +End +; + +5421 if + gwabAChs +. +fd +* +fdIt + ) ! +d +:: +rg +:: +os + && fdI! +End + ) { + +5422 +End + = +fdIt ++1; + +5423 + gNext + = +fdIt ++1; + +5424 + gfoundWpPot + = +ue +; + +5426 if + gfdIt + > + g + && + gwabBefeChs +. +fd +* +fdIt + ) ! +d +:: +rg +:: +os + ) { + +5427 +End + = +fdIt +; + +5428 + gNext + = +fdIt +; + +5429 + gfoundWpPot + = +ue +; + +5431 if + gwabIndOfChs +. +fd +* +fdIt + ) ! +d +:: +rg +:: +os + ) { + +5432 +Next + = +fdIt ++1; + +5433 + gEnd + = +fdIt +; + +5434 + gfoundWpPot + = +ue +; + +5436 if + gfdIt + = + + ) + +5439 -- + gfdIt +; + +5441  ! + gfoundWpPot + ); + +5443 if! + gfoundWpPot + ) { + +5445 -- + gEnd +; + +5446 + gNext + = +End +; + +5447 + gsuffix + = "-"; + +5450  + gEnd + > + g + && + gwabIndOfChs +. +fd +*( +End +-1! +d +:: +rg +:: +os + ) + +5451 -- +End +; + +5454 + gles +. +push_back + +dt + + +d +:: +rg + + +, +End + ) + +suffix + ); + +5456 if + gdt +. +size +(! +_ +. +dt + ) + +5457 +dt + = +d +:: +rg + +_ +.indent, ' ' ); + +5458 + g + = +Next +; + +5462  + gd +:: + tve +< + td +:: + trg +>:: + tcڡ_ + const_iterator; + +5464 +cڡ_ + +beg +(cڡ {  + gles +.begin(); } + +5465 +cڡ_ + +d +(cڡ {  + gles +.end(); } + +5466 + gd +:: +rg + cڡ& +ϡ +(cڡ {  +les +. +back +(); } + +5467 + gd +:: +size_t + +size +(cڡ {  +les +.size(); } + +5468 + gd +:: +rg + cڡ& +ݔ +[] +d +:: +size_t + +_dex + ) cڡ {  +les +[_index]; } + +5469 + gd +:: +rg + +toSg +() const { + +5470 +d +:: +orgam + +oss +; + +5471 + goss + << * + gthis +; + +5472  + goss +. +r +(); + +5475 +le + +nd + + gd +:: +oam +& +ݔ + << ( +d +::oam& +_am +, +Text + cڡ& + g_xt + ) { + +5476  + gText +:: +cڡ_ + + + = +_xt +. +beg +(), + gEnd + = _xt. +d +(); + +5477 + g + ! +End +; ++it ) { + +5478 if + g + ! +_xt +. +beg +() ) + +5479 +_am + << "\n"; + +5480 + g_am + << * + g +; + +5482  + g_am +; + +5485 + give +: + +5486 +d +:: +rg + +r +; + +5487 +TextAribus + + g +; + +5488 + gd +:: +ve +< +d +:: +rg +> +les +; + +5493 #ifde +CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE + + +5498 #unde +CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE + + +5500 +mea + + gCch + { + +5501 +usg + + gTbc +:: +Text +; + +5502 +usg + + gTbc +:: +TextAribus +; + +5506  + #TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED + + + ) + +5508 +mea + + gCch + { + +5510  + sCour + { + +5511 + eCode + { + +5512 + gNe + = 0, + +5514 + gWhe +, + +5515 + gRed +, + +5516 + gG +, + +5517 + gBlue +, + +5518 + gCy +, + +5519 + gYlow +, + +5520 + gGy +, + +5522 + gBright + = 0x10, + +5524 + gBrightRed + = +Bright + | +Red +, + +5525 + gBrightG + = +Bright + | +G +, + +5526 + gLightGy + = +Bright + | +Gy +, + +5527 + gBrightWhe + = +Bright + | +Whe +, + +5530 + gFeName + = +LightGy +, + +5531 + gWng + = +Ylow +, + +5532 + gResuE + = +BrightRed +, + +5533 + gResuSucss + = +BrightG +, + +5534 + gResuExedFau + = +Wng +, + +5536 + gE + = +BrightRed +, + +5537 + gSucss + = +G +, + +5539 + gOrigExessi + = +Cy +, + +5540 + gRecڡruedExessi + = +Ylow +, + +5542 + gSecdyText + = +LightGy +, + +5543 + gHds + = +Whe + + +5547 +Cour + +Code + +_courCode + ); + +5548 +Cour +Coucڡ& +h + ); + +5549 ~ +Cour +(); + +5552  +u + +Code + +_courCode + ); + +5554 + give +: + +5555 +bo + +m_moved +; + +5558 +le + + gd +:: +oam +& +ݔ + << ( +d +::oam& +os +, +Cour + cڡ& ) {  + gos +; } + +5563  + #TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED + + + ) + +5565  + ~ + +5566  + ~ + +5567  + ~ + +5569 +mea + + gCch + + +5571  + sR܋rCfig + { + +5572 +exic + +R܋rCfig + +P +< +ICfig + cڡ> cڡ& +_fuCfig + ) + +5573 : +m_am +& +_fuCfig +-> +am +(), +m_fuCfig +( _fullConfig ) {} + +5575 +R܋rCfig + +P +< +ICfig + cڡ> cڡ& +_fuCfig +, +d +:: +oam +& +_am + ) + +5576 : +m_am +& +_am + ), +m_fuCfig + +_fuCfig + ) {} + +5578 + gd +:: +oam +& +am +(cڡ {  * +m_am +; } + +5579 + gP +< +ICfig + cڡ> +fuCfig +(cڡ {  + gm_fuCfig +; } + +5581 + give +: + +5582 +d +:: +oam +* +m_am +; + +5583 + gP +< +ICfig + cڡ> + gm_fuCfig +; + +5586  + sR܋rPns + { + +5587 +R܋rPns +() + +5588 : +shouldRedeStdOut + +l + ) + +5591 +bo + +shouldRedeStdOut +; + +5594 + gme +< +tyme + + gT +> + +5595  + gLazySt + : +Oi +< +T +> { + +5596 +LazySt +(: +ud + +l + ) {} + +5597 +LazySt +& +ݔ += +T + cڡ& +_vue + ) { + +5598 +Oi +< +T +>:: +ݔ += +_vue + ); + +5599 + gud + = +l +; + +5600  * + gthis +; + +5602  +t +() { + +5603 + gOi +< + gT +>:: +t +(); + +5604 + gud + = +l +; + +5606 +bo + + gud +; + +5609  + sTeRunInfo + { + +5610 +TeRunInfo + +d +:: +rg + cڡ& +_me + ) : +me +( _name ) {} + +5611 +d +:: +rg + +me +; + +5613  + sGroupInfo + { + +5614 +GroupInfo + +d +:: +rg + cڡ& +_me +, + +5615 +d +:: +size_t + +_groupIndex +, + +5616 +d +:: +size_t + +_groupsCou + ) + +5617 : +me + +_me + ), + +5618 +groupIndex + +_groupIndex + ), + +5619 +groupsCous + +_groupsCou + ) + +5622 + gd +:: +rg + +me +; + +5623 + gd +:: +size_t + +groupIndex +; + +5624 + gd +:: +size_t + +groupsCous +; + +5627  + sAsiSts + { + +5628 +AsiSts + +AsiResu + cڡ& +_asiResu +, + +5629 +d +:: +ve +< +MesgeInfo +> cڡ& +_foMesges +, + +5630 +Tٮs + cڡ& +_tٮs + ) + +5631 : +asiResu + +_asiResu + ), + +5632 +foMesges + +_foMesges + ), + +5633 +tٮs + +_tٮs + ) + +5635 if + gasiResu +. +hasMesge +() ) { + +5638 +MesgeBud + +bud + +asiResu +. +gTeMaoName +(),siResu. +gSourInfo +(),siResu. +gResuTy +() ); + +5639 + gbud + << + gasiResu +. +gMesge +(); + +5640 + gbud +. + gm_fo +. + gmesge + = +bud +. +m_am +. +r +(); + +5642 + gfoMesges +. +push_back + +bud +. +m_fo + ); + +5645 + gvtu + ~ +AsiSts +(); + +5647 #ifde +CATCH_CONFIG_CPP11_GENERATED_METHODS + + +5648 +AsiSts +( AssertionStats const& ) = ; + +5649 +AsiSts +( AssertionStats && ) = ; + +5650 + gAsiSts +& + gݔ + = ( +AsiSts + const& ) = ; + +5651 + gAsiSts +& + gݔ + = ( +AsiSts + && ) = ; + +5654 +AsiResu + + gasiResu +; + +5655 + gd +:: +ve +< +MesgeInfo +> +foMesges +; + +5656 +Tٮs + + gtٮs +; + +5659  + sSeiSts + { + +5660 +SeiSts + +SeiInfo + cڡ& +_iInfo +, + +5661 +Cous + cڡ& +_asis +, + +5662  +_dutiInSecds +, + +5663 +bo + +_missgAsis + ) + +5664 : +iInfo + +_iInfo + ), + +5665 +asis + +_asis + ), + +5666 +dutiInSecds + +_dutiInSecds + ), + +5667 +missgAsis + +_missgAsis + ) + +5669 + gvtu + ~ +SeiSts +(); + +5670 #ifde +CATCH_CONFIG_CPP11_GENERATED_METHODS + + +5671 +SeiSts +( SectionStats const& ) = ; + +5672 +SeiSts +( SectionStats && ) = ; + +5673 + gSeiSts +& + gݔ + = ( +SeiSts + const& ) = ; + +5674 + gSeiSts +& + gݔ + = ( +SeiSts + && ) = ; + +5677 +SeiInfo + + giInfo +; + +5678 +Cous + + gasis +; + +5679  + gdutiInSecds +; + +5680 +bo + + gmissgAsis +; + +5683  + sTeCaSts + { + +5684 +TeCaSts + +TeCaInfo + cڡ& +_Info +, + +5685 +Tٮs + cڡ& +_tٮs +, + +5686 +d +:: +rg + cڡ& +_dOut +, + +5687 +d +:: +rg + cڡ& +_dE +, + +5688 +bo + +_abtg + ) + +5689 : +Info + +_Info + ), + +5690 +tٮs + +_tٮs + ), + +5691 +dOut + +_dOut + ), + +5692 +dE + +_dE + ), + +5693 +abtg + +_abtg + ) + +5695 + gvtu + ~ +TeCaSts +(); + +5697 #ifde +CATCH_CONFIG_CPP11_GENERATED_METHODS + + +5698 +TeCaSts +( TestCaseStats const& ) = ; + +5699 +TeCaSts +( TestCaseStats && ) = ; + +5700 + gTeCaSts +& + gݔ + = ( +TeCaSts + const& ) = ; + +5701 + gTeCaSts +& + gݔ + = ( +TeCaSts + && ) = ; + +5704 +TeCaInfo + + gInfo +; + +5705 +Tٮs + + gtٮs +; + +5706 + gd +:: +rg + +dOut +; + +5707 + gd +:: +rg + +dE +; + +5708 +bo + + gabtg +; + +5711  + sTeGroupSts + { + +5712 +TeGroupSts + +GroupInfo + cڡ& +_groupInfo +, + +5713 +Tٮs + cڡ& +_tٮs +, + +5714 +bo + +_abtg + ) + +5715 : +groupInfo + +_groupInfo + ), + +5716 +tٮs + +_tٮs + ), + +5717 +abtg + +_abtg + ) + +5719 +TeGroupSts + +GroupInfo + cڡ& +_groupInfo + ) + +5720 : +groupInfo + +_groupInfo + ), + +5721 +abtg + +l + ) + +5723 + gvtu + ~ +TeGroupSts +(); + +5725 #ifde +CATCH_CONFIG_CPP11_GENERATED_METHODS + + +5726 +TeGroupSts +( TestGroupStats const& ) = ; + +5727 +TeGroupSts +( TestGroupStats && ) = ; + +5728 + gTeGroupSts +& + gݔ + = ( +TeGroupSts + const& ) = ; + +5729 + gTeGroupSts +& + gݔ + = ( +TeGroupSts + && ) = ; + +5732 +GroupInfo + + ggroupInfo +; + +5733 +Tٮs + + gtٮs +; + +5734 +bo + + gabtg +; + +5737  + sTeRunSts + { + +5738 +TeRunSts + +TeRunInfo + cڡ& +_runInfo +, + +5739 +Tٮs + cڡ& +_tٮs +, + +5740 +bo + +_abtg + ) + +5741 : +runInfo + +_runInfo + ), + +5742 +tٮs + +_tٮs + ), + +5743 +abtg + +_abtg + ) + +5745 + gvtu + ~ +TeRunSts +(); + +5747 #ide +CATCH_CONFIG_CPP11_GENERATED_METHODS + + +5748 +TeRunSts +TeRunStcڡ& +_h + ) + +5749 : +runInfo + +_h +.runInfo ), + +5750 +tٮs + +_h +.totals ), + +5751 +abtg + +_h +.aborting ) + +5754 +TeRunSts +( TestRunStats const& ) = ; + +5755 +TeRunSts +( TestRunStats && ) = ; + +5756 + gTeRunSts +& + gݔ + = ( +TeRunSts + const& ) = ; + +5757 + gTeRunSts +& + gݔ + = ( +TeRunSts + && ) = ; + +5760 +TeRunInfo + + grunInfo +; + +5761 +Tٮs + + gtٮs +; + +5762 +bo + + gabtg +; + +5765 +ass + + gMuɝR܋rs +; + +5767  + gISmgR܋r + : +IShed + { + +5768 +vtu + ~ +ISmgR܋r +(); + +5773 +vtu + +R܋rPns + +gPns +() const = 0; + +5775 +vtu +  +noMchgTeCas + +d +:: +rg + cڡ& +ec + ) = 0; + +5777 +vtu +  +RunSg + +TeRunInfo + cڡ& +RunInfo + ) = 0; + +5778 +vtu +  +GroupSg + +GroupInfo + cڡ& +groupInfo + ) = 0; + +5780 +vtu +  +CaSg + +TeCaInfo + cڡ& +Info + ) = 0; + +5781 +vtu +  +iSg + +SeiInfo + cڡ& +iInfo + ) = 0; + +5783 +vtu +  +asiSg + +AsiInfo + cڡ& +asiInfo + ) = 0; + +5786 +vtu + +bo + +asiEnded + +AsiSts + cڡ& +asiSts + ) = 0; + +5788 +vtu +  +iEnded + +SeiSts + cڡ& +iSts + ) = 0; + +5789 +vtu +  +CaEnded + +TeCaSts + cڡ& +CaSts + ) = 0; + +5790 +vtu +  +GroupEnded + +TeGroupSts + cڡ& +GroupSts + ) = 0; + +5791 +vtu +  +RunEnded + +TeRunSts + cڡ& +RunSts + ) = 0; + +5793 +vtu +  +skTe + +TeCaInfo + cڡ& +Info + ) = 0; + +5795 +vtu + +MuɝR܋rs +* +yAsMui +({  + gCATCH_NULL +; } + +5798  + gIR܋rFay + : +IShed + { + +5799 +vtu + ~ +IR܋rFay +(); + +5800 +vtu + +ISmgR܋r +* + + +R܋rCfig + cڡ& +cfig + ) const = 0; + +5801 +vtu + + gd +:: +rg + +gDesti +() const = 0; + +5804  + sIR܋rRegiry + { + +5805  + gd +:: + tm +< + td +:: + trg +, + tP +< + tIR܋rFay +> > + tFayM +; + +5806  + gd +:: + tve +< + tP +< + tIR܋rFay +> > + tLis +; + +5808 + gvtu + ~ +IR܋rRegiry +(); + +5809 +vtu + +ISmgR܋r +* + + +d +:: +rg + cڡ& +me +, +P +< +ICfig + cڡ> cڡ& +cfig + ) const = 0; + +5810 +vtu + +FayM + cڡ& +gFaܛs +() const = 0; + +5811 +vtu + +Lis + cڡ& +gLis +() const = 0; + +5814 + gP +< + gISmgR܋r +> +addR܋r + +P +< +ISmgR܋r +> cڡ& +exigR܋r +, P cڡ& +addiڮR܋r + ); + +5818  + ~ + +5819  + ~ + +5821 +mea + + gCch + { + +5823 +le + + gd +:: +size_t + +liTes + +Cfig + cڡ& +cfig + ) { + +5825 +TeSc + +Sc + = +cfig +.testSpec(); + +5826 if + gcfig +. +Sc +(). +hasFrs +() ) + +5827 + gCch +:: +cout +() << "Matchingest cases:\n"; + +5829 + gCch +:: +cout +() << "Allvailableest cases:\n"; + +5830 + gSc + = +TeScPr + +ITagAlsRegiry +:: +g +(). +r +"*" ). +Sc +(); + +5833 + gd +:: +size_t + +mchedTes + = 0; + +5834 +TextAribus + + gmeAr +, + gdescAr +, + ggsAr +; + +5835 + gmeAr +. +tInlIndt +2 ). +tIndt +( 4 ); + +5836 + gdescAr +. +tIndt +( 4 ); + +5837 + ggsAr +. +tIndt +( 6 ); + +5839 + gd +:: +ve +< +TeCa +> +mchedTeCas + = +frTes + +gATeCasS܋d + +cfig + ), +Sc +, config ); + +5840  + gd +:: +ve +< +TeCa +>:: +cڡ_ + + + = +mchedTeCas +. +beg +(), + gEnd + = mchedTeCas. +d +(); + +5841 + g + ! +End +; + +5842 ++ + g + ) { + +5843 + gmchedTes +++; + +5844 +TeCaInfo + cڡ& + gCaInfo + = + +-> +gTeCaInfo +(); + +5845 + gCour +:: +Code + +cour + = +CaInfo +. +isHidd +() + +5846 ? +Cour +:: +SecdyText + + +5847 : +Cour +:: +Ne +; + +5848 +Cour + +courGud + +cour + ); + +5850 + gCch +:: +cout +(<< +Text + +CaInfo +. +me +, +meAr + ) << + gd +:: +dl +; + +5851 if + gcfig +. +liExaInfo +() ) { + +5852 + gCch +:: +cout +(<< " " << +CaInfo +. +leInfo + << +d +:: +dl +; + +5853 + gd +:: +rg + +desti + = +CaInfo +.description; + +5854 if + gdesti +. +emy +() ) + +5855 + gdesti + = "(NO DESCRIPTION)"; + +5856 + gCch +:: +cout +(<< +Text + +desti +, +descAr + ) << + gd +:: +dl +; + +5858 if! + gCaInfo +. + ggs +. +emy +() ) + +5859 + gCch +:: +cout +(<< +Text + +CaInfo +. +gsAsSg +, +gsAr + ) << + gd +:: +dl +; + +5862 if! + gcfig +. +Sc +(). +hasFrs +() ) + +5863 + gCch +:: +cout +(<< +uli + +mchedTes +, " ca" ) << '\n' << + gd +:: +dl +; + +5865 + gCch +:: +cout +(<< +uli + +mchedTes +, "mchge ca" ) << '\n' << + gd +:: +dl +; + +5866  + gmchedTes +; + +5869 +le + + gd +:: +size_t + +liTesNamesOy + +Cfig + cڡ& +cfig + ) { + +5870 +TeSc + +Sc + = +cfig +.testSpec(); + +5871 if! + gcfig +. +Sc +(). +hasFrs +() ) + +5872 + gSc + = +TeScPr + +ITagAlsRegiry +:: +g +(). +r +"*" ). +Sc +(); + +5873 + gd +:: +size_t + +mchedTes + = 0; + +5874 + gd +:: +ve +< +TeCa +> +mchedTeCas + = +frTes + +gATeCasS܋d + +cfig + ), +Sc +, config ); + +5875  + gd +:: +ve +< +TeCa +>:: +cڡ_ + + + = +mchedTeCas +. +beg +(), + gEnd + = mchedTeCas. +d +(); + +5876 + g + ! +End +; + +5877 ++ + g + ) { + +5878 + gmchedTes +++; + +5879 +TeCaInfo + cڡ& + gCaInfo + = + +-> +gTeCaInfo +(); + +5880 if +tsWh + +CaInfo +. +me +, '#' ) ) + +5881 + gCch +:: +cout +(<< '"' << +CaInfo +. +me + << '"'; + +5883 + gCch +:: +cout +(<< +CaInfo +. +me +; + +5884 i + gcfig +. +liExaInfo +() ) + +5885 + gCch +:: +cout +(<< "\t@" << +CaInfo +. +leInfo +; + +5886 + gCch +:: +cout +(<< +d +:: +dl +; + +5888  + gmchedTes +; + +5891  + sTagInfo + { + +5892 +TagInfo +(: +cou + ( 0 ) {} + +5893  +add + +d +:: +rg + cڡ& +lg + ) { + +5894 ++ +cou +; + +5895 + glgs +. + + +lg + ); + +5897 + gd +:: +rg + +l +() const { + +5898 +d +:: +rg + +out +; + +5899  + gd +:: +t +< +d +:: +rg +>:: +cڡ_ + + + = +lgs +. +beg +(), + gEnd + = sΚgs. +d +(); + +5900 + g + ! +End +; + +5901 ++ + g + ) + +5902 + gout + +"[" + * + + + "]"; + +5903  + gout +; + +5905 + gd +:: +t +< +d +:: +rg +> +lgs +; + +5906 + gd +:: +size_t + +cou +; + +5909 +le + + gd +:: +size_t + +liTags + +Cfig + cڡ& +cfig + ) { + +5910 +TeSc + +Sc + = +cfig +.testSpec(); + +5911 if + gcfig +. +Sc +(). +hasFrs +() ) + +5912 + gCch +:: +cout +() << "Tags for matchingest cases:\n"; + +5914 + gCch +:: +cout +() << "Allvailableags:\n"; + +5915 + gSc + = +TeScPr + +ITagAlsRegiry +:: +g +(). +r +"*" ). +Sc +(); + +5918 + gd +:: +m +< +d +:: +rg +, + gTagInfo +> + ggCous +; + +5920 + gd +:: +ve +< +TeCa +> +mchedTeCas + = +frTes + +gATeCasS܋d + +cfig + ), +Sc +, config ); + +5921  + gd +:: +ve +< +TeCa +>:: +cڡ_ + + + = +mchedTeCas +. +beg +(), + gEnd + = mchedTeCas. +d +(); + +5922 + g + ! +End +; + +5923 ++ + g + ) { + +5924  + gd +:: +t +< +d +:: +rg +>:: +cڡ_ + +gIt + = + +-> +gTeCaInfo +(). +gs +. +beg +(), + +5925 + ggItEnd + = + +-> +gTeCaInfo +(). +gs +. +d +(); + +5926 + ggIt + ! +gItEnd +; + +5927 ++ + ggIt + ) { + +5928 + gd +:: +rg + +gName + = * +gIt +; + +5929 + gd +:: +rg + +lTagName + = +toLow + +gName + ); + +5930 + gd +:: +m +< +d +:: +rg +, + gTagInfo +>:: + + +couIt + = +gCous +. +fd + +lTagName + ); + +5931 if + gcouIt + = +gCous +. +d +() ) + +5932 +couIt + = +gCous +. + + +d +:: +make_ + +lTagName +, +TagInfo +(). + gf +; + +5933 + gcouIt +-> + gcd +. +add + +gName + ); + +5937  + gd +:: +m +< +d +:: +rg +, + gTagInfo +>:: +cڡ_ + +couIt + = +gCous +. +beg +(), + +5938 + gcouItEnd + = +gCous +. +d +(); + +5939 + gcouIt + ! +couItEnd +; + +5940 ++ + gcouIt + ) { + +5941 + gd +:: +orgam + +oss +; + +5942 + goss + << " " << + gd +:: +tw +(2<< +couIt +-> +cd +. +cou + << " "; + +5943 +Text + +w + +couIt +-> +cd +. +l +(), +TextAribus +() + +5944 . +tInlIndt +( 0 ) + +5945 . +tIndt + +oss +. +r +(). +size +() ) + +5946 . +tWidth + +CATCH_CONFIG_CONSOLE_WIDTH +-10 ) ); + +5947 + gCch +:: +cout +(<< +oss +. +r +(<< +w + << '\n'; + +5949 + gCch +:: +cout +(<< +uli + +gCous +. +size +(), "g" ) << '\n' << + gd +:: +dl +; + +5950  + ggCous +. +size +(); + +5953 +le + + gd +:: +size_t + +liR܋rs + +Cfig + const& ) { + +5954 +Cch +:: +cout +() << "Availableeporters:\n"; + +5955 + gIR܋rRegiry +:: +FayM + cڡ& +ܛs + = +gRegiryHub +(). +gR܋rRegiry +(). +gFaܛs +(); + +5956 + gIR܋rRegiry +:: +FayM +:: +cڡ_ + +Beg + = +ܛs +. +beg +(), + gEnd + = faܛs. +d +(), + g +; + +5957 + gd +:: +size_t + +maxNameL + = 0; + +5958  + g + = +Beg +; i! +End +; ++it ) + +5959 + gmaxNameL + = ( +d +:: +max +) +maxNameL +, + g +-> + gf +. +size +() ); + +5961  + g + = +Beg +; i! +End +; ++it ) { + +5962 +Text + +w + + +-> +cd +-> +gDesti +(), +TextAribus +() + +5963 . +tInlIndt +( 0 ) + +5964 . +tIndt +7+ +maxNameL + ) + +5965 . +tWidth + +CATCH_CONFIG_CONSOLE_WIDTH + - +maxNameL +-8 ) ); + +5966 + gCch +:: +cout +() << " " + +5967 << + +-> +f + + +5969 << +d +:: +rg + +maxNameL + - + +-> +f +. +size +() + 2, ' ' ) + +5970 << + gw + << '\n'; + +5972 + gCch +:: +cout +(<< +d +:: +dl +; + +5973  + gܛs +. +size +(); + +5976 +le + + gOi +< + gd +:: +size_t +> +li + +Cfig + cڡ& +cfig + ) { + +5977 +Oi +< +d +:: +size_t +> +liedCou +; + +5978 if + gcfig +. +liTes +(|| ( cfig. +liExaInfo +(&& !cfig. +liTeNamesOy +() ) ) + +5979 + gliedCou + = +liedCou +. +vueOr +(0+ +liTes + +cfig + ); + +5980 if + gcfig +. +liTeNamesOy +() ) + +5981 + gliedCou + = +liedCou +. +vueOr +(0+ +liTesNamesOy + +cfig + ); + +5982 if + gcfig +. +liTags +() ) + +5983 + gliedCou + = +liedCou +. +vueOr +(0+ +liTags + +cfig + ); + +5984 if + gcfig +. +liR܋rs +() ) + +5985 + gliedCou + = +liedCou +. +vueOr +(0+ +liR܋rs + +cfig + ); + +5986  + gliedCou +; + +5992  + #TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED + + + ) + +5995  + #TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED + + + ) + +5997  + ~ + +5998  + ~ + +5999  + ~ + +6000  + ~ + +6001  + ~ + +6003 +CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS + + +6005 +mea + + gCch + { + +6006 +mea + + gTeCaTckg + { + +6008  + sNameAndLoti + { + +6009 + gd +:: +rg + +me +; + +6010 +SourLeInfo + + gloti +; + +6012 +NameAndLoti + +d +:: +rg + cڡ& +_me +, +SourLeInfo + cڡ& +_loti + ) + +6013 : +me + +_me + ), + +6014 +loti + +_loti + ) + +6018  + gITck + : +ShedIm +<> { + +6019 +vtu + ~ +ITck +(); + +6022 +vtu + +NameAndLoti + cڡ& +meAndLoti +() const = 0; + +6025 +vtu + +bo + +isCome +() const = 0; + +6026 +vtu + +bo + +isSucssfuyComed +() const = 0; + +6027 +vtu + +bo + +isOn +() const = 0; + +6028 +vtu + +bo + +hasChdn +() const = 0; + +6030 +vtu + + gITck +& + +() = 0; + +6033 +vtu +  +o +() = 0; + +6034 +vtu +  + +() = 0; + +6035 +vtu +  +mkAsNdgAnhRun +() = 0; + +6037 +vtu +  +addChd + +P +< +ITck +> cڡ& +chd + ) = 0; + +6038 +vtu + +ITck +* +fdChd + +NameAndLoti + cڡ& +meAndLoti + ) = 0; + +6039 +vtu +  +ݒChd +() = 0; + +6042 +vtu + +bo + +isSeiTck +() const = 0; + +6043 +vtu + +bo + +isIndexTck +() const = 0; + +6046 as + cTckCڋxt + { + +6048 + eRunS + { + +6049 + gNSed +, + +6050 + gExecutg +, + +6051 + gComedCye + + +6054 + gP +< + gITck +> + gm_roTck +; + +6055 +ITck +* + gm_cutTck +; + +6056 +RunS + + gm_runS +; + +6058 + gpublic +: + +6060  +TckCڋxt +& + +() { + +6061  +TckCڋxt + +s_ +; + +6062  + gs_ +; + +6065 +TckCڋxt +() + +6066 : +m_cutTck + +CATCH_NULL + ), + +6067 +m_runS + +NSed + ) + +6070 + gITck +& +tRun +(); + +6072  +dRun +() { + +6073 + gm_roTck +. +t +(); + +6074 + gm_cutTck + = +CATCH_NULL +; + +6075 + gm_runS + = +NSed +; + +6078  +tCye +() { + +6079 + gm_cutTck + = +m_roTck +. +g +(); + +6080 + gm_runS + = +Executg +; + +6082  +comeCye +() { + +6083 + gm_runS + = +ComedCye +; + +6086 +bo + +comedCye +() const { + +6087  + gm_runS + = +ComedCye +; + +6089 + gITck +& +cutTck +() { + +6090  * + gm_cutTck +; + +6092  +tCutTck + +ITck +* +ack + ) { + +6093 + gm_cutTck + = +ack +; + +6097 as + cTckBa + : +public + +ITck + { + +6098 +eed +: + +6099 + eCyeS + { + +6100 +NSed +, + +6101 + gExecutg +, + +6102 + gExecutgChdn +, + +6103 + gNdsAnhRun +, + +6104 + gComedSucssfuy +, + +6105 + gFaed + + +6107 as + cTckHasName + { + +6108 +NameAndLoti + + gm_meAndLoti +; + +6109 + gpublic +: + +6110 +TckHasName + +NameAndLoti + cڡ& +meAndLoti + ) : +m_meAndLoti +(ameAndLocation ) {} + +6111 +bo + +ݔ + () +P +< +ITck +> cڡ& +ack + ) { + +6113 +ack +-> +meAndLoti +(). +me + = +m_meAndLoti +.name && + +6114 +ack +-> +meAndLoti +(). +loti + = +m_meAndLoti +.location; + +6117  + gd +:: + tve +< + tP +< + tITck +> > + tChdn +; + +6118 +NameAndLoti + + gm_meAndLoti +; + +6119 + gTckCڋxt +& + gm_x +; + +6120 +ITck +* + gm_ +; + +6121 +Chdn + + gm_chdn +; + +6122 +CyeS + + gm_runS +; + +6123 + gpublic +: + +6124 +TckBa + +NameAndLoti + cڡ& +meAndLoti +, +TckCڋxt +& +x +, +ITck +* + + ) + +6125 : +m_meAndLoti + +meAndLoti + ), + +6126 +m_x + +x + ), + +6127 +m_ + + + ), + +6128 +m_runS + +NSed + ) + +6130 + gvtu + ~ +TckBa +(); + +6132 +vtu + +NameAndLoti + cڡ& +meAndLoti +(cڡ + gCATCH_OVERRIDE + { + +6133  + gm_meAndLoti +; + +6135 +vtu + +bo + +isCome +(cڡ + gCATCH_OVERRIDE + { + +6136  + gm_runS + = +ComedSucssfuy + || +m_runS + = +Faed +; + +6138 +vtu + +bo + +isSucssfuyComed +(cڡ + gCATCH_OVERRIDE + { + +6139  + gm_runS + = +ComedSucssfuy +; + +6141 +vtu + +bo + +isOn +(cڡ + gCATCH_OVERRIDE + { + +6142  + gm_runS + ! +NSed + && ! +isCome +(); + +6144 +vtu + +bo + +hasChdn +(cڡ + gCATCH_OVERRIDE + { + +6145  ! + gm_chdn +. +emy +(); + +6148 +vtu +  +addChd + +P +< +ITck +> cڡ& +chd + ) + gCATCH_OVERRIDE + { + +6149 + gm_chdn +. +push_back + +chd + ); + +6152 +vtu + +ITck +* +fdChd + +NameAndLoti + cڡ& +meAndLoti + ) + gCATCH_OVERRIDE + { + +6153 + gChdn +:: +cڡ_ + + + = +d +:: +fd_if + +m_chdn +. +beg +(), m_chdn. +d +(), +TckHasName + +meAndLoti + ) ); + +6154  + g + ! +m_chdn +. +d +() ) + +6155 ? + +-> +g +() + +6156 : +CATCH_NULL +; + +6158 +vtu + + gITck +& + +( + gCATCH_OVERRIDE + { + +6159 +as + +m_ + ); + +6160  * + gm_ +; + +6163 +vtu +  +ݒChd +( + gCATCH_OVERRIDE + { + +6164 if + gm_runS + ! +ExecutgChdn + ) { + +6165 +m_runS + = +ExecutgChdn +; + +6166 if + gm_ + ) + +6167 + gm_ +-> +ݒChd +(); + +6171 +vtu + +bo + +isSeiTck +(cڡ + gCATCH_OVERRIDE + {  + gl +; } + +6172 +vtu + +bo + +isIndexTck +(cڡ + gCATCH_OVERRIDE + {  + gl +; } + +6174  +ݒ +() { + +6175 + gm_runS + = +Executg +; + +6176 +moveToThis +(); + +6177 if + gm_ + ) + +6178 + gm_ +-> +ݒChd +(); + +6181 +vtu +  +o +( + gCATCH_OVERRIDE + { + +6184  & + gm_x +. +cutTck +(! +this + ) + +6185 +m_x +. +cutTck +(). +o +(); + +6187  + gm_runS + ) { + +6188  + gNSed +: + +6189  +ComedSucssfuy +: + +6190  +Faed +: + +6191 +throw + +d +:: +logic_r +( "Illogical state" ); + +6193  + gNdsAnhRun +: + +6196  + gExecutg +: + +6197 +m_runS + = +ComedSucssfuy +; + +6199  + gExecutgChdn +: + +6200 if +m_chdn +. +emy +(|| m_chdn. +back +()-> +isCome +() ) + +6201 +m_runS + = +ComedSucssfuy +; + +6205 +throw + +d +:: +logic_r +( "Unexpected state" ); + +6207 +moveToPt +(); + +6208 + gm_x +. +comeCye +(); + +6210 +vtu +  + +( + gCATCH_OVERRIDE + { + +6211 + gm_runS + = +Faed +; + +6212 if + gm_ + ) + +6213 + gm_ +-> +mkAsNdgAnhRun +(); + +6214 +moveToPt +(); + +6215 + gm_x +. +comeCye +(); + +6217 +vtu +  +mkAsNdgAnhRun +( + gCATCH_OVERRIDE + { + +6218 + gm_runS + = +NdsAnhRun +; + +6220 + give +: + +6221  +moveToPt +() { + +6222 +as + +m_ + ); + +6223 + gm_x +. +tCutTck + +m_ + ); + +6225  +moveToThis +() { + +6226 + gm_x +. +tCutTck + +this + ); + +6230 as + cSeiTck + : +public + +TckBa + { + +6231 +d +:: +ve + +m_frs +; + +6232 + gpublic +: + +6233 +SeiTck + +NameAndLoti + cڡ& +meAndLoti +, +TckCڋxt +& +x +, +ITck +* + + ) + +6234 : +TckBa + +meAndLoti +, +x +, + + ) + +6236 if + g + ) { + +6237  ! + g +-> +isSeiTck +() ) + +6238 + g + = & + +->parent(); + +6240 + gSeiTck +& + gSei + = +ic_ +< +SeiTck +&>* + + ); + +6241 +addNextFrs + +Sei +. +m_frs + ); + +6244 + gvtu + ~ +SeiTck +(); + +6246 +vtu + +bo + +isSeiTck +(cڡ + gCATCH_OVERRIDE + {  + gue +; } + +6248  + gSeiTck +& +acque + +TckCڋxt +& +x +, +NameAndLoti + cڡ& +meAndLoti + ) { + +6249 +SeiTck +* + gi + = +CATCH_NULL +; + +6251 + gITck +& + gcutTck + = +x +. +cutTck +(); + +6252 if +ITck +* + gchdTck + = +cutTck +. +fdChd + +meAndLoti + ) ) { + +6253 +as + +chdTck + ); + +6254 +as + +chdTck +-> +isSeiTck +() ); + +6255 + gi + = +ic_ +< +SeiTck +*> +chdTck + ); + +6258 + gi + = +w + +SeiTck + +meAndLoti +, +x +, & +cutTck + ); + +6259 + gcutTck +. +addChd + +i + ); + +6261 if! + gx +. +comedCye +() ) + +6262 + gi +-> +yOn +(); + +6263  * + gi +; + +6266  +yOn +() { + +6267 if! +isCome +(&& ( + gm_frs +. +emy +(|| m_frs[0].emy(|| m_frs[0] = +m_meAndLoti +. +me + ) ) + +6268 +ݒ +(); + +6271  +addInlFrs + +d +:: +ve + cڡ& +frs + ) { + +6272 if! +frs +. +emy +() ) { + +6273 +m_frs +. +push_back +(""); + +6274 + gm_frs +. +push_back +(""); + +6275 + gm_frs +. + + +m_frs +. +d +(), +frs +. +beg +(), filters.end() ); + +6278  +addNextFrs + +d +:: +ve + cڡ& +frs + ) { + +6279 if +frs +. +size +() > 1 ) + +6280 +m_frs +. + +m_frs. +d +(), ++ +frs +. +beg +(), filters.end() ); + +6284 as + cIndexTck + : +public + +TckBa + { + +6285  +m_size +; + +6286  + gm_dex +; + +6287 + gpublic +: + +6288 +IndexTck + +NameAndLoti + cڡ& +meAndLoti +, +TckCڋxt +& +x +, +ITck +* + +,  +size + ) + +6289 : +TckBa + +meAndLoti +, +x +, + + ), + +6290 +m_size + +size + ), + +6291 +m_dex +( -1 ) + +6293 + gvtu + ~ +IndexTck +(); + +6295 +vtu + +bo + +isIndexTck +(cڡ + gCATCH_OVERRIDE + {  + gue +; } + +6297  + gIndexTck +& +acque + +TckCڋxt +& +x +, +NameAndLoti + cڡ& +meAndLoti +,  +size + ) { + +6298 +IndexTck +* + gack + = +CATCH_NULL +; + +6300 + gITck +& + gcutTck + = +x +. +cutTck +(); + +6301 if +ITck +* + gchdTck + = +cutTck +. +fdChd + +meAndLoti + ) ) { + +6302 +as + +chdTck + ); + +6303 +as + +chdTck +-> +isIndexTck +() ); + +6304 + gack + = +ic_ +< +IndexTck +*> +chdTck + ); + +6307 + gack + = +w + +IndexTck + +meAndLoti +, +x +, & +cutTck +, +size + ); + +6308 + gcutTck +. +addChd + +ack + ); + +6311 if! + gx +. +comedCye +(&& ! + gack +-> +isCome +() ) { + +6312 if + gack +-> + gm_runS + ! +ExecutgChdn + && +ack +-> +m_runS + ! +NdsAnhRun + ) + +6313 +ack +-> +moveNext +(); + +6314 + gack +-> +ݒ +(); + +6317  * + gack +; + +6320  +dex +(cڡ {  + gm_dex +; } + +6322  +moveNext +() { + +6323 + gm_dex +++; + +6324 + gm_chdn +. +r +(); + +6327 +vtu +  +o +( + gCATCH_OVERRIDE + { + +6328 + gTckBa +:: +o +(); + +6329 if + gm_runS + = +ComedSucssfuy + && +m_dex + < +m_size +-1 ) + +6330 +m_runS + = +Executg +; + +6334 +le + + gITck +& + gTckCڋxt +:: +tRun +() { + +6335 +m_roTck + = +w + +SeiTck + +NameAndLoti +"{ro}", +CATCH_INTERNAL_LINEINFO + ), * +this +, +CATCH_NULL + ); + +6336 + gm_cutTck + = +CATCH_NULL +; + +6337 + gm_runS + = +Executg +; + +6338  * + gm_roTck +; + +6343 +usg + + gTeCaTckg +:: +ITck +; + +6344 +usg + + gTeCaTckg +:: +TckCڋxt +; + +6345 +usg + + gTeCaTckg +:: +SeiTck +; + +6346 +usg + + gTeCaTckg +:: +IndexTck +; + +6350 + gCATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS + + +6353  + #TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED + + + ) + +6355 +mea + + gCch + { + +6358 +le +  +ptF + +d +:: +rg + cڡ& +mesge + ) { + +6359 +ICڋxt +& +cڋxt + = +Cch +:: +gCutCڋxt +(); + +6360 +IResuCtu +* + gsuCtu + = +cڋxt +. +gResuCtu +(); + +6361 + gsuCtu +-> +hdFECdi + +mesge + ); + +6366 #i + $defed + ( +CATCH_PLATFORM_WINDOWS + ) + +6369  + #TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED + + + ) + +6371 #ifde +CATCH_DEFINES_NOMINMAX + + +6372  + #NOMINMAX + + + ) + +6374 #ifde +CATCH_DEFINES_WIN32_LEAN_AND_MEAN + + +6375  + #WIN32_LEAN_AND_MEAN + + + ) + +6378 #ifde +__AFXDLL + + +6379  + ~ + +6381  + ~ + +6384 #ifde +CATCH_DEFINES_NOMINMAX + + +6385 #unde +NOMINMAX + + +6387 #ifde +CATCH_DEFINES_WIN32_LEAN_AND_MEAN + + +6388 #unde +WIN32_LEAN_AND_MEAN + + +6392 #i! + $defed + ( +CATCH_CONFIG_WINDOWS_SEH + ) + +6394 +mea + +Cch + { + +6395  + sFCdiHdr + { + +6396  + `t +() {} + +6398 + } +} + +6402 +mea + + gCch + { + +6404  + sSiglDefs + { +DWORD + + gid +; cڡ * + gme +; }; + +6405 +SiglDefs + +siglDefs +[]; + +6409 +SiglDefs + + gsiglDefs +[] = { + +6410 { +EXCEPTION_ILLEGAL_INSTRUCTION +, "SIGILL - Illegal instruction signal" }, + +6411 { +EXCEPTION_STACK_OVERFLOW +, "SIGSEGV - Stack overflow" }, + +6412 { +EXCEPTION_ACCESS_VIOLATION +, "SIGSEGV - Segmentation violation signal" }, + +6413 { +EXCEPTION_INT_DIVIDE_BY_ZERO +, "Divide by zerorror" }, + +6416  + sFCdiHdr + { + +6418  +LONG + +CALLBACK + +hdVeedExi +( +PEXCEPTION_POINTERS + +ExiInfo +) { + +6419  + gi + = 0; i < ( + gsiglDefs +/ ( + gSiglDefs +); ++i) { + +6420 i( + gExiInfo +-> + gExiRecd +-> + gExiCode + = +siglDefs +[ +i +]. +id +) { + +6421 +ptF +( +siglDefs +[ +i +]. +me +); + +6426  + gEXCEPTION_CONTINUE_SEARCH +; + +6429 +FCdiHdr +() { + +6430 + gisS + = +ue +; + +6433 + ggueSize + = 32 * 1024; + +6434 + gexiHdrHd + = +CATCH_NULL +; + +6436 + gexiHdrHd + = +AddVeedExiHdr +(1, +hdVeedExi +); + +6438 +SThadSckGue +(& +gueSize +); + +6441  +t +() { + +6442 i( + gisS +) { + +6444 +RemoveVeedExiHdr +( +exiHdrHd +); + +6445 +SThadSckGue +(& +gueSize +); + +6446 + gexiHdrHd + = +CATCH_NULL +; + +6447 + gisS + = +l +; + +6451 ~ +FCdiHdr +() { + +6452 +t +(); + +6454 + give +: + +6455  +bo + +isS +; + +6456  +ULONG + + ggueSize +; + +6457  +PVOID + + gexiHdrHd +; + +6460 +bo + + gFCdiHdr +:: +isS + = +l +; + +6461 +ULONG + + gFCdiHdr +:: +gueSize + = 0; + +6462 +PVOID + + gFCdiHdr +:: +exiHdrHd + = +CATCH_NULL +; + +6470 #i! + $defed +( +CATCH_CONFIG_POSIX_SIGNALS +) + +6472 +mea + +Cch + { + +6473  + sFCdiHdr + { + +6474  + `t +() {} + +6476 + } +} + +6480  + ~ + +6482 +mea + + gCch + { + +6484  + sSiglDefs + { + +6485  + gid +; + +6486 cڡ * + gme +; + +6488 +SiglDefs + +siglDefs +[]; + +6489 +SiglDefs + + gsiglDefs +[] = { + +6490 { +SIGINT +, "SIGINT - Terminal interrupt signal" }, + +6491 { +SIGILL +, "SIGILL - Illegal instruction signal" }, + +6492 { +SIGFPE +, "SIGFPE - Floatingointrror signal" }, + +6493 { +SIGSEGV +, "SIGSEGV - Segmentation violation signal" }, + +6494 { +SIGTERM +, "SIGTERM - Terminationequest signal" }, + +6495 { +SIGABRT +, "SIGABRT - Abort (abnormalermination) signal" } + +6498  + sFCdiHdr + { + +6500  +bo + + gisS +; + +6501  +sigai + + gdSigAis + [( +siglDefs +)/( +SiglDefs +)]; + +6502  +ack_t + + gdSigSck +; + +6503  + gtSckMem +[ +SIGSTKSZ +]; + +6505  +hdSigl + +sig + ) { + +6506 + gd +:: +rg + +me + = ""; + +6507  + gd +:: +size_t + +i + = 0; + gi + < ( + gsiglDefs +/ ( + gSiglDefs +); ++i) { + +6508 + gSiglDefs + & + gdef + = +siglDefs +[ +i +]; + +6509 i( + gsig + = +def +. +id +) { + +6510 +me + = +def +.name; + +6514 +t +(); + +6515 +ptF +( +me +); + +6516 +i + +sig + ); + +6519 +FCdiHdr +() { + +6520 + gisS + = +ue +; + +6521 +ack_t + + gsigSck +; + +6522 + gsigSck +. + gss_ + = +tSckMem +; + +6523 + gsigSck +. + gss_size + = +SIGSTKSZ +; + +6524 + gsigSck +. + gss_ags + = 0; + +6525 +sigtack +(& +sigSck +, & +dSigSck +); + +6526  +sigai + + g + = { 0 }; + +6528 + g +. + g_hdr + = +hdSigl +; + +6529 + g +. + g_ags + = +SA_ONSTACK +; + +6530  + gd +:: +size_t + +i + = 0; + gi + < ( + gsiglDefs +)/( + gSiglDefs +); ++i) { + +6531 +sigai +( +siglDefs +[ +i +]. +id +, & + +, & +dSigAis +[i]); + +6535 ~ +FCdiHdr +() { + +6536 +t +(); + +6538  +t +() { + +6539 if + gisS + ) { + +6541  + gd +:: +size_t + +i + = 0; + gi + < ( + gsiglDefs +)/( + gSiglDefs +); ++i ) { + +6542 +sigai +( +siglDefs +[ +i +]. +id +, & +dSigAis +[i], +CATCH_NULL +); + +6545 +sigtack +(& +dSigSck +, +CATCH_NULL +); + +6546 + gisS + = +l +; + +6551 +bo + + gFCdiHdr +:: +isS + = +l +; + +6552  +sigai + + gFCdiHdr +:: +dSigAis +[( +siglDefs +)/( +SiglDefs +)] = {}; + +6553 +ack_t + + gFCdiHdr +:: +dSigSck + = {}; + +6554  + gFCdiHdr +:: +tSckMem +[ +SIGSTKSZ +] = {}; + +6562  + ~ + +6563  + ~ + +6565 +mea + + gCch + { + +6567 as + cSmRede + { + +6569 + gpublic +: + +6570 +SmRede + +d +:: +oam +& +am +, std:: +rg +& +rgSg + ) + +6571 : +m_am + +am + ), + +6572 +m_evBuf + +am +. +rdbuf +() ), + +6573 +m_rgSg + +rgSg + ) + +6575 + gam +. +rdbuf + +m_oss +.rdbuf() ); + +6578 ~ +SmRede +() { + +6579 + gm_rgSg + + +m_oss +. +r +(); + +6580 + gm_am +. +rdbuf + +m_evBuf + ); + +6583 + give +: + +6584 +d +:: +oam +& +m_am +; + +6585 + gd +:: +ambuf +* +m_evBuf +; + +6586 + gd +:: +orgam + +m_oss +; + +6587 + gd +:: +rg +& +m_rgSg +; + +6593 as + cStdERede + { + +6594 + gpublic +: + +6595 +StdERede +( +d +:: +rg +& +rgSg +) + +6596 : +m_Buf + + +(). +rdbuf +(), +m_ogBuf +( +og +().rdbuf()), + +6597 +m_rgSg +( +rgSg +){ + +6598 + +(). +rdbuf +( +m_oss +.rdbuf()); + +6599 +og +(). +rdbuf +( +m_oss +.rdbuf()); + +6601 ~ +StdERede +() { + +6602 + gm_rgSg + + +m_oss +. +r +(); + +6603 + +(). +rdbuf +( +m_Buf +); + +6604 +og +(). +rdbuf +( +m_ogBuf +); + +6606 + give +: + +6607 +d +:: +ambuf +* +m_Buf +; + +6608 + gd +:: +ambuf +* +m_ogBuf +; + +6609 + gd +:: +orgam + +m_oss +; + +6610 + gd +:: +rg +& +m_rgSg +; + +6615 +ass + + gRunCڋxt + : +public + +IResuCtu +,ubli + gIRu” + { + +6617 +RunCڋxt +( RunContext const& ); + +6618  + gݔ + = +RunCڋxt + const& ); + +6620 + gpublic +: + +6622 +exic + +RunCڋxt + +P +< +ICfig + cڡ> cڡ& +_cfig +, P< +ISmgR܋r +> cڡ& +p܋r + ) + +6623 : +m_runInfo + +_cfig +-> +me +() ), + +6624 +m_cڋxt + +gCutMubCڋxt +() ), + +6625 +m_aiveTeCa + +CATCH_NULL + ), + +6626 +m_cfig + +_cfig + ), + +6627 +m_p܋r + +p܋r + ), + +6628 +m_shouldRtUxed + ( +ue + ) + +6630 + gm_cڋxt +. +tRu” + +this + ); + +6631 + gm_cڋxt +. +tCfig + +m_cfig + ); + +6632 + gm_cڋxt +. +tResuCtu + +this + ); + +6633 + gm_p܋r +-> +RunSg + +m_runInfo + ); + +6636 + gvtu + ~ +RunCڋxt +() { + +6637 + gm_p܋r +-> +RunEnded + +TeRunSts + +m_runInfo +, +m_tٮs +, +abtg +() ) ); + +6640  +GroupSg + +d +:: +rg + cڡ& +Sc +, std:: +size_t + +groupIndex +, std::size_ +groupsCou + ) { + +6641 +m_p܋r +-> +GroupSg + +GroupInfo + +Sc +, +groupIndex +, +groupsCou + ) ); + +6643  +GroupEnded + +d +:: +rg + cڡ& +Sc +, +Tٮs + cڡ& +tٮs +, std:: +size_t + +groupIndex +, std::size_ +groupsCou + ) { + +6644 +m_p܋r +-> +GroupEnded + +TeGroupSts + +GroupInfo + +Sc +, +groupIndex +, +groupsCou + ), +tٮs +, +abtg +() ) ); + +6647 +Tٮs + +runTe + +TeCa + cڡ& +Ca + ) { + +6648 +Tٮs + + gevTٮs + = +m_tٮs +; + +6650 + gd +:: +rg + +deedCout +; + +6651 + gd +:: +rg + +deedCr +; + +6653 +TeCaInfo + + gInfo + = +Ca +. +gTeCaInfo +(); + +6655 + gm_p܋r +-> +CaSg + +Info + ); + +6657 + gm_aiveTeCa + = & +Ca +; + +6660 + gITck +& + groTck + = +m_ackCڋxt +. +tRun +(); + +6661 +as + +roTck +. +isSeiTck +() ); + +6662 + gic_ +< + gSeiTck +&> + groTck + ). +addInlFrs + +m_cfig +-> +gSeisToRun +() ); + +6664 + gm_ackCڋxt +. +tCye +(); + +6665 + gm_CaTck + = & +SeiTck +:: +acque + +m_ackCڋxt +, +TeCaTckg +:: +NameAndLoti + +Info +. +me +,eInfo. +leInfo + ) ); + +6666 +runCutTe + +deedCout +, +deedCr + ); + +6668  ! + gm_CaTck +-> +isSucssfuyComed +(&& ! +abtg +() ); + +6671  +gCutCڋxt +(). +advGsFCutTe +(&& ! +abtg +() ); + +6673 +Tٮs + + gdTٮs + = +m_tٮs +. +d + +evTٮs + ); + +6674 if + gInfo +. +exedToFa +(&& + gdTٮs +. + gCas +. + gsd + > 0 ) { + +6675 + gdTٮs +. + gasis +. + ged +++; + +6676 + gdTٮs +. + gCas +. + gsd +--; + +6677 + gdTٮs +. + gCas +. + ged +++; + +6679 + gm_tٮs +. + gCas + + +dTٮs +. +Cas +; + +6680 + gm_p܋r +-> +CaEnded + +TeCaSts + +Info +, + +6681 +dTٮs +, + +6682 +deedCout +, + +6683 +deedCr +, + +6684 +abtg +() ) ); + +6686 + gm_aiveTeCa + = +CATCH_NULL +; + +6687 + gm_CaTck + = +CATCH_NULL +; + +6689  + gdTٮs +; + +6692 + gP +< +ICfig + cڡ> +cfig +() const { + +6693  + gm_cfig +; + +6696 + give +: + +6698 +vtu +  +asiEnded + +AsiResu + cڡ& +su + ) { + +6699 if +su +. +gResuTy +(= +ResuWas +:: +Ok + ) { + +6700 +m_tٮs +. +asis +. +sd +++; + +6702 if! + gsu +. +isOk +() ) { + +6703 + gm_tٮs +. + gasis +. + ged +++; + +6708 + gic_ +<>( + gm_p܋r +-> +asiEnded +( +AsiSts +( +su +, +m_mesges +, +m_tٮs +))); + +6711 + gm_ϡAsiInfo + = +AsiInfo +"", +m_ϡAsiInfo +. +leInfo +, "{Unknowexessiڇᔁhp܋de}" , m_ϡAsiInfo. +suDiosi + ); + +6712 + gm_ϡResu + = +su +; + +6715 +vtu + +bo + +ϡAsiPasd +() + +6717  + gm_tٮs +. + gasis +. + gsd + =( +m_evPasd + + 1); + +6720 +vtu +  +asiPasd +() + +6722 + gm_tٮs +. + gasis +. + gsd +++; + +6723 + gm_ϡAsiInfo +. + gudExessi + = "{Unknownxpressionfterheeportedine}"; + +6724 + gm_ϡAsiInfo +. + gmaoName + = ""; + +6727 +vtu +  +asiRun +() + +6729 + gm_evPasd + = +m_tٮs +. +asis +. +sd +; + +6732 +vtu + +bo + +iSed + ( + +6733 +SeiInfo + cڡ& +iInfo +, + +6734 +Cous +& +asis + + +6737 + gITck +& + giTck + = +SeiTck +:: +acque + +m_ackCڋxt +, +TeCaTckg +:: +NameAndLoti + +iInfo +. +me +, seiInfo. +leInfo + ) ); + +6738 if! + giTck +. +isOn +() ) + +6739  + gl +; + +6740 + gm_aiveSeis +. +push_back +& +iTck + ); + +6742 + gm_ϡAsiInfo +. + gleInfo + = +iInfo +. +leInfo +; + +6744 + gm_p܋r +-> +iSg + +iInfo + ); + +6746 + gasis + = +m_tٮs +. +asis +; + +6748  + gue +; + +6750 +bo + +FMissgAsis + +Cous +& +asis + ) { + +6751 if + gasis +. +tٮ +() != 0 ) + +6752  +l +; + +6753 if! + gm_cfig +-> +wnAboutMissgAsis +() ) + +6754  + gl +; + +6755 if + gm_ackCڋxt +. +cutTck +(). +hasChdn +() ) + +6756  + gl +; + +6757 + gm_tٮs +. + gasis +. + ged +++; + +6758 + gasis +. + ged +++; + +6759  + gue +; + +6762 +vtu +  +iEnded + +SeiEndInfo + cڡ& +dInfo + ) { + +6763 +Cous + + gasis + = +m_tٮs +. +asis + - +dInfo +. +evAsis +; + +6764 +bo + + gmissgAsis + = +FMissgAsis + +asis + ); + +6766 if! + gm_aiveSeis +. +emy +() ) { + +6767 + gm_aiveSeis +. +back +()-> +o +(); + +6768 + gm_aiveSeis +. +p_back +(); + +6771 + gm_p܋r +-> +iEnded + +SeiSts + +dInfo +. +iInfo +, +asis +,ndInfo. +dutiInSecds +, +missgAsis + ) ); + +6772 + gm_mesges +. +r +(); + +6775 +vtu +  +iEndedEly + +SeiEndInfo + cڡ& +dInfo + ) { + +6776 if + gm_unfishedSeis +. +emy +() ) + +6777 + gm_aiveSeis +. +back +()-> + +(); + +6779 + gm_aiveSeis +. +back +()-> +o +(); + +6780 + gm_aiveSeis +. +p_back +(); + +6782 + gm_unfishedSeis +. +push_back + +dInfo + ); + +6785 +vtu +  +pushScedMesge + +MesgeInfo + cڡ& +mesge + ) { + +6786 + gm_mesges +. +push_back + +mesge + ); + +6789 +vtu +  +pScedMesge + +MesgeInfo + cڡ& +mesge + ) { + +6790 + gm_mesges +. +a + +d +:: +move + +m_mesges +. +beg +(), m_mesges. +d +(), +mesge + ), m_messages.end() ); + +6793 +vtu + + gd +:: +rg + +gCutTeName +() const { + +6794  +m_aiveTeCa + + +6795 ? +m_aiveTeCa +-> +gTeCaInfo +(). +me + + +6796 : +d +:: +rg +(); + +6799 +vtu + cڡ +AsiResu +* +gLaResu +() const { + +6800  & + gm_ϡResu +; + +6803 +vtu +  +exiElyR܋d +() { + +6804 + gm_shouldRtUxed + = +l +; + +6807 +vtu +  +hdFECdi + +d +:: +rg + cڡ& +mesge + ) { + +6810 +AsiResuDa + +mpResu +; + +6811 + gmpResu +. + gsuTy + = +ResuWas +:: +FECdi +; + +6812 + gmpResu +. + gmesge + = +mesge +; + +6813 +AsiResu + +su +( +m_ϡAsiInfo +, +mpResu +); + +6815 +gResuCtu +(). +asiEnded +( +su +); + +6817 +hdUnfishedSeis +(); + +6820 +TeCaInfo + cڡ& + gCaInfo + = +m_aiveTeCa +-> +gTeCaInfo +(); + +6821 +SeiInfo + +CaSei + +CaInfo +. +leInfo +,eCaInfo. +me +,eCaInfo. +desti + ); + +6823 +Cous + + gasis +; + +6824 + gasis +. + ged + = 1; + +6825 +SeiSts + +CaSeiSts + +CaSei +, +asis +, 0, +l + ); + +6826 + gm_p܋r +-> +iEnded + +CaSeiSts + ); + +6828 +TeCaInfo + + gInfo + = +m_aiveTeCa +-> +gTeCaInfo +(); + +6830 +Tٮs + + gdTٮs +; + +6831 + gdTٮs +. + gCas +. + ged + = 1; + +6832 + gdTٮs +. + gasis +. + ged + = 1; + +6833 + gm_p܋r +-> +CaEnded + +TeCaSts + +Info +, + +6834 +dTٮs +, + +6835 +d +:: +rg +(), + +6836 +d +:: +rg +(), + +6837 +l + ) ); + +6838 + gm_tٮs +. + gCas +. + ged +++; + +6839 +GroupEnded + +d +:: +rg +(), +m_tٮs +, 1, 1 ); + +6840 + gm_p܋r +-> +RunEnded + +TeRunSts + +m_runInfo +, +m_tٮs +, +l + ) ); + +6843 + gpublic +: + +6845 +bo + +abtg +() const { + +6846  +m_tٮs +. +asis +. +ed + = +ic_ +< +d +:: +size_t +> +m_cfig +-> +abtA +() ); + +6849 + give +: + +6851  +runCutTe + +d +:: +rg +& +deedCout +, std::rg& +deedCr + ) { + +6852 +TeCaInfo + cڡ& +CaInfo + = +m_aiveTeCa +-> +gTeCaInfo +(); + +6853 +SeiInfo + +CaSei + +CaInfo +. +leInfo +,eCaInfo. +me +,eCaInfo. +desti + ); + +6854 + gm_p܋r +-> +iSg + +CaSei + ); + +6855 +Cous + + gevAsis + = +m_tٮs +. +asis +; + +6856  + gduti + = 0; + +6857 + gm_shouldRtUxed + = +ue +; + +6858 + gy + { + +6859 + gm_ϡAsiInfo + = +AsiInfo +"TEST_CASE", +CaInfo +. +leInfo +, "", +ResuDiosi +:: +Nm + ); + +6861 +edRng +* +m_cfig + ); + +6863 +Tim + + gtim +; + +6864 + gtim +. +t +(); + +6865 if + gm_p܋r +-> +gPns +(). + gshouldRedeStdOut + ) { + +6866 +SmRede + +coutRed + +Cch +:: +cout +(), +deedCout + ); + +6867 +StdERede + +rRed + +deedCr + ); + +6868 +vokeAiveTeCa +(); + +6871 +vokeAiveTeCa +(); + +6873 + gduti + = +tim +. +gEpdSecds +(); + +6875 +tch + +TeFauExi +& ) { + +6878 +tch +(...) { + +6881 i( + gm_shouldRtUxed +) { + +6882 +makeUxedResuBud +(). +uAiveExi +(); + +6885 + gm_CaTck +-> +o +(); + +6886 +hdUnfishedSeis +(); + +6887 + gm_mesges +. +r +(); + +6889 +Cous + + gasis + = +m_tٮs +. +asis + - +evAsis +; + +6890 +bo + + gmissgAsis + = +FMissgAsis + +asis + ); + +6892 if + gCaInfo +. +okToFa +() ) { + +6893 + gd +:: +sw + +asis +. +edButOk +,sis. +ed + ); + +6894 + gm_tٮs +. + gasis +. + ged + - +asis +. +edButOk +; + +6895 + gm_tٮs +. + gasis +. + gedButOk + + +asis +. +edButOk +; + +6898 +SeiSts + +CaSeiSts + +CaSei +, +asis +, +duti +, +missgAsis + ); + +6899 + gm_p܋r +-> +iEnded + +CaSeiSts + ); + +6902  +vokeAiveTeCa +() { + +6903 +FCdiHdr + + glCdiHdr +; + +6904 + gm_aiveTeCa +-> +voke +(); + +6905 + glCdiHdr +. +t +(); + +6908 + give +: + +6910 +ResuBud + +makeUxedResuBud +() const { + +6911  +ResuBud + +m_ϡAsiInfo +. +maoName +, + +6912 +m_ϡAsiInfo +. +leInfo +, + +6913 +m_ϡAsiInfo +. +udExessi +, + +6914 +m_ϡAsiInfo +. +suDiosi + ); + +6917  +hdUnfishedSeis +() { + +6920  + gd +:: +ve +< +SeiEndInfo +>:: +cڡ_v_ + + + = +m_unfishedSeis +. +rbeg +(), + +6921 + gEnd + = +m_unfishedSeis +. +nd +(); + +6922 + g + ! +End +; + +6923 ++ + g + ) + +6924 +iEnded +* + + ); + +6925 + gm_unfishedSeis +. +r +(); + +6928 +TeRunInfo + + gm_runInfo +; + +6929 + gIMubCڋxt +& + gm_cڋxt +; + +6930 +TeCa + cڡ* + gm_aiveTeCa +; + +6931 +ITck +* + gm_CaTck +; + +6932 +ITck +* + gm_cutSeiTck +; + +6933 +AsiResu + + gm_ϡResu +; + +6935 + gP +< +ICfig + cڡ> + gm_cfig +; + +6936 +Tٮs + + gm_tٮs +; + +6937 + gP +< + gISmgR܋r +> + gm_p܋r +; + +6938 + gd +:: +ve +< +MesgeInfo +> +m_mesges +; + +6939 +AsiInfo + + gm_ϡAsiInfo +; + +6940 + gd +:: +ve +< +SeiEndInfo +> +m_unfishedSeis +; + +6941 + gd +:: +ve +< +ITck +*> +m_aiveSeis +; + +6942 +TckCڋxt + + gm_ackCڋxt +; + +6943 +size_t + + gm_evPasd +; + +6944 +bo + + gm_shouldRtUxed +; + +6947 + gIResuCtu +& +gResuCtu +() { + +6948 if +IResuCtu +* + gu + = +gCutCڋxt +(). +gResuCtu +() ) + +6949  * +u +; + +6951 +throw + + gd +:: +logic_r +( "Noesult capture instance" ); + +6957  + #TWOBLUECUBES_CATCH_VERSION_H_INCLUDED + + + ) + +6959 +mea + + gCch + { + +6962  + sVsi + { + +6963 +Vsi + +_majVsi +, + +6964  +_mVsi +, + +6965  +_tchNumb +, + +6966 cڡ * cڡ +_bnchName +, + +6967  +_budNumb + ); + +6969 cڡ + gmajVsi +; + +6970 cڡ + gmVsi +; + +6971 cڡ + gtchNumb +; + +6974 cڡ * cڡ + gbnchName +; + +6975 cڡ + gbudNumb +; + +6977 +nd + + gd +:: +oam +& +ݔ + << ( +d +::oam& +os +, +Vsi + cڡ& + gvsi + ); + +6979 + give +: + +6980  +ݔ += +Vsi + const& ); + +6983 +le + +Vsi + +libryVsi +(); + +6986  + ~ + +6987  + ~ + +6988  + ~ + +6990 +mea + + gCch + { + +6992 + gP +< + gISmgR܋r +> +R܋r + +d +:: +rg + cڡ& +p܋rName +, +P +< +Cfig +> cڡ& +cfig + ) { + +6993 + gP +< + gISmgR܋r +> + gp܋r + = +gRegiryHub +(). +gR܋rRegiry +(). + + +p܋rName +, +cfig +. +g +() ); + +6994 if! + gp܋r + ) { + +6995 + gd +:: +orgam + +oss +; + +6996 + goss + << "Nػp܋gied whame: '" << + gp܋rName + << "'"; + +6997 +throw + + gd +:: +doma_r + +oss +. +r +() ); + +6999  + gp܋r +; + +7002 #i! +defed +( +CATCH_CONFIG_DEFAULT_REPORTER +) + +7003  + #CATCH_CONFIG_DEFAULT_REPORTER + "cse" + + ) + +7006 + gP +< + gISmgR܋r +> +makeR܋r + +P +< +Cfig +> cڡ& +cfig + ) { + +7007 + gd +:: +ve +< +d +:: +rg +> +p܋rs + = +cfig +-> +gR܋rNames +(); + +7008 if + gp܋rs +. +emy +() ) + +7009 + gp܋rs +. +push_back + +CATCH_CONFIG_DEFAULT_REPORTER + ); + +7011 + gP +< + gISmgR܋r +> + gp܋r +; + +7012  + gd +:: +ve +< +d +:: +rg +>:: +cڡ_ + + + = +p܋rs +. +beg +(), + gEnd + =܋rs. +d +(); + +7013 + g + ! +End +; + +7014 ++ + g + ) + +7015 + gp܋r + = +addR܋r + +p܋r +, +R܋r +* + +, +cfig + ) ); + +7016  + gp܋r +; + +7018 + gP +< + gISmgR܋r +> +addLis + +P +< +ICfig + cڡ> cڡ& +cfig +, P< +ISmgR܋r +> +p܋rs + ) { + +7019 + gIR܋rRegiry +:: +Lis + +lis + = +gRegiryHub +(). +gR܋rRegiry +(). +gLis +(); + +7020  + gIR܋rRegiry +:: +Lis +:: +cڡ_ + + + = +lis +. +beg +(), + gEnd + =is. +d +(); + +7021 + g + ! +End +; + +7022 ++ + g + ) + +7023 + gp܋rs + = +addR܋r +( +p܋rs +, (* + +)-> + + +R܋rCfig + +cfig + ) ) ); + +7024  + gp܋rs +; + +7027 +Tٮs + +runTes + +P +< +Cfig +> cڡ& +cfig + ) { + +7029 + gP +< +ICfig + cڡ> + gicfig + = +cfig +. +g +(); + +7031 + gP +< + gISmgR܋r +> + gp܋r + = +makeR܋r + +cfig + ); + +7032 + gp܋r + = +addLis + +icfig +, +p܋r + ); + +7034 +RunCڋxt + +cڋxt + +icfig +, +p܋r + ); + +7036 +Tٮs + + gtٮs +; + +7038 + gcڋxt +. +GroupSg + +cfig +-> +me +(), 1, 1 ); + +7040 +TeSc + + gSc + = +cfig +-> +Sc +(); + +7041 if! + gSc +. +hasFrs +() ) + +7042 + gSc + = +TeScPr + +ITagAlsRegiry +:: +g +(). +r +"~[.]" ). +Sc +(); + +7044 + gd +:: +ve +< +TeCa +> cڡ& +lTeCas + = +gATeCasS܋d +* +icfig + ); + +7045  + gd +:: +ve +< +TeCa +>:: +cڡ_ + + + = +lTeCas +. +beg +(), + gEnd + =TeCas. +d +(); + +7046 + g + ! +End +; + +7047 ++ + g + ) { + +7048 if! + gcڋxt +. +abtg +(&& +mchTe +* + +, +Sc +, * +icfig + ) ) + +7049 + gtٮs + + +cڋxt +. +runTe +* + + ); + +7051 + gp܋r +-> +skTe +* + + ); + +7054 + gcڋxt +. +GroupEnded + +icfig +-> +me +(), +tٮs +, 1, 1 ); + +7055  + gtٮs +; + +7058  +yFamesAsTags + +ICfig + cڡ& +cfig + ) { + +7059 + gd +:: +ve +< +TeCa +> cڡ& +s + = +gATeCasS܋d + +cfig + ); + +7060  + gd +:: +size_t + +i + = 0; + gi + < + gs +. +size +(); ++i ) { + +7061 + gTeCa +& + g + = +cڡ_ +< +TeCa +&> +s +[ +i +] ); + +7062 + gd +:: +t +< +d +:: +rg +> +gs + = + +.tags; + +7064 + gd +:: +rg + +fame + = + +. +leInfo +. +fe +; + +7065 + gd +:: +rg +:: +size_ty + +ϡSsh + = +fame +. +fd_ϡ_of +( "\\/" ); + +7066 if + gϡSsh + ! +d +:: +rg +:: +os + ) + +7067 +fame + = fame. +subr + +ϡSsh ++1 ); + +7069 + gd +:: +rg +:: +size_ty + +ϡD + = +fame +. +fd_ϡ_of +( '.' ); + +7070 if + gϡD + ! +d +:: +rg +:: +os + ) + +7071 +fame + = fame. +subr +0, +ϡD + ); + +7073 + ggs +. + +'#' + +fame + ); + +7074 +tTags + + +, +gs + ); + +7078 as + cSessi + : +NCyab + { + +7079  +bo + +adyIntd +; + +7081 + gpublic +: + +7083  + sOnUnudOis + { + eDoWh + { +Igne +, + gFa + }; }; + +7085 +Sessi +() + +7086 : +m_i + +makeCommdLePr +() ) { + +7087 if +adyIntd + ) { + +7088 +d +:: +rg + +msg + = "Only one instance of Catch::Session canver be used"; + +7089 + gCch +:: + +(<< +msg + << +d +:: +dl +; + +7090 +throw + + gd +:: +logic_r + +msg + ); + +7092 + gadyIntd + = +ue +; + +7094 ~ +Sessi +() { + +7095 + gCch +:: +nUp +(); + +7098  +showHp + +d +:: +rg + cڡ& +ossName + ) { + +7099 +Cch +:: +cout +(<< "\nCch v" << +libryVsi +() << "\n"; + +7101 + gm_i +. +uge + +Cch +:: +cout +(), +ossName + ); + +7102 + gCch +:: +cout +(<< "F mܐda ug shoje docs\n" << +d +:: +dl +; + +7105  +yCommdLe + +gc +, cڡ* cڡ* cڡ +gv +, +OnUnudOis +:: +DoWh + +unudOiBehaviour + = OnUnudOis:: +Fa + ) { + +7106 +y + { + +7107 +m_i +. +tThrowOnUecognidToks + +unudOiBehaviour + = +OnUnudOis +:: +Fa + ); + +7108 + gm_unudToks + = +m_i +. +rIo + +CϿ +:: +gsToVe + +gc +, +gv + ), +m_cfigDa + ); + +7109 if + gm_cfigDa +. + gshowHp + ) + +7110 +showHp + +m_cfigDa +. +ossName + ); + +7111 + gm_cfig +. +t +(); + +7113 +tch + +d +:: +exi +& +ex + ) { + +7115 +Cour + +courGud +Cour:: +Red + ); + +7116 + gCch +:: + +() + +7118 << +Text + +ex +. +wh +(), +TextAribus +(). +tIndt +(2) ) + +7121 + gm_i +. +uge + +Cch +:: +cout +(), +m_cfigDa +. +ossName + ); + +7122  ( + gd +:: +numic_lims +<>:: +max +)(); + +7127  +uCfigDa + +CfigDa + cڡ& +_cfigDa + ) { + +7128 + gm_cfigDa + = +_cfigDa +; + +7129 + gm_cfig +. +t +(); + +7132  +run + +gc +, cڡ* cڡ* cڡ +gv + ) { + +7134  + gtuCode + = +yCommdLe + +gc +, +gv + ); + +7135 if + gtuCode + == 0 ) + +7136 +tuCode + = +run +(); + +7137  + gtuCode +; + +7140 #i +defed +( +WIN32 +&& defed( +UNICODE +) + +7141  +run + +gc +, +wch_t + cڡ* cڡ* cڡ +gv + ) { + +7143 ** + gutf8Argv + = +w + *[ +gc + ]; + +7145   + gi + = 0; i < + ggc +; ++i ) { + +7146  + gbufSize + = +WideChToMuiBy + +CP_UTF8 +, 0, +gv +[ +i +], -1, +NULL +, 0, NULL, NULL ); + +7148 + gutf8Argv +[ +i + ] = +w + [ +bufSize + ]; + +7150 +WideChToMuiBy + +CP_UTF8 +, 0, +gv +[ +i +], -1, +utf8Argv +[i], +bufSize +, +NULL +, NULL ); + +7153  + gtuCode + = +yCommdLe + +gc +, +utf8Argv + ); + +7154 if + gtuCode + == 0 ) + +7155 +tuCode + = +run +(); + +7157   + gi + = 0; i < + ggc +; ++i ) + +7158 + gde + [] + gutf8Argv +[ +i + ]; + +7160 + gde + [] + gutf8Argv +; + +7162  + gtuCode +; + +7166  +run +() { + +7167 if + gm_cfigDa +. + gshowHp + ) + +7170 + gy + + +7172 +cfig +(); + +7174 +edRng +* +m_cfig + ); + +7176 if + gm_cfigDa +. + gfamesAsTags + ) + +7177 +yFamesAsTags +* +m_cfig + ); + +7180 if + gOi +< + gd +:: +size_t +> +lied + = +li + +cfig +() ) ) + +7181  +ic_ +<>* +lied + ); + +7183  + gic_ +<> +runTes + +m_cfig + ). + gasis +. + ged + ); + +7185 +tch + +d +:: +exi +& +ex + ) { + +7186 +Cch +:: + +(<< +ex +. +wh +(<< +d +:: +dl +; + +7187  ( + gd +:: +numic_lims +<>:: +max +)(); + +7191 + gCϿ +:: +CommdLe +< +CfigDa +> cڡ& +i +() const { + +7192  +m_i +; + +7194 + gd +:: +ve +< +CϿ +:: +Pr +:: +Tok +> cڡ& +unudToks +() const { + +7195  +m_unudToks +; + +7197 + gCfigDa +& +cfigDa +() { + +7198  + gm_cfigDa +; + +7200 + gCfig +& +cfig +() { + +7201 if! + gm_cfig + ) + +7202 + gm_cfig + = +w + +Cfig + +m_cfigDa + ); + +7203  * + gm_cfig +; + +7205 + give +: + +7206 +CϿ +:: +CommdLe +< +CfigDa +> +m_i +; + +7207 + gd +:: +ve +< +CϿ +:: +Pr +:: +Tok +> +m_unudToks +; + +7208 +CfigDa + + gm_cfigDa +; + +7209 + gP +< + gCfig +> + gm_cfig +; + +7212 +bo + + gSessi +:: +adyIntd + = +l +; + +7217  + #TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED + + + ) + +7220  + #TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED + + + ) + +7222  + ~ + +7223  + ~ + +7224  + ~ + +7225  + ~ + +7227 +mea + + gCch + { + +7229  + sRdomNumbG + { + +7230  + gd +:: + trdiff_t + + tsu_ty +; + +7232 +su_ty + +ݔ +()лsu_ty + gn + ) cڡ {  + gd +:: +nd +(% +n +; } + +7234 #ifde +CATCH_CONFIG_CPP11_SHUFFLE + + +7235  +cڡex + +su_ty + +m +() {  0; } + +7236  +cڡex + +su_ty + +max +() {  1000000; } + +7237 +su_ty + +ݔ +()(cڡ {  + gd +:: +nd +(% +max +(); } + +7239 + gme +< +tyme + + gV +> + +7240  +shufe + +V +& +ve + ) { + +7241 +RdomNumbG + + gg +; + +7242 #ifde +CATCH_CONFIG_CPP11_SHUFFLE + + +7243 + gd +:: +shufe + +ve +. +beg +(), ve. +d +(), +g + ); + +7245 + gd +:: +ndom_shufe + +ve +. +beg +(), ve. +d +(), +g + ); + +7250 +le + + gd +:: +ve +< +TeCa +> +stTes + +ICfig + cڡ& +cfig +, +d +::ve cڡ& +uns܋dTeCas + ) { + +7252 +d +:: +ve +< +TeCa +> +s܋d + = +uns܋dTeCas +; + +7254  + gcfig +. +runOrd +() ) { + +7255  + gRunTes +:: +InLexicogphilOrd +: + +7256 +d +:: +st + +s܋d +. +beg +(), s܋d. +d +() ); + +7258  + gRunTes +:: +InRdomOrd +: + +7260 +edRng + +cfig + ); + +7261 + gRdomNumbG +:: +shufe + +s܋d + ); + +7264  + gRunTes +:: +InDeiOrd +: + +7268  + gs܋d +; + +7270 +bo + +mchTe + +TeCa + cڡ& +Ca +, +TeSc + cڡ& +Sc +, +ICfig + cڡ& +cfig + ) { + +7271  + gSc +. +mches + +Ca + ) && ( + gcfig +. +lowThrows +(|| ! + gCa +. +throws +() ); + +7274  +fNoDuiTeCas + +d +:: +ve +< +TeCa +> cڡ& +funis + ) { + +7275 +d +:: +t +< +TeCa +> +Funis +; + +7276  + gd +:: +ve +< +TeCa +>:: +cڡ_ + + + = +funis +. +beg +(), + gEnd + = funis. +d +(); + +7277 + g + ! +End +; + +7278 ++ + g + ) { + +7279 + gd +:: + +< +d +:: +t +< +TeCa +>:: +cڡ_ +, + gbo +> + gev + = +Funis +. + +* + + ); + +7280 if! + gev +. + gcd + ) { + +7281 + gd +:: +orgam + +ss +; + +7283 + gss + << +Cour +Cour:: +Red + ) + +7284 << "r: TEST_CASE\"" << + +-> +me + << "\" )lready defined.\n" + +7285 << "\tF s " << +ev +. +f +-> +gTeCaInfo +(). +leInfo + << '\n' + +7286 << "\tRedefed" << + +-> +gTeCaInfo +(). +leInfo + << +d +:: +dl +; + +7288 +throw + + gd +:: +ruime_r +( +ss +. +r +()); + +7293 + gd +:: +ve +< +TeCa +> +frTes + +d +::ve cڡ& +Cas +, +TeSc + cڡ& +Sc +, +ICfig + cڡ& +cfig + ) { + +7294 + gd +:: +ve +< +TeCa +> +fd +; + +7295 + gfd +. +rve + +Cas +. +size +() ); + +7296  + gd +:: +ve +< +TeCa +>:: +cڡ_ + + + = +Cas +. +beg +(), + gEnd + =eCas. +d +(); + +7297 + g + ! +End +; + +7298 ++ + g + ) + +7299 if +mchTe +* + +, +Sc +, +cfig + ) ) + +7300 + gfd +. +push_back +* + + ); + +7301  + gfd +; + +7303 + gd +:: +ve +< +TeCa +> cڡ& +gATeCasS܋d + +ICfig + cڡ& +cfig + ) { + +7304  +gRegiryHub +(). +gTeCaRegiry +(). +gATesS܋d + +cfig + ); + +7307 as + cTeRegiry + : +public + +ITeCaRegiry + { + +7308 +public +: + +7309 +TeRegiry +() + +7310 : +m_cutStOrd + +RunTes +:: +InDeiOrd + ), + +7311 +m_uamedCou +( 0 ) + +7313 + gvtu + ~ +TeRegiry +(); + +7315 +vtu +  +giTe + +TeCa + cڡ& +Ca + ) { + +7316 + gd +:: +rg + +me + = +Ca +. +gTeCaInfo +().name; + +7317 if + gme +. +emy +() ) { + +7318 + gd +:: +orgam + +oss +; + +7319 + goss + << "Anymou ca " << ++ + gm_uamedCou +; + +7320  +giTe + +Ca +. +whName + +oss +. +r +() ) ); + +7322 + gm_funis +. +push_back + +Ca + ); + +7325 +vtu + + gd +:: +ve +< +TeCa +> cڡ& +gATes +() const { + +7326  +m_funis +; + +7328 +vtu + + gd +:: +ve +< +TeCa +> cڡ& +gATesS܋d + +ICfig + cڡ& +cfig + ) const { + +7329 if +m_s܋dFunis +. +emy +() ) + +7330 +fNoDuiTeCas + +m_funis + ); + +7332 if + gm_cutStOrd + ! +cfig +. +runOrd +(|| +m_s܋dFunis +. +emy +() ) { + +7333 +m_s܋dFunis + = +stTes + +cfig +, +m_funis + ); + +7334 + gm_cutStOrd + = +cfig +. +runOrd +(); + +7336  + gm_s܋dFunis +; + +7339 + give +: + +7340 +d +:: +ve +< +TeCa +> +m_funis +; + +7341 +mub + + gRunTes +:: +InWhOrd + +m_cutStOrd +; + +7342 +mub + + gd +:: +ve +< +TeCa +> +m_s܋dFunis +; + +7343 +size_t + + gm_uamedCou +; + +7344 + gd +:: +ios_ba +:: +In + +m_oamIn +; + +7349 +ass + + gFeFuniTeCa + : +public + +ShedIm +< +ITeCa +> { + +7350 +public +: + +7352 +FeFuniTeCa + +TeFuni + +fun + ) : +m_fun +( fun ) {} + +7354 +vtu +  +voke +() const { + +7355 +m_fun +(); + +7358 + give +: + +7359 +vtu + ~ +FeFuniTeCa +(); + +7361 +TeFuni + + gm_fun +; + +7364 +le + + gd +:: +rg + +exaCssName + +d +::rg cڡ& +assOrQuifdMhodName + ) { + +7365 +d +:: +rg + +assName + = +assOrQuifdMhodName +; + +7366 if +tsWh + +assName +, '&' ) ) + +7368 + gd +:: +size_t + +ϡCs + = +assName +. +rfd +( "::" ); + +7369 + gd +:: +size_t + +nuimeCs + = +assName +. +rfd +"::", +ϡCs +-1 ); + +7370 if + gnuimeCs + = +d +:: +rg +:: +os + ) + +7371 +nuimeCs + = 1; + +7372 + gassName + = +assName +. +subr + +nuimeCs +, +ϡCs +-penultimateColons ); + +7374  + gassName +; + +7377  + ggiTeCa + + +7378 +ITeCa +* + gCa +, + +7379 cڡ* + gassOrQuifdMhodName +, + +7380 +NameAndDesc + cڡ& + gmeAndDesc +, + +7381 +SourLeInfo + cڡ& + gleInfo + ) { + +7383 +gMubRegiryHub +(). + ggiTe + + +7384 + gmakeTeCa + + +7385 + gCa +, + +7386 +exaCssName + +assOrQuifdMhodName + ), + +7387 + gmeAndDesc +. + gme +, + +7388 + gmeAndDesc +. + gdesti +, + +7389 + gleInfo + ) ); + +7391  + ggiTeCaFuni + + +7392 +TeFuni + + gfuni +, + +7393 +SourLeInfo + cڡ& + gleInfo +, + +7394 +NameAndDesc + cڡ& + gmeAndDesc + ) { + +7395 +giTeCa + +w + +FeFuniTeCa + +funi + ), "", +meAndDesc +, +leInfo + ); + +7400 + gAutoReg +:: +AutoReg + + +7401 +TeFuni + +funi +, + +7402 +SourLeInfo + cڡ& + gleInfo +, + +7403 +NameAndDesc + cڡ& + gmeAndDesc + ) { + +7404 +giTeCaFuni + +funi +, +leInfo +, +meAndDesc + ); + +7407 + gAutoReg +::~ +AutoReg +() {} + +7412  + #TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED + + + ) + +7414  + ~ + +7416 +mea + +Cch + { + +7418 as + cR܋rRegiry + : +public + +IR܋rRegiry + { + +7420 +public +: + +7422 +vtu + ~ +R܋rRegiry +( +CATCH_OVERRIDE + {} + +7424 +vtu + +ISmgR܋r +* + + +d +:: +rg + cڡ& +me +, +P +< +ICfig + cڡ> cڡ& +cfig + ) cڡ + gCATCH_OVERRIDE + { + +7425 + gFayM +:: +cڡ_ + + + = +m_ܛs +. +fd + +me + ); + +7426 if + g + = +m_ܛs +. +d +() ) + +7427  +CATCH_NULL +; + +7428  + g +-> + gcd +-> + + +R܋rCfig + +cfig + ) ); + +7431  +giR܋r + +d +:: +rg + cڡ& +me +, +P +< +IR܋rFay +> cڡ& +y + ) { + +7432 + gm_ܛs +. + + +d +:: +make_ + +me +, +y + ) ); + +7434  +giLi + +P +< +IR܋rFay +> cڡ& +y + ) { + +7435 + gm_lis +. +push_back + +y + ); + +7438 +vtu + +FayM + cڡ& +gFaܛs +(cڡ + gCATCH_OVERRIDE + { + +7439  + gm_ܛs +; + +7441 +vtu + +Lis + cڡ& +gLis +(cڡ + gCATCH_OVERRIDE + { + +7442  + gm_lis +; + +7445 + give +: + +7446 +FayM + +m_ܛs +; + +7447 +Lis + + gm_lis +; + +7452  + #TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED + + + ) + +7454 #ifde +__OBJC__ + + +7458 +mea + + gCch + { + +7460 as + cExiTnRegiry + : +public + +IExiTnRegiry + { + +7461 +public +: + +7462 ~ +ExiTnRegiry +() { + +7463 +deA + +m_s + ); + +7466 +vtu +  +giTn +cڡ +IExiTn +* + + ) { + +7467 + gm_s +. +push_back + + + ); + +7470 +vtu + + gd +:: +rg + +eAiveExi +() const { + +7471 +y + { + +7472 #ifde +__OBJC__ + + +7474 @ +y + { + +7475  +yTns +(); + +7477 @ +tch + ( +NSExi + * +exi +) { + +7478  + gCch +:: +toSg +[ +exi + +desti +] ); + +7481  +yTns +(); + +7484 +tch + +TeFauExi +& ) { + +7485 + gthrow +; + +7487 +tch + +d +:: +exi +& +ex + ) { + +7488  +ex +. +wh +(); + +7490 +tch + +d +:: +rg +& +msg + ) { + +7491  +msg +; + +7493 +tch +cڡ * +msg + ) { + +7494  + gmsg +; + +7496 +tch +(...) { + +7501 + gd +:: +rg + +yTns +() const { + +7502 if +m_s +. +emy +() ) + +7503 +throw +; + +7505  + gm_s +[0]-> +e + +m_s +. +beg +()+1, m_s. +d +() ); + +7508 + give +: + +7509 +d +:: +ve + +m_s +; + +7514  + #TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED + + + ) + +7516  + ~ + +7518 +mea + + gCch + { + +7520 as + cTagAlsRegiry + : +public + +ITagAlsRegiry + { + +7521 +public +: + +7522 +vtu + ~ +TagAlsRegiry +(); + +7523 +vtu + + gOi +< + gTagAls +> +fd + +d +:: +rg + cڡ& +s + ) const; + +7524 +vtu + + gd +:: +rg + +exndAls + +d +::rg cڡ& +uxndedTeSc + ) const; + +7525  +add + +d +:: +rg + cڡ& +s +, std::rg cڡ& +g +, +SourLeInfo + cڡ& +leInfo + ); + +7527 + give +: + +7528 +d +:: +m + + gm_giry +; + +7533 +mea + + gCch + { + +7535 + gmea + { + +7537 +ass + + gRegiryHub + : +public + +IRegiryHub +,ubli + gIMubRegiryHub + { + +7539 +RegiryHub +( RegistryHub const& ); + +7540  + gݔ += +RegiryHub + const& ); + +7542 + gpublic +: + +7543 +RegiryHub +() { + +7545 +vtu + +IR܋rRegiry + cڡ& +gR܋rRegiry +(cڡ +CATCH_OVERRIDE + { + +7546  +m_p܋rRegiry +; + +7548 +vtu + +ITeCaRegiry + cڡ& +gTeCaRegiry +(cڡ + gCATCH_OVERRIDE + { + +7549  + gm_CaRegiry +; + +7551 +vtu + + gIExiTnRegiry +& +gExiTnRegiry +( + gCATCH_OVERRIDE + { + +7552  + gm_exiTnRegiry +; + +7554 +vtu + +ITagAlsRegiry + cڡ& +gTagAlsRegiry +(cڡ + gCATCH_OVERRIDE + { + +7555  + gm_gAlsRegiry +; + +7558 + gpublic +: + +7559 +vtu +  +giR܋r + +d +:: +rg + cڡ& +me +, +P +< +IR܋rFay +> cڡ& +y + ) + gCATCH_OVERRIDE + { + +7560 + gm_p܋rRegiry +. +giR܋r + +me +, +y + ); + +7562 +vtu +  +giLi + +P +< +IR܋rFay +> cڡ& +y + ) + gCATCH_OVERRIDE + { + +7563 + gm_p܋rRegiry +. +giLi + +y + ); + +7565 +vtu +  +giTe + +TeCa + cڡ& +Info + ) + gCATCH_OVERRIDE + { + +7566 + gm_CaRegiry +. +giTe + +Info + ); + +7568 +vtu +  +giTn +cڡ +IExiTn +* + + ) + gCATCH_OVERRIDE + { + +7569 + gm_exiTnRegiry +. +giTn + + + ); + +7571 +vtu +  +giTagAls + +d +:: +rg + cڡ& +s +, std::rg cڡ& +g +, +SourLeInfo + cڡ& +leInfo + ) + gCATCH_OVERRIDE + { + +7572 + gm_gAlsRegiry +. +add + +s +, +g +, +leInfo + ); + +7575 + give +: + +7576 +TeRegiry + +m_CaRegiry +; + +7577 +R܋rRegiry + + gm_p܋rRegiry +; + +7578 +ExiTnRegiry + + gm_exiTnRegiry +; + +7579 +TagAlsRegiry + + gm_gAlsRegiry +; + +7583 +le + + gRegiryHub +*& +gTheRegiryHub +() { + +7584  +RegiryHub +* + gtheRegiryHub + = +CATCH_NULL +; + +7585 if! + gtheRegiryHub + ) + +7586 + gtheRegiryHub + = +w + +RegiryHub +(); + +7587  + gtheRegiryHub +; + +7591 + gIRegiryHub +& +gRegiryHub +() { + +7592  * +gTheRegiryHub +(); + +7594 + gIMubRegiryHub +& +gMubRegiryHub +() { + +7595  * +gTheRegiryHub +(); + +7597  +nUp +() { + +7598 +de + +gTheRegiryHub +(); + +7599 +gTheRegiryHub +( +CATCH_NULL +; + +7600 +nUpCڋxt +(); + +7602 + gd +:: +rg + +eAiveExi +() { + +7603  +gRegiryHub +(). +gExiTnRegiry +(). +eAiveExi +(); + +7609  + #TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED + + + ) + +7611  + ~ + +7613 +mea + + gCch + { + +7615 + gNImemdExi +:: +NImemdExi + +SourLeInfo + cڡ& +leInfo + ) + +7616 : +m_leInfo + +leInfo + ) { + +7617 +d +:: +orgam + +oss +; + +7618 + goss + << + gleInfo + << ": function "; + +7619 + goss + << "not implemented"; + +7620 + gm_wh + = +oss +. +r +(); + +7623 cڡ * + gNImemdExi +:: +wh +(cڡ +CATCH_NOEXCEPT + { + +7624  +m_wh +. +c_r +(); + +7630  + #TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED + + + ) + +7633  + #TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED + + + ) + +7635  + ~ + +7636  + ~ + +7637  + ~ + +7639 +mea + + gCch + { + +7641 + gme +< +tyme + + gWrF +, +size_t + + gbufrSize +=256> + +7642 as + cSmBufIm + : +public + +SmBufBa + { + +7643  +da +[ +bufrSize +]; + +7644 +WrF + + gm_wr +; + +7646 + gpublic +: + +7647 +SmBufIm +() { + +7648 + + +da +, data + (data) ); + +7651 ~ +SmBufIm +( + gCATCH_NOEXCEPT + { + +7652 +sync +(); + +7655 + give +: + +7656  +ovow + +c + ) { + +7657 +sync +(); + +7659 if + gc + ! +EOF + ) { + +7660 if +pba +(= +r +() ) + +7661 +m_wr + +d +:: +rg +1, +ic_ +<> +c + ) ) ); + +7663 +utc + +ic_ +<> +c + ) ); + +7668  +sync +() { + +7669 if +pba +(! + +() ) { + +7670 +m_wr + +d +:: +rg + +pba +(), +ic_ + + +() -base() ) ) ); + +7671 + + +pba +(), +r +() ); + +7679 + gFeSm +:: +FeSm + +d +:: +rg + cڡ& +fame + ) { + +7680 +m_ofs +. +ݒ + +fame +. +c_r +() ); + +7681 if + gm_ofs +. + +() ) { + +7682 + gd +:: +orgam + +oss +; + +7683 + goss + << "Ubˁݒ fe: '" << + gfame + << '\''; + +7684 +throw + + gd +:: +doma_r + +oss +. +r +() ); + +7688 + gd +:: +oam +& +FeSm +:: +am +() const { + +7689  +m_ofs +; + +7692  + sOuutDebugWr + { + +7694  +ݔ +() + gd +:: +rg + cڡ& +r + ) { + +7695 +wreToDebugCse + +r + ); + +7699 + gDebugOutSm +:: +DebugOutSm +() + +7700 : +m_amBuf + +w + +SmBufIm +< +OuutDebugWr +>() ), + +7701 +m_os + +m_amBuf +. +g +() ) + +7704 + gd +:: +oam +& +DebugOutSm +:: +am +() const { + +7705  +m_os +; + +7710 + gCoutSm +:: +CoutSm +() + +7711 : +m_os + +Cch +:: +cout +(). +rdbuf +() ) + +7714 +d +:: +oam +& +CoutSm +:: +am +() const { + +7715  +m_os +; + +7718 #ide +CATCH_CONFIG_NOSTDOUT + + +7719 + gd +:: +oam +& +cout +() { + +7720  +d +:: +cout +; + +7722 + gd +:: +oam +& + +() { + +7723  +d +:: + +; + +7725 + gd +:: +oam +& +og +() { + +7726  +d +:: +og +; + +7731 +mea + + gCch + { + +7733 as + cCڋxt + : +public + +IMubCڋxt + { + +7735 +Cڋxt +(: +m_cfig + +CATCH_NULL + ), +m_ru” +CATCH_NULL ), +m_suCtu +( CATCH_NULL ) {} + +7736 +Cڋxt +( Context const& ); + +7737  + gݔ += +Cڋxt + const& ); + +7739 + gpublic +: + +7740 +vtu + ~ +Cڋxt +() { + +7741 +deAVues + +m_gsByTeName + ); + +7744 + gpublic +: + +7745 +vtu + +IResuCtu +* +gResuCtu +() { + +7746  +m_suCtu +; + +7748 +vtu + +IRu” +* +gRu” +() { + +7749  + gm_ru” +; + +7751 +vtu + +size_t + +gGIndex + +d +:: +rg + cڡ& +feInfo +, size_ +tٮSize + ) { + +7752  +gGsFCutTe +() + +7753 . +gGInfo + +feInfo +, +tٮSize + ) + +7754 . +gCutIndex +(); + +7756 +vtu + +bo + +advGsFCutTe +() { + +7757 +IGsFTe +* + ggs + = +fdGsFCutTe +(); + +7758  + ggs + && gs-> +moveNext +(); + +7761 +vtu + + gP +< +ICfig + cڡ> +gCfig +() const { + +7762  + gm_cfig +; + +7765 + gpublic +: + +7766 +vtu +  +tResuCtu + +IResuCtu +* +suCtu + ) { + +7767 +m_suCtu + = +suCtu +; + +7769 +vtu +  +tRu” + +IRu” +* +ru” + ) { + +7770 + gm_ru” + = +ru” +; + +7772 +vtu +  +tCfig + +P +< +ICfig + cڡ> cڡ& +cfig + ) { + +7773 + gm_cfig + = +cfig +; + +7776 +nd + + gIMubCڋxt +& +gCutMubCڋxt +(); + +7778 + give +: + +7779 +IGsFTe +* +fdGsFCutTe +() { + +7780 +d +:: +rg + +Name + = +gResuCtu +()-> +gCutTeName +(); + +7782 + gd +:: +m +< +d +:: +rg +, + gIGsFTe +*>:: +cڡ_ + + + = + +7783 +m_gsByTeName +. +fd + +Name + ); + +7784  + g + ! +m_gsByTeName +. +d +() + +7785 ? + +-> +cd + + +7786 : +CATCH_NULL +; + +7789 + gIGsFTe +& +gGsFCutTe +() { + +7790 +IGsFTe +* + ggs + = +fdGsFCutTe +(); + +7791 if! + ggs + ) { + +7792 + gd +:: +rg + +Name + = +gResuCtu +()-> +gCutTeName +(); + +7793 + ggs + = +GsFTe +(); + +7794 + gm_gsByTeName +. + + +d +:: +make_ + +Name +, +gs + ) ); + +7796  * + ggs +; + +7799 + give +: + +7800 +P +< +ICfig + cڡ> +m_cfig +; + +7801 +IRu” +* + gm_ru” +; + +7802 +IResuCtu +* + gm_suCtu +; + +7803 + gd +:: +m +< +d +:: +rg +, + gIGsFTe +*> + gm_gsByTeName +; + +7806 + gmea + { + +7807 +Cڋxt +* + gcutCڋxt + = +CATCH_NULL +; + +7809 + gIMubCڋxt +& +gCutMubCڋxt +() { + +7810 if! + gcutCڋxt + ) + +7811 + gcutCڋxt + = +w + +Cڋxt +(); + +7812  * + gcutCڋxt +; + +7814 + gICڋxt +& +gCutCڋxt +() { + +7815  +gCutMubCڋxt +(); + +7818  +nUpCڋxt +() { + +7819 +de + + gcutCڋxt +; + +7820 + gcutCڋxt + = +CATCH_NULL +; + +7825  + #TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED + + + ) + +7828  + #TWOBLUECUBES_CATCH_ERRNO_GUARD_HPP_INCLUDED + + + ) + +7830  + ~ + +7832 +mea + + gCch + { + +7834 as + cEnoGud + { + +7835 + gpublic +: + +7836 +EnoGud +(): +m_dEno +( +o +){} + +7837 ~ +EnoGud +({ +o + = +m_dEno +; } + +7838 + give +: + +7839  +m_dEno +; + +7844 +mea + + gCch + { + +7845 + gmea + { + +7847  + sICourIm + { + +7848 + gvtu + ~ +ICourIm +() {} + +7849 +vtu +  +u + +Cour +:: +Code + +_courCode + ) = 0; + +7852  + gNoCourIm + : +ICourIm + { + +7853  +u + +Cour +:: +Code + ) {} + +7855  +ICourIm +* + +() { + +7856  +NoCourIm + +s_ +; + +7857  & + gs_ +; + +7864 #i! +defed + +CATCH_CONFIG_COLOUR_NONE + ) && !defed +CATCH_CONFIG_COLOUR_WINDOWS + ) && ! + $defed + +CATCH_CONFIG_COLOUR_ANSI + ) + +7865 #ifde +CATCH_PLATFORM_WINDOWS + + +7866  + #CATCH_CONFIG_COLOUR_WINDOWS + + + ) + +7868  + #CATCH_CONFIG_COLOUR_ANSI + + + ) + +7872 #i + $defed + ( +CATCH_CONFIG_COLOUR_WINDOWS + ) + +7874 +mea + +Cch + { + +7875 +mea + { + +7877 as + cW32CourIm + : +public + +ICourIm + { + +7878 +public +: + +7879 + `W32CourIm +(: + `doutHd + + `GStdHd +( +STD_OUTPUT_HANDLE +) ) + +7881 +CONSOLE_SCREEN_BUFFER_INFO + +csbiInfo +; + +7882 + `GCseSnBufrInfo + +doutHd +, & +csbiInfo + ); + +7883 +igFegroundAribus + = +csbiInfo +. +wAribus + & ~ +BACKGROUND_GREEN + | +BACKGROUND_RED + | +BACKGROUND_BLUE + | +BACKGROUND_INTENSITY + ); + +7884 +igBackgroundAribus + = +csbiInfo +. +wAribus + & ~ +FOREGROUND_GREEN + | +FOREGROUND_RED + | +FOREGROUND_BLUE + | +FOREGROUND_INTENSITY + ); + +7887 +vtu +  + `u + +Cour +:: +Code + +_courCode + ) { + +7888  +_courCode + ) { + +7889  +Cour +:: +Ne +:  + `tTextAribu + +igFegroundAribus + ); + +7890  +Cour +:: +Whe +:  + `tTextAribu + +FOREGROUND_GREEN + | +FOREGROUND_RED + | +FOREGROUND_BLUE + ); + +7891  +Cour +:: +Red +:  + `tTextAribu + +FOREGROUND_RED + ); + +7892  +Cour +:: +G +:  + `tTextAribu + +FOREGROUND_GREEN + ); + +7893  +Cour +:: +Blue +:  + `tTextAribu + +FOREGROUND_BLUE + ); + +7894  +Cour +:: +Cy +:  + `tTextAribu + +FOREGROUND_BLUE + | +FOREGROUND_GREEN + ); + +7895  +Cour +:: +Ylow +:  + `tTextAribu + +FOREGROUND_RED + | +FOREGROUND_GREEN + ); + +7896  +Cour +:: +Gy +:  + `tTextAribu +( 0 ); + +7898  +Cour +:: +LightGy +:  + `tTextAribu + +FOREGROUND_INTENSITY + ); + +7899  +Cour +:: +BrightRed +:  + `tTextAribu + +FOREGROUND_INTENSITY + | +FOREGROUND_RED + ); + +7900  +Cour +:: +BrightG +:  + `tTextAribu + +FOREGROUND_INTENSITY + | +FOREGROUND_GREEN + ); + +7901  +Cour +:: +BrightWhe +:  + `tTextAribu + +FOREGROUND_INTENSITY + | +FOREGROUND_GREEN + | +FOREGROUND_RED + | +FOREGROUND_BLUE + ); + +7903  +Cour +:: +Bright +: +throw + +d +:: + `logic_r +( "not colour" ); + +7907 +ive +: + +7908  + `tTextAribu + +WORD + +_xtAribu + ) { + +7909 + `SCseTextAribu + +doutHd +, +_xtAribu + | +igBackgroundAribus + ); + +7911 +HANDLE + +doutHd +; + +7912 +WORD + +igFegroundAribus +; + +7913 +WORD + +igBackgroundAribus +; + +7916 +ICourIm +* + `fmCourIn +() { + +7917  +W32CourIm + +s_ +; + +7919 +P +< +ICfig + cڡ> +cfig + = + `gCutCڋxt +(). + `gCfig +(); + +7920 +UCour +:: +YesOrNo + +courMode + = +cfig + + +7921 ? +cfig +-> + `uCour +() + +7922 : +UCour +:: +Auto +; + +7923 if +courMode + = +UCour +:: +Auto + ) + +7924 +courMode + = ! + `isDebuggAive +() + +7925 ? +UCour +:: +Yes + + +7926 : +UCour +:: +No +; + +7927  +courMode + = +UCour +:: +Yes + + +7928 ? & +s_ + + +7929 : +NoCourIm +:: + ` +(); + +7933 + } +} + +7935 #i + $defed + +CATCH_CONFIG_COLOUR_ANSI + ) + +7937  + ~ + +7939 +mea + +Cch + { + +7940 +mea + { + +7946 as + cPosixCourIm + : +public + +ICourIm + { + +7947 +public +: + +7948 +vtu +  + `u + +Cour +:: +Code + +_courCode + ) { + +7949  +_courCode + ) { + +7950  +Cour +:: +Ne +: + +7951  +Cour +:: +Whe +:  + `tCour +( "[0m" ); + +7952  +Cour +:: +Red +:  + `tCour +( "[0;31m" ); + +7953  +Cour +:: +G +:  + `tCour +( "[0;32m" ); + +7954  +Cour +:: +Blue +:  + `tCour +( "[0;34m" ); + +7955  +Cour +:: +Cy +:  + `tCour +( "[0;36m" ); + +7956  +Cour +:: +Ylow +:  + `tCour +( "[0;33m" ); + +7957  +Cour +:: +Gy +:  + `tCour +( "[1;30m" ); + +7959  +Cour +:: +LightGy +:  + `tCour +( "[0;37m" ); + +7960  +Cour +:: +BrightRed +:  + `tCour +( "[1;31m" ); + +7961  +Cour +:: +BrightG +:  + `tCour +( "[1;32m" ); + +7962  +Cour +:: +BrightWhe +:  + `tCour +( "[1;37m" ); + +7964  +Cour +:: +Bright +: +throw + +d +:: + `logic_r +( "not colour" ); + +7967  +ICourIm +* + ` +() { + +7968  +PosixCourIm + +s_ +; + +7969  & +s_ +; + +7972 +ive +: + +7973  + `tCour +cڡ * +_esCode + ) { + +7974 +Cch +:: + `cout +(<< '\033' << +_esCode +; + +7978 +ICourIm +* + `fmCourIn +() { + +7979 +EnoGud + +gud +; + +7980 +P +< +ICfig + cڡ> +cfig + = + `gCutCڋxt +(). + `gCfig +(); + +7981 +UCour +:: +YesOrNo + +courMode + = +cfig + + +7982 ? +cfig +-> + `uCour +() + +7983 : +UCour +:: +Auto +; + +7984 if +courMode + = +UCour +:: +Auto + ) + +7985 +courMode + = (! + `isDebuggAive +(&& + `iy +( +STDOUT_FILENO +) ) + +7986 ? +UCour +:: +Yes + + +7987 : +UCour +:: +No +; + +7988  +courMode + = +UCour +:: +Yes + + +7989 ? +PosixCourIm +:: + ` +() + +7990 : +NoCourIm +:: + ` +(); + +7994 + } +} + +7998 +mea + + gCch + { + +8000  +ICourIm +* +fmCourIn +({  + gNoCourIm +:: + +(); } + +8006 +mea + + gCch + { + +8008 + gCour +:: +Cour + +Code + +_courCode + ) : +m_moved + +l + ) { +u +( _colourCode ); } + +8009 + gCour +:: +Cour +Coucڡ& +_h + ) : +m_moved + +l + ) { +cڡ_ +_h ).m_moved = +ue +; } + +8010 + gCour +::~ +Cour +(){ if! +m_moved + ) +u + +Ne + ); } + +8012  + gCour +:: +u + +Code + +_courCode + ) { + +8013  +ICourIm +* +im + = +fmCourIn +(); + +8014 + gim +-> +u + +_courCode + ); + +8020  + #TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED + + + ) + +8022  + ~ + +8023  + ~ + +8024  + ~ + +8026 +mea + + gCch + { + +8028  + gGInfo + : +IGInfo + { + +8030 +GInfo + +d +:: +size_t + +size + ) + +8031 : +m_size + +size + ), + +8032 +m_cutIndex +( 0 ) + +8035 +bo + +moveNext +() { + +8036 if++ + gm_cutIndex + = +m_size + ) { + +8037 +m_cutIndex + = 0; + +8038  + gl +; + +8040  + gue +; + +8043 + gd +:: +size_t + +gCutIndex +() const { + +8044  +m_cutIndex +; + +8047 + gd +:: +size_t + +m_size +; + +8048 + gd +:: +size_t + +m_cutIndex +; + +8053 as + cGsFTe + : +public + +IGsFTe + { + +8055 +public +: + +8056 ~ +GsFTe +() { + +8057 +deA + +m_gsInOrd + ); + +8060 + gIGInfo +& +gGInfo + +d +:: +rg + cڡ& +feInfo +, std:: +size_t + +size + ) { + +8061 +d +:: +m +:: +cڡ_ + + + = +m_gsByName +. +fd + +feInfo + ); + +8062 if + g + = +m_gsByName +. +d +() ) { + +8063 +IGInfo +* +fo + = +w + +GInfo + +size + ); + +8064 + gm_gsByName +. + + +d +:: +make_ + +feInfo +, +fo + ) ); + +8065 + gm_gsInOrd +. +push_back + +fo + ); + +8066  * + gfo +; + +8068  * + g +-> + gcd +; + +8071 +bo + +moveNext +() { + +8072 + gd +:: +ve +< +IGInfo +*>:: +cڡ_ + + + = +m_gsInOrd +. +beg +(); + +8073 + gd +:: +ve +< +IGInfo +*>:: +cڡ_ + +End + = +m_gsInOrd +. +d +(); + +8074 ; + g + ! +End +; ++it ) { + +8075 if(* + g +)-> +moveNext +() ) + +8076  + gue +; + +8078  + gl +; + +8081 + give +: + +8082 +d +:: +m + + gm_gsByName +; + +8083 + gd +:: +ve +< +IGInfo +*> +m_gsInOrd +; + +8086 +IGsFTe +* +GsFTe +() + +8088  +w + +GsFTe +(); + +8094  + #TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED + + + ) + +8096 +mea + + gCch + { + +8098 + gAsiInfo +:: +AsiInfo +(): +maoName +(""), +udExessi +(""), +suDiosi +( +ResuDiosi +:: +Nm +), +cdArg +(""){} + +8100 + gAsiInfo +:: +AsiInfo +cڡ * +_maoName +, + +8101 +SourLeInfo + cڡ& +_leInfo +, + +8102 cڡ * +_udExessi +, + +8103 +ResuDiosi +:: +Fgs + +_suDiosi +, + +8104 cڡ * +_cdArg +) + +8105 : +maoName + +_maoName + ), + +8106 +leInfo + +_leInfo + ), + +8107 +udExessi + +_udExessi + ), + +8108 +suDiosi + +_suDiosi + ), + +8109 +cdArg + +_cdArg + ) + +8112 + gAsiResu +:: +AsiResu +() {} + +8114 +AsiResu +::AsiResu +AsiInfo + cڡ& +fo +, +AsiResuDa + cڡ& +da + ) + +8115 : +m_fo + +fo + ), + +8116 +m_suDa + +da + ) + +8119 + gAsiResu +::~ +AsiResu +() {} + +8122 +bo + +AsiResu +:: +suceded +() const { + +8123  +Cch +:: +isOk + +m_suDa +. +suTy + ); + +8127 +bo + + gAsiResu +:: +isOk +() const { + +8128  +Cch +:: +isOk + +m_suDa +. +suTy + ) || +shouldSussFau + +m_fo +. +suDiosi + ); + +8131 + gResuWas +:: +OfTy + +AsiResu +:: +gResuTy +() const { + +8132  +m_suDa +. +suTy +; + +8135 +bo + + gAsiResu +:: +hasExessi +() const { + +8136  +m_fo +. +udExessi +[0] != 0; + +8139 +bo + + gAsiResu +:: +hasMesge +() const { + +8140  ! +m_suDa +. +mesge +. +emy +(); + +8143 + gd +:: +rg + +udExessiWhSecdArgumt +cڡ * +udExessi +, cڡ * +cdArg + ) { + +8144  ( + gcdArg +[0] =0 || +cdArg +[0] == '"' && secondArg[1] == '"') + +8145 ? +udExessi + + +8146 : +d +:: +rg +( +udExessi ++ ", " + +cdArg +; + +8149 + gd +:: +rg + +AsiResu +:: +gExessi +() const { + +8150 if +isFTe + +m_fo +. +suDiosi + ) ) + +8151  '!' + +udExessiWhSecdArgumt +( +m_fo +. +udExessi +, m_fo. +cdArg +); + +8153  +udExessiWhSecdArgumt +( +m_fo +. +udExessi +, m_fo. +cdArg +); + +8155 + gd +:: +rg + +AsiResu +:: +gExessiInMao +() const { + +8156 if +m_fo +. +maoName +[0] == 0 ) + +8157  +udExessiWhSecdArgumt +( +m_fo +. +udExessi +, m_fo. +cdArg +); + +8159  + gd +:: +rg +( +m_fo +. +maoName ++ "" + +udExessiWhSecdArgumt +(m_fo. +udExessi +, m_fo. +cdArg +) + " )"; + +8162 +bo + + gAsiResu +:: +hasExndedExessi +() const { + +8163  +hasExessi +(&& +gExndedExessi +(! +gExessi +(); + +8166 + gd +:: +rg + +AsiResu +:: +gExndedExessi +() const { + +8167  +m_suDa +. +cڡruExessi +(); + +8170 + gd +:: +rg + +AsiResu +:: +gMesge +() const { + +8171  +m_suDa +. +mesge +; + +8173 +SourLeInfo + + gAsiResu +:: +gSourInfo +() const { + +8174  +m_fo +. +leInfo +; + +8177 + gd +:: +rg + +AsiResu +:: +gTeMaoName +() const { + +8178  +m_fo +. +maoName +; + +8181  + gAsiResu +:: +disrdDecompodExessi +() const { + +8182 +m_suDa +. +decompodExessi + = +CATCH_NULL +; + +8185  + gAsiResu +:: +exndDecompodExessi +() const { + +8186 +m_suDa +. +cڡruExessi +(); + +8192  + #TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED + + + ) + +8194  + ~ + +8196 +mea + + gCch + { + +8198 +le + + gTeCaInfo +:: +SclPrݔts + +rSclTag + +d +:: +rg + cڡ& +g + ) { + +8199 if +tsWh + +g +, '.' ) || + +8200 + gg + == "hide" || + +8201 +g + == "!hide" ) + +8202  +TeCaInfo +:: +IsHidd +; + +8203 if + gg + == "!throws" ) + +8204  +TeCaInfo +:: +Throws +; + +8205 if + gg + == "!shouldfail" ) + +8206  +TeCaInfo +:: +ShouldFa +; + +8207 if + gg + == "!mayfail" ) + +8208  +TeCaInfo +:: +MayFa +; + +8209 if + gg + == "!nonportable" ) + +8210  +TeCaInfo +:: +NP܏b +; + +8212  + gTeCaInfo +:: +Ne +; + +8214 +le + +bo + +isRervedTag + +d +:: +rg + cڡ& +g + ) { + +8215  +rSclTag + +g + ) = +TeCaInfo +:: +Ne + &&ag. +size +(> 0 && ! +d +:: +ium +(ag[0] ); + +8217 +le +  +fNRervedTag + +d +:: +rg + cڡ& +g +, +SourLeInfo + cڡ& +_leInfo + ) { + +8218 if +isRervedTag + +g + ) ) { + +8219 + gd +:: +orgam + +ss +; + +8220 + gss + << +Cour +(Cour:: +Red +) + +8221 << "Tagam[" << +g + << "]otllowed.\n" + +8223 << +Cour +(Cour:: +FeName +) + +8224 << +_leInfo + << '\n'; + +8225 +throw + + gd +:: +ruime_r +( +ss +. +r +()); + +8229 +TeCa + +makeTeCa + +ITeCa +* +_Ca +, + +8230 +d +:: +rg + cڡ& +_assName +, + +8231 +d +:: +rg + cڡ& +_me +, + +8232 +d +:: +rg + cڡ& +_descOrTags +, + +8233 +SourLeInfo + cڡ& +_leInfo + ) + +8235 +bo + +isHidd + +tsWh + +_me +, "./" ) ); + +8238 + gd +:: +t +< +d +:: +rg +> +gs +; + +8239 + gd +:: +rg + +desc +, + gg +; + +8240 +bo + + gTag + = +l +; + +8241  + gd +:: +size_t + +i + = 0; + gi + < + g_descOrTags +. +size +(); ++i ) { + +8242  + gc + = +_descOrTags +[ +i +]; + +8243 if! + gTag + ) { + +8244 if + gc + == '[' ) + +8245 +Tag + = +ue +; + +8247 + gdesc + + +c +; + +8250 if + gc + == ']' ) { + +8251 +TeCaInfo +:: +SclPrݔts + + + = +rSclTag + +g + ); + +8252 if + g + = +TeCaInfo +:: +IsHidd + ) + +8253 +isHidd + = +ue +; + +8254 if + g + = +TeCaInfo +:: +Ne + ) + +8255 +fNRervedTag + +g +, +_leInfo + ); + +8257 + ggs +. + + +g + ); + +8258 + gg +. +r +(); + +8259 + gTag + = +l +; + +8262 + gg + + +c +; + +8265 if + gisHidd + ) { + +8266 + ggs +. + +( "hide" ); + +8267 + ggs +. + +( "." ); + +8270 +TeCaInfo + +fo + +_me +, +_assName +, +desc +, +gs +, +_leInfo + ); + +8271  +TeCa + +_Ca +, +fo + ); + +8274  +tTags + +TeCaInfo +& +CaInfo +, +d +:: +t + cڡ& +gs + ) + +8276 +CaInfo +. +gs + =ags; + +8277 + gCaInfo +. + glTags +. +r +(); + +8279 + gd +:: +orgam + +oss +; + +8280  + gd +:: +t +< +d +:: +rg +>:: +cڡ_ + + + = +gs +. +beg +(), + gEnd + =ags. +d +(); + g + ! +End +; ++it ) { + +8281 + goss + << '[' << * + g + << ']'; + +8282 + gd +:: +rg + +lTag + = +toLow +* + + ); + +8283 + gCaInfo +. + gݔts + = +ic_ +< +TeCaInfo +:: +SclPrݔts +> +CaInfo +. +ݔts + | +rSclTag + +lTag + ) ); + +8284 + gCaInfo +. + glTags +. + + +lTag + ); + +8286 + gCaInfo +. + ggsAsSg + = +oss +. +r +(); + +8289 + gTeCaInfo +:: +TeCaInfo + +d +:: +rg + cڡ& +_me +, + +8290 +d +:: +rg + cڡ& +_assName +, + +8291 +d +:: +rg + cڡ& +_desti +, + +8292 +d +:: +t + cڡ& +_gs +, + +8293 +SourLeInfo + cڡ& +_leInfo + ) + +8294 : +me + +_me + ), + +8295 +assName + +_assName + ), + +8296 +desti + +_desti + ), + +8297 +leInfo + +_leInfo + ), + +8298 +ݔts + +Ne + ) + +8300 +tTags +* +this +, +_gs + ); + +8303 + gTeCaInfo +:: +TeCaInfo +TeCaInfcڡ& +h + ) + +8304 : +me + +h +.name ), + +8305 +assName + +h +.className ), + +8306 +desti + +h +.description ), + +8307 +gs + +h +.tags ), + +8308 +lTags + +h +.lcaseTags ), + +8309 +gsAsSg + +h +.tagsAsString ), + +8310 +leInfo + +h +.lineInfo ), + +8311 +ݔts + +h +.properties ) + +8314 +bo + + gTeCaInfo +:: +isHidd +() const { + +8315  ( +ݔts + & +IsHidd + ) != 0; + +8317 +bo + + gTeCaInfo +:: +throws +() const { + +8318  ( +ݔts + & +Throws + ) != 0; + +8320 +bo + + gTeCaInfo +:: +okToFa +() const { + +8321  ( +ݔts + & ( +ShouldFa + | +MayFa + ) ) != 0; + +8323 +bo + + gTeCaInfo +:: +exedToFa +() const { + +8324  ( +ݔts + & ( +ShouldFa + ) ) != 0; + +8327 + gTeCa +:: +TeCa + +ITeCa +* +Ca +, +TeCaInfo + cڡ& +fo + ) : TeCaInfoКf), + +(estCase ) {} + +8329 + gTeCa +:: +TeCa +TeCa cڡ& +h + ) + +8330 : +TeCaInfo + +h + ), + +8331 + + +h +.test ) + +8334 +TeCa + + gTeCa +:: +whName + +d +:: +rg + cڡ& +_wName + ) const { + +8335 +TeCa + +h +* +this + ); + +8336 + gh +. + gme + = +_wName +; + +8337  + gh +; + +8340  + gTeCa +:: +sw + +TeCa +& +h + ) { + +8341 + +. +sw + +h +.test ); + +8342 + gme +. +sw + +h +. +me + ); + +8343 + gassName +. +sw + +h +. +assName + ); + +8344 + gdesti +. +sw + +h +. +desti + ); + +8345 + ggs +. +sw + +h +. +gs + ); + +8346 + glTags +. +sw + +h +. +lTags + ); + +8347 + ggsAsSg +. +sw + +h +. +gsAsSg + ); + +8348 + gd +:: +sw + +TeCaInfo +:: +ݔts +, +ic_ + +h + ).properties ); + +8349 + gd +:: +sw + +leInfo +, +h +.lineInfo ); + +8352  + gTeCa +:: +voke +() const { + +8353 + +-> +voke +(); + +8356 +bo + + gTeCa +:: +ݔ + = +TeCa + cڡ& +h + ) const { + +8357  + +. +g +(= +h +.test.get() && + +8358 +me + = +h +.name && + +8359 +assName + = +h +.className; + +8362 +bo + + gTeCa +:: +ݔ + < ( +TeCa + cڡ& +h + ) const { + +8363  +me + < +h +.name; + +8365 + gTeCa +& TeCa:: +ݔ + = ( +TeCa + cڡ& +h + ) { + +8366 +TeCa + +mp + +h + ); + +8367 +sw + +mp + ); + +8368  * + gthis +; + +8371 +TeCaInfo + cڡ& + gTeCa +:: +gTeCaInfo +() const + +8373  * +this +; + +8379  + #TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED + + + ) + +8381 +mea + + gCch + { + +8383 + gVsi +:: +Vsi + + +8384  +_majVsi +, + +8385  + g_mVsi +, + +8386  + g_tchNumb +, + +8387 cڡ * cڡ + g_bnchName +, + +8388  + g_budNumb + ) + +8389 : +majVsi + +_majVsi + ), + +8390 +mVsi + +_mVsi + ), + +8391 +tchNumb + +_tchNumb + ), + +8392 +bnchName + +_bnchName + ), + +8393 +budNumb + +_budNumb + ) + +8396 + gd +:: +oam +& +ݔ + << ( +d +::oam& +os +, +Vsi + cڡ& + gvsi + ) { + +8397 + gos + << + gvsi +. + gmajVsi + << '.' + +8398 << + gvsi +. + gmVsi + << '.' + +8399 << + gvsi +. + gtchNumb +; + +8401 i( + gvsi +. + gbnchName +[0]) { + +8402 + gos + << '-' << + gvsi +. + gbnchName + + +8403 << '.' << + gvsi +. + gbudNumb +; + +8405  + gos +; + +8408 +le + +Vsi + +libryVsi +() { + +8409  +Vsi + +vsi +( 1, 9, 7, "", 0 ); + +8410  + gvsi +; + +8416  + #TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED + + + ) + +8418 +mea + + gCch + { + +8420 + gMesgeInfo +:: +MesgeInfo + +d +:: +rg + cڡ& +_maoName +, + +8421 +SourLeInfo + cڡ& +_leInfo +, + +8422 +ResuWas +:: +OfTy + +_ty + ) + +8423 : +maoName + +_maoName + ), + +8424 +leInfo + +_leInfo + ), + +8425 +ty + +_ty + ), + +8426 +qu +++ +globCou + ) + +8430  + gMesgeInfo +:: +globCou + = 0; + +8434 + gScedMesge +:: +ScedMesge + +MesgeBud + cڡ& +bud + ) + +8435 : +m_fo + +bud +.m_info ) + +8437 +m_fo +. +mesge + = +bud +. +m_am +. +r +(); + +8438 +gResuCtu +(). +pushScedMesge + +m_fo + ); + +8440 + gScedMesge +:: +ScedMesge +ScedMesgcڡ& +h + ) + +8441 : +m_fo + +h +.m_info ) + +8444 +ScedMesge +::~ScopedMessage() { + +8445 i! +d +:: +unught_exi +() ){ + +8446 +gResuCtu +(). +pScedMesge +( +m_fo +); + +8453  + #TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED + + + ) + +8456  + #TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED + + + ) + +8458 +mea + + gCch + + +8461  + gIR܋r + : +IShed + { + +8462 +vtu + ~ +IR܋r +(); + +8464 +vtu + +bo + +shouldRedeStdout +() const = 0; + +8466 +vtu +  +STeg +() = 0; + +8467 +vtu +  +EndTeg + +Tٮs + cڡ& +tٮs + ) = 0; + +8468 +vtu +  +SGroup + +d +:: +rg + cڡ& +groupName + ) = 0; + +8469 +vtu +  +EndGroup + +d +:: +rg + cڡ& +groupName +, +Tٮs + cڡ& +tٮs + ) = 0; + +8470 +vtu +  +STeCa + +TeCaInfo + cڡ& +Info + ) = 0; + +8471 +vtu +  +EndTeCa + +TeCaInfo + cڡ& +Info +, +Tٮs + cڡ& +tٮs +, +d +:: +rg + cڡ& +dOut +, std::rg cڡ& +dE + ) = 0; + +8472 +vtu +  +SSei + +d +:: +rg + cڡ& +iName +, std::rg cڡ& +desti + ) = 0; + +8473 +vtu +  +EndSei + +d +:: +rg + cڡ& +iName +, +Cous + cڡ& +asis + ) = 0; + +8474 +vtu +  +NoAsisInSei + +d +:: +rg + cڡ& +iName + ) = 0; + +8475 +vtu +  +NoAsisInTeCa + +d +:: +rg + cڡ& +Name + ) = 0; + +8476 +vtu +  +Ab܋d +() = 0; + +8477 +vtu +  +Resu + +AsiResu + cڡ& +su + ) = 0; + +8480 +ass + + gLegacyR܋rAdr + : +public + +ShedIm +< +ISmgR܋r +> + +8482 +public +: + +8483 +LegacyR܋rAdr + +P +< +IR܋r +> cڡ& +gacyR܋r + ); + +8484 + gvtu + ~ +LegacyR܋rAdr +(); + +8486 +vtu + +R܋rPns + +gPns +() const; + +8487 +vtu +  +noMchgTeCas + +d +:: +rg + const& ); + +8488 +vtu +  +RunSg + +TeRunInfo + const& ); + +8489 +vtu +  +GroupSg + +GroupInfo + cڡ& +groupInfo + ); + +8490 +vtu +  +CaSg + +TeCaInfo + cڡ& +Info + ); + +8491 +vtu +  +iSg + +SeiInfo + cڡ& +iInfo + ); + +8492 +vtu +  +asiSg + +AsiInfo + const& ); + +8493 +vtu + +bo + +asiEnded + +AsiSts + cڡ& +asiSts + ); + +8494 +vtu +  +iEnded + +SeiSts + cڡ& +iSts + ); + +8495 +vtu +  +CaEnded + +TeCaSts + cڡ& +CaSts + ); + +8496 +vtu +  +GroupEnded + +TeGroupSts + cڡ& +GroupSts + ); + +8497 +vtu +  +RunEnded + +TeRunSts + cڡ& +RunSts + ); + +8498 +vtu +  +skTe + +TeCaInfo + const& ); + +8500 + give +: + +8501 +P +< +IR܋r +> +m_gacyR܋r +; + +8505 +mea + + gCch + + +8507 + gLegacyR܋rAdr +:: +LegacyR܋rAdr + +P +< +IR܋r +> cڡ& +gacyR܋r + ) + +8508 : +m_gacyR܋r + +gacyR܋r + ) + +8510 +LegacyR܋rAdr +::~LegacyReporterAdapter() {} + +8512 +R܋rPns + +LegacyR܋rAdr +:: +gPns +() const { + +8513 +R܋rPns + +efs +; + +8514 + gefs +. + gshouldRedeStdOut + = +m_gacyR܋r +-> +shouldRedeStdout +(); + +8515  + gefs +; + +8518  + gLegacyR܋rAdr +:: +noMchgTeCas + +d +:: +rg + const& ) {} + +8519  +LegacyR܋rAdr +:: +RunSg + +TeRunInfo + const& ) { + +8520 +m_gacyR܋r +-> +STeg +(); + +8522  + gLegacyR܋rAdr +:: +GroupSg + +GroupInfo + cڡ& +groupInfo + ) { + +8523 +m_gacyR܋r +-> +SGroup + +groupInfo +. +me + ); + +8525  + gLegacyR܋rAdr +:: +CaSg + +TeCaInfo + cڡ& +Info + ) { + +8526 +m_gacyR܋r +-> +STeCa + +Info + ); + +8528  + gLegacyR܋rAdr +:: +iSg + +SeiInfo + cڡ& +iInfo + ) { + +8529 +m_gacyR܋r +-> +SSei + +iInfo +. +me +, seiInfo. +desti + ); + +8531  + gLegacyR܋rAdr +:: +asiSg + +AsiInfo + const& ) { + +8535 +bo + +LegacyR܋rAdr +:: +asiEnded + +AsiSts + cڡ& +asiSts + ) { + +8536 if +asiSts +. +asiResu +. +gResuTy +(! +ResuWas +:: +Ok + ) { + +8537  +d +:: +ve +< +MesgeInfo +>:: +cڡ_ + + + = +asiSts +. +foMesges +. +beg +(), + gEnd + =siSts.foMesges. +d +(); + +8538 + g + ! +End +; + +8539 ++ + g + ) { + +8540 if + g +-> + gty + = +ResuWas +:: +Info + ) { + +8541 +ResuBud + +rb + + +-> +maoName +. +c_r +(), it-> +leInfo +, "", +ResuDiosi +:: +Nm + ); + +8542 + grb + << + g +-> + gmesge +; + +8543 + grb +. +tResuTy + +ResuWas +:: +Info + ); + +8544 +AsiResu + + gsu + = +rb +. +bud +(); + +8545 + gm_gacyR܋r +-> +Resu + +su + ); + +8549 + gm_gacyR܋r +-> +Resu + +asiSts +. +asiResu + ); + +8550  + gue +; + +8552  + gLegacyR܋rAdr +:: +iEnded + +SeiSts + cڡ& +iSts + ) { + +8553 if +iSts +. +missgAsis + ) + +8554 +m_gacyR܋r +-> +NoAsisInSei + +iSts +. +iInfo +. +me + ); + +8555 + gm_gacyR܋r +-> +EndSei + +iSts +. +iInfo +. +me +, seiSts. +asis + ); + +8557  + gLegacyR܋rAdr +:: +CaEnded + +TeCaSts + cڡ& +CaSts + ) { + +8558 +m_gacyR܋r +-> +EndTeCa + + +8559 +CaSts +. +Info +, + +8560 + gCaSts +. + gtٮs +, + +8561 + gCaSts +. + gdOut +, + +8562 + gCaSts +. + gdE + ); + +8564  + gLegacyR܋rAdr +:: +GroupEnded + +TeGroupSts + cڡ& +GroupSts + ) { + +8565 if +GroupSts +. +abtg + ) + +8566 +m_gacyR܋r +-> +Ab܋d +(); + +8567 + gm_gacyR܋r +-> +EndGroup + +GroupSts +. +groupInfo +. +me +,eGroupSts. +tٮs + ); + +8569  + gLegacyR܋rAdr +:: +RunEnded + +TeRunSts + cڡ& +RunSts + ) { + +8570 +m_gacyR܋r +-> +EndTeg + +RunSts +. +tٮs + ); + +8572  + gLegacyR܋rAdr +:: +skTe + +TeCaInfo + const& ) { + +8578 #ifde +__g__ + + +8579 #agm +g + +dgnoic + +push + + +8580 #agm +g + +dgnoic + +igned + "-Wc++11-long-long" + +8583 #ifde +CATCH_PLATFORM_WINDOWS + + +8587  + ~ + +8591 +mea + +Cch + { + +8593 +mea + { + +8594 #ifde +CATCH_PLATFORM_WINDOWS + + +8595 +UI64 + +gCutTicks +() { + +8596  +UI64 + +hz +=0, + ghzo +=0; + +8597 i(! + ghz +) { + +8598 +QuyPfmFqucy + +t_ +< +LARGE_INTEGER +*>& +hz + ) ); + +8599 +QuyPfmCou + +t_ +< +LARGE_INTEGER +*>& +hzo + ) ); + +8601 +UI64 + + gt +; + +8602 +QuyPfmCou + +t_ +< +LARGE_INTEGER +*>& +t + ) ); + +8603  (( + gt +- + ghzo +)*1000000)/ + ghz +; + +8606 +UI64 + +gCutTicks +() { + +8607 +timev + + gt +; + +8608 +gtimeofday +(& +t +, +CATCH_NULL +); + +8609  + gic_ +< + gUI64 +> + gt +. + gtv_c + ) * 1000000u + stic_t. + gtv_uc + ); + +8614  + gTim +:: +t +() { + +8615 +m_ticks + = +gCutTicks +(); + +8617  + gTim +:: +gEpdMiocds +() const { + +8618  +ic_ +<>( +gCutTicks +(- +m_ticks +); + +8620  + gTim +:: +gEpdMlicds +() const { + +8621  +ic_ +<>( +gEpdMiocds +()/1000); + +8623  + gTim +:: +gEpdSecds +() const { + +8624  +gEpdMiocds +()/1000000.0; + +8629 #ifde +__g__ + + +8630 #agm +g + +dgnoic + +p + + +8633  + #TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED + + + ) + +8635  + ~ + +8636  + ~ + +8638 +mea + + gCch + { + +8640 +bo + +tsWh + +d +:: +rg + cڡ& +s +, std::rg cڡ& +efix + ) { + +8641  +s +. +size +(> +efix +.size(&& +d +:: +equ +ջfix. +beg +(),fix. +d +(), s.begin()); + +8643 +bo + +tsWh + +d +:: +rg + cڡ& +s +,  +efix + ) { + +8644  ! + gs +. +emy +(&& s[0] = +efix +; + +8646 +bo + +dsWh + +d +:: +rg + cڡ& +s +, std::rg cڡ& +suffix + ) { + +8647  +s +. +size +(> +suffix +.size(&& +d +:: +equ +(suffix. +rbeg +(), suffix. +nd +(), s.rbegin()); + +8649 +bo + +dsWh + +d +:: +rg + cڡ& +s +,  +suffix + ) { + +8650  ! + gs +. +emy +(&& s[ +s +. +size +()-1] = +suffix +; + +8652 +bo + +cڏs + +d +:: +rg + cڡ& +s +, std::rg cڡ& +fix + ) { + +8653  +s +. +fd + +fix + ) ! +d +:: +rg +:: +os +; + +8655  +toLowCh +( +c +) { + +8656  + gic_ +<> + gd +:: +tow + +c + ) ); + +8658  +toLowInP + +d +:: +rg +& +s + ) { + +8659 +d +:: +sfm + +s +. +beg +(), s. +d +(), s.beg(), +toLowCh + ); + +8661 + gd +:: +rg + +toLow + +d +::rg cڡ& +s + ) { + +8662 +d +:: +rg + +lc + = +s +; + +8663 +toLowInP + +lc + ); + +8664  + glc +; + +8666 + gd +:: +rg + +im + +d +::rg cڡ& +r + ) { + +8667 cڡ* +wheaChs + = "\n\r\t "; + +8668 + gd +:: +rg +:: +size_ty + +t + = +r +. +fd_f_n_of + +wheaChs + ); + +8669 + gd +:: +rg +:: +size_ty + +d + = +r +. +fd_ϡ_n_of + +wheaChs + ); + +8671  + gt + ! +d +:: +rg +:: +os + ? +r +. +subr + +t +, 1+ +d +-start ) : std::string(); + +8674 +bo + +aInP + +d +:: +rg +& +r +, std::rg cڡ& +aThis +, std::rg cڡ& +whThis + ) { + +8675 +bo + +ad + = +l +; + +8676 + gd +:: +size_t + +i + = +r +. +fd + +aThis + ); + +8677  + gi + ! +d +:: +rg +:: +os + ) { + +8678 +ad + = +ue +; + +8679 + gr + = +r +. +subr +0, +i + ) + + gwhThis + + s.subri+ +aThis +. +size +() ); + +8680 if + gi + < + gr +. +size +()- + gwhThis +.size() ) + +8681 + gi + = +r +. +fd + +aThis +, +i ++ +whThis +. +size +() ); + +8683 + gi + = +d +:: +rg +:: +os +; + +8685  + gad +; + +8688 + guli +:: +uli + +d +:: +size_t + +cou +, std:: +rg + cڡ& +b + ) + +8689 : +m_cou + +cou + ), + +8690 +m_b + +b + ) + +8693 + gd +:: +oam +& +ݔ + << ( +d +::oam& +os +, +uli + cڡ& + gulir + ) { + +8694 + gos + << + gulir +. + gm_cou + << ' ' < +gSd +(); + +8723 + gd +:: +oam +& +ݔ + << ( +d +::oam& +os +, +SourLeInfo + cڡ& + gfo + ) { + +8724 #ide +__GNUG__ + + +8725 + gos + << + gfo +. + gfe + << '(' << info. + gle + << ')'; + +8727 + gos + << + gfo +. + gfe + << ':' << info. + gle +; + +8729  + gos +; + +8732  +throwLogicE + +d +:: +rg + cڡ& +mesge +, +SourLeInfo + cڡ& +lotiInfo + ) { + +8733 + gd +:: +orgam + +oss +; + +8734 + goss + << + glotiInfo + << ": ICch: '" << + gmesge + << '\''; + +8735 if +waysTrue +() ) + +8736 +throw + + gd +:: +logic_r + +oss +. +r +() ); + +8741  + #TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED + + + ) + +8743 +mea + + gCch + { + +8745 + gSeiInfo +:: +SeiInfo + + +8746 +SourLeInfo + cڡ& +_leInfo +, + +8747 + gd +:: +rg + cڡ& +_me +, + +8748 + gd +:: +rg + cڡ& +_desti + ) + +8749 : +me + +_me + ), + +8750 +desti + +_desti + ), + +8751 +leInfo + +_leInfo + ) + +8754 + gSei +:: +Sei + +SeiInfo + cڡ& +fo + ) + +8755 : +m_fo + +fo + ), + +8756 +m_iInuded + +gResuCtu +(). +iSed + +m_fo +, +m_asis + ) ) + +8758 + gm_tim +. +t +(); + +8761 #i +defed +( +_MSC_VER +) + +8762 #agm +wng +( +push +) + +8763 #agm +wng +( +dib +:4996) + +8765 + gSei +::~ +Sei +() { + +8766 if +m_iInuded + ) { + +8767 +SeiEndInfo + +dInfo + +m_fo +, +m_asis +, +m_tim +. +gEpdSecds +() ); + +8768 if + gd +:: +unught_exi +() ) + +8769 +gResuCtu +(). +iEndedEly + +dInfo + ); + +8771 +gResuCtu +(). +iEnded + +dInfo + ); + +8774 #i +defed +( +_MSC_VER +) + +8775 #agm +wng +( +p +) + +8779 + gSei +:: +ݔ + +bo +() const { + +8780  +m_iInuded +; + +8786  + #TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED + + + ) + +8788 #ifde +CATCH_PLATFORM_MAC + + +8790  + ~ + +8791  + ~ + +8792  + ~ + +8793  + ~ + +8794  + ~ + +8796 +mea + + gCch +{ + +8803 +bo + +isDebuggAive +(){ + +8805  + gmib +[4]; + +8806  +kfo_oc + + gfo +; + +8807 +size_t + + gsize +; + +8812 + gfo +. + gkp_oc +. + gp_ag + = 0; + +8817 + gmib +[0] = +CTL_KERN +; + +8818 + gmib +[1] = +KERN_PROC +; + +8819 + gmib +[2] = +KERN_PROC_PID +; + +8820 + gmib +[3] = +gpid +(); + +8824 + gsize + = ( +fo +); + +8825 if +sysl +( +mib +, (mib/ (*mib), & +fo +, & +size +, +CATCH_NULL +, 0) != 0 ) { + +8826 +Cch +:: + +(<< "\n** Ctsysed - ubˁdmidebugg iaiv**\n" << +d +:: +dl +; + +8827  + gl +; + +8832  ( ( + gfo +. + gkp_oc +. + gp_ag + & + gP_TRACED +) != 0 ); + +8836 #i + $defed +( +CATCH_PLATFORM_LINUX +) + +8837  + ~ + +8838  + ~ + +8840 +mea + +Cch +{ + +8848 +bo + + `isDebuggAive +(){ + +8851 +EnoGud + +gud +; + +8852 +d +:: +ifam + + ` +("/proc/self/status"); + +8853  +d +:: +rg + +le +; std:: + `gle +( + +,ine); ) { + +8854 cڡ  +PREFIX_LEN + = 11; + +8855 if +le +. + `com +(0, +PREFIX_LEN +, "TracerPid:\t") == 0 ) { + +8859  +le +. + `ngth +(> +PREFIX_LEN + &&ine[PREFIX_LEN] != '0'; + +8863  +l +; + +8865 + } +} + +8866 #i + $defed +( +_MSC_VER +) + +8867 "C" + $__deec +( +dimpt + +__d + + `IsDebuggP +(); + +8868 +mea + +Cch + { + +8869 +bo + + `isDebuggAive +() { + +8870  + `IsDebuggP +() != 0; + +8872 + } +} + +8873 #i + $defed +( +__MINGW32__ +) + +8874 "C" + $__deec +( +dimpt + +__d + + `IsDebuggP +(); + +8875 +mea + +Cch + { + +8876 +bo + + `isDebuggAive +() { + +8877  + `IsDebuggP +() != 0; + +8879 + } +} + +8881 +mea + + gCch + { + +8882 +le + +bo + +isDebuggAive +({  + gl +; } + +8886 #ifde +CATCH_PLATFORM_WINDOWS + + +8888 +mea + + gCch + { + +8889  +wreToDebugCse + +d +:: +rg + cڡ& +xt + ) { + +8890 :: +OuutDebugSgA + +xt +. +c_r +() ); + +8894 +mea + + gCch + { + +8895  +wreToDebugCse + +d +:: +rg + cڡ& +xt + ) { + +8897 +Cch +:: +cout +(<< +xt +; + +8903  + #TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED + + + ) + +8905 +mea + + gCch + { + +8907 +mea + + gDa + { + +8909 cڡ + gd +:: +rg + +urbSg + = "{?}"; + +8911 + gmea + { + +8912 cڡ  + ghexThshd + = 255; + +8914  + sEndess + { + +8915 + eArch + { + gBig +, + gLe + }; + +8917  +Arch + +which +() { + +8918  + u_ +{ + +8919  + gasI +; + +8920  + gasCh +[ ()]; + +8921 } + gu +; + +8923 + gu +. + gasI + = 1; + +8924  ( + gu +. + gasCh +[()-1] =1 ) ? +Big + : +Le +; + +8929 + gd +:: +rg + +wMemyToSg +cڡ * +obje +, +d +:: +size_t + +size + ) + +8932  +i + = 0, + gd + = +ic_ +<> +size + ), + gc + = 1; + +8933 if + gEndess +:: +which +(= +Endess +:: +Le + ) { + +8934 +i + = +d +-1; + +8935 + gd + = +c + = -1; + +8938 cڡ * + gbys + = +ic_ +<cڡ *>( +obje +); + +8939 + gd +:: +orgam + +os +; + +8940 + gos + << "0x" << + gd +:: +tfl +('0'<< +d +:: +hex +; + +8941  ; + gi + ! +d +; i + +c + ) + +8942 +os + << +d +:: +tw +(2<< +ic_ +<>( +bys +[ +i +]); + +8943  + gos +. +r +(); + +8947 + gd +:: +rg + +toSg + +d +::rg cڡ& +vue + ) { + +8948 +d +:: +rg + +s + = +vue +; + +8949 if +gCutCڋxt +(). +gCfig +()-> +showInvisibs +() ) { + +8950  +size_t + + gi + = 0; i < + gs +. +size +(); ++i ) { + +8951 + gd +:: +rg + +subs +; + +8952  + gs +[ +i +] ) { + +8953 '\n': +subs + = "\\n"; ; + +8954 '\t': +subs + = "\\t"; ; + +8957 if! + gsubs +. +emy +() ) { + +8958 + gs + = +s +. +subr +0, +i + ) + + gsubs + + s.substr( i+1 ); + +8959 ++ + gi +; + +8963  '"' + + gs + + '"'; + +8965 + gd +:: +rg + +toSg + +d +:: +wrg + cڡ& +vue + ) { + +8967 +d +:: +rg + +s +; + +8968 + gs +. +rve + +vue +. +size +() ); + +8969  +size_t + + gi + = 0; i < + gvue +. +size +(); ++i ) + +8970 + gs + + +vue +[ +i +] <0xf? +ic_ +<>( value[i] ) : '?'; + +8971  + gCch +:: +toSg + +s + ); + +8974 + gd +:: +rg + +toSg +cڡ * cڡ +vue + ) { + +8975  +vue + ? +Cch +:: +toSg + +d +:: +rg +( value ) ) : std::string( "{null string}" ); + +8978 + gd +:: +rg + +toSg +* cڡ +vue + ) { + +8979  +Cch +:: +toSg + +ic_ + +vue + ) ); + +8982 + gd +:: +rg + +toSg +cڡ +wch_t +* cڡ +vue + ) + +8984  +vue + ? +Cch +:: +toSg + +d +:: +wrg +(vue: std:: +rg +( "{null string}" ); + +8987 + gd +:: +rg + +toSg + +wch_t +* cڡ +vue + ) + +8989  +Cch +:: +toSg + +ic_ + +vue + ) ); + +8992 + gd +:: +rg + +toSg + +vue + ) { + +8993 +d +:: +orgam + +oss +; + +8994 + goss + << + gvue +; + +8995 if + gvue + > + gDa +:: +hexThshd + ) + +8996 +oss + << " (0x" << +d +:: +hex + << +vue + << ')'; + +8997  + goss +. +r +(); + +9000 + gd +:: +rg + +toSg + +vue + ) { + +9001 +d +:: +orgam + +oss +; + +9002 + goss + << + gvue +; + +9003 if + gvue + > + gDa +:: +hexThshd + ) + +9004 +oss + << " (0x" << +d +:: +hex + << +vue + << ')'; + +9005  + goss +. +r +(); + +9008 + gd +:: +rg + +toSg + +vue + ) { + +9009  +Cch +:: +toSg + +ic_ +<> +vue + ) ); + +9012 + gme +< +tyme + + gT +> + +9013 + gd +:: +rg + +ToSg + +T + +vue +,  +ecisi + ) { + +9014 + gd +:: +orgam + +oss +; + +9015 + goss + << + gd +:: +cisi + +ecisi + ) + +9016 << +d +:: +fixed + + +9017 << +vue +; + +9018 + gd +:: +rg + +d + = +oss +. +r +(); + +9019 + gd +:: +size_t + +i + = +d +. +fd_ϡ_n_of +( '0' ); + +9020 if + gi + ! +d +:: +rg +:: +os + && +i + ! +d +. +size +()-1 ) { + +9021 if +d +[ +i +] == '.' ) + +9022 +i +++; + +9023 + gd + = +d +. +subr +0, +i ++1 ); + +9025  + gd +; + +9028 + gd +:: +rg + +toSg +cڡ  +vue + ) { + +9029  +ToSg + +vue +, 10 ); + +9031 + gd +:: +rg + +toSg +cڡ  +vue + ) { + +9032  +ToSg + +vue +, 5 ) + 'f'; + +9035 + gd +:: +rg + +toSg + +bo + +vue + ) { + +9036  +vue + ? "true" : "false"; + +9039 + gd +:: +rg + +toSg + +vue + ) { + +9040 i +vue + == '\r' ) + +9042 i + gvue + == '\f' ) + +9044 i + gvue + == '\n' ) + +9046 i + gvue + == '\t' ) + +9048 i'\0' < +vue + && value < ' ' ) + +9049  +toSg + +ic_ +<> +vue + ) ); + +9050  + gchr +[] = "' '"; + +9051 + gchr +[1] = +vue +; + +9052  + gchr +; + +9055 + gd +:: +rg + +toSg +sigd  +vue + ) { + +9056  +toSg + +ic_ +<> +vue + ) ); + +9059 + gd +:: +rg + +toSg + +vue + ) { + +9060  +toSg + +ic_ +<> +vue + ) ); + +9063 #ifde +CATCH_CONFIG_CPP11_LONG_LONG + + +9064 + gd +:: +rg + +toSg + +vue + ) { + +9065 +d +:: +orgam + +oss +; + +9066 + goss + << + gvue +; + +9067 if + gvue + > + gDa +:: +hexThshd + ) + +9068 +oss + << " (0x" << +d +:: +hex + << +vue + << ')'; + +9069  + goss +. +r +(); + +9071 + gd +:: +rg + +toSg + +vue + ) { + +9072 +d +:: +orgam + +oss +; + +9073 + goss + << + gvue +; + +9074 if + gvue + > + gDa +:: +hexThshd + ) + +9075 +oss + << " (0x" << +d +:: +hex + << +vue + << ')'; + +9076  + goss +. +r +(); + +9080 #ifde +CATCH_CONFIG_CPP11_NULLPTR + + +9081 + gd +:: +rg + +toSg + +d +:: +nuαr_t + ) { + +9086 #ifde +__OBJC__ + + +9087 + gd +:: +rg + +toSg + +NSSg + cڡ * cڡ& +nsrg + ) { + +9088 if! +nsrg + ) + +9090  "@" + +toSg +([ +nsrg + +UTF8Sg +]); + +9092 + gd +:: +rg + +toSg + +NSSg + * +CATCH_ARC_STRONG + & +nsrg + ) { + +9093 if! +nsrg + ) + +9095  "@" + +toSg +([ +nsrg + +UTF8Sg +]); + +9097 + gd +:: +rg + +toSg + +NSObje +* cڡ& +nsObje + ) { + +9098  +toSg +[ +nsObje + +desti +] ); + +9105  + #TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED + + + ) + +9107 +mea + + gCch + { + +9109 + gResuBud +:: +ResuBud +cڡ* +maoName +, + +9110 +SourLeInfo + cڡ& +leInfo +, + +9111 cڡ* +udExessi +, + +9112 +ResuDiosi +:: +Fgs + +suDiosi +, + +9113 cڡ* +cdArg + ) + +9114 : +m_asiInfo + +maoName +, +leInfo +, +udExessi +, +suDiosi +, +cdArg + ), + +9115 +m_shouldDebugBak + +l + ), + +9116 +m_shouldThrow + +l + ), + +9117 +m_gudExi + +l + ), + +9118 +m_udSm + +l + ) + +9121 + gResuBud +::~ +ResuBud +() { + +9122 #i +defed +( +CATCH_CONFIG_FAST_COMPILE +) + +9123 i +m_gudExi + ) { + +9124 +am +(). +oss + << "Exceptionranslation was disabled by CATCH_CONFIG_FAST_COMPILE"; + +9125 +uResu + +ResuWas +:: +ThwExi + ); + +9126 +gCutCڋxt +(). +gResuCtu +()-> +exiElyR܋d +(); + +9131 + gResuBud +& ResuBud:: +tResuTy + +ResuWas +:: +OfTy + +su + ) { + +9132 +m_da +. +suTy + = +su +; + +9133  * + gthis +; + +9135 + gResuBud +& ResuBud:: +tResuTy + +bo + +su + ) { + +9136 +m_da +. +suTy + = +su + ? +ResuWas +:: +Ok + : ResuWas:: +ExessiFaed +; + +9137  * + gthis +; + +9140  + gResuBud +:: +dExessi + +DecompodExessi + cڡ& +ex + ) { + +9142 if +isFTe + +m_asiInfo +. +suDiosi + ) ) { + +9143 +m_da +. +ge + +ex +. +isByExessi +() ); + +9146 +gResuCtu +(). +asiRun +(); + +9148 if( +gCutCڋxt +(). +gCfig +()-> +udeSucssfulResus +(|| + gm_da +. + gsuTy + ! +ResuWas +:: +Ok +) + +9150 +AsiResu + +su + = +bud + +ex + ); + +9151 +hdResu + +su + ); + +9154 +gResuCtu +(). +asiPasd +(); + +9157  + gResuBud +:: +uAiveExi + +ResuDiosi +:: +Fgs + +suDiosi + ) { + +9158 +m_asiInfo +. +suDiosi + =esultDisposition; + +9159 +am +(). + goss + << + gCch +:: +eAiveExi +(); + +9160 +uResu + +ResuWas +:: +ThwExi + ); + +9163  + gResuBud +:: +uResu + +ResuWas +:: +OfTy + +suTy + ) { + +9164 +tResuTy + +suTy + ); + +9165 +uExessi +(); + +9168  + gResuBud +:: +uExedExi + +d +:: +rg + cڡ& +exedMesge + ) { + +9169 if +exedMesge +. +emy +() ) + +9170 +uExedExi + +Mchs +:: +Im +:: +MchAOf +< +d +:: +rg +>() ); + +9172 +uExedExi + +Mchs +:: +Equs + +exedMesge + ) ); + +9175  + gResuBud +:: +uExedExi + +Mchs +:: +Im +:: +MchBa +< +d +:: +rg +> cڡ& +mch + ) { + +9177 +as +! +isFTe + +m_asiInfo +. +suDiosi + ) ); + +9178 +AsiResuDa + + gda + = +m_da +; + +9179 + gda +. + gsuTy + = +ResuWas +:: +Ok +; + +9180 + gda +. + gcڡruedExessi + = +udExessiWhSecdArgumt +( +m_asiInfo +. +udExessi +, m_asiInfo. +cdArg +); + +9182 + gd +:: +rg + +auMesge + = +Cch +:: +eAiveExi +(); + +9183 if! + gmch +. +mch + +auMesge + ) ) { + +9184 + gda +. + gsuTy + = +ResuWas +:: +ExessiFaed +; + +9185 + gda +. + gcڡruedExessi + = +auMesge +; + +9187 +AsiResu + +su + +m_asiInfo +, +da + ); + +9188 +hdResu + +su + ); + +9191  + gResuBud +:: +uExessi +() { + +9192 +AsiResu + +su + = +bud +(); + +9193 +hdResu + +su + ); + +9196  + gResuBud +:: +hdResu + +AsiResu + cڡ& +su + ) + +9198 +gResuCtu +(). +asiEnded + +su + ); + +9200 if! + gsu +. +isOk +() ) { + +9201 if +gCutCڋxt +(). +gCfig +()-> +shouldDebugBak +() ) + +9202 + gm_shouldDebugBak + = +ue +; + +9203 if +gCutCڋxt +(). +gRu” +()-> +abtg +(|| ( + gm_asiInfo +. + gsuDiosi + & + gResuDiosi +:: +Nm +) ) + +9204 +m_shouldThrow + = +ue +; + +9208  + gResuBud +:: +a +() { + +9209 #i +defed +( +CATCH_CONFIG_FAST_COMPILE +) + +9210 i( +m_shouldDebugBak +) { + +9215 +CATCH_BREAK_INTO_DEBUGGER +(); + +9218 if + gm_shouldThrow + ) + +9219 +throw + + gCch +:: +TeFauExi +(); + +9222 +bo + + gResuBud +:: +shouldDebugBak +(cڡ {  +m_shouldDebugBak +; } + +9223 +bo + + gResuBud +:: +lowThrows +(cڡ {  +gCutCڋxt +(). +gCfig +()->allowThrows(); } + +9225 +AsiResu + + gResuBud +:: +bud +() const + +9227  +bud +* +this + ); + +9236 +AsiResu + + gResuBud +:: +bud + +DecompodExessi + cڡ& +ex + ) const + +9238 +as + +m_da +. +suTy + ! +ResuWas +:: +Unknown + ); + +9239 +AsiResuDa + + gda + = +m_da +; + +9241 if( + gm_udSm +) + +9242 + gda +. + gmesge + = +m_am +(). +oss +. +r +(); + +9243 + gda +. + gdecompodExessi + = & +ex +; + +9244  +AsiResu + +m_asiInfo +, +da + ); + +9247  + gResuBud +:: +cڡruExessi + +d +:: +rg +& +de + ) const { + +9248 +de + = +udExessiWhSecdArgumt +( +m_asiInfo +. +udExessi +, m_asiInfo. +cdArg +); + +9251  + gResuBud +:: +tExiGud +() { + +9252 +m_gudExi + = +ue +; + +9254  + gResuBud +:: +untExiGud +() { + +9255 +m_gudExi + = +l +; + +9261  + #TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED + + + ) + +9263 +mea + + gCch + { + +9265 + gTagAlsRegiry +::~ +TagAlsRegiry +() {} + +9267 +Oi +< +TagAls +> +TagAlsRegiry +:: +fd + +d +:: +rg + cڡ& +s + ) const { + +9268 +d +:: +m +:: +cڡ_ + + + = +m_giry +. +fd + +s + ); + +9269 if + g + ! +m_giry +. +d +() ) + +9270  + +-> +cd +; + +9272  + gOi +< + gTagAls +>(); + +9275 + gd +:: +rg + +TagAlsRegiry +:: +exndAls + +d +::rg cڡ& +uxndedTeSc + ) const { + +9276 +d +:: +rg + +exndedTeSc + = +uxndedTeSc +; + +9277  + gd +:: +m +< +d +:: +rg +, + gTagAls +>:: +cڡ_ + + + = +m_giry +. +beg +(), + gEnd + = m_giry. +d +(); + +9278 + g + ! +End +; + +9279 ++ + g + ) { + +9280 + gd +:: +size_t + +pos + = +exndedTeSc +. +fd + + +-> +f + ); + +9281 if + gpos + ! +d +:: +rg +:: +os + ) { + +9282 +exndedTeSc + =xndedTeSc. +subr +0, +pos + ) + + +9283 + g +-> + gcd +. + gg + + + +9284 + gexndedTeSc +. +subr + +pos + + + +-> +f +. +size +() ); + +9287  + gexndedTeSc +; + +9290  + gTagAlsRegiry +:: +add + +d +:: +rg + cڡ& +s +, std::rg cڡ& +g +, +SourLeInfo + cڡ& +leInfo + ) { + +9292 if! +tsWh + +s +, "[@" ) || ! +dsWh +(lias, ']' ) ) { + +9293 + gd +:: +orgam + +oss +; + +9294 + goss + << +Cour +Cour:: +Red + ) + +9295 << "r:agls, \"" << +s + << "\" isot ofhe form [@aliasame].\n" + +9296 << +Cour +Cour:: +FeName + ) + +9297 << +leInfo + << '\n'; + +9298 +throw + + gd +:: +doma_r + +oss +. +r +(). +c_r +() ); + +9300 if! + gm_giry +. + + +d +:: +make_ + +s +, +TagAls + +g +, +leInfo + ) ) ). + gcd + ) { + +9301 + gd +:: +orgam + +oss +; + +9302 + goss + << +Cour +Cour:: +Red + ) + +9303 << "r:agls, \"" << +s + << "\"lreadyegistered.\n" + +9305 << +Cour +Cour:: +Red + ) << +fd +( +s +)-> +leInfo + << '\n' + +9306 << +Cour +Cour:: +Red + ) << "\tRedefinedt " + +9307 << +Cour +Cour:: +FeName +<< +leInfo + << '\n'; + +9308 +throw + + gd +:: +doma_r + +oss +. +r +(). +c_r +() ); + +9312 + gITagAlsRegiry +::~ +ITagAlsRegiry +() {} + +9314 +ITagAlsRegiry + cڡ& ITagAlsRegiry:: +g +() { + +9315  +gRegiryHub +(). +gTagAlsRegiry +(); + +9318 + gRegirFTagAls +:: +RegirFTagAls +cڡ* +s +, cڡ* +g +, +SourLeInfo + cڡ& +leInfo + ) { + +9319 +gMubRegiryHub +(). +giTagAls + +s +, +g +, +leInfo + ); + +9326 +mea + + gCch + { + +9327 +mea + + gMchs + { + +9329 +mea + + gStdSg + { + +9331 + gCadSg +:: +CadSg + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + ) + +9332 : +m_Ssivy + +Ssivy + ), + +9333 +m_r + +adjuSg + +r + ) ) + +9335 + gd +:: +rg + +CadSg +:: +adjuSg + +d +::rg cڡ& +r + ) const { + +9336  +m_Ssivy + = +CaSsive +:: +No + + +9337 ? +toLow + +r + ) + +9338 : +r +; + +9340 + gd +:: +rg + +CadSg +:: +SsivySuffix +() const { + +9341  +m_Ssivy + = +CaSsive +:: +No + + +9343 : +d +:: +rg +(); + +9346 + gSgMchBa +:: +SgMchBa + +d +:: +rg + cڡ& +ݔi +, +CadSg + cڡ& +comt + ) + +9347 : +m_comt + +comt + ), + +9348 +m_ݔi + +ݔi + ) { + +9351 + gd +:: +rg + +SgMchBa +:: +desibe +() const { + +9352 +d +:: +rg + +desti +; + +9353 + gdesti +. +rve +(5 + +m_ݔi +. +size +(+ +m_comt +. +m_r +.size() + + +9354 +m_comt +. +SsivySuffix +(). +size +()); + +9355 + gdesti + + +m_ݔi +; + +9356 + gdesti + += ": \""; + +9357 + gdesti + + +m_comt +. +m_r +; + +9358 + gdesti + += "\""; + +9359 + gdesti + + +m_comt +. +SsivySuffix +(); + +9360  + gdesti +; + +9363 + gEqusMch +:: +EqusMch + +CadSg + cڡ& +comt + ) : +SgMchBa +( "equals", comparator ) {} + +9365 +bo + + gEqusMch +:: +mch + +d +:: +rg + cڡ& +sour + ) const { + +9366  +m_comt +. +adjuSg + +sour + ) =m_comt. +m_r +; + +9369 + gCڏsMch +:: +CڏsMch + +CadSg + cڡ& +comt + ) : +SgMchBa +( "contains", comparator ) {} + +9371 +bo + + gCڏsMch +:: +mch + +d +:: +rg + cڡ& +sour + ) const { + +9372  +cڏs + +m_comt +. +adjuSg + +sour + ), m_comt. +m_r + ); + +9375 + gSsWhMch +:: +SsWhMch + +CadSg + cڡ& +comt + ) : +SgMchBa +( "starts with", comparator ) {} + +9377 +bo + + gSsWhMch +:: +mch + +d +:: +rg + cڡ& +sour + ) const { + +9378  +tsWh + +m_comt +. +adjuSg + +sour + ), m_comt. +m_r + ); + +9381 + gEndsWhMch +:: +EndsWhMch + +CadSg + cڡ& +comt + ) : +SgMchBa +( "ends with", comparator ) {} + +9383 +bo + + gEndsWhMch +:: +mch + +d +:: +rg + cڡ& +sour + ) const { + +9384  +dsWh + +m_comt +. +adjuSg + +sour + ), m_comt. +m_r + ); + +9389 + gStdSg +:: +EqusMch + +Equs + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + ) { + +9390  +StdSg +:: +EqusMch +StdSg:: +CadSg + +r +, +Ssivy +) ); + +9392 + gStdSg +:: +CڏsMch + +Cڏs + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + ) { + +9393  +StdSg +:: +CڏsMch +StdSg:: +CadSg + +r +, +Ssivy +) ); + +9395 + gStdSg +:: +EndsWhMch + +EndsWh + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + ) { + +9396  +StdSg +:: +EndsWhMch +StdSg:: +CadSg + +r +, +Ssivy +) ); + +9398 + gStdSg +:: +SsWhMch + +SsWh + +d +:: +rg + cڡ& +r +, +CaSsive +:: +Choi + +Ssivy + ) { + +9399  +StdSg +:: +SsWhMch +StdSg:: +CadSg + +r +, +Ssivy +) ); + +9405  + #TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED + + + ) + +9407 +mea + + gCch + { + +9409 +ass + + gMuɝR܋rs + : +public + +ShedIm +< +ISmgR܋r +> { + +9410  +d +:: + tve +< + tP +< + tISmgR܋r +> > + tR܋rs +; + +9411 +R܋rs + + gm_p܋rs +; + +9413 + gpublic +: + +9414  +add + +P +< +ISmgR܋r +> cڡ& +p܋r + ) { + +9415 +m_p܋rs +. +push_back + +p܋r + ); + +9418 + gpublic +: + +9420 +vtu + +R܋rPns + +gPns +(cڡ +CATCH_OVERRIDE + { + +9421  +m_p܋rs +[0]-> +gPns +(); + +9424 +vtu +  +noMchgTeCas + +d +:: +rg + cڡ& +ec + ) +CATCH_OVERRIDE + { + +9425  +R܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9426 + g + ! +End +; + +9427 ++ + g + ) + +9428 (* + g +)-> +noMchgTeCas + +ec + ); + +9431 +vtu +  +RunSg + +TeRunInfo + cڡ& +RunInfo + ) + gCATCH_OVERRIDE + { + +9432  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9433 + g + ! +End +; + +9434 ++ + g + ) + +9435 (* + g +)-> +RunSg + +RunInfo + ); + +9438 +vtu +  +GroupSg + +GroupInfo + cڡ& +groupInfo + ) + gCATCH_OVERRIDE + { + +9439  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9440 + g + ! +End +; + +9441 ++ + g + ) + +9442 (* + g +)-> +GroupSg + +groupInfo + ); + +9445 +vtu +  +CaSg + +TeCaInfo + cڡ& +Info + ) + gCATCH_OVERRIDE + { + +9446  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9447 + g + ! +End +; + +9448 ++ + g + ) + +9449 (* + g +)-> +CaSg + +Info + ); + +9452 +vtu +  +iSg + +SeiInfo + cڡ& +iInfo + ) + gCATCH_OVERRIDE + { + +9453  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9454 + g + ! +End +; + +9455 ++ + g + ) + +9456 (* + g +)-> +iSg + +iInfo + ); + +9459 +vtu +  +asiSg + +AsiInfo + cڡ& +asiInfo + ) + gCATCH_OVERRIDE + { + +9460  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9461 + g + ! +End +; + +9462 ++ + g + ) + +9463 (* + g +)-> +asiSg + +asiInfo + ); + +9467 +vtu + +bo + +asiEnded + +AsiSts + cڡ& +asiSts + ) + gCATCH_OVERRIDE + { + +9468 +bo + + grBufr + = +l +; + +9469  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9470 + g + ! +End +; + +9471 ++ + g + ) + +9472 + grBufr + |(* + +)-> +asiEnded + +asiSts + ); + +9473  + grBufr +; + +9476 +vtu +  +iEnded + +SeiSts + cڡ& +iSts + ) + gCATCH_OVERRIDE + { + +9477  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9478 + g + ! +End +; + +9479 ++ + g + ) + +9480 (* + g +)-> +iEnded + +iSts + ); + +9483 +vtu +  +CaEnded + +TeCaSts + cڡ& +CaSts + ) + gCATCH_OVERRIDE + { + +9484  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9485 + g + ! +End +; + +9486 ++ + g + ) + +9487 (* + g +)-> +CaEnded + +CaSts + ); + +9490 +vtu +  +GroupEnded + +TeGroupSts + cڡ& +GroupSts + ) + gCATCH_OVERRIDE + { + +9491  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9492 + g + ! +End +; + +9493 ++ + g + ) + +9494 (* + g +)-> +GroupEnded + +GroupSts + ); + +9497 +vtu +  +RunEnded + +TeRunSts + cڡ& +RunSts + ) + gCATCH_OVERRIDE + { + +9498  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9499 + g + ! +End +; + +9500 ++ + g + ) + +9501 (* + g +)-> +RunEnded + +RunSts + ); + +9504 +vtu +  +skTe + +TeCaInfo + cڡ& +Info + ) + gCATCH_OVERRIDE + { + +9505  + gR܋rs +:: +cڡ_ + + + = +m_p܋rs +. +beg +(), + gEnd + = m_p܋rs. +d +(); + +9506 + g + ! +End +; + +9507 ++ + g + ) + +9508 (* + g +)-> +skTe + +Info + ); + +9511 +vtu + +MuɝR܋rs +* +yAsMui +( + gCATCH_OVERRIDE + { + +9512  + gthis +; + +9517 + gP +< + gISmgR܋r +> +addR܋r + +P +< +ISmgR܋r +> cڡ& +exigR܋r +, P cڡ& +addiڮR܋r + ) { + +9518 + gP +< + gISmgR܋r +> + gsuɚgR܋r +; + +9520 if + gexigR܋r + ) { + +9521 +MuɝR܋rs +* + gmui + = +exigR܋r +-> +yAsMui +(); + +9522 if! + gmui + ) { + +9523 + gmui + = +w + +MuɝR܋rs +; + +9524 + gsuɚgR܋r + = +P +< +ISmgR܋r +> +mui + ); + +9525 if + gexigR܋r + ) + +9526 + gmui +-> +add + +exigR܋r + ); + +9529 + gsuɚgR܋r + = +exigR܋r +; + +9530 + gmui +-> +add + +addiڮR܋r + ); + +9533 + gsuɚgR܋r + = +addiڮR܋r +; + +9535  + gsuɚgR܋r +; + +9541  + #TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED + + + ) + +9544  + #TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED + + + ) + +9546  + ~ + +9547  + ~ + +9548  + ~ + +9549  + ~ + +9551 +mea + + gCch + { + +9553 + gmea + { + +9556 + gd +:: +rg + +gFmdDuti + +duti + ) { + +9561 cڡ +size_t + +maxDoubSize + = +DBL_MAX_10_EXP + + 1 + 1 + 3 + 1; + +9562  + gbufr +[ +maxDoubSize +]; + +9565 +EnoGud + + ggud +; + +9566 #ifde +_MSC_VER + + +9567 +rtf_s +( +bufr +, "%.3f", +duti +); + +9569 +rtf +( +bufr +, "%.3f", +duti +); + +9571  + gd +:: +rg +( +bufr +); + +9575  + gSmgR܋rBa + : +ShedIm +< +ISmgR܋r +> { + +9577 +SmgR܋rBa + +R܋rCfig + cڡ& +_cfig + ) + +9578 : +m_cfig + +_cfig +. +fuCfig +() ), + +9579 +am + +_cfig +.stream() ) + +9581 + gm_p܋rPfs +. + gshouldRedeStdOut + = +l +; + +9584 +vtu + +R܋rPns + +gPns +(cڡ + gCATCH_OVERRIDE + { + +9585  + gm_p܋rPfs +; + +9588 + gvtu + ~ +SmgR܋rBa +( + gCATCH_OVERRIDE +; + +9590 +vtu +  +noMchgTeCas + +d +:: +rg + cڡ& ) +CATCH_OVERRIDE + {} + +9592 +vtu +  +RunSg + +TeRunInfo + cڡ& +_RunInfo + ) +CATCH_OVERRIDE + { + +9593 +cutTeRunInfo + = +_RunInfo +; + +9595 +vtu +  +GroupSg + +GroupInfo + cڡ& +_groupInfo + ) + gCATCH_OVERRIDE + { + +9596 + gcutGroupInfo + = +_groupInfo +; + +9599 +vtu +  +CaSg + +TeCaInfo + cڡ& +_Info + ) + gCATCH_OVERRIDE + { + +9600 + gcutTeCaInfo + = +_Info +; + +9602 +vtu +  +iSg + +SeiInfo + cڡ& +_iInfo + ) + gCATCH_OVERRIDE + { + +9603 + gm_iSck +. +push_back + +_iInfo + ); + +9606 +vtu +  +iEnded + +SeiSts + cڡ& ) + gCATCH_OVERRIDE + { + +9607 + gm_iSck +. +p_back +(); + +9609 +vtu +  +CaEnded + +TeCaSts + cڡ& ) + gCATCH_OVERRIDE + { + +9610 + gcutTeCaInfo +. +t +(); + +9612 +vtu +  +GroupEnded + +TeGroupSts + cڡ& ) + gCATCH_OVERRIDE + { + +9613 + gcutGroupInfo +. +t +(); + +9615 +vtu +  +RunEnded + +TeRunSts + cڡ& ) + gCATCH_OVERRIDE + { + +9616 + gcutTeCaInfo +. +t +(); + +9617 + gcutGroupInfo +. +t +(); + +9618 + gcutTeRunInfo +. +t +(); + +9621 +vtu +  +skTe + +TeCaInfo + cڡ& ) + gCATCH_OVERRIDE + { + +9626 + gP +< +ICfig + cڡ> + gm_cfig +; + +9627 + gd +:: +oam +& +am +; + +9629 + gLazySt +< + gTeRunInfo +> + gcutTeRunInfo +; + +9630 + gLazySt +< + gGroupInfo +> + gcutGroupInfo +; + +9631 + gLazySt +< + gTeCaInfo +> + gcutTeCaInfo +; + +9633 + gd +:: +ve +< +SeiInfo +> +m_iSck +; + +9634 +R܋rPns + + gm_p܋rPfs +; + +9637  + gCumutiveR܋rBa + : +ShedIm +< +ISmgR܋r +> { + +9638 +me +< +tyme + +T +,ym + gChdNodeT +> + +9639  + gNode + : +ShedIm +<> { + +9640 +exic + +Node + +T + cڡ& +_vue + ) : +vue +( _value ) {} + +9641 +vtu + ~ +Node +() {} + +9643  +d +:: + tve +< + tP +< + tChdNodeT +> > + tChdNodes +; + +9644 +T + + gvue +; + +9645 +ChdNodes + + gchdn +; + +9647  + gSeiNode + : +ShedIm +<> { + +9648 +exic + +SeiNode + +SeiSts + cڡ& +_s + ) : +s +( _stats ) {} + +9649 +vtu + ~ +SeiNode +(); + +9651 +bo + + gݔ + = +SeiNode + cڡ& +h + ) const { + +9652  +s +. +iInfo +. +leInfo + = +h +.stats.sectionInfo.lineInfo; + +9654 +bo + + gݔ + = +P +< +SeiNode +> cڡ& +h + ) const { + +9655  +ݔ +==* +h + ); + +9658 +SeiSts + + gs +; + +9659  + gd +:: + tve +< + tP +< + tSeiNode +> > + tChdSeis +; + +9660  + gd +:: + tve +< + tAsiSts +> + tAsis +; + +9661 +ChdSeis + + gchdSeis +; + +9662 +Asis + + gasis +; + +9663 + gd +:: +rg + +dOut +; + +9664 + gd +:: +rg + +dE +; + +9667  + sBySeiInfo + { + +9668 +BySeiInfo + +SeiInfo + cڡ& +h + ) : +m_h +( other ) {} + +9669 +BySeiInfo +BySeiInfcڡ& +h + ) : +m_h +( other.m_other ) {} + +9670 +bo + +ݔ +( +P +< +SeiNode +> cڡ& +node + ) const { + +9671  (( +node +-> +s +. +iInfo +. +me + = +m_h +.name) && + +9672 ( +node +-> +s +. +iInfo +. +leInfo + = +m_h +.lineInfo)); + +9674 + give +: + +9675  +ݔ += +BySeiInfo + const& ); + +9676 +SeiInfo + cڡ& + gm_h +; + +9679  + gNode +< + tTeCaSts +, + tSeiNode +> + tTeCaNode +; + +9680  + gNode +< + tTeGroupSts +, + tTeCaNode +> + tTeGroupNode +; + +9681  + gNode +< + tTeRunSts +, + tTeGroupNode +> + tTeRunNode +; + +9683 +CumutiveR܋rBa + +R܋rCfig + cڡ& +_cfig + ) + +9684 : +m_cfig + +_cfig +. +fuCfig +() ), + +9685 +am + +_cfig +.stream() ) + +9687 + gm_p܋rPfs +. + gshouldRedeStdOut + = +l +; + +9689 ~ +CumutiveR܋rBa +(); + +9691 +vtu + +R܋rPns + +gPns +(cڡ + gCATCH_OVERRIDE + { + +9692  + gm_p܋rPfs +; + +9695 +vtu +  +RunSg + +TeRunInfo + cڡ& ) + gCATCH_OVERRIDE + {} + +9696 +vtu +  +GroupSg + +GroupInfo + cڡ& ) + gCATCH_OVERRIDE + {} + +9698 +vtu +  +CaSg + +TeCaInfo + cڡ& ) + gCATCH_OVERRIDE + {} + +9700 +vtu +  +iSg + +SeiInfo + cڡ& +iInfo + ) + gCATCH_OVERRIDE + { + +9701 +SeiSts + +comeSts + +iInfo +, +Cous +(), 0, +l + ); + +9702 + gP +< + gSeiNode +> + gnode +; + +9703 if + gm_iSck +. +emy +() ) { + +9704 if! + gm_roSei + ) + +9705 + gm_roSei + = +w + +SeiNode + +comeSts + ); + +9706 + gnode + = +m_roSei +; + +9709 + gSeiNode +& + gNode + = * +m_iSck +. +back +(); + +9710 + gSeiNode +:: +ChdSeis +:: +cڡ_ + + + = + +9711 +d +:: +fd_if + +Node +. +chdSeis +. +beg +(), + +9712 +Node +. +chdSeis +. +d +(), + +9713 +BySeiInfo + +iInfo + ) ); + +9714 if + g + = +Node +. +chdSeis +. +d +() ) { + +9715 +node + = +w + +SeiNode + +comeSts + ); + +9716 + gNode +. + gchdSeis +. +push_back + +node + ); + +9719 + gnode + = * + +; + +9721 + gm_iSck +. +push_back + +node + ); + +9722 + gm_dSei + = +node +; + +9725 +vtu +  +asiSg + +AsiInfo + cڡ& ) + gCATCH_OVERRIDE + {} + +9727 +vtu + +bo + +asiEnded + +AsiSts + cڡ& +asiSts + ) + gCATCH_OVERRIDE + { + +9728 +as +! +m_iSck +. +emy +() ); + +9729 + gSeiNode +& + giNode + = * +m_iSck +. +back +(); + +9730 + giNode +. + gasis +. +push_back + +asiSts + ); + +9736 +eExndedExessi + +iNode +. +asis +. +back +(). +asiResu + ); + +9737  + gue +; + +9739 +vtu +  +iEnded + +SeiSts + cڡ& +iSts + ) + gCATCH_OVERRIDE + { + +9740 +as +! +m_iSck +. +emy +() ); + +9741 + gSeiNode +& + gnode + = * +m_iSck +. +back +(); + +9742 + gnode +. + gs + = +iSts +; + +9743 + gm_iSck +. +p_back +(); + +9745 +vtu +  +CaEnded + +TeCaSts + cڡ& +CaSts + ) + gCATCH_OVERRIDE + { + +9746 + gP +< + gTeCaNode +> + gnode + = +w + +TeCaNode + +CaSts + ); + +9747 +as + +m_iSck +. +size +() == 0 ); + +9748 + gnode +-> + gchdn +. +push_back + +m_roSei + ); + +9749 + gm_Cas +. +push_back + +node + ); + +9750 + gm_roSei +. +t +(); + +9752 +as + +m_dSei + ); + +9753 + gm_dSei +-> + gdOut + = +CaSts +. +dOut +; + +9754 + gm_dSei +-> + gdE + = +CaSts +. +dE +; + +9756 +vtu +  +GroupEnded + +TeGroupSts + cڡ& +GroupSts + ) + gCATCH_OVERRIDE + { + +9757 + gP +< + gTeGroupNode +> + gnode + = +w + +TeGroupNode + +GroupSts + ); + +9758 + gnode +-> + gchdn +. +sw + +m_Cas + ); + +9759 + gm_Groups +. +push_back + +node + ); + +9761 +vtu +  +RunEnded + +TeRunSts + cڡ& +RunSts + ) + gCATCH_OVERRIDE + { + +9762 + gP +< + gTeRunNode +> + gnode + = +w + +TeRunNode + +RunSts + ); + +9763 + gnode +-> + gchdn +. +sw + +m_Groups + ); + +9764 + gm_Runs +. +push_back + +node + ); + +9765 +RunEndedCumutive +(); + +9767 +vtu +  +RunEndedCumutive +() = 0; + +9769 +vtu +  +skTe + +TeCaInfo + cڡ& ) + gCATCH_OVERRIDE + {} + +9771 +vtu +  +eExndedExessi + +AsiResu +& +su + ) const { + +9772 if + gsu +. +isOk +() ) + +9773 + gsu +. +disrdDecompodExessi +(); + +9775 + gsu +. +exndDecompodExessi +(); + +9778 + gP +< +ICfig + cڡ> + gm_cfig +; + +9779 + gd +:: +oam +& +am +; + +9780 + gd +:: +ve +< +AsiSts +> +m_asis +; + +9781 + gd +:: +ve +< +d +::ve< +P +< +SeiNode +> > > +m_is +; + +9782 + gd +:: +ve +< +P +< +TeCaNode +> > +m_Cas +; + +9783 + gd +:: +ve +< +P +< +TeGroupNode +> > +m_Groups +; + +9785 + gd +:: +ve +< +P +< +TeRunNode +> > +m_Runs +; + +9787 + gP +< + gSeiNode +> + gm_roSei +; + +9788 + gP +< + gSeiNode +> + gm_dSei +; + +9789 + gd +:: +ve +< +P +< +SeiNode +> > +m_iSck +; + +9790 +R܋rPns + + gm_p܋rPfs +; + +9794 + gme +< + gC +> + +9795 cڡ* +gLeOfChs +() { + +9796  + gle +[ +CATCH_CONFIG_CONSOLE_WIDTH +] = {0}; + +9797 if!* + gle + ) { + +9798 + gd +:: +memt + +le +, +C +, +CATCH_CONFIG_CONSOLE_WIDTH +-1 ); + +9799 + gle +[ +CATCH_CONFIG_CONSOLE_WIDTH +-1] = 0; + +9801  + gle +; + +9804  + gTeEvtLiBa + : +SmgR܋rBa + { + +9805 +TeEvtLiBa + +R܋rCfig + cڡ& +_cfig + ) + +9806 : +SmgR܋rBa + +_cfig + ) + +9809 +vtu +  +asiSg + +AsiInfo + cڡ& ) +CATCH_OVERRIDE + {} + +9810 +vtu + +bo + +asiEnded + +AsiSts + cڡ& ) +CATCH_OVERRIDE + { + +9811  +l +; + +9818  + #TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED + + + ) + +9820 +mea + + gCch + { + +9822 + gme +< +tyme + + gT +> + +9823 as + cLegacyR܋rRegir + { + +9825 as + cR܋rFay + : +public + +IR܋rFay + { + +9826 +vtu + +ISmgR܋r +* + + +R܋rCfig + cڡ& +cfig + ) const { + +9827  +w + +LegacyR܋rAdr +w +T + +cfig + ) ); + +9830 +vtu + + gd +:: +rg + +gDesti +() const { + +9831  +T +:: +gDesti +(); + +9835 + gpublic +: + +9837 +LegacyR܋rRegir + +d +:: +rg + cڡ& +me + ) { + +9838 +gMubRegiryHub +(). +giR܋r + +me +, +w + +R܋rFay +() ); + +9842 + gme +< +tyme + + gT +> + +9843 as + cR܋rRegir + { + +9845 +ass + + gR܋rFay + : +public + +ShedIm +< +IR܋rFay +> { + +9858 +vtu + +ISmgR܋r +* + + +R܋rCfig + cڡ& +cfig + ) const { + +9859  +w + +T + +cfig + ); + +9862 +vtu + + gd +:: +rg + +gDesti +() const { + +9863  +T +:: +gDesti +(); + +9867 + gpublic +: + +9869 +R܋rRegir + +d +:: +rg + cڡ& +me + ) { + +9870 +gMubRegiryHub +(). +giR܋r + +me +, +w + +R܋rFay +() ); + +9874 + gme +< +tyme + + gT +> + +9875 as + cLiRegir + { + +9877 +ass + + gLiFay + : +public + +ShedIm +< +IR܋rFay +> { + +9879 +vtu + +ISmgR܋r +* + + +R܋rCfig + cڡ& +cfig + ) const { + +9880  +w + +T + +cfig + ); + +9882 +vtu + + gd +:: +rg + +gDesti +() const { + +9883  +d +:: +rg +(); + +9887 + gpublic +: + +9889 +LiRegir +() { + +9890 +gMubRegiryHub +(). +giLi + +w + +LiFay +() ); + +9895  + #INTERNAL_CATCH_REGISTER_LEGACY_REPORTER + +me +, +p܋rTy + ) \ + +9896 +mea +{ +Cch +:: +LegacyR܋rRegir +< +p܋rTy +> +tch__RegirF +## + `p܋rTy + +me + ); } + + ) + +9898  + #INTERNAL_CATCH_REGISTER_REPORTER + +me +, +p܋rTy + ) \ + +9899 +mea +{ +Cch +:: +R܋rRegir +< +p܋rTy +> +tch__RegirF +## + `p܋rTy + +me + ); } + + ) + +9902  + #INTERNAL_CATCH_REGISTER_LISTENER + +liTy + ) \ + +9903 +mea +{ +Cch +:: +LiRegir +< +liTy +> +tch__RegirF +##liTy; } + + ) + +9905  + #CATCH_REGISTER_LISTENER + +liTy + ) \ + +9906 +mea +{ +Cch +:: +LiRegir +< +liTy +> +tch__RegirF +##liTy; } + + ) + +9909  + #TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED + + + ) + +9911  + ~ + +9912  + ~ + +9913  + ~ + +9914  + ~ + +9916 +mea + + gCch + { + +9918 as + cXmlEncode + { + +9919 + gpublic +: + +9920 + eFWh + { +FTextNodes +, + gFAribus + }; + +9922 +XmlEncode + +d +:: +rg + cڡ& +r +, +FWh + +fWh + = +FTextNodes + ) + +9923 : +m_r + +r + ), + +9924 +m_fWh + +fWh + ) + +9927  +codeTo + +d +:: +oam +& +os + ) const { + +9932  +d +:: +size_t + +i + = 0; + gi + < + gm_r +. +size +(); ++ i ) { + +9933  + gc + = +m_r +[ +i +]; + +9934  + gc + ) { + +9935 '<': +os + << "<"; ; + +9936 '&': +os + << "&"; ; + +9940 if +i + > 2 && +m_r +[i-1] == ']' && m_str[i-2] == ']' ) + +9941 +os + << ">"; + +9943 + gos + << + gc +; + +9947 if +m_fWh + = +FAribus + ) + +9948 +os + << """; + +9950 + gos + << + gc +; + +9956 i +c + >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' ) { + +9958 +os + << "\\x" << +d +:: +u + << std:: +hex + << std:: +tfl +('0'<< std:: +tw +(2) + +9959 << +ic_ +<> +c + ); + +9962 + gos + << + gc +; + +9967 +nd + + gd +:: +oam +& +ݔ + << ( +d +::oam& +os +, +XmlEncode + cڡ& + gxmlEncode + ) { + +9968 + gxmlEncode +. +codeTo + +os + ); + +9969  + gos +; + +9972 + give +: + +9973 +d +:: +rg + +m_r +; + +9974 +FWh + + gm_fWh +; + +9977 as + cXmlWr + { + +9978 + gpublic +: + +9980 as + cScedEmt + { + +9981 +public +: + +9982 +ScedEmt + +XmlWr +* +wr + ) + +9983 : +m_wr + +wr + ) + +9986 +ScedEmt +ScedEmcڡ& +h + ) + +9987 : +m_wr + +h +.m_writer ){ + +9988 +h +. +m_wr + = +CATCH_NULL +; + +9991 ~ +ScedEmt +() { + +9992 if + gm_wr + ) + +9993 + gm_wr +-> +dEmt +(); + +9996 + gScedEmt +& +wreText + +d +:: +rg + cڡ& +xt +, +bo + +dt + = +ue + ) { + +9997 +m_wr +-> +wreText + +xt +, +dt + ); + +9998  * + gthis +; + +10001 + gme +< +tyme + + gT +> + +10002 + gScedEmt +& +wreAribu + +d +:: +rg + cڡ& +me +, +T + cڡ& +ibu + ) { + +10003 + gm_wr +-> +wreAribu + +me +, +ibu + ); + +10004  * + gthis +; + +10007 + give +: + +10008 +mub + +XmlWr +* +m_wr +; + +10011 +XmlWr +() + +10012 : +m_gIsOn + +l + ), + +10013 +m_edsNewle + +l + ), + +10014 +m_os + +Cch +:: +cout +() ) + +10016 +wreDei +(); + +10019 +XmlWr + +d +:: +oam +& +os + ) + +10020 : +m_gIsOn + +l + ), + +10021 +m_edsNewle + +l + ), + +10022 +m_os + +os + ) + +10024 +wreDei +(); + +10027 ~ +XmlWr +() { + +10028  ! + gm_gs +. +emy +() ) + +10029 +dEmt +(); + +10032 + gXmlWr +& +tEmt + +d +:: +rg + cڡ& +me + ) { + +10033 +suTagClod +(); + +10034 +wleIfNesry +(); + +10035 + gm_os + << + gm_dt + << '<' << + gme +; + +10036 + gm_gs +. +push_back + +me + ); + +10037 + gm_dt + += " "; + +10038 + gm_gIsOn + = +ue +; + +10039  * + gthis +; + +10042 +ScedEmt + +scedEmt + +d +:: +rg + cڡ& +me + ) { + +10043 +ScedEmt + +sced + +this + ); + +10044 +tEmt + +me + ); + +10045  + gsced +; + +10048 + gXmlWr +& +dEmt +() { + +10049 +wleIfNesry +(); + +10050 + gm_dt + = +m_dt +. +subr +0, m_dt. +size +()-2 ); + +10051 if + gm_gIsOn + ) { + +10052 + gm_os + << "/>"; + +10053 + gm_gIsOn + = +l +; + +10056 + gm_os + << + gm_dt + << ""; + +10058 + gm_os + << + gd +:: +dl +; + +10059 + gm_gs +. +p_back +(); + +10060  * + gthis +; + +10063 + gXmlWr +& +wreAribu + +d +:: +rg + cڡ& +me +, std::rg cڡ& +ibu + ) { + +10064 if! +me +. +emy +(&& ! +ibu +.empty() ) + +10065 +m_os + << ' ' << +me + << "=\"" << +XmlEncode + +ibu +, XmlEncode:: +FAribus + ) << '"'; + +10066  * + gthis +; + +10069 + gXmlWr +& +wreAribu + +d +:: +rg + cڡ& +me +, +bo + +ibu + ) { + +10070 + gm_os + << ' ' << + gme + << "=\"" << ( + gibu + ? "true" : "false" ) << '"'; + +10071  * + gthis +; + +10074 + gme +< +tyme + + gT +> + +10075 + gXmlWr +& +wreAribu + +d +:: +rg + cڡ& +me +, +T + cڡ& +ibu + ) { + +10076 + gd +:: +orgam + +oss +; + +10077 + goss + << + gibu +; + +10078  +wreAribu + +me +, +oss +. +r +() ); + +10081 + gXmlWr +& +wreText + +d +:: +rg + cڡ& +xt +, +bo + +dt + = +ue + ) { + +10082 if! +xt +. +emy +() ){ + +10083 +bo + +gWasOn + = +m_gIsOn +; + +10084 +suTagClod +(); + +10085 if + ggWasOn + && + gdt + ) + +10086 + gm_os + << + gm_dt +; + +10087 + gm_os + << +XmlEncode + +xt + ); + +10088 + gm_edsNewle + = +ue +; + +10090  * + gthis +; + +10093 + gXmlWr +& +wreCommt + +d +:: +rg + cڡ& +xt + ) { + +10094 +suTagClod +(); + +10095 + gm_os + << + gm_dt + << ""; + +10096 + gm_edsNewle + = +ue +; + +10097  * + gthis +; + +10100  +wreStyshtRef + +d +:: +rg + cڡ& +u + ) { + +10101 +m_os + << "\n"; + +10104 + gXmlWr +& +wreBnkLe +() { + +10105 +suTagClod +(); + +10106 + gm_os + << '\n'; + +10107  * + gthis +; + +10110  +suTagClod +() { + +10111 if + gm_gIsOn + ) { + +10112 + gm_os + << ">" << + gd +:: +dl +; + +10113 + gm_gIsOn + = +l +; + +10117 + give +: + +10118 +XmlWr +( XmlWriter const& ); + +10119  + gݔ += +XmlWr + const& ); + +10121  +wreDei +() { + +10122 + gm_os + << "\n"; + +10125  +wleIfNesry +() { + +10126 if + gm_edsNewle + ) { + +10127 + gm_os + << + gd +:: +dl +; + +10128 + gm_edsNewle + = +l +; + +10132 +bo + + gm_gIsOn +; + +10133 +bo + + gm_edsNewle +; + +10134 + gd +:: +ve +< +d +:: +rg +> +m_gs +; + +10135 + gd +:: +rg + +m_dt +; + +10136 + gd +:: +oam +& +m_os +; + +10141 +mea + + gCch + { + +10142 as + cXmlR܋r + : +public + +SmgR܋rBa + { + +10143 +public +: + +10144 +XmlR܋r + +R܋rCfig + cڡ& +_cfig + ) + +10145 : +SmgR܋rBa + +_cfig + ), + +10146 +m_xml +( +_cfig +. +am +()), + +10147 +m_iDth +( 0 ) + +10149 + gm_p܋rPfs +. + gshouldRedeStdOut + = +ue +; + +10152 + gvtu + ~ +XmlR܋r +( + gCATCH_OVERRIDE +; + +10154  + gd +:: +rg + +gDesti +() { + +10158 +vtu + + gd +:: +rg + +gStyshtRef +() const { + +10159  +d +:: +rg +(); + +10162  +wreSourInfo + +SourLeInfo + cڡ& +sourInfo + ) { + +10163 + gm_xml + + +10164 . +wreAribu +"fame", +sourInfo +. +fe + ) + +10165 . +wreAribu +"le", +sourInfo +. +le + ); + +10168 + gpublic +: + +10170 +vtu +  +noMchgTeCas + +d +:: +rg + cڡ& +s + ) +CATCH_OVERRIDE + { + +10171 +SmgR܋rBa +:: +noMchgTeCas + +s + ); + +10174 +vtu +  +RunSg + +TeRunInfo + cڡ& +Info + ) + gCATCH_OVERRIDE + { + +10175 + gSmgR܋rBa +:: +RunSg + +Info + ); + +10176 + gd +:: +rg + +yshtRef + = +gStyshtRef +(); + +10177 if! + gyshtRef +. +emy +() ) + +10178 + gm_xml +. +wreStyshtRef + +yshtRef + ); + +10179 + gm_xml +. +tEmt +( "Catch" ); + +10180 if! + gm_cfig +-> +me +(). +emy +() ) + +10181 + gm_xml +. +wreAribu +"me", +m_cfig +-> +me +() ); + +10184 +vtu +  +GroupSg + +GroupInfo + cڡ& +groupInfo + ) + gCATCH_OVERRIDE + { + +10185 + gSmgR܋rBa +:: +GroupSg + +groupInfo + ); + +10186 + gm_xml +. +tEmt +( "Group" ) + +10187 . +wreAribu +"me", +groupInfo +. +me + ); + +10190 +vtu +  +CaSg + +TeCaInfo + cڡ& +Info + ) + gCATCH_OVERRIDE + { + +10191 + gSmgR܋rBa +:: +CaSg +( +Info +); + +10192 + gm_xml +. +tEmt +( "TestCase" ) + +10193 . +wreAribu +"me", +im + +Info +. +me + ) ) + +10194 . +wreAribu +"desti", +Info +. +desti + ) + +10195 . +wreAribu +"gs", +Info +. +gsAsSg + ); + +10197 +wreSourInfo + +Info +. +leInfo + ); + +10199 i + gm_cfig +-> +showDutis +(= +ShowDutis +:: +Always + ) + +10200 +m_CaTim +. +t +(); + +10201 + gm_xml +. +suTagClod +(); + +10204 +vtu +  +iSg + +SeiInfo + cڡ& +iInfo + ) + gCATCH_OVERRIDE + { + +10205 + gSmgR܋rBa +:: +iSg + +iInfo + ); + +10206 if + gm_iDth +++ > 0 ) { + +10207 + gm_xml +. +tEmt +( "Section" ) + +10208 . +wreAribu +"me", +im + +iInfo +. +me + ) ) + +10209 . +wreAribu +"desti", +iInfo +. +desti + ); + +10210 +wreSourInfo + +iInfo +. +leInfo + ); + +10211 + gm_xml +. +suTagClod +(); + +10215 +vtu +  +asiSg + +AsiInfo + cڡ& ) + gCATCH_OVERRIDE + { } + +10217 +vtu + +bo + +asiEnded + +AsiSts + cڡ& +asiSts + ) + gCATCH_OVERRIDE + { + +10219 +AsiResu + cڡ& + gsu + = +asiSts +. +asiResu +; + +10221 +bo + + gudeResus + = +m_cfig +-> +udeSucssfulResus +(|| ! +su +. +isOk +(); + +10223 if + gudeResus + ) { + +10225  + gd +:: +ve +< +MesgeInfo +>:: +cڡ_ + + + = +asiSts +. +foMesges +. +beg +(), + gEnd + =siSts.foMesges. +d +(); + +10226 + g + ! +End +; + +10227 ++ + g + ) { + +10228 if + g +-> + gty + = +ResuWas +:: +Info + ) { + +10229 +m_xml +. +scedEmt +( "Info" ) + +10230 . +wreText + + +-> +mesge + ); + +10231 } i + g +-> + gty + = +ResuWas +:: +Wng + ) { + +10232 +m_xml +. +scedEmt +( "Warning" ) + +10233 . +wreText + + +-> +mesge + ); + +10239 if! + gudeResus + && + gsu +. +gResuTy +(! +ResuWas +:: +Wng + ) + +10240  +ue +; + +10243 if + gsu +. +hasExessi +() ) { + +10244 + gm_xml +. +tEmt +( "Expression" ) + +10245 . +wreAribu +"sucss", +su +. +suceded +() ) + +10246 . +wreAribu +"ty", +su +. +gTeMaoName +() ); + +10248 +wreSourInfo + +su +. +gSourInfo +() ); + +10250 + gm_xml +. +scedEmt +( "Original" ) + +10251 . +wreText + +su +. +gExessi +() ); + +10252 + gm_xml +. +scedEmt +( "Expanded" ) + +10253 . +wreText + +su +. +gExndedExessi +() ); + +10257  + gsu +. +gResuTy +() ) { + +10258  + gResuWas +:: +ThwExi +: + +10259 +m_xml +. +tEmt +( "Exception" ); + +10260 +wreSourInfo + +su +. +gSourInfo +() ); + +10261 + gm_xml +. +wreText + +su +. +gMesge +() ); + +10262 + gm_xml +. +dEmt +(); + +10264  + gResuWas +:: +FECdi +: + +10265 +m_xml +. +tEmt +( "FatalErrorCondition" ); + +10266 +wreSourInfo + +su +. +gSourInfo +() ); + +10267 + gm_xml +. +wreText + +su +. +gMesge +() ); + +10268 + gm_xml +. +dEmt +(); + +10270  + gResuWas +:: +Info +: + +10271 +m_xml +. +scedEmt +( "Info" ) + +10272 . +wreText + +su +. +gMesge +() ); + +10274  + gResuWas +:: +Wng +: + +10277  + gResuWas +:: +ExicFau +: + +10278 +m_xml +. +tEmt +( "Failure" ); + +10279 +wreSourInfo + +su +. +gSourInfo +() ); + +10280 + gm_xml +. +wreText + +su +. +gMesge +() ); + +10281 + gm_xml +. +dEmt +(); + +10287 if + gsu +. +hasExessi +() ) + +10288 + gm_xml +. +dEmt +(); + +10290  + gue +; + +10293 +vtu +  +iEnded + +SeiSts + cڡ& +iSts + ) + gCATCH_OVERRIDE + { + +10294 + gSmgR܋rBa +:: +iEnded + +iSts + ); + +10295 if-- + gm_iDth + > 0 ) { + +10296 + gXmlWr +:: +ScedEmt + +e + = +m_xml +. +scedEmt +( "OverallResults" ); + +10297 + ge +. +wreAribu +"sucss", +iSts +. +asis +. +sd + ); + +10298 + ge +. +wreAribu +"us", +iSts +. +asis +. +ed + ); + +10299 + ge +. +wreAribu +"exedFaus", +iSts +. +asis +. +edButOk + ); + +10301 i + gm_cfig +-> +showDutis +(= +ShowDutis +:: +Always + ) + +10302 +e +. +wreAribu +"dutiInSecds", +iSts +. +dutiInSecds + ); + +10304 + gm_xml +. +dEmt +(); + +10308 +vtu +  +CaEnded + +TeCaSts + cڡ& +CaSts + ) + gCATCH_OVERRIDE + { + +10309 + gSmgR܋rBa +:: +CaEnded + +CaSts + ); + +10310 + gXmlWr +:: +ScedEmt + +e + = +m_xml +. +scedEmt +( "OverallResult" ); + +10311 + ge +. +wreAribu +"sucss", +CaSts +. +tٮs +. +asis +. +lOk +() ); + +10313 i + gm_cfig +-> +showDutis +(= +ShowDutis +:: +Always + ) + +10314 +e +. +wreAribu +"dutiInSecds", +m_CaTim +. +gEpdSecds +() ); + +10316 if! + gCaSts +. + gdOut +. +emy +() ) + +10317 + gm_xml +. +scedEmt +"StdOut" ). +wreText + +im + +CaSts +. +dOut + ), +l + ); + +10318 if! + gCaSts +. + gdE +. +emy +() ) + +10319 + gm_xml +. +scedEmt +"StdE" ). +wreText + +im + +CaSts +. +dE + ), +l + ); + +10321 + gm_xml +. +dEmt +(); + +10324 +vtu +  +GroupEnded + +TeGroupSts + cڡ& +GroupSts + ) + gCATCH_OVERRIDE + { + +10325 + gSmgR܋rBa +:: +GroupEnded + +GroupSts + ); + +10326 + gm_xml +. +scedEmt +( "OverallResults" ) + +10327 . +wreAribu +"sucss", +GroupSts +. +tٮs +. +asis +. +sd + ) + +10328 . +wreAribu +"us", +GroupSts +. +tٮs +. +asis +. +ed + ) + +10329 . +wreAribu +"exedFaus", +GroupSts +. +tٮs +. +asis +. +edButOk + ); + +10330 + gm_xml +. +dEmt +(); + +10333 +vtu +  +RunEnded + +TeRunSts + cڡ& +RunSts + ) + gCATCH_OVERRIDE + { + +10334 + gSmgR܋rBa +:: +RunEnded + +RunSts + ); + +10335 + gm_xml +. +scedEmt +( "OverallResults" ) + +10336 . +wreAribu +"sucss", +RunSts +. +tٮs +. +asis +. +sd + ) + +10337 . +wreAribu +"us", +RunSts +. +tٮs +. +asis +. +ed + ) + +10338 . +wreAribu +"exedFaus", +RunSts +. +tٮs +. +asis +. +edButOk + ); + +10339 + gm_xml +. +dEmt +(); + +10342 + give +: + +10343 +Tim + +m_CaTim +; + +10344 +XmlWr + + gm_xml +; + +10345  + gm_iDth +; + +10348 +INTERNAL_CATCH_REGISTER_REPORTER +"xml", +XmlR܋r + ) + +10353  + #TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED + + + ) + +10355  + ~ + +10357 +mea + + gCch + { + +10359 + gmea + { + +10360 + gd +:: +rg + +gCutTimeamp +() { + +10363 +time_t + +wtime +; + +10364 + gd +:: +time +(& +wtime +); + +10365 cڡ +size_t + + gtimeSmpSize + = ("2017-01-16T17:06:45Z"); + +10367 #ifde +_MSC_VER + + +10368 + gd +:: +tm + +timeInfo + = {}; + +10369 +gmtime_s +(& +timeInfo +, & +wtime +); + +10371 + gd +:: +tm +* +timeInfo +; + +10372 + gtimeInfo + = +d +:: +gmtime +(& +wtime +); + +10375  + gtimeSmp +[ +timeSmpSize +]; + +10376 cڡ * cڡ + gfmt + = "%Y-%m-%dT%H:%M:%SZ"; + +10378 #ifde +_MSC_VER + + +10379 + gd +:: +rime +( +timeSmp +, +timeSmpSize +, +fmt +, & +timeInfo +); + +10381 + gd +:: +rime +( +timeSmp +, +timeSmpSize +, +fmt +, +timeInfo +); + +10383  + gd +:: +rg +( +timeSmp +); + +10388 as + cJunR܋r + : +public + +CumutiveR܋rBa + { + +10389 +public +: + +10390 +JunR܋r + +R܋rCfig + cڡ& +_cfig + ) + +10391 : +CumutiveR܋rBa + +_cfig + ), + +10392 +xml + +_cfig +. +am +() ), + +10393 +uxedExis +( 0 ), + +10394 +m_okToFa + +l + ) + +10396 + gm_p܋rPfs +. + gshouldRedeStdOut + = +ue +; + +10399 + gvtu + ~ +JunR܋r +( + gCATCH_OVERRIDE +; + +10401  + gd +:: +rg + +gDesti +() { + +10405 +vtu +  +noMchgTeCas + +d +:: +rg + cڡ& ) +CATCH_OVERRIDE + {} + +10407 +vtu +  +RunSg + +TeRunInfo + cڡ& +runInfo + ) +CATCH_OVERRIDE + { + +10408 +CumutiveR܋rBa +:: +RunSg + +runInfo + ); + +10409 + gxml +. +tEmt +( "testsuites" ); + +10412 +vtu +  +GroupSg + +GroupInfo + cڡ& +groupInfo + ) + gCATCH_OVERRIDE + { + +10413 + gsueTim +. +t +(); + +10414 + gdOutFSue +. +r +(""); + +10415 + gdEFSue +. +r +(""); + +10416 + guxedExis + = 0; + +10417 + gCumutiveR܋rBa +:: +GroupSg + +groupInfo + ); + +10420 +vtu +  +CaSg + +TeCaInfo + cڡ& +CaInfo + ) + gCATCH_OVERRIDE + { + +10421 + gm_okToFa + = +CaInfo +. +okToFa +(); + +10423 +vtu + +bo + +asiEnded + +AsiSts + cڡ& +asiSts + ) + gCATCH_OVERRIDE + { + +10424 if + gasiSts +. + gasiResu +. +gResuTy +(= +ResuWas +:: +ThwExi + && ! +m_okToFa + ) + +10425 +uxedExis +++; + +10426  + gCumutiveR܋rBa +:: +asiEnded + +asiSts + ); + +10429 +vtu +  +CaEnded + +TeCaSts + cڡ& +CaSts + ) + gCATCH_OVERRIDE + { + +10430 + gdOutFSue + << + gCaSts +. + gdOut +; + +10431 + gdEFSue + << + gCaSts +. + gdE +; + +10432 + gCumutiveR܋rBa +:: +CaEnded + +CaSts + ); + +10435 +vtu +  +GroupEnded + +TeGroupSts + cڡ& +GroupSts + ) + gCATCH_OVERRIDE + { + +10436  + gsueTime + = +sueTim +. +gEpdSecds +(); + +10437 + gCumutiveR܋rBa +:: +GroupEnded + +GroupSts + ); + +10438 +wreGroup +* +m_Groups +. +back +(), +sueTime + ); + +10441 +vtu +  +RunEndedCumutive +( + gCATCH_OVERRIDE + { + +10442 + gxml +. +dEmt +(); + +10445  +wreGroup + +TeGroupNode + cڡ& +groupNode +,  +sueTime + ) { + +10446 + gXmlWr +:: +ScedEmt + +e + = +xml +. +scedEmt +( "testsuite" ); + +10447 +TeGroupSts + cڡ& + gs + = +groupNode +. +vue +; + +10448 + gxml +. +wreAribu +"me", +s +. +groupInfo +. +me + ); + +10449 + gxml +. +wreAribu +"rs", +uxedExis + ); + +10450 + gxml +. +wreAribu +"us", +s +. +tٮs +. +asis +. +ed +- +uxedExis + ); + +10451 + gxml +. +wreAribu +"s", +s +. +tٮs +. +asis +. +tٮ +() ); + +10452 + gxml +. +wreAribu +( "hostname", "tbd" ); + +10453 if + gm_cfig +-> +showDutis +(= +ShowDutis +:: +Nev + ) + +10454 +xml +. +wreAribu +( "time", "" ); + +10456 + gxml +. +wreAribu +"time", +sueTime + ); + +10457 + gxml +. +wreAribu +"timeamp", +gCutTimeamp +() ); + +10460  + gTeGroupNode +:: +ChdNodes +:: +cڡ_ + + +10461 + + = +groupNode +. +chdn +. +beg +(), + gEnd + = groupNode.chdn. +d +(); + +10462 + g + ! +End +; + +10463 ++ + g + ) + +10464 +wreTeCa +** + + ); + +10466 + gxml +. +scedEmt +"syem-out" ). +wreText + +im + +dOutFSue +. +r +(), +l + ); + +10467 + gxml +. +scedEmt +"syem-r" ). +wreText + +im + +dEFSue +. +r +(), +l + ); + +10470  +wreTeCa + +TeCaNode + cڡ& +CaNode + ) { + +10471 +TeCaSts + cڡ& + gs + = +CaNode +. +vue +; + +10475 +as + +CaNode +. +chdn +. +size +() == 1 ); + +10476 +SeiNode + cڡ& + groSei + = * +CaNode +. +chdn +. +t +(); + +10478 + gd +:: +rg + +assName + = +s +. +Info +.className; + +10480 if + gassName +. +emy +() ) { + +10481 if + groSei +. + gchdSeis +. +emy +() ) + +10482 + gassName + = "global"; + +10484 +wreSei + +assName +, "", +roSei + ); + +10487  +wreSei + +d +:: +rg + cڡ& +assName +, + +10488 +d +:: +rg + cڡ& +roName +, + +10489 +SeiNode + cڡ& +iNode + ) { + +10490 + gd +:: +rg + +me + = +im + +iNode +. +s +. +iInfo +.name ); + +10491 if! + groName +. +emy +() ) + +10492 + gme + = +roName + + '/' + +me +; + +10494 if! + giNode +. + gasis +. +emy +() || + +10495 ! + giNode +. + gdOut +. +emy +() || + +10496 ! + giNode +. + gdE +. +emy +() ) { + +10497 + gXmlWr +:: +ScedEmt + +e + = +xml +. +scedEmt +( "testcase" ); + +10498 if + gassName +. +emy +() ) { + +10499 + gxml +. +wreAribu +"asame", +me + ); + +10500 + gxml +. +wreAribu +( "name", "root" ); + +10503 + gxml +. +wreAribu +"asame", +assName + ); + +10504 + gxml +. +wreAribu +"me", +me + ); + +10506 + gxml +. +wreAribu +"time", +Cch +:: +toSg + +iNode +. +s +. +dutiInSecds + ) ); + +10508 +wreAsis + +iNode + ); + +10510 if! + giNode +. + gdOut +. +emy +() ) + +10511 + gxml +. +scedEmt +"syem-out" ). +wreText + +im + +iNode +. +dOut + ), +l + ); + +10512 if! + giNode +. + gdE +. +emy +() ) + +10513 + gxml +. +scedEmt +"syem-r" ). +wreText + +im + +iNode +. +dE + ), +l + ); + +10515  + gSeiNode +:: +ChdSeis +:: +cڡ_ + + +10516 + + = +iNode +. +chdSeis +. +beg +(), + +10517 + gEnd + = +iNode +. +chdSeis +. +d +(); + +10518 + g + ! +End +; + +10519 ++ + g + ) + +10520 if + gassName +. +emy +() ) + +10521 +wreSei + +me +, "", ** + + ); + +10523 +wreSei + +assName +, +me +, ** + + ); + +10526  +wreAsis + +SeiNode + cڡ& +iNode + ) { + +10527  + gSeiNode +:: +Asis +:: +cڡ_ + + +10528 + + = +iNode +. +asis +. +beg +(), + gEnd + = seiNode.asis. +d +(); + +10529 + g + ! +End +; + +10530 ++ + g + ) + +10531 +wreAsi +* + + ); + +10533  +wreAsi + +AsiSts + cڡ& +s + ) { + +10534 +AsiResu + cڡ& + gsu + = +s +. +asiResu +; + +10535 if! + gsu +. +isOk +() ) { + +10536 + gd +:: +rg + +emtName +; + +10537  + gsu +. +gResuTy +() ) { + +10538  + gResuWas +:: +ThwExi +: + +10539  +ResuWas +:: +FECdi +: + +10540 +emtName + = "error"; + +10542  + gResuWas +:: +ExicFau +: + +10543 +emtName + = "failure"; + +10545  + gResuWas +:: +ExessiFaed +: + +10546 +emtName + = "failure"; + +10548  + gResuWas +:: +DidThrowExi +: + +10549 +emtName + = "failure"; + +10553  + gResuWas +:: +Info +: + +10554  +ResuWas +:: +Wng +: + +10555  +ResuWas +:: +Ok +: + +10556  +ResuWas +:: +Unknown +: + +10557  +ResuWas +:: +FauB +: + +10558  +ResuWas +:: +Exi +: + +10559 +emtName + = "internalError"; + +10563 + gXmlWr +:: +ScedEmt + +e + = +xml +. +scedEmt + +emtName + ); + +10565 + gxml +. +wreAribu +"mesge", +su +. +gExndedExessi +() ); + +10566 + gxml +. +wreAribu +"ty", +su +. +gTeMaoName +() ); + +10568 + gd +:: +orgam + +oss +; + +10569 if! + gsu +. +gMesge +(). +emy +() ) + +10570 + goss + << + gsu +. +gMesge +() << '\n'; + +10571  + gd +:: +ve +< +MesgeInfo +>:: +cڡ_ + + +10572 + + = +s +. +foMesges +. +beg +(), + +10573 + gEnd + = +s +. +foMesges +. +d +(); + +10574 + g + ! +End +; + +10575 ++ + g + ) + +10576 if + g +-> + gty + = +ResuWas +:: +Info + ) + +10577 +oss + << + +-> +mesge + << '\n'; + +10579 + goss + << " " << + gsu +. +gSourInfo +(); + +10580 + gxml +. +wreText + +oss +. +r +(), +l + ); + +10584 +XmlWr + + gxml +; + +10585 +Tim + + gsueTim +; + +10586 + gd +:: +orgam + +dOutFSue +; + +10587 + gd +:: +orgam + +dEFSue +; + +10588  + guxedExis +; + +10589 +bo + + gm_okToFa +; + +10592 +INTERNAL_CATCH_REGISTER_REPORTER +"jun", +JunR܋r + ) + +10597  + #TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED + + + ) + +10599  + ~ + +10600  + ~ + +10602 +mea + + gCch + { + +10604  + gCseR܋r + : +SmgR܋rBa + { + +10605 +CseR܋r + +R܋rCfig + cڡ& +_cfig + ) + +10606 : +SmgR܋rBa + +_cfig + ), + +10607 +m_hdPrd + +l + ) + +10610 + gvtu + ~ +CseR܋r +( + gCATCH_OVERRIDE +; + +10611  + gd +:: +rg + +gDesti +() { + +10615 +vtu +  +noMchgTeCas + +d +:: +rg + cڡ& +ec + ) +CATCH_OVERRIDE + { + +10616 +am + << "N؋ camched '" << +ec + << '\'' << +d +:: +dl +; + +10619 +vtu +  +asiSg + +AsiInfo + cڡ& ) + gCATCH_OVERRIDE + { + +10622 +vtu + +bo + +asiEnded + +AsiSts + cڡ& +_asiSts + ) + gCATCH_OVERRIDE + { + +10623 +AsiResu + cڡ& + gsu + = +_asiSts +. +asiResu +; + +10625 +bo + + gudeResus + = +m_cfig +-> +udeSucssfulResus +(|| ! +su +. +isOk +(); + +10628 if! + gudeResus + && + gsu +. +gResuTy +(! +ResuWas +:: +Wng + ) + +10629  +l +; + +10631 +zyPrt +(); + +10633 +AsiPrr + +r + +am +, +_asiSts +, +udeResus + ); + +10634 + gr +. +t +(); + +10635 + gam + << + gd +:: +dl +; + +10636  + gue +; + +10639 +vtu +  +iSg + +SeiInfo + cڡ& +_iInfo + ) + gCATCH_OVERRIDE + { + +10640 + gm_hdPrd + = +l +; + +10641 + gSmgR܋rBa +:: +iSg + +_iInfo + ); + +10643 +vtu +  +iEnded + +SeiSts + cڡ& +_iSts + ) + gCATCH_OVERRIDE + { + +10644 if + g_iSts +. + gmissgAsis + ) { + +10645 +zyPrt +(); + +10646 +Cour + +cour +Cour:: +ResuE + ); + +10647 if + gm_iSck +. +size +() > 1 ) + +10648 + gam + << "\nNossertions in section"; + +10650 + gam + << "\nNossertions inest case"; + +10651 + gam + << " '" << + g_iSts +. + giInfo +. + gme + << "'\n" << + gd +:: +dl +; + +10653 if + gm_cfig +-> +showDutis +(= +ShowDutis +:: +Always + ) { + +10654 +am + << +gFmdDuti +( +_iSts +. +dutiInSecds +<< " s: " << _iSts. +iInfo +. +me + << +d +:: +dl +; + +10656 if + gm_hdPrd + ) { + +10657 + gm_hdPrd + = +l +; + +10659 + gSmgR܋rBa +:: +iEnded + +_iSts + ); + +10662 +vtu +  +CaEnded + +TeCaSts + cڡ& +_CaSts + ) + gCATCH_OVERRIDE + { + +10663 + gSmgR܋rBa +:: +CaEnded + +_CaSts + ); + +10664 + gm_hdPrd + = +l +; + +10666 +vtu +  +GroupEnded + +TeGroupSts + cڡ& +_GroupSts + ) + gCATCH_OVERRIDE + { + +10667 if + gcutGroupInfo +. + gud + ) { + +10668 +tSummyDivid +(); + +10669 + gam + << "Summy f grou'" << + g_GroupSts +. + ggroupInfo +. + gme + << "':\n"; + +10670 +tTٮs + +_GroupSts +. +tٮs + ); + +10671 + gam + << '\n' << + gd +:: +dl +; + +10673 + gSmgR܋rBa +:: +GroupEnded + +_GroupSts + ); + +10675 +vtu +  +RunEnded + +TeRunSts + cڡ& +_RunSts + ) + gCATCH_OVERRIDE + { + +10676 +tTٮsDivid + +_RunSts +. +tٮs + ); + +10677 +tTٮs + +_RunSts +. +tٮs + ); + +10678 + gam + << + gd +:: +dl +; + +10679 + gSmgR܋rBa +:: +RunEnded + +_RunSts + ); + +10682 + give +: + +10684 as + cAsiPrr + { + +10685  +ݔ + +AsiPrr + const& ); + +10686 + gpublic +: + +10687 +AsiPrr + +d +:: +oam +& +_am +, +AsiSts + cڡ& +_s +, +bo + +_tInfoMesges + ) + +10688 : +am + +_am + ), + +10689 +s + +_s + ), + +10690 +su + +_s +. +asiResu + ), + +10691 +cour + +Cour +:: +Ne + ), + +10692 +mesge + +su +. +gMesge +() ), + +10693 +mesges + +_s +. +foMesges + ), + +10694 +tInfoMesges + +_tInfoMesges + ) + +10696  + gsu +. +gResuTy +() ) { + +10697  + gResuWas +:: +Ok +: + +10698 +cour + = +Cour +:: +Sucss +; + +10699 + gssOrFa + = "PASSED"; + +10701 if + g_s +. + gfoMesges +. +size +() == 1 ) + +10702 +mesgeLab + = "with message"; + +10703 if + g_s +. + gfoMesges +. +size +() > 1 ) + +10704 + gmesgeLab + = "with messages"; + +10706  + gResuWas +:: +ExessiFaed +: + +10707 if +su +. +isOk +() ) { + +10708 +cour + = +Cour +:: +Sucss +; + +10709 + gssOrFa + = "FAILED - but was ok"; + +10712 + gcour + = +Cour +:: +E +; + +10713 + gssOrFa + = "FAILED"; + +10715 if + g_s +. + gfoMesges +. +size +() == 1 ) + +10716 +mesgeLab + = "with message"; + +10717 if + g_s +. + gfoMesges +. +size +() > 1 ) + +10718 + gmesgeLab + = "with messages"; + +10720  + gResuWas +:: +ThwExi +: + +10721 +cour + = +Cour +:: +E +; + +10722 + gssOrFa + = "FAILED"; + +10723 + gmesgeLab + = "dueo unexpectedxception with "; + +10724 i( + g_s +. + gfoMesges +. +size +() == 1) + +10725 +mesgeLab + += "message"; + +10726 i( + g_s +. + gfoMesges +. +size +() > 1) + +10727 + gmesgeLab + += "messages"; + +10729  + gResuWas +:: +FECdi +: + +10730 +cour + = +Cour +:: +E +; + +10731 + gssOrFa + = "FAILED"; + +10732 + gmesgeLab + = "dueo fatalrror condition"; + +10734  + gResuWas +:: +DidThrowExi +: + +10735 +cour + = +Cour +:: +E +; + +10736 + gssOrFa + = "FAILED"; + +10737 + gmesgeLab + = "becauseoxception washrown where one wasxpected"; + +10739  + gResuWas +:: +Info +: + +10740 +mesgeLab + = "info"; + +10742  + gResuWas +:: +Wng +: + +10743 +mesgeLab + = "warning"; + +10745  + gResuWas +:: +ExicFau +: + +10746 +ssOrFa + = "FAILED"; + +10747 + gcour + = +Cour +:: +E +; + +10748 if + g_s +. + gfoMesges +. +size +() == 1 ) + +10749 +mesgeLab + = "explicitly with message"; + +10750 if + g_s +. + gfoMesges +. +size +() > 1 ) + +10751 + gmesgeLab + = "explicitly with messages"; + +10754  + gResuWas +:: +Unknown +: + +10755  +ResuWas +:: +FauB +: + +10756  +ResuWas +:: +Exi +: + +10757 +ssOrFa + = "** internalrror **"; + +10758 + gcour + = +Cour +:: +E +; + +10763  +t +() const { + +10764 +tSourInfo +(); + +10765 if + gs +. + gtٮs +. + gasis +. +tٮ +() > 0 ) { + +10766 if + gsu +. +isOk +() ) + +10767 + gam + << '\n'; + +10768 +tResuTy +(); + +10769 +tOrigExessi +(); + +10770 +tRecڡruedExessi +(); + +10773 + gam + << '\n'; + +10775 +tMesge +(); + +10778 + give +: + +10779  +tResuTy +() const { + +10780 if! +ssOrFa +. +emy +() ) { + +10781 +Cour + +courGud + +cour + ); + +10782 + gam + << + gssOrFa + << ":\n"; + +10785  +tOrigExessi +() const { + +10786 if + gsu +. +hasExessi +() ) { + +10787 +Cour + +courGud +Cour:: +OrigExessi + ); + +10788 + gam + << " "; + +10789 + gam + << + gsu +. +gExessiInMao +(); + +10790 + gam + << '\n'; + +10793  +tRecڡruedExessi +() const { + +10794 if + gsu +. +hasExndedExessi +() ) { + +10795 + gam + << "withxpansion:\n"; + +10796 +Cour + +courGud +Cour:: +RecڡruedExessi + ); + +10797 + gam + << +Text + +su +. +gExndedExessi +(), +TextAribus +(). +tIndt +(2) ) << '\n'; + +10800  +tMesge +() const { + +10801 if! + gmesgeLab +. +emy +() ) + +10802 + gam + << + gmesgeLab + << ':' << '\n'; + +10803  + gd +:: +ve +< +MesgeInfo +>:: +cڡ_ + + + = +mesges +. +beg +(), + gEnd + = mesges. +d +(); + +10804 + g + ! +End +; + +10805 ++ + g + ) { + +10807 if + gtInfoMesges + || + g +-> + gty + ! +ResuWas +:: +Info + ) + +10808 +am + << +Text + + +-> +mesge +, +TextAribus +(). +tIndt +(2) ) << '\n'; + +10811  +tSourInfo +() const { + +10812 +Cour + +courGud +Cour:: +FeName + ); + +10813 + gam + << + gsu +. +gSourInfo +() << ": "; + +10816 + gd +:: +oam +& +am +; + +10817 +AsiSts + cڡ& + gs +; + +10818 +AsiResu + cڡ& + gsu +; + +10819 + gCour +:: +Code + +cour +; + +10820 + gd +:: +rg + +ssOrFa +; + +10821 + gd +:: +rg + +mesgeLab +; + +10822 + gd +:: +rg + +mesge +; + +10823 + gd +:: +ve +< +MesgeInfo +> +mesges +; + +10824 +bo + + gtInfoMesges +; + +10827  +zyPrt +() { + +10829 if! + gcutTeRunInfo +. + gud + ) + +10830 +zyPrtRunInfo +(); + +10831 if! + gcutGroupInfo +. + gud + ) + +10832 +zyPrtGroupInfo +(); + +10834 if! + gm_hdPrd + ) { + +10835 +tTeCaAndSeiHd +(); + +10836 + gm_hdPrd + = +ue +; + +10839  +zyPrtRunInfo +() { + +10840 + gam + << '\n' << + ggLeOfChs +<'~'>() << '\n'; + +10841 +Cour + +cour +Cour:: +SecdyText + ); + +10842 + gam + << + gcutTeRunInfo +-> + gme + + +10843 << " iCch v" << +libryVsi +() << " hostpplication.\n" + +10846 if + gm_cfig +-> +gSd +() != 0 ) + +10847 +am + << "Rdomsededo: " << +m_cfig +-> +gSd +() << "\n\n"; + +10849 + gcutTeRunInfo +. + gud + = +ue +; + +10851  +zyPrtGroupInfo +() { + +10852 if! + gcutGroupInfo +-> + gme +. +emy +(&& cutGroupInfo-> + ggroupsCous + > 1 ) { + +10853 +tClodHd +"Group: " + +cutGroupInfo +-> +me + ); + +10854 + gcutGroupInfo +. + gud + = +ue +; + +10857  +tTeCaAndSeiHd +() { + +10858 +as +! +m_iSck +. +emy +() ); + +10859 +tOnHd + +cutTeCaInfo +-> +me + ); + +10861 if + gm_iSck +. +size +() > 1 ) { + +10862 +Cour + +courGud +Cour:: +Hds + ); + +10864 + gd +:: +ve +< +SeiInfo +>:: +cڡ_ + + +10865 + + = +m_iSck +. +beg +()+1, + +10866 + gEnd + = +m_iSck +. +d +(); + +10867  ; + g + ! +End +; ++it ) + +10868 +tHdSg + + +-> +me +, 2 ); + +10871 +SourLeInfo + + gleInfo + = +m_iSck +. +back +(). +leInfo +; + +10873 if! + gleInfo +. +emy +() ){ + +10874 + gam + << + ggLeOfChs +<'-'>() << '\n'; + +10875 +Cour + +courGud +Cour:: +FeName + ); + +10876 + gam + << + gleInfo + << '\n'; + +10878 + gam + << + ggLeOfChs +<'.'>(<< '\n' << + gd +:: +dl +; + +10881  +tClodHd + +d +:: +rg + cڡ& +_me + ) { + +10882 +tOnHd + +_me + ); + +10883 + gam + << + ggLeOfChs +<'.'>() << '\n'; + +10885  +tOnHd + +d +:: +rg + cڡ& +_me + ) { + +10886 +am + << +gLeOfChs +<'-'>() << '\n'; + +10888 +Cour + +courGud +Cour:: +Hds + ); + +10889 +tHdSg + +_me + ); + +10895  +tHdSg + +d +:: +rg + cڡ& +_rg +, std:: +size_t + +dt + = 0 ) { + +10896 +d +:: +size_t + +i + = +_rg +. +fd +( ": " ); + +10897 if + gi + ! +d +:: +rg +:: +os + ) + +10898 +i ++=2; + +10900 + gi + = 0; + +10901 + gam + << +Text + +_rg +, +TextAribus +() + +10902 . +tIndt + +dt ++ +i +) + +10903 . +tInlIndt + +dt + ) ) << '\n'; + +10906  + sSummyCumn + { + +10908 +SummyCumn + +d +:: +rg + cڡ& +_b +, +Cour +:: +Code + +_cour + ) + +10909 : +b + +_b + ), + +10910 +cour + +_cour + ) + +10912 +SummyCumn + +addRow + +d +:: +size_t + +cou + ) { + +10913 +d +:: +orgam + +oss +; + +10914 + goss + << + gcou +; + +10915 + gd +:: +rg + +row + = +oss +. +r +(); + +10916  + gd +:: +ve +< +d +:: +rg +>:: + + + + = +rows +. +beg +(); + g + !rows. +d +(); ++it ) { + +10917  + g +-> +size +(< + grow +.size() ) + +10918 * + g + = ' ' + * + +; + +10919  + g +-> +size +(> + grow +.size() ) + +10920 + grow + = ' ' + +row +; + +10922 + grows +. +push_back + +row + ); + +10923  * + gthis +; + +10926 + gd +:: +rg + +b +; + +10927 + gCour +:: +Code + +cour +; + +10928 + gd +:: +ve +< +d +:: +rg +> +rows +; + +10932  +tTٮs + +Tٮs + cڡ& +tٮs + ) { + +10933 if + gtٮs +. + gCas +. +tٮ +() == 0 ) { + +10934 +am + << +Cour +Cour:: +Wng + ) << "Noestsan\n"; + +10936 if + gtٮs +. + gasis +. +tٮ +(> 0 &&ٮs. + gCas +. +lPasd +() ) { + +10937 + gam + << +Cour +Cour:: +ResuSucss + ) << "Allestsassed"; + +10938 + gam + << " (" + +10939 << +uli + +tٮs +. +asis +. +sd +, "assertion" ) << " in " + +10940 << +uli + +tٮs +. +Cas +. +sd +, "test case" ) << ')' + +10945 + gd +:: +ve +< +SummyCumn +> +cumns +; + +10946 + gcumns +. +push_back + +SummyCumn +"", +Cour +:: +Ne + ) + +10947 . +addRow + +tٮs +. +Cas +. +tٮ +() ) + +10948 . +addRow + +tٮs +. +asis +. +tٮ +() ) ); + +10949 + gcumns +. +push_back + +SummyCumn +"sd", +Cour +:: +Sucss + ) + +10950 . +addRow + +tٮs +. +Cas +. +sd + ) + +10951 . +addRow + +tٮs +. +asis +. +sd + ) ); + +10952 + gcumns +. +push_back + +SummyCumn +"ed", +Cour +:: +ResuE + ) + +10953 . +addRow + +tٮs +. +Cas +. +ed + ) + +10954 . +addRow + +tٮs +. +asis +. +ed + ) ); + +10955 + gcumns +. +push_back + +SummyCumn +"edexed", +Cour +:: +ResuExedFau + ) + +10956 . +addRow + +tٮs +. +Cas +. +edButOk + ) + +10957 . +addRow + +tٮs +. +asis +. +edButOk + ) ); + +10959 +tSummyRow +" cas", +cumns +, 0 ); + +10960 +tSummyRow +"asis", +cumns +, 1 ); + +10963  +tSummyRow + +d +:: +rg + cڡ& +b +, std:: +ve +< +SummyCumn +> cڡ& +cs +, std:: +size_t + +row + ) { + +10964  +d +:: +ve +< +SummyCumn +>:: +cڡ_ + + + = +cs +. +beg +(); + g + !cs. +d +(); ++it ) { + +10965 + gd +:: +rg + +vue + = + +-> +rows +[ +row +]; + +10966 if + g +-> + gb +. +emy +() ) { + +10967 + gam + << + gb + << ": "; + +10968 if + gvue + != "0" ) + +10969 +am + << +vue +; + +10971 + gam + << +Cour +Cour:: +Wng + ) << "-one -"; + +10973 if + gvue + != "0" ) { + +10974 +am + << +Cour +Cour:: +LightGy + ) << " | "; + +10975 + gam + << +Cour + + +-> +cour + ) + +10976 << + gvue + << ' ' << + g +-> + gb +; + +10979 + gam + << '\n'; + +10982  + gd +:: +size_t + +makeRio + +d +::size_ +numb +, std::size_ +tٮ + ) { + +10983 +d +:: +size_t + +tio + = +tٮ + > 0 ? +CATCH_CONFIG_CONSOLE_WIDTH + * +numb +/otal : 0; + +10984  ( + gtio + =0 && +numb + > 0 ) ? 1 : +tio +; + +10986  + gd +:: +size_t +& +fdMax + +d +::size_t& +i +, std::size_t& +j +, std::size_t& +k + ) { + +10987 if +i + > +j + && i > +k + ) + +10988  +i +; + +10989 if + gj + > + gk + ) + +10990  + gj +; + +10992  + gk +; + +10995  +tTٮsDivid + +Tٮs + cڡ& +tٮs + ) { + +10996 if + gtٮs +. + gCas +. +tٮ +() > 0 ) { + +10997 + gd +:: +size_t + +edRio + = +makeRio + +tٮs +. +Cas +. +ed +,ٮs.Cas. +tٮ +() ); + +10998 + gd +:: +size_t + +edButOkRio + = +makeRio + +tٮs +. +Cas +. +edButOk +,ٮs.Cas. +tٮ +() ); + +10999 + gd +:: +size_t + +sdRio + = +makeRio + +tٮs +. +Cas +. +sd +,ٮs.Cas. +tٮ +() ); + +11000  + gedRio + + + gedButOkRio + + + gsdRio + < + gCATCH_CONFIG_CONSOLE_WIDTH +-1 ) + +11001 +fdMax + +edRio +, +edButOkRio +, +sdRio + )++; + +11002  + gedRio + + + gedButOkRio + + + gsdRio + > + gCATCH_CONFIG_CONSOLE_WIDTH +-1 ) + +11003 +fdMax + +edRio +, +edButOkRio +, +sdRio + )--; + +11005 + gam + << +Cour +Cour:: +E + ) << +d +:: +rg + +edRio +, '=' ); + +11006 + gam + << +Cour +Cour:: +ResuExedFau + ) << +d +:: +rg + +edButOkRio +, '=' ); + +11007 if + gtٮs +. + gCas +. +lPasd +() ) + +11008 + gam + << +Cour +Cour:: +ResuSucss + ) << +d +:: +rg + +sdRio +, '=' ); + +11010 + gam + << +Cour +Cour:: +Sucss + ) << +d +:: +rg + +sdRio +, '=' ); + +11013 + gam + << +Cour +Cour:: +Wng + ) << +d +:: +rg + +CATCH_CONFIG_CONSOLE_WIDTH +-1, '=' ); + +11015 + gam + << '\n'; + +11017  +tSummyDivid +() { + +11018 + gam + << + ggLeOfChs +<'-'>() << '\n'; + +11021 + give +: + +11022 +bo + +m_hdPrd +; + +11025 +INTERNAL_CATCH_REGISTER_REPORTER +"cse", +CseR܋r + ) + +11030  + #TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED + + + ) + +11032 +mea + + gCch + { + +11034  + gComR܋r + : +SmgR܋rBa + { + +11036 +ComR܋r + +R܋rCfig + cڡ& +_cfig + ) + +11037 : +SmgR܋rBa + +_cfig + ) + +11040 +vtu + ~ +ComR܋r +(); + +11042  + gd +:: +rg + +gDesti +() { + +11046 +vtu + +R܋rPns + +gPns +() const { + +11047 +R܋rPns + + gefs +; + +11048 + gefs +. + gshouldRedeStdOut + = +l +; + +11049  + gefs +; + +11052 +vtu +  +noMchgTeCas + +d +:: +rg + cڡ& +ec + ) { + +11053 +am + << "N؋ camched '" << +ec + << '\'' << +d +:: +dl +; + +11056 +vtu +  +asiSg + +AsiInfo + const& ) {} + +11058 +vtu + +bo + +asiEnded + +AsiSts + cڡ& +_asiSts + ) { + +11059 +AsiResu + cڡ& + gsu + = +_asiSts +. +asiResu +; + +11061 +bo + + gtInfoMesges + = +ue +; + +11064 if! + gm_cfig +-> +udeSucssfulResus +(&& + gsu +. +isOk +() ) { + +11065 if + gsu +. +gResuTy +(! +ResuWas +:: +Wng + ) + +11066  +l +; + +11067 + gtInfoMesges + = +l +; + +11070 +AsiPrr + +r + +am +, +_asiSts +, +tInfoMesges + ); + +11071 + gr +. +t +(); + +11073 + gam + << + gd +:: +dl +; + +11074  + gue +; + +11077 +vtu +  +iEnded +( +SeiSts + cڡ& +_iSts + + gCATCH_OVERRIDE + { + +11078 i( + gm_cfig +-> +showDutis +(= +ShowDutis +:: +Always +) { + +11079 +am + << +gFmdDuti +( +_iSts +. +dutiInSecds +<< " s: " << _iSts. +iInfo +. +me + << +d +:: +dl +; + +11083 +vtu +  +RunEnded + +TeRunSts + cڡ& +_RunSts + ) { + +11084 +tTٮs + +_RunSts +. +tٮs + ); + +11085 + gam + << '\n' << + gd +:: +dl +; + +11086 + gSmgR܋rBa +:: +RunEnded + +_RunSts + ); + +11089 + give +: + +11090 as + cAsiPrr + { + +11091  +ݔ + +AsiPrr + const& ); + +11092 + gpublic +: + +11093 +AsiPrr + +d +:: +oam +& +_am +, +AsiSts + cڡ& +_s +, +bo + +_tInfoMesges + ) + +11094 : +am + +_am + ) + +11095 , +s + +_s + ) + +11096 , +su + +_s +. +asiResu + ) + +11097 , +mesges + +_s +. +foMesges + ) + +11098 , +Mesge + +_s +. +foMesges +. +beg +() ) + +11099 , +tInfoMesges + +_tInfoMesges + ) + +11102  +t +() { + +11103 +tSourInfo +(); + +11105 + gMesge + = +mesges +. +beg +(); + +11107  + gsu +. +gResuTy +() ) { + +11108  + gResuWas +:: +Ok +: + +11109 +tResuTy + +Cour +:: +ResuSucss +, +sdSg +() ); + +11110 +tOrigExessi +(); + +11111 +tRecڡruedExessi +(); + +11112 i! + gsu +. +hasExessi +() ) + +11113 +tRemagMesges + +Cour +:: +Ne + ); + +11115 +tRemagMesges +(); + +11117  + gResuWas +:: +ExessiFaed +: + +11118 if +su +. +isOk +() ) + +11119 +tResuTy + +Cour +:: +ResuSucss +, +edSg +(+ +d +:: +rg +( " - but was ok" ) ); + +11121 +tResuTy + +Cour +:: +E +, +edSg +() ); + +11122 +tOrigExessi +(); + +11123 +tRecڡruedExessi +(); + +11124 +tRemagMesges +(); + +11126  + gResuWas +:: +ThwExi +: + +11127 +tResuTy + +Cour +:: +E +, +edSg +() ); + +11128 +tIssue +( "unexpectedxception with message:" ); + +11129 +tMesge +(); + +11130 +tExessiWas +(); + +11131 +tRemagMesges +(); + +11133  + gResuWas +:: +FECdi +: + +11134 +tResuTy + +Cour +:: +E +, +edSg +() ); + +11135 +tIssue +( "fatalrror condition with message:" ); + +11136 +tMesge +(); + +11137 +tExessiWas +(); + +11138 +tRemagMesges +(); + +11140  + gResuWas +:: +DidThrowExi +: + +11141 +tResuTy + +Cour +:: +E +, +edSg +() ); + +11142 +tIssue +( "expectedxception, gotone" ); + +11143 +tExessiWas +(); + +11144 +tRemagMesges +(); + +11146  + gResuWas +:: +Info +: + +11147 +tResuTy + +Cour +:: +Ne +, "info" ); + +11148 +tMesge +(); + +11149 +tRemagMesges +(); + +11151  + gResuWas +:: +Wng +: + +11152 +tResuTy + +Cour +:: +Ne +, "warning" ); + +11153 +tMesge +(); + +11154 +tRemagMesges +(); + +11156  + gResuWas +:: +ExicFau +: + +11157 +tResuTy + +Cour +:: +E +, +edSg +() ); + +11158 +tIssue +( "explicitly" ); + +11159 +tRemagMesges + +Cour +:: +Ne + ); + +11162  + gResuWas +:: +Unknown +: + +11163  +ResuWas +:: +FauB +: + +11164  +ResuWas +:: +Exi +: + +11165 +tResuTy + +Cour +:: +E +, "** internalrror **" ); + +11170 + give +: + +11173  +Cour +:: +Code + +dimCour +({  Cour:: +FeName +; } + +11175 #ifde +CATCH_PLATFORM_MAC + + +11176 cڡ * +edSg +() {  "FAILED"; } + +11177 cڡ * +sdSg +() {  "PASSED"; } + +11179 cڡ * +edSg +() {  "failed"; } + +11180 cڡ * +sdSg +() {  "passed"; } + +11183  +tSourInfo +() const { + +11184 +Cour + +courGud +Cour:: +FeName + ); + +11185 + gam + << + gsu +. +gSourInfo +() << ':'; + +11188  +tResuTy + +Cour +:: +Code + +cour +, +d +:: +rg + cڡ& +ssOrFa + ) const { + +11189 if! +ssOrFa +. +emy +() ) { + +11191 +Cour + +courGud + +cour + ); + +11192 + gam + << ' ' << + gssOrFa +; + +11194 + gam + << ':'; + +11198  +tIssue + +d +:: +rg + cڡ& +issue + ) const { + +11199 +am + << ' ' << +issue +; + +11202  +tExessiWas +() { + +11203 if + gsu +. +hasExessi +() ) { + +11204 + gam + << ';'; + +11206 +Cour + +cour + +dimCour +() ); + +11207 + gam + << "xpression was:"; + +11209 +tOrigExessi +(); + +11213  +tOrigExessi +() const { + +11214 if + gsu +. +hasExessi +() ) { + +11215 + gam + << ' ' << + gsu +. +gExessi +(); + +11219  +tRecڡruedExessi +() const { + +11220 if + gsu +. +hasExndedExessi +() ) { + +11222 +Cour + +cour + +dimCour +() ); + +11223 + gam + << " for: "; + +11225 + gam + << + gsu +. +gExndedExessi +(); + +11229  +tMesge +() { + +11230 i + gMesge + ! +mesges +. +d +() ) { + +11231 +am + << " '" << +Mesge +-> +mesge + << '\''; + +11232 ++ + gMesge +; + +11236  +tRemagMesges + +Cour +:: +Code + +cour + = +dimCour +() ) { + +11237 i +Mesge + = +mesges +. +d +() ) + +11241 + gd +:: +ve +< +MesgeInfo +>:: +cڡ_ + +End + = +mesges +. +d +(); + +11242 cڡ + gd +:: +size_t + +N + = +ic_ +< +d +::size_t>Сd:: +di + +Mesge +, +End + ) ); + +11245 +Cour + +courGud + +cour + ); + +11246 + gam + << " wh " << +uli + +N +, "message" ) << ':'; + +11249 ; + gMesge + ! +End +; ) { + +11251 if + gtInfoMesges + || + gMesge +-> + gty + ! +ResuWas +:: +Info + ) { + +11252 +am + << " '" << +Mesge +-> +mesge + << '\''; + +11253 i++ + gMesge + ! +End + ) { + +11254 +Cour + +courGud + +dimCour +() ); + +11255 + gam + << "nd"; + +11261 + give +: + +11262 +d +:: +oam +& +am +; + +11263 +AsiSts + cڡ& + gs +; + +11264 +AsiResu + cڡ& + gsu +; + +11265 + gd +:: +ve +< +MesgeInfo +> +mesges +; + +11266 + gd +:: +ve +< +MesgeInfo +>:: +cڡ_ + +Mesge +; + +11267 +bo + + gtInfoMesges +; + +11277 + gd +:: +rg + +bhOrA + +d +:: +size_t + +cou + ) const { + +11278  +cou + =1 ? +d +:: +rg +() : count == 2 ? "both " : "all " ; + +11281  +tTٮs +cڡ +Tٮs +& +tٮs + ) const { + +11282 if + gtٮs +. + gCas +. +tٮ +() == 0 ) { + +11283 +am + << "Noestsan."; + +11285 if + gtٮs +. + gCas +. + ged + = +tٮs +. +Cas +. +tٮ +() ) { + +11286 +Cour + +cour +Cour:: +ResuE + ); + +11287 cڡ + gd +:: +rg + +quify_asis_ed + = + +11288 +tٮs +. +asis +. +ed + =tٮs.asis. +tٮ +() ? + +11289 +bhOrA + +tٮs +. +asis +. +ed + ) : +d +:: +rg +(); + +11290 + gam + << + +11291 "Faed " << +bhOrA + +tٮs +. +Cas +. +ed + ) + +11292 << +uli + +tٮs +. +Cas +. +ed +, "test case" ) << ", " + +11293 "ed " << + gquify_asis_ed + << + +11294 +uli + +tٮs +. +asis +. +ed +, "assertion" ) << '.'; + +11296 if + gtٮs +. + gasis +. +tٮ +() == 0 ) { + +11297 +am + << + +11298 "Pasd " << +bhOrA + +tٮs +. +Cas +. +tٮ +() ) + +11299 << +uli + +tٮs +. +Cas +. +tٮ +(), "test case" ) + +11302 if + gtٮs +. + gasis +. + ged + ) { + +11303 +Cour + +cour +Cour:: +ResuE + ); + +11304 + gam + << + +11305 "Faed " << +uli + +tٮs +. +Cas +. +ed +, "test case" ) << ", " + +11306 "ed " << +uli + +tٮs +. +asis +. +ed +, "assertion" ) << '.'; + +11309 +Cour + +cour +Cour:: +ResuSucss + ); + +11310 + gam + << + +11311 "Pasd " << +bhOrA + +tٮs +. +Cas +. +sd + ) + +11312 << +uli + +tٮs +. +Cas +. +sd +, "test case" ) << + +11313 " wh " << +uli + +tٮs +. +asis +. +sd +, "assertion" ) << '.'; + +11318 +INTERNAL_CATCH_REGISTER_REPORTER +"com", +ComR܋r + ) + +11322 +mea + + gCch + { + +11325 + gNCyab +::~ +NCyab +() {} + +11326 +IShed +::~IShared() {} + +11327 +ISm +::~ISm( +CATCH_NOEXCEPT + {} + +11328 +FeSm +::~FeSm( +CATCH_NOEXCEPT + {} + +11329 +CoutSm +::~CoutSm( +CATCH_NOEXCEPT + {} + +11330 +DebugOutSm +::~DebugOutSm( +CATCH_NOEXCEPT + {} + +11331 +SmBufBa +::~SmBufBa( +CATCH_NOEXCEPT + {} + +11332 +ICڋxt +::~IContext() {} + +11333 +IResuCtu +::~IResultCapture() {} + +11334 +ITeCa +::~ITestCase() {} + +11335 +ITeCaRegiry +::~ITestCaseRegistry() {} + +11336 +IRegiryHub +::~IRegistryHub() {} + +11337 +IMubRegiryHub +::~IMutableRegistryHub() {} + +11338 +IExiTn +::~IExceptionTranslator() {} + +11339 +IExiTnRegiry +::~IExceptionTranslatorRegistry() {} + +11340 +IR܋r +::~IReporter() {} + +11341 +IR܋rFay +::~IReporterFactory() {} + +11342 +IR܋rRegiry +::~IReporterRegistry() {} + +11343 +ISmgR܋r +::~IStreamingReporter() {} + +11344 +AsiSts +::~AssertionStats() {} + +11345 +SeiSts +::~SectionStats() {} + +11346 +TeCaSts +::~TestCaseStats() {} + +11347 +TeGroupSts +::~TestGroupStats() {} + +11348 +TeRunSts +::~TestRunStats() {} + +11349 +CumutiveR܋rBa +:: +SeiNode +::~SectionNode() {} + +11350 +CumutiveR܋rBa +::~CumulativeReporterBase() {} + +11352 +SmgR܋rBa +::~StreamingReporterBase() {} + +11353 +CseR܋r +::~ConsoleReporter() {} + +11354 +ComR܋r +::~CompactReporter() {} + +11355 +IRu” +::~IRunner() {} + +11356 +IMubCڋxt +::~IMutableContext() {} + +11357 +ICfig +::~IConfig() {} + +11358 +XmlR܋r +::~XmlReporter() {} + +11359 +JunR܋r +::~JunitReporter() {} + +11360 +TeRegiry +::~TestRegistry() {} + +11361 +FeFuniTeCa +::~FreeFunctionTestCase() {} + +11362 +IGInfo +::~IGeneratorInfo() {} + +11363 +IGsFTe +::~IGeneratorsForTest() {} + +11364 +WdrdP +::~WildcardPattern() {} + +11365 +TeSc +:: +P +::~Pattern() {} + +11366 +TeSc +:: +NameP +::~NamePattern() {} + +11367 +TeSc +:: +TagP +::~TagPattern() {} + +11368 +TeSc +:: +ExudedP +::~ExcludedPattern() {} + +11369 +Mchs +:: +Im +:: +MchUydBa +::~MatcherUntypedBase() {} + +11371  +Cfig +:: +dummy +() {} + +11373 +mea + +TeCaTckg + { + +11374 +ITck +::~ITracker() {} + +11375 +TckBa +::~TrackerBase() {} + +11376 +SeiTck +::~SectionTracker() {} + +11377 +IndexTck +::~IndexTracker() {} + +11381 #ifde +__g__ + + +11382 #agm +g + +dgnoic + +p + + +11387 #ifde +CATCH_CONFIG_MAIN + + +11389  + #TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED + + + ) + +11391 #ide +__OBJC__ + + +11393 #i +defed +( +WIN32 +&& defed( +_UNICODE +&& !defed( +DO_NOT_USE_WMAIN +) + +11395 "C"  + $wma + ( +gc +, +wch_t + * +gv +[], wchar_t * []) { + +11398  + $ma + ( +gc +, * +gv +[]) { + +11401  +su + = +Cch +:: + `Sessi +(). + `run + +gc +, +gv + ); + +11402  ( +su + < 0xff ?esult : 0xff ); + +11403 + } +} + +11408  + $ma + ( +gc +, * cڡ +gv +[]) { + +11409 #i! +CATCH_ARC_ENABLED + + +11410 +NSAutܖPo + * +po + = [[NSAutܖPo +loc +] + +]; + +11413 +Cch +:: + `giTeMhods +(); + +11414  +su + = +Cch +:: + `Sessi +(). + `run + +gc +, (* cڡ*) +gv + ); + +11416 #i! +CATCH_ARC_ENABLED + + +11417 [ +po + +d +]; + +11420  ( +su + < 0xff ?esult : 0xff ); + +11421 + } +} + +11427 #ifde +CLARA_CONFIG_MAIN_NOT_DEFINED + + +11428 #unde +CLARA_CONFIG_MAIN + + +11434 #ifde +CATCH_CONFIG_PREFIX_ALL + + +11436 #i +defed +( +CATCH_CONFIG_FAST_COMPILE +) + +11437  + #CATCH_REQUIRE + +ex + ) + `INTERNAL_CATCH_TEST_NO_TRY +"CATCH_REQUIRE", +Cch +:: +ResuDiosi +:: +Nm +,x ) + + ) + +11438  + #CATCH_REQUIRE_FALSE + +ex + ) + `INTERNAL_CATCH_TEST_NO_TRY +"CATCH_REQUIRE_FALSE", +Cch +:: +ResuDiosi +:: +Nm + | Cch::ResuDiosi:: +FTe +,x ) + + ) + +11440  + #CATCH_REQUIRE + +ex + ) + `INTERNAL_CATCH_TEST +"CATCH_REQUIRE", +Cch +:: +ResuDiosi +:: +Nm +,x ) + + ) + +11441  + #CATCH_REQUIRE_FALSE + +ex + ) + `INTERNAL_CATCH_TEST +"CATCH_REQUIRE_FALSE", +Cch +:: +ResuDiosi +:: +Nm + | Cch::ResuDiosi:: +FTe +,x ) + + ) + +11444  + #CATCH_REQUIRE_THROWS + +ex + ) + `INTERNAL_CATCH_THROWS +"CATCH_REQUIRE_THROWS", +Cch +:: +ResuDiosi +:: +Nm +, "",x ) + + ) + +11445  + #CATCH_REQUIRE_THROWS_AS + +ex +, +exiTy + ) + `INTERNAL_CATCH_THROWS_AS +"CATCH_REQUIRE_THROWS_AS",xiTy, +Cch +:: +ResuDiosi +:: +Nm +,x ) + + ) + +11446  + #CATCH_REQUIRE_THROWS_WITH + +ex +, +mch + ) + `INTERNAL_CATCH_THROWS +"CATCH_REQUIRE_THROWS_WITH", +Cch +:: +ResuDiosi +:: +Nm +, mch,x ) + + ) + +11447  + #CATCH_REQUIRE_NOTHROW + +ex + ) + `INTERNAL_CATCH_NO_THROW +"CATCH_REQUIRE_NOTHROW", +Cch +:: +ResuDiosi +:: +Nm +,x ) + + ) + +11449  + #CATCH_CHECK + +ex + ) + `INTERNAL_CATCH_TEST +"CATCH_CHECK", +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11450  + #CATCH_CHECK_FALSE + +ex + ) + `INTERNAL_CATCH_TEST +"CATCH_CHECK_FALSE", +Cch +:: +ResuDiosi +:: +CtueOnFau + | Cch::ResuDiosi:: +FTe +,x ) + + ) + +11451  + #CATCH_CHECKED_IF + +ex + ) + `INTERNAL_CATCH_IF +"CATCH_CHECKED_IF", +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11452  + #CATCH_CHECKED_ELSE + +ex + ) + `INTERNAL_CATCH_ELSE +"CATCH_CHECKED_ELSE", +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11453  + #CATCH_CHECK_NOFAIL + +ex + ) + `INTERNAL_CATCH_TEST +"CATCH_CHECK_NOFAIL", +Cch +:: +ResuDiosi +:: +CtueOnFau + | Cch::ResuDiosi:: +SussFa +,x ) + + ) + +11455  + #CATCH_CHECK_THROWS + +ex + ) + `INTERNAL_CATCH_THROWS +"CATCH_CHECK_THROWS", +Cch +:: +ResuDiosi +:: +CtueOnFau +, "",x ) + + ) + +11456  + #CATCH_CHECK_THROWS_AS + +ex +, +exiTy + ) + `INTERNAL_CATCH_THROWS_AS +"CATCH_CHECK_THROWS_AS",xiTy, +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11457  + #CATCH_CHECK_THROWS_WITH + +ex +, +mch + ) + `INTERNAL_CATCH_THROWS +"CATCH_CHECK_THROWS_WITH", +Cch +:: +ResuDiosi +:: +CtueOnFau +, mch,x ) + + ) + +11458  + #CATCH_CHECK_NOTHROW + +ex + ) + `INTERNAL_CATCH_NO_THROW +"CATCH_CHECK_NOTHROW", +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11460  + #CATCH_CHECK_THAT + +g +, +mch + ) + `INTERNAL_CHECK_THAT +"CATCH_CHECK_THAT", mch, +Cch +:: +ResuDiosi +:: +CtueOnFau +,rg ) + + ) + +11462 #i +defed +( +CATCH_CONFIG_FAST_COMPILE +) + +11463  + #CATCH_REQUIRE_THAT + +g +, +mch + ) + `INTERNAL_CHECK_THAT_NO_TRY +"CATCH_REQUIRE_THAT", mch, +Cch +:: +ResuDiosi +:: +Nm +,rg ) + + ) + +11465  + #CATCH_REQUIRE_THAT + +g +, +mch + ) + `INTERNAL_CHECK_THAT +"CATCH_REQUIRE_THAT", mch, +Cch +:: +ResuDiosi +:: +Nm +,rg ) + + ) + +11468  + #CATCH_INFO + +msg + ) + `INTERNAL_CATCH_INFO +"CATCH_INFO", msg ) + + ) + +11469  + #CATCH_WARN + +msg + ) + `INTERNAL_CATCH_MSG +"CATCH_WARN", +Cch +:: +ResuWas +:: +Wng +, Cch:: +ResuDiosi +:: +CtueOnFau +, msg ) + + ) + +11470  + #CATCH_SCOPED_INFO + +msg + ) + `INTERNAL_CATCH_INFO +"CATCH_INFO", msg ) + + ) + +11471  + #CATCH_CAPTURE + +msg + ) + `INTERNAL_CATCH_INFO +"CATCH_CAPTURE", #msg " :" << +Cch +:: + `toSg +(msg) + + ) + +11472  + #CATCH_SCOPED_CAPTURE + +msg + ) + `INTERNAL_CATCH_INFO +"CATCH_CAPTURE", #msg " :" << +Cch +:: + `toSg +(msg) + + ) + +11474 #ifde +CATCH_CONFIG_VARIADIC_MACROS + + +11475  + #CATCH_TEST_CASE +... ) + `INTERNAL_CATCH_TESTCASE + +__VA_ARGS__ + ) + + ) + +11476  + #CATCH_TEST_CASE_METHOD + +assName +, ... ) + `INTERNAL_CATCH_TEST_CASE_METHOD +assName, +__VA_ARGS__ + ) + + ) + +11477  + #CATCH_METHOD_AS_TEST_CASE + +mhod +, ... ) + `INTERNAL_CATCH_METHOD_AS_TEST_CASE +mhod, +__VA_ARGS__ + ) + + ) + +11478  + #CATCH_REGISTER_TEST_CASE + +Funi +, ... ) + `INTERNAL_CATCH_REGISTER_TESTCASE +Funi, +__VA_ARGS__ + ) + + ) + +11479  + #CATCH_SECTION +... ) + `INTERNAL_CATCH_SECTION + +__VA_ARGS__ + ) + + ) + +11480  + #CATCH_FAIL +... ) + `INTERNAL_CATCH_MSG +"CATCH_FAIL", +Cch +:: +ResuWas +:: +ExicFau +, Cch:: +ResuDiosi +:: +Nm +, +__VA_ARGS__ + ) + + ) + +11481  + #CATCH_FAIL_CHECK +... ) + `INTERNAL_CATCH_MSG +"CATCH_FAIL_CHECK", +Cch +:: +ResuWas +:: +ExicFau +, Cch:: +ResuDiosi +:: +CtueOnFau +, +__VA_ARGS__ + ) + + ) + +11482  + #CATCH_SUCCEED +... ) + `INTERNAL_CATCH_MSG +"CATCH_SUCCEED", +Cch +:: +ResuWas +:: +Ok +, Cch:: +ResuDiosi +:: +CtueOnFau +, +__VA_ARGS__ + ) + + ) + +11484  + #CATCH_TEST_CASE + +me +, +desti + ) + `INTERNAL_CATCH_TESTCASE +me, desti ) + + ) + +11485  + #CATCH_TEST_CASE_METHOD + +assName +, +me +, +desti + ) + `INTERNAL_CATCH_TEST_CASE_METHOD +assName,ame, desti ) + + ) + +11486  + #CATCH_METHOD_AS_TEST_CASE + +mhod +, +me +, +desti + ) + `INTERNAL_CATCH_METHOD_AS_TEST_CASE +mhod,ame, desti ) + + ) + +11487  + #CATCH_REGISTER_TEST_CASE + +funi +, +me +, +desti + ) + `INTERNAL_CATCH_REGISTER_TESTCASE +funi,ame, desti ) + + ) + +11488  + #CATCH_SECTION + +me +, +desti + ) + `INTERNAL_CATCH_SECTION +me, desti ) + + ) + +11489  + #CATCH_FAIL + +msg + ) + `INTERNAL_CATCH_MSG +"CATCH_FAIL", +Cch +:: +ResuWas +:: +ExicFau +, Cch:: +ResuDiosi +:: +Nm +, msg ) + + ) + +11490  + #CATCH_FAIL_CHECK + +msg + ) + `INTERNAL_CATCH_MSG +"CATCH_FAIL_CHECK", +Cch +:: +ResuWas +:: +ExicFau +, Cch:: +ResuDiosi +:: +CtueOnFau +, msg ) + + ) + +11491  + #CATCH_SUCCEED + +msg + ) + `INTERNAL_CATCH_MSG +"CATCH_SUCCEED", +Cch +:: +ResuWas +:: +Ok +, Cch:: +ResuDiosi +:: +CtueOnFau +, msg ) + + ) + +11493  + #CATCH_ANON_TEST_CASE +( + `INTERNAL_CATCH_TESTCASE +"", "" ) + + ) + +11495  + #CATCH_REGISTER_REPORTER + +me +, +p܋rTy + ) + `INTERNAL_CATCH_REGISTER_REPORTER +me,܋rTy ) + + ) + +11496  + #CATCH_REGISTER_LEGACY_REPORTER + +me +, +p܋rTy + ) + `INTERNAL_CATCH_REGISTER_LEGACY_REPORTER +me,܋rTy ) + + ) + +11498  + #CATCH_GENERATE + +ex + + `INTERNAL_CATCH_GENERATE +ex ) + + ) + +11501 #ifde +CATCH_CONFIG_VARIADIC_MACROS + + +11502  + #CATCH_SCENARIO +... ) + `CATCH_TEST_CASE +"Srio: " +__VA_ARGS__ + ) + + ) + +11503  + #CATCH_SCENARIO_METHOD + +assName +, ... ) + `INTERNAL_CATCH_TEST_CASE_METHOD +assName, "Srio: " +__VA_ARGS__ + ) + + ) + +11505  + #CATCH_SCENARIO + +me +, +gs + ) + `CATCH_TEST_CASE +"Srio: "ame,ag) + + ) + +11506  + #CATCH_SCENARIO_METHOD + +assName +, +me +, +gs + ) + `INTERNAL_CATCH_TEST_CASE_METHOD +assName, "Srio: "ame,ag) + + ) + +11508  + #CATCH_GIVEN + +desc + ) + `CATCH_SECTION + +d +:: + `rg +"Giv: "+ desc, "" ) + + ) + +11509  + #CATCH_WHEN + +desc + ) + `CATCH_SECTION + +d +:: + `rg +" Wh: "+ desc, "" ) + + ) + +11510  + #CATCH_AND_WHEN + +desc + ) + `CATCH_SECTION + +d +:: + `rg +" And: "+ desc, "" ) + + ) + +11511  + #CATCH_THEN + +desc + ) + `CATCH_SECTION + +d +:: + `rg +" Th: "+ desc, "" ) + + ) + +11512  + #CATCH_AND_THEN + +desc + ) + `CATCH_SECTION + +d +:: + `rg +" And: "+ desc, "" ) + + ) + +11517 #i +defed +( +CATCH_CONFIG_FAST_COMPILE +) + +11518  + #REQUIRE + +ex + ) + `INTERNAL_CATCH_TEST_NO_TRY +"REQUIRE", +Cch +:: +ResuDiosi +:: +Nm +,x ) + + ) + +11519  + #REQUIRE_FALSE + +ex + ) + `INTERNAL_CATCH_TEST_NO_TRY +"REQUIRE_FALSE", +Cch +:: +ResuDiosi +:: +Nm + | Cch::ResuDiosi:: +FTe +,x ) + + ) + +11522  + #REQUIRE + +ex + ) + `INTERNAL_CATCH_TEST +"REQUIRE", +Cch +:: +ResuDiosi +:: +Nm +,x ) + + ) + +11523  + #REQUIRE_FALSE + +ex + ) + `INTERNAL_CATCH_TEST +"REQUIRE_FALSE", +Cch +:: +ResuDiosi +:: +Nm + | Cch::ResuDiosi:: +FTe +,x ) + + ) + +11526  + #REQUIRE_THROWS + +ex + ) + `INTERNAL_CATCH_THROWS +"REQUIRE_THROWS", +Cch +:: +ResuDiosi +:: +Nm +, "",x ) + + ) + +11527  + #REQUIRE_THROWS_AS + +ex +, +exiTy + ) + `INTERNAL_CATCH_THROWS_AS +"REQUIRE_THROWS_AS",xiTy, +Cch +:: +ResuDiosi +:: +Nm +,x ) + + ) + +11528  + #REQUIRE_THROWS_WITH + +ex +, +mch + ) + `INTERNAL_CATCH_THROWS +"REQUIRE_THROWS_WITH", +Cch +:: +ResuDiosi +:: +Nm +, mch,x ) + + ) + +11529  + #REQUIRE_NOTHROW + +ex + ) + `INTERNAL_CATCH_NO_THROW +"REQUIRE_NOTHROW", +Cch +:: +ResuDiosi +:: +Nm +,x ) + + ) + +11531  + #CHECK + +ex + ) + `INTERNAL_CATCH_TEST +"CHECK", +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11532  + #CHECK_FALSE + +ex + ) + `INTERNAL_CATCH_TEST +"CHECK_FALSE", +Cch +:: +ResuDiosi +:: +CtueOnFau + | Cch::ResuDiosi:: +FTe +,x ) + + ) + +11533  + #CHECKED_IF + +ex + ) + `INTERNAL_CATCH_IF +"CHECKED_IF", +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11534  + #CHECKED_ELSE + +ex + ) + `INTERNAL_CATCH_ELSE +"CHECKED_ELSE", +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11535  + #CHECK_NOFAIL + +ex + ) + `INTERNAL_CATCH_TEST +"CHECK_NOFAIL", +Cch +:: +ResuDiosi +:: +CtueOnFau + | Cch::ResuDiosi:: +SussFa +,x ) + + ) + +11537  + #CHECK_THROWS + +ex + ) + `INTERNAL_CATCH_THROWS +"CHECK_THROWS", +Cch +:: +ResuDiosi +:: +CtueOnFau +, "",x ) + + ) + +11538  + #CHECK_THROWS_AS + +ex +, +exiTy + ) + `INTERNAL_CATCH_THROWS_AS +"CHECK_THROWS_AS",xiTy, +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11539  + #CHECK_THROWS_WITH + +ex +, +mch + ) + `INTERNAL_CATCH_THROWS +"CHECK_THROWS_WITH", +Cch +:: +ResuDiosi +:: +CtueOnFau +, mch,x ) + + ) + +11540  + #CHECK_NOTHROW + +ex + ) + `INTERNAL_CATCH_NO_THROW +"CHECK_NOTHROW", +Cch +:: +ResuDiosi +:: +CtueOnFau +,x ) + + ) + +11542  + #CHECK_THAT + +g +, +mch + ) + `INTERNAL_CHECK_THAT +"CHECK_THAT", mch, +Cch +:: +ResuDiosi +:: +CtueOnFau +,rg ) + + ) + +11544 #i +defed +( +CATCH_CONFIG_FAST_COMPILE +) + +11545  + #REQUIRE_THAT + +g +, +mch + ) + `INTERNAL_CHECK_THAT_NO_TRY +"REQUIRE_THAT", mch, +Cch +:: +ResuDiosi +:: +Nm +,rg ) + + ) + +11547  + #REQUIRE_THAT + +g +, +mch + ) + `INTERNAL_CHECK_THAT +"REQUIRE_THAT", mch, +Cch +:: +ResuDiosi +:: +Nm +,rg ) + + ) + +11550  + #INFO + +msg + ) + `INTERNAL_CATCH_INFO +"INFO", msg ) + + ) + +11551  + #WARN + +msg + ) + `INTERNAL_CATCH_MSG +"WARN", +Cch +:: +ResuWas +:: +Wng +, Cch:: +ResuDiosi +:: +CtueOnFau +, msg ) + + ) + +11552  + #SCOPED_INFO + +msg + ) + `INTERNAL_CATCH_INFO +"INFO", msg ) + + ) + +11553  + #CAPTURE + +msg + ) + `INTERNAL_CATCH_INFO +"CAPTURE", #msg " :" << +Cch +:: + `toSg +(msg) + + ) + +11554  + #SCOPED_CAPTURE + +msg + ) + `INTERNAL_CATCH_INFO +"CAPTURE", #msg " :" << +Cch +:: + `toSg +(msg) + + ) + +11556 #ifde +CATCH_CONFIG_VARIADIC_MACROS + + +11557  + #TEST_CASE +... ) + `INTERNAL_CATCH_TESTCASE + +__VA_ARGS__ + ) + + ) + +11558  + #TEST_CASE_METHOD + +assName +, ... ) + `INTERNAL_CATCH_TEST_CASE_METHOD +assName, +__VA_ARGS__ + ) + + ) + +11559  + #METHOD_AS_TEST_CASE + +mhod +, ... ) + `INTERNAL_CATCH_METHOD_AS_TEST_CASE +mhod, +__VA_ARGS__ + ) + + ) + +11560  + #REGISTER_TEST_CASE + +Funi +, ... ) + `INTERNAL_CATCH_REGISTER_TESTCASE +Funi, +__VA_ARGS__ + ) + + ) + +11561  + #SECTION +... ) + `INTERNAL_CATCH_SECTION + +__VA_ARGS__ + ) + + ) + +11562  + #FAIL +... ) + `INTERNAL_CATCH_MSG +"FAIL", +Cch +:: +ResuWas +:: +ExicFau +, Cch:: +ResuDiosi +:: +Nm +, +__VA_ARGS__ + ) + + ) + +11563  + #FAIL_CHECK +... ) + `INTERNAL_CATCH_MSG +"FAIL_CHECK", +Cch +:: +ResuWas +:: +ExicFau +, Cch:: +ResuDiosi +:: +CtueOnFau +, +__VA_ARGS__ + ) + + ) + +11564  + #SUCCEED +... ) + `INTERNAL_CATCH_MSG +"SUCCEED", +Cch +:: +ResuWas +:: +Ok +, Cch:: +ResuDiosi +:: +CtueOnFau +, +__VA_ARGS__ + ) + + ) + +11566  + #TEST_CASE + +me +, +desti + ) + `INTERNAL_CATCH_TESTCASE +me, desti ) + + ) + +11567  + #TEST_CASE_METHOD + +assName +, +me +, +desti + ) + `INTERNAL_CATCH_TEST_CASE_METHOD +assName,ame, desti ) + + ) + +11568  + #METHOD_AS_TEST_CASE + +mhod +, +me +, +desti + ) + `INTERNAL_CATCH_METHOD_AS_TEST_CASE +mhod,ame, desti ) + + ) + +11569  + #REGISTER_TEST_CASE + +mhod +, +me +, +desti + ) + `INTERNAL_CATCH_REGISTER_TESTCASE +mhod,ame, desti ) + + ) + +11570  + #SECTION + +me +, +desti + ) + `INTERNAL_CATCH_SECTION +me, desti ) + + ) + +11571  + #FAIL + +msg + ) + `INTERNAL_CATCH_MSG +"FAIL", +Cch +:: +ResuWas +:: +ExicFau +, Cch:: +ResuDiosi +:: +Nm +, msg ) + + ) + +11572  + #FAIL_CHECK + +msg + ) + `INTERNAL_CATCH_MSG +"FAIL_CHECK", +Cch +:: +ResuWas +:: +ExicFau +, Cch:: +ResuDiosi +:: +CtueOnFau +, msg ) + + ) + +11573  + #SUCCEED + +msg + ) + `INTERNAL_CATCH_MSG +"SUCCEED", +Cch +:: +ResuWas +:: +Ok +, Cch:: +ResuDiosi +:: +CtueOnFau +, msg ) + + ) + +11575  + #ANON_TEST_CASE +( + `INTERNAL_CATCH_TESTCASE +"", "" ) + + ) + +11577  + #REGISTER_REPORTER + +me +, +p܋rTy + ) + `INTERNAL_CATCH_REGISTER_REPORTER +me,܋rTy ) + + ) + +11578  + #REGISTER_LEGACY_REPORTER + +me +, +p܋rTy + ) + `INTERNAL_CATCH_REGISTER_LEGACY_REPORTER +me,܋rTy ) + + ) + +11580  + #GENERATE + +ex + + `INTERNAL_CATCH_GENERATE +ex ) + + ) + +11584  + #CATCH_TRANSLATE_EXCEPTION + +sigtu + ) + `INTERNAL_CATCH_TRANSLATE_EXCEPTION +sigtu ) + + ) + +11587 #ifde +CATCH_CONFIG_VARIADIC_MACROS + + +11588  + #SCENARIO +... ) + `TEST_CASE +"Srio: " +__VA_ARGS__ + ) + + ) + +11589  + #SCENARIO_METHOD + +assName +, ... ) + `INTERNAL_CATCH_TEST_CASE_METHOD +assName, "Srio: " +__VA_ARGS__ + ) + + ) + +11591  + #SCENARIO + +me +, +gs + ) + `TEST_CASE +"Srio: "ame,ag) + + ) + +11592  + #SCENARIO_METHOD + +assName +, +me +, +gs + ) + `INTERNAL_CATCH_TEST_CASE_METHOD +assName, "Srio: "ame,ag) + + ) + +11594  + #GIVEN + +desc + ) + `SECTION + +d +:: + `rg +(" Giv: "+ desc, "" ) + + ) + +11595  + #WHEN + +desc + ) + `SECTION + +d +:: + `rg +(" Wh: "+ desc, "" ) + + ) + +11596  + #AND_WHEN + +desc + ) + `SECTION + +d +:: + `rg +("And wh: "+ desc, "" ) + + ) + +11597  + #THEN + +desc + ) + `SECTION + +d +:: + `rg +(" Th: "+ desc, "" ) + + ) + +11598  + #AND_THEN + +desc + ) + `SECTION + +d +:: + `rg +(" And: "+ desc, "" ) + + ) + +11600 +usg + +Cch +:: +Da +:: +Arox +; + +11604  + #TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED + + + ) + +11606 #ifde +__g__ + + +11607 #ifde +__ICC + + +11608 #agm +wng +( +p +) + +11610 #agm +g + +dgnoic + +p + + +11612 #i +defed + +__GNUC__ + + +11613 #agm +GCC + +dgnoic + +p + + + @lib_standalone/ArduinoJson/src/ArduinoJson.h + +5 #agm + + + +7 #ifde +__lulus + + +9  + ~"ArduoJs.h +" + +11 +usg + +mea + + gArduoJs +; + +15 #r +ArduoJs + +ques + +a + +C +++ +comp +, + + +chge + +fe + +exnsi + +to + . +cc + + + . +p + + + @lib_standalone/ArduinoJson/src/ArduinoJson.hpp + +5 #agm + + + +7  + ~"ArduoJs/Cfiguti.h +" + +9 #i! +ARDUINOJSON_DEBUG + + +10 #ifde +__g__ + + +11 #agm +g + +syem_hd + + +12 #i +defed + +__GNUC__ + + +13 #agm +GCC + +syem_hd + + +17  + ~"ArduoJs/Aay/AayRef.h +" + +18  + ~"ArduoJs/Obje/ObjeRef.h +" + +19  + ~"ArduoJs/V/VRef.h +" + +21  + ~"ArduoJs/Documt/DymicJsDocumt.h +" + +22  + ~"ArduoJs/Documt/SticJsDocumt.h +" + +24  + ~"ArduoJs/Aay/AayIm.h +" + +25  + ~"ArduoJs/Aay/EmtProxy.h +" + +26  + ~"ArduoJs/Aay/Uts.h +" + +27  + ~"ArduoJs/Ci/CiIm.h +" + +28  + ~"ArduoJs/Obje/MembProxy.h +" + +29  + ~"ArduoJs/Obje/ObjeIm.h +" + +30  + ~"ArduoJs/V/VAsIm.h +" + +31  + ~"ArduoJs/V/VIm.h +" + +33  + ~"ArduoJs/Js/JsDerliz.h +" + +34  + ~"ArduoJs/Js/JsSliz.h +" + +35  + ~"ArduoJs/Js/PyJsSliz.h +" + +36  + ~"ArduoJs/MsgPack/MsgPackDerliz.h +" + +37  + ~"ArduoJs/MsgPack/MsgPackSliz.h +" + +39  + ~"ArduoJs/comtiby.h +" + +41 +mea + + gArduoJs + { + +42  + gARDUINOJSON_NAMESPACE +:: + tAayCڡRef + + tJsAayCڡ +; + +43  + gARDUINOJSON_NAMESPACE +:: + tAayRef + + tJsAay +; + +44  + gARDUINOJSON_NAMESPACE +:: + tFlt + + tJsFlt +; + +45  + gARDUINOJSON_NAMESPACE +:: + tIeg + + tJsIeg +; + +46  + gARDUINOJSON_NAMESPACE +:: + tObjeCڡRef + + tJsObjeCڡ +; + +47  + gARDUINOJSON_NAMESPACE +:: + tObjeRef + + tJsObje +; + +48  + gARDUINOJSON_NAMESPACE +:: + tPa + + tJsPa +; + +49  + gARDUINOJSON_NAMESPACE +:: + tPaCڡ + + tJsPaCڡ +; + +50  + gARDUINOJSON_NAMESPACE +:: + tSg + + tJsSg +; + +51  + gARDUINOJSON_NAMESPACE +:: + tUI + + tJsUI +; + +52  + gARDUINOJSON_NAMESPACE +:: + tVCڡRef + + tJsVCڡ +; + +53  + gARDUINOJSON_NAMESPACE +:: + tVRef + + tJsV +; + +54 +usg + + gARDUINOJSON_NAMESPACE +:: +BasicJsDocumt +; + +55 +usg + + gARDUINOJSON_NAMESPACE +:: +cyAay +; + +56 +usg + + gARDUINOJSON_NAMESPACE +:: +DerliziE +; + +57 +usg + + gARDUINOJSON_NAMESPACE +:: +derlizeJs +; + +58 +usg + + gARDUINOJSON_NAMESPACE +:: +derlizeMsgPack +; + +59 +usg + + gARDUINOJSON_NAMESPACE +:: +DymicJsDocumt +; + +60 +usg + + gARDUINOJSON_NAMESPACE +:: +JsDocumt +; + +61 +usg + + gARDUINOJSON_NAMESPACE +:: +msuJs +; + +62 +usg + + gARDUINOJSON_NAMESPACE +:: +rlized +; + +63 +usg + + gARDUINOJSON_NAMESPACE +:: +rlizeJs +; + +64 +usg + + gARDUINOJSON_NAMESPACE +:: +rlizeJsPy +; + +65 +usg + + gARDUINOJSON_NAMESPACE +:: +rlizeMsgPack +; + +66 +usg + + gARDUINOJSON_NAMESPACE +:: +SticJsDocumt +; + +68 +mea + + gDerliziOi + { + +69 +usg + + gARDUINOJSON_NAMESPACE +:: +Fr +; + +70 +usg + + gARDUINOJSON_NAMESPACE +:: +NegLim +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayFunctions.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 +le + +VDa + * +yAdd +( +CiDa + * +r +, +MemyPo + * +po +) { + +12  + gr + ?-> +addEmt +( +po +) : 0; + +15 + gme + < +tyme + + gVis +> + +16 +le +  +yAc +(cڡ +CiDa + * +r +, +Vis + & +vis +) { + +17 i( + gr +) + +18 + gvis +. +visAay +(* +r +); + +20 + gvis +. +visNu +(); + +23 +le + +bo + +yEqus +(cڡ +CiDa + * +lhs +, cڡ CiD* +rhs +) { + +24 i( + glhs + = +rhs +) + +25  +ue +; + +26 i(! + glhs + || ! + grhs +) + +27  + gl +; + +28  + glhs +-> +equsAay +(* +rhs +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTAay +> + +13 +le + +AayRef + + gAayShtcuts +< + gTAay +>:: +NeedAay +() const { + +14  +im +()-> +addEmt +(). +me + +to +< +AayRef +>(); + +17 + gme + < +tyme + + gTAay +> + +18 +le + +ObjeRef + + gAayShtcuts +< + gTAay +>:: +NeedObje +() const { + +19  +im +()-> +addEmt +(). +me + +to +< +ObjeRef +>(); + +22 + gme + < +tyme + + gTAay +> + +23 +le + + gEmtProxy +< + gTAay +> + gAayShtcuts +:: +ݔ +[]( + +24 +size_t + +dex +) const { + +25  +EmtProxy +< +TAay +>(* +im +(), + gdex +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayIterator.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cVP + { + +13 + gpublic +: + +14 +VP +( +MemyPo + * +po +, +VDa + * +da +: +_v +(pool, data) {} + +16 +VRef + * + gݔ +->() { + +17  & + g_v +; + +20 + gVRef + & + gݔ +*() { + +21  + g_v +; + +24 + give +: + +25 +VRef + +_v +; + +28 as + cAayIt + { + +29 + gpublic +: + +30 +AayIt +(: +_ +(0) {} + +31 +exic + +AayIt +( +MemyPo + * +po +, +VSl + * + +) + +32 : +_po +( +po +), +_ +( + +) {} + +34 +VRef + + gݔ +*() const { + +35  +VRef +( +_po +, +_ +-> +da +()); + +37 +VP + + gݔ +->() { + +38  +VP +( +_po +, +_ +-> +da +()); + +41 +bo + + gݔ +==(cڡ +AayIt + & +h +) const { + +42  +_ + = +h +._slot; + +45 +bo + + gݔ +!=(cڡ +AayIt + & +h +) const { + +46  +_ + ! +h +._slot; + +49 + gAayIt + & + gݔ +++() { + +50 + g_ + = +_ +-> +xt +(); + +51  * + gthis +; + +54 + gAayIt + & + gݔ ++=( +size_t + +di +) { + +55 +_ + = _-> +xt +( +di +); + +56  * + gthis +; + +59 +VSl + * + +() { + +60  + g_ +; + +63 + give +: + +64 +MemyPo + * +_po +; + +65 +VSl + * + g_ +; + +68 as + cVCڡP + { + +69 + gpublic +: + +70 +VCڡP +(cڡ +VDa + * +da +: +_v +(data) {} + +72 +VCڡRef + * +ݔ +->() { + +73  & +_v +; + +76 + gVCڡRef + & + gݔ +*() { + +77  + g_v +; + +80 + give +: + +81 +VCڡRef + +_v +; + +84 as + cAayCڡRefIt + { + +85 + gpublic +: + +86 +AayCڡRefIt +(: +_ +(0) {} + +87 +exic + +AayCڡRefIt +(cڡ +VSl + * + +: +_ +(slot) {} + +89 +VCڡRef + +ݔ +*() const { + +90  +VCڡRef +( +_ +-> +da +()); + +92 +VCڡP + + gݔ +->() { + +93  +VCڡP +( +_ +-> +da +()); + +96 +bo + + gݔ +==(cڡ +AayCڡRefIt + & +h +) const { + +97  +_ + = +h +._slot; + +100 +bo + + gݔ +!=(cڡ +AayCڡRefIt + & +h +) const { + +101  +_ + ! +h +._slot; + +104 + gAayCڡRefIt + & + gݔ +++() { + +105 + g_ + = +_ +-> +xt +(); + +106  * + gthis +; + +109 + gAayCڡRefIt + & + gݔ ++=( +size_t + +di +) { + +110 +_ + = _-> +xt +( +di +); + +111  * + gthis +; + +114 cڡ +VSl + * + +() { + +115  + g_ +; + +118 + give +: + +119 cڡ +VSl + * +_ +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayRef.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +13  + #JSON_ARRAY_SIZE +( +NUMBER_OF_ELEMENTS +) \ + +14 (( +NUMBER_OF_ELEMENTS +* ( +ARDUINOJSON_NAMESPACE +:: +VSl +)) + + ) + +16 +mea + + gARDUINOJSON_NAMESPACE + { + +18 +ass + + gObjeRef +; + +19 + gme + < + gtyme +> + +20 +ass + + gEmtProxy +; + +22 + gme + < +tyme + + gTDa +> + +23 as + cAayRefBa + { + +24 + gpublic +: + +25 +ݔ + +VCڡRef +() const { + +26 cڡ * +da + = +_da +; + +27  +VCڡRef +( +t_ +( +da +)); + +30 + gme + < +tyme + + gVis +> + +31 +FORCE_INLINE +  +ac +( +Vis +& +vis +) const { + +32 +yAc +( +_da +, +vis +); + +35 +FORCE_INLINE + +bo + +isNu +() const { + +36  + g_da + == 0; + +39 +FORCE_INLINE + +ݔ + +bo +() const { + +40  + g_da + != 0; + +43 +FORCE_INLINE + +size_t + +memyUge +() const { + +44  + g_da + ? _da-> +memyUge +() : 0; + +47 +FORCE_INLINE + +size_t + +ág +() const { + +48  + g_da + ? _da-> +ág +() : 0; + +51 +FORCE_INLINE + +size_t + +size +() const { + +52  + g_da + ? _da-> +size +() : 0; + +55 + geed +: + +56 +AayRefBa +( +TDa +* +da +: +_da +(data) {} + +57 +TDa +* +_da +; + +60 +ass + + gAayCڡRef + : +public + +AayRefBa +, + +61 +public + + gVisab + { + +62 +nd + +ass + + gAayRef +; + +63  + gAayRefBa + + tba_ty +; + +65 + gpublic +: + +66  +AayCڡRefIt + + t +; + +68 +FORCE_INLINE + + + +beg +() const { + +69 i(! + g_da +) + +70  + +(); + +71  + +( +_da +-> +hd +()); + +74 +FORCE_INLINE + + + +d +() const { + +75  + +(); + +78 +FORCE_INLINE + +AayCڡRef +(: +ba_ty +(0) {} + +79 +FORCE_INLINE + +AayCڡRef +(cڡ +CiDa +* +da +: +ba_ty +(data) {} + +81 +FORCE_INLINE + +bo + +ݔ +==( +AayCڡRef + +rhs +) const { + +82  +yEqus +( +_da +, +rhs +._data); + +85 +FORCE_INLINE + +VCڡRef + + gݔ +[]( +size_t + + gdex +) const { + +86  +gEmt +( +dex +); + +89 +FORCE_INLINE + +VCڡRef + +gEmt +( +size_t + +dex +) const { + +90  +VCڡRef +( +_da + ? _da-> +gEmt +( +dex +) : 0); + +94 +ass + + gAayRef + : +public + +AayRefBa +< +CiDa +>, + +95 +public + + gAayShtcuts +< + gAayRef +>, + +96 +public + + gVisab + { + +97  + gAayRefBa +< + tCiDa +> + tba_ty +; + +99 + gpublic +: + +100  +AayIt + + t +; + +102 +FORCE_INLINE + +AayRef +(: +ba_ty +(0), +_po +(0) {} + +103 +FORCE_INLINE + +AayRef +( +MemyPo +* +po +, +CiDa +* +da +) + +104 : +ba_ty +( +da +), +_po +( +po +) {} + +106 +ݔ + +VRef +() { + +107 * + gda + = +_da +; + +108  +VRef +( +_po +, +t_ +< +VDa +*>( +da +)); + +111 +ݔ + +AayCڡRef +() const { + +112  +AayCڡRef +( +_da +); + +115 +VRef + +addEmt +() const { + +116  +VRef +( +_po +, +yAdd +( +_da +, _pool)); + +119 +FORCE_INLINE + + + +beg +() const { + +120 i(! + g_da +) + +121  + +(); + +122  + +( +_po +, +_da +-> +hd +()); + +125 +FORCE_INLINE + + + +d +() const { + +126  + +(); + +130 +FORCE_INLINE + +bo + +t +( +AayCڡRef + +c +) const { + +131 i(! + g_da + || ! + gc +._data) + +132  + gl +; + +133  + g_da +-> +cyFrom +(* +c +. +_da +, +_po +); + +136 +FORCE_INLINE + +bo + + gݔ +==( +AayRef + +rhs +) const { + +137  +yEqus +( +_da +, +rhs +._data); + +141 +FORCE_INLINE + +VRef + +gOrAddEmt +( +size_t + +dex +) const { + +142  +VRef +( +_po +, +_da + ? _da-> +gOrAddEmt +( +dex +, _pool) : 0); + +146 +FORCE_INLINE + +VRef + +gEmt +( +size_t + +dex +) const { + +147  +VRef +( +_po +, +_da + ? _da-> +gEmt +( +dex +) : 0); + +151 +FORCE_INLINE +  +move +( + + + +) const { + +152 i(! + g_da +) + +154 + g_da +-> +moveSl +( + +. + +()); + +158 +FORCE_INLINE +  +move +( +size_t + +dex +) const { + +159 i(! + g_da +) + +161 + g_da +-> +moveEmt +( +dex +); + +164 + give +: + +165 +MemyPo +* +_po +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayShortcuts.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < + gtyme +> + +13 +ass + + gEmtProxy +; + +15 + gme + < +tyme + + gTAay +> + +16 as + cAayShtcuts + { + +17 + gpublic +: + +19 +FORCE_INLINE + +EmtProxy +< +TAay +> +ݔ +[]( +size_t + +dex +) const; + +21 +FORCE_INLINE + +ObjeRef + +NeedObje +() const; + +23 +FORCE_INLINE + +AayRef + +NeedAay +() const; + +30 + gme + < +tyme + + gT +> + +31 +FORCE_INLINE + +bo + +add +(cڡ +T + & +vue +) const { + +32  +im +()-> +addEmt +(). +t +( +vue +); + +37 + gme + < +tyme + + gT +> + +38 +FORCE_INLINE + +bo + +add +( +T + * +vue +) const { + +39  +im +()-> +addEmt +(). +t +( +vue +); + +42 + give +: + +43 cڡ +TAay + * +im +() const { + +44  +ic_ +( +this +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 #ifde +_MSC_VER + + +12 #agm +wng +( +push +) + +13 #agm +wng +( +dib + : 4522) + +16 +mea + + gARDUINOJSON_NAMESPACE + { + +18 + gme + < +tyme + + gTAay +> + +19 +ass + + gEmtProxy + : +public + +VOts +< +EmtProxy +< +TAay +> >, + +20 +public + + gVisab + { + +21  + gEmtProxy +< + tTAay +> + tthis_ty +; + +23 + gpublic +: + +24 +FORCE_INLINE + +EmtProxy +( +TAay + +y +, +size_t + +dex +) + +25 : +_y +( +y +), +_dex +( +dex +) {} + +27 +FORCE_INLINE + +EmtProxy +(cڡ EmtProxy& +c +) + +28 : +_y +( +c +._y), +_dex +(src._index) {} + +30 +FORCE_INLINE + + gthis_ty +& + gݔ +=(cڡ +this_ty +& +c +) { + +31 +gOrAddUpamEmt +(). +t +( +c +. +as +< +VCڡRef +>()); + +32  * + gthis +; + +40 + gme + < +tyme + + gT +> + +41 +FORCE_INLINE + + gthis_ty +& + gݔ +=(cڡ +T +& +c +) { + +42 +gOrAddUpamEmt +(). +t +( +c +); + +43  * + gthis +; + +48 + gme + < +tyme + + gT +> + +49 +FORCE_INLINE + + gthis_ty +& + gݔ +=( +T +* +c +) { + +50 +gOrAddUpamEmt +(). +t +( +c +); + +51  * + gthis +; + +54 +FORCE_INLINE + +bo + + gݔ +==( +VCڡRef + +rhs +) const { + +55  +ic_ +< +VCڡRef +>( +gUpamEmt +()= +rhs +; + +58 +FORCE_INLINE + +bo + + gݔ +!=( +VCڡRef + +rhs +) const { + +59  +ic_ +< +VCڡRef +>( +gUpamEmt +()! +rhs +; + +62 +FORCE_INLINE +  +r +() const { + +63 +gUpamEmt +(). +r +(); + +66 +FORCE_INLINE + +bo + +isNu +() const { + +67  +gUpamEmt +(). +isNu +(); + +70 + gme + < +tyme + + gT +> + +71 +FORCE_INLINE + +tyme + + gVAs +< + gT +>:: +ty + +as +() const { + +72  +gUpamEmt +(). +me + +as +< +T +>(); + +75 + gme + < +tyme + + gT +> + +76 +FORCE_INLINE + +bo + +is +() const { + +77  +gUpamEmt +(). +me + + gis +< + gT +>(); + +80 + gme + < +tyme + + gT +> + +81 +FORCE_INLINE + +tyme + + gVTo +< + gT +>:: +ty + +to +() const { + +82  +gOrAddUpamEmt +(). +me + +to +< +T +>(); + +90 + gme + < +tyme + + gTVue +> + +91 +FORCE_INLINE + +bo + +t +(cڡ +TVue +& +vue +) const { + +92  +gOrAddUpamEmt +(). +t +( +vue +); + +97 + gme + < +tyme + + gTVue +> + +98 +FORCE_INLINE + +bo + +t +( +TVue +* +vue +) const { + +99  +gOrAddUpamEmt +(). +t +( +vue +); + +102 + gme + < +tyme + + gVis +> + +103  +ac +( +Vis +& +vis +) const { + +104  +gUpamEmt +(). +ac +( +vis +); + +107 +FORCE_INLINE + +size_t + +size +() const { + +108  +gUpamEmt +(). +size +(); + +111 + gme + < +tyme + + gTNeedKey +> + +112 +VRef + +gMemb +( +TNeedKey +* +key +) const { + +113  +gUpamEmt +(). +gMemb +( +key +); + +116 + gme + < +tyme + + gTNeedKey +> + +117 +VRef + +gMemb +(cڡ +TNeedKey +& +key +) const { + +118  +gUpamEmt +(). +gMemb +( +key +); + +121 + gme + < +tyme + + gTNeedKey +> + +122 +VRef + +gOrAddMemb +( +TNeedKey +* +key +) const { + +123  +gOrAddUpamEmt +(). +gOrAddMemb +( +key +); + +126 + gme + < +tyme + + gTNeedKey +> + +127 +VRef + +gOrAddMemb +(cڡ +TNeedKey +& +key +) const { + +128  +gOrAddUpamEmt +(). +gOrAddMemb +( +key +); + +131 +VRef + +addEmt +() const { + +132  +gOrAddUpamEmt +(). +addEmt +(); + +135 +VRef + +gEmt +( +size_t + +dex +) const { + +136  +gOrAddUpamEmt +(). +gEmt +( +dex +); + +139 +FORCE_INLINE +  +move +( +size_t + +dex +) const { + +140 +gUpamEmt +(). +move +( +dex +); + +145 + gme + < +tyme + + gTCh +> + +146 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +>:: +ty + +move +( + +147 +TCh +* +key +) const { + +148 +gUpamEmt +(). +move +( +key +); + +152 + gme + < +tyme + + gTSg +> + +153 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +>:: +ty + +move +( + +154 cڡ +TSg +& +key +) const { + +155 +gUpamEmt +(). +move +( +key +); + +158 + give +: + +159 +FORCE_INLINE + +VRef + +gUpamEmt +() const { + +160  +_y +. +gEmt +( +_dex +); + +163 +FORCE_INLINE + +VRef + +gOrAddUpamEmt +() const { + +164  + g_y +. +gOrAddEmt +( +_dex +); + +167 +TAay + + g_y +; + +168 cڡ +size_t + + g_dex +; + +173 #ifde +_MSC_VER + + +174 #agm +wng +( +p +) + + @lib_standalone/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +, +size_t + + gN +> + +13 +le + +bo + +cyAay +( +T + (& +c +)[ +N +], +AayRef + +d +) { + +14  +cyAay +( +c +, +N +, +d +); + +18 + gme + < +tyme + + gT +> + +19 +le + +bo + +cyAay +( +T +* +c +, +size_t + +n +, +AayRef + +d +) { + +20 +bo + + gok + = +ue +; + +21  +size_t + + gi + = 0; i < + gn +; i++) { + +22 + gok + & +d +. +add +( +c +[ +i +]); + +24  + gok +; + +28 + gme + < +tyme + + gT +, +size_t + + gN1 +, size_ + gN2 +> + +29 +le + +bo + +cyAay +( +T + (& +c +)[ +N1 +][ +N2 +], +AayRef + +d +) { + +30 +bo + + gok + = +ue +; + +31  +size_t + + gi + = 0; i < + gN1 +; i++) { + +32 +AayRef + + gáedAay + = +d +. +NeedAay +(); + +33  +size_t + + gj + = 0; j < + gN2 +; j++) { + +34 + gok + & +áedAay +. +add +( +c +[ +i +][ +j +]); + +37  + gok +; + +41 + gme + < +tyme + + gT +, +size_t + + gN +> + +42 +le + +size_t + +cyAay +( +AayCڡRef + +c +, +T + (& +d +)[ +N +]) { + +43  +cyAay +( +c +, +d +, +N +); + +47 + gme + < +tyme + + gT +> + +48 +le + +size_t + +cyAay +( +AayCڡRef + +c +, +T +* +d +, size_ +n +) { + +49 +size_t + + gi + = 0; + +50  + gAayCڡRef +:: + + + + = +c +. +beg +(); + g + !c. +d +(&& +i + < +n +; + +51 ++ + g +) + +52 + gd +[ +i +++] = * + +; + +53  + gi +; + +57 + gme + < +tyme + + gT +, +size_t + + gN1 +, size_ + gN2 +> + +58 +le +  +cyAay +( +AayCڡRef + +c +, +T + (& +d +)[ +N1 +][ +N2 +]) { + +59 +size_t + + gi + = 0; + +60  + gAayCڡRef +:: + + + + = +c +. +beg +(); + g + !c. +d +(&& +i + < +N1 +; + +61 ++ + g +) { + +62 +cyAay +( + +-> +as +< +AayCڡRef +>(), +d +[ +i +++]); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 +ass + + gMemyPo +; + +15 +ass + + gVDa +; + +16 +ass + + gVSl +; + +18 as + cCiDa + { + +19 +VSl + * + g_hd +; + +20 +VSl + * + g_ +; + +22 + gpublic +: + +31 +VDa + * +addEmt +( +MemyPo + * +po +); + +33 +VDa + * +gEmt +( +size_t + +dex +) const; + +35 +VDa + * +gOrAddEmt +( +size_t + +dex +, +MemyPo + * +po +); + +37  +moveEmt +( +size_t + +dex +); + +39 +bo + +equsAay +(cڡ +CiDa + & +h +) const; + +43 + gme + < +tyme + + gTAddSg +> + +44 +VDa + * +addMemb +( +TAddSg + +key +, +MemyPo + * +po +); + +46 + gme + < +tyme + + gTAddSg +> + +47 +VDa + * +gMemb +( +TAddSg + +key +) const; + +49 + gme + < +tyme + + gTAddSg +> + +50 +VDa + * +gOrAddMemb +( +TAddSg + +key +, +MemyPo + * +po +); + +52 + gme + < +tyme + + gTAddSg +> + +53  +moveMemb +( +TAddSg + +key +) { + +54 +moveSl +( +gSl +( +key +)); + +57 + gme + < +tyme + + gTAddSg +> + +58 +bo + +cڏsKey +(cڡ +TAddSg + & +key +) const; + +60 +bo + +equsObje +(cڡ +CiDa + & +h +) const; + +64  +r +(); + +65 +size_t + +memyUge +() const; + +66 +size_t + +ág +() const; + +67 +size_t + +size +() const; + +69 +VSl + * +addSl +( +MemyPo + *); + +70  +moveSl +( +VSl + * + +); + +72 +bo + +cyFrom +(cڡ +CiDa + & +c +, +MemyPo + * +po +); + +74 +VSl + * +hd +() const { + +75  + g_hd +; + +78  +movePors +( +rdiff_t + +rgDi +,diff_ +vDi +); + +80 + give +: + +81 +VSl + * +gSl +( +size_t + +dex +) const; + +83 + gme + < +tyme + + gTAddSg +> + +84 +VSl + * +gSl +( +TAddSg + +key +) const; + +86 +VSl + * +gPviousSl +(VariantSlot *) const; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 +le + +VSl +* + gCiDa +:: +addSl +( +MemyPo +* +po +) { + +13 +VSl +* + + = +po +-> +locV +(); + +14 i(! + g +) + +17 i( + g_ +) { + +18 + g_ +-> +tNextNNu +( + +); + +19 + g_ + = + +; + +21 + g_hd + = + +; + +22 + g_ + = + +; + +25 + g +-> +r +(); + +26  + g +; + +29 +le + +VDa +* + gCiDa +:: +addEmt +( +MemyPo +* +po +) { + +30  +Da +( +addSl +( +po +)); + +33 + gme + < +tyme + + gTAddSg +> + +34 +le + +VDa +* + gCiDa +:: +addMemb +( +TAddSg + +key +, + +35 +MemyPo +* +po +) { + +36 +VSl +* + g + = +addSl +( +po +); + +37 i(! +SKey +( + +, +key +, +po +)) { + +38 +moveSl +( + +); + +41  + g +-> +da +(); + +44 +le +  + gCiDa +:: +r +() { + +45 +_hd + = 0; + +46 + g_ + = 0; + +49 + gme + < +tyme + + gTAddSg +> + +50 +le + +bo + + gCiDa +:: +cڏsKey +(cڡ +TAddSg +& +key +) const { + +51  +gSl +( +key +) != 0; + +54 +le + +bo + + gCiDa +:: +cyFrom +(cڡ +CiDa +& +c +, + +55 +MemyPo +* +po +) { + +56 +r +(); + +57  +VSl +* + gs + = +c +. +_hd +; s; s = +s +-> +xt +()) { + +58 +VDa +* +v +; + +59 i( + gs +-> +key +() != 0) { + +60 i( +s +-> +ownsKey +()) + +61 +v + = +addMemb +( +RamSgAdr +( +s +-> +key +()), +po +); + +63 + gv + = +addMemb +( +CڡRamSgAdr +( +s +-> +key +()), +po +); + +65 + gv + = +addEmt +( +po +); + +67 i(! + gv +) + +68  + gl +; + +69 i(! + gv +-> +cyFrom +(* +s +-> +da +(), +po +)) + +70  + gl +; + +72  + gue +; + +75 +le + +bo + + gCiDa +:: +equsObje +(cڡ +CiDa +& +h +) const { + +76 +size_t + +cou + = 0; + +77  +VSl +* + g + = +_hd +; sl; sl = + +-> +xt +()) { + +78 +VDa +* +v1 + = + +-> +da +(); + +79 +VDa +* + gv2 + = +h +. +gMemb +( +adtSg +( + +-> +key +())); + +80 i(! +vEqus +( +v1 +, +v2 +)) + +81  + gl +; + +82 + gcou +++; + +84  + gcou + = +h +. +size +(); + +87 +le + +bo + + gCiDa +:: +equsAay +(cڡ +CiDa +& +h +) const { + +88 +VSl +* +s1 + = +_hd +; + +89 +VSl +* + gs2 + = +h +. +_hd +; + +91 i( + gs1 + = +s2 +) + +92  +ue +; + +93 i(! + gs1 + || ! + gs2 +) + +94  + gl +; + +95 i(! +vEqus +( +s1 +-> +da +(), +s2 +->data())) + +96  + gl +; + +97 + gs1 + = +s1 +-> +xt +(); + +98 + gs2 + = +s2 +-> +xt +(); + +102 + gme + < +tyme + + gTAddSg +> + +103 +le + +VSl +* + gCiDa +:: +gSl +( +TAddSg + +key +) const { + +104 +VSl +* + + = +_hd +; + +105  + g +) { + +106 i( + gkey +. +equs +( + +-> +key +())) + +108 + g + = + +-> +xt +(); + +110  + g +; + +113 +le + +VSl +* + gCiDa +:: +gSl +( +size_t + +dex +) const { + +114  +_hd +-> +xt +( +dex +); + +117 +le + +VSl +* + gCiDa +:: +gPviousSl +(VSl* +rg +) const { + +118 +VSl +* +cut + = +_hd +; + +119  + gcut +) { + +120 +VSl +* + gxt + = +cut +-> +xt +(); + +121 i( + gxt + = +rg +) + +122  +cut +; + +123 + gcut + = +xt +; + +128 + gme + < +tyme + + gTAddSg +> + +129 +le + +VDa +* + gCiDa +:: +gMemb +( +TAddSg + +key +) const { + +130 +VSl +* + + = +gSl +( +key +); + +131  + g + ? sl-> +da +() : 0; + +134 + gme + < +tyme + + gTAddSg +> + +135 +le + +VDa +* + gCiDa +:: +gOrAddMemb +( +TAddSg + +key +, + +136 +MemyPo +* +po +) { + +138 i( + gkey +. +isNu +()) + +142 +VSl +* + g + = +gSl +( +key +); + +143 i( + g +) + +144  + g +-> +da +(); + +146  +addMemb +( +key +, +po +); + +149 +le + +VDa +* + gCiDa +:: +gEmt +( +size_t + +dex +) const { + +150 +VSl +* + + = +gSl +( +dex +); + +151  + g + ? sl-> +da +() : 0; + +154 +le + +VDa +* + gCiDa +:: +gOrAddEmt +( +size_t + +dex +, + +155 +MemyPo +* +po +) { + +156 +VSl +* + g + = +_hd +; + +157  + g + && + gdex + > 0) { + +158 + g + = + +-> +xt +(); + +159 + gdex +--; + +161 i(! + g +) + +162 + gdex +++; + +163  + gdex + > 0) { + +164 + g + = +addSl +( +po +); + +165 + gdex +--; + +167  +Da +( + +); + +170 +le +  + gCiDa +:: +moveSl +( +VSl +* + +) { + +171 i(! + +) + +173 +VSl +* + gev + = +gPviousSl +( + +); + +174 +VSl +* + gxt + = + +-> +xt +(); + +175 i( + gev +) + +176 + gev +-> +tNext +( +xt +); + +178 + g_hd + = +xt +; + +179 i(! + gxt +) + +180 + g_ + = +ev +; + +183 +le +  + gCiDa +:: +moveEmt +( +size_t + +dex +) { + +184 +moveSl +( +gSl +( +dex +)); + +187 +le + +size_t + + gCiDa +:: +memyUge +() const { + +188 +size_t + +tٮ + = 0; + +189  +VSl +* + gs + = +_hd +; s; s = +s +-> +xt +()) { + +190 +tٮ + +( +VSl ++ +s +-> +da +()-> +memyUge +(); + +191 i( + gs +-> +ownsKey +()) + +192 + gtٮ + + + +( +s +-> +key +()) + 1; + +194  + gtٮ +; + +197 +le + +size_t + + gCiDa +:: +ág +() const { + +198 +size_t + +maxChdNeg + = 0; + +199  +VSl +* + gs + = +_hd +; s; s = +s +-> +xt +()) { + +200 +size_t + +chdNeg + = +s +-> +da +()-> +ág +(); + +201 i( + gchdNeg + > + gmaxChdNeg +) + +202 + gmaxChdNeg + = +chdNeg +; + +204  + gmaxChdNeg + + 1; + +207 +le + +size_t + + gCiDa +:: +size +() const { + +208  +Size +( +_hd +); + +211 + gme + < +tyme + + gT +> + +212 +le +  +movePor +( +T +*& +p +, +rdiff_t + +offt +) { + +213 i(! + gp +) + +215 + gp + = +t_ +< +T +*>( + +216 +t_ +<*>et_<*>( +p ++ +offt +)); + +217 +ARDUINOJSON_ASSERT +( +isAligd +( +p +)); + +220 +le +  + gCiDa +:: +movePors +( +rdiff_t + +rgDi +, + +221 +rdiff_t + +vDi +) { + +222 +movePor +( +_hd +, +vDi +); + +223 +movePor +( +_ +, +vDi +); + +224  +VSl +* + g + = +_hd +; sl; sl = + +-> +xt +()) + +225 + +-> +movePors +( +rgDi +, +vDi +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Configuration.hpp + +5 #agm + + + +7 #i +defed +( +_MSC_VER +) + +8  + #ARDUINOJSON_HAS_INT64 + 1 + + ) + +10  + #ARDUINOJSON_HAS_INT64 + 0 + + ) + +13 #i +__lulus + >= 201103L + +14  + #ARDUINOJSON_HAS_LONG_LONG + 1 + + ) + +15  + #ARDUINOJSON_HAS_NULLPTR + 1 + + ) + +16  + #ARDUINOJSON_HAS_RVALUE_REFERENCES + 1 + + ) + +18  + #ARDUINOJSON_HAS_LONG_LONG + 0 + + ) + +19  + #ARDUINOJSON_HAS_NULLPTR + 0 + + ) + +20  + #ARDUINOJSON_HAS_RVALUE_REFERENCES + 0 + + ) + +24 #ide +ARDUINOJSON_EMBEDDED_MODE + + +25 #i +defed +( +ARDUINO +) \ + +26 || +defed +( +__IAR_SYSTEMS_ICC__ +) \ + +27 || +defed +( +__XC +) \ + +28 || +defed +( +__ARMCC_VERSION +) \ + +29 || + $defed +( +__AVR +) + +30  + #ARDUINOJSON_EMBEDDED_MODE + 1 + + ) + +32  + #ARDUINOJSON_EMBEDDED_MODE + 0 + + ) + +38 #i! + `defed +( +ARDUINOJSON_ENABLE_STD_STREAM +&& defed( +__has_ude +) + +39 #i + `__has_ude +(< +iam +>) && \ + +40 + `__has_ude +(< +oam +>) && \ + +41 ! + `defed +( +m +) && \ + +42 ! + $defed +( +max +) + +43  + #ARDUINOJSON_ENABLE_STD_STREAM + 1 + + ) + +45  + #ARDUINOJSON_ENABLE_STD_STREAM + 0 + + ) + +51 #i! + `defed +( +ARDUINOJSON_ENABLE_STD_STRING +&& defed( +__has_ude +) + +52 #i + `__has_ude +(< +rg +>&& ! + `defed +( +m +&& !defed( +max +) + +53  + #ARDUINOJSON_ENABLE_STD_STRING + 1 + + ) + +55  + #ARDUINOJSON_ENABLE_STD_STRING + 0 + + ) + +59 #i +ARDUINOJSON_EMBEDDED_MODE + + +62 #ide +ARDUINOJSON_USE_DOUBLE + + +63  + #ARDUINOJSON_USE_DOUBLE + 0 + + ) + +67 #ide +ARDUINOJSON_USE_LONG_LONG + + +68  + #ARDUINOJSON_USE_LONG_LONG + 0 + + ) + +72 #ide +ARDUINOJSON_ENABLE_STD_STRING + + +73  + #ARDUINOJSON_ENABLE_STD_STRING + 0 + + ) + +77 #ide +ARDUINOJSON_ENABLE_STD_STREAM + + +78  + #ARDUINOJSON_ENABLE_STD_STREAM + 0 + + ) + +82 #ide +ARDUINOJSON_DEFAULT_NESTING_LIMIT + + +83  + #ARDUINOJSON_DEFAULT_NESTING_LIMIT + 10 + + ) + +89 #ide +ARDUINOJSON_USE_DOUBLE + + +90  + #ARDUINOJSON_USE_DOUBLE + 1 + + ) + +94 #ide +ARDUINOJSON_USE_LONG_LONG + + +95 #i +ARDUINOJSON_HAS_LONG_LONG + || +ARDUINOJSON_HAS_INT64 + + +96  + #ARDUINOJSON_USE_LONG_LONG + 1 + + ) + +98  + #ARDUINOJSON_USE_LONG_LONG + 0 + + ) + +103 #ide +ARDUINOJSON_ENABLE_STD_STRING + + +104  + #ARDUINOJSON_ENABLE_STD_STRING + 1 + + ) + +108 #ide +ARDUINOJSON_ENABLE_STD_STREAM + + +109  + #ARDUINOJSON_ENABLE_STD_STREAM + 1 + + ) + +113 #ide +ARDUINOJSON_DEFAULT_NESTING_LIMIT + + +114  + #ARDUINOJSON_DEFAULT_NESTING_LIMIT + 50 + + ) + +119 #ifde +ARDUINO + + +121  + ~ + +124 #ide +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +125  + #ARDUINOJSON_ENABLE_ARDUINO_STRING + 1 + + ) + +129 #ide +ARDUINOJSON_ENABLE_ARDUINO_STREAM + + +130  + #ARDUINOJSON_ENABLE_ARDUINO_STREAM + 1 + + ) + +134 #ide +ARDUINOJSON_ENABLE_ARDUINO_PRINT + + +135  + #ARDUINOJSON_ENABLE_ARDUINO_PRINT + 1 + + ) + +141 #ide +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +142  + #ARDUINOJSON_ENABLE_ARDUINO_STRING + 0 + + ) + +146 #ide +ARDUINOJSON_ENABLE_ARDUINO_STREAM + + +147  + #ARDUINOJSON_ENABLE_ARDUINO_STREAM + 0 + + ) + +151 #ide +ARDUINOJSON_ENABLE_ARDUINO_PRINT + + +152  + #ARDUINOJSON_ENABLE_ARDUINO_PRINT + 0 + + ) + +157 #ide +ARDUINOJSON_ENABLE_PROGMEM + + +158 #ifde +PROGMEM + + +159  + #ARDUINOJSON_ENABLE_PROGMEM + 1 + + ) + +161  + #ARDUINOJSON_ENABLE_PROGMEM + 0 + + ) + +166 #ide +ARDUINOJSON_DECODE_UNICODE + + +167  + #ARDUINOJSON_DECODE_UNICODE + 0 + + ) + +171 #ide +ARDUINOJSON_ENABLE_COMMENTS + + +172  + #ARDUINOJSON_ENABLE_COMMENTS + 0 + + ) + +176 #ide +ARDUINOJSON_ENABLE_NAN + + +177  + #ARDUINOJSON_ENABLE_NAN + 0 + + ) + +181 #ide +ARDUINOJSON_ENABLE_INFINITY + + +182  + #ARDUINOJSON_ENABLE_INFINITY + 0 + + ) + +187 #ide +ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD + + +188  + #ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD + 1e7 + + ) + +192 #ide +ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD + + +193  + #ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD + 1e-5 + + ) + +196 #ide +ARDUINOJSON_LITTLE_ENDIAN + + +197 #i + `defed +( +_MSC_VER +) || \ + +198 ( + `defed +( +__BYTE_ORDER__ +&& __BYTE_ORDER__ = +__ORDER_LITTLE_ENDIAN__ +) || \ + +199 + `defed +( +__LITTLE_ENDIAN__ +|| defed( +__i386 +|| + $defed +( +__x86_64 +) + +200  + #ARDUINOJSON_LITTLE_ENDIAN + 1 + + ) + +202  + #ARDUINOJSON_LITTLE_ENDIAN + 0 + + ) + +206 #ide +ARDUINOJSON_TAB + + +207  + #ARDUINOJSON_TAB + " " + + ) + +210 #ide +ARDUINOJSON_STRING_BUFFER_SIZE + + +211  + #ARDUINOJSON_STRING_BUFFER_SIZE + 32 + + ) + +214 #ide +ARDUINOJSON_DEBUG + + +215 #ifde +__PLATFORMIO_BUILD_DEBUG__ + + +216  + #ARDUINOJSON_DEBUG + 1 + + ) + +218  + #ARDUINOJSON_DEBUG + 0 + + ) + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp + +5 #agm + + + +7  + ~ + +9 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +10  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 as + cDerliziE + { + +17 ( + gDerliziE +::* + tbo_ty +)() const; + +18  +BoHr +() const {} + +20 + gpublic +: + +21 + eCode + { + +22 +Ok +, + +23 + gIncomeIut +, + +24 + gInvidIut +, + +25 + gNoMemy +, + +26 + gNSu܋d +, + +27 + gTooDp + + +30 +DerliziE +() {} + +31 +DerliziE +( +Code + +c +: +_code +(c) {} + +34 +nd + +bo + +ݔ +==(cڡ +DerliziE +& +lhs +, + +35 cڡ + gDerliziE +& + grhs +) { + +36  + glhs +. + g_code + = +rhs +. +_code +; + +38 +nd + +bo + + gݔ +!=(cڡ +DerliziE +& +lhs +, + +39 cڡ + gDerliziE +& + grhs +) { + +40  + glhs +. + g_code + ! +rhs +. +_code +; + +44 +nd + +bo + + gݔ +==(cڡ +DerliziE +& +lhs +, +Code + + grhs +) { + +45  + glhs +. + g_code + = +rhs +; + +47 +nd + +bo + + gݔ +==( +Code + +lhs +, cڡ + gDerliziE +& + grhs +) { + +48  + glhs + = +rhs +. +_code +; + +50 +nd + +bo + + gݔ +!=(cڡ +DerliziE +& +lhs +, +Code + + grhs +) { + +51  + glhs +. + g_code + ! +rhs +; + +53 +nd + +bo + + gݔ +!=( +Code + +lhs +, cڡ + gDerliziE +& + grhs +) { + +54  + glhs + ! +rhs +. +_code +; + +58 +ݔ + +bo_ty +() const { + +59  + g_code + ! +Ok + ? & +DerliziE +:: +BoHr + : 0; + +61 +nd + +bo + + gݔ +==(bo +vue +, cڡ + gDerliziE +& + gr +) { + +62  + gic_ +< + gbo +>( + gr += +vue +; + +64 +nd + +bo + + gݔ +==(cڡ +DerliziE +& +r +, bo + gvue +) { + +65  + gic_ +< + gbo +>( + gr += +vue +; + +67 +nd + +bo + + gݔ +!=(bo +vue +, cڡ + gDerliziE +& + gr +) { + +68  + gic_ +< + gbo +>( + gr +! +vue +; + +70 +nd + +bo + + gݔ +!=(cڡ +DerliziE +& +r +, bo + gvue +) { + +71  + gic_ +< + gbo +>( + gr +! +vue +; + +75 +Code + +code +() const { + +76  + g_code +; + +79 cڡ * +c_r +() const { + +80  + g_code +) { + +81  + gOk +: + +83  + gTooDp +: + +85  + gNoMemy +: + +87  + gInvidIut +: + +89  + gIncomeIut +: + +91  + gNSu܋d +: + +98 + give +: + +99 +Code + +_code +; + +102 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +103 +le + + gd +:: +oam +& +ݔ +<<( +d +::oam& +s +, + +104 cڡ + gDerliziE +& + ge +) { + +105 + gs + << + ge +. +c_r +(); + +106  + gs +; + +109 +le + + gd +:: +oam +& +ݔ +<<( +d +::oam& +s +, + gDerliziE +:: +Code + +c +) { + +110 +s + << +DerliziE +( +c +). +c_r +(); + +111  + gs +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 as + cFr + { + +12 + gpublic +: + +13 +exic + +Fr +( +VCڡRef + +v +: +_v +(v) {} + +15 +bo + +low +() const { + +16  +_v +; + +19 +bo + +lowAay +() const { + +20  + g_v + = +ue + || +_v +. +is +< +AayRef +>(); + +23 +bo + +lowObje +() const { + +24  + g_v + = +ue + || +_v +. +is +< +ObjeRef +>(); + +27 +bo + +lowVue +() const { + +28  + g_v + = +ue +; + +31 + gme + < +tyme + + gTKey +> + +32 +Fr + + gݔ +[](cڡ + gTKey +& + gkey +) const { + +33 i( + g_v + = +ue +) + +34  * +this +; + +36  +Fr +( +_v +[ +key +]); + +39 + give +: + +40 +VCڡRef + +_v +; + +43  + sAowAFr + { + +44 +bo + +low +() const { + +45  + gue +; + +48 +bo + +lowAay +() const { + +49  + gue +; + +52 +bo + +lowObje +() const { + +53  + gue +; + +56 +bo + +lowVue +() const { + +57  + gue +; + +60 + gme + < +tyme + + gTKey +> + +61 +AowAFr + + gݔ +[](cڡ + gTKey +&) const { + +62  +AowAFr +(); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cNegLim + { + +13 + gpublic +: + +14 +NegLim +(: +_vue +( +ARDUINOJSON_DEFAULT_NESTING_LIMIT +) {} + +15 +exic + +NegLim +( +ut8_t + +n +: +_vue +(n) {} + +17 +NegLim + +deemt +() const { + +18 +ARDUINOJSON_ASSERT +( +_vue + > 0); + +19  +NegLim +( +ic_ +< +ut8_t +>( +_vue + - 1)); + +22 +bo + +ached +() const { + +23  + g_vue + == 0; + +26 + give +: + +27 +ut8_t + +_vue +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +tyme + + gTSour +,ym + gEb + = > + +15  + sRd + { + +16 +public +: + +17 +Rd +( +TSour +& +sour +: +_sour +(&source) {} + +19  +ad +() { + +20  +_sour +-> +ad +(); + +23 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +24  + g_sour +-> +adBys +( +bufr +, +ngth +); + +27 + give +: + +28 +TSour +* +_sour +; + +31 + gme + < +tyme + + gTSour +,ym + gEb + = > + +32  + sBoundedRd + { + +38  + ~ + +39  + ~ + +41 #i +ARDUINOJSON_ENABLE_ARDUINO_STREAM + + +42  + ~ + +45 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +46  + ~ + +49 #i +ARDUINOJSON_ENABLE_PROGMEM + + +50  + ~ + +53 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +54  + ~ + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTSour +> + +12  + gRd +< + gTSour +, + +13 +tyme + + gab_if +< + gis_ba_of +< + gSm +, + gTSour +>:: +vue +>:: +ty +> { + +14 +public +: + +15 +exic + +Rd +( +Sm +& +am +: +_am +(&stream) {} + +17  +ad +() { + +19  +c +; + +20  + g_am +-> +adBys +(& +c +, 1? + gic_ +<>( + gc +) : -1; + +23 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +24  + g_am +-> +adBys +( +bufr +, +ngth +); + +27 + give +: + +28 +Sm +* +_am +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 + gme + < +tyme + + gTSour +> + +10  + gRd +< + gTSour +, + +11 +tyme + + gab_if +< + gis_ba_of +< :: +Sg +, + gTSour +>:: +vue +>:: +ty +> + +12 : +BoundedRd + { + +13 +exic + +Rd +(cڡ :: +Sg +& +s +) + +14 : +BoundedRd +( +s +. +c_r +(), + gs +. +ngth +()) {} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 + gme + <> + +10  + gRd + { + +11 cڡ * + g_r +; + +13 + gpublic +: + +14 +exic + +Rd +(cڡ +__FshSgHr +* +r +) + +15 : +_r +( +t_ +( +r +)) {} + +17  +ad +() { + +18  +pgm_ad_by +( +_r +++); + +21 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +22 +memy_P +( +bufr +, +_r +, +ngth +); + +23 + g_r + + +ngth +; + +24  + gngth +; + +28 + gme + <> + +29  + gBoundedRd + { + +30 cڡ * + g_r +; + +31 cڡ * + g_d +; + +33 + gpublic +: + +34 +exic + +BoundedRd +(cڡ +__FshSgHr +* +r +, +size_t + +size +) + +35 : +_r +( +t_ +( +r +)), +_d +(_+ +size +) {} + +37  +ad +() { + +38 i( + g_r + < + g_d +) + +39  +pgm_ad_by +( +_r +++); + +44 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +45 +size_t + + gavaab + = +ic_ +( +_d + - +_r +); + +46 i( + gavaab + < + gngth +) + +47 + gngth + = +avaab +; + +48 +memy_P +( +bufr +, +_r +, +ngth +); + +49 + g_r + + +ngth +; + +50  + gngth +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 + gme + < +tyme + + gTIt +> + +10 as + cItRd + { + +11 +TIt + + g_r +, + g_d +; + +13 + gpublic +: + +14 +exic + +ItRd +( +TIt + +beg +, TIt +d +) + +15 : +_r +( +beg +), +_d +( +d +) {} + +17  +ad +() { + +18 i( + g_r + < + g_d +) + +19  + gic_ +<>(* + g_r +++); + +24 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +25 +size_t + + gi + = 0; + +26  + gi + < + gngth + && + g_r + < + g_d + + gbufr +[ +i +++] = * +_r +++; + +27  + gi +; + +31 + gme + < +tyme + + gT +> + +32  + svoid_ + { + +33  + tty +; + +36 + gme + < +tyme + + gTSour +> + +37  + gRd +< + gTSour +, +tyme + + gvoid_ +:: +ty +> + +38 : +ItRd +< +tyme + +TSour +:: +cڡ_ +> { + +39 +exic + +Rd +(cڡ +TSour +& +sour +) + +40 : +ItRd +< +tyme + +TSour +:: +cڡ_ +>( +sour +. +beg +(), + +41 + gsour +. +d +()) {} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +> + +12  + sIsChOrVoid + { + +13 cڡ +bo + + gvue + = + +14 +is_me +< +T +, >:: +vue + || is_same::value || + +15 +is_me +< +T +, >:: +vue + || is_same::value; + +18 + gme + < +tyme + + gT +> + +19  + gIsChOrVoid + : +IsChOrVoid +< +T +> {}; + +21 + gme + < +tyme + + gTSour +> + +22  + gRd +< + gTSour +*, + +23 +tyme + + gab_if +< + gIsChOrVoid +< + gTSour +>:: +vue +>:: +ty +> { + +24 cڡ * +_r +; + +26 + gpublic +: + +27 +exic + +Rd +(cڡ * +r +) + +28 : +_r +( +r + ? +t_ +(ptr) : "") {} + +30  +ad +() { + +31  +ic_ +<>(* +_r +++); + +34 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +35  +size_t + + gi + = 0; i < + gngth +; i++ + gbufr +[ +i +] = * +_r +++; + +36  + gngth +; + +40 + gme + < +tyme + + gTSour +> + +41  + gBoundedRd +< + gTSour +*, + +42 +tyme + + gab_if +< + gIsChOrVoid +< + gTSour +>:: +vue +>:: +ty +> + +43 : +public + +ItRd + { + +44 +public +: + +45 +exic + +BoundedRd +(cڡ * +r +, +size_t + +n +) + +46 : +ItRd +( +t_ +( +r +), + +47 + gt_ +( + gr ++ + gn +) {} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTSour +> + +12  + gRd +< + gTSour +, +tyme + + gab_if +< + +13 + gis_ba_of +< + gd +:: +iam +, + gTSour +>:: +vue +>:: +ty +> { + +14 +public +: + +15 +exic + +Rd +( +d +:: +iam +& +am +: +_am +(&stream) {} + +17  +ad +() { + +18  +_am +-> +g +(); + +21 +size_t + +adBys +(* +bufr +, size_ +ngth +) { + +22 + g_am +-> +ad +( +bufr +, +ic_ +< +d +:: +amsize +>( +ngth +)); + +23  + gic_ +< + gsize_t +>( + g_am +-> +gcou +()); + +26 + give +: + +27 +d +:: +iam +* +_am +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 + gme + +ass + + gTDerliz +, +tyme + + gTRd +, + +16 +tyme + + gTWr +> + +17 + gTDerliz +< + gTRd +, + gTWr +> +makeDerliz +( +MemyPo + & +po +, + +18 +TRd + +ad +, + +19 +TWr + +wr +) { + +20  + gTDerliz +< + gTRd +, + gTWr +>( + gpo +, + gad +, + gwr +); + +28 + gme + +ass + + gTDerliz +, +tyme + + gTSg +, + +29 +tyme + + gTFr +> + +30 +tyme + + gab_if +:: +vue +, + gDerliziE +>:: +ty + + +31 +derlize +( +JsDocumt + & +doc +, cڡ +TSg + & +put +, +NegLim + +ágLim +, + +32 +TFr + +fr +) { + +33 + gRd +< + gTSg +> +ad +( +put +); + +34 + gdoc +. +r +(); + +35  + gmakeDerliz +< + gTDerliz +>( + +36 + gdoc +. +memyPo +(), + gad +, + +37 +makeSgStage +( +doc +. +memyPo +(), +put +)) + +38 . +r +( +doc +. +da +(), +fr +, +ágLim +); + +44 + gme + +ass + + gTDerliz +, +tyme + + gTCh +, + +45 +tyme + + gTFr +> + +46 +DerliziE + +derlize +( +JsDocumt + & +doc +, +TCh + * +put +, + +47 +size_t + +putSize +, +NegLim + +ágLim +, + +48 +TFr + +fr +) { + +49 + gBoundedRd +< + gTCh + *> +ad +( +put +, +putSize +); + +50 + gdoc +. +r +(); + +51  + gmakeDerliz +< + gTDerliz +>( + +52 + gdoc +. +memyPo +(), + gad +, + +53 +makeSgStage +( +doc +. +memyPo +(), +put +)) + +54 . +r +( +doc +. +da +(), +fr +, +ágLim +); + +59 + gme + +ass + + gTDerliz +, +tyme + + gTSm +, + +60 +tyme + + gTFr +> + +61 +DerliziE + +derlize +( +JsDocumt + & +doc +, +TSm + & +put +, + +62 +NegLim + +ágLim +, +TFr + +fr +) { + +63 + gRd +< + gTSm +> +ad +( +put +); + +64 + gdoc +. +r +(); + +65  + gmakeDerliz +< + gTDerliz +>( + +66 + gdoc +. +memyPo +(), + gad +, + +67 +makeSgStage +( +doc +. +memyPo +(), +put +)) + +68 . +r +( +doc +. +da +(), +fr +, +ágLim +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gTAot +> + +14 as + cAotOwr + { + +15 + gpublic +: + +16 +AotOwr +() {} + +17 +AotOwr +(cڡ AotOwr& +c +: +_lot +(src._allocator) {} + +18 +AotOwr +( +TAot + +a +: +_lot +(a) {} + +20 * +lo +( +size_t + +size +) { + +21  +_lot +. +lo +( +size +); + +24  +do +(* +r +) { + +25 i( + gr +) + +26 + g_lot +. +do +( +r +); + +29 * +lo +(* +r +, +size_t + +w_size +) { + +30  + g_lot +. +lo +( +r +, +w_size +); + +33 + gTAot +& +lot +() { + +34  + g_lot +; + +37 + give +: + +38 +TAot + +_lot +; + +41 + gme + < +tyme + + gTAot +> + +42 +ass + + gBasicJsDocumt + : +AotOwr +< +TAot +>, +public + + gJsDocumt + { + +43 + gpublic +: + +44 +exic + +BasicJsDocumt +( +size_t + + +, +TAot + +loc + = TAllocator()) + +45 : +AotOwr +< +TAot +>( +loc +), +JsDocumt +( +locPo +( + +)) {} + +48 +BasicJsDocumt +(cڡ BasicJsDocumt& +c +) + +49 : +AotOwr +< +TAot +>( +c +), +JsDocumt +() { + +50 +cyAssignFrom +( +c +); + +54 #i +ARDUINOJSON_HAS_RVALUE_REFERENCES + + +55 +BasicJsDocumt +(BasicJsDocumt&& +c +: +AotOwr +< +TAot +>(src) { + +56 +moveAssignFrom +( +c +); + +60 +BasicJsDocumt +(cڡ +JsDocumt +& +c +) { + +61 +cyAssignFrom +( +c +); + +65 + gme + < +tyme + + gT +> + +66 +BasicJsDocumt +( + +67 cڡ +T +& +c +, + +68 +tyme + +ab_if +< + +69 +is_me +< +T +, +VRef +>:: +vue + || is_me::value || + +70 +is_me +< +T +, +AayRef +>:: +vue + || is_me::value || + +71 +is_me +< +T +, +ObjeRef +>:: +vue + || + +72 +is_me +< +T +, +ObjeCڡRef +>:: +vue +>:: +ty +* = 0) + +73 : +JsDocumt +( +locPo +( +c +. +memyUge +())) { + +74 +t +( +c +); + +78 +BasicJsDocumt +( +VRef + +c +) + +79 : +JsDocumt +( +locPo +( +c +. +memyUge +())) { + +80 +t +( +c +); + +83 ~ +BasicJsDocumt +() { + +84 +Po +(); + +87 + gBasicJsDocumt +& + gݔ +=(cڡ +BasicJsDocumt +& +c +) { + +88 +cyAssignFrom +( +c +); + +89  * + gthis +; + +92 #i +ARDUINOJSON_HAS_RVALUE_REFERENCES + + +93 + gBasicJsDocumt +& + gݔ +=( +BasicJsDocumt +&& +c +) { + +94 +moveAssignFrom +( +c +); + +95  * + gthis +; + +99 + gme + < +tyme + + gT +> + +100 + gBasicJsDocumt +& + gݔ +=(cڡ +T +& +c +) { + +101 +locPoIfTooSml +( +c +. +memyUge +()); + +102 +t +( +c +); + +103  * + gthis +; + +106  +shrkToF +() { + +107 +rdiff_t + + gbys_aimed + = +_po +. +squash +(); + +108 i( + gbys_aimed + == 0) + +111 * + gd_r + = +_po +. +bufr +(); + +112 * + gw_r + = +this +-> +lo +( +d_r +, +_po +. +cy +()); + +114 +rdiff_t + + gr_offt + = + +115 +ic_ +<*>( +w_r +- stic_<*>( +d_r +); + +117 + g_po +. +movePors +( +r_offt +); + +118 + g_da +. +movePors +( +r_offt +,_off- +bys_aimed +); + +121 +bo + +gbageC +() { + +123 +BasicJsDocumt + +tmp +(* +this +); + +124 i(! + gtmp +. +cy +()) + +125  + gl +; + +126 + gtmp +. +t +(* +this +); + +127 +moveAssignFrom +( +tmp +); + +128  + gue +; + +131 +usg + + gAotOwr +< + gTAot +>:: +lot +; + +133 + give +: + +134 +MemyPo + +locPo +( +size_t + +quedSize +) { + +135 +size_t + + + = +addPaddg +( +quedSize +); + +136  +MemyPo +( +t_ +<*>( +this +-> +lo +( + +)), capa); + +139  +locPoIfTooSml +( +size_t + +quedSize +) { + +140 i( + gquedSize + < +cy +()) + +142 +Po +(); + +143 +aPo +( +locPo +( +addPaddg +( +quedSize +))); + +146  +Po +() { + +147 + gthis +-> +do +( +memyPo +(). +bufr +()); + +150  +cyAssignFrom +(cڡ +JsDocumt +& +c +) { + +151 +locPoIfTooSml +( +c +. +cy +()); + +152 +t +( +c +); + +155  +moveAssignFrom +( +BasicJsDocumt +& +c +) { + +156 +Po +(); + +157 + g_da + = +c +. +_da +; + +158 + g_po + = +c +. +_po +; + +159 + gc +. + g_da +. +tNu +(); + +160 + gc +. + g_po + = +MemyPo +(0, 0); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13  + sDeuAot + { + +14 * +lo +( +size_t + +size +) { + +15  +mloc +( +size +); + +18  +do +(* +r +) { + +19 + +( +r +); + +22 * +lo +(* +r +, +size_t + +w_size +) { + +23  +loc +( +r +, +w_size +); + +27  + gBasicJsDocumt +< + tDeuAot +> + tDymicJsDocumt +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +16 as + cJsDocumt + : +public + +Visab + { + +17 +public +: + +18 +me + < +tyme + +Vis +> + +19  +ac +( +Vis +& +vis +) const { + +20  +gV +(). +ac +( +vis +); + +23 + gme + < +tyme + + gT +> + +24 +tyme + + gVAs +< + gT +>:: +ty + +as +() { + +25  +gV +(). +me + +as +< +T +>(); + +28 + gme + < +tyme + + gT +> + +29 +tyme + + gVCڡAs +< + gT +>:: +ty + +as +() const { + +30  +gV +(). +me + +as +< +T +>(); + +33  +r +() { + +34 + g_po +. +r +(); + +35 + g_da +. +tNu +(); + +38 + gme + < +tyme + + gT +> + +39 +bo + +is +() const { + +40  +gV +(). +me + + gis +< + gT +>(); + +43 +bo + +isNu +() const { + +44  +gV +(). +isNu +(); + +47 +size_t + +memyUge +() const { + +48  + g_po +. +size +(); + +51 +size_t + +ág +() const { + +52  + g_da +. +ág +(); + +55 +size_t + +cy +() const { + +56  + g_po +. +cy +(); + +59 +size_t + +size +() const { + +60  + g_da +. +size +(); + +63 +bo + +t +(cڡ +JsDocumt +& +c +) { + +64  + gto +< + gVRef +>(). +t +( +c +. +as +< +VRef +>()); + +67 + gme + < +tyme + + gT +> + +68 +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +t +( + +69 cڡ +T +& +c +) { + +70  +to +< +VRef +>(). +t +( +c +); + +73 + gme + < +tyme + + gT +> + +74 +tyme + + gVTo +< + gT +>:: +ty + +to +() { + +75 +r +(); + +76  +gV +(). +me + + gto +< + gT +>(); + +80 + gMemyPo +& +memyPo +() { + +81  + g_po +; + +84 + gVDa +& +da +() { + +85  + g_da +; + +88 +AayRef + +NeedAay +() { + +89  +addEmt +(). + gto +< + gAayRef +>(); + +95 + gme + < +tyme + + gTCh +> + +96 +AayRef + +NeedAay +( +TCh +* +key +) { + +97  +gOrAddMemb +( +key +). +me + + gto +< + gAayRef +>(); + +102 + gme + < +tyme + + gTSg +> + +103 +AayRef + +NeedAay +(cڡ +TSg +& +key +) { + +104  +gOrAddMemb +( +key +). +me + + gto +< + gAayRef +>(); + +107 +ObjeRef + +NeedObje +() { + +108  +addEmt +(). + gto +< + gObjeRef +>(); + +114 + gme + < +tyme + + gTCh +> + +115 +ObjeRef + +NeedObje +( +TCh +* +key +) { + +116  +gOrAddMemb +( +key +). +me + + gto +< + gObjeRef +>(); + +121 + gme + < +tyme + + gTSg +> + +122 +ObjeRef + +NeedObje +(cڡ +TSg +& +key +) { + +123  +gOrAddMemb +( +key +). +me + + gto +< + gObjeRef +>(); + +129 + gme + < +tyme + + gTCh +> + +130 +bo + +cڏsKey +( +TCh +* +key +) const { + +131  ! +gMemb +( +key +). +isUndefed +(); + +136 + gme + < +tyme + + gTSg +> + +137 +bo + +cڏsKey +(cڡ +TSg +& +key +) const { + +138  ! +gMemb +( +key +). +isUndefed +(); + +143 + gme + < +tyme + + gTSg +> + +144 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + +145 + gMembProxy +< + gJsDocumt +&, + gTSg +> >:: +ty + + +146 +ݔ +[](cڡ +TSg +& +key +) { + +147  +MembProxy +< +JsDocumt +&, + gTSg +>(* + gthis +, + gkey +); + +153 + gme + < +tyme + + gTCh +> + +154 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +, + +155 + gMembProxy +< + gJsDocumt +&, + gTCh +*> >:: +ty + + +156 +ݔ +[]( +TCh +* +key +) { + +157  +MembProxy +< +JsDocumt +&, + gTCh +*>(* + gthis +, + gkey +); + +162 + gme + < +tyme + + gTSg +> + +163 +FORCE_INLINE + + +164 +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVCڡRef +>:: +ty + + +165 +ݔ +[](cڡ +TSg +& +key +) const { + +166  +gMemb +( +key +); + +172 + gme + < +tyme + + gTCh +> + +173 +FORCE_INLINE + + +174 +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +, + gVCڡRef +>:: +ty + + +175 +ݔ +[]( +TCh +* +key +) const { + +176  +gMemb +( +key +); + +179 +FORCE_INLINE + + gEmtProxy +< + gJsDocumt +&> + gݔ +[]( +size_t + + gdex +) { + +180  + gEmtProxy +< + gJsDocumt +&>(* + gthis +, + gdex +); + +183 +FORCE_INLINE + +VCڡRef + + gݔ +[]( +size_t + + gdex +) const { + +184  +gEmt +( +dex +); + +187 +FORCE_INLINE + +VRef + +gEmt +( +size_t + +dex +) { + +188  +VRef +(& +_po +, +_da +. +gEmt +( +dex +)); + +191 +FORCE_INLINE + +VCڡRef + +gEmt +( +size_t + +dex +) const { + +192  +VCڡRef +( +_da +. +gEmt +( +dex +)); + +195 +FORCE_INLINE + +VRef + +gOrAddEmt +( +size_t + +dex +) { + +196  +VRef +(& +_po +, +_da +. +gOrAddEmt +( +dex +, &_pool)); + +202 + gme + < +tyme + + gTCh +> + +203 +FORCE_INLINE + +VCڡRef + +gMemb +( +TCh +* +key +) const { + +204  +VCڡRef +( +_da +. +gMemb +( +adtSg +( +key +))); + +209 + gme + < +tyme + + gTSg +> + +210 +FORCE_INLINE + + +211 +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVCڡRef +>:: +ty + + +212 +gMemb +(cڡ +TSg +& +key +) const { + +213  +VCڡRef +( +_da +. +gMemb +( +adtSg +( +key +))); + +219 + gme + < +tyme + + gTCh +> + +220 +FORCE_INLINE + +VRef + +gMemb +( +TCh +* +key +) { + +221  +VRef +(& +_po +, +_da +. +gMemb +( +adtSg +( +key +))); + +226 + gme + < +tyme + + gTSg +> + +227 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVRef +>:: +ty + + +228 +gMemb +(cڡ +TSg +& +key +) { + +229  +VRef +(& +_po +, +_da +. +gMemb +( +adtSg +( +key +))); + +235 + gme + < +tyme + + gTCh +> + +236 +FORCE_INLINE + +VRef + +gOrAddMemb +( +TCh +* +key +) { + +237  +VRef +(& +_po +, +_da +. +gOrAddMemb +( +adtSg +( +key +), &_pool)); + +242 + gme + < +tyme + + gTSg +> + +243 +FORCE_INLINE + +VRef + +gOrAddMemb +(cڡ +TSg +& +key +) { + +244  +VRef +(& +_po +, +_da +. +gOrAddMemb +( +adtSg +( +key +), &_pool)); + +247 +FORCE_INLINE + +VRef + +addEmt +() { + +248  +VRef +(& +_po +, +_da +. +addEmt +(&_pool)); + +251 + gme + < +tyme + + gTVue +> + +252 +FORCE_INLINE + +bo + +add +(cڡ +TVue +& +vue +) { + +253  +addEmt +(). +t +( +vue +); + +259 + gme + < +tyme + + gTCh +> + +260 +FORCE_INLINE + +bo + +add +( +TCh +* +vue +) { + +261  +addEmt +(). +t +( +vue +); + +264 +FORCE_INLINE +  +move +( +size_t + +dex +) { + +265 + g_da +. +move +( +dex +); + +270 + gme + < +tyme + + gTCh +> + +271 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +>:: +ty + +move +( + +272 +TCh +* +key +) { + +273 +_da +. +move +( +adtSg +( +key +)); + +277 + gme + < +tyme + + gTSg +> + +278 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +>:: +ty + +move +( + +279 cڡ +TSg +& +key +) { + +280 +_da +. +move +( +adtSg +( +key +)); + +283 +FORCE_INLINE + +ݔ + +VCڡRef +() const { + +284  +VCڡRef +(& +_da +); + +287 +bo + + gݔ +==( +VCڡRef + +rhs +) const { + +288  +gV +(= +rhs +; + +291 +bo + + gݔ +!=( +VCڡRef + +rhs +) const { + +292  +gV +(! +rhs +; + +295 + geed +: + +296 +JsDocumt +(: +_po +(0, 0) { + +297 + g_da +. +tNu +(); + +300 +JsDocumt +( +MemyPo + +po +: +_po +(pool) { + +301 +_da +. +tNu +(); + +304 +JsDocumt +(* +buf +, +size_t + + +: +_po +(buf, capa) { + +305 + g_da +. +tNu +(); + +308  +aPo +( +MemyPo + +po +) { + +309 + g_po + = +po +; + +312 +VRef + +gV +() { + +313  +VRef +(& +_po +, & +_da +); + +316 +VCڡRef + +gV +() const { + +317  +VCڡRef +(& +_da +); + +320 +MemyPo + + g_po +; + +321 +VDa + + g_da +; + +323 + give +: + +324 +JsDocumt +(const JsonDocument&); + +325 + gJsDocumt +& + gݔ +=(cڡ +JsDocumt +&); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Document/StaticJsonDocument.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +size_t + + gdesedCacy +> + +12 as + cSticJsDocumt + : +public + +JsDocumt + { + +13 cڡ +size_t + +_cy + = + +14 +AddPaddg +< +Max +<1, + gdesedCacy +>:: +vue +>::value; + +16 + gpublic +: + +17 +SticJsDocumt +(: +JsDocumt +( +_bufr +, +_cy +) {} + +19 +SticJsDocumt +(cڡ SticJsDocumt& +c +) + +20 : +JsDocumt +( +_bufr +, +_cy +) { + +21 +t +( +c +); + +24 + gme + < +tyme + + gT +> + +25 +SticJsDocumt +(cڡ +T +& +c +, + +26 +tyme + +ab_if +< +IsVisab +< +T +>:: +vue +>:: +ty +* = 0) + +27 : +JsDocumt +( +_bufr +, +_cy +) { + +28 +t +( +c +); + +32 +SticJsDocumt +( +VRef + +c +: +JsDocumt +( +_bufr +, +_cy +) { + +33 +t +( +c +); + +36 +SticJsDocumt + + gݔ +=(cڡ SticJsDocumt& +c +) { + +37 +t +( +c +); + +38  * + gthis +; + +41 + gme + < +tyme + + gT +> + +42 +SticJsDocumt + + gݔ +=(cڡ +T +& +c +) { + +43 +t +( +c +); + +44  * + gthis +; + +47  +gbageC +() { + +48 +SticJsDocumt + +tmp +(* +this +); + +49 +t +( +tmp +); + +52 + give +: + +53  +_bufr +[ +_cy +]; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 as + cEsSequ + { + +12 + gpublic +: + +14  +esCh +( +c +) { + +15 cڡ * +p + = +esTab +( +ue +); + +16  + gp +[0] &&[1] ! +c +) { + +17 +p + += 2; + +19  + gp +[0]; + +23  +usCh +( +c +) { + +24 cڡ * + gp + = +esTab +( +l +); + +26 i( + gp +[0] == '\0') + +28 i( + gp +[0] = +c +) + +29  +p +[1]; + +30 + gp + += 2; + +34 + give +: + +35 cڡ * +esTab +( +bo + +exudeSidus +) { + +36  &"//\"\"\\\\b\bf\\\\t"[ +exudeSidus + ? 2 : 0]; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +16  + ~ + +18 +mea + + gARDUINOJSON_NAMESPACE + { + +20 + gme + < +tyme + + gTRd +,ym + gTSgStage +> + +21 as + cJsDerliz + { + +22  +tyme + + tmove_n +< + tTSgStage +>:: + tty +:: + tSgBud + + +23 + tSgBud +; + +25  + sSgOrE + { + +26 +DerliziE + + gr +; + +27 cڡ * + gvue +; + +29 +SgOrE +( +DerliziE + +e +: +r +(e) {} + +30 +SgOrE +( +DerliziE +:: +Code + +c +: +r +(c) {} + +31 +SgOrE +(cڡ * +s +: +r +( +DerliziE +:: +Ok +), +vue +(s) {} + +34 + gpublic +: + +35 +JsDerliz +( +MemyPo + & +po +, +TRd + +ad +, + +36 +TSgStage + +rgStage +) + +37 : +_po +(& +po +), +_rgStage +( +rgStage +), +_tch +( +ad +) {} + +39 + gme + < +tyme + + gTFr +> + +40 +DerliziE + +r +( +VDa + & +v +, +TFr + +fr +, + +41 +NegLim + +ágLim +) { + +42 +DerliziE + + gr + = +rV +( +v +, +fr +, +ágLim +); + +44 i(! + gr + && + g_tch +. +ϡ +(!0 && ! +v +. +isEnod +()) { + +46 +r + = +DerliziE +:: +InvidIut +; + +49  + gr +; + +52 + give +: + +53 +JsDerliz + & +ݔ +=(const JsonDeserializer &); + +55  +cut +() { + +56  + g_tch +. +cut +(); + +59  +move +() { + +60 + g_tch +. +r +(); + +63 +bo + +t +( +chToSk +) { + +64 i( +cut +(! +chToSk +) + +65  +l +; + +66 +move +(); + +67  + gue +; + +70 + gme + < +tyme + + gTFr +> + +71 +DerliziE + +rV +( +VDa + & +v +, +TFr + +fr +, + +72 +NegLim + +ágLim +) { + +73 +DerliziE + + gr + = +skSsAndCommts +(); + +74 i( + gr +) + +75  + gr +; + +77  +cut +()) { + +79 i( +fr +. +lowAay +()) + +80  +rAay +( +v +. +toAay +(), +fr +, +ágLim +); + +82  +skAay +( +ágLim +); + +85 i( +fr +. +lowObje +()) + +86  +rObje +( +v +. +toObje +(), +fr +, +ágLim +); + +88  +skObje +( +ágLim +); + +92 i( +fr +. +lowVue +()) + +93  +rSgVue +( +v +); + +95  +skSg +(); + +98 i( +fr +. +lowVue +()) + +99  +rNumicVue +( +v +); + +101  +skNumicVue +(); + +105 +DerliziE + +skV +( +NegLim + +ágLim +) { + +106 +DerliziE + + gr + = +skSsAndCommts +(); + +107 i( + gr +) + +108  + gr +; + +110  +cut +()) { + +112  +skAay +( +ágLim +); + +115  +skObje +( +ágLim +); + +119  +skSg +(); + +122  +skNumicVue +(); + +126 + gme + < +tyme + + gTFr +> + +127 +DerliziE + +rAay +( +CiDa + & +y +, +TFr + +fr +, + +128 +NegLim + +ágLim +) { + +129 i( + gágLim +. +ached +()) + +130  + gDerliziE +:: +TooDp +; + +133 +ARDUINOJSON_ASSERT +( +cut +() == '['); + +134 +move +(); + +137 +DerliziE + + gr + = +skSsAndCommts +(); + +138 i( + gr +) + +139  + gr +; + +142 i( +t +(']')) + +143  + gDerliziE +:: +Ok +; + +145 +TFr + + gmembFr + = +fr +[0UL]; + +149 i( + gmembFr +. +low +()) { + +151 +VDa + * + gvue + = +y +. +addEmt +( +_po +); + +152 i(! + gvue +) + +153  + gDerliziE +:: +NoMemy +; + +156 + gr + = +rV +(* +vue +, +membFr +, +ágLim +. +deemt +()); + +157 i( + gr +) + +158  + gr +; + +160 + gr + = +skV +( +ágLim +. +deemt +()); + +161 i( + gr +) + +162  + gr +; + +166 + gr + = +skSsAndCommts +(); + +167 i( + gr +) + +168  + gr +; + +171 i( +t +(']')) + +172  + gDerliziE +:: +Ok +; + +173 i(! +t +(',')) + +174  + gDerliziE +:: +InvidIut +; + +178 +DerliziE + +skAay +( +NegLim + +ágLim +) { + +179 i( + gágLim +. +ached +()) + +180  + gDerliziE +:: +TooDp +; + +183 +ARDUINOJSON_ASSERT +( +cut +() == '['); + +184 +move +(); + +189 +DerliziE + + gr + = +skV +( +ágLim +. +deemt +()); + +190 i( + gr +) + +191  + gr +; + +194 + gr + = +skSsAndCommts +(); + +195 i( + gr +) + +196  + gr +; + +199 i( +t +(']')) + +200  + gDerliziE +:: +Ok +; + +201 i(! +t +(',')) + +202  + gDerliziE +:: +InvidIut +; + +206 + gme + < +tyme + + gTFr +> + +207 +DerliziE + +rObje +( +CiDa + & +obje +, +TFr + +fr +, + +208 +NegLim + +ágLim +) { + +209 i( + gágLim +. +ached +()) + +210  + gDerliziE +:: +TooDp +; + +213 +ARDUINOJSON_ASSERT +( +cut +() == '{'); + +214 +move +(); + +217 +DerliziE + + gr + = +skSsAndCommts +(); + +218 i( + gr +) + +219  + gr +; + +222 i( +t +('}')) + +223  + gDerliziE +:: +Ok +; + +228 +SgOrE + + gkey + = +rKey +(); + +229 + gr + = +key +. +r +; + +230 i( + gr +) + +231  + gr +; + +234 + gr + = +skSsAndCommts +(); + +235 i( + gr +) + +236  + gr +; + +237 i(! +t +(':')) + +238  + gDerliziE +:: +InvidIut +; + +240 +TFr + + gmembFr + = +fr +[ +key +. +vue +]; + +242 i( + gmembFr +. +low +()) { + +243 +VDa + * + gv + = +obje +. +gMemb +( +adtSg +( +key +. +vue +)); + +244 i(! + gv +) { + +246 +VSl + * + g + = +obje +. +addSl +( +_po +); + +247 i(! + g +) + +248  + gDerliziE +:: +NoMemy +; + +250 + g +-> +tOwdKey +( +make_n_nu +( +key +. +vue +)); + +252 + gv + = + +-> +da +(); + +256 + gr + = +rV +(* +v +, +membFr +, +ágLim +. +deemt +()); + +257 i( + gr +) + +258  + gr +; + +260 + g_rgStage +. +aim +( +key +. +vue +); + +261 + gr + = +skV +( +ágLim +. +deemt +()); + +262 i( + gr +) + +263  + gr +; + +267 + gr + = +skSsAndCommts +(); + +268 i( + gr +) + +269  + gr +; + +272 i( +t +('}')) + +273  + gDerliziE +:: +Ok +; + +274 i(! +t +(',')) + +275  + gDerliziE +:: +InvidIut +; + +278 + gr + = +skSsAndCommts +(); + +279 i( + gr +) + +280  + gr +; + +284 +DerliziE + +skObje +( +NegLim + +ágLim +) { + +285 i( + gágLim +. +ached +()) + +286  + gDerliziE +:: +TooDp +; + +289 +ARDUINOJSON_ASSERT +( +cut +() == '{'); + +290 +move +(); + +293 +DerliziE + + gr + = +skSsAndCommts +(); + +294 i( + gr +) + +295  + gr +; + +298 i( +t +('}')) + +299  + gDerliziE +:: +Ok +; + +304 + gr + = +skV +( +ágLim +. +deemt +()); + +305 i( + gr +) + +306  + gr +; + +309 + gr + = +skSsAndCommts +(); + +310 i( + gr +) + +311  + gr +; + +314 i(! +t +(':')) + +315  + gDerliziE +:: +InvidIut +; + +318 + gr + = +skV +( +ágLim +. +deemt +()); + +319 i( + gr +) + +320  + gr +; + +323 + gr + = +skSsAndCommts +(); + +324 i( + gr +) + +325  + gr +; + +328 i( +t +('}')) + +329  + gDerliziE +:: +Ok +; + +330 i(! +t +(',')) + +331  + gDerliziE +:: +InvidIut +; + +335 +SgOrE + +rKey +() { + +336 i( +isQue +( +cut +())) { + +337  +rQuedSg +(); + +339  +rNQuedSg +(); + +343 +DerliziE + +rSgVue +( +VDa + & +v +) { + +344 +SgOrE + + gsu + = +rQuedSg +(); + +345 i( + gsu +. + gr +) + +346  + gsu +. + gr +; + +347 + gv +. +tOwdSg +( +make_n_nu +( +su +. +vue +)); + +348  + gDerliziE +:: +Ok +; + +351 +SgOrE + +rQuedSg +() { + +352 +SgBud + + gbud + = +_rgStage +. +tSg +(); + +353 #i +ARDUINOJSON_DECODE_UNICODE + + +354 + gUtf16 +:: +Codot + +codot +; + +356 cڡ  + gCh + = +cut +(); + +358 +move +(); + +360  + gc + = +cut +(); + +361 +move +(); + +362 i( + gc + = +Ch +) + +365 i( + gc + == '\0') + +366  +DerliziE +:: +IncomeIut +; + +368 i( + gc + == '\\') { + +369 +c + = +cut +(); + +370 i( + gc + == '\0') + +371  +DerliziE +:: +IncomeIut +; + +372 i( + gc + == 'u') { + +373 #i +ARDUINOJSON_DECODE_UNICODE + + +374 +move +(); + +375 +ut16_t + + gcodeun +; + +376 +DerliziE + + gr + = +rHex4 +( +codeun +); + +377 i( + gr +) + +378  + gr +; + +379 i( + gcodot +. +nd +( +codeun +)) + +380 + gUtf8 +:: +codeCodot +( +codot +. +vue +(), +bud +); + +383  + gDerliziE +:: +NSu܋d +; + +387 + gc + = +EsSequ +:: +usCh +( +c +); + +388 i( + gc + == '\0') + +389  +DerliziE +:: +InvidIut +; + +390 +move +(); + +393 + gbud +. +nd +( +c +); + +396 cڡ * + gsu + = +bud +. +come +(); + +397 i(! + gsu +) + +398  + gDerliziE +:: +NoMemy +; + +399  + gsu +; + +402 +SgOrE + +rNQuedSg +() { + +403 +SgBud + + gbud + = +_rgStage +. +tSg +(); + +405  + gc + = +cut +(); + +406 +ARDUINOJSON_ASSERT +( +c +); + +408 i( +nBeInNQuedSg +( +c +)) { + +410 +move +(); + +411 + gbud +. +nd +( +c +); + +412 + gc + = +cut +(); + +413 }  +nBeInNQuedSg +( +c +)); + +415  + gDerliziE +:: +InvidIut +; + +418 cڡ * + gsu + = +bud +. +come +(); + +419 i(! + gsu +) + +420  + gDerliziE +:: +NoMemy +; + +421  + gsu +; + +424 +DerliziE + +skSg +() { + +425 cڡ  + gCh + = +cut +(); + +427 +move +(); + +429  + gc + = +cut +(); + +430 +move +(); + +431 i( + gc + = +Ch +) + +433 i( + gc + == '\0') + +434  +DerliziE +:: +IncomeIut +; + +435 i( + gc + == '\\') { + +436 i( +cut +() != '\0') + +437 +move +(); + +441  + gDerliziE +:: +Ok +; + +444 +DerliziE + +rNumicVue +( +VDa + & +su +) { + +445  + gbufr +[64]; + +446 +ut8_t + + gn + = 0; + +448  + gc + = +cut +(); + +449  +nBeInNQuedSg +( +c +&& + gn + < 63) { + +450 +move +(); + +451 + gbufr +[ +n +++] = +c +; + +452 + gc + = +cut +(); + +454 + gbufr +[ +n +] = 0; + +456 + gc + = +bufr +[0]; + +457 i( + gc + == 't') { + +458 +su +. +tBoޗn +( +ue +); + +459  + gn + =4 ? +DerliziE +:: +Ok + + +460 : +DerliziE +:: +IncomeIut +; + +462 i( + gc + == 'f') { + +463 +su +. +tBoޗn +( +l +); + +464  + gn + =5 ? +DerliziE +:: +Ok + + +465 : +DerliziE +:: +IncomeIut +; + +467 i( + gc + == 'n') { + +469  +n + =4 ? +DerliziE +:: +Ok + + +470 : +DerliziE +:: +IncomeIut +; + +473 + gPdNumb +< + gFlt +, + gUI +> + gnum + = +rNumb +< +Flt +, UI>( + gbufr +); + +475  + gnum +. +ty +()) { + +476  + gVALUE_IS_NEGATIVE_INTEGER +: + +477 +su +. +tNegiveIeg +( +num +. +utVue +); + +478  + gDerliziE +:: +Ok +; + +480  + gVALUE_IS_POSITIVE_INTEGER +: + +481 +su +. +tPosiveIeg +( +num +. +utVue +); + +482  + gDerliziE +:: +Ok +; + +484  + gVALUE_IS_FLOAT +: + +485 +su +. +tFlt +( +num +. +tVue +); + +486  + gDerliziE +:: +Ok +; + +489  + gDerliziE +:: +InvidIut +; + +492 +DerliziE + +skNumicVue +() { + +493  + gc + = +cut +(); + +494  +nBeInNQuedSg +( +c +)) { + +495 +move +(); + +496 + gc + = +cut +(); + +498  + gDerliziE +:: +Ok +; + +501 +DerliziE + +rHex4 +( +ut16_t + & +su +) { + +502 + gsu + = 0; + +503  +ut8_t + + gi + = 0; i < 4; ++i) { + +504  + gdig + = +cut +(); + +505 i(! + gdig +) + +506  + gDerliziE +:: +IncomeIut +; + +507 +ut8_t + + gvue + = +decodeHex +( +dig +); + +508 i( + gvue + > 0x0F) + +509  + gDerliziE +:: +InvidIut +; + +510 + gsu + = +ut16_t +(( +su + << 4| +vue +); + +511 +move +(); + +513  + gDerliziE +:: +Ok +; + +516  +le + +bo + +isBwn +( +c +,  +m +,  +max +) { + +517  + gm + < +c + && c < +max +; + +520  +le + +bo + +nBeInNQuedSg +( +c +) { + +521  +isBwn +( +c +, '0', '9') || isBetween(c, '_', 'z') || + +522 +isBwn +( +c +, 'A', 'Z'|| + gc + == '+' || c == '-' || c == '.'; + +525  +le + +bo + +isQue +( +c +) { + +526  + gc + ='\'' || +c + == '\"'; + +529  +le + +ut8_t + +decodeHex +( +c +) { + +530 i( + gc + < 'A') + +531  +ut8_t +( +c + - '0'); + +532 + gc + = ( +c + & ~0x20); + +533  +ut8_t +( +c + - 'A' + 10); + +536 +DerliziE + +skSsAndCommts +() { + +538  +cut +()) { + +541  +DerliziE +:: +IncomeIut +; + +548 +move +(); + +551 #i +ARDUINOJSON_ENABLE_COMMENTS + + +554 +move +(); + +555  +cut +()) { + +558 +move +(); + +559 +bo + + gwasSr + = +l +; + +561  + gc + = +cut +(); + +562 i( + gc + == '\0') + +563  +DerliziE +:: +IncomeIut +; + +564 i( + gc + ='/' && +wasSr +) { + +565 +move +(); + +568 + gwasSr + = +c + == '*'; + +569 +move +(); + +578 +move +(); + +579  + gc + = +cut +(); + +580 i( + gc + == '\0') + +581  +DerliziE +:: +IncomeIut +; + +582 i( + gc + == '\n') + +589  +DerliziE +:: +InvidIut +; + +595  +DerliziE +:: +Ok +; + +600 +MemyPo + * + g_po +; + +601 +TSgStage + + g_rgStage +; + +602 + gLch +< + gTRd +> + g_tch +; + +606 + gme + < +tyme + + gTIut +> + +607 +DerliziE + +derlizeJs +( + +608 +JsDocumt + & +doc +, cڡ +TIut + & +put +, + +609 +NegLim + +ágLim + = + $NegLim +()) { + +610  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, + +611 + `AowAFr +()); + +612 + } +} + +613 + gme + < +tyme + + gTIut +> + +614 +DerliziE + +derlizeJs +( + +615 +JsDocumt + & +doc +, cڡ +TIut + & +put +, +Fr + +fr +, + +616 +NegLim + +ágLim + = + $NegLim +()) { + +617  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +618 + } +} + +619 + gme + < +tyme + + gTIut +> + +620 +DerliziE + + $derlizeJs +( +JsDocumt + & +doc +, cڡ +TIut + & +put +, + +621 +NegLim + +ágLim +, +Fr + +fr +) { + +622  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +623 + } +} + +626 + gme + < +tyme + + gTIut +> + +627 +DerliziE + +derlizeJs +( + +628 +JsDocumt + & +doc +, +TIut + & +put +, + +629 +NegLim + +ágLim + = + $NegLim +()) { + +630  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, + +631 + `AowAFr +()); + +632 + } +} + +633 + gme + < +tyme + + gTIut +> + +634 +DerliziE + +derlizeJs +( + +635 +JsDocumt + & +doc +, +TIut + & +put +, +Fr + +fr +, + +636 +NegLim + +ágLim + = + $NegLim +()) { + +637  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +638 + } +} + +639 + gme + < +tyme + + gTIut +> + +640 +DerliziE + + $derlizeJs +( +JsDocumt + & +doc +, +TIut + & +put +, + +641 +NegLim + +ágLim +, +Fr + +fr +) { + +642  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +643 + } +} + +646 + gme + < +tyme + + gTCh +> + +647 +DerliziE + +derlizeJs +( + +648 +JsDocumt + & +doc +, +TCh + * +put +, + +649 +NegLim + +ágLim + = + $NegLim +()) { + +650  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, + +651 + `AowAFr +()); + +652 + } +} + +653 + gme + < +tyme + + gTCh +> + +654 +DerliziE + +derlizeJs +( + +655 +JsDocumt + & +doc +, +TCh + * +put +, +Fr + +fr +, + +656 +NegLim + +ágLim + = + $NegLim +()) { + +657  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +658 + } +} + +659 + gme + < +tyme + + gTCh +> + +660 +DerliziE + + $derlizeJs +( +JsDocumt + & +doc +, +TCh + * +put +, + +661 +NegLim + +ágLim +, +Fr + +fr +) { + +662  +derlize +< +JsDerliz +>( +doc +, +put +, +ágLim +, +fr +); + +663 + } +} + +666 + gme + < +tyme + + gTCh +> + +667 +DerliziE + +derlizeJs +( + +668 +JsDocumt + & +doc +, +TCh + * +put +, +size_t + +putSize +, + +669 +NegLim + +ágLim + = + $NegLim +()) { + +670  +derlize +< +JsDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +671 + `AowAFr +()); + +672 + } +} + +673 + gme + < +tyme + + gTCh +> + +674 +DerliziE + +derlizeJs +( + +675 +JsDocumt + & +doc +, +TCh + * +put +, +size_t + +putSize +, +Fr + +fr +, + +676 +NegLim + +ágLim + = + $NegLim +()) { + +677  +derlize +< +JsDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +678 +fr +); + +679 + } +} + +680 + gme + < +tyme + + gTCh +> + +681 +DerliziE + + $derlizeJs +( +JsDocumt + & +doc +, +TCh + * +put +, + +682 +size_t + +putSize +, + +683 +NegLim + +ágLim +, +Fr + +fr +) { + +684  +derlize +< +JsDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +685 +fr +); + +686 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +tyme + + gTWr +> + +15 as + cJsSliz + { + +16 + gpublic +: + +17 +JsSliz +( +TWr + +wr +: +_fmr +(writer) {} + +19 +FORCE_INLINE +  +visAay +(cڡ +CiDa + & +y +) { + +20 +wre +('['); + +22 +VSl + * + g + = +y +. +hd +(); + +24  + g + != 0) { + +25 + +-> +da +()-> +ac +(* +this +); + +27 + g + = + +-> +xt +(); + +28 i( + g + == 0) + +31 +wre +(','); + +34 +wre +(']'); + +37  +visObje +(cڡ +CiDa + & +obje +) { + +38 +wre +('{'); + +40 +VSl + * + g + = +obje +. +hd +(); + +42  + g + != 0) { + +43 +_fmr +. +wreSg +( + +-> +key +()); + +44 +wre +(':'); + +45 + g +-> +da +()-> +ac +(* +this +); + +47 + g + = + +-> +xt +(); + +48 i( + g + == 0) + +51 +wre +(','); + +54 +wre +('}'); + +57  +visFlt +( +Flt + +vue +) { + +58 + g_fmr +. +wreFlt +( +vue +); + +61  +visSg +(cڡ * +vue +) { + +62 + g_fmr +. +wreSg +( +vue +); + +65  +visRawJs +(cڡ * +da +, +size_t + +n +) { + +66 + g_fmr +. +wreRaw +( +da +, +n +); + +69  +visNegiveIeg +( +UI + +vue +) { + +70 + g_fmr +. +wreNegiveIeg +( +vue +); + +73  +visPosiveIeg +( +UI + +vue +) { + +74 + g_fmr +. +wrePosiveIeg +( +vue +); + +77  +visBoޗn +( +bo + +vue +) { + +78 + g_fmr +. +wreBoޗn +( +vue +); + +81  +visNu +() { + +82 + g_fmr +. +wreRaw +("null"); + +85 +size_t + +bysWrn +() const { + +86  + g_fmr +. +bysWrn +(); + +89 + geed +: + +90  +wre +( +c +) { + +91 +_fmr +. +wreRaw +( +c +); + +94  +wre +(cڡ * +s +) { + +95 + g_fmr +. +wreRaw +( +s +); + +98 + give +: + +99 +TextFmr +< +TWr +> +_fmr +; + +102 + gme + < +tyme + + gTSour +,ym + gTDei +> + +103 +size_t + + $rlizeJs +(cڡ +TSour + & +sour +, +TDei + & +dei +) { + +104  +rlize +< +JsSliz +>( +sour +, +dei +); + +105 + } +} + +107 + gme + < +tyme + + gTSour +> + +108 +size_t + + $rlizeJs +(cڡ +TSour + & +sour +, * +bufr +, +size_t + +bufrSize +) { + +109  +rlize +< +JsSliz +>( +sour +, +bufr +, +bufrSize +); + +110 + } +} + +112 + gme + < +tyme + + gTSour +> + +113 +size_t + + $msuJs +(cڡ +TSour + & +sour +) { + +114  +msu +< +JsSliz +>( +sour +); + +115 + } +} + +117 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +118 + gme + < +tyme + + gT +> + +119 +le + +tyme + + gab_if +< + gIsVisab +< + gT +>:: +vue +, + gd +:: +oam + &>:: +ty + + +120 +ݔ +<<( +d +:: +oam + & +os +, cڡ + gT + & + gsour +) { + +121 +rlizeJs +( +sour +, +os +); + +122  + gos +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Json/Latch.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTRd +> + +12 as + cLch + { + +13 + gpublic +: + +14 +Lch +( +TRd + +ad +: +_ad +ԗd), +_lded +( +l +) { + +15 #i +ARDUINOJSON_DEBUG + + +16 + g_ded + = +l +; + +20  +r +() { + +21 + g_lded + = +l +; + +24  +ϡ +() const { + +25  + g_cut +; + +28 +FORCE_INLINE +  +cut +() { + +29 i(! + g_lded +) { + +30 +ld +(); + +32  + g_cut +; + +35 + give +: + +36  +ld +() { + +37 +ARDUINOJSON_ASSERT +(! +_ded +); + +38  + gc + = +_ad +. +ad +(); + +39 #i +ARDUINOJSON_DEBUG + + +40 i( + gc + <= 0) + +41 +_ded + = +ue +; + +43 + g_cut + = +ic_ +<>( +c + > 0 ? c : 0); + +44 + g_lded + = +ue +; + +47 +TRd + + g_ad +; + +48  + g_cut +; + +49 +bo + + g_lded +; + +50 #i +ARDUINOJSON_DEBUG + + +51 +bo + + g_ded +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +tyme + + gTWr +> + +15 +ass + + gPyJsSliz + : +public + +JsSliz +< +TWr +> { + +16  +JsSliz +< + tTWr +> + tba +; + +18 + gpublic +: + +19 +PyJsSliz +( +TWr + & +wr +: +ba +(wr), +_ág +(0) {} + +21  +visAay +(cڡ +CiDa + & +y +) { + +22 +VSl + * + g + = +y +. +hd +(); + +23 i(! + g +) + +24  + gba +:: +wre +("[]"); + +26 + gba +:: +wre +("[\r\n"); + +27 + g_ág +++; + +28  + g + != 0) { + +29 +dt +(); + +30 + g +-> +da +()-> +ac +(* +this +); + +32 + g + = + +-> +xt +(); + +33 + gba +:: +wre +( + + ? ",\r\n" : "\r\n"); + +35 + g_ág +--; + +36 +dt +(); + +37 + gba +:: +wre +("]"); + +40  +visObje +(cڡ +CiDa + & +obje +) { + +41 +VSl + * + g + = +obje +. +hd +(); + +42 i(! + g +) + +43  + gba +:: +wre +("{}"); + +45 + gba +:: +wre +("{\r\n"); + +46 + g_ág +++; + +47  + g + != 0) { + +48 +dt +(); + +49 + gba +:: +visSg +( + +-> +key +()); + +50 + gba +:: +wre +(": "); + +51 + g +-> +da +()-> +ac +(* +this +); + +53 + g + = + +-> +xt +(); + +54 + gba +:: +wre +( + + ? ",\r\n" : "\r\n"); + +56 + g_ág +--; + +57 +dt +(); + +58 + gba +:: +wre +("}"); + +61 + give +: + +62  +dt +() { + +63  +ut8_t + +i + = 0; + gi + < + g_ág +; i++ + gba +:: +wre +( +ARDUINOJSON_TAB +); + +66 +ut8_t + + g_ág +; + +69 + gme + < +tyme + + gTSour +,ym + gTDei +> + +70 +size_t + +rlizeJsPy +(cڡ +TSour + & +sour +, +TDei + & +dei +) { + +71  + grlize +< + gPyJsSliz +>( + gsour +, + gdei +); + +74 + gme + < +tyme + + gTSour +> + +75 +size_t + +rlizeJsPy +(cڡ +TSour + & +sour +, * +bufr +, + +76 +size_t + +bufrSize +) { + +77  + grlize +< + gPyJsSliz +>( + gsour +, + gbufr +, + gbufrSize +); + +80 + gme + < +tyme + + gTSour +> + +81 +size_t + +msuJsPy +(cڡ +TSour + & +sour +) { + +82  + gmsu +< + gPyJsSliz +>( + gsour +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +16 +mea + + gARDUINOJSON_NAMESPACE + { + +18 + gme + < +tyme + + gTWr +> + +19 as + cTextFmr + { + +20 + gpublic +: + +21 +exic + +TextFmr +( +TWr + +wr +: +_wr +(wr), +_ngth +(0) {} + +24 +size_t + +bysWrn +() const { + +25  + g_ngth +; + +28  +wreBoޗn +( +bo + +vue +) { + +29 i( + gvue +) + +30 +wreRaw +("true"); + +32 +wreRaw +("false"); + +35  +wreSg +(cڡ * +vue +) { + +36 +ARDUINOJSON_ASSERT +( +vue + ! +NULL +); + +37 +wreRaw +('\"'); + +38 * + gvue + +wreCh +(* +vue +++); + +39 +wreRaw +('\"'); + +42  +wreCh +( +c +) { + +43  + geclCh + = +EsSequ +:: +esCh +( +c +); + +44 i( + geclCh +) { + +45 +wreRaw +('\\'); + +46 +wreRaw +( +eclCh +); + +48 +wreRaw +( +c +); + +52 + gme + < +tyme + + gT +> + +53  +wreFlt +( +T + +vue +) { + +54 i( +i +( +vue +)) + +55  +wreRaw +( +ARDUINOJSON_ENABLE_NAN + ? "NaN" : "null"); + +57 #i +ARDUINOJSON_ENABLE_INFINITY + + +58 i( + gvue + < 0.0) { + +59 +wreRaw +('-'); + +60 + gvue + = - +vue +; + +63 i( +isf +( +vue +)) + +64  +wreRaw +("Infinity"); + +66 i( +isf +( +vue +)) + +67  +wreRaw +("null"); + +69 i( + gvue + < 0.0) { + +70 +wreRaw +('-'); + +71 + gvue + = - +vue +; + +75 + gFltPts +< + gT +> +s +( +vue +); + +77 +wrePosiveIeg +( +s +. +gl +); + +78 i( + gs +. + gdecimPs +) + +79 +wreDecims +( +s +. +decim +,ts. +decimPs +); + +81 i( + gs +. + gexpڒt + < 0) { + +82 +wreRaw +("e-"); + +83 +wrePosiveIeg +(- +s +. +expڒt +); + +86 i( + gs +. + gexpڒt + > 0) { + +87 +wreRaw +('e'); + +88 +wrePosiveIeg +( +s +. +expڒt +); + +92  +wreNegiveIeg +( +UI + +vue +) { + +93 +wreRaw +('-'); + +94 +wrePosiveIeg +( +vue +); + +97 + gme + < +tyme + + gT +> + +98  +wrePosiveIeg +( +T + +vue +) { + +99  + gbufr +[22]; + +100 * + gd + = +bufr + + (buffer); + +101 * + gbeg + = +d +; + +105 *-- + gbeg + = ( +vue + % 10 + '0'); + +106 + gvue + = +T +( +vue + / 10); + +107 }  + gvue +); + +110 +wreRaw +( +beg +, +d +); + +113  +wreDecims +( +ut32_t + +vue +, +t8_t + +width +) { + +115  + gbufr +[16]; + +116 * + gd + = +bufr + + (buffer); + +117 * + gbeg + = +d +; + +120  + gwidth +--) { + +121 *-- + gbeg + = ( +vue + % 10 + '0'); + +122 + gvue + /= 10; + +124 *-- + gbeg + = '.'; + +127 +wreRaw +( +beg +, +d +); + +130  +wreRaw +(cڡ * +s +) { + +131 + g_ngth + + +_wr +. +wre +( +t_ +( +s +), + +(s)); + +134  +wreRaw +(cڡ * +s +, +size_t + +n +) { + +135 + g_ngth + + +_wr +. +wre +( +t_ +( +s +), +n +); + +138  +wreRaw +(cڡ * +beg +, cڡ * +d +) { + +139 + g_ngth + + +_wr +. +wre +( +t_ +( +beg +), + +140 +ic_ +< +size_t +>( +d + - +beg +)); + +143 + gme + < +size_t + + gN +> + +144  +wreRaw +(cڡ (& +s +)[ +N +]) { + +145 + g_ngth + + +_wr +. +wre +( +t_ +( +s +), +N + - 1); + +147  +wreRaw +( +c +) { + +148 + g_ngth + + +_wr +. +wre +( +ic_ +< +ut8_t +>( +c +)); + +151 + geed +: + +152 +TWr + +_wr +; + +153 +size_t + + g_ngth +; + +155 + give +: + +156 +TextFmr + & +ݔ +=(const TextFormatter &); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +14 #i +defed +( +__GNUC__ +) + +15 #i +__GNUC__ + >= 7 + +16 #agm +GCC + +dgnoic + +push + + +17 #agm +GCC + +dgnoic + +igned + "-Wmaybe-uninitialized" + +21 +mea + + gARDUINOJSON_NAMESPACE + { + +23 +mea + + gUtf16 + { + +24 +le + +bo + +isHighSuoge +( +ut16_t + +codeun +) { + +25  + gcodeun + >0xD800 && +codeun + < 0xDC00; + +28 +le + +bo + +isLowSuoge +( +ut16_t + +codeun +) { + +29  + gcodeun + >0xDC00 && +codeun + < 0xE000; + +32 as + cCodot + { + +33 + gpublic +: + +34 +bo + +nd +( +ut16_t + +codeun +) { + +35 i( +isHighSuoge +( +codeun +)) { + +36 +_highSuoge + = +codeun + & 0x3FF; + +37  + gl +; + +40 i( +isLowSuoge +( +codeun +)) { + +41 + g_codot + = + +42 +ut32_t +(0x10000 + (( +_highSuoge + << 10| ( +codeun + & 0x3FF))); + +43  + gue +; + +46 + g_codot + = +codeun +; + +47  + gue +; + +50 +ut32_t + +vue +() const { + +51  + g_codot +; + +54 + give +: + +55 +ut16_t + +_highSuoge +; + +56 +ut32_t + + g_codot +; + +61 #i +defed +( +__GNUC__ +) + +62 #i +__GNUC__ + >= 8 + +63 #agm +GCC + +dgnoic + +p + + + @lib_standalone/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 +mea + + gUtf8 + { + +12 + gme + < +tyme + + gTSgBud +> + +13 +le +  +codeCodot +( +ut32_t + +codot32 +, +TSgBud +& +r +) { + +17  + gbuf +[5]; + +18 * + gp + = +buf +; + +20 *( + gp +++) = 0; + +21 i( + gcodot32 + < 0x80) { + +22 *( + gp +++(( +codot32 +)); + +24 *( + gp +++(( +codot32 + | 0x80) & 0xBF); + +25 +ut16_t + + gcodot16 + = ut16_t( +codot32 + >> 6); + +26 i( + gcodot16 + < 0x20) { + +27 *( + gp +++( +codot16 + | 0xC0); + +29 *( + gp +++(( +codot16 + | 0x80) & 0xBF); + +30 + gcodot16 + = +ut16_t +( +codot16 + >> 6); + +31 i( + gcodot16 + < 0x10) { + +32 *( + gp +++( +codot16 + | 0xE0); + +34 *( + gp +++(( +codot16 + | 0x80) & 0xBF); + +35 + gcodot16 + = +ut16_t +( +codot16 + >> 6); + +36 *( + gp +++( +codot16 + | 0xF0); + +41 *(-- + gp +)) { + +42 + gr +. +nd +(* +p +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 +le + +bo + +isAligd +(* +r +) { + +14 cڡ +size_t + + gmask + = (*) - 1; + +15 +size_t + + gaddr + = +t_ +( +r +); + +16  ( + gaddr + & + gmask +) == 0; + +19 +le + +size_t + +addPaddg +(size_ +bys +) { + +20 cڡ +size_t + + gmask + = (*) - 1; + +21  ( + gbys + + + gmask +) & ~mask; + +24 + gme + < +tyme + + gT +> + +25 +le + +T + * +addPaddg +(T * +p +) { + +26 +size_t + + gaddss + = +addPaddg +( +t_ +( +p +)); + +27  + gt_ +< + gT + *>( + gaddss +); + +30 + gme + < +size_t + + gbys +> + +31  + sAddPaddg + { + +32 cڡ +size_t + + gmask + = (*) - 1; + +33 cڡ +size_t + + gvue + = ( +bys + + +mask +) & ~mask; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13  + ~ + +15 +mea + + gARDUINOJSON_NAMESPACE + { + +25 as + cMemyPo + { + +26 + gpublic +: + +27 +MemyPo +(* +buf +, +size_t + + +) + +28 : +_beg +( +buf +), + +29 +_ +( +buf +), + +30 +_right +( +buf + ? bu+ + + : 0), + +31 +_d +( +buf + ? bu+ + + : 0) { + +32 +ARDUINOJSON_ASSERT +( +isAligd +( +_beg +)); + +33 +ARDUINOJSON_ASSERT +( +isAligd +( +_right +)); + +34 +ARDUINOJSON_ASSERT +( +isAligd +( +_d +)); + +37 * +bufr +() { + +38  + g_beg +; + +42 +size_t + +cy +() const { + +43  +size_t +( +_d + - +_beg +); + +46 +size_t + +size +() const { + +47  +size_t +( +_ + - +_beg + + +_d + - +_right +); + +50 +VSl +* +locV +() { + +51  + glocRight +< + gVSl +>(); + +54 * +locFrozSg +( +size_t + +n +) { + +55 i(! +nAoc +( +n +)) + +57 * + gs + = +_ +; + +58 + g_ + + +n +; + +59 +checkInvs +(); + +60  + gs +; + +63 +SgSl + +locExndabSg +() { + +64 +SgSl + + gs +; + +65 + gs +. + gvue + = +_ +; + +66 + gs +. + gsize + = +size_t +( +_right + - +_ +); + +67 + g_ + = +_right +; + +68 +checkInvs +(); + +69  + gs +; + +72  +zeSg +( +SgSl +& +s +, +size_t + +wSize +) { + +73 + g_ + -( +s +. +size + - +wSize +); + +74 + gs +. + gsize + = +wSize +; + +75 +checkInvs +(); + +78  +aimLaSg +(cڡ * +s +) { + +79 + g_ + = +cڡ_ +<*>( +s +); + +82  +r +() { + +83 + g_ + = +_beg +; + +84 + g_right + = +_d +; + +87 +bo + +nAoc +( +size_t + +bys +) const { + +88  + g_ + + + gbys + < +_right +; + +91 +bo + +owns +(* +p +) const { + +92  + g_beg + < +p + && < +_d +; + +95 + gme + < +tyme + + gT +> + +96 +T +* +locRight +() { + +97  + gt_ +< + gT +*>( +locRight +(( +T +))); + +100 * +locRight +( +size_t + +bys +) { + +101 i(! +nAoc +( +bys +)) + +103 + g_right + - +bys +; + +104  + g_right +; + +108 * +ݔ + +w +( +size_t +, * +p +) { + +109  + gp +; + +123 +rdiff_t + +squash +() { + +124 * + gw_right + = +addPaddg +( +_ +); + +125 i( + gw_right + > +_right +) + +128 +size_t + + gright_size + = +ic_ +( +_d + - +_right +); + +129 +memmove +( +w_right +, +_right +, +right_size +); + +131 +rdiff_t + + gbys_aimed + = +_right + - +w_right +; + +132 + g_right + = +w_right +; + +133 + g_d + = +w_right + + +right_size +; + +134  + gbys_aimed +; + +139  +movePors +( +rdiff_t + +offt +) { + +140 + g_beg + + +offt +; + +141 + g_ + + +offt +; + +142 + g_right + + +offt +; + +143 + g_d + + +offt +; + +146 + give +: + +147 +SgSl +* +locSgSl +() { + +148  +locRight +< +SgSl +>(); + +151  +checkInvs +() { + +152 +ARDUINOJSON_ASSERT +( +_beg + < +_ +); + +153 +ARDUINOJSON_ASSERT +( +_ + < +_right +); + +154 +ARDUINOJSON_ASSERT +( +_right + < +_d +); + +155 +ARDUINOJSON_ASSERT +( +isAligd +( +_right +)); + +158 * + g_beg +, * + g_ +, * + g_right +, * + g_d +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 as + cSgBud + { + +12 + gpublic +: + +13 +exic + +SgBud +( +MemyPo +* + +: +_ +լt), +_size +(0) { + +14 + g_ + = +_ +-> +locExndabSg +(); + +17  +nd +(cڡ * +s +) { + +18 * + gs + +nd +(* +s +++); + +21  +nd +(cڡ * +s +, +size_t + +n +) { + +22  + gn +-- > 0 +nd +(* +s +++); + +25  +nd +( +c +) { + +26 i(! + g_ +. + gvue +) + +29 i( + g_size + > +_ +. +size +) { + +30 +_ +. +vue + = 0; + +34 + g_ +. + gvue +[ +_size +++] = +c +; + +37 * +come +() { + +38 +nd +('\0'); + +39 i( + g_ +. + gvue +) { + +40 + g_ +-> +zeSg +( +_ +, +_size +); + +42  + g_ +. + gvue +; + +45 + give +: + +46 +MemyPo +* +_ +; + +47 +size_t + + g_size +; + +48 +SgSl + + g_ +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Memory/StringSlot.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11  + #JSON_STRING_SIZE +( +SIZE +(SIZE) + + ) + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15  + sSgSl + { + +16 * + gvue +; + +17 +size_t + + gsize +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13 as + cSlizedVue + { + +14 + gpublic +: + +15 +exic + +SlizedVue +( +T + +r +: +_r +(str) {} + +16 +ݔ + +T +() const { + +17  +_r +; + +20 cڡ * +da +() const { + +21  + g_r +. +c_r +(); + +24 +size_t + +size +() const { + +26  + g_r +. +ngth +(); + +29 + give +: + +30 +T + +_r +; + +33 + gme + < +tyme + + gTCh +> + +34 +ass + + gSlizedVue +< + gTCh +*> { + +35 + gpublic +: + +36 +exic + +SlizedVue +( +TCh +* +p +, +size_t + +n +: +_da +), +_size +(n) {} + +37 +ݔ + + gTCh +*() const { + +38  + g_da +; + +41 +TCh +* +da +() const { + +42  + g_da +; + +45 +size_t + +size +() const { + +46  + g_size +; + +49 + give +: + +50 +TCh +* +_da +; + +51 +size_t + + g_size +; + +54 + gme + < +tyme + + gT +> + +55 +le + + gSlizedVue +< + gT +> + $rlized +( +T + +r +) { + +56  +SlizedVue +< +T +>( +r +); + +57 + } +} + +59 + gme + < +tyme + + gTCh +> + +60 +le + + gSlizedVue +< + gTCh +*> + $rlized +( +TCh +* +p +) { + +61  +SlizedVue +< +TCh +*>( +p +, + `adtSg +). + `size +()); + +62 + } +} + +64 + gme + < +tyme + + gTCh +> + +65 +le + + gSlizedVue +< + gTCh +*> + $rlized +( +TCh +* +p +, +size_t + +n +) { + +66  +SlizedVue +< +TCh +*>( +p +, +n +); + +67 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Misc/Visitable.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11  + sVisab + { + +16 + gme + < +tyme + + gT +> + +17  + gIsVisab + : +is_ba_of +< +Visab +, + gT +> {}; + +19 + gme + < +tyme + + gT +> + +20  + gIsVisab +< + gT +&> : +IsVisab +< +T +> {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +16 + gme + < +tyme + + gTRd +,ym + gTSgStage +> + +17 as + cMsgPackDerliz + { + +18  +tyme + + tmove_n +< + tTSgStage +>:: + tty +:: + tSgBud + + +19 + tSgBud +; + +21 + gpublic +: + +22 +MsgPackDerliz +( +MemyPo + & +po +, +TRd + +ad +, + +23 +TSgStage + +rgStage +) + +24 : +_po +(& +po +), +_ad +( +ad +), +_rgStage +( +rgStage +) {} + +26 +DerliziE + +r +( +VDa + & +v +, +AowAFr +, + +27 +NegLim + +ágLim +) { + +28  +r +( +v +, +ágLim +); + +31 +DerliziE + +r +( +VDa + & +v +, +NegLim + +ágLim +) { + +32 +ut8_t + + gcode +; + +33 i(! +adBy +( +code +)) + +34  + gDerliziE +:: +IncomeIut +; + +36 i(( + gcode + & 0x80) == 0) { + +37 +v +. +tUnsigdIeg +( +code +); + +38  + gDerliziE +:: +Ok +; + +41 i(( + gcode + & 0xe0) == 0xe0) { + +42 +v +. +tSigdIeg +( +ic_ +< +t8_t +>( +code +)); + +43  + gDerliziE +:: +Ok +; + +46 i(( + gcode + & 0xe0) == 0xa0) { + +47  +adSg +( +v +, +code + & 0x1f); + +50 i(( + gcode + & 0xf0) == 0x90) { + +51  +adAay +( +v +. +toAay +(), +code + & 0x0F, +ágLim +); + +54 i(( + gcode + & 0xf0) == 0x80) { + +55  +adObje +( +v +. +toObje +(), +code + & 0x0F, +ágLim +); + +58  + gcode +) { + +61  +DerliziE +:: +Ok +; + +64 +v +. +tBoޗn +( +l +); + +65  + gDerliziE +:: +Ok +; + +68 +v +. +tBoޗn +( +ue +); + +69  + gDerliziE +:: +Ok +; + +72  +adIeg +< +ut8_t +>( +v +); + +75  +adIeg +< +ut16_t +>( +v +); + +78  +adIeg +< +ut32_t +>( +v +); + +81 #i +ARDUINOJSON_USE_LONG_LONG + + +82  +adIeg +< +ut64_t +>( +v +); + +84  + gDerliziE +:: +NSu܋d +; + +88  +adIeg +< +t8_t +>( +v +); + +91  +adIeg +< +t16_t +>( +v +); + +94  +adIeg +< +t32_t +>( +v +); + +97 #i +ARDUINOJSON_USE_LONG_LONG + + +98  +adIeg +< +t64_t +>( +v +); + +100  + gDerliziE +:: +NSu܋d +; + +104  +adFlt +<>( +v +); + +107  +adDoub +<>( +v +); + +110  +adSg +< +ut8_t +>( +v +); + +113  +adSg +< +ut16_t +>( +v +); + +116  +adSg +< +ut32_t +>( +v +); + +119  +adAay +< +ut16_t +>( +v +. +toAay +(), + gágLim +); + +122  +adAay +< +ut32_t +>( +v +. +toAay +(), + gágLim +); + +125  +adObje +< +ut16_t +>( +v +. +toObje +(), + gágLim +); + +128  +adObje +< +ut32_t +>( +v +. +toObje +(), + gágLim +); + +131  +DerliziE +:: +NSu܋d +; + +135 + give +: + +137 +MsgPackDerliz + & +ݔ +=(const MsgPackDeserializer &); + +139 +bo + +adBy +( +ut8_t + & +vue +) { + +140  + gc + = +_ad +. +ad +(); + +141 i( + gc + < 0) + +142  + gl +; + +143 + gvue + = +ic_ +< +ut8_t +>( +c +); + +144  + gue +; + +147 +bo + +adBys +( +ut8_t + * +p +, +size_t + +n +) { + +148  + g_ad +. +adBys +( +t_ +<*>( +p +), +n +) ==; + +151 + gme + < +tyme + + gT +> + +152 +bo + +adBys +( +T + & +vue +) { + +153  +adBys +( +t_ +< +ut8_t + *>(& +vue +), (value)); + +156 + gme + < +tyme + + gT +> + +157 +T + +adIeg +() { + +158 +T + + gvue +; + +159 +adBys +( +vue +); + +160 +fixEndss +( +vue +); + +161  + gvue +; + +164 + gme + < +tyme + + gT +> + +165 +bo + +adIeg +( +T + & +vue +) { + +166 i(! +adBys +( +vue +)) + +167  + gl +; + +168 +fixEndss +( +vue +); + +169  + gue +; + +172 + gme + < +tyme + + gT +> + +173 +DerliziE + +adIeg +( +VDa + & +v +) { + +174 +T + + gvue +; + +175 i(! +adIeg +( +vue +)) + +176  + gDerliziE +:: +IncomeIut +; + +177 + gv +. +tIeg +( +vue +); + +178  + gDerliziE +:: +Ok +; + +181 + gme + < +tyme + + gT +> + +182 +tyme + + gab_if +<( + gT +=4, + gDerliziE +>:: +ty + +adFlt +( + +183 +VDa + & +v +) { + +184 +T + +vue +; + +185 i(! +adBys +( +vue +)) + +186  + gDerliziE +:: +IncomeIut +; + +187 +fixEndss +( +vue +); + +188 + gv +. +tFlt +( +vue +); + +189  + gDerliziE +:: +Ok +; + +192 + gme + < +tyme + + gT +> + +193 +tyme + + gab_if +<( + gT +=8, + gDerliziE +>:: +ty + +adDoub +( + +194 +VDa + & +v +) { + +195 +T + +vue +; + +196 i(! +adBys +( +vue +)) + +197  + gDerliziE +:: +IncomeIut +; + +198 +fixEndss +( +vue +); + +199 + gv +. +tFlt +( +vue +); + +200  + gDerliziE +:: +Ok +; + +203 + gme + < +tyme + + gT +> + +204 +tyme + + gab_if +<( + gT +=4, + gDerliziE +>:: +ty + +adDoub +( + +205 +VDa + & +v +) { + +206 +ut8_t + +i +[8]; + +207 +T + + gvue +; + +208 +ut8_t + * + go + = +t_ +(& +vue +); + +209 i(! +adBys +( +i +, 8)) + +210  + gDerliziE +:: +IncomeIut +; + +211 +doubToFlt +( +i +, +o +); + +212 +fixEndss +( +vue +); + +213 + gv +. +tFlt +( +vue +); + +214  + gDerliziE +:: +Ok +; + +217 + gme + < +tyme + + gT +> + +218 +DerliziE + +adSg +( +VDa + & +v +) { + +219 +T + + gsize +; + +220 i(! +adIeg +( +size +)) + +221  + gDerliziE +:: +IncomeIut +; + +222  +adSg +( +v +, +size +); + +225 + gme + < +tyme + + gT +> + +226 +DerliziE + +adSg +(cڡ *& +r +) { + +227 +T + + gsize +; + +228 i(! +adIeg +( +size +)) + +229  + gDerliziE +:: +IncomeIut +; + +230  +adSg +( +r +, +size +); + +233 +DerliziE + +adSg +( +VDa + & +v +, +size_t + +n +) { + +234 cڡ * + gs + = 0; + +235 +DerliziE + + gr + = +adSg +( +s +, +n +); + +236 i(! + gr +) + +237 + gv +. +tOwdSg +( +make_n_nu +( +s +)); + +238  + gr +; + +241 +DerliziE + +adSg +(cڡ *& +su +, +size_t + +n +) { + +242 +SgBud + + gbud + = +_rgStage +. +tSg +(); + +243 ; + gn +; --n) { + +244 +ut8_t + + gc +; + +245 i(! +adBys +( +c +)) + +246  + gDerliziE +:: +IncomeIut +; + +247 + gbud +. +nd +( +ic_ +<>( +c +)); + +249 + gsu + = +bud +. +come +(); + +250 i(! + gsu +) + +251  + gDerliziE +:: +NoMemy +; + +252  + gDerliziE +:: +Ok +; + +255 + gme + < +tyme + + gTSize +> + +256 +DerliziE + +adAay +( +CiDa + & +y +, + +257 +NegLim + +ágLim +) { + +258 +TSize + + gsize +; + +259 i(! +adIeg +( +size +)) + +260  + gDerliziE +:: +IncomeIut +; + +261  +adAay +( +y +, +size +, +ágLim +); + +264 +DerliziE + +adAay +( +CiDa + & +y +, +size_t + +n +, + +265 +NegLim + +ágLim +) { + +266 i( + gágLim +. +ached +()) + +267  + gDerliziE +:: +TooDp +; + +269 ; + gn +; --n) { + +270 +VDa + * + gvue + = +y +. +addEmt +( +_po +); + +271 i(! + gvue +) + +272  + gDerliziE +:: +NoMemy +; + +274 +DerliziE + + gr + = +r +(* +vue +, +ágLim +. +deemt +()); + +275 i( + gr +) + +276  + gr +; + +279  + gDerliziE +:: +Ok +; + +282 + gme + < +tyme + + gTSize +> + +283 +DerliziE + +adObje +( +CiDa + & +obje +, + +284 +NegLim + +ágLim +) { + +285 +TSize + + gsize +; + +286 i(! +adIeg +( +size +)) + +287  + gDerliziE +:: +IncomeIut +; + +288  +adObje +( +obje +, +size +, +ágLim +); + +291 +DerliziE + +adObje +( +CiDa + & +obje +, +size_t + +n +, + +292 +NegLim + +ágLim +) { + +293 i( + gágLim +. +ached +()) + +294  + gDerliziE +:: +TooDp +; + +296 ; + gn +; --n) { + +297 +VSl + * + g + = +obje +. +addSl +( +_po +); + +298 i(! + g +) + +299  + gDerliziE +:: +NoMemy +; + +301 cڡ * + gkey + = 0; + +302 +DerliziE + + gr + = +rKey +( +key +); + +303 i( + gr +) + +304  + gr +; + +305 + g +-> +tOwdKey +( +make_n_nu +( +key +)); + +307 + gr + = +r +(* + +-> +da +(), +ágLim +. +deemt +()); + +308 i( + gr +) + +309  + gr +; + +312  + gDerliziE +:: +Ok +; + +315 +DerliziE + +rKey +(cڡ *& +key +) { + +316 +ut8_t + + gcode +; + +317 i(! +adBy +( +code +)) + +318  + gDerliziE +:: +IncomeIut +; + +320 i(( + gcode + & 0xe0) == 0xa0) + +321  +adSg +( +key +, +code + & 0x1f); + +323  + gcode +) { + +325  +adSg +< +ut8_t +>( +key +); + +328  +adSg +< +ut16_t +>( +key +); + +331  +adSg +< +ut32_t +>( +key +); + +334  +DerliziE +:: +NSu܋d +; + +338 +MemyPo + * + g_po +; + +339 +TRd + + g_ad +; + +340 +TSgStage + + g_rgStage +; + +343 + gme + < +tyme + + gTIut +> + +344 +DerliziE + +derlizeMsgPack +( + +345 +JsDocumt + & +doc +, cڡ +TIut + & +put +, + +346 +NegLim + +ágLim + = + $NegLim +()) { + +347  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, + +348 + `AowAFr +()); + +349 + } +} + +351 + gme + < +tyme + + gTIut +> + +352 +DerliziE + +derlizeMsgPack +( + +353 +JsDocumt + & +doc +, +TIut + * +put +, + +354 +NegLim + +ágLim + = + $NegLim +()) { + +355  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, + +356 + `AowAFr +()); + +357 + } +} + +359 + gme + < +tyme + + gTIut +> + +360 +DerliziE + +derlizeMsgPack +( + +361 +JsDocumt + & +doc +, +TIut + * +put +, +size_t + +putSize +, + +362 +NegLim + +ágLim + = + $NegLim +()) { + +363  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +putSize +, +ágLim +, + +364 + `AowAFr +()); + +365 + } +} + +367 + gme + < +tyme + + gTIut +> + +368 +DerliziE + +derlizeMsgPack +( + +369 +JsDocumt + & +doc +, +TIut + & +put +, + +370 +NegLim + +ágLim + = + $NegLim +()) { + +371  +derlize +< +MsgPackDerliz +>( +doc +, +put +, +ágLim +, + +372 + `AowAFr +()); + +373 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +16 + gme + < +tyme + + gTWr +> + +17 as + cMsgPackSliz + { + +18 + gpublic +: + +19 +MsgPackSliz +( +TWr + +wr +: +_wr +(wr), +_bysWrn +(0) {} + +21 + gme + < +tyme + + gT +> + +22 +tyme + + gab_if +<( + gT +=4>:: +ty + +visFlt +( +T + +vue32 +) { + +23 +wreBy +(0xCA); + +24 +wreIeg +( +vue32 +); + +27 + gme + < +tyme + + gT +> + +28 +ARDUINOJSON_NO_SANITIZE +("float-cast-overflow") + +29 +tyme + + gab_if +<( + gT +=8>:: +ty + +visFlt +( +T + +vue64 +) { + +30  +vue32 + = ( +vue64 +); + +31 i( + gvue32 + = +vue64 +) { + +32 +wreBy +(0xCA); + +33 +wreIeg +( +vue32 +); + +35 +wreBy +(0xCB); + +36 +wreIeg +( +vue64 +); + +40  +visAay +(cڡ +CiDa +& +y +) { + +41 +size_t + + gn + = +y +. +size +(); + +42 i( + gn + < 0x10) { + +43 +wreBy +( +ut8_t +(0x90 + +y +. +size +())); + +44 } i( + gn + < 0x10000) { + +45 +wreBy +(0xDC); + +46 +wreIeg +( +ut16_t +( +n +)); + +48 +wreBy +(0xDD); + +49 +wreIeg +( +ut32_t +( +n +)); + +51  +VSl +* + g + = +y +. +hd +(); sl; sl = + +-> +xt +()) { + +52 + +-> +da +()-> +ac +(* +this +); + +56  +visObje +(cڡ +CiDa +& +obje +) { + +57 +size_t + + gn + = +obje +. +size +(); + +58 i( + gn + < 0x10) { + +59 +wreBy +( +ut8_t +(0x80 + +n +)); + +60 } i( + gn + < 0x10000) { + +61 +wreBy +(0xDE); + +62 +wreIeg +( +ut16_t +( +n +)); + +64 +wreBy +(0xDF); + +65 +wreIeg +( +ut32_t +( +n +)); + +67  +VSl +* + g + = +obje +. +hd +(); sl; sl = + +-> +xt +()) { + +68 +visSg +( + +-> +key +()); + +69 + g +-> +da +()-> +ac +(* +this +); + +73  +visSg +(cڡ * +vue +) { + +74 +ARDUINOJSON_ASSERT +( +vue + ! +NULL +); + +76 +size_t + + gn + = + +( +vue +); + +78 i( + gn + < 0x20) { + +79 +wreBy +( +ut8_t +(0xA0 + +n +)); + +80 } i( + gn + < 0x100) { + +81 +wreBy +(0xD9); + +82 +wreIeg +( +ut8_t +( +n +)); + +83 } i( + gn + < 0x10000) { + +84 +wreBy +(0xDA); + +85 +wreIeg +( +ut16_t +( +n +)); + +87 +wreBy +(0xDB); + +88 +wreIeg +( +ut32_t +( +n +)); + +90 +wreBys +( +t_ +( +vue +), +n +); + +93  +visRawJs +(cڡ * +da +, +size_t + +size +) { + +94 +wreBys +( +t_ +( +da +), +size +); + +97  +visNegiveIeg +( +UI + +vue +) { + +98 +UI + + gged + = UI(~ +vue + + 1); + +99 i( + gvue + <= 0x20) { + +100 +wreIeg +( +t8_t +( +ged +)); + +101 } i( + gvue + <= 0x80) { + +102 +wreBy +(0xD0); + +103 +wreIeg +( +t8_t +( +ged +)); + +104 } i( + gvue + <= 0x8000) { + +105 +wreBy +(0xD1); + +106 +wreIeg +( +t16_t +( +ged +)); + +107 } i( + gvue + <= 0x80000000) { + +108 +wreBy +(0xD2); + +109 +wreIeg +( +t32_t +( +ged +)); + +111 #i +ARDUINOJSON_USE_LONG_LONG + + +113 +wreBy +(0xD3); + +114 +wreIeg +( +t64_t +( +ged +)); + +119  +visPosiveIeg +( +UI + +vue +) { + +120 i( + gvue + <= 0x7F) { + +121 +wreIeg +( +ut8_t +( +vue +)); + +122 } i( + gvue + <= 0xFF) { + +123 +wreBy +(0xCC); + +124 +wreIeg +( +ut8_t +( +vue +)); + +125 } i( + gvue + <= 0xFFFF) { + +126 +wreBy +(0xCD); + +127 +wreIeg +( +ut16_t +( +vue +)); + +128 } i( + gvue + <= 0xFFFFFFFF) { + +129 +wreBy +(0xCE); + +130 +wreIeg +( +ut32_t +( +vue +)); + +132 #i +ARDUINOJSON_USE_LONG_LONG + + +134 +wreBy +(0xCF); + +135 +wreIeg +( +ut64_t +( +vue +)); + +140  +visBoޗn +( +bo + +vue +) { + +141 +wreBy +( +vue + ? 0xC3 : 0xC2); + +144  +visNu +() { + +145 +wreBy +(0xC0); + +148 +size_t + +bysWrn +() const { + +149  + g_bysWrn +; + +152 + give +: + +153  +wreBy +( +ut8_t + +c +) { + +154 +_bysWrn + + +_wr +. +wre +( +c +); + +157  +wreBys +(cڡ +ut8_t +* +p +, +size_t + +n +) { + +158 + g_bysWrn + + +_wr +. +wre +( +p +, +n +); + +161 + gme + < +tyme + + gT +> + +162  +wreIeg +( +T + +vue +) { + +163 +fixEndss +( +vue +); + +164 +wreBys +( +t_ +< +ut8_t +*>(& +vue +), (value)); + +167 +TWr + + g_wr +; + +168 +size_t + + g_bysWrn +; + +171 + gme + < +tyme + + gTSour +,ym + gTDei +> + +172 +le + +size_t + + $rlizeMsgPack +(cڡ +TSour +& +sour +, +TDei +& +ouut +) { + +173  +rlize +< +MsgPackSliz +>( +sour +, +ouut +); + +174 + } +} + +176 + gme + < +tyme + + gTSour +> + +177 +le + +size_t + + $rlizeMsgPack +(cڡ +TSour +& +sour +, * +ouut +, + +178 +size_t + +size +) { + +179  +rlize +< +MsgPackSliz +>( +sour +, +ouut +, +size +); + +180 + } +} + +182 + gme + < +tyme + + gTSour +> + +183 +le + +size_t + + $msuMsgPack +(cڡ +TSour +& +sour +) { + +184  +msu +< +MsgPackSliz +>( +sour +); + +185 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 #i +ARDUINOJSON_LITTLE_ENDIAN + + +13 +le +  +fixEndss +( +ut8_t + * +p +, +gl_cڡt +< +size_t +, 8>) { + +14 +sw +( +p +[0],[7]); + +15 +sw +( +p +[1],[6]); + +16 +sw +( +p +[2],[5]); + +17 +sw +( +p +[3],[4]); + +20 +le +  +fixEndss +( +ut8_t + * +p +, +gl_cڡt +< +size_t +, 4>) { + +21 +sw +( +p +[0],[3]); + +22 +sw +( +p +[1],[2]); + +25 +le +  +fixEndss +( +ut8_t + * +p +, +gl_cڡt +< +size_t +, 2>) { + +26 +sw +( +p +[0],[1]); + +29 +le +  +fixEndss +( +ut8_t + *, +gl_cڡt +< +size_t +, 1>) {} + +31 + gme + < +tyme + + gT +> + +32 +le +  +fixEndss +( +T + & +vue +) { + +33 +fixEndss +( +t_ +< +ut8_t + *>(& +vue +), + +34 +gl_cڡt +< +size_t +, ( +T +)>()); + +37 + gme + < +tyme + + gT +> + +38 +le +  +fixEndss +( +T + &) {} + + @lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 +le +  +doubToFlt +(cڡ +ut8_t + +d +[8], ut8_ +f +[4]) { + +12 + gf +[0] = +ut8_t +(( +d +[0] & 0xC0) | (d[0] << 3 & 0x3f) | (d[1] >> 5)); + +13 + gf +[1] = +ut8_t +(( +d +[1] << 3) | (d[2] >> 5)); + +14 + gf +[2] = +ut8_t +(( +d +[2] << 3) | (d[3] >> 5)); + +15 + gf +[3] = +ut8_t +(( +d +[3] << 3) | (d[4] >> 5)); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Namespace.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + #ARDUINOJSON_DO_CONCAT +( +A +, +B +A## + ) +B + +11  + #ARDUINOJSON_CONCAT2 +( +A +, +B + + `ARDUINOJSON_DO_CONCAT +(A, B) + + ) + +12  + #ARDUINOJSON_CONCAT4 +( +A +, +B +, +C +, +D +) \ + +13 + `ARDUINOJSON_CONCAT2 +(ARDUINOJSON_CONCAT2( +A +, +B +), ARDUINOJSON_CONCAT2( +C +, +D +)) + + ) + +14  + #ARDUINOJSON_CONCAT8 +( +A +, +B +, +C +, +D +, +E +, +F +, +G +, +H +) \ + +15 + `ARDUINOJSON_CONCAT2 +( + `ARDUINOJSON_CONCAT4 +( +A +, +B +, +C +, +D +), \ + +16 + `ARDUINOJSON_CONCAT4 +( +E +, +F +, +G +, +H +)) + + ) + +17  + #ARDUINOJSON_CONCAT12 +( +A +, +B +, +C +, +D +, +E +, +F +, +G +, +H +, +I +, +J +, +K +, +L +) \ + +18 + `ARDUINOJSON_CONCAT8 +( +A +, +B +, +C +, +D +, +E +, +F +, +G +, \ + +19 + `ARDUINOJSON_CONCAT4 +( +H +, +I +, +J +, + `ARDUINOJSON_CONCAT2 +( +K +, +L +))) + + ) + +21  + #ARDUINOJSON_NAMESPACE + \ + +22 + `ARDUINOJSON_CONCAT12 +( \ + +23 +ArduoJs +, +ARDUINOJSON_VERSION_MAJOR +, +ARDUINOJSON_VERSION_MINOR +, \ + +24 +ARDUINOJSON_VERSION_REVISION +, +_ +, +ARDUINOJSON_USE_LONG_LONG +, \ + +25 +ARDUINOJSON_USE_DOUBLE +, +ARDUINOJSON_DECODE_UNICODE +, \ + +26 +ARDUINOJSON_ENABLE_NAN +, +ARDUINOJSON_ENABLE_INFINITY +, \ + +27 +ARDUINOJSON_ENABLE_PROGMEM +, +ARDUINOJSON_ENABLE_COMMENTS +) + + ) + + @lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/Float.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 #i +ARDUINOJSON_USE_DOUBLE + + +13  + tFlt +; + +15  + tFlt +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gTFlt +> + +14  + sFltPts + { + +15 +ut32_t + + ggl +; + +16 +ut32_t + + gdecim +; + +17 +t16_t + + gexpڒt +; + +18 +t8_t + + gdecimPs +; + +20 +FltPts +( +TFlt + +vue +) { + +21 +ut32_t + + gmaxDecimPt + = ( +TFlt +) >= 8 ? 1000000000 : 1000000; + +22 + gdecimPs + = ( +TFlt +) >= 8 ? 9 : 6; + +24 + gexpڒt + = +nmize +( +vue +); + +26 + ggl + = +ut32_t +( +vue +); + +28  +ut32_t + + gtmp + = +gl +;mp >= 10;mp /= 10) { + +29 +maxDecimPt + /= 10; + +30 + gdecimPs +--; + +33 +TFlt + + gmad + = ( +vue + - TFlt( +gl +)* TFlt( +maxDecimPt +); + +35 + gdecim + = +ut32_t +( +mad +); + +36 + gmad + = +mad + - +TFlt +( +decim +); + +40 + gdecim + + +ut32_t +( +mad + * 2); + +41 i( + gdecim + > +maxDecimPt +) { + +42 +decim + = 0; + +43 + ggl +++; + +44 i( + gexpڒt + && + ggl + >= 10) { + +45 +expڒt +++; + +46 + ggl + = 1; + +51  + gdecim + % 10 =0 && +decimPs + > 0) { + +52 +decim + /= 10; + +53 + gdecimPs +--; + +57  +t16_t + +nmize +( +TFlt +& +vue +) { + +58  + gFltTs +< + tTFlt +> + tas +; + +59 +t16_t + + gpowsOf10 + = 0; + +61 +t8_t + + gdex + = ( +TFlt +) == 8 ? 8 : 5; + +62  + gb + = 1 << +dex +; + +64 i( + gvue + > +ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD +) { + +65 ; + gdex + >= 0; index--) { + +66 i( + gvue + > +as +:: +posiveByPowOfT +( +dex +)) { + +67 +vue + * +as +:: +giveByPowOfT +( +dex +); + +68 + gpowsOf10 + = +t16_t +( +powsOf10 + + +b +); + +70 + gb + >>= 1; + +74 i( + gvue + > 0 && vu< +ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD +) { + +75 ; + gdex + >= 0; index--) { + +76 i( + gvue + < + gas +:: +giveByPowOfTPlusO +( +dex +)) { + +77 +vue + * +as +:: +posiveByPowOfT +( +dex +); + +78 + gpowsOf10 + = +t16_t +( +powsOf10 + - +b +); + +80 + gb + >>= 1; + +84  + gpowsOf10 +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +16 + gme + < +tyme + + gT +, + gsize_t + = ( +T +)> + +17  + sFltTs + {}; + +19 + gme + < +tyme + + gT +> + +20  + gFltTs +< + gT +, 8 > { + +21  +ut64_t + + tmtis_ty +; + +22 cڡ  + gmtis_bs + = 52; + +23 cڡ +mtis_ty + + gmtis_max + = + +24 ( +mtis_ty +(1<< +mtis_bs +) - 1; + +26  +t16_t + + texpڒt_ty +; + +27 cڡ +expڒt_ty + + gexpڒt_max + = 308; + +29 + gme + < +tyme + + gTExpڒt +> + +30  +T + +make_t +(T +m +, +TExpڒt + +e +) { + +31 i( + ge + > 0) { + +32  +ut8_t + + gdex + = 0; + ge + != 0; index++) { + +33 i( + ge + & 1) + +34 + gm + * +posiveByPowOfT +( +dex +); + +35 + ge + >>= 1; + +38 + ge + = +TExpڒt +(- +e +); + +39  +ut8_t + + gdex + = 0; + ge + != 0; index++) { + +40 i( + ge + & 1) + +41 + gm + * +giveByPowOfT +( +dex +); + +42 + ge + >>= 1; + +45  + gm +; + +48  +T + +posiveByPowOfT +( +dex +) { + +49  +T + + gs +[] = { + +55 +fge +(0x4693B8B5, 0xB5056E17), + +56 +fge +(0x4D384F03, 0xE93FF9F5), + +57 +fge +(0x5A827748, 0xF9301D32), + +58 +fge +(0x75154FDD, 0x7F73BF3C) + +60  + gs +[ +dex +]; + +63  +T + +giveByPowOfT +( +dex +) { + +64  +T + + gs +[] = { + +65 +fge +(0x3FB99999, 0x9999999A), + +66 +fge +(0x3F847AE1, 0x47AE147B), + +67 +fge +(0x3F1A36E2, 0xEB1C432D), + +68 +fge +(0x3E45798E, 0xE2308C3A), + +69 +fge +(0x3C9CD2B2, 0x97D889BC), + +70 +fge +(0x3949F623, 0xD5A8A733), + +71 +fge +(0x32A50FFD, 0x44F4A73D), + +72 +fge +(0x255BBA08, 0xCF8C979D), + +73 +fge +(0x0AC80628, 0x64AC6F43) + +75  + gs +[ +dex +]; + +78  +T + +giveByPowOfTPlusO +( +dex +) { + +79  +T + + gs +[] = { + +81 +fge +(0x3FB99999, 0x9999999A), + +82 +fge +(0x3F50624D, 0xD2F1A9FC), + +83 +fge +(0x3E7AD7F2, 0x9ABCAF48), + +84 +fge +(0x3CD203AF, 0x9EE75616), + +85 +fge +(0x398039D6, 0x65896880), + +86 +fge +(0x32DA53FC, 0x9631D10D), + +87 +fge +(0x25915445, 0x81B7DEC2), + +88 +fge +(0x0AFE07B2, 0x7DD78B14) + +90  + gs +[ +dex +]; + +93  +T + +n +() { + +94  +fge +(0x7ff80000, 0x00000000); + +97  +T + +f +() { + +98  +fge +(0x7ff00000, 0x00000000); + +101  +T + +highe +() { + +102  +fge +(0x7FEFFFFF, 0xFFFFFFFF); + +105  +T + +lowe +() { + +106  +fge +(0xFFEFFFFF, 0xFFFFFFFF); + +112  +T + +fge +( +ut32_t + +msb +, ut32_ +lsb +) { + +113  + gs_ +< + gT +>(( +ut64_t +( +msb +<< 32| + glsb +); + +117 + gme + < +tyme + + gT +> + +118  + gFltTs +< + gT +, 4 > { + +119  +ut32_t + + tmtis_ty +; + +120 cڡ  + gmtis_bs + = 23; + +121 cڡ +mtis_ty + + gmtis_max + = + +122 ( +mtis_ty +(1<< +mtis_bs +) - 1; + +124  +t8_t + + texpڒt_ty +; + +125 cڡ +expڒt_ty + + gexpڒt_max + = 38; + +127 + gme + < +tyme + + gTExpڒt +> + +128  +T + +make_t +(T +m +, +TExpڒt + +e +) { + +129 i( + ge + > 0) { + +130  +ut8_t + + gdex + = 0; + ge + != 0; index++) { + +131 i( + ge + & 1) + +132 + gm + * +posiveByPowOfT +( +dex +); + +133 + ge + >>= 1; + +136 + ge + = - +e +; + +137  +ut8_t + + gdex + = 0; + ge + != 0; index++) { + +138 i( + ge + & 1) + +139 + gm + * +giveByPowOfT +( +dex +); + +140 + ge + >>= 1; + +143  + gm +; + +146  +T + +posiveByPowOfT +( +dex +) { + +147  +T + + gs +[] = {1e1f, 1e2f, 1e4f, 1e8f, 1e16f, 1e32f}; + +148  + gs +[ +dex +]; + +151  +T + +giveByPowOfT +( +dex +) { + +152  +T + + gs +[] = {1e-1f, 1e-2f, 1e-4f, 1e-8f, 1e-16f, 1e-32f}; + +153  + gs +[ +dex +]; + +156  +T + +giveByPowOfTPlusO +( +dex +) { + +157  +T + + gs +[] = {1e0f, 1e-1f, 1e-3f, 1e-7f, 1e-15f, 1e-31f}; + +158  + gs +[ +dex +]; + +161  +T + +fge +( +ut32_t + +bs +) { + +162  + gs_ +< + gT +>( + gbs +); + +165  +T + +n +() { + +166  +fge +(0x7fc00000); + +169  +T + +f +() { + +170  +fge +(0x7f800000); + +173  +T + +highe +() { + +174  +fge +(0x7f7fffff); + +177  +T + +lowe +() { + +178  +fge +(0xFf7fffff); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/Integer.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 #i +ARDUINOJSON_USE_LONG_LONG + + +15  +t64_t + + tIeg +; + +16  +ut64_t + + tUI +; + +18  + tIeg +; + +19  + tUI +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp + +5 #agm + + + +7 #i +defed +( +__g__ +) + +8 #agm +g + +dgnoic + +push + + +9 #agm +g + +dgnoic + +igned + "-Wconversion" + +10 #i +defed +( +__GNUC__ +) + +11 #i +__GNUC__ + > 4 || (__GNUC__ =4 && +__GNUC_MINOR__ + >= 6) + +12 #agm +GCC + +dgnoic + +push + + +14 #agm +GCC + +dgnoic + +igned + "-Wconversion" + +17  + ~ + +18  + ~ + +19  + ~ + +20  + ~ + +22 +mea + + gARDUINOJSON_NAMESPACE + { + +24 + gme + < +tyme + + gTOut +,ym + gTIn +> + +25 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && ( +TOut +<( +TIn +), + +26 + gbo +>:: +ty + + +27 +nStePosiveIeg +( +TIn + +vue +) { + +28  +vue + < +TIn +( +numic_lims +< +TOut +>:: +highe +()); + +31 + gme + < +tyme + + gTOut +,ym + gTIn +> + +32 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && ( +TIn +< ( +TOut +), + +33 + gbo +>:: +ty + + +34 +nStePosiveIeg +( +TIn +) { + +35  +ue +; + +38 + gme + < +tyme + + gTOut +,ym + gTIn +> + +39 +tyme + + gab_if +< + gis_tg_pot +< + gTOut +>:: +vue +, + gbo +>:: +ty + + +40 +nStePosiveIeg +( +TIn +) { + +41  +ue +; + +44 + gme + < +tyme + + gTOut +,ym + gTIn +> + +45 +tyme + + gab_if +< + gis_tg_pot +< + gTOut +>:: +vue +, + gbo +>:: +ty + + +46 +nSteNegiveIeg +( +TIn +) { + +47  +ue +; + +50 + gme + < +tyme + + gTOut +,ym + gTIn +> + +51 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && +is_sigd +< +TOut +>::value && + +52 ( +TOut +<( +TIn +), + +53 + gbo +>:: +ty + + +54 +nSteNegiveIeg +( +TIn + +vue +) { + +55  +vue + < +TIn +( +numic_lims +< +TOut +>:: +highe +()) + 1; + +58 + gme + < +tyme + + gTOut +,ym + gTIn +> + +59 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && +is_sigd +< +TOut +>::value && + +60 ( +TIn +< ( +TOut +), + +61 + gbo +>:: +ty + + +62 +nSteNegiveIeg +( +TIn +) { + +63  +ue +; + +66 + gme + < +tyme + + gTOut +,ym + gTIn +> + +67 +tyme + + gab_if +< + gis_gl +< + gTOut +>:: +vue + && +is_unsigd +< +TOut +>::value, + +68 + gbo +>:: +ty + + +69 +nSteNegiveIeg +( +TIn +) { + +70  +l +; + +73 + gme + < +tyme + + gTOut +,ym + gTIn +> + +74 +TOut + +cvtPosiveIeg +( +TIn + +vue +) { + +75  + gnStePosiveIeg +< + gTOut +>( + gvue +? +TOut +( +vue +) : 0; + +78 + gme + < +tyme + + gTOut +,ym + gTIn +> + +79 +TOut + +cvtNegiveIeg +( +TIn + +vue +) { + +80  + gnSteNegiveIeg +< + gTOut +>( + gvue +? +TOut +(~ +vue + + 1) : 0; + +83 + gme + < +tyme + + gTOut +,ym + gTIn +> + +84 +tyme + + gab_if +< + gis_tg_pot +< + gTOut +>:: +vue +, TOut>:: +ty + +cvtFlt +( + +85 +TIn + +vue +) { + +86  +TOut +( +vue +); + +89 + gme + < +tyme + + gTOut +,ym + gTIn +> + +90 +tyme + + gab_if +:: +vue +, TOut>:: +ty + +cvtFlt +( + +91 +TIn + +vue +) { + +92  +vue + > +numic_lims +< +TOut +>:: +lowe +() && + +93 +vue + < +numic_lims +< +TOut +>:: +highe +() + +94 ? +TOut +( +vue +) + +99 #i +defed +( +__g__ +) + +100 #agm +g + +dgnoic + +p + + +101 #i +defed +( +__GNUC__ +) + +102 #i +__GNUC__ + > 4 || (__GNUC__ =4 && +__GNUC_MINOR__ + >= 6) + +103 #agm +GCC + +dgnoic + +p + + + @lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseFloat.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13 +le + +T + +rFlt +(cڡ * +s +) { + +15  +tyme + + tchoo_rge +< + tFlt +, + tT +>:: + tty + + tTFlt +; + +16  + grNumb +< + gTFlt +, + gUI +>( + gs +). +me + + gas +< + gT +>(); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseInteger.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13 +T + +rIeg +(cڡ * +s +) { + +15  +tyme + + tchoo_rge +< + tUI +, + ttyme + + tmake_unsigd +< + tT +>:: + tty +>::type + +16 + tTUI +; + +17  + grNumb +< + gFlt +, + gTUI +>( + gs +). +me + + gas +< + gT +>(); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +15 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gme + < +tyme + + gTFlt +,ym + gTUI +> + +18  + sPdNumb + { + +19 +PdNumb +(: +utVue +(0), +tVue +(0), +_ty +( +VALUE_IS_NULL +) {} + +21 +PdNumb +( +TUI + +vue +, +bo + +is_give +) + +22 : +utVue +( +vue +), + +23 +tVue +( +TFlt +( +vue +)), + +24 +_ty +( +ut8_t +( +is_give + ? +VALUE_IS_NEGATIVE_INTEGER + + +25 : +VALUE_IS_POSITIVE_INTEGER +)) {} + +26 +PdNumb +( +TFlt + +vue +: +tVue +(vue), +_ty +( +VALUE_IS_FLOAT +) {} + +28 + gme + < +tyme + + gT +> + +29 +T + +as +() const { + +30  + g_ty +) { + +31  + gVALUE_IS_NEGATIVE_INTEGER +: + +32  +cvtNegiveIeg +< +T +>( +utVue +); + +33  + gVALUE_IS_POSITIVE_INTEGER +: + +34  +cvtPosiveIeg +< +T +>( +utVue +); + +35  + gVALUE_IS_FLOAT +: + +36  +cvtFlt +< +T +>( +tVue +); + +42 +ut8_t + +ty +() const { + +43  + g_ty +; + +46 +TUI + + gutVue +; + +47 +TFlt + + gtVue +; + +48 +ut8_t + + g_ty +; + +51 + gme + < +tyme + + gA +,ym + gB +> + +52  + gchoo_rge + : +cdiڮ +<(( +A +> ( +B +)), + gA +, + gB +> {}; + +54 + gme + < +tyme + + gTFlt +,ym + gTUI +> + +55 +le + + gPdNumb +< + gTFlt +, + gTUI +> +rNumb +(cڡ * +s +) { + +56  + gFltTs +< + tTFlt +> + tas +; + +57  +tyme + + tchoo_rge +< + ttyme + + tas +:: + tmtis_ty +, + tTUI +>:: + tty + + +58 + tmtis_t +; + +59  +tyme + + tas +:: + texpڒt_ty + + texpڒt_t +; + +60  + gPdNumb +< + tTFlt +, + tTUI +> + ttu_ty +; + +62 +ARDUINOJSON_ASSERT +( +s + != 0); + +64 +bo + + gis_give + = +l +; + +65 * + gs +) { + +67 +is_give + = +ue +; + +68 + gs +++; + +71 +s +++; + +75 #i +ARDUINOJSON_ENABLE_NAN + + +76 i(* + gs + ='n' || * +s + == 'N') + +77  +as +:: +n +(); + +80 #i +ARDUINOJSON_ENABLE_INFINITY + + +81 i(* + gs + ='i' || * +s + == 'I') + +82  +is_give + ? - +as +:: +f +() :raits::inf(); + +85 i(! +isdig +(* +s +&& * + gs + != '.') + +86  +tu_ty +(); + +88 +mtis_t + + gmtis + = 0; + +89 +expڒt_t + + gexpڒt_offt + = 0; + +90 cڡ +mtis_t + + gmaxUt + = +TUI +(-1); + +92  +isdig +(* +s +)) { + +93 +ut8_t + + gdig + = ut8_t(* +s + - '0'); + +94 i( + gmtis + > + gmaxUt + / 10) + +96 + gmtis + *= 10; + +97 i( + gmtis + > + gmaxUt + - + gdig +) + +99 + gmtis + + +dig +; + +100 + gs +++; + +103 i(* + gs + == '\0') + +104  +tu_ty +( +TUI +( +mtis +), +is_give +); + +107  + gmtis + > + gas +:: +mtis_max +) { + +108 +mtis + /= 10; + +109 + gexpڒt_offt +++; + +113  +isdig +(* +s +)) { + +114 + gexpڒt_offt +++; + +115 + gs +++; + +118 i(* + gs + == '.') { + +119 +s +++; + +120  +isdig +(* +s +)) { + +121 i( + gmtis + < + gas +:: +mtis_max + / 10) { + +122 +mtis + = mtis * 10 + +ut8_t +(* +s + - '0'); + +123 + gexpڒt_offt +--; + +125 + gs +++; + +129  + gexpڒt + = 0; + +130 i(* + gs + ='e' || * +s + == 'E') { + +131 +s +++; + +132 +bo + + ggive_expڒt + = +l +; + +133 i(* + gs + == '-') { + +134 +give_expڒt + = +ue +; + +135 + gs +++; + +136 } i(* + gs + == '+') { + +137 +s +++; + +140  +isdig +(* +s +)) { + +141 + gexpڒt + = +expڒt + * 10 + (* +s + - '0'); + +142 i( + gexpڒt + + + gexpڒt_offt + > + gas +:: +expڒt_max +) { + +143 i( +give_expڒt +) + +144  +is_give + ? -0.0f : 0.0f; + +146  + gis_give + ? - + gas +:: +f +(: +as +::inf(); + +148 + gs +++; + +150 i( + ggive_expڒt +) + +151 + gexpڒt + = - +expڒt +; + +153 + gexpڒt + + +expڒt_offt +; + +156 i(* + gs + != '\0') + +157  +tu_ty +(); + +159 +TFlt + + gsu + = +as +:: +make_t +( +ic_ +( +mtis +), +expڒt +); + +161  + gis_give + ? - + gsu + : +su +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 #ifde +_MSC_VER + + +12 #agm +wng +( +push +) + +13 #agm +wng +( +dib + : 4522) + +16 +mea + + gARDUINOJSON_NAMESPACE + { + +18 + gme + < +tyme + + gTObje +,ym + gTSgRef +> + +19 +ass + + gMembProxy + : +public + +VOts +< +MembProxy +< +TObje +, + gTSgRef +> >, + +20 +public + + gVisab + { + +21  + gMembProxy +< + tTObje +, + tTSgRef +> + tthis_ty +; + +23 + gpublic +: + +24 +FORCE_INLINE + +MembProxy +( +TObje + +v +, +TSgRef + +key +) + +25 : +_obje +( +v +), +_key +( +key +) {} + +27 +FORCE_INLINE + +MembProxy +(cڡ MembProxy & +c +) + +28 : +_obje +( +c +._obje), +_key +(src._key) {} + +30 +FORCE_INLINE + +ݔ + +VCڡRef +() const { + +31  +gUpamMemb +(); + +34 +FORCE_INLINE + + gthis_ty + & + gݔ +=(cڡ +this_ty + & +c +) { + +35 +gOrAddUpamMemb +(). +t +( +c +); + +36  * + gthis +; + +39 + gme + < +tyme + + gTVue +> + +40 +FORCE_INLINE + +tyme + + gab_if +:: +vue +, + gthis_ty + &>:: +ty + + +41 +ݔ +=(cڡ +TVue + & +c +) { + +42 +gOrAddUpamMemb +(). +t +( +c +); + +43  * + gthis +; + +49 + gme + < +tyme + + gTCh +> + +50 +FORCE_INLINE + + gthis_ty + & + gݔ +=( +TCh + * +c +) { + +51 +gOrAddUpamMemb +(). +t +( +c +); + +52  * + gthis +; + +55 +FORCE_INLINE + +bo + + gݔ +==( +VCڡRef + +rhs +) const { + +56  +ic_ +< +VCڡRef +>( +gUpamMemb +()= +rhs +; + +59 +FORCE_INLINE + +bo + + gݔ +!=( +VCڡRef + +rhs +) const { + +60  +ic_ +< +VCڡRef +>( +gUpamMemb +()! +rhs +; + +63 +FORCE_INLINE +  +r +() const { + +64 +gUpamMemb +(). +r +(); + +67 +FORCE_INLINE + +bo + +isNu +() const { + +68  +gUpamMemb +(). +isNu +(); + +71 + gme + < +tyme + + gTVue +> + +72 +FORCE_INLINE + +tyme + + gVAs +< + gTVue +>:: +ty + +as +() const { + +73  +gUpamMemb +(). +me + +as +< +TVue +>(); + +76 + gme + < +tyme + + gTVue +> + +77 +FORCE_INLINE + +bo + +is +() const { + +78  +gUpamMemb +(). +me + + gis +< + gTVue +>(); + +81 +FORCE_INLINE + +size_t + +size +() const { + +82  +gUpamMemb +(). +size +(); + +85 +FORCE_INLINE +  +move +( +size_t + +dex +) const { + +86 +gUpamMemb +(). +move +( +dex +); + +91 + gme + < +tyme + + gTCh +> + +92 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +>:: +ty + +move +( + +93 +TCh + * +key +) const { + +94 +gUpamMemb +(). +move +( +key +); + +98 + gme + < +tyme + + gTSg +> + +99 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +>:: +ty + +move +( + +100 cڡ +TSg + & +key +) const { + +101 +gUpamMemb +(). +move +( +key +); + +104 + gme + < +tyme + + gTVue +> + +105 +FORCE_INLINE + +tyme + + gVTo +< + gTVue +>:: +ty + +to +() { + +106  +gOrAddUpamMemb +(). +me + +to +< +TVue +>(); + +109 + gme + < +tyme + + gTVue +> + +110 +FORCE_INLINE + +bo + +t +(cڡ +TVue + & +vue +) { + +111  +gOrAddUpamMemb +(). +t +( +vue +); + +117 + gme + < +tyme + + gTCh +> + +118 +FORCE_INLINE + +bo + +t +( +TCh + * +vue +) { + +119  +gOrAddUpamMemb +(). +t +( +vue +); + +122 + gme + < +tyme + + gVis +> + +123  +ac +( +Vis + & +vis +) const { + +124  +gUpamMemb +(). +ac +( +vis +); + +127 +FORCE_INLINE + +VRef + +addEmt +() const { + +128  +gOrAddUpamMemb +(). +addEmt +(); + +131 +FORCE_INLINE + +VRef + +gEmt +( +size_t + +dex +) const { + +132  +gUpamMemb +(). +gEmt +( +dex +); + +135 +FORCE_INLINE + +VRef + +gOrAddEmt +( +size_t + +dex +) const { + +136  +gOrAddUpamMemb +(). +gOrAddEmt +( +dex +); + +142 + gme + < +tyme + + gTCh +> + +143 +FORCE_INLINE + +VRef + +gMemb +( +TCh + * +key +) const { + +144  +gUpamMemb +(). +gMemb +( +key +); + +149 + gme + < +tyme + + gTSg +> + +150 +FORCE_INLINE + +VRef + +gMemb +(cڡ +TSg + & +key +) const { + +151  +gUpamMemb +(). +gMemb +( +key +); + +157 + gme + < +tyme + + gTCh +> + +158 +FORCE_INLINE + +VRef + +gOrAddMemb +( +TCh + * +key +) const { + +159  +gOrAddUpamMemb +(). +gOrAddMemb +( +key +); + +164 + gme + < +tyme + + gTSg +> + +165 +FORCE_INLINE + +VRef + +gOrAddMemb +(cڡ +TSg + & +key +) const { + +166  +gOrAddUpamMemb +(). +gOrAddMemb +( +key +); + +169 + give +: + +170 +FORCE_INLINE + +VRef + +gUpamMemb +() const { + +171  +_obje +. +gMemb +( +_key +); + +174 +FORCE_INLINE + +VRef + +gOrAddUpamMemb +() const { + +175  + g_obje +. +gOrAddMemb +( +_key +); + +178 +TObje + + g_obje +; + +179 +TSgRef + + g_key +; + +184 #ifde +_MSC_VER + + +185 #agm +wng +( +p +) + + @lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectFunctions.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gVis +> + +12  +objeAc +(cڡ +CiDa + * +obj +, +Vis + & +vis +) { + +13 i( + gobj +) + +14 + gvis +. +visObje +(* +obj +); + +16 + gvis +. +visNu +(); + +19 +le + +bo + +objeEqus +(cڡ +CiDa + * +lhs +, cڡ CiD* +rhs +) { + +20 i( + glhs + = +rhs +) + +21  +ue +; + +22 i(! + glhs + || ! + grhs +) + +23  + gl +; + +24  + glhs +-> +equsObje +(* +rhs +); + +27 + gme + < +tyme + + gTAddSg +> + +28 +le + +VDa + * +objeGMemb +(cڡ +CiDa + * +obj +, + +29 +TAddSg + +key +) { + +30 i(! + gobj +) + +32  + gobj +-> +gMemb +( +key +); + +35 + gme + < +tyme + + gTAddSg +> + +36  +objeRemove +( +CiDa + * +obj +, +TAddSg + +key +) { + +37 i(! + gobj +) + +39 + gobj +-> +moveMemb +( +key +); + +42 + gme + < +tyme + + gTAddSg +> + +43 +le + +VDa + * +objeGOrAddMemb +( +CiDa + * +obj +, + +44 +TAddSg + +key +, +MemyPo + * +po +) { + +45 i(! + gobj +) + +48  + gobj +-> +gOrAddMemb +( +key +, +po +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTObje +> + +13 + gme + < +tyme + + gTSg +> + +14 +le + +AayRef + + gObjeShtcuts +< + gTObje +>:: +NeedAay +( + +15 cڡ +TSg +& +key +) const { + +16  +im +()-> +gOrAddMemb +( +key +). +me + +to +< +AayRef +>(); + +19 + gme + < +tyme + + gTObje +> + +20 + gme + < +tyme + + gTCh +> + +21 +le + +AayRef + + gObjeShtcuts +< + gTObje +>:: +NeedAay +( +TCh +* +key +) const { + +22  +im +()-> +gOrAddMemb +( +key +). +me + +to +< +AayRef +>(); + +25 + gme + < +tyme + + gTObje +> + +26 + gme + < +tyme + + gTSg +> + +27 +le + +ObjeRef + + gObjeShtcuts +< + gTObje +>:: +NeedObje +( + +28 cڡ +TSg +& +key +) const { + +29  +im +()-> +gOrAddMemb +( +key +). +me + +to +< +ObjeRef +>(); + +32 + gme + < +tyme + + gTObje +> + +33 + gme + < +tyme + + gTCh +> + +34 +le + +ObjeRef + + gObjeShtcuts +< + gTObje +>:: +NeedObje +( + +35 +TCh +* +key +) const { + +36  +im +()-> +gOrAddMemb +( +key +). +me + +to +< +ObjeRef +>(); + +39 + gme + < +tyme + + gTObje +> + +40 + gme + < +tyme + + gTSg +> + +41 +le + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gbo +>:: +ty + + +42 +ObjeShtcuts +< +TObje +>:: +cڏsKey +(cڡ +TSg +& +key +) const { + +43  ! +im +()-> +gMemb +( +key +). +isUndefed +(); + +46 + gme + < +tyme + + gTObje +> + +47 + gme + < +tyme + + gTCh +> + +48 +le + +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +, + gbo +>:: +ty + + +49 +ObjeShtcuts +< +TObje +>:: +cڏsKey +( +TCh +* +key +) const { + +50  ! +im +()-> +gMemb +( +key +). +isUndefed +(); + +53 + gme + < +tyme + + gTObje +> + +54 + gme + < +tyme + + gTSg +> + +55 +le + +tyme + + gab_if +< + gIsSg +< + gTSg +*>:: +vue +, + +56 + gMembProxy +< + gTObje +, + gTSg +*> >:: +ty + + +57 +ObjeShtcuts +< +TObje +>:: +ݔ +[]( +TSg +* +key +) const { + +58  +MembProxy +< +TObje +, + gTSg +*>(* +im +(), + gkey +); + +61 + gme + < +tyme + + gTObje +> + +62 + gme + < +tyme + + gTSg +> + +63 +le + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + +64 + gMembProxy +< + gTObje +, + gTSg +> >:: +ty + + +65 +ObjeShtcuts +< +TObje +>:: +ݔ +[](cڡ +TSg +& +key +) const { + +66  +MembProxy +< +TObje +, + gTSg +>(* +im +(), + gkey +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectIterator.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cPaP + { + +13 + gpublic +: + +14 +PaP +( +MemyPo + * +po +, +VSl + * + +: +_ +(pool, slot) {} + +16 cڡ +Pa + * + gݔ +->() const { + +17  & + g_ +; + +20 cڡ + gPa + & + gݔ +*() const { + +21  + g_ +; + +24 + give +: + +25 +Pa + +_ +; + +28 as + cObjeIt + { + +29 + gpublic +: + +30 +ObjeIt +(: +_ +(0) {} + +32 +exic + +ObjeIt +( +MemyPo + * +po +, +VSl + * + +) + +33 : +_po +( +po +), +_ +( + +) {} + +35 +Pa + + gݔ +*() const { + +36  +Pa +( +_po +, +_ +); + +38 +PaP + + gݔ +->() { + +39  +PaP +( +_po +, +_ +); + +42 +bo + + gݔ +==(cڡ +ObjeIt + & +h +) const { + +43  +_ + = +h +._slot; + +46 +bo + + gݔ +!=(cڡ +ObjeIt + & +h +) const { + +47  +_ + ! +h +._slot; + +50 + gObjeIt + & + gݔ +++() { + +51 + g_ + = +_ +-> +xt +(); + +52  * + gthis +; + +55 + gObjeIt + & + gݔ ++=( +size_t + +di +) { + +56 +_ + = _-> +xt +( +di +); + +57  * + gthis +; + +60 +VSl + * + +() { + +61  + g_ +; + +64 + give +: + +65 +MemyPo + * +_po +; + +66 +VSl + * + g_ +; + +69 as + cPaCڡP + { + +70 + gpublic +: + +71 +PaCڡP +(cڡ +VSl + * + +: +_ +(slot) {} + +73 cڡ +PaCڡ + * +ݔ +->() const { + +74  & +_ +; + +77 cڡ + gPaCڡ + & + gݔ +*() const { + +78  + g_ +; + +81 + give +: + +82 +PaCڡ + +_ +; + +85 as + cObjeCڡIt + { + +86 + gpublic +: + +87 +ObjeCڡIt +(: +_ +(0) {} + +89 +exic + +ObjeCڡIt +(cڡ +VSl + * + +: +_ +(slot) {} + +91 +PaCڡ + +ݔ +*() const { + +92  +PaCڡ +( +_ +); + +94 +PaCڡP + + gݔ +->() { + +95  +PaCڡP +( +_ +); + +98 +bo + + gݔ +==(cڡ +ObjeCڡIt + & +h +) const { + +99  +_ + = +h +._slot; + +102 +bo + + gݔ +!=(cڡ +ObjeCڡIt + & +h +) const { + +103  +_ + ! +h +._slot; + +106 + gObjeCڡIt + & + gݔ +++() { + +107 + g_ + = +_ +-> +xt +(); + +108  * + gthis +; + +111 + gObjeCڡIt + & + gݔ ++=( +size_t + +di +) { + +112 +_ + = _-> +xt +( +di +); + +113  * + gthis +; + +116 cڡ +VSl + * + +() { + +117  + g_ +; + +120 + give +: + +121 cڡ +VSl + * +_ +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectRef.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +12  + #JSON_OBJECT_SIZE +( +NUMBER_OF_ELEMENTS +) \ + +13 (( +NUMBER_OF_ELEMENTS +* ( +ARDUINOJSON_NAMESPACE +:: +VSl +)) + + ) + +15 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gme + < +tyme + + gTDa +> + +18 as + cObjeRefBa + { + +19 + gpublic +: + +20 +ݔ + +VCڡRef +() const { + +21 cڡ * +da + = +_da +; + +22  +VCڡRef +( +t_ +( +da +)); + +25 + gme + < +tyme + + gVis +> + +26 +FORCE_INLINE +  +ac +( +Vis +& +vis +) const { + +27 +objeAc +( +_da +, +vis +); + +30 +FORCE_INLINE + +bo + +isNu +() const { + +31  + g_da + == 0; + +34 +FORCE_INLINE + +ݔ + +bo +() const { + +35  + g_da + != 0; + +38 +FORCE_INLINE + +size_t + +memyUge +() const { + +39  + g_da + ? _da-> +memyUge +() : 0; + +42 +FORCE_INLINE + +size_t + +ág +() const { + +43  + g_da + ? _da-> +ág +() : 0; + +46 +FORCE_INLINE + +size_t + +size +() const { + +47  + g_da + ? _da-> +size +() : 0; + +50 + geed +: + +51 +ObjeRefBa +( +TDa +* +da +: +_da +(data) {} + +52 +TDa +* +_da +; + +55 +ass + + gObjeCڡRef + : +public + +ObjeRefBa +, + +56 +public + + gVisab + { + +57 +nd + +ass + + gObjeRef +; + +58  + gObjeRefBa + + tba_ty +; + +60 + gpublic +: + +61  +ObjeCڡIt + + t +; + +63 +ObjeCڡRef +(: +ba_ty +(0) {} + +64 +ObjeCڡRef +(cڡ +CiDa +* +da +: +ba_ty +(data) {} + +66 +FORCE_INLINE + + + +beg +() const { + +67 i(! +_da +) + +68  + +(); + +69  + +( +_da +-> +hd +()); + +72 +FORCE_INLINE + + + +d +() const { + +73  + +(); + +78 + gme + < +tyme + + gTSg +> + +79 +FORCE_INLINE + +bo + +cڏsKey +(cڡ +TSg +& +key +) const { + +80  ! +gMemb +( +key +). +isUndefed +(); + +86 + gme + < +tyme + + gTCh +> + +87 +FORCE_INLINE + +bo + +cڏsKey +( +TCh +* +key +) const { + +88  ! +gMemb +( +key +). +isUndefed +(); + +93 + gme + < +tyme + + gTSg +> + +94 +FORCE_INLINE + +VCڡRef + +gMemb +(cڡ +TSg +& +key +) const { + +95  +g_im +( +adtSg +( +key +)); + +101 + gme + < +tyme + + gTCh +> + +102 +FORCE_INLINE + +VCڡRef + +gMemb +( +TCh +* +key +) const { + +103  +g_im +( +adtSg +( +key +)); + +108 + gme + < +tyme + + gTSg +> + +109 +FORCE_INLINE + + +110 +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVCڡRef +>:: +ty + + +111 +ݔ +[](cڡ +TSg +& +key +) const { + +112  +g_im +( +adtSg +( +key +)); + +118 + gme + < +tyme + + gTCh +> + +119 +FORCE_INLINE + + +120 +tyme + + gab_if +< + gIsSg +< + gTCh +*>:: +vue +, + gVCڡRef +>:: +ty + + +121 +ݔ +[]( +TCh +* +key +) const { + +122  +g_im +( +adtSg +( +key +)); + +125 +FORCE_INLINE + +bo + + gݔ +==( +ObjeCڡRef + +rhs +) const { + +126  +objeEqus +( +_da +, +rhs +._data); + +129 + give +: + +130 +me + < +tyme + +TAddSg +> + +131 +FORCE_INLINE + +VCڡRef + +g_im +( +TAddSg + +key +) const { + +132  +VCڡRef +( +objeGMemb +( +_da +, +key +)); + +136 +ass + + gObjeRef + : +public + +ObjeRefBa +< +CiDa +>, + +137 +public + + gObjeShtcuts +< + gObjeRef +>, + +138 +public + + gVisab + { + +139  + gObjeRefBa +< + tCiDa +> + tba_ty +; + +141 + gpublic +: + +142  +ObjeIt + + t +; + +144 +FORCE_INLINE + +ObjeRef +(: +ba_ty +(0), +_po +(0) {} + +145 +FORCE_INLINE + +ObjeRef +( +MemyPo +* +buf +, +CiDa +* +da +) + +146 : +ba_ty +( +da +), +_po +( +buf +) {} + +148 +ݔ + +VRef +() const { + +149 * + gda + = +_da +; + +150  +VRef +( +_po +, +t_ +< +VDa +*>( +da +)); + +153 +ݔ + +ObjeCڡRef +() const { + +154  +ObjeCڡRef +( +_da +); + +157 +FORCE_INLINE + + + +beg +() const { + +158 i(! + g_da +) + +159  + +(); + +160  + +( +_po +, +_da +-> +hd +()); + +163 +FORCE_INLINE + + + +d +() const { + +164  + +(); + +167  +r +() const { + +168 i(! + g_da +) + +170 + g_da +-> +r +(); + +173 +FORCE_INLINE + +bo + +t +( +ObjeCڡRef + +c +) { + +174 i(! + g_da + || ! + gc +._data) + +175  + gl +; + +176  + g_da +-> +cyFrom +(* +c +. +_da +, +_po +); + +181 + gme + < +tyme + + gTSg +> + +182 +FORCE_INLINE + +VRef + +gMemb +(cڡ +TSg +& +key +) const { + +183  +VRef +( +_po +, +objeGMemb +( +_da +, +adtSg +( +key +))); + +189 + gme + < +tyme + + gTCh +> + +190 +FORCE_INLINE + +VRef + +gMemb +( +TCh +* +key +) const { + +191  +VRef +( +_po +, +objeGMemb +( +_da +, +adtSg +( +key +))); + +196 + gme + < +tyme + + gTSg +> + +197 +FORCE_INLINE + +VRef + +gOrAddMemb +(cڡ +TSg +& +key +) const { + +198  +VRef +( +_po +, + +199 +objeGOrAddMemb +( +_da +, +adtSg +( +key +), +_po +)); + +205 + gme + < +tyme + + gTCh +> + +206 +FORCE_INLINE + +VRef + +gOrAddMemb +( +TCh +* +key +) const { + +207  +VRef +( +_po +, + +208 +objeGOrAddMemb +( +_da +, +adtSg +( +key +), +_po +)); + +211 +FORCE_INLINE + +bo + + gݔ +==( +ObjeRef + +rhs +) const { + +212  +objeEqus +( +_da +, +rhs +._data); + +215 +FORCE_INLINE +  +move +( + + + +) const { + +216 i(! + g_da +) + +218 + g_da +-> +moveSl +( + +. + +()); + +223 + gme + < +tyme + + gTSg +> + +224 +FORCE_INLINE +  +move +(cڡ +TSg +& +key +) const { + +225 +objeRemove +( +_da +, +adtSg +( +key +)); + +231 + gme + < +tyme + + gTCh +> + +232 +FORCE_INLINE +  +move +( +TCh +* +key +) const { + +233 +objeRemove +( +_da +, +adtSg +( +key +)); + +236 + give +: + +237 +MemyPo +* +_po +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectShortcuts.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTPt +,ym + gTSgRef +> + +13 +ass + + gMembProxy +; + +15 + gme + < +tyme + + gTObje +> + +16 as + cObjeShtcuts + { + +17 + gpublic +: + +20 +me + < +tyme + +TSg +> + +21 +FORCE_INLINE + +tyme + +ab_if +< +IsSg +< +TSg +>:: +vue +, + gbo +>:: +ty + + +22 +cڏsKey +(cڡ +TSg + & +key +) const; + +27 + gme + < +tyme + + gTCh +> + +28 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +, + gbo +>:: +ty + + +29 +cڏsKey +( +TCh + * +key +) const; + +33 + gme + < +tyme + + gTSg +> + +34 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + +35 + gMembProxy +< + gTObje +, + gTSg +> >:: +ty + + +36 +ݔ +[](cڡ +TSg + & +key +) const; + +41 + gme + < +tyme + + gTCh +> + +42 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +, + +43 + gMembProxy +< + gTObje +, + gTCh + *> >:: +ty + + +44 +ݔ +[]( +TCh + * +key +) const; + +48 + gme + < +tyme + + gTSg +> + +49 +FORCE_INLINE + +AayRef + +NeedAay +(cڡ +TSg + & +key +) const; + +54 + gme + < +tyme + + gTCh +> + +55 +FORCE_INLINE + +AayRef + +NeedAay +( +TCh + * +key +) const; + +59 + gme + < +tyme + + gTSg +> + +60 +ObjeRef + +NeedObje +(cڡ +TSg + & +key +) const; + +65 + gme + < +tyme + + gTCh +> + +66 +ObjeRef + +NeedObje +( +TCh + * +key +) const; + +68 + give +: + +69 cڡ +TObje + * +im +() const { + +70  +ic_ +( +this +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Object/Pair.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cPa + { + +13 + gpublic +: + +14 +Pa +( +MemyPo +* +po +, +VSl +* + +) { + +15 i( + g +) { + +16 + g_key + = +Sg +( + +-> +key +(), !-> +ownsKey +()); + +17 + g_vue + = +VRef +( +po +, + +-> +da +()); + +21 +Sg + +key +() const { + +22  + g_key +; + +25 +VRef + +vue +() const { + +26  + g_vue +; + +29 + give +: + +30 +Sg + +_key +; + +31 +VRef + + g_vue +; + +34 as + cPaCڡ + { + +35 + gpublic +: + +36 +PaCڡ +(cڡ +VSl +* + +) { + +37 i( + +) { + +38 +_key + = +Sg +( + +-> +key +(), !-> +ownsKey +()); + +39 + g_vue + = +VCڡRef +( + +-> +da +()); + +43 +Sg + +key +() const { + +44  + g_key +; + +47 +VCڡRef + +vue +() const { + +48  + g_vue +; + +51 + give +: + +52 +Sg + +_key +; + +53 +VCڡRef + + g_vue +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantCasts.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTIm +> + +12 as + cVCas + { + +13 + gpublic +: + +14 +me + < +tyme + +T +> + +15 +FORCE_INLINE + +ݔ + +T +() const { + +16  +im +()-> +me + +as +< +T +>(); + +19 + give +: + +20 cڡ +TIm + * +im +() const { + +21  +ic_ +( +this +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantComparisons.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +,ym + gEb + = > + +12  +Comr +; + +14 + gme + < +tyme + + gT +> + +15  + gComr +< + gT +, +tyme + + gab_if +< + gIsSg +:: +vue +>:: +ty +> { + +16 +T + +rhs +; + +17  + gsu +; + +19 +exic + +Comr +( +T + +vue +: +rhs +(vue), +su +(1) {} + +21  +visAay +(cڡ +CiDa + &) {} + +22  +visObje +(cڡ +CiDa + &) {} + +23  +visFlt +( +Flt +) {} + +24  +visSg +(cڡ * +lhs +) { + +25 + gsu + = - +adtSg +( +rhs +). +com +( +lhs +); + +27  +visRawJs +(cڡ *, +size_t +) {} + +28  +visNegiveIeg +( +UI +) {} + +29  +visPosiveIeg +( +UI +) {} + +30  +visBoޗn +( +bo +) {} + +31  +visNu +() { + +32 + gsu + = +adtSg +( +rhs +). +com +( +NULL +); + +36 + gme + < +tyme + + gT +> + +37 +tyme + + gab_if +< + gis_sigd +< + gT +>:: +vue +, >:: +ty + +sign +(cڡ +T + &value) { + +38  +vue + < 0 ? -1 : value > 0 ? 1 : 0; + +41 + gme + < +tyme + + gT +> + +42 +tyme + + gab_if +< + gis_unsigd +< + gT +>:: +vue +, >:: +ty + +sign +(cڡ +T + &value) { + +43  +vue + > 0 ? 1 : 0; + +46 + gme + < +tyme + + gT +> + +47  + gComr +< + gT +, +tyme + + gab_if +< + gis_gl +:: +vue + || + +48 +is_tg_pot +< +T +>:: +vue +>:: +ty +> { + +49 +T + +rhs +; + +50  + gsu +; + +52 +exic + +Comr +( +T + +vue +: +rhs +(vue), +su +(1) {} + +54  +visAay +(cڡ +CiDa + &) {} + +55  +visObje +(cڡ +CiDa + &) {} + +56  +visFlt +( +Flt + +lhs +) { + +57 + gsu + = +sign +( +lhs + - +ic_ +< +Flt +>( +rhs +)); + +59  +visSg +(const *) {} + +60  +visRawJs +(cڡ *, +size_t +) {} + +61  +visNegiveIeg +( +UI + +lhs +) { + +62 + gsu + = - +sign +( +ic_ +< +T +>( +lhs ++ +rhs +); + +64  +visPosiveIeg +( +UI + +lhs +) { + +65 + gsu + = +ic_ +< +T +>( +lhs +< +rhs + ? -1 : static_cast(lhs) >hs ? 1 : 0; + +67  +visBoޗn +( +bo +) {} + +68  +visNu +() {} + +71 + gme + <> + +72  + gComr +< + gbo +, > { + +73 +bo + + grhs +; + +74  + gsu +; + +76 +exic + +Comr +( +bo + +vue +: +rhs +(vue), +su +(1) {} + +78  +visAay +(cڡ +CiDa + &) {} + +79  +visObje +(cڡ +CiDa + &) {} + +80  +visFlt +( +Flt +) {} + +81  +visSg +(const *) {} + +82  +visRawJs +(cڡ *, +size_t +) {} + +83  +visNegiveIeg +( +UI +) {} + +84  +visPosiveIeg +( +UI +) {} + +85  +visBoޗn +( +bo + +lhs +) { + +86 + gsu + = +ic_ +<>( +lhs + - +rhs +); + +88  +visNu +() {} + +91 #i +ARDUINOJSON_HAS_NULLPTR + + +92 + gme + <> + +93  + gComr +< +dety +( +nuαr +), > { + +94  + gsu +; + +96 +exic + +Comr +( +dety +( +nuαr +): +su +(1) {} + +98  +visAay +(cڡ +CiDa + &) {} + +99  +visObje +(cڡ +CiDa + &) {} + +100  +visFlt +( +Flt +) {} + +101  +visSg +(const *) {} + +102  +visRawJs +(cڡ *, +size_t +) {} + +103  +visNegiveIeg +( +UI +) {} + +104  +visPosiveIeg +( +UI +) {} + +105  +visBoޗn +( +bo +) {} + +106  +visNu +() { + +107 + gsu + = 0; + +112 + gme + < +tyme + + gTV +> + +113 as + cVComriss + { + +114 + give +: + +115 +me + < +tyme + +T +> + +116  +com +( +TV + +lhs +, cڡ +T + & +rhs +) { + +117 + gComr +< + gT +> +comr +( +rhs +); + +118 + glhs +. +ac +( +comr +); + +119  + gcomr +. + gsu +; + +122 + gpublic +: + +124 +me + < +tyme + +T +> + +125 +nd + +bo + +ݔ +==( +T + * +lhs +, +TV + + grhs +) { + +126  +com +( +rhs +, +lhs +) == 0; + +128 + gme + < +tyme + + gT +> + +129 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +==( + +130 cڡ +T + & +lhs +, +TV + + grhs +) { + +131  +com +( +rhs +, +lhs +) == 0; + +135 + gme + < +tyme + + gT +> + +136 +nd + +bo + + gݔ +==( +TV + +lhs +, +T + * + grhs +) { + +137  +com +( +lhs +, +rhs +) == 0; + +139 + gme + < +tyme + + gT +> + +140 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +==( + +141 +TV + +lhs +, cڡ + gT + & + grhs +) { + +142  +com +( +lhs +, +rhs +) == 0; + +146 + gme + < +tyme + + gT +> + +147 +nd + +bo + + gݔ +!=( +T + * +lhs +, +TV + + grhs +) { + +148  +com +( +rhs +, +lhs +) != 0; + +150 + gme + < +tyme + + gT +> + +151 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +!=( + +152 cڡ +T + & +lhs +, +TV + + grhs +) { + +153  +com +( +rhs +, +lhs +) != 0; + +157 + gme + < +tyme + + gT +> + +158 +nd + +bo + + gݔ +!=( +TV + +lhs +, +T + * + grhs +) { + +159  +com +( +lhs +, +rhs +) != 0; + +161 + gme + < +tyme + + gT +> + +162 +nd + +tyme + + gab_if +:: +vue +, + gbo +>:: +ty + +ݔ +!=( + +163 +TV + +lhs +, cڡ + gT + & + grhs +) { + +164  +com +( +lhs +, +rhs +) != 0; + +168 + gme + < +tyme + + gT +> + +169 +nd + +bo + + gݔ +<( +T + * + glhs +, +TV + + grhs +) { + +170  +com +( +rhs +, +lhs +) > 0; + +172 + gme + < +tyme + + gT +> + +173 +nd + +bo + + gݔ +<(cڡ + gT + & + glhs +, +TV + + grhs +) { + +174  +com +( +rhs +, +lhs +) > 0; + +178 + gme + < +tyme + + gT +> + +179 +nd + +bo + + gݔ +<( +TV + + glhs +, +T + * + grhs +) { + +180  +com +( +lhs +, +rhs +) < 0; + +182 + gme + < +tyme + + gT +> + +183 +nd + +bo + + gݔ +<( +TV + + glhs +, cڡ + gT + & + grhs +) { + +184  +com +( +lhs +, +rhs +) < 0; + +188 + gme + < +tyme + + gT +> + +189 +nd + +bo + + gݔ +<=( +T + * +lhs +, +TV + + grhs +) { + +190  +com +( +rhs +, +lhs +) >= 0; + +192 + gme + < +tyme + + gT +> + +193 +nd + +bo + + gݔ +<=(cڡ +T + & +lhs +, +TV + + grhs +) { + +194  +com +( +rhs +, +lhs +) >= 0; + +198 + gme + < +tyme + + gT +> + +199 +nd + +bo + + gݔ +<=( +TV + +lhs +, +T + * + grhs +) { + +200  +com +( +lhs +, +rhs +) <= 0; + +202 + gme + < +tyme + + gT +> + +203 +nd + +bo + + gݔ +<=( +TV + +lhs +, cڡ + gT + & + grhs +) { + +204  +com +( +lhs +, +rhs +) <= 0; + +208 + gme + < +tyme + + gT +> + +209 +nd + +bo + + gݔ +>( +T + * + glhs +, +TV + + grhs +) { + +210  +com +( +rhs +, +lhs +) < 0; + +212 + gme + < +tyme + + gT +> + +213 +nd + +bo + + gݔ +>(cڡ + gT + & + glhs +, +TV + + grhs +) { + +214  +com +( +rhs +, +lhs +) < 0; + +218 + gme + < +tyme + + gT +> + +219 +nd + +bo + + gݔ +>( +TV + + glhs +, +T + * + grhs +) { + +220  +com +( +lhs +, +rhs +) > 0; + +222 + gme + < +tyme + + gT +> + +223 +nd + +bo + + gݔ +>( +TV + + glhs +, cڡ + gT + & + grhs +) { + +224  +com +( +lhs +, +rhs +) > 0; + +228 + gme + < +tyme + + gT +> + +229 +nd + +bo + + gݔ +>=( +T + * +lhs +, +TV + + grhs +) { + +230  +com +( +rhs +, +lhs +) <= 0; + +232 + gme + < +tyme + + gT +> + +233 +nd + +bo + + gݔ +>=(cڡ +T + & +lhs +, +TV + + grhs +) { + +234  +com +( +rhs +, +lhs +) <= 0; + +238 + gme + < +tyme + + gT +> + +239 +nd + +bo + + gݔ +>=( +TV + +lhs +, +T + * + grhs +) { + +240  +com +( +lhs +, +rhs +) >= 0; + +242 + gme + < +tyme + + gT +> + +243 +nd + +bo + + gݔ +>=( +TV + +lhs +, cڡ + gT + & + grhs +) { + +244  +com +( +lhs +, +rhs +) >= 0; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantOperators.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +tyme + + gTIm +> + +15 +ass + + gVOts + : +public + +VCas +< +TIm +>, + +16 +public + + gVComriss +< + gTIm +>, + +17 +public + + gVOr +< + gTIm +>, + +18 +public + + gVShtcuts +< + gTIm +> {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantOr.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gTIm +> + +14 as + cVOr + { + +15 + gpublic +: + +17 +me + < +tyme + +T +> + +18 +T + +ݔ +|(cڡ T & +deuVue +) const { + +19 i( +im +()-> +me + +is +< +T +>()) + +20  +im +()-> +me + +as +< +T +>(); + +22  + gdeuVue +; + +27 cڡ * + gݔ +|(cڡ * + gdeuVue +) const { + +28 cڡ * + gvue + = +im +()-> +me + +as +(); + +29  + gvue + ? vu: +deuVue +; + +32 + give +: + +33 cڡ +TIm + * +im +() const { + +34  +ic_ +( +this +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantShortcuts.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTV +> + +13 +ass + + gVShtcuts + : +public + +ObjeShtcuts +< +TV +>, + +14 +public + + gAayShtcuts +< + gTV +> { + +15 + gpublic +: + +16 +usg + +AayShtcuts +< +TV +>:: +NeedAay +; + +17 +usg + + gAayShtcuts +< + gTV +>:: +NeedObje +; + +18 +usg + + gAayShtcuts +< + gTV +>:: +ݔ +[]; + +19 +usg + + gObjeShtcuts +< + gTV +>:: +NeedAay +; + +20 +usg + + gObjeShtcuts +< + gTV +>:: +NeedObje +; + +21 +usg + + gObjeShtcuts +< + gTV +>:: +ݔ +[]; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~"mh.h +" + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 + gme + < +tyme + + gT +,ym + gF +> + +16  + ss__t + { + +18 +F + + gw +; + +19 +T + + gda +; + +23 + gme + < +tyme + + gT +,ym + gF +> + +24 +T + +s_ +( +F + +w_da +) { + +25 + gs__t +< + gT +, + gF +> + gac +; + +26 + gac +. + gw + = +w_da +; + +27  + gac +. + gda +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp + +5 #agm + + + +7  + ~ + +9 #i +ARDUINOJSON_DEBUG + + +10  + ~ + +11  + #ARDUINOJSON_ASSERT +( +X + + `as +(X) + + ) + +13  + #ARDUINOJSON_ASSERT +( +X +(()0) + + ) + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp + +5 #agm + + + +7 #ifde +_MSC_VER + + +9  + #FORCE_INLINE + + +10  + #NO_INLINE + + `__deec +( +nole +) + + ) + +11  + #DEPRECATED +( +msg + + `__deec +( + `dd +(msg)) + + ) + +13 #i +defed +( +__GNUC__ +) + +15  + #FORCE_INLINE + + `__ibu__ +(( +ways_le +)) + + ) + +16  + #NO_INLINE + + `__ibu__ +(( +nole +)) + + ) + +17 #i +__GNUC__ + > 4 || (__GNUC__ =4 && +__GNUC_MINOR__ + >= 5) + +18  + #DEPRECATED +( +msg + + `__ibu__ +(( + `dd +(msg))) + + ) + +20  + #DEPRECATED +( +msg + + `__ibu__ +(( +dd +)) + + ) + +25  + #FORCE_INLINE + + + ) + +26  + #NO_INLINE + + + ) + +27  + #DEPRECATED +( +msg +) + + ) + +31 #i +__lulus + >= 201103L + +32  + #NOEXCEPT + +nx + + + ) + +34  + #NOEXCEPT + + `throw +() + + ) + +37 #i +defed +( +__has_ibu +) + +38 #i +__has_ibu +( +no_nize +) + +39  + #ARDUINOJSON_NO_SANITIZE +( +check + + `__ibu__ +(( + `no_nize +(check))) + + ) + +41  + #ARDUINOJSON_NO_SANITIZE +( +check +) + + ) + +44  + #ARDUINOJSON_NO_SANITIZE +( +check +) + + ) + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 +le + +bo + +isdig +( +c +) { + +12  '0' < +c + && c <= '9'; + +15 +le + +bo + +issign +( +c +) { + +16  '-' = +c + || c == '+'; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/gsl/not_null.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13 as + cn_nu + { + +14 + gpublic +: + +15 +exic + +n_nu +( +T + +r +: +_r +(ptr) { + +16 +ARDUINOJSON_ASSERT +( +r + ! +NULL +); + +19 +T + +g +() const { + +20 +ARDUINOJSON_ASSERT +( +_r + ! +NULL +); + +21  + g_r +; + +24 + give +: + +25 +T + +_r +; + +28 + gme + < +tyme + + gT +> + +29 + gn_nu +< + gT +> + $make_n_nu +( +T + +r +) { + +30 + `ARDUINOJSON_ASSERT +( +r + ! +NULL +); + +31  +n_nu +< +T +>( +r +); + +32 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp + +5 #agm + + + +7  + ~"ty_as.h +" + +9 #ifde +_MSC_VER + + +10 #agm +wng +( +push +) + +11 #agm +wng +( +dib + : 4310) + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gme + < +tyme + + gT +,ym + gEb + = > + +18  +numic_lims +; + +20 + gme + < +tyme + + gT +> + +21  + gnumic_lims +< + gT +, +tyme + + gab_if +< + gis_unsigd +:: +vue +>:: +ty +> { + +22  +T + +lowe +() { + +25  +T + +highe +() { + +26  +T +(-1); + +30 + gme + < +tyme + + gT +> + +31  + gnumic_lims +< + +32 + gT +, +tyme + + gab_if +< + gis_gl +:: +vue + && +is_sigd +< +T +>::vue>:: +ty +> { + +33  +T + +lowe +() { + +34  +T +(T(1) << ((T) * 8 - 1)); + +36  +T + +highe +() { + +37  +T +(~ +lowe +()); + +43 #ifde +_MSC_VER + + +44 #agm +wng +( +p +) + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +14 #ide +i + + +15 + gme + < +tyme + + gT +> + +16 +bo + +i +( +T + +x +) { + +17  + gx + ! +x +; + +21 #ide +isf + + +22 + gme + < +tyme + + gT +> + +23 +bo + +isf +( +T + +x +) { + +24  + gx + !0.0 && +x + * 2 == x; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +size_t + + gX +, size_ + gY +, +bo + + gMaxIsX + = ( +X + > +Y +)> + +15  + sMax + {}; + +17 + gme + < +size_t + + gX +, size_ + gY +> + +18  + gMax +< + gX +, + gY +, + gue +> { + +19 cڡ +size_t + + gvue + = +X +; + +22 + gme + < +size_t + + gX +, size_ + gY +> + +23  + gMax +< + gX +, + gY +, + gl +> { + +24 cڡ +size_t + + gvue + = +Y +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +13  + spgm_p + { + +14 +pgm_p +(cڡ * +p +: +addss +(p) {} + +15 cڡ * +addss +; + +19 #ide +_P + + +20 +le + +size_t + + $_P +( +ARDUINOJSON_NAMESPACE +:: +pgm_p + +s +) { + +21 cڡ * +p + = +s +. +addss +; + +22 + `ARDUINOJSON_ASSERT +( +p + ! +NULL +); + +23  + `pgm_ad_by +( +p +))++; + +24  + `size_t +( +p + - +s +. +addss +); + +25 + } +} + +28 #ide +cmp_P + + +29 +le +  + $cmp_P +(cڡ * +a +, +ARDUINOJSON_NAMESPACE +:: +pgm_p + +b +, +size_t + +n +) { + +30 cڡ * +s1 + = +a +; + +31 cڡ * +s2 + = +b +. +addss +; + +32 + `ARDUINOJSON_ASSERT +( +s1 + ! +NULL +); + +33 + `ARDUINOJSON_ASSERT +( +s2 + ! +NULL +); + +34  +n +-- > 0) { + +35  +c1 + = * +s1 +++; + +36  +c2 + = +ic_ +<>( + `pgm_ad_by +( +s2 +++)); + +37 i( +c1 + < +c2 +) + +39 i( +c1 + > +c2 +) + +41 i( +c1 + == 0 ) + +45 + } +} + +48 #ide +rcmp_P + + +49 +le +  + $rcmp_P +(cڡ * +a +, +ARDUINOJSON_NAMESPACE +:: +pgm_p + +b +) { + +50 cڡ * +s1 + = +a +; + +51 cڡ * +s2 + = +b +. +addss +; + +52 + `ARDUINOJSON_ASSERT +( +s1 + ! +NULL +); + +53 + `ARDUINOJSON_ASSERT +( +s2 + ! +NULL +); + +55  +c1 + = * +s1 +++; + +56  +c2 + = +ic_ +<>( + `pgm_ad_by +( +s2 +++)); + +57 i( +c1 + < +c2 +) + +59 i( +c1 + > +c2 +) + +61 i( +c1 + == 0 ) + +64 + } +} + +67 #ide +memy_P + + +68 +le + * + $memy_P +(* +d +, +ARDUINOJSON_NAMESPACE +:: +pgm_p + +c +, +size_t + +n +) { + +69 +ut8_t +* +d + = +t_ +( +d +); + +70 cڡ * +s + = +c +. +addss +; + +71 + `ARDUINOJSON_ASSERT +( +d + ! +NULL +); + +72 + `ARDUINOJSON_ASSERT +( +s + ! +NULL +); + +73  +n +-- > 0) { + +74 * +d +++ = + `pgm_ad_by +( +s +++); + +76  +d +; + +77 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/safe_strcmp.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 +le +  +_rcmp +(cڡ * +a +, cڡ * +b +) { + +14 i( + ga + = +b +) + +16 i(! + ga +) + +18 i(! + gb +) + +20  +rcmp +( +a +, +b +); + +23 +le +  +_cmp +(cڡ * +a +, cڡ * +b +, +size_t + +n +) { + +24 i( + ga + = +b +) + +26 i(! + ga +) + +28 i(! + gb +) + +30  +cmp +( +a +, +b +, +n +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp + +5 #agm + + + +7  + ~"ty_as/cdiڮ.h +" + +8  + ~"ty_as/ab_if.h +" + +9  + ~"ty_as/gl_cڡt.h +" + +10  + ~"ty_as/is_y.h +" + +11  + ~"ty_as/is_ba_of.h +" + +12  + ~"ty_as/is_ass.h +" + +13  + ~"ty_as/is_cڡ.h +" + +14  + ~"ty_as/is_cvtib.h +" + +15  + ~"ty_as/is_um.h +" + +16  + ~"ty_as/is_tg_pot.h +" + +17  + ~"ty_as/is_gl.h +" + +18  + ~"ty_as/is_me.h +" + +19  + ~"ty_as/is_sigd.h +" + +20  + ~"ty_as/is_unsigd.h +" + +21  + ~"ty_as/make_unsigd.h +" + +22  + ~"ty_as/move_cڡ.h +" + +23  + ~"ty_as/move_n.h +" + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +bo + + gCdi +, +ass + + gTrueTy +, cs + gFTy +> + +12  + scdiڮ + { + +13  +TrueTy + + tty +; + +16 + gme + < +ass + + gTrueTy +, cs + gFTy +> + +17  + gcdiڮ +< + gl +, + gTrueTy +, + gFTy +> { + +18  +FTy + + tty +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +> + +12 +T + +dev +(); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +bo + + gCdi +, +tyme + + gT + = > + +13  + sab_if + {}; + +15 + gme + < +tyme + + gT +> + +16  + gab_if +< + gue +, + gT +> { + +17  +T + + tty +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +, +T + + gv +> + +12  + sgl_cڡt + { + +13 cڡ +T + + gvue + = +v +; + +16  + ggl_cڡt +< + tbo +, + tue +> + tue_ty +; + +17  + ggl_cڡt +< + tbo +, + tl +> + tl_ty +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gT +> + +14  + gis_y + : +l_ty + {}; + +16 + gme + < +tyme + + gT +> + +17  + gis_y +< + gT +[]> : +ue_ty + {}; + +19 + gme + < +tyme + + gT +, +size_t + + gN +> + +20  + gis_y +< + gT +[ +N +]> : +ue_ty + {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gTBa +,ym + gTDived +> + +14 as + cis_ba_of + { + +15 + geed +: + +16  + tYes +[1]; + +17  + tNo +[2]; + +19  + gYes + & +obe +(cڡ +TBa + *); + +20  + gNo + & +obe +(...); + +22 + gpublic +: + +23 cڡ +bo + +vue + = + +24 ( +obe +( +t_ +< +TDived + *>(0))=( +Yes +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp + +5 #agm + + + +7  + ~"dev.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +> + +12  + sis_ass + { + +13 + geed +: + +14  + tYes +[1]; + +15  + tNo +[2]; + +17 + gme + < +tyme + + gU +> + +18  + gYes + & +obe +(( +U +::*)()); + +19 + gme + < + gtyme +> + +20  + gNo + & +obe +(...); + +22 + gpublic +: + +23 cڡ +bo + +vue + = ( +obe +< +T +>(0)=( +Yes +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13  + gis_cڡ + : +l_ty + {}; + +15 + gme + < +tyme + + gT +> + +16  + gis_cڡ + : +ue_ty + {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp + +5 #agm + + + +7  + ~"dev.h +" + +9 #ifde +_MSC_VER + + +10 #agm +wng +( +push +) + +12 #agm +wng +( +dib + : 4244) + +15 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gme + < +tyme + + gFrom +,ym + gTo +> + +18  + sis_cvtib + { + +19 + geed +: + +20  + tYes +[1]; + +21  + tNo +[2]; + +23  + gYes + & +obe +( +To +); + +24  + gNo + & +obe +(...); + +26 + gpublic +: + +27 cڡ +bo + +vue + = ( +obe +( +dev +< +From +>())=( +Yes +); + +32 #ifde +_MSC_VER + + +33 #agm +wng +( +p +) + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp + +5 #agm + + + +7  + ~"is_ass.h +" + +8  + ~"is_cvtib.h +" + +9  + ~"is_tg_pot.h +" + +10  + ~"is_gl.h +" + +11  + ~"is_me.h +" + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 + gme + < +tyme + + gT +> + +16  + sis_um + { + +17 cڡ +bo + + gvue + = +is_cvtib +< +T +, >:: +vue + && + +18 ! +is_ass +< +T +>:: +vue + && ! +is_gl +::value && + +19 ! +is_tg_pot +< +T +>:: +vue + && + +20 ! +is_me +< +T +, + gbo +>:: +vue +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < + gtyme +> + +12  + gis_tg_pot + : +l_ty + {}; + +14 + gme + <> + +15  + gis_tg_pot +<> : +ue_ty + {}; + +17 + gme + <> + +18  + gis_tg_pot +<> : +ue_ty + {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp + +5 #agm + + + +7  + ~ + +8  + ~"is_me.h +" + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gT +> + +14  + sis_gl + { + +15 cڡ +bo + + gvue + = + +16 +is_me +< +T +, sigd >:: +vue + || is_same::value || + +17 +is_me +< +T +, sigd >:: +vue + || is_same::value || + +18 +is_me +< +T +, sigd >:: +vue + || is_same::value || + +19 +is_me +< +T +, sigd >:: +vue + || is_same::value || + +20 #i +ARDUINOJSON_HAS_LONG_LONG + + +21 +is_me +< +T +, sigd >:: +vue + || + +22 +is_me +< +T +, >:: +vue + || + +24 #i +ARDUINOJSON_HAS_INT64 + + +25 +is_me +< +T +, sigd + g__t64 +>:: +vue + || + +26 +is_me +< +T +,  + g__t64 +>:: +vue + || + +28 +is_me +< +T +, >:: +vue +; + +33 + gme + < +tyme + + gT +> + +34  + gis_gl + : +is_gl +< +T +> {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +,ym + gU +> + +13  + gis_me + : +l_ty + {}; + +15 + gme + < +tyme + + gT +> + +16  + gis_me +< + gT +, T> : +ue_ty + {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +8 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < + gtyme +> + +11  + gis_sigd + : +l_ty + {}; + +13 + gme + <> + +14  + gis_sigd +<> : +ue_ty + {}; + +16 + gme + <> + +17  + gis_sigd + : +ue_ty + {}; + +19 + gme + <> + +20  + gis_sigd + : +ue_ty + {}; + +22 + gme + <> + +23  + gis_sigd + : +ue_ty + {}; + +25 + gme + <> + +26  + gis_sigd + : +ue_ty + {}; + +28 + gme + <> + +29  + gis_sigd +<> : +ue_ty + {}; + +31 + gme + <> + +32  + gis_sigd +<> : +ue_ty + {}; + +34 #i +ARDUINOJSON_HAS_LONG_LONG + + +35 + gme + <> + +36  + gis_sigd + : +ue_ty + {}; + +39 #i +ARDUINOJSON_HAS_INT64 + + +40 + gme + <> + +41  + gis_sigd + : +ue_ty + {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +8 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < + gtyme +> + +11  + gis_unsigd + : +l_ty + {}; + +13 + gme + <> + +14  + gis_unsigd +< + gbo +> : +ue_ty + {}; + +16 + gme + <> + +17  + gis_unsigd +<> : +ue_ty + {}; + +19 + gme + <> + +20  + gis_unsigd +<> : +ue_ty + {}; + +22 + gme + <> + +23  + gis_unsigd +<> : +ue_ty + {}; + +25 + gme + <> + +26  + gis_unsigd +<> : +ue_ty + {}; + +28 #i +ARDUINOJSON_HAS_INT64 + + +29 + gme + <> + +30  + gis_unsigd +< + g__t64 +> : +ue_ty + {}; + +33 #i +ARDUINOJSON_HAS_LONG_LONG + + +34 + gme + <> + +35  + gis_unsigd +<> : +ue_ty + {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp + +5 #agm + + + +7  + ~"ty_idty.h +" + +8 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < +tyme + + gT +> + +11  + gmake_unsigd +; + +13 + gme + <> + +14  + gmake_unsigd +<> : +ty_idty +<> {}; + +16 + gme + <> + +17  + gmake_unsigd + : +ty_idty +<> {}; + +18 + gme + <> + +19  + gmake_unsigd +<> : +ty_idty +<> {}; + +21 + gme + <> + +22  + gmake_unsigd + : +ty_idty +<> {}; + +23 + gme + <> + +24  + gmake_unsigd +<> : +ty_idty +<> {}; + +26 + gme + <> + +27  + gmake_unsigd + : +ty_idty +<> {}; + +28 + gme + <> + +29  + gmake_unsigd +<> : +ty_idty +<> {}; + +31 + gme + <> + +32  + gmake_unsigd + : +ty_idty +<> {}; + +33 + gme + <> + +34  + gmake_unsigd +<> : +ty_idty +<> {}; + +36 #i +ARDUINOJSON_HAS_LONG_LONG + + +37 + gme + <> + +38  + gmake_unsigd + : +ty_idty +<> {}; + +39 + gme + <> + +40  + gmake_unsigd +<> : +ty_idty +<> {}; + +43 #i +ARDUINOJSON_HAS_INT64 + + +44 + gme + <> + +45  + gmake_unsigd + : +ty_idty +< +__t64 +> {}; + +46 + gme + <> + +47  + gmake_unsigd +< + g__t64 +> : +ty_idty +< +__t64 +> {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13  + smove_cڡ + { + +14  +T + + tty +; + +16 + gme + < +tyme + + gT +> + +17  + gmove_cڡ + { + +18  +T + + tty +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gT +> + +13  + smove_n + { + +14  +T + + tty +; + +16 + gme + < +tyme + + gT +> + +17  + gmove_n +< + gT +&> { + +18  +T + + tty +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp + +5 #agm + + + +7  + ~"gl_cڡt.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gT +> + +12  + sty_idty + { + +13  +T + + tty +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp + +5 #agm + + + +7  + ~"ty_as.h +" + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < +tyme + + gT +> + +11 +le +  +sw +( +T +& +a +, T& +b +) { + +12 +T + +t +( +a +); + +13 + ga + = +b +; + +14 + gb + = +t +; + +17 #i +ARDUINOJSON_HAS_RVALUE_REFERENCES + + +18 + gme + < +tyme + + gT +> + +19 +tyme + + gmove_n +< + gT +>:: +ty +&& +move +( +T +&& +t +) { + +20  +ic_ +< +tyme + +move_n +< +T +>:: +ty +&&>( +t +); + +23 + gme + < +tyme + + gT +> + +24 + gT +& +move +( +T +& +t +) { + +25  + gt +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTDei +,ym + gEb + = > + +13 as + cWr + { + +14 +public +: + +15 +exic + +Wr +( +TDei +& +de +: +_de +(&dest) {} + +17 +size_t + +wre +( +ut8_t + +c +) { + +18  +_de +-> +wre +( +c +); + +21 +size_t + +wre +(cڡ +ut8_t +* +s +, size_ +n +) { + +22  + g_de +-> +wre +( +s +, +n +); + +25 + give +: + +26 +TDei +* +_de +; + +31  + ~ + +33 #i +ARDUINOJSON_ENABLE_STD_STRING + + +34  + ~ + +37 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +38  + ~ + +41 #i +ARDUINOJSON_ENABLE_STD_STREAM + + +42  + ~ + +45 #i +ARDUINOJSON_ENABLE_ARDUINO_PRINT + + +46  + ~ + + @lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + <> + +12 +ass + + gWr +< :: +Sg +, > { + +13 cڡ +size_t + + gbufrCacy + = +ARDUINOJSON_STRING_BUFFER_SIZE +; + +15 + gpublic +: + +16 +exic + +Wr +(:: +Sg + & +r +: +_dei +(&str) { + +17 +_size + = 0; + +20 ~ +Wr +() { + +21 +ush +(); + +24 +size_t + +wre +( +ut8_t + +c +) { + +25 +ARDUINOJSON_ASSERT +( +_size + < +bufrCacy +); + +26 + g_bufr +[ +_size +++] = +ic_ +<>( +c +); + +27 i( + g_size + + 1 > +bufrCacy +) + +28 +ush +(); + +32 +size_t + +wre +(cڡ +ut8_t + * +s +, size_ +n +) { + +33  +size_t + + gi + = 0; i < + gn +; i++) { + +34 +wre +( +s +[ +i +]); + +36  + gn +; + +39 + give +: + +40  +ush +() { + +41 +ARDUINOJSON_ASSERT +( +_size + < +bufrCacy +); + +42 + g_bufr +[ +_size +] = 0; + +43 * + g_dei + + +_bufr +; + +44 + g_size + = 0; + +47 :: +Sg + * +_dei +; + +48  + g_bufr +[ +bufrCacy +]; + +49 +size_t + + g_size +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 as + cDummyWr + { + +12 + gpublic +: + +13 +size_t + +wre +( +ut8_t +) { + +17 +size_t + +wre +(cڡ +ut8_t +*, size_ +n +) { + +18  + gn +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 + gme + < +tyme + + gTDei +> + +10 +ass + + gWr +< + +11 + gTDei +, + +12 +tyme + + gab_if +< + gis_ba_of +< :: +Prt +, + gTDei +>:: +vue +>:: +ty +> { + +13 +public +: + +14 +exic + +Wr +(:: +Prt +& +t +: +_t +(&print) {} + +16 +size_t + +wre +( +ut8_t + +c +) { + +17  +_t +-> +wre +( +c +); + +20 +size_t + +wre +(cڡ +ut8_t +* +s +, size_ +n +) { + +21  + g_t +-> +wre +( +s +, +n +); + +24 + give +: + +25 :: +Prt +* +_t +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cSticSgWr + { + +13 + gpublic +: + +14 +SticSgWr +(* +buf +, +size_t + +size +: +d +(bu+ siz- 1), +p +(buf) { + +15 * + gp + = '\0'; + +18 +size_t + +wre +( +ut8_t + +c +) { + +19 i( + gp + > +d +) + +21 * + gp +++ = +ic_ +<>( +c +); + +22 * + gp + = '\0'; + +26 +size_t + +wre +(cڡ +ut8_t + * +s +, size_ +n +) { + +27 * + gbeg + = +p +; + +28  + gp + < + gd + && + gn + > 0) { + +29 * + gp +++ = +ic_ +<>(* +s +++); + +30 + gn +--; + +32 * + gp + = '\0'; + +33  +size_t +( +p + - +beg +); + +36 + give +: + +37 * +d +; + +38 * + gp +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gTDei +> + +12 +ass + + gWr +< + +13 + gTDei +, + +14 +tyme + + gab_if +< + gis_ba_of +< + gd +:: +oam +, + gTDei +>:: +vue +>:: +ty +> { + +15 +public +: + +16 +exic + +Wr +( +d +:: +oam +& +os +: +_os +(&os) {} + +18 +size_t + +wre +( +ut8_t + +c +) { + +19 +_os +-> +put +( +ic_ +<>( +c +)); + +23 +size_t + +wre +(cڡ +ut8_t +* +s +, size_ +n +) { + +24 + g_os +-> +wre +( +t_ +( +s +), + +25 +ic_ +< +d +:: +amsize +>( +n +)); + +26  + gn +; + +29 + give +: + +30 +d +:: +oam +* +_os +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 + gme + < +ass + + gT +> + +15  + gis_d_rg + : +l_ty + {}; + +17 + gme + < +ass + + gTChTs +, cs + gTAot +> + +18  + gis_d_rg +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> > + +19 : +ue_ty + {}; + +21 + gme + < +tyme + + gTDei +> + +22 +ass + + gWr +< + gTDei +, + +23 +tyme + + gab_if +< + gis_d_rg +< + gTDei +>:: +vue +>:: +ty +> { + +24 +public +: + +25 +Wr +( +TDei + & +r +: +_r +(&str) {} + +27 +size_t + +wre +( +ut8_t + +c +) { + +28 +_r +-> +ݔ ++=( +ic_ +<>( +c +)); + +32 +size_t + +wre +(cڡ +ut8_t + * +s +, size_ +n +) { + +33 + g_r +-> +nd +( +t_ +( +s +), +n +); + +34  + gn +; + +37 + give +: + +38 +TDei + * +_r +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + +ass + + gTSliz +, +tyme + + gTSour +> + +12 +size_t + +msu +(cڡ +TSour + & +sour +) { + +13 +DummyWr + + gdp +; + +14 + gTSliz +< + gDummyWr +> +rliz +( +dp +); + +15 + gsour +. +ac +( +rliz +); + +16  + grliz +. +bysWrn +(); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + +ass + + gTSliz +, +tyme + + gTSour +, + +12 +tyme + + gTWr +> + +13 +size_t + +doSlize +(cڡ +TSour + & +sour +, +TWr + +wr +) { + +14 + gTSliz +< + gTWr +> +rliz +( +wr +); + +15 + gsour +. +ac +( +rliz +); + +16  + grliz +. +bysWrn +(); + +19 + gme + +ass + + gTSliz +, +tyme + + gTSour +, + +20 +tyme + + gTDei +> + +21 +size_t + +rlize +(cڡ +TSour + & +sour +, +TDei + & +dei +) { + +22 + gWr +< + gTDei +> +wr +( +dei +); + +23  + gdoSlize +< + gTSliz +>( + gsour +, + gwr +); + +26 + gme + +ass + + gTSliz +, +tyme + + gTSour +> + +27 +size_t + +rlize +(cڡ +TSour + & +sour +, * +bufr +, size_ +bufrSize +) { + +28 +SticSgWr + +wr +( +t_ +<*>( +bufr +), +bufrSize +); + +29  + gdoSlize +< + gTSliz +>( + gsour +, + gwr +); + +32 + gme + +ass + + gTSliz +, +tyme + + gTSour +, + +33 +tyme + + gTCh +, +size_t + + gN +> + +34 #i +defed + +_MSC_VER + && _MSC_VER < 1900 + +35 +tyme + + gab_if +<( + gmove_n +< + gTCh +>:: +ty +=1, + gsize_t +>::type + +37 +tyme + +ab_if +<( +TCh +=1, + gsize_t +>:: +ty + + +39 +rlize +(cڡ +TSour + & +sour +, +TCh + (& +bufr +)[ +N +]) { + +40 +SticSgWr + +wr +( +t_ +<*>( +bufr +), +N +); + +41  + gdoSlize +< + gTSliz +>( + gsour +, + gwr +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringCopier.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 as + cSgCݛr + { + +13 + gpublic +: + +14  +ARDUINOJSON_NAMESPACE +:: + tSgBud + StringBuilder; + +16 +SgCݛr +( +MemyPo +* +po +: +_po +(pool) {} + +18 +SgBud + +tSg +() { + +19  +SgBud +( +_po +); + +22  +aim +(cڡ * +s +) { + +23 + g_po +-> +aimLaSg +( +s +); + +26 + give +: + +27 +MemyPo +* +_po +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringMover.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 as + cSgMov + { + +12 + gpublic +: + +13 as + cSgBud + { + +14 +public +: + +15 +SgBud +(** +r +: +_wreP +Ռ), +_tP +(*ptr) {} + +17  +nd +( +c +) { + +18 *(* + g_wreP +)++ = ( +c +); + +21 * +come +() const { + +22 *(* + g_wreP +)++ = 0; + +23  + g_tP +; + +26 + give +: + +27 ** +_wreP +; + +28 * + g_tP +; + +31 +SgMov +(* +r +: +_r +(ptr) {} + +33 +SgBud + +tSg +() { + +34  +SgBud +(& +_r +); + +38  +aim +(cڡ * +r +) { + +39 + g_r + = +cڡ_ +<*>( +r +); + +42 + give +: + +43 * +_r +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringStorage.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTIut +,ym + gEb + = > + +13  + sSgStage + { + +14  +SgCݛr + + tty +; + +16  +ty + + +( +MemyPo +& +po +, +TIut +&) { + +17  +ty +(& +po +); + +21 + gme + < +tyme + + gTCh +> + +22  + gSgStage +< + gTCh +*, + +23 +tyme + + gab_if +:: +vue +>:: +ty +> { + +24  +SgMov + + tty +; + +26  +ty + + +( +MemyPo +&, +TCh +* +put +) { + +27  +ty +( +t_ +<*>( +put +)); + +31 + gme + < +tyme + + gTIut +> + +32 +tyme + + gSgStage +< + gTIut +>:: +ty + +makeSgStage +( +MemyPo +& +po +, + +33 +TIut +& +put +) { + +34  + gSgStage +< + gTIut +>:: + +( +po +, +put +); + +37 + gme + < +tyme + + gTCh +> + +38 +tyme + + gSgStage +< + gTCh +*>:: +ty + +makeSgStage +( +MemyPo +& +po +, + +39 +TCh +* +put +) { + +40  + gSgStage +< + gTCh +*>:: + +( +po +, +put +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/ArduinoStringAdapter.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 as + cArduoSgAdr + { + +16 + gpublic +: + +17 +ArduoSgAdr +(cڡ :: +Sg +& +r +: +_r +(&str) {} + +19 * +ve +( +MemyPo +* +po +) const { + +20 i( +isNu +()) + +21  +NULL +; + +22 +size_t + + gn + = +_r +-> +ngth +() + 1; + +23 * + gdup + = +po +-> +locFrozSg +( +n +); + +24 i( + gdup +) + +25 +memy +( +dup +, +_r +-> +c_r +(), +n +); + +26  + gdup +; + +29 +bo + +isNu +() const { + +31  ! + g_r +-> +c_r +(); + +34  +com +(cڡ * +h +) const { + +36 cڡ * + gme + = +_r +-> +c_r +(); + +37  +_rcmp +( +me +, +h +); + +40 +bo + +equs +(cڡ * +exed +) const { + +41  +com +( +exed +) == 0; + +44 +size_t + +size +() const { + +45  + g_r +-> +ngth +(); + +48  + gage_picy +:: + te_by_cy + + tage_picy +; + +50 + give +: + +51 cڡ :: +Sg +* +_r +; + +54 + gme + <> + +55  + gIsSg +< :: +Sg +> : +ue_ty + {}; + +57 + gme + <> + +58  + gIsSg +< :: +SgSumHr +> : +ue_ty + {}; + +60 +le + +ArduoSgAdr + + $adtSg +(cڡ :: +Sg +& +r +) { + +61  + `ArduoSgAdr +( +r +); + +62 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/ConstRamStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +16 as + cCڡRamSgAdr + { + +17 + gpublic +: + +18 +CڡRamSgAdr +(cڡ * +r + = 0: +_r +(str) {} + +20  +com +(cڡ * +h +) const { + +21  +_rcmp +( +_r +, +h +); + +24 +bo + +equs +(cڡ * +exed +) const { + +25  +com +( +exed +) == 0; + +28 +bo + +isNu +() const { + +29  ! + g_r +; + +32 +size_t + +size +() const { + +33 i(! + g_r +) + +35  + +( +_r +); + +38 cڡ * +da +() const { + +39  + g_r +; + +42  + gage_picy +:: + te_by_addss + + tage_picy +; + +44 + geed +: + +45 cڡ * +_r +; + +48 +le + +CڡRamSgAdr + + $adtSg +(cڡ * +r +) { + +49  + `CڡRamSgAdr +( +r +); + +50 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/FlashStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 as + cFshSgAdr + { + +15 + gpublic +: + +16 +FshSgAdr +(cڡ +__FshSgHr +* +r +: +_r +(str) {} + +18  +com +(cڡ * +h +) const { + +19 i(! +h + && ! +_r +) + +21 i(! + g_r +) + +23 i(! + gh +) + +25  - +rcmp_P +( +h +, +t_ +( +_r +)); + +28 +bo + +equs +(cڡ * +exed +) const { + +29  +com +( +exed +) == 0; + +32 +bo + +isNu +() const { + +33  ! + g_r +; + +36 * +ve +( +MemyPo +* +po +) const { + +37 i(! + g_r +) + +38  + gNULL +; + +39 +size_t + + gn + = +size +() + 1; + +40 * + gdup + = +po +-> +locFrozSg +( +n +); + +41 i( + gdup +) + +42 +memy_P +( +dup +, +t_ +( +_r +), +n +); + +43  + gdup +; + +46 +size_t + +size +() const { + +47 i(! + g_r +) + +49  +_P +( +t_ +( +_r +)); + +52  + gage_picy +:: + te_by_cy + + tage_picy +; + +54 + give +: + +55 cڡ +__FshSgHr +* +_r +; + +58 +le + +FshSgAdr + + $adtSg +(cڡ +__FshSgHr +* +r +) { + +59  + `FshSgAdr +( +r +); + +60 + } +} + +62 + gme + <> + +63  + gIsSg + : +ue_ty + {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +10 + gme + < + gtyme +> + +11  + gIsSg + : +l_ty + {}; + +13 + gme + < +tyme + + gT +> + +14  + gIsSg + : +IsSg +< +T +> {}; + +16 + gme + < +tyme + + gT +> + +17  + gIsSg +< + gT +&> : +IsSg +< +T +> {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/IsWriteableString.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +11  + ~ + +14 #i +ARDUINOJSON_ENABLE_STD_STRING + + +15  + ~ + +18 +mea + + gARDUINOJSON_NAMESPACE + { + +20 + gme + < + gtyme +> + +21  + gIsWrbSg + : +l_ty + {}; + +23 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +25 + gme + <> + +26  + gIsWrbSg +< :: +Sg +> : +ue_ty + {}; + +30 #i +ARDUINOJSON_ENABLE_STD_STRING + + +32 + gme + < +tyme + + gTChTs +,ym + gTAot +> + +33  + gIsWrbSg +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> > + +34 : +ue_ty + {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/RamStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12 +mea + + gARDUINOJSON_NAMESPACE + { + +14 as + cRamSgAdr + : +public + +CڡRamSgAdr + { + +15 +public +: + +16 +RamSgAdr +(cڡ * +r +: +CڡRamSgAdr +(str) {} + +18 * +ve +( +MemyPo +* +po +) const { + +19 i(! +_r +) + +20  +NULL +; + +21 +size_t + + gn + = +size +() + 1; + +22 * + gdup + = +po +-> +locFrozSg +( +n +); + +23 i( + gdup +) + +24 +memy +( +dup +, +_r +, +n +); + +25  + gdup +; + +28  + gARDUINOJSON_NAMESPACE +:: + tage_picy +:: + te_by_cy + storage_policy; + +31 + gme + < +tyme + + gTCh +> + +32 +le + +RamSgAdr + + $adtSg +(cڡ +TCh +* +r +) { + +33  + `RamSgAdr +( +t_ +( +r +)); + +34 + } +} + +36 +le + +RamSgAdr + + $adtSg +(* +r +) { + +37  + `RamSgAdr +( +r +); + +38 + } +} + +40 + gme + < +tyme + + gTCh +> + +41  + gIsSg +< + gTCh +*> { + +42 cڡ +bo + + gvue + = ( +TCh +) == 1; + +45 + gme + <> + +46  + gIsSg +<*> { + +47 cڡ +bo + + gvue + = +l +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/SizedFlashStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 as + cSizedFshSgAdr + { + +14 + gpublic +: + +15 +SizedFshSgAdr +(cڡ +__FshSgHr +* +r +, +size_t + +sz +) + +16 : +_r +( +r +), +_size +( +sz +) {} + +18  +com +(cڡ * +h +) const { + +19 i(! + gh + && ! + g_r +) + +21 i(! + g_r +) + +23 i(! + gh +) + +25  - +cmp_P +( +h +, +t_ +( +_r +), +_size +); + +28 +bo + +equs +(cڡ * +exed +) const { + +29  +com +( +exed +) == 0; + +32 +bo + +isNu +() const { + +33  ! + g_r +; + +36 * +ve +( +MemyPo +* +po +) const { + +37 i(! + g_r +) + +38  + gNULL +; + +39 * + gdup + = +po +-> +locFrozSg +( +_size +); + +40 i( + gdup +) + +41 +memy_P +( +dup +, +t_ +( +_r +), +_size +); + +42  + gdup +; + +45 +size_t + +size +() const { + +46  + g_size +; + +49  + gage_picy +:: + te_by_cy + + tage_picy +; + +51 + give +: + +52 cڡ +__FshSgHr +* +_r +; + +53 +size_t + + g_size +; + +56 +le + +SizedFshSgAdr + + $adtSg +(cڡ +__FshSgHr +* +r +, + +57 +size_t + +sz +) { + +58  + `SizedFshSgAdr +( +r +, +sz +); + +59 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/SizedRamStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15 as + cSizedRamSgAdr + { + +16 + gpublic +: + +17 +SizedRamSgAdr +(cڡ * +r +, +size_t + +n +: +_r +(r), +_size +(n) {} + +19  +com +(cڡ * +h +) const { + +20  +_cmp +( +_r +, +h +, +_size +); + +23 +bo + +equs +(cڡ * +exed +) const { + +24  +com +( +exed +) == 0; + +27 +bo + +isNu +() const { + +28  ! + g_r +; + +31 * +ve +( +MemyPo +* +po +) const { + +32 i(! + g_r +) + +33  + gNULL +; + +34 * + gdup + = +po +-> +locFrozSg +( +_size +); + +35 i( + gdup +) + +36 +memy +( +dup +, +_r +, +_size +); + +37  + gdup +; + +40 +size_t + +size +() const { + +41  + g_size +; + +44  + gage_picy +:: + te_by_cy + + tage_picy +; + +46 + give +: + +47 cڡ * +_r +; + +48 +size_t + + g_size +; + +51 + gme + < +tyme + + gTCh +> + +52 +le + +SizedRamSgAdr + + $adtSg +(cڡ +TCh +* +r +, +size_t + +size +) { + +53  + `SizedRamSgAdr +( +t_ +( +r +), +size +); + +54 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StlStringAdapter.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +12  + ~ + +14 +mea + + gARDUINOJSON_NAMESPACE + { + +16 + gme + < +tyme + + gTSg +> + +17 as + cSSgAdr + { + +18 + gpublic +: + +19 +SSgAdr +(cڡ +TSg +& +r +: +_r +(&str) {} + +21 * +ve +( +MemyPo +* +po +) const { + +22 +size_t + +n + = +_r +-> +ngth +() + 1; + +23 * + gdup + = +po +-> +locFrozSg +( +n +); + +24 i( + gdup +) + +25 +memy +( +dup +, +_r +-> +c_r +(), +n +); + +26  + gdup +; + +29 +bo + +isNu +() const { + +30  + gl +; + +33  +com +(cڡ * +h +) const { + +34 i(! + gh +) + +36  + g_r +-> +com +( +h +); + +39 +bo + +equs +(cڡ * +exed +) const { + +40 i(! + gexed +) + +41  + gl +; + +42  * + g_r + = +exed +; + +45 +size_t + +size +() const { + +46  + g_r +-> +size +(); + +49  + gage_picy +:: + te_by_cy + + tage_picy +; + +51 + give +: + +52 cڡ +TSg +* +_r +; + +55 + gme + < +tyme + + gTChTs +,ym + gTAot +> + +56  + gIsSg +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> > : +ue_ty + { + +59 + gme + < +tyme + + gTChTs +,ym + gTAot +> + +60 +le + + gSSgAdr +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> > + +61 +adtSg +(cڡ +d +:: +basic_rg +<, +TChTs +, +TAot +>& +r +) { + +62  + gSSgAdr +< + gd +:: +basic_rg +<, + gTChTs +, + gTAot +> >( + +63 + gr +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StoragePolicy.hpp + +5 #agm + + + +7 +mea + + gARDUINOJSON_NAMESPACE + { + +9 +mea + + gage_picy + { + +10  + se_by_addss + {}; + +11  + se_by_cy + {}; + +12  + sdecide__ruime + {}; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/String.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 as + cSg + { + +14 + gpublic +: + +15 +Sg +(: +_da +(0), +_isStic +( +ue +) {} + +16 +Sg +(cڡ * +da +, +bo + +isSticDa + = +ue +) + +17 : +_da +( +da +), +_isStic +( +isSticDa +) {} + +19 cڡ * +c_r +() const { + +20  + g_da +; + +23 +bo + +isNu +() const { + +24  ! + g_da +; + +27 +bo + +isStic +() const { + +28  + g_isStic +; + +31 +nd + +bo + + gݔ +==( +Sg + +lhs +, Sg + grhs +) { + +32 i( + glhs +. + g_da + = +rhs +. +_da +) + +33  +ue +; + +34 i(! + glhs +. + g_da +) + +35  + gl +; + +36 i(! + grhs +. + g_da +) + +37  + gl +; + +38  +rcmp +( +lhs +. +_da +, +rhs +._data) == 0; + +41  + gage_picy +:: + tdecide__ruime + + tage_picy +; + +43 + give +: + +44 cڡ * +_da +; + +45 +bo + + g_isStic +; + +48 as + cSgAdr + : +public + +RamSgAdr + { + +49 +public +: + +50 +SgAdr +(cڡ +Sg +& +r +) + +51 : +RamSgAdr +( +r +. +c_r +()), +_isStic +(r. +isStic +()) {} + +53 +bo + +isStic +() const { + +54  + g_isStic +; + +57 cڡ * +ve +( +MemyPo +* +po +) const { + +58 i( + g_isStic +) + +59  +da +(); + +60  + gRamSgAdr +:: +ve +( +po +); + +63 + give +: + +64 +bo + +_isStic +; + +67 + gme + <> + +68  + gIsSg +< + gSg +> : +ue_ty + {}; + +70 +le + +SgAdr + + $adtSg +(cڡ +Sg +& +r +) { + +71  + `SgAdr +( +r +); + +72 + } +} + + @lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 #i +ARDUINOJSON_ENABLE_STD_STRING + + +12  + ~ + +15 #i +ARDUINOJSON_ENABLE_ARDUINO_STRING + + +16  + ~ + +19 #i +ARDUINOJSON_ENABLE_PROGMEM + + +20  + ~ + +21  + ~ + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/SlotFunctions.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10 +mea + + gARDUINOJSON_NAMESPACE + { + +12 + gme + < +tyme + + gTAddSg +> + +13 +le + +bo + +SKey +( +VSl +* +v +, +TAddSg + +key +, +MemyPo +* +po +) { + +14 i(! + gv +) + +15  + gl +; + +16  +SKey +( +v +, +key +, +po +, +tyme + +TAddSg +:: +age_picy +()); + +19 + gme + < +tyme + + gTAddSg +> + +20 +le + +bo + +SKey +( +VSl +* +v +, +TAddSg + +key +, +MemyPo +* +po +, + +21 +age_picy +:: +decide__ruime +) { + +22 i( +key +. +isStic +()) { + +23  +SKey +( +v +, +key +, +po +, +age_picy +:: +e_by_addss +()); + +25  +SKey +( +v +, +key +, +po +, +age_picy +:: +e_by_cy +()); + +27  + gue +; + +30 + gme + < +tyme + + gTAddSg +> + +31 +le + +bo + +SKey +( +VSl +* +v +, +TAddSg + +key +, +MemyPo +*, + +32 +age_picy +:: +e_by_addss +) { + +33 +ARDUINOJSON_ASSERT +( +v +); + +34 + gv +-> +tLkedKey +( +make_n_nu +( +key +. +da +())); + +35  + gue +; + +38 + gme + < +tyme + + gTAddSg +> + +39 +le + +bo + +SKey +( +VSl +* +v +, +TAddSg + +key +, +MemyPo +* +po +, + +40 +age_picy +:: +e_by_cy +) { + +41 cڡ * +dup + = +key +. +ve +( +po +); + +42 i(! + gdup +) + +43  + gl +; + +44 +ARDUINOJSON_ASSERT +( +v +); + +45 + gv +-> +tOwdKey +( +make_n_nu +( +dup +)); + +46  + gue +; + +49 +le + +size_t + +Size +(cڡ +VSl +* +v +) { + +50 +size_t + + gn + = 0; + +51  + gv +) { + +52 + gn +++; + +53 + gv + = +v +-> +xt +(); + +55  + gn +; + +58 +le + +VDa +* +Da +( +VSl +* + +) { + +59  + gt_ +< + gVDa +*>( + g +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantAs.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 +ass + + gAayRef +; + +12 +ass + + gAayCڡRef +; + +13 +ass + + gObjeRef +; + +14 +ass + + gObjeCڡRef +; + +15 +ass + + gVRef +; + +16 +ass + + gVCڡRef +; + +20 + gme + < +tyme + + gT +> + +21  + sVAs + { + +22  +T + + tty +; + +25 + gme + <> + +26  + gVAs +<*> { + +27 cڡ * + tty +; + +32 + gme + < +tyme + + gT +> + +33  + sVCڡAs + { + +34  +tyme + + tVAs +< + tT +>:: + tty +ype; + +37 + gme + <> + +38  + gVCڡAs +< + gVRef +> { + +39  +VCڡRef + + tty +; + +42 + gme + <> + +43  + gVCڡAs +< + gObjeRef +> { + +44  +ObjeCڡRef + + tty +; + +47 + gme + <> + +48  + gVCڡAs +< + gAayRef +> { + +49  +AayCڡRef + + tty +; + +54 + gme + < +tyme + + gT +> + +55 +le + +tyme + + gab_if +< + gis_gl +< + gT +>:: +vue +, T>:: +ty + +vAs +( + +56 cڡ +VDa +* +_da +) { + +57  +_da + !0 ? _da-> +asIegl +< +T +>() : T(0); + +60 + gme + < +tyme + + gT +> + +61 +le + +tyme + + gab_if +< + gis_me +< + gT +, + gbo +>:: +vue +, T>:: +ty + +vAs +( + +62 cڡ +VDa +* +_da +) { + +63  +_da + !0 ? _da-> +asBoޗn +(: +l +; + +66 + gme + < +tyme + + gT +> + +67 +le + +tyme + + gab_if +< + gis_tg_pot +< + gT +>:: +vue +, T>:: +ty + +vAs +( + +68 cڡ +VDa +* +_da +) { + +69  +_da + !0 ? _da-> +asFlt +< +T +>() : T(0); + +72 + gme + < +tyme + + gT +> + +73 +le + +tyme + + gab_if +< + gis_me +< + gT +, cڡ *>:: +vue + || + +74 +is_me +< +T +, *>:: +vue +, + +75 cڡ *>:: +ty + + +76 +vAs +(cڡ +VDa +* +_da +) { + +77  +_da + !0 ? _da-> +asSg +() : 0; + +80 + gme + < +tyme + + gT +> + +81 +le + +tyme + + gab_if +< + gis_me +< + gAayCڡRef +, + gT +>:: +vue +, T>:: +ty + +vAs +( + +82 cڡ +VDa +* +_da +); + +84 + gme + < +tyme + + gT +> + +85 +le + +tyme + + gab_if +< + gis_me +< + gObjeCڡRef +, + gT +>:: +vue +, T>:: +ty + +vAs +( + +86 cڡ +VDa +* +_da +); + +88 + gme + < +tyme + + gT +> + +89 +le + +tyme + + gab_if +< + gis_me +< + gVCڡRef +, + gT +>:: +vue +, T>:: +ty + + +90 +vAs +(cڡ +VDa +* +_da +); + +92 + gme + < +tyme + + gT +> + +93 +le + +tyme + + gab_if +< + gIsWrbSg +< + gT +>:: +vue +, T>:: +ty + +vAs +( + +94 cڡ +VDa +* +_da +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantAsImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11 +mea + + gARDUINOJSON_NAMESPACE + { + +13 + gme + < +tyme + + gT +> + +14 +le + +tyme + + gab_if +< + gis_me +< + gAayCڡRef +, + gT +>:: +vue +, T>:: +ty + +vAs +( + +15 cڡ +VDa +* +_da +) { + +16  +AayCڡRef +( +vAsAay +( +_da +)); + +19 + gme + < +tyme + + gT +> + +20 +le + +tyme + + gab_if +< + gis_me +< + gObjeCڡRef +, + gT +>:: +vue +, T>:: +ty + +vAs +( + +21 cڡ +VDa +* +_da +) { + +22  +ObjeCڡRef +( +vAsObje +( +_da +)); + +25 + gme + < +tyme + + gT +> + +26 +le + +tyme + + gab_if +< + gis_me +< + gVCڡRef +, + gT +>:: +vue +, T>:: +ty + + +27 +vAs +(cڡ +VDa +* +_da +) { + +28  +VCڡRef +( +_da +); + +31 + gme + < +tyme + + gT +> + +32 +le + +tyme + + gab_if +< + gIsWrbSg +< + gT +>:: +vue +, T>:: +ty + +vAs +( + +33 cڡ +VDa +* +_da +) { + +34 cڡ * +cr + = +_da + !0 ? _da-> +asSg +() : 0; + +35 i( + gcr +) + +36  +T +( +cr +); + +37 +T + + gs +; + +38 +rlizeJs +( +VCڡRef +( +_da +), +s +); + +39  + gs +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp + +5 #agm + + + +7  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gVALUE_MASK + = 0x7F, + +19 + gVALUE_IS_OWNED + = 0x01, + +20 + gVALUE_IS_NULL + = 0, + +21 + gVALUE_IS_LINKED_RAW + = 0x02, + +22 + gVALUE_IS_OWNED_RAW + = 0x03, + +23 + gVALUE_IS_LINKED_STRING + = 0x04, + +24 + gVALUE_IS_OWNED_STRING + = 0x05, + +27 + gVALUE_IS_BOOLEAN + = 0x06, + +28 + gVALUE_IS_POSITIVE_INTEGER + = 0x08, + +29 + gVALUE_IS_NEGATIVE_INTEGER + = 0x0A, + +30 + gVALUE_IS_FLOAT + = 0x0C, + +32 + gCOLLECTION_MASK + = 0x60, + +33 + gVALUE_IS_OBJECT + = 0x20, + +34 + gVALUE_IS_ARRAY + = 0x40, + +36 + gKEY_IS_OWNED + = 0x80 + +39  + sRawDa + { + +40 cڡ * + gda +; + +41 +size_t + + gsize +; + +44  + uVCڋ + { + +45 +Flt + + gasFlt +; + +46 +UI + + gasIeg +; + +47 +CiDa + + gasCi +; + +48 cڡ * + gasSg +; + +50 cڡ * + gda +; + +51 +size_t + + gsize +; + +52 } + gasRaw +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +15 #i +defed +( +__GNUC__ +) + +16 #i +__GNUC__ + >= 7 + +17 #agm +GCC + +dgnoic + +push + + +18 #agm +GCC + +dgnoic + +igned + "-Wmaybe-uninitialized" + +19 #agm +GCC + +dgnoic + +igned + "-Wuninitialized" + +23 +mea + + gARDUINOJSON_NAMESPACE + { + +25 as + cVDa + { + +26 +VCڋ + + g_cڋ +; + +27 +ut8_t + + g_ags +; + +29 + gpublic +: + +36 +me + < +tyme + +Vis +> + +37  +ac +( +Vis + & +vis +) const { + +38  +ty +()) { + +39  +VALUE_IS_FLOAT +: + +40  +vis +. +visFlt +( +_cڋ +. +asFlt +); + +42  + gVALUE_IS_ARRAY +: + +43  +vis +. +visAay +( +_cڋ +. +asCi +); + +45  + gVALUE_IS_OBJECT +: + +46  +vis +. +visObje +( +_cڋ +. +asCi +); + +48  + gVALUE_IS_LINKED_STRING +: + +49  +VALUE_IS_OWNED_STRING +: + +50  +vis +. +visSg +( +_cڋ +. +asSg +); + +52  + gVALUE_IS_OWNED_RAW +: + +53  +VALUE_IS_LINKED_RAW +: + +54  +vis +. +visRawJs +( +_cڋ +. +asRaw +. +da +, _cڋ.asRaw. +size +); + +56  + gVALUE_IS_NEGATIVE_INTEGER +: + +57  +vis +. +visNegiveIeg +( +_cڋ +. +asIeg +); + +59  + gVALUE_IS_POSITIVE_INTEGER +: + +60  +vis +. +visPosiveIeg +( +_cڋ +. +asIeg +); + +62  + gVALUE_IS_BOOLEAN +: + +63  +vis +. +visBoޗn +( +_cڋ +. +asIeg + != 0); + +66  +vis +. +visNu +(); + +70 + gme + < +tyme + + gT +> + +71 +T + +asIegl +() const; + +73 + gme + < +tyme + + gT +> + +74 +T + +asFlt +() const; + +76 cڡ * +asSg +() const; + +78 +bo + +asBoޗn +() const; + +80 +CiDa + * +asAay +() { + +81  +isAay +(? & + g_cڋ +. + gasCi + : 0; + +84 cڡ +CiDa + * +asAay +() const { + +85  + gcڡ_ +< + gVDa + *>( + gthis +)-> +asAay +(); + +88 +CiDa + * +asObje +() { + +89  +isObje +(? & + g_cڋ +. + gasCi + : 0; + +92 cڡ +CiDa + * +asObje +() const { + +93  + gcڡ_ +< + gVDa + *>( + gthis +)-> +asObje +(); + +96 +bo + +cyFrom +(cڡ +VDa + & +c +, +MemyPo + * +po +) { + +97  + gc +. +ty +()) { + +98  + gVALUE_IS_ARRAY +: + +99  +toAay +(). +cyFrom +( +c +. +_cڋ +. +asCi +, +po +); + +100  + gVALUE_IS_OBJECT +: + +101  +toObje +(). +cyFrom +( +c +. +_cڋ +. +asCi +, +po +); + +102  + gVALUE_IS_OWNED_STRING +: + +103  +tOwdSg +( +RamSgAdr +( +c +. +_cڋ +. +asSg +), +po +); + +104  + gVALUE_IS_OWNED_RAW +: + +105  +tOwdRaw +( + +106 +rlized +( +c +. +_cڋ +. +asRaw +. +da +, src._cڋ.asRaw. +size +), +po +); + +108 +tTy +( +c +. +ty +()); + +109 + g_cڋ + = +c +. +_cڋ +; + +110  + gue +; + +114 +bo + +equs +(cڡ +VDa + & +h +) const { + +116 i(( +ty +(| + gVALUE_IS_OWNED +!( +h +.ty(| +VALUE_IS_OWNED +)) + +117  +l +; + +119  +ty +()) { + +120  + gVALUE_IS_LINKED_STRING +: + +121  +VALUE_IS_OWNED_STRING +: + +122  ! +rcmp +( +_cڋ +. +asSg +, +h +._content.asString); + +124  + gVALUE_IS_LINKED_RAW +: + +125  +VALUE_IS_OWNED_RAW +: + +126  +_cڋ +. +asRaw +. +size + = +h +._content.asRaw.size && + +127 ! +memcmp +( +_cڋ +. +asRaw +. +da +, +h +._content.asRaw.data, + +128 +_cڋ +. +asRaw +. +size +); + +130  + gVALUE_IS_BOOLEAN +: + +131  +VALUE_IS_POSITIVE_INTEGER +: + +132  +VALUE_IS_NEGATIVE_INTEGER +: + +133  +_cڋ +. +asIeg + = +h +._content.asInteger; + +135  + gVALUE_IS_ARRAY +: + +136  +_cڋ +. +asCi +. +equsAay +( +h +._content.asCollection); + +138  + gVALUE_IS_OBJECT +: + +139  +_cڋ +. +asCi +. +equsObje +( +h +._content.asCollection); + +141  + gVALUE_IS_FLOAT +: + +142  +_cڋ +. +asFlt + = +h +._content.asFloat; + +144  + gVALUE_IS_NULL +: + +146  +ue +; + +150 +bo + +isAay +() const { + +151  ( + g_ags + & + gVALUE_IS_ARRAY +) != 0; + +154 +bo + +isBoޗn +() const { + +155  +ty +(= +VALUE_IS_BOOLEAN +; + +158 +bo + +isCi +() const { + +159  ( + g_ags + & + gCOLLECTION_MASK +) != 0; + +162 + gme + < +tyme + + gT +> + +163 +bo + +isIeg +() const { + +164  +ty +()) { + +165  + gVALUE_IS_POSITIVE_INTEGER +: + +166  +nStePosiveIeg +< +T +>( +_cڋ +. +asIeg +); + +168  + gVALUE_IS_NEGATIVE_INTEGER +: + +169  +nSteNegiveIeg +< +T +>( +_cڋ +. +asIeg +); + +172  +l +; + +176 +bo + +isFlt +() const { + +177  +ty +(= +VALUE_IS_FLOAT + ||y(= +VALUE_IS_POSITIVE_INTEGER + || + +178 +ty +(= +VALUE_IS_NEGATIVE_INTEGER +; + +181 +bo + +isSg +() const { + +182  +ty +(= +VALUE_IS_LINKED_STRING + ||y(= +VALUE_IS_OWNED_STRING +; + +185 +bo + +isObje +() const { + +186  ( + g_ags + & + gVALUE_IS_OBJECT +) != 0; + +189 +bo + +isNu +() const { + +190  +ty +(= +VALUE_IS_NULL +; + +193 +bo + +isEnod +() const { + +194  ! +isFlt +(); + +197  +move +( +size_t + +dex +) { + +198 i( +isAay +()) + +199 + g_cڋ +. + gasCi +. +moveEmt +( +dex +); + +202 + gme + < +tyme + + gTAddSg +> + +203  +move +( +TAddSg + +key +) { + +204 i( +isObje +()) + +205 + g_cڋ +. + gasCi +. +moveMemb +( +key +); + +208  +tBoޗn +( +bo + +vue +) { + +209 +tTy +( +VALUE_IS_BOOLEAN +); + +210 + g_cڋ +. + gasIeg + = +ic_ +< +UI +>( +vue +); + +213  +tFlt +( +Flt + +vue +) { + +214 +tTy +( +VALUE_IS_FLOAT +); + +215 + g_cڋ +. + gasFlt + = +vue +; + +218  +tLkedRaw +( +SlizedVue + +vue +) { + +219 i( + gvue +. +da +()) { + +220 +tTy +( +VALUE_IS_LINKED_RAW +); + +221 + g_cڋ +. + gasRaw +. + gda + = +vue +. +da +(); + +222 + g_cڋ +. + gasRaw +. + gsize + = +vue +. +size +(); + +224 +tTy +( +VALUE_IS_NULL +); + +228 + gme + < +tyme + + gT +> + +229 +bo + +tOwdRaw +( +SlizedVue +< +T +> +vue +, +MemyPo + * +po +) { + +230 * + gdup + = +adtSg +( +vue +. +da +(), vue. +size +()). +ve +( +po +); + +231 i( + gdup +) { + +232 +tTy +( +VALUE_IS_OWNED_RAW +); + +233 + g_cڋ +. + gasRaw +. + gda + = +dup +; + +234 + g_cڋ +. + gasRaw +. + gsize + = +vue +. +size +(); + +235  + gue +; + +237 +tTy +( +VALUE_IS_NULL +); + +238  + gl +; + +242 + gme + < +tyme + + gT +> + +243 +tyme + + gab_if +< + gis_unsigd +< + gT +>:: +vue +>:: +ty + +tIeg +( +T + value) { + +244 +tUnsigdIeg +( +vue +); + +247 + gme + < +tyme + + gT +> + +248 +tyme + + gab_if +< + gis_sigd +< + gT +>:: +vue +>:: +ty + +tIeg +( +T + value) { + +249 +tSigdIeg +( +vue +); + +252 + gme + < +tyme + + gT +> + +253  +tSigdIeg +( +T + +vue +) { + +254 i( + gvue + >= 0) { + +255 +tPosiveIeg +( +ic_ +< +UI +>( +vue +)); + +257 +tNegiveIeg +(~ +ic_ +< +UI +>( +vue +) + 1); + +261  +tPosiveIeg +( +UI + +vue +) { + +262 +tTy +( +VALUE_IS_POSITIVE_INTEGER +); + +263 + g_cڋ +. + gasIeg + = +vue +; + +266  +tNegiveIeg +( +UI + +vue +) { + +267 +tTy +( +VALUE_IS_NEGATIVE_INTEGER +); + +268 + g_cڋ +. + gasIeg + = +vue +; + +271  +tLkedSg +(cڡ * +vue +) { + +272 i( + gvue +) { + +273 +tTy +( +VALUE_IS_LINKED_STRING +); + +274 + g_cڋ +. + gasSg + = +vue +; + +276 +tTy +( +VALUE_IS_NULL +); + +280  +tNu +() { + +281 +tTy +( +VALUE_IS_NULL +); + +284  +tOwdSg +( +n_nu + +s +) { + +285 +tTy +( +VALUE_IS_OWNED_STRING +); + +286 + g_cڋ +. + gasSg + = +s +. +g +(); + +289 +bo + +tOwdSg +(cڡ * +s +) { + +290 i( + gs +) { + +291 +tOwdSg +( +make_n_nu +( +s +)); + +292  + gue +; + +294 +tTy +( +VALUE_IS_NULL +); + +295  + gl +; + +299 + gme + < +tyme + + gT +> + +300 +bo + +tOwdSg +( +T + +vue +, +MemyPo + * +po +) { + +301  +tOwdSg +( +vue +. +ve +( +po +)); + +304  +tUnsigdIeg +( +UI + +vue +) { + +305 +tTy +( +VALUE_IS_POSITIVE_INTEGER +); + +306 + g_cڋ +. + gasIeg + = +ic_ +< +UI +>( +vue +); + +309 + gCiDa + & +toAay +() { + +310 +tTy +( +VALUE_IS_ARRAY +); + +311 + g_cڋ +. + gasCi +. +r +(); + +312  + g_cڋ +. + gasCi +; + +315 + gCiDa + & +toObje +() { + +316 +tTy +( +VALUE_IS_OBJECT +); + +317 + g_cڋ +. + gasCi +. +r +(); + +318  + g_cڋ +. + gasCi +; + +321 +size_t + +memyUge +() const { + +322  +ty +()) { + +323  + gVALUE_IS_OWNED_STRING +: + +324  + +( +_cڋ +. +asSg +) + 1; + +325  + gVALUE_IS_OWNED_RAW +: + +326  +_cڋ +. +asRaw +. +size +; + +327  + gVALUE_IS_OBJECT +: + +328  +VALUE_IS_ARRAY +: + +329  +_cڋ +. +asCi +. +memyUge +(); + +335 +size_t + +ág +() const { + +336  +isCi +(? + g_cڋ +. + gasCi +. +ág +() : 0; + +339 +size_t + +size +() const { + +340  +isCi +(? + g_cڋ +. + gasCi +. +size +() : 0; + +343 +VDa + * +addEmt +( +MemyPo + * +po +) { + +344 i( +isNu +()) + +345 +toAay +(); + +346 i(! +isAay +()) + +348  + g_cڋ +. + gasCi +. +addEmt +( +po +); + +351 +VDa + * +gEmt +( +size_t + +dex +) const { + +352  +isAay +(? + g_cڋ +. + gasCi +. +gEmt +( +dex +) : 0; + +355 +VDa + * +gOrAddEmt +( +size_t + +dex +, +MemyPo + * +po +) { + +356 i( +isNu +()) + +357 +toAay +(); + +358 i(! +isAay +()) + +360  + g_cڋ +. + gasCi +. +gOrAddEmt +( +dex +, +po +); + +363 + gme + < +tyme + + gTAddSg +> + +364 +VDa + * +gMemb +( +TAddSg + +key +) const { + +365  +isObje +(? + g_cڋ +. + gasCi +. +gMemb +( +key +) : 0; + +368 + gme + < +tyme + + gTAddSg +> + +369 +VDa + * +gOrAddMemb +( +TAddSg + +key +, +MemyPo + * +po +) { + +370 i( +isNu +()) + +371 +toObje +(); + +372 i(! +isObje +()) + +374  + g_cڋ +. + gasCi +. +gOrAddMemb +( +key +, +po +); + +377  +movePors +( +rdiff_t + +rgDi +,diff_ +vDi +) { + +378 i( + g_ags + & + gVALUE_IS_OWNED +) + +379 + g_cڋ +. + gasSg + + +rgDi +; + +380 i( + g_ags + & + gCOLLECTION_MASK +) + +381 + g_cڋ +. + gasCi +. +movePors +( +rgDi +, +vDi +); + +384 + give +: + +385 +ut8_t + +ty +() const { + +386  +_ags + & +VALUE_MASK +; + +389  +tTy +( +ut8_t + +t +) { + +390 + g_ags + & +KEY_IS_OWNED +; + +391 + g_ags + | +t +; + +397 #i +defed +( +__GNUC__ +) + +398 #i +__GNUC__ + >= 8 + +399 #agm +GCC + +dgnoic + +p + + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantFunctions.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +11 + gme + < +tyme + + gVis +> + +12 +le +  +vAc +(cڡ +VDa + * +v +, +Vis + & +vis +) { + +13 i( + gv + != 0) + +14 +v +-> +ac +( +vis +); + +16 + gvis +. +visNu +(); + +19 +le + cڡ +CiDa + * +vAsAay +(cڡ +VDa + * +v +) { + +20  + gv + !0 ? +v +-> +asAay +() : 0; + +23 +le + cڡ +CiDa + * +vAsObje +(cڡ +VDa + * +v +) { + +24  + gv + !0 ? +v +-> +asObje +() : 0; + +27 +le + +CiDa + * +vAsObje +( +VDa + * +v +) { + +28  + gv + !0 ? +v +-> +asObje +() : 0; + +31 +le + +bo + +vCyFrom +( +VDa + * +d +, cڡ VD* +c +, + +32 +MemyPo + * +po +) { + +33 i(! + gd +) + +34  + gl +; + +35 i(! + gc +) { + +36 + gd +-> +tNu +(); + +37  + gue +; + +39  + gd +-> +cyFrom +(* +c +, +po +); + +42 +le + +bo + +vEqus +(cڡ +VDa + * +a +, cڡ VD* +b +) { + +43 i( + ga + = +b +) + +44  +ue +; + +45 i(! + ga + || ! + gb +) + +46  + gl +; + +47  + ga +-> +equs +(* +b +); + +50 +le + +bo + +vIsAay +(cڡ +VDa + * +v +) { + +51  + gv + && v-> +isAay +(); + +54 +le + +bo + +vIsBoޗn +(cڡ +VDa + * +v +) { + +55  + gv + && v-> +isBoޗn +(); + +58 + gme + < +tyme + + gT +> + +59 +le + +bo + +vIsIeg +(cڡ +VDa + * +v +) { + +60  + gv + && v-> + gisIeg +< + gT +>(); + +63 +le + +bo + +vIsFlt +(cڡ +VDa + * +v +) { + +64  + gv + && v-> +isFlt +(); + +67 +le + +bo + +vIsSg +(cڡ +VDa + * +v +) { + +68  + gv + && v-> +isSg +(); + +71 +le + +bo + +vIsObje +(cڡ +VDa + * +v +) { + +72  + gv + && v-> +isObje +(); + +75 +le + +bo + +vIsNu +(cڡ +VDa + * +v +) { + +76  + gv + =0 || +v +-> +isNu +(); + +79 +le + +bo + +vSBoޗn +( +VDa + * +v +, bo +vue +) { + +80 i(! + gv +) + +81  + gl +; + +82 + gv +-> +tBoޗn +( +vue +); + +83  + gue +; + +86 +le + +bo + +vSFlt +( +VDa + * +v +, +Flt + +vue +) { + +87 i(! + gv +) + +88  + gl +; + +89 + gv +-> +tFlt +( +vue +); + +90  + gue +; + +93 +le + +bo + +vSLkedRaw +( +VDa + * +v +, + +94 +SlizedVue + +vue +) { + +95 i(! + gv +) + +96  + gl +; + +97 + gv +-> +tLkedRaw +( +vue +); + +98  + gue +; + +101 + gme + < +tyme + + gT +> + +102 +le + +bo + +vSOwdRaw +( +VDa + * +v +, +SlizedVue +< +T +> +vue +, + +103 +MemyPo + * +po +) { + +104  + gv + !0 && +v +-> +tOwdRaw +( +vue +, +po +); + +107 + gme + < +tyme + + gT +> + +108 +le + +bo + +vSSigdIeg +( +VDa + * +v +, +T + +vue +) { + +109 i(! + gv +) + +110  + gl +; + +111 + gv +-> +tSigdIeg +( +vue +); + +112  + gue +; + +115 +le + +bo + +vSLkedSg +( +VDa + * +v +, cڡ * +vue +) { + +116 i(! + gv +) + +117  + gl +; + +118 + gv +-> +tLkedSg +( +vue +); + +119  + gue +; + +122 +le +  +vSNu +( +VDa + * +v +) { + +123 i(! + gv +) + +125 + gv +-> +tNu +(); + +128 +le + +bo + +vSOwdSg +( +VDa + * +v +, * +vue +) { + +129 i(! + gv +) + +130  + gl +; + +131 + gv +-> +tOwdSg +( +vue +); + +132  + gue +; + +135 + gme + < +tyme + + gT +> + +136 +le + +bo + +vSOwdSg +( +VDa + * +v +, +T + +vue +, +MemyPo + * +po +) { + +137  + gv + !0 && +v +-> +tOwdSg +( +vue +, +po +); + +140 +le + +bo + +vSUnsigdIeg +( +VDa + * +v +, +UI + +vue +) { + +141 i(! + gv +) + +142  + gl +; + +143 + gv +-> +tUnsigdIeg +( +vue +); + +144  + gue +; + +147 +le + +size_t + +vSize +(cڡ +VDa + * +v +) { + +148  + gv + !0 ? +v +-> +size +() : 0; + +151 +le + +CiDa + * +vToAay +( +VDa + * +v +) { + +152 i(! + gv +) + +154  & + gv +-> +toAay +(); + +157 +le + +CiDa + * +vToObje +( +VDa + * +v +) { + +158 i(! + gv +) + +160  & + gv +-> +toObje +(); + +163 +le + +NO_INLINE + +VDa + * +vAddEmt +(VD* +v +, + +164 +MemyPo + * +po +) { + +165  + gv + !0 ? +v +-> +addEmt +( +po +) : 0; + +168 +le + +NO_INLINE + +VDa + * +vGOrAddEmt +(VD* +v +, + +169 +size_t + +dex +, + +170 +MemyPo + * +po +) { + +171  + gv + !0 ? +v +-> +gOrAddEmt +( +dex +, +po +) : 0; + +174 + gme + < +tyme + + gTCh +> + +175 +NO_INLINE + +VDa + * +vGOrAddMemb +(VD* +v +, +TCh + * +key +, + +176 +MemyPo + * +po +) { + +177  + gv + !0 ? +v +-> +gOrAddMemb +( +adtSg +( +key +), +po +) : 0; + +180 + gme + < +tyme + + gTSg +> + +181 +NO_INLINE + +VDa + * +vGOrAddMemb +(VD* +v +, + +182 cڡ +TSg + & +key +, + +183 +MemyPo + * +po +) { + +184  + gv + !0 ? +v +-> +gOrAddMemb +( +adtSg +( +key +), +po +) : 0; + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +13  + ~ + +15 +mea + + gARDUINOJSON_NAMESPACE + { + +17 + gme + < +tyme + + gT +> + +18 +le + +T + + gVDa +:: +asIegl +() const { + +19  +ty +()) { + +20  +VALUE_IS_POSITIVE_INTEGER +: + +21  +VALUE_IS_BOOLEAN +: + +22  +cvtPosiveIeg +< +T +>( +_cڋ +. +asIeg +); + +23  + gVALUE_IS_NEGATIVE_INTEGER +: + +24  +cvtNegiveIeg +< +T +>( +_cڋ +. +asIeg +); + +25  + gVALUE_IS_LINKED_STRING +: + +26  +VALUE_IS_OWNED_STRING +: + +27  +rIeg +< +T +>( +_cڋ +. +asSg +); + +28  + gVALUE_IS_FLOAT +: + +29  +cvtFlt +< +T +>( +_cڋ +. +asFlt +); + +35 +le + +bo + + gVDa +:: +asBoޗn +() const { + +36  +ty +()) { + +37  +VALUE_IS_POSITIVE_INTEGER +: + +38  +VALUE_IS_BOOLEAN +: + +39  +VALUE_IS_NEGATIVE_INTEGER +: + +40  +_cڋ +. +asIeg + != 0; + +41  + gVALUE_IS_FLOAT +: + +42  +_cڋ +. +asFlt + != 0; + +43  + gVALUE_IS_NULL +: + +44  +l +; + +46  +ue +; + +51 + gme + < +tyme + + gT +> + +52 +le + +T + + gVDa +:: +asFlt +() const { + +53  +ty +()) { + +54  +VALUE_IS_POSITIVE_INTEGER +: + +55  +VALUE_IS_BOOLEAN +: + +56  +ic_ +< +T +>( +_cڋ +. +asIeg +); + +57  + gVALUE_IS_NEGATIVE_INTEGER +: + +58  - +ic_ +< +T +>( +_cڋ +. +asIeg +); + +59  + gVALUE_IS_LINKED_STRING +: + +60  +VALUE_IS_OWNED_STRING +: + +61  +rFlt +< +T +>( +_cڋ +. +asSg +); + +62  + gVALUE_IS_FLOAT +: + +63  +ic_ +< +T +>( +_cڋ +. +asFlt +); + +69 +le + cڡ * + gVDa +:: +asSg +() const { + +70  +ty +()) { + +71  +VALUE_IS_LINKED_STRING +: + +72  +VALUE_IS_OWNED_STRING +: + +73  +_cڋ +. +asSg +; + +79 + gme + < +tyme + + gTV +> + +80 +tyme + + gab_if +< + gIsVisab +< + gTV +>:: +vue +, + gbo +>:: +ty + +VRef +:: +t +( + +81 cڡ +TV + & +vue +) const { + +82 +VCڡRef + +v + = +vue +; + +83  +vCyFrom +( +_da +, +v +._da, +_po +); + +86 + gme + < +tyme + + gT +> + +87 +le + +tyme + + gab_if +< + gis_me +< + gT +, + gAayRef +>:: +vue +, T>:: +ty + +VRef +:: +as +() + +89  +AayRef +( +_po +, +_da + !0 ? _da-> +asAay +() : 0); + +92 + gme + < +tyme + + gT +> + +93 +le + +tyme + + gab_if +< + gis_me +< + gT +, + gObjeRef +>:: +vue +, T>:: +ty + + +94 +VRef +:: +as +() const { + +95  +ObjeRef +( +_po +, +vAsObje +( +_da +)); + +98 + gme + < +tyme + + gT +> + +99 +le + +tyme + + gab_if +< + gis_me +< + gT +, + gAayRef +>:: +vue +, AayRef>:: +ty + + +100 +VRef +:: +to +() const { + +101  +AayRef +( +_po +, +vToAay +( +_da +)); + +104 + gme + < +tyme + + gT +> + +105 +tyme + + gab_if +< + gis_me +< + gT +, + gObjeRef +>:: +vue +, ObjeRef>:: +ty + + +106 +VRef +:: +to +() const { + +107  +ObjeRef +( +_po +, +vToObje +( +_da +)); + +110 + gme + < +tyme + + gT +> + +111 +tyme + + gab_if +< + gis_me +< + gT +, + gVRef +>:: +vue +, VRef>:: +ty + + +112 +VRef +:: +to +() const { + +113 +vSNu +( +_da +); + +114  * + gthis +; + +117 +le + +VCڡRef + + gVCڡRef +:: +gEmt +( +size_t + +dex +) const { + +118  +AayCڡRef +( +_da + !0 ? _da-> +asAay +(: 0)[ +dex +]; + +121 +le + +VRef + + gVRef +:: +addEmt +() const { + +122  +VRef +( +_po +, +vAddEmt +( +_da +, _pool)); + +125 +le + +VRef + + gVRef +:: +gEmt +( +size_t + +dex +) const { + +126  +VRef +( +_po +, +_da + !0 ? _da-> +gEmt +( +dex +) : 0); + +129 +le + +VRef + + gVRef +:: +gOrAddEmt +( +size_t + +dex +) const { + +130  +VRef +( +_po +, +vGOrAddEmt +( +_da +, +dex +, _pool)); + +133 + gme + < +tyme + + gTCh +> + +134 +le + +VRef + + gVRef +:: +gMemb +( +TCh + * +key +) const { + +135  +VRef +( +_po +, +_da + !0 ? _da-> +gMemb +( +adtSg +( +key +)) : 0); + +138 + gme + < +tyme + + gTSg +> + +139 +le + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVRef +>:: +ty + + +140 +VRef +:: +gMemb +(cڡ +TSg + & +key +) const { + +141  +VRef +( +_po +, +_da + !0 ? _da-> +gMemb +( +adtSg +( +key +)) : 0); + +144 + gme + < +tyme + + gTCh +> + +145 +le + +VRef + + gVRef +:: +gOrAddMemb +( +TCh + * +key +) const { + +146  +VRef +( +_po +, +vGOrAddMemb +( +_da +, +key +, _pool)); + +149 + gme + < +tyme + + gTSg +> + +150 +le + +VRef + + gVRef +:: +gOrAddMemb +(cڡ +TSg + & +key +) const { + +151  +VRef +( +_po +, +vGOrAddMemb +( +_da +, +key +, _pool)); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantRef.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +16  + ~ + +18 +mea + + gARDUINOJSON_NAMESPACE + { + +21 +ass + + gAayRef +; + +22 +ass + + gObjeRef +; + +24 + gme + < + gtyme +,ypename> + +25 +ass + + gMembProxy +; + +28 + gme + < +tyme + + gTDa +> + +29 as + cVRefBa + { + +30 + gpublic +: + +43 +me + < +tyme + +T +> + +44 +FORCE_INLINE + +tyme + +ab_if +< +is_gl +< +T +>:: +vue +, + gbo +>:: +ty + +is +() + +46  +vIsIeg +< +T +>( +_da +); + +51 + gme + < +tyme + + gT +> + +52 +FORCE_INLINE + +tyme + + gab_if +< + gis_tg_pot +< + gT +>:: +vue +, + gbo +>:: +ty + +is +() + +54  +vIsFlt +( +_da +); + +58 + gme + < +tyme + + gT +> + +59 +FORCE_INLINE + +tyme + + gab_if +< + gis_me +< + gT +, + gbo +>:: +vue +, bo>:: +ty + +is +() + +61  +vIsBoޗn +( +_da +); + +68 + gme + < +tyme + + gT +> + +69 +FORCE_INLINE + +tyme + + gab_if +< + gis_me +< + gT +, cڡ *>:: +vue + || + +70 +is_me +< +T +, *>:: +vue + || + +71 +IsWrbSg +< +T +>:: +vue +, + +72 + gbo +>:: +ty + + +73 +is +() const { + +74  +vIsSg +( +_da +); + +79 + gme + < +tyme + + gT +> + +80 +FORCE_INLINE + +tyme + + gab_if +< + +81 + gis_me +< +tyme + + gmove_cڡ +< + gT +>:: +ty +, + gAayRef +>:: +vue +, + gbo +>::type + +82 +is +() const { + +83  +vIsAay +( +_da +); + +88 + gme + < +tyme + + gT +> + +89 +FORCE_INLINE + +tyme + + gab_if +< + +90 + gis_me +< +tyme + + gmove_cڡ +< + gT +>:: +ty +, + gObjeRef +>:: +vue +, + gbo +>::type + +91 +is +() const { + +92  +vIsObje +( +_da +); + +94 #i +ARDUINOJSON_HAS_NULLPTR + + +97 + gme + < +tyme + + gT +> + +98 +FORCE_INLINE + + +99 +tyme + + gab_if +< + gis_me +< + gT +, +dety +( +nuαr +)>:: +vue +, + gbo +>:: +ty + + +100 +is +() const { + +101  +vIsNu +( +_da +); + +105 +FORCE_INLINE + +bo + +isNu +() const { + +106  +vIsNu +( +_da +); + +109 +FORCE_INLINE + +bo + +isUndefed +() const { + +110  ! + g_da +; + +113 +FORCE_INLINE + +size_t + +memyUge +() const { + +114  + g_da + ? _da-> +memyUge +() : 0; + +117 +FORCE_INLINE + +size_t + +ág +() const { + +118  + g_da + ? _da-> +ág +() : 0; + +121 +size_t + +size +() const { + +122  +vSize +( +_da +); + +125 + geed +: + +126 +VRefBa +( +TDa + * +da +: +_da +(data) {} + +127 +TDa + * +_da +; + +137 +ass + + gVRef + : +public + +VRefBa +< +VDa +>, + +138 +public + + gVOts +< + gVRef +>, + +139 +public + + gVisab + { + +140  + gVRefBa +< + tVDa +> + tba_ty +; + +141 +nd + +ass + + gVCڡRef +; + +143 + gpublic +: + +145 +FORCE_INLINE + +VRef +( +MemyPo + * +po +, +VDa + * +da +) + +146 : +ba_ty +( +da +), +_po +( +po +) {} + +149 +FORCE_INLINE + +VRef +(: +ba_ty +(0), +_po +(0) {} + +151 +FORCE_INLINE +  +r +() const { + +152  +vSNu +( +_da +); + +156 + gme + < +tyme + + gT +> + +157 +FORCE_INLINE + +bo + +t +( + +158 +T + +vue +, +tyme + +ab_if +< +is_me +::vue>:: +ty + * = 0) const { + +159  +vSBoޗn +( +_da +, +vue +); + +164 + gme + < +tyme + + gT +> + +165 +FORCE_INLINE + +bo + +t +( + +166 +T + +vue +, + +167 +tyme + +ab_if +< +is_tg_pot +< +T +>:: +vue +>:: +ty + * = 0) const { + +168  +vSFlt +( +_da +, +ic_ +< +Flt +>( +vue +)); + +176 + gme + < +tyme + + gT +> + +177 +FORCE_INLINE + +bo + +t +( + +178 +T + +vue +, + +179 +tyme + +ab_if +< +is_gl +< +T +>:: +vue + && +is_sigd +::vue>:: +ty + * = + +181  +vSSigdIeg +( +_da +, +vue +); + +187 + gme + < +tyme + + gT +> + +188 +FORCE_INLINE + +bo + +t +( + +189 +T + +vue +, +tyme + +ab_if +< +is_gl +::value && + +190 +is_unsigd +< +T +>:: +vue +>:: +ty + * = 0) const { + +191  +vSUnsigdIeg +( +_da +, +ic_ +< +UI +>( +vue +)); + +195 +FORCE_INLINE + +bo + +t +( +SlizedVue + +vue +) const { + +196  +vSLkedRaw +( +_da +, +vue +); + +202 + gme + < +tyme + + gT +> + +203 +FORCE_INLINE + +bo + +t +( + +204 +SlizedVue +< +T +> +vue +, + +205 +tyme + +ab_if +:: +vue +>:: +ty + * = 0) const { + +206  +vSOwdRaw +( +_da +, +vue +, +_po +); + +211 + gme + < +tyme + + gT +> + +212 +FORCE_INLINE + +bo + +t +( + +213 cڡ +T + & +vue +, + +214 +tyme + +ab_if +< +IsSg +< +T +>:: +vue +>:: +ty + * = 0) const { + +215  +vSOwdSg +( +_da +, +adtSg +( +vue +), +_po +); + +220 + gme + < +tyme + + gT +> + +221 +FORCE_INLINE + +bo + +t +( + +222 +T + * +vue +, +tyme + +ab_if +< +IsSg +::vue>:: +ty + * = 0) const { + +223  +vSOwdSg +( +_da +, +adtSg +( +vue +), +_po +); + +227 +FORCE_INLINE + +bo + +t +(cڡ * +vue +) const { + +228  +vSLkedSg +( +_da +, +vue +); + +238 + gme + < +tyme + + gTV +> + +239 +tyme + + gab_if +< + gIsVisab +< + gTV +>:: +vue +, + gbo +>:: +ty + +t +( + +240 cڡ +TV + & +vue +) const; + +243 + gme + < +tyme + + gT +> + +244 +FORCE_INLINE + +bo + +t +( + +245 +T + +vue +, +tyme + +ab_if +< +is_um +::vue>:: +ty + * = 0) const { + +246  +vSSigdIeg +( +_da +, +ic_ +< +Ieg +>( +vue +)); + +253 + gme + < +tyme + + gT +> + +254 +FORCE_INLINE + +tyme + + gab_if +:: +vue + && + +255 ! +is_me +< +T +, + gObjeRef +>:: +vue + && + +256 ! +is_me +< +T +, + gVRef +>:: +vue +, + +257 +tyme + + gVAs +< + gT +>:: +ty +>::type + +258 +as +() const { + +259  +vAs +< +T +>( +_da +); + +264 + gme + < +tyme + + gT +> + +265 +FORCE_INLINE + +tyme + + gab_if +< + gis_me +< + gT +, + gAayRef +>:: +vue +, T>:: +ty + +as +() + +270 + gme + < +tyme + + gT +> + +271 +FORCE_INLINE + +tyme + + gab_if +< + gis_me +< + gT +, + gObjeRef +>:: +vue +, T>:: +ty + +as +() + +275 + gme + < +tyme + + gT +> + +276 +FORCE_INLINE + +tyme + + gab_if +< + gis_me +< + gT +, + gVRef +>:: +vue +, T>:: +ty + +as +() + +278  * +this +; + +281 + gme + < +tyme + + gVis +> + +282  +ac +( +Vis + & +vis +) const { + +283 +vAc +( +_da +, +vis +); + +286 +FORCE_INLINE + +bo + + gݔ +==( +VRef + +lhs +) const { + +287  +vEqus +( +_da +, +lhs +._data); + +290 +FORCE_INLINE + +bo + + gݔ +!=( +VRef + +lhs +) const { + +291  ! +vEqus +( +_da +, +lhs +._data); + +297 + gme + < +tyme + + gT +> + +298 +tyme + + gab_if +< + gis_me +< + gT +, + gAayRef +>:: +vue +, AayRef>:: +ty + +to +() const; + +301 + gme + < +tyme + + gT +> + +302 +tyme + + gab_if +< + gis_me +< + gT +, + gObjeRef +>:: +vue +, ObjeRef>:: +ty + +to +() const; + +305 + gme + < +tyme + + gT +> + +306 +tyme + + gab_if +< + gis_me +< + gT +, + gVRef +>:: +vue +, VRef>:: +ty + +to +() + +309 +VRef + +addEmt +() const; + +311 +FORCE_INLINE + +VRef + +gEmt +( +size_t +) const; + +313 +FORCE_INLINE + +VRef + +gOrAddEmt +( +size_t +) const; + +317 + gme + < +tyme + + gTCh +> + +318 +FORCE_INLINE + +VRef + +gMemb +( +TCh + *) const; + +322 + gme + < +tyme + + gTSg +> + +323 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVRef +>:: +ty + + +324 +gMemb +(cڡ +TSg + &) const; + +329 + gme + < +tyme + + gTCh +> + +330 +FORCE_INLINE + +VRef + +gOrAddMemb +( +TCh + *) const; + +334 + gme + < +tyme + + gTSg +> + +335 +FORCE_INLINE + +VRef + +gOrAddMemb +(cڡ +TSg + &) const; + +337 +FORCE_INLINE +  +move +( +size_t + +dex +) const { + +338 i( + g_da +) + +339 + g_da +-> +move +( +dex +); + +344 + gme + < +tyme + + gTCh +> + +345 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +>:: +ty + +move +( + +346 +TCh + * +key +) const { + +347 i( +_da +) + +348 +_da +-> +move +( +adtSg +( +key +)); + +352 + gme + < +tyme + + gTSg +> + +353 +FORCE_INLINE + +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +>:: +ty + +move +( + +354 cڡ +TSg + & +key +) const { + +355 i( +_da +) + +356 +_da +-> +move +( +adtSg +( +key +)); + +359 + give +: + +360 +MemyPo + * +_po +; + +363 +ass + + gVCڡRef + : +public + +VRefBa +, + +364 +public + + gVOts +< + gVCڡRef +>, + +365 +public + + gVisab + { + +366  + gVRefBa + + tba_ty +; + +367 +nd + +ass + + gVRef +; + +369 + gpublic +: + +370 +VCڡRef +(: +ba_ty +(0) {} + +371 +VCڡRef +(cڡ +VDa + * +da +: +ba_ty +(data) {} + +372 +VCڡRef +( +VRef + +v +: +ba_ty +(v. +_da +) {} + +374 +me + < +tyme + +Vis +> + +375  +ac +( +Vis + & +vis +) const { + +376 +vAc +( +_da +, +vis +); + +381 + gme + < +tyme + + gT +> + +382 +FORCE_INLINE + +tyme + + gVCڡAs +< + gT +>:: +ty + +as +() const { + +383  +vAs +< +tyme + +VCڡAs +< +T +>:: +ty +>( +_da +); + +386 +FORCE_INLINE + +VCڡRef + +gEmt +( +size_t +) const; + +388 +FORCE_INLINE + +VCڡRef + + gݔ +[]( +size_t + + gdex +) const { + +389  +gEmt +( +dex +); + +394 + gme + < +tyme + + gTSg +> + +395 +FORCE_INLINE + +VCڡRef + +gMemb +(cڡ +TSg + & +key +) const { + +396  +VCڡRef +( + +397 +objeGMemb +( +vAsObje +( +_da +), +adtSg +( +key +))); + +403 + gme + < +tyme + + gTCh +> + +404 +FORCE_INLINE + +VCڡRef + +gMemb +( +TCh + * +key +) const { + +405 cڡ +CiDa + * + gobj + = +vAsObje +( +_da +); + +406  +VCڡRef +( +obj + ? obj-> +gMemb +( +adtSg +( +key +)) : 0); + +411 + gme + < +tyme + + gTSg +> + +412 +FORCE_INLINE + + +413 +tyme + + gab_if +< + gIsSg +< + gTSg +>:: +vue +, + gVCڡRef +>:: +ty + + +414 +ݔ +[](cڡ +TSg + & +key +) const { + +415  +gMemb +( +key +); + +421 + gme + < +tyme + + gTCh +> + +422 +FORCE_INLINE + + +423 +tyme + + gab_if +< + gIsSg +< + gTCh + *>:: +vue +, + gVCڡRef +>:: +ty + + +424 +ݔ +[]( +TCh + * +key +) const { + +425  +gMemb +( +key +); + +428 +FORCE_INLINE + +bo + + gݔ +==( +VCڡRef + +lhs +) const { + +429  +vEqus +( +_da +, +lhs +._data); + +432 +FORCE_INLINE + +bo + + gݔ +!=( +VCڡRef + +lhs +) const { + +433  ! +vEqus +( +_da +, +lhs +._data); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp + +5 #agm + + + +7  + ~ + +8  + ~ + +9  + ~ + +11  + ~ + +13 +mea + + gARDUINOJSON_NAMESPACE + { + +15  + gcdiڮ +<(*<2, + tt8_t +, + tt16_t +>:: + tty + + tVSlDiff +; + +17 as + cVSl + { + +21 +VCڋ + + g_cڋ +; + +22 +ut8_t + + g_ags +; + +23 +VSlDiff + + g_xt +; + +24 cڡ * + g_key +; + +26 + gpublic +: + +33 +VDa +* +da +() { + +34  +t_ +< +VDa +*>(& +_cڋ +); + +37 cڡ +VDa +* +da +() const { + +38  + gt_ +(& + g_cڋ +); + +41 +VSl +* +xt +() { + +42  + g_xt + ? + gthis + + _next : 0; + +45 cڡ +VSl +* +xt +() const { + +46  + gcڡ_ +< + gVSl +*>( + gthis +)-> +xt +(); + +49 +VSl +* +xt +( +size_t + +di +) { + +50 +VSl +* + g + = +this +; + +51  + gdi +--) { + +52 i(! + g +-> + g_xt +) + +54 + g + + + +-> +_xt +; + +56  + g +; + +59 cڡ +VSl +* +xt +( +size_t + +di +) const { + +60  + gcڡ_ +< + gVSl +*>( + gthis +)-> +xt +( +di +); + +63  +tNext +( +VSl +* + +) { + +64 + g_xt + = +VSlDiff +( + + ? sl - +this + : 0); + +67  +tNextNNu +( +VSl +* + +) { + +68 +ARDUINOJSON_ASSERT +( + + != 0); + +69 + g_xt + = +VSlDiff +( + + - +this +); + +72  +tOwdKey +( +n_nu + +k +) { + +73 + g_ags + | +KEY_IS_OWNED +; + +74 + g_key + = +k +. +g +(); + +77  +tLkedKey +( +n_nu + +k +) { + +78 + g_ags + & +VALUE_MASK +; + +79 + g_key + = +k +. +g +(); + +82 cڡ * +key +() const { + +83  + g_key +; + +86 +bo + +ownsKey +() const { + +87  ( + g_ags + & + gKEY_IS_OWNED +) != 0; + +90  +r +() { + +91 + g_xt + = 0; + +92 + g_ags + = 0; + +93 + g_key + = 0; + +96  +movePors +( +rdiff_t + +rgDi +,diff_ +vDi +) { + +97 i( + g_ags + & + gKEY_IS_OWNED +) + +98 + g_key + + +rgDi +; + +99 i( + g_ags + & + gVALUE_IS_OWNED +) + +100 + g_cڋ +. + gasSg + + +rgDi +; + +101 i( + g_ags + & + gCOLLECTION_MASK +) + +102 + g_cڋ +. + gasCi +. +movePors +( +rgDi +, +vDi +); + + @lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp + +5 #agm + + + +7  + ~ + +9 +mea + + gARDUINOJSON_NAMESPACE + { + +10 +ass + + gAayRef +; + +11 +ass + + gObjeRef +; + +12 +ass + + gVRef +; + +16 + gme + < +tyme + + gT +> + +17  + sVTo + {}; + +19 + gme + <> + +20  + gVTo +< + gAayRef +> { + +21  +AayRef + + tty +; + +23 + gme + <> + +24  + gVTo +< + gObjeRef +> { + +25  +ObjeRef + + tty +; + +27 + gme + <> + +28  + gVTo +< + gVRef +> { + +29  +VRef + + tty +; + + @lib_standalone/ArduinoJson/src/ArduinoJson/compatibility.hpp + +7 #ifde +__GNUC__ + + +9  + #ARDUINOJSON_PRAGMA +( +x + + `_Pgma +(#x) + + ) + +11  + #ARDUINOJSON_COMPILE_ERROR +( +msg + + `ARDUINOJSON_PRAGMA +( +GCC + +r + msg) + + ) + +13  + #ARDUINOJSON_STRINGIFY +( +S +#S + + ) + +15  + #ARDUINOJSON_DEPRECATION_ERROR +( +X +, +Y +) \ + +16 + `ARDUINOJSON_COMPILE_ERROR +( + `ARDUINOJSON_STRINGIFY +( +X + +is + +a + +Y + +om + +ArduoJs + 5. +Pa + +e + +duojs +. +g +/ +upgde + +to + +ˬn + +how +upgd +your + +ogm +ArduoJs +vsi + 6)) + + ) + +18  + #SticJsBufr + + `ARDUINOJSON_DEPRECATION_ERROR +( +SticJsBufr +, +ass +) + + ) + +19  + #DymicJsBufr + + `ARDUINOJSON_DEPRECATION_ERROR +( +DymicJsBufr +, +ass +) + + ) + +20  + #JsBufr + + `ARDUINOJSON_DEPRECATION_ERROR +( +JsBufr +, +ass +) + + ) + +21  + #RawJs + + `ARDUINOJSON_DEPRECATION_ERROR +( +RawJs +, +funi +) + + ) + + @lib_standalone/ArduinoJson/src/ArduinoJson/version.hpp + +5 #agm + + + +7  + #ARDUINOJSON_VERSION + "6.15.0" + + ) + +8  + #ARDUINOJSON_VERSION_MAJOR + 6 + + ) + +9  + #ARDUINOJSON_VERSION_MINOR + 15 + + ) + +10  + #ARDUINOJSON_VERSION_REVISION + 0 + + ) + + @lib_standalone/AsyncJson.h + +2 #ide +ASYNC_JSON_H_ + + +3  + #ASYNC_JSON_H_ + + + ) + +4  + ~ + +5  + ~ + +7  + #DYNAMIC_JSON_DOCUMENT_SIZE + 1024 + + ) + +9 +cڡex + cڡ * + gJSON_MIMETYPE + = "application/json"; + +11 as + cChunkPrt + : +public + +Prt + { + +12 +ive +: + +13 +ut8_t + * +_dei +; + +14 +size_t + + m_to_sk +; + +15 +size_t + + m_to_wre +; + +16 +size_t + + m_pos +; + +18 + mpublic +: + +19 + $ChunkPrt +( +ut8_t + * +dei +, +size_t + +om +, size_ +n +) + +20 : + `_dei +( +dei +) + +21 , + `_to_sk +( +om +) + +22 , + `_to_wre +( +n +) + +23 , +_pos +{0} { + +24 + } +} + +25 + gvtu + ~ + $ChunkPrt +() { + +26 + } +} + +27 +size_t + + $wre +( +ut8_t + +c +) { + +28 i( +_to_sk + > 0) { + +29 +_to_sk +--; + +31 } i( +_to_wre + > 0) { + +32 +_to_wre +--; + +33 +_dei +[ +_pos +++] = +c +; + +37 + } +} + +38 +size_t + + $wre +(cڡ +ut8_t + * +bufr +, +size_t + +size +) { + +39  +this +-> +Prt +:: + `wre +( +bufr +, +size +); + +40 + } +} + +43 as + cAsyncJsReڣ + { + +44 + meed +: + +45 +DymicJsDocumt + +_jsBufr +; + +47 +JsV + + m_ro +; + +48 +bo + + m_isVid +; + +50 + mpublic +: + +51 + $AsyncJsReڣ +( +bo + +isAay + = +l +, +size_t + +maxJsBufrSize + = +DYNAMIC_JSON_DOCUMENT_SIZE +) + +52 : + `_jsBufr +( +maxJsBufrSize +) + +53 , +_isVid +{ +l +} { + +54 i( +isAay +) + +55 +_ro + = +_jsBufr +. + `NeedAay +(); + +57 +_ro + = +_jsBufr +. + `NeedObje +(); + +58 + } +} + +59 ~ + $AsyncJsReڣ +() { + +60 + } +} + +61 + gJsV + & + $gRo +() { + +62  +_ro +; + +63 + } +} + +64 +bo + + $_sourVid +() const { + +65  +_isVid +; + +66 + } +} + +67 +size_t + + $tLgth +() { + +69 + } +} + +71 +size_t + + $gSize +() { + +72  +_jsBufr +. + `size +(); + +73 + } +} + +75 +size_t + + $_flBufr +( +ut8_t + * +da +, +size_t + +n +) { + +76  +n +; + +77 + } +} + +80  + gd +:: + tfuni +<( + tAsyncWebSvReque + * + tque +, + tJsV + & + tjs +)> + tArJsRequeHdrFuni +; + +82 as + cAsyncClbackJsWebHdr + : +public + +AsyncWebHdr + { + +83 +ive +: + +84 +eed +: + +85 cڡ +Sg + +_uri +; + +86 +WebRequeMhodCompose + + m_mhod +; + +87 +ArJsRequeHdrFuni + + m_Reque +; + +88 +size_t + + m_cڋLgth +; + +89 +size_t + + m_maxCڋLgth +; + +91 + mpublic +: + +92 + $AsyncClbackJsWebHdr +(cڡ +Sg + & +uri +, +ArJsRequeHdrFuni + +Reque +, +size_t + +maxJsBufrSize + = +DYNAMIC_JSON_DOCUMENT_SIZE +) + +93 : + `_uri +( +uri +) + +94 , + `_mhod +( +HTTP_POST + | +HTTP_PUT + | +HTTP_PATCH +) + +95 , + `_Reque +( +Reque +) + +96 , + $_maxCڋLgth +(16384) { + +99  + $tMhod +( +WebRequeMhodCompose + +mhod +) { + +100 +_mhod + = +mhod +; + +101 + } +} + +102  + $tMaxCڋLgth +( +maxCڋLgth +) { + +103 +_maxCڋLgth + = +maxCڋLgth +; + +104 + } +} + +105  + $Reque +( +ArJsRequeHdrFuni + + +) { + +106 +_Reque + = + +; + +107 + } +} + +109 +vtu + +bo + + $nHd +( +AsyncWebSvReque + * +que + +ovride + +f + { + +110 i(! +_Reque +) + +111  +l +; + +113 i(!( +_mhod + & +que +-> + `mhod +())) + +114  +l +; + +116 +que +-> + `addIegHd +("ANY"); + +117  +ue +; + +118 + } +} + +120 +vtu +  + $hdReque +( +AsyncWebSvReque + * +que + +ovride + +f + { + +121 i( +_Reque +) { + +122 i( +que +-> +_mpObje + ! +NULL +) { + +123 +DymicJsDocumt + + `jsBufr +(1024); + +124 +DerliziE + +r + = + `derlizeJs +( +jsBufr +, ( +ut8_t + *)( +que +-> +_mpObje +)); + +125 i(! +r +) { + +126 +JsV + +js + = +jsBufr +. +as +(); + +128 + `_Reque +( +que +, +js +); + +132 +que +-> + `nd +( +_cڋLgth + > +_maxCڋLgth + ? 413 : 400); + +134 +que +-> + `nd +(500); + +136 + } +} + +137 +vtu +  + $hdUd +( +AsyncWebSvReque + * +que +, cڡ +Sg + & +fame +, +size_t + +dex +, +ut8_t + * +da +, size_ +n +, +bo + +f + +ovride + final { + +138 + } +} + +139 +vtu +  + $hdBody +( +AsyncWebSvReque + * +que +, +ut8_t + * +da +, +size_t + +n +, size_ +dex +, size_ +tٮ + +ovride + +f + { + +140 i( +_Reque +) { + +141 +_cڋLgth + = +tٮ +; + +142 i( +tٮ + > 0 && +que +-> +_mpObje + = +NULL + &&ٮ < +_maxCڋLgth +) { + +143 +que +-> +_mpObje + = + `mloc +( +tٮ +); + +145 i( +que +-> +_mpObje + ! +NULL +) { + +146 + `memy +(( +ut8_t + *)( +que +-> +_mpObje ++ +dex +, +da +, +n +); + +149 + } +} + +150 +vtu + +bo + + $isRequeHdrTrivl +( +ovride + +f + { + +151  +_Reque + ? +l + : +ue +; + +152 + } +} + + @lib_standalone/AsyncMqttClient.h + +1 #ide +ASYNCMQTTCLIENT_H_ + + +2  + #ASYNCMQTTCLIENT_H_ + + + ) + +4  + ~"Arduo.h +" + +5  + ~ + +7 as + cAsyncMqClDiscRs + : +t8_t + { + +8 +TCP_DISCONNECTED + = 0, + +10 + mMQTT_UNACCEPTABLE_PROTOCOL_VERSION + = 1, + +11 + mMQTT_IDENTIFIER_REJECTED + = 2, + +12 + mMQTT_SERVER_UNAVAILABLE + = 3, + +13 + mMQTT_MALFORMED_CREDENTIALS + = 4, + +14 + mMQTT_NOT_AUTHORIZED + = 5, + +16 + mESP8266_NOT_ENOUGH_SPACE + = 6, + +18 + mTLS_BAD_FINGERPRINT + = 7 + +21  + sAsyncMqClMesgePrݔts + { + +22 +ut8_t + + mqos +; + +23 +bo + + mdup +; + +24 +bo + + m +; + +27 +mea + + gAsyncMqClIls + { + +29  + gd +:: + tfuni +<( + tbo + + tssiP +)> + tOnCUrClback +; + +30  + gd +:: + tfuni +<( + tAsyncMqClDiscRs + + tas +)> + tOnDiscUrClback +; + +31  + gd +:: + tfuni +<( + tut16_t + + tckId +, + tut8_t + + tqos +)> + tOnSubsibeUrClback +; + +32  + gd +:: + tfuni +<( + tut16_t + + tckId +)> + tOnUnsubsibeUrClback +; + +33  + gd +:: + tfuni +<(* + ttic +, * + tyld +, + tAsyncMqClMesgePrݔts + + tݔts +, + tsize_t + + tn +, size_ + tdex +, size_ + ttٮ +)> + tOnMesgeUrClback +; + +34  + gd +:: + tfuni +<( + tut16_t + + tckId +)> + tOnPublishUrClback +; + +37 as + cAsyncMqCl + { + +38 + mpublic +: + +39 +AsyncMqCl +(); + +40 ~ +AsyncMqCl +(); + +42 + mAsyncMqCl + & +tKpAlive +( +ut16_t + +kpAlive +); + +43 + mAsyncMqCl + & +tClId +(cڡ * +Id +); + +44 + mAsyncMqCl + & +tC˪Sessi +( +bo + +nSessi +); + +45 + mAsyncMqCl + & +tMaxTicLgth +( +ut16_t + +maxTicLgth +); + +46 + mAsyncMqCl + & +tCdtls +(cڡ * +uame +, cڡ * +sswd + = +nuαr +); + +47 + mAsyncMqCl + & + $tWl +(cڡ * +tic +, +ut8_t + +qos +, +bo + + +, cڡ * +yld + = +nuαr +, +size_t + +ngth + = 0) { + +48  * +this +; + +50 +AsyncMqCl + & + `tSv +( +IPAddss + + +, +ut16_t + +pt +); + +51 +AsyncMqCl + & + `tSv +(cڡ * +ho +, +ut16_t + +pt +); + +53 +AsyncMqCl + & + $C +( +AsyncMqClIls +:: +OnCUrClback + +back +) { + +54  * +this +; + +55 + } +} + +56 + gAsyncMqCl + & + $Disc +( +AsyncMqClIls +:: +OnDiscUrClback + +back +) { + +57  * +this +; + +58 + } +} + +59 + gAsyncMqCl + & + $Subsibe +( +AsyncMqClIls +:: +OnSubsibeUrClback + +back +) { + +60  * +this +; + +61 + } +} + +62 + gAsyncMqCl + & + $Unsubsibe +( +AsyncMqClIls +:: +OnUnsubsibeUrClback + +back +) { + +63  * +this +; + +64 + } +} + +65 + gAsyncMqCl + & + $Mesge +( +AsyncMqClIls +:: +OnMesgeUrClback + +back +) { + +66  * +this +; + +67 + } +} + +68 + gAsyncMqCl + & + $Publish +( +AsyncMqClIls +:: +OnPublishUrClback + +back +) { + +69  * +this +; + +70 + } +} + +72 +bo + + $ced +() const { + +73  +l +; + +74 + } +} + +75  + $c +() { + +76 + } +} + +77  + $disc +( +bo + +f + = +l +) { + +78 + } +} + +79 +ut16_t + + $subsibe +(cڡ * +tic +, +ut8_t + +qos +) { + +81 + } +} + +82 +ut16_t + + $unsubsibe +(cڡ * +tic +) { + +84 + } +} + +85 +ut16_t + + $publish +(cڡ * +tic +, +ut8_t + +qos +, +bo + + +, cڡ * +yld + = +nuαr +, +size_t + +ngth + = 0, bo +dup + = +l +, +ut16_t + +mesge_id + = 0) { + +87 + } +} + +89 cڡ * + $gClId +() { + +91 + } +} + +93 + give +: + +94 +bo + +_ced +; + +95 +bo + + g_cPackNEnoughS +; + +96 +bo + + g_discOnPl +; + +97 +bo + + g_sBadFgt +; + +98 +ut32_t + + g_ϡClAivy +; + +99 +ut32_t + + g_ϡSvAivy +; + +100 +ut32_t + + g_ϡPgRequeTime +; + +101  + g_gedClId +[18 + 1]; + +102 +IPAddss + + g_ +; + +103 cڡ * + g_ho +; + +104 +bo + + g_uIp +; + +105 +ut16_t + + g_pt +; + +106 +ut16_t + + g_kpAlive +; + +107 +bo + + g_nSessi +; + +108 cڡ * + g_Id +; + +109 cڡ * + g_uame +; + +110 cڡ * + g_sswd +; + +111 cڡ * + g_wlTic +; + +112 cڡ * + g_wlPayld +; + +113 +ut16_t + + g_wlPayldLgth +; + +114 +ut8_t + + g_wlQos +; + +115 +bo + + g_wlRa +; + + @lib_standalone/AsyncTCP.h + +1 #ide +ASYNCTCP_H_ + + +2  + #ASYNCTCP_H_ + + + ) + +4  + ~"Arduo.h +" + +5  + ~ + +7 +ass + + gAsyncCl +; + +9  + gt_pcb +; + +10  + g_addr +; + +12 as + cAsyncCl + { + +13 + mpublic +: + +14 +AsyncCl +( +t_pcb + * +pcb + = 0); + +15 ~ +AsyncCl +(); + +18 as + cAsyncSv + { + +19 + mpublic +: + +20 + $AsyncSv +( +ut16_t + +pt +) + +21 : + $_pt +( +pt +){}; + +22 ~ + $AsyncSv +(){ + } +}; + +24 + geed +: + +25 +ut16_t + +_pt +; + + @lib_standalone/ESP8266React.h + +1 #ide +ESP8266R_h + + +2  + #ESP8266R_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +7  + ~ + +8  + ~ + +9  + ~ + +10  + ~ + +11  + ~ + +12  + ~ + +14 as + cDummyStgs + { + +15 + mpublic +: + +16 +ut8_t + +tx_mode + = 1; + +17 +ut8_t + + mems_bus_id + = 0x0B; + +18 +bo + + msyem_hbt + = +l +; + +19 +t8_t + + msyog_v + = 1; + +20 +ut32_t + + msyog_mk_rv + = 0; + +21 +Sg + + msyog_ho + = "192.168.1.4"; + +22 +ut8_t + + mma_thmo + = 0; + +23 +bo + + mshow_tim + = +l +; + +24 +bo + + mshow_t + = +l +; + +25 +bo + + mhide_d + = +l +; + +26 +ut16_t + + mpublish_time + = 10; + +27 +ut8_t + + mmq_fm + = 3; + +28 +ut8_t + + mmq_qos + = 0; + +29 +Sg + + mhome + = "ems-esp"; + +30 +Sg + + mjwtSe + = "ems-esp"; + +31 +Sg + + mssid + = "ems-esp"; + +32 +Sg + + msswd + = "ems-esp"; + +33 +ut16_t + + mpublish_time_bo +; + +34 +ut16_t + + mpublish_time_thmo +; + +35 +ut16_t + + mpublish_time_sެ +; + +36 +ut16_t + + mpublish_time_mixg +; + +37 +ut16_t + + mpublish_time_h +; + +38 +ut16_t + + mpublish_time_ns +; + +40  + $ad +( +DummyStgs + & +gs +, +JsObje + & +ro +){}; + +41  + $ad +( +DummyStgs + & +gs +){ + } +}; + +43  +SUpdeResu + + $upde +( +JsObje + & +ro +, +DummyStgs + & +gs +) { + +44  +SUpdeResu +:: +CHANGED +; + +45 + } +} + +48 +ass + + gDummyStgsSvi + : +public + +SfulSvi +< +DummyStgs +> { + +49 +public +: + +50 +DummyStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +, +SecuryMag + * +curyMag +){}; + +52  +beg +(); + +53  +lo +(); + +55 + give +: + +58  + #WiFiStgs + +DummyStgs + + + ) + +59  + #SecuryStgs + +DummyStgs + + + ) + +60  + #MqStgs + +DummyStgs + + + ) + +62 as + cESP8266R + { + +63 + mpublic +: + +64 + $ESP8266R +( +AsyncWebSv + * +rv +, +FS + * +fs +) + +65 : + `_gs +( +rv +, +fs +, +nuαr +) + +66 , + $_curyStgsSvi +( +rv +, +fs +){}; + +68  + $beg +(){ + } +}; + +69  + $lo +(){ + } +}; + +71 +SecuryMag + * + $gSecuryMag +() { + +72  & +_curyStgsSvi +; + +73 + } +} + +75 +AsyncMqCl + * + $gMqCl +() { + +76  +_mqCl +; + +77 + } +} + +79 + gSfulSvi +< + gDummyStgs +> * + $gWiFiStgsSvi +() { + +80  & +_gs +; + +81 + } +} + +83 + gSfulSvi +< + gDummyStgs +> * + $gSecuryStgsSvi +() { + +84  & +_gs +; + +85 + } +} + +87 + gSfulSvi +< + gDummyStgs +> * + $gMqStgsSvi +() { + +88  & +_gs +; + +89 + } +} + +91 + give +: + +92 +DummyStgsSvi + +_gs +; + +93 +SecuryStgsSvi + + g_curyStgsSvi +; + +95 +AsyncMqCl + * + g_mqCl +; + +98 as + cEMSESPStgsSvi + { + +99 + mpublic +: + +100 +EMSESPStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +, +SecuryMag + * +curyMag +); + +102  +beg +(); + +104 + mive +: + + @lib_standalone/ESPAsyncWebServer.h + +1 #ide +_ESPAsyncWebSv_H_ + + +2  + #_ESPAsyncWebSv_H_ + + + ) + +4  + ~"Arduo.h +" + +6  + ~ + +7  + ~ + +8  + ~ + +10 +ass + + gAsyncWebSv +; + +11 +ass + + gAsyncWebSvReque +; + +12 +ass + + gAsyncWebSvReڣ +; + +13 +ass + + gAsyncJsReڣ +; + +16 + mHTTP_GET + = 0b00000001, + +17 + mHTTP_POST + = 0b00000010, + +18 + mHTTP_DELETE + = 0b00000100, + +19 + mHTTP_PUT + = 0b00001000, + +20 + mHTTP_PATCH + = 0b00010000, + +21 + mHTTP_HEAD + = 0b00100000, + +22 + mHTTP_OPTIONS + = 0b01000000, + +23 + mHTTP_ANY + = 0b01111111, + +24 } + tWebRequeMhod +; + +26  +ut8_t + + tWebRequeMhodCompose +; + +27  + gd +:: + tfuni +<()> + tArDiscHdr +; + +29 as + cAsyncWebSvReque + { + +30 +nd + +ass + + mAsyncWebSv +; + +31 +nd + +ass + + mAsyncClbackWebHdr +; + +33 + mive +: + +34 +AsyncCl + * +_ +; + +35 +AsyncWebSv + * + m_rv +; + +36 +WebRequeMhodCompose + + m_mhod +; + +38 + mpublic +: + +39 * +_mpObje +; + +41 +AsyncWebSvReque +( +AsyncWebSv + *, +AsyncCl + *); + +42 ~ +AsyncWebSvReque +(); + +44 +AsyncCl + * + $ +() { + +45  +_ +; + +48 +WebRequeMhodCompose + + $mhod +() const { + +49  +_mhod +; + +50 + } +} + +52  + $addIegHd +(cڡ +Sg + & +me +){ + } +}; + +54  + $nd +( +AsyncWebSvReڣ + * +ڣ +){ + } +}; + +55  + $nd +( +AsyncJsReڣ + * +ڣ +){ + } +}; + +56  +nd +( +code +, cڡ +Sg + & +cڋTy + = Sg(), cڡ Sg & +cڋ + = + $Sg +()){ + } +}; + +58 +AsyncWebSvReڣ + * +begReڣ +( +code +, cڡ +Sg + & +cڋTy + = Sg(), cڡ Sg & +cڋ + = + $Sg +()) { + +60  +nuαr +; + +61 + } +} + +63 +size_t + + $hds +() const; + +64 +size_t + + $ms +() const; + +65 + } +}; + +67  + gd +:: + tfuni +< + tbo +( + tAsyncWebSvReque + * + tque +)> + tArRequeFrFuni +; + +69 as + cAsyncWebHdr + { + +70 + meed +: + +71 +Sg + +_uame +; + +72 +Sg + + m_sswd +; + +74 + mpublic +: + +75 + $AsyncWebHdr +() + +76 : + `_uame +("") + +77 , + `_sswd +("") { + +80 +vtu + ~ + $AsyncWebHdr +() { + +81 + } +} + +82 +vtu + +bo + +nHd +( +AsyncWebSvReque + * +que + +__ibu__ +(( +unud +))) { + +83  + gl +; + +85 +vtu +  +hdReque +( +AsyncWebSvReque + * +que + +__ibu__ +(( +unud +))) { + +87 +vtu +  +hdUd +( +AsyncWebSvReque + * +que + +__ibu__ +(( +unud +)), + +88 cڡ +Sg + & +fame + +__ibu__ +(( +unud +)), + +89 +size_t + +dex + +__ibu__ +(( +unud +)), + +90 +ut8_t + * +da + +__ibu__ +(( +unud +)), + +91 +size_t + +n + +__ibu__ +(( +unud +)), + +92 +bo + +f + +__ibu__ +(( +unud +))) { + +94 +vtu +  +hdBody +( +AsyncWebSvReque + * +que + +__ibu__ +(( +unud +)), + +95 +ut8_t + * +da + +__ibu__ +(( +unud +)), + +96 +size_t + +n + +__ibu__ +(( +unud +)), + +97 +size_t + +dex + +__ibu__ +(( +unud +)), + +98 +size_t + +tٮ + +__ibu__ +(( +unud +))) { + +101 +vtu + +bo + + $isRequeHdrTrivl +() { + +102  +ue +; + +103 + } +} + +106 as + cAsyncWebSvReڣ + { + +107 + mpublic +: + +108 +AsyncWebSvReڣ +(); + +109 + mvtu + ~ +AsyncWebSvReڣ +(); + +112  + gd +:: + tfuni +<( + tAsyncWebSvReque + * + tque +)> + tArRequeHdrFuni +; + +113  + gd +:: + tfuni +<( + tAsyncWebSvReque + * + tque +, cڡ + tSg + & + tfame +, + tsize_t + + tdex +, + tut8_t + * + tda +, size_ + tn +, + tbo + + tf +)> + tArUdHdrFuni +; + +114  + gd +:: + tfuni +<( + tAsyncWebSvReque + * + tque +, + tut8_t + * + tda +, + tsize_t + + tn +, size_ + tdex +, size_ + ttٮ +)> + tArBodyHdrFuni +; + +116 as + cAsyncWebSv + { + +117 + meed +: + +118 +AsyncSv + +_rv +; + +120 + mpublic +: + +121 + $AsyncWebSv +( +ut16_t + +pt +) + +122 : + $_rv +( +pt +){}; + +124 ~ + $AsyncWebSv +(){ + } +}; + +126  + $beg +(){ + } +}; + +127  +d +(); + +129 + gAsyncWebHdr + & + $addHdr +( +AsyncWebHdr + * +hdr +) { + +130  * +hdr +; + +131 + } +} + +133  + $ +(cڡ * +uri +, +WebRequeMhodCompose + +mhod +, +ArRequeHdrFuni + +Reque +){ + } +}; + + @lib_standalone/FS.h + +1 #ide +FS_h + + +2  + #FS_h + + + ) + +4 as + cFS + { + +5 +bo + + $ݒ +() { + +6  +ue +; + +8 + } +}; + + @lib_standalone/FSPersistence.h + +1 #ide +FSPsi_h + + +2  + #FSPsi_h + + + ) + +4  + ~ + +5  + ~ + +7 + gme + < +ass + + gT +> + +8 as + cFSPsi + { + +9 + mpublic +: + +10 +FSPsi +( +JsSRd +< +T +> +eRd +, + +11 +JsSUpd +< +T +> +eUpd +, + +12 +SfulSvi +< +T +> * +efulSvi +, + +13 +FS + * +fs +, + +14 cڡ * +fePh +, + +15 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) + +16 : +_eRd +( +eRd +) + +17 , +_eUpd +( +eUpd +) + +18 , +_efulSvi +( +efulSvi +) + +19 , +_fs +( +fs +) + +20 , +_fePh +( +fePh +) + +21 , +_bufrSize +( +bufrSize +) + +22 , + $_updeHdrId +(0) { + +23 + `abUpdeHdr +(); + +26  + $adFromFS +() { + +27 + `yDeus +(); + +28 + } +} + +30 +bo + + $wreToFS +() { + +31 +DymicJsDocumt + +jsDocumt + = + `DymicJsDocumt +( +_bufrSize +); + +32 +JsObje + +jsObje + = +jsDocumt +. +to +(); + +33 +_efulSvi +-> + `ad +( +jsObje +, +_eRd +); + +34  +ue +; + +35 + } +} + +37  + $dibUpdeHdr +() { + +38 i( +_updeHdrId +) { + +39 +_efulSvi +-> + `moveUpdeHdr +( +_updeHdrId +); + +40 +_updeHdrId + = 0; + +42 + } +} + +44  + $abUpdeHdr +() { + +45 i(! +_updeHdrId +) { + +46 +_updeHdrId + = +_efulSvi +-> + `addUpdeHdr +([&](cڡ +Sg + & +igId +{ + `wreToFS +(); }); + +48 + } +} + +50 + give +: + +51 +JsSRd +< +T +> +_eRd +; + +52 + gJsSUpd +< + gT +> + g_eUpd +; + +53 + gSfulSvi +< + gT +> * + g_efulSvi +; + +54 +FS + * + g_fs +; + +55 cڡ * + g_fePh +; + +56 +size_t + + g_bufrSize +; + +57 +upde_hdr_id_t + + g_updeHdrId +; + +59 + geed +: + +60 +vtu +  + $yDeus +() { + +61 +DymicJsDocumt + +jsDocumt + = + `DymicJsDocumt +( +_bufrSize +); + +62 +JsObje + +jsObje + = +jsDocumt +. +as +(); + +63 +_efulSvi +-> + `updeWhoutPragi +( +jsObje +, +_eUpd +); + +64 + } +} + + @lib_standalone/Features.h + +1 #ide +Ftus_h + + +2  + #Ftus_h + + + ) + +4  + #FT_ENABLED +( +u + + ) +feature + +7 #ide +FT_PROJECT + + +8  + #FT_PROJECT + 0 + + ) + +12 #ide +FT_SECURITY + + +13  + #FT_SECURITY + 0 + + ) + +17 #ide +FT_MQTT + + +18  + #FT_MQTT + 0 + + ) + +22 #ide +FT_NTP + + +23  + #FT_NTP + 0 + + ) + +27 #ide +FT_OTA + + +28  + #FT_OTA + 0 + + ) + +32 #ide +FT_UPLOAD_FIRMWARE + + +33  + #FT_UPLOAD_FIRMWARE + 0 + + ) + + @lib_standalone/HttpEndpoint.h + +1 #ide +HpEndpot_h + + +2  + #HpEndpot_h + + + ) + +4  + ~ + +6  + ~ + +7  + ~ + +9  + ~ + +10  + ~ + +12  + #HTTP_ENDPOINT_ORIGIN_ID + "hp" + + ) + +14 + gme + < +ass + + gT +> + +15 as + cHpGEndpot + { + +16 + mpublic +: + +17 +HpGEndpot +( +JsSRd +< +T +> +eRd +, + +18 +SfulSvi +< +T +>* +efulSvi +, + +19 +AsyncWebSv +* +rv +, + +20 cڡ +Sg +& +rviPh +, + +21 +SecuryMag +* +curyMag +, + +22 +AuthtitiPdi + +authtitiPdi + = +AuthtitiPdis +:: +IS_ADMIN +, + +23 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +24 +_eRd +( +eRd +), +_efulSvi +( +efulSvi +), + $_bufrSize +( +bufrSize +) { + +27 + `HpGEndpot +( +JsSRd +< +T +> +eRd +, + +28 +SfulSvi +< +T +>* +efulSvi +, + +29 +AsyncWebSv +* +rv +, + +30 cڡ +Sg +& +rviPh +, + +31 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +32 + `_eRd +( +eRd +), + `_efulSvi +( +efulSvi +), + $_bufrSize +( +bufrSize +) { + +33 + } +} + +35 + geed +: + +36 +JsSRd +< +T +> +_eRd +; + +37 + gSfulSvi +< + gT +>* + g_efulSvi +; + +38 +size_t + + g_bufrSize +; + +40  + $tchStgs +( +AsyncWebSvReque +* +que +) { + +41 + } +} + +44 + gme + < +ass + + gT +> + +45 as + cHpPoEndpot + { + +46 + mpublic +: + +47 +HpPoEndpot +( +JsSRd +< +T +> +eRd +, + +48 +JsSUpd +< +T +> +eUpd +, + +49 +SfulSvi +< +T +>* +efulSvi +, + +50 +AsyncWebSv +* +rv +, + +51 cڡ +Sg +& +rviPh +, + +52 +SecuryMag +* +curyMag +, + +53 +AuthtitiPdi + +authtitiPdi + = +AuthtitiPdis +:: +IS_ADMIN +, + +54 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +55 +_eRd +( +eRd +), + +56 +_eUpd +( +eUpd +), + +57 +_efulSvi +( +efulSvi +), + +58 + $_bufrSize +( +bufrSize +) { + +61 + `HpPoEndpot +( +JsSRd +< +T +> +eRd +, + +62 +JsSUpd +< +T +> +eUpd +, + +63 +SfulSvi +< +T +>* +efulSvi +, + +64 +AsyncWebSv +* +rv +, + +65 cڡ +Sg +& +rviPh +, + +66 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +67 + `_eRd +( +eRd +), + +68 + `_eUpd +( +eUpd +), + +69 + `_efulSvi +( +efulSvi +), + +70 + $_bufrSize +( +bufrSize +) { + +71 + } +} + +73 + geed +: + +74 +JsSRd +< +T +> +_eRd +; + +75 + gJsSUpd +< + gT +> + g_eUpd +; + +76 + gSfulSvi +< + gT +>* + g_efulSvi +; + +77 +size_t + + g_bufrSize +; + +79  + $updeStgs +( +AsyncWebSvReque +* +que +, +JsV +& +js +) { + +80 i(! +js +. +is +< +JsObje +>()) { + +83 +JsObje + +jsObje + = +js +. +as +(); + +84 +SUpdeResu + +outcome + = +_efulSvi +-> + `updeWhoutPragi +( +jsObje +, +_eUpd +); + +85 i( +outcome + = +SUpdeResu +:: +ERROR +) { + +88 i( +outcome + = +SUpdeResu +:: +CHANGED +) { + +90 + } +} + +93 + gme + < +ass + + gT +> + +94 +ass + + gHpEndpot + : +public + +HpGEndpot +< +T +>,ubli + gHpPoEndpot +< + gT +> { + +95 + gpublic +: + +96 +HpEndpot +( +JsSRd +< +T +> +eRd +, + +97 +JsSUpd +< +T +> +eUpd +, + +98 +SfulSvi +< +T +>* +efulSvi +, + +99 +AsyncWebSv +* +rv +, + +100 cڡ +Sg +& +rviPh +, + +101 +SecuryMag +* +curyMag +, + +102 +AuthtitiPdi + +authtitiPdi + = +AuthtitiPdis +:: +IS_ADMIN +, + +103 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +104 +HpGEndpot +< +T +>( +eRd +, + +105 + gefulSvi +, + +106 + grv +, + +107 + grviPh +, + +108 + gcuryMag +, + +109 + gauthtitiPdi +, + +110 + gbufrSize +), + +111 + gHpPoEndpot +< + gT +>( + geRd +, + +112 + geUpd +, + +113 + gefulSvi +, + +114 + grv +, + +115 + grviPh +, + +116 + gcuryMag +, + +117 + gauthtitiPdi +, + +118 + gbufrSize +) { + +121 +HpEndpot +( +JsSRd +< +T +> +eRd +, + +122 +JsSUpd +< +T +> +eUpd +, + +123 +SfulSvi +< +T +>* +efulSvi +, + +124 +AsyncWebSv +* +rv +, + +125 cڡ +Sg +& +rviPh +, + +126 +size_t + +bufrSize + = +DEFAULT_BUFFER_SIZE +) : + +127 +HpGEndpot +< +T +>( +eRd +, + gefulSvi +, + grv +, + grviPh +, + gbufrSize +), + +128 + gHpPoEndpot +< + gT +>( + geRd +, + geUpd +, + gefulSvi +, + grv +, + grviPh +, + gbufrSize +) { + + @lib_standalone/MqttPubSub.h + + @lib_standalone/SecurityManager.h + +1 #ide +SecuryMag_h + + +2  + #SecuryMag_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +7  + ~ + +8  + ~
  • + +10 #ide +FACTORY_JWT_SECRET + + +11  + #FACTORY_JWT_SECRET + +ESPUts +:: + `deuDeviVue +() + + ) + +14  + #ACCESS_TOKEN_PARAMATER + "acss_tok" + + ) + +16  + #AUTHORIZATION_HEADER + "Authizi" + + ) + +17  + #AUTHORIZATION_HEADER_PREFIX + "B" + + ) + +18  + #AUTHORIZATION_HEADER_PREFIX_LEN + 7 + + ) + +20  + #MAX_JWT_SIZE + 128 + + ) + +22 as + cUr + { + +23 + mpublic +: + +24 +Sg + +uame +; + +25 +Sg + + msswd +; + +26 +bo + + madm +; + +28 + mpublic +: + +29 + $Ur +( +Sg + +uame +, Sg +sswd +, +bo + +adm +) + +30 : + `uame +( +uame +) + +31 , + `sswd +( +sswd +) + +32 , + $adm +( +adm +) { + +34 + } +}; + +36 as + cAuthtiti + { + +37 + mpublic +: + +38 +Ur + * +ur +; + +39 +boޗn + + mauthtid +; + +41 + mpublic +: + +42 + $Authtiti +( +Ur + & +ur +) + +43 : + `ur +( +w + + `Ur +( +ur +)) + +44 , + $authtid +( +ue +) { + +46 + $Authtiti +() + +47 : + `ur +( +nuαr +) + +48 , + $authtid +( +l +) { + +49 + } +} + +50 ~ + $Authtiti +() { + +51 + `de + ( +ur +); + +52 + } +} + +55  + gd +:: + tfuni +< + tboޗn +( + tAuthtiti + & + tauthtiti +)> + tAuthtitiPdi +; + +57 as + cAuthtitiPdis + { + +58 + mpublic +: + +59  +bo + + $NONE_REQUIRED +( +Authtiti + & +authtiti +) { + +60  +ue +; + +62  +bo + + $IS_AUTHENTICATED +( +Authtiti + & +authtiti +) { + +63  +authtiti +. +authtid +; + +64 + } +}; + +65  +bo + + $IS_ADMIN +( +Authtiti + & +authtiti +) { + +66  +authtiti +. +authtid + &&uthtiti. +ur +-> +adm +; + +67 + } +}; + +70 as + cSecuryMag + { + +71 + mpublic +: + +72 #i + $FT_ENABLED +( +FT_SECURITY +) + +73 +vtu + +Authtiti + + `authti +(cڡ +Sg + & +uame +, cڡ Sg & +sswd +) = 0; + +74 +vtu + +Sg + + `geJWT +( +Ur + * +ur +) = 0; + +77 +vtu + +Authtiti + + `authtiReque +( +AsyncWebSvReque + * +que +) = 0; + +78 +vtu + +ArRequeFrFuni + + `frReque +( +AuthtitiPdi + +edi +) = 0; + +79 +vtu + +ArRequeHdrFuni + + `wpReque +(ArRequeHdrFuni +Reque +, +AuthtitiPdi + +edi +) = 0; + +80 +vtu + +ArJsRequeHdrFuni + + `wpClback +(ArJsRequeHdrFuni +Reque +, +AuthtitiPdi + +edi +) = 0; + + @lib_standalone/SecuritySettingsService.cpp + +1  + ~ + +3 #i +FT_ENABLED +( +FT_SECURITY +) + +5 + gSecuryStgsSvi +:: + $SecuryStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +) : + +6 + `_hpEndpot +( +SecuryStgs +:: +ad +, SecuryStgs:: +upde +, +this +, +rv +, +SECURITY_SETTINGS_PATH +,his), + +7 + `_fsPsi +( +SecuryStgs +:: +ad +, SecuryStgs:: +upde +, +this +, +fs +, +SECURITY_SETTINGS_FILE +), + +8 + $_jwtHdr +( +FACTORY_JWT_SECRET +) { + +9 + `addUpdeHdr +([&](cڡ +Sg +& +igId +{ + `cfiguJWTHdr +(); }, +l +); + +10 + } +} + +12  + gSecuryStgsSvi +:: + $beg +() { + +13 +_fsPsi +. + `adFromFS +(); + +14 + `cfiguJWTHdr +(); + +15 + } +} + +17 +Authtiti + + gSecuryStgsSvi +:: + $authtiReque +( +AsyncWebSvReque +* +que +) { + +18 +AsyncWebHd +* +authiziHd + = +que +-> + `gHd +( +AUTHORIZATION_HEADER +); + +19 i( +authiziHd +) { + +20 +Sg + +vue + = +authiziHd +-> + `vue +(); + +21 i( +vue +. + `tsWh +( +AUTHORIZATION_HEADER_PREFIX +)) { + +22 +vue + = vue. + `subrg +( +AUTHORIZATION_HEADER_PREFIX_LEN +); + +23  + `authtiJWT +( +vue +); + +25 } i( +que +-> + `hasPam +( +ACCESS_TOKEN_PARAMATER +)) { + +26 +AsyncWebPam +* +tokPam + = +que +-> + `gPam +( +ACCESS_TOKEN_PARAMATER +); + +27 +Sg + +vue + = +tokPam +-> + `vue +(); + +28  + `authtiJWT +( +vue +); + +30  + `Authtiti +(); + +31 + } +} + +33  + gSecuryStgsSvi +:: + $cfiguJWTHdr +() { + +34 +_jwtHdr +. + `tSe +( +_e +. +jwtSe +); + +35 + } +} + +37 +Authtiti + + gSecuryStgsSvi +:: + $authtiJWT +( +Sg +& +jwt +) { + +38 +DymicJsDocumt + + `yldDocumt +( +MAX_JWT_SIZE +); + +39 +_jwtHdr +. + `rJWT +( +jwt +, +yldDocumt +); + +40 i( +yldDocumt +. +is +< +JsObje +>()) { + +41 +JsObje + +rdPayld + = +yldDocumt +. +as +(); + +42 +Sg + +uame + = +rdPayld +["username"]; + +43  +Ur + +_ur + : +_e +. +urs +) { + +44 i( +_ur +. +uame + =uam&& + `videPayld +( +rdPayld +, &_user)) { + +45  + `Authtiti +( +_ur +); + +49  + `Authtiti +(); + +50 + } +} + +52 +Authtiti + + gSecuryStgsSvi +:: + $authti +(cڡ +Sg +& +uame +, cڡ Sg& +sswd +) { + +53  +Ur + +_ur + : +_e +. +urs +) { + +54 i( +_ur +. +uame + =uam&& _ur. +sswd + ==assword) { + +55  + `Authtiti +( +_ur +); + +58  + `Authtiti +(); + +59 + } +} + +61 +le +  + $puϋJWTPayld +( +JsObje +& +yld +, +Ur +* +ur +) { + +62 +yld +["uame"] = +ur +-> +uame +; + +63 +yld +["adm"] = +ur +-> +adm +; + +64 +yld +["vsi"] = +EMSESP_APP_VERSION +; + +65 + } +} + +67 +boޗn + + gSecuryStgsSvi +:: + $videPayld +( +JsObje +& +rdPayld +, +Ur +* +ur +) { + +68 +DymicJsDocumt + + `jsDocumt +( +MAX_JWT_SIZE +); + +69 +JsObje + +yld + = +jsDocumt +. +to +(); + +70 + `puϋJWTPayld +( +yld +, +ur +); + +71  +yld + = +rdPayld +; + +72 + } +} + +74 +Sg + + gSecuryStgsSvi +:: + $geJWT +( +Ur +* +ur +) { + +75 +DymicJsDocumt + + `jsDocumt +( +MAX_JWT_SIZE +); + +76 +JsObje + +yld + = +jsDocumt +. +to +(); + +77 + `puϋJWTPayld +( +yld +, +ur +); + +78  +_jwtHdr +. + `budJWT +( +yld +); + +79 + } +} + +81 +ArRequeFrFuni + + gSecuryStgsSvi +:: + $frReque +( +AuthtitiPdi + +edi +) { + +82  [ +this +, +edi +]( +AsyncWebSvReque +* +que +) { + +83 +Authtiti + +authtiti + = + `authtiReque +( +que +); + +84  + `edi +( +authtiti +); + +86 + } +} + +88 +ArRequeHdrFuni + + gSecuryStgsSvi +:: + $wpReque +( +ArRequeHdrFuni + +Reque +, + +89 +AuthtitiPdi + +edi +) { + +90  [ +this +, +Reque +, +edi +]( +AsyncWebSvReque +* +que +) { + +91 +Authtiti + +authtiti + = + `authtiReque +( +que +); + +92 i(! + `edi +( +authtiti +)) { + +93 +que +-> + `nd +(401); + +96 + `Reque +( +que +); + +98 + } +} + +100 +ArJsRequeHdrFuni + + gSecuryStgsSvi +:: + $wpClback +( +ArJsRequeHdrFuni + +Reque +, + +101 +AuthtitiPdi + +edi +) { + +102  [ +this +, +Reque +, +edi +]( +AsyncWebSvReque +* +que +, +JsV +& +js +) { + +103 +Authtiti + +authtiti + = + `authtiReque +( +que +); + +104 i(! + `edi +( +authtiti +)) { + +105 +que +-> + `nd +(401); + +108 + `Reque +( +que +, +js +); + +110 + } +} + +114 +Ur + + gADMIN_USER + = Ur( +FACTORY_ADMIN_USERNAME +, +FACTORY_ADMIN_PASSWORD +, +ue +); + +116 + gSecuryStgsSvi +:: + $SecuryStgsSvi +( +AsyncWebSv +* +rv +, +FS +* +fs +: + $SecuryMag +() { + +117 + } +} + +118 +SecuryStgsSvi +::~ + $SecuryStgsSvi +() { + +119 + } +} + +121 +ArRequeFrFuni + +SecuryStgsSvi +:: + $frReque +( +AuthtitiPdi + +edi +) { + +122  [ +this +, +edi +]( +AsyncWebSvReque +* +que +{  +ue +; }; + +123 + } +} + +126 +Authtiti + + gSecuryStgsSvi +:: + $authtiReque +( +AsyncWebSvReque +* +que +) { + +127  + `Authtiti +( +ADMIN_USER +); + +128 + } +} + +131 +ArRequeHdrFuni + + gSecuryStgsSvi +:: + $wpReque +( +ArRequeHdrFuni + +Reque +, + +132 +AuthtitiPdi + +edi +) { + +133  +Reque +; + +134 + } +} + +136 +ArJsRequeHdrFuni + + gSecuryStgsSvi +:: + $wpClback +( +ArJsRequeHdrFuni + +Reque +, + +137 +AuthtitiPdi + +edi +) { + +138  +Reque +; + +139 + } +} + + @lib_standalone/SecuritySettingsService.h + +1 #ide +SecuryStgsSvi_h + + +2  + #SecuryStgsSvi_h + + + ) + +4  + ~ + +5  + ~ + +6  + ~ + +7  + ~ + +9  + ~"../../c/vsi.h +" + +11 #ide +FACTORY_ADMIN_USERNAME + + +12  + #FACTORY_ADMIN_USERNAME + "adm" + + ) + +15 #ide +FACTORY_ADMIN_PASSWORD + + +16  + #FACTORY_ADMIN_PASSWORD + "adm" + + ) + +19 #ide +FACTORY_GUEST_USERNAME + + +20  + #FACTORY_GUEST_USERNAME + "gue" + + ) + +23 #ide +FACTORY_GUEST_PASSWORD + + +24  + #FACTORY_GUEST_PASSWORD + "gue" + + ) + +27  + #SECURITY_SETTINGS_FILE + "/cfig/curyStgs.js" + + ) + +28  + #SECURITY_SETTINGS_PATH + "//curyStgs" + + ) + +30 #i +FT_ENABLED +( +FT_SECURITY +) + +32 as + cSecuryStgs + { + +33 + mpublic +: + +34 +Sg + +jwtSe +; + +35 + md +:: +li +< +Ur +> +urs +; + +37  + $ad +( +SecuryStgs + & +gs +, +JsObje + & +ro +) { + +39 +ro +["jwt_"] = +gs +. +jwtSe +; + +42 +JsAay + +urs + = +ro +. + `NeedAay +("users"); + +43  +Ur + +ur + : +gs +. +urs +) { + +44 +JsObje + +urRo + = +urs +. + `NeedObje +(); + +45 +urRo +["uame"] = +ur +. +uame +; + +46 +urRo +["sswd"] = +ur +. +sswd +; + +47 +urRo +["adm"] = +ur +. +adm +; + +51  +SUpdeResu + + $upde +( +JsObje + & +ro +, +SecuryStgs + & +gs +) { + +53 +gs +. +jwtSe + = +ro +["jwt_"] | +FACTORY_JWT_SECRET +; + +56 +gs +. +urs +. + `r +(); + +57 i( +ro +["urs"]. +is +< +JsAay +>()) { + +58  +JsV + +ur + : +ro +["urs"]. +as +< +JsAay +>()) { + +59 +gs +. +urs +. + `push_back +( + `Ur +( +ur +["username"], user["password"], user["admin"])); + +62 +gs +. +urs +. + `push_back +( + `Ur +( +FACTORY_ADMIN_USERNAME +, +FACTORY_ADMIN_PASSWORD +, +ue +)); + +63 +gs +. +urs +. + `push_back +( + `Ur +( +FACTORY_GUEST_USERNAME +, +FACTORY_GUEST_PASSWORD +, +l +)); + +65  +SUpdeResu +:: +CHANGED +; + +66 + } +} + +69 +ass + + gSecuryStgsSvi + : +public + +SfulSvi +< +SecuryStgs +>,ubli + gSecuryMag + { + +70 + gpublic +: + +71 +SecuryStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +); + +73  +beg +(); + +76 +Authtiti + +authti +(cڡ +Sg + & +uame +, cڡ Sg & +sswd +); + +77 +Authtiti + +authtiReque +( +AsyncWebSvReque + * +que +); + +78 +Sg + +geJWT +( +Ur + * +ur +); + +79 +ArRequeFrFuni + +frReque +( +AuthtitiPdi + +edi +); + +80 +ArRequeHdrFuni + +wpReque +(ArRequeHdrFuni +Reque +, +AuthtitiPdi + +edi +); + +81 +ArJsRequeHdrFuni + +wpClback +(ArJsRequeHdrFuni +back +, +AuthtitiPdi + +edi +); + +83 + give +: + +84 +HpEndpot +< +SecuryStgs +> +_hpEndpot +; + +85 + gFSPsi +< + gSecuryStgs +> + g_fsPsi +; + +86 +ArduoJsJWT + + g_jwtHdr +; + +88  +cfiguJWTHdr +(); + +89 +Authtiti + +authtiJWT +( +Sg + & +jwt +); + +90 +boޗn + +videPayld +( +JsObje + & +rdPayld +, +Ur + * +ur +); + +95 as + cSecuryStgsSvi + : +public + +SecuryMag + { + +96 +public +: + +97 +SecuryStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +); + +98 ~ +SecuryStgsSvi +(); + +101 +Authtiti + +authtiReque +( +AsyncWebSvReque + * +que +); + +102 +ArRequeFrFuni + +frReque +( +AuthtitiPdi + +edi +); + +103 +ArRequeHdrFuni + +wpReque +(ArRequeHdrFuni +Reque +, +AuthtitiPdi + +edi +); + +104 +ArJsRequeHdrFuni + +wpClback +(ArJsRequeHdrFuni +Reque +, +AuthtitiPdi + +edi +); + + @lib_standalone/StatefulService.cpp + +1  + ~ + +3 +upde_hdr_id_t + + gSUpdeHdrInfo +:: +cutUpdedHdrId + = 0; + + @lib_standalone/StatefulService.h + +1 #ide +SfulSvi_h + + +2  + #SfulSvi_h + + + ) + +4  + ~ + +5  + ~ + +7  + ~
  • + +8  + ~ + +10 #ide +DEFAULT_BUFFER_SIZE + + +11  + #DEFAULT_BUFFER_SIZE + 1024 + + ) + +14 as + cSUpdeResu + { + +15 + mCHANGED + = 0, + +16 + mUNCHANGED +, + +17 + mERROR + + +20 + gme + < +tyme + + gT +> + +21 +usg + + gJsSUpd + = +d +:: +funi +< +SUpdeResu +( +JsObje + & +ro +, +T + & +gs +)>; + +23 + gme + < +tyme + + gT +> + +24 +usg + + gJsSRd + = +d +:: +funi +<( +T + & +gs +, + gJsObje + & + gro +)>; + +26  +size_t + + tupde_hdr_id_t +; + +27  + gd +:: + tfuni +<(cڡ + tSg + & + tigId +)> + tSUpdeClback +; + +29  + sSUpdeHdrInfo + { + +30  +upde_hdr_id_t + + mcutUpdedHdrId +; + +31 +upde_hdr_id_t + + m_id +; + +32 +SUpdeClback + + m_cb +; + +33 +bo + + m_lowRemove +; + +34 +SUpdeHdrInfo +( +SUpdeClback + +cb +, +bo + +lowRemove +) + +35 : +_id +(++ +cutUpdedHdrId +) + +36 , +_cb +( +cb +) + +37 , +_lowRemove +( +lowRemove +){}; + +38 } + tSUpdeHdrInfo_t +; + +40 + gme + < +ass + + gT +> + +41 as + cSfulSvi + { + +42 + mpublic +: + +43 +me + < +tyme +... +Args +> + +44 #ifde +ESP32 + + +45 + $SfulSvi +( +Args + &&... +gs +) + +46 : + `_e +( +d +:: +fwd +< +Args +>( +gs +)...) + +47 , + `_acssMux +( + $xSemheCeRecursiveMux +()) { + +50 + $SfulSvi +( +Args + &&... +gs +) + +51 : + `_e +( +d +:: +fwd +< +Args +>( +gs +)...) { + +52 + } +} + +55 +upde_hdr_id_t + + $addUpdeHdr +( +SUpdeClback + +cb +, +bo + +lowRemove + = +ue +) { + +56 i(! +cb +) { + +59 +SUpdeHdrInfo_t + + `updeHdr +( +cb +, +lowRemove +); + +60 +_updeHdrs +. + `push_back +( +updeHdr +); + +61  +updeHdr +. +_id +; + +62 + } +} + +64  + $moveUpdeHdr +( +upde_hdr_id_t + +id +) { + +65 aut +i + = +_updeHdrs +. + `beg +(); i !_updeHdrs. + `d +();) { + +66 i((* +i +). +_lowRemove + && (*i). +_id + = +id +) { + +67 +i + = +_updeHdrs +. + `a +(i); + +69 ++ +i +; + +72 + } +} + +74 +SUpdeResu + +upde +( +d +:: +funi + +eUpd +, cڡ +Sg + & +igId +) { + +75 +begTni +(); + +76 +SUpdeResu + + gsu + = +eUpd +( +_e +); + +77 +dTni +(); + +78 i( + gsu + = +SUpdeResu +:: +CHANGED +) { + +79 +UpdeHdrs +( +igId +); + +81  + gsu +; + +84 +SUpdeResu + +updeWhoutPragi +( +d +:: +funi + +eUpd +) { + +85 +begTni +(); + +86 +SUpdeResu + + gsu + = +eUpd +( +_e +); + +87 +dTni +(); + +88  + gsu +; + +91 +SUpdeResu + +upde +( +JsObje + & +jsObje +, +JsSUpd +< +T +> +eUpd +, cڡ +Sg + & +igId +) { + +92 +begTni +(); + +93 +SUpdeResu + + gsu + = +eUpd +( +jsObje +, +_e +); + +94 +dTni +(); + +95 i( + gsu + = +SUpdeResu +:: +CHANGED +) { + +96 +UpdeHdrs +( +igId +); + +98  + gsu +; + +101 +SUpdeResu + +updeWhoutPragi +( +JsObje + & +jsObje +, +JsSUpd +< +T +> +eUpd +) { + +102 +begTni +(); + +103 +SUpdeResu + + gsu + = +eUpd +( +jsObje +, +_e +); + +104 +dTni +(); + +105  + gsu +; + +108  +ad +( +d +:: +funi +<( +T + &)> +eRd +) { + +109 +begTni +(); + +110 +eRd +( +_e +); + +111 +dTni +(); + +114  +ad +( +JsObje + & +jsObje +, +JsSRd +< +T +> +eRd +) { + +115 +begTni +(); + +116 +eRd +( +_e +, +jsObje +); + +117 +dTni +(); + +120  + $UpdeHdrs +(cڡ +Sg + & +igId +) { + +121 cڡ +SUpdeHdrInfo_t + & +updeHdr + : +_updeHdrs +) { + +122 +updeHdr +. + `_cb +( +igId +); + +124 + } +} + +126 + geed +: + +127 +T + +_e +; + +129 +le +  + $begTni +() { + +130 #ifde +ESP32 + + +131 + `xSemheTakeRecursive +( +_acssMux +, +ptMAX_DELAY +); + +133 + } +} + +135 +le +  + $dTni +() { + +136 #ifde +ESP32 + + +137 + `xSemheGiveRecursive +( +_acssMux +); + +139 + } +} + +141 + give +: + +142 #ifde +ESP32 + + +143 +SemheHd_t + +_acssMux +; + +145 + gd +:: +li +< +SUpdeHdrInfo_t +> +_updeHdrs +; + + @lib_standalone/WString.cpp + +2  + ~ + +3  + ~"WSg.h +" + +12 +size_t + + $y +(* +__ri + +d +, cڡ * __ri +c +, +size_t + +dsize +) { + +13 cڡ * +oc + = +c +; + +14 +size_t + +e + = +dsize +; + +17 i( +e + != 0) { + +18 -- +e + != 0) { + +19 i((* +d +++ = * +c +++) == '\0') + +25 i( +e + == 0) { + +26 i( +dsize + != 0) + +27 * +d + = '\0'; + +28 * +c +++) + +32  ( +c + - +oc + - 1); + +33 + } +} + +44 +size_t + + $t +(* +d +, cڡ * +c +, +size_t + +siz +) { + +45 * +d + = +d +; + +46 cڡ * +s + = +c +; + +47 +size_t + +n + = +siz +; + +48 +size_t + +dn +; + +51  +n +-- !0 && * +d + != '\0') + +52 +d +++; + +53 +dn + = +d + - +d +; + +54 +n + = +siz + - +dn +; + +56 i( +n + == 0) + +57  ( +dn + + + ` +( +s +)); + +58 * +s + != '\0') { + +59 i( +n + != 1) { + +60 * +d +++ = * +s +; + +61 +n +--; + +63 +s +++; + +65 * +d + = '\0'; + +67  ( +dn + + ( +s + - +c +)); + +68 + } +} + + @lib_standalone/WString.h + +2 #ide +WSTRING_H + + +3  + #WSTRING_H + + + ) + +5  + ~ + +8 as + cSg + { + +9 + mpublic +: + +10 +Sg + & +ݔ ++=(cڡ * +rhs +) { + +11 +_r + + +rhs +; + +12  * + mthis +; + +15 +size_t + + $ngth +() const { + +16  +_r +. + `size +(); + +17 + } +} + +19 +Sg +(cڡ * +r + = "") + +20 : + $_r +( +r +) { + +21 + } +} + +23 cڡ * + $c_r +() const { + +24  +_r +. + `c_r +(); + +25 + } +} + +27 +bo + + gݔ +==(cڡ * +s +) const { + +28  +_r + = +s +; + +31 +nd + + gd +:: +oam + & +ݔ +<<( +d +::oam & +lhs +, cڡ :: +Sg + & +rhs +) { + +32 +lhs + << +rhs +. +_r +; + +33  + glhs +; + +37 +bo + + $isEmy +() { + +38  +_r +. + `emy +(); + +39 + } +} + +45 +bo + + $equs +(cڡ * +s +) { + +46  +_r + = +s +; + +47 + } +} + +50 + give +: + +51 +d +:: +rg + +_r +; + +54 +ass + + gSgSumHr +; + +56 +le + +bo + + gݔ +==(cڡ +d +:: +rg + & +lhs +, cڡ :: +Sg + & +rhs +) { + +57  +lhs + = +rhs +. +c_r +(); + +61 +size_t + +y +(* +__ri + +d +, cڡ * __ri +c +, size_ +dsize +); + +62 +size_t + +t +(* +d +, cڡ * +c +, size_ +siz +); + +64  + #_P + + + + + ) + +65  + #y_P + +y + + + ) + +66  + #rcmp_P + +rcmp + + + ) + +67  + #ry_P + +ry + + + ) + + @lib_standalone/WebSocketTxRx.h + + @lib_standalone/emsuart_standalone.cpp + +19  + ~"emsut_de.h +" + +21 #agm +GCC + +dgnoic + +push + + +22 #agm +GCC + +dgnoic + +igned + "-Wunused-parameter" + +24 +mea + + gem + { + +29  + gEMSut +:: +t +( +ut8_t + +tx_mode +, ut8_ +rx_gpio +, ut8_ +tx_gpio +) { + +36  + gEMSut +:: + +() { + +42  +EMSut +:: +t +() { + +49  +EMSut +:: +nd_pl +( +ut8_t + +da +) { + +57 +ut16_t + +EMSut +:: +sm +( +ut8_t + * +buf +, ut8_ +n +) { + +58 i( + gn + == 0) { + +59  +EMS_TX_STATUS_OK +; + +64 + gSl +. +t +("UART SENDING: "); + +65  + gs +[5]; + +66  +ut8_t + + gi + = 0; i < + gn +; i++) { + +67 + gSl +. +t +( +hext +( +s +, +buf +[ +i +])); + +68 + gSl +. +t +(" "); + +70 + gSl +. +n +(); + +72  + gEMS_TX_STATUS_OK +; + +76 * + gEMSut +:: +hext +(* +su +, cڡ +ut8_t + +vue +) { + +77 * + gp + = +su +; + +78 +ut8_t + + gnib1 + = ( +vue + >> 4) & 0x0F; + +79 +ut8_t + + gnib2 + = ( +vue + >> 0) & 0x0F; + +80 * + gp +++ = +nib1 + < 0xA ? '0' +ib1 : 'A' +ib1 - 0xA; + +81 * + gp +++ = +nib2 + < 0xA ? '0' +ib2 : 'A' +ib2 - 0xA; + +82 * + gp + = '\0'; + +83  + gsu +; + +88 #agm +GCC + +dgnoic + +p + + + @lib_standalone/emsuart_standalone.h + +19 #ide +EMSESP_EMSUART_H + + +20  + #EMSESP_EMSUART_H + + + ) + +22  + ~ + +24 +mea + + gem + { + +26  + #EMS_TX_STATUS_ERR + 0 + + ) + +27  + #EMS_TX_STATUS_OK + 1 + + ) + +29 as + cEMSut + { + +30 + gpublic +: + +31 +EMSut +() = ; + +32 ~ +EMSut +() = ; + +34  +t +( +ut8_t + +tx_mode +, ut8_ +rx_gpio +, ut8_ +tx_gpio +); + +35  + +(); + +36  +t +(); + +37  +nd_pl +( +ut8_t + +da +); + +38  +ut16_t + +sm +( +ut8_t + * +buf +, ut8_ +n +); + +40 + give +: + +41 * +hext +(* +su +, cڡ +ut8_t + +vue +); + + @src/EMSESPDevicesService.cpp + +19  + ~"EMSESPDevisSvi.h +" + +20  + ~"em.h +" + +21  + ~"mq.h +" + +23 +mea + + gem + { + +25 +usg + +mea + + gd +:: +ahds +; + +27 + gEMSESPDevisSvi +:: +EMSESPDevisSvi +( +AsyncWebSv + * +rv +, +SecuryMag + * +curyMag +) + +28 : +_devi_daHdr +( +DEVICE_DATA_SERVICE_PATH +, + +29 +curyMag +-> +wpClback +( +d +:: +bd +(& +EMSESPDevisSvi +:: +devi_da +, +this +, +_1 +, +_2 +), +AuthtitiPdis +:: +IS_AUTHENTICATED +)) { + +30 +rv +-> + +( +EMSESP_DEVICES_SERVICE_PATH +, + +31 +HTTP_GET +, + +32 +curyMag +-> +wpReque +( +d +:: +bd +(& +EMSESPDevisSvi +:: +l_devis +, +this +, +_1 +), +AuthtitiPdis +:: +IS_AUTHENTICATED +)); + +34 + grv +-> + +( +SCAN_DEVICES_SERVICE_PATH +, + +35 +HTTP_GET +, + +36 +curyMag +-> +wpReque +( +d +:: +bd +(& +EMSESPDevisSvi +:: +sn_devis +, +this +, +_1 +), +AuthtitiPdis +:: +IS_AUTHENTICATED +)); + +38 + g_devi_daHdr +. +tMhod +( +HTTP_POST +); + +39 + g_devi_daHdr +. +tMaxCڋLgth +(256); + +40 + grv +-> +addHdr +(& +_devi_daHdr +); + +43  + gEMSESPDevisSvi +:: +sn_devis +( +AsyncWebSvReque + * +que +) { + +44 +EMSESP +:: +sn_devis +(); + +45 + gque +-> +nd +(200); + +48  + gEMSESPDevisSvi +:: +l_devis +( +AsyncWebSvReque + * +que +) { + +49 +AsyncJsReڣ + * +ڣ + = +w + AsyncJsReڣ( +l +, +MAX_EMSESP_DEVICE_SIZE +); + +50 +JsObje + + gro + = +ڣ +-> +gRo +(); + +52 +JsAay + + gdevis + = +ro +. +NeedAay +("devices"); + +53 cڡut& + gemsdevi + : +EMSESP +:: +emsdevis +) { + +54 i( +emsdevi +) { + +55 +JsObje + +obj + = +devis +. +NeedObje +(); + +56 + gobj +["id"] = +emsdevi +-> +unique_id +(); + +57 + gobj +["ty"] = +emsdevi +-> +devi_ty_me +(); + +58 + gobj +["bnd"] = +emsdevi +-> +bnd_to_rg +(); + +59 + gobj +["me"] = +emsdevi +-> +me +(); + +60 + gobj +["deviid"] = +emsdevi +-> +g_devi_id +(); + +61 + gobj +["oduid"] = +emsdevi +-> +odu_id +(); + +62 + gobj +["vsi"] = +emsdevi +-> +vsi +(); + +66 +JsAay + + gnss + = +ro +. +NeedAay +("sensors"); + +67 i(! + gEMSESP +:: +ns_devis +(). +emy +()) { + +68 cڡut& +ns + : +EMSESP +:: +ns_devis +()) { + +69 +JsObje + +obj + = +nss +. +NeedObje +(); + +70 + gobj +["id"] = +ns +. +to_rg +(); + +71 + gobj +["mp"] = +ns +. +mtu_c +; + +75 + gڣ +-> +tLgth +(); + +76 + gque +-> +nd +( +ڣ +); + +79  + gEMSESPDevisSvi +:: +devi_da +( +AsyncWebSvReque + * +que +, +JsV + & +js +) { + +80 i( + gjs +. + gis +< + gJsObje +>()) { + +81 +AsyncJsReڣ + * + gڣ + = +w + AsyncJsReڣ( +l +, +MAX_EMSESP_DEVICE_SIZE +); + +82 #ide +EMSESP_STANDALONE + + +83 +ut8_t + + gid + = +js +["id"]; + +84 + gEMSESP +:: +devi_fo_web +( +id +, ( +JsObje + &) +ڣ +-> +gRo +()); + +86 + gڣ +-> +tLgth +(); + +87 + gque +-> +nd +( +ڣ +); + +89 +AsyncWebSvReڣ + * + gڣ + = +que +-> +begReڣ +(200); + +90 + gque +-> +nd +( +ڣ +); + + @src/EMSESPDevicesService.h + +19 #ide +EMSESPDevisSvi_h + + +20  + #EMSESPDevisSvi_h + + + ) + +22  + ~ + +23  + ~ + +24  + ~ + +25  + ~ + +27  + #MAX_EMSESP_DEVICE_SIZE + 1700 + + ) + +29  + #EMSESP_DEVICES_SERVICE_PATH + "//lDevis" + + ) + +30  + #SCAN_DEVICES_SERVICE_PATH + "//snDevis" + + ) + +31  + #DEVICE_DATA_SERVICE_PATH + "//deviDa" + + ) + +33 +mea + + gem + { + +35 as + cEMSESPDevisSvi + { + +36 + gpublic +: + +37 +EMSESPDevisSvi +( +AsyncWebSv + * +rv +, +SecuryMag + * +curyMag +); + +39 + give +: + +40  +l_devis +( +AsyncWebSvReque + * +que +); + +41  +sn_devis +( +AsyncWebSvReque + * +que +); + +42  +devi_da +( +AsyncWebSvReque + * +que +, +JsV + & +js +); + +44 +AsyncClbackJsWebHdr + + g_devi_daHdr +; + + @src/EMSESPSettingsService.cpp + +19  + ~"EMSESPStgsSvi.h +" + +20  + ~"em.h +" + +22 +mea + + gem + { + +24 + gEMSESPStgsSvi +:: +EMSESPStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +, +SecuryMag + * +curyMag +) + +25 : +_hpEndpot +( +EMSESPStgs +:: +ad +, EMSESPStgs:: +upde +, +this +, +rv +, +EMSESP_SETTINGS_SERVICE_PATH +, +curyMag +) + +26 , +_fsPsi +( +EMSESPStgs +:: +ad +, EMSESPStgs:: +upde +, +this +, +fs +, +EMSESP_SETTINGS_FILE +) { + +27 +addUpdeHdr +([&](cڡ +Sg + & +igId +{ +Upde +(); }, +l +); + +30  + gEMSESPStgs +:: +ad +( +EMSESPStgs + & +gs +, +JsObje + & +ro +) { + +31 + gro +["tx_mode"] = +gs +. +tx_mode +; + +32 + gro +["ems_bus_id"] = +gs +. +ems_bus_id +; + +33 + gro +["syog_v"] = +gs +. +syog_v +; + +34 + gro +["syog_mk_rv"] = +gs +. +syog_mk_rv +; + +35 + gro +["syog_ho"] = +gs +. +syog_ho +; + +36 + gro +["ma_thmo"] = +gs +. +ma_thmo +; + +37 + gro +["show_tim"] = +gs +. +show_tim +; + +38 + gro +["show_t"] = +gs +. +show_t +; + +39 + gro +["rx_gpio"] = +gs +. +rx_gpio +; + +40 + gro +["tx_gpio"] = +gs +. +tx_gpio +; + +41 + gro +["ds_gpio"] = +gs +. +ds_gpio +; + +42 + gro +["ds_se"] = +gs +. +ds_se +; + +43 + gro +["d_gpio"] = +gs +. +d_gpio +; + +44 + gro +["hide_d"] = +gs +. +hide_d +; + +47 +SUpdeResu + + gEMSESPStgs +:: +upde +( +JsObje + & +ro +, +EMSESPStgs + & +gs +) { + +48 + ggs +. + gtx_mode + = +ro +["tx_mode"] | +EMSESP_DEFAULT_TX_MODE +; + +49 + ggs +. + gems_bus_id + = +ro +["ems_bus_id"] | +EMSESP_DEFAULT_EMS_BUS_ID +; + +50 + ggs +. + gsyog_v + = +ro +["syog_v"] | +EMSESP_DEFAULT_SYSLOG_LEVEL +; + +51 + ggs +. + gsyog_mk_rv + = +ro +["syog_mk_rv"] | +EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL +; + +52 + ggs +. + gsyog_ho + = +ro +["syog_ho"] | +EMSESP_DEFAULT_SYSLOG_HOST +; + +53 + ggs +. + gma_thmo + = +ro +["ma_thmo"] | +EMSESP_DEFAULT_MASTER_THERMOSTAT +; + +54 + ggs +. + gshow_tim + = +ro +["show_tim"] | +EMSESP_DEFAULT_SHOWER_TIMER +; + +55 + ggs +. + gshow_t + = +ro +["show_t"] | +EMSESP_DEFAULT_SHOWER_ALERT +; + +56 + ggs +. + grx_gpio + = +ro +["rx_gpio"] | +EMSESP_DEFAULT_RX_GPIO +; + +57 + ggs +. + gtx_gpio + = +ro +["tx_gpio"] | +EMSESP_DEFAULT_TX_GPIO +; + +58 + ggs +. + gds_gpio + = +ro +["ds_gpio"] | +EMSESP_DEFAULT_DALLAS_GPIO +; + +59 + ggs +. + gds_se + = +ro +["ds_se"] | +EMSESP_DEFAULT_DALLAS_PARASITE +; + +60 + ggs +. + gd_gpio + = +ro +["d_gpio"] | +EMSESP_DEFAULT_LED_GPIO +; + +61 + ggs +. + ghide_d + = +ro +["hide_d"] | +EMSESP_DEFAULT_HIDE_LED +; + +63  + gSUpdeResu +:: +CHANGED +; + +68  + gEMSESPStgsSvi +:: +Upde +() { + +69 +EMSESP +:: +show_ +. +t +(); + +71 + gEMSESP +:: +_tx +(); + +72 + gSyem +:: +t_d +(); + +73 +Sss + + gnss_ +; + +74 + gnss_ +. +t +(); + +77  + gEMSESPStgsSvi +:: +beg +() { + +78 +_fsPsi +. +adFromFS +(); + +81  + gEMSESPStgsSvi +:: +ve +() { + +82 +_fsPsi +. +wreToFS +(); + + @src/EMSESPSettingsService.h + +19 #ide +EMSESPStgsCfig_h + + +20  + #EMSESPStgsCfig_h + + + ) + +22  + ~ + +23  + ~ + +25  + #EMSESP_SETTINGS_FILE + "/cfig/emStgs.js" + + ) + +26  + #EMSESP_SETTINGS_SERVICE_PATH + "//emStgs" + + ) + +28  + #EMSESP_DEFAULT_TX_MODE + 1 + +29  + #EMSESP_DEFAULT_EMS_BUS_ID + 0x0B + +30  + #EMSESP_DEFAULT_SYSLOG_LEVEL + -1 + +31  + #EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL + 0 + + ) + +32  + #EMSESP_DEFAULT_SYSLOG_HOST + "" + + ) + +33  + #EMSESP_DEFAULT_MASTER_THERMOSTAT + 0 + +34  + #EMSESP_DEFAULT_SHOWER_TIMER + +l + + + ) + +35  + #EMSESP_DEFAULT_SHOWER_ALERT + +l + + + ) + +36  + #EMSESP_DEFAULT_HIDE_LED + +l + + + ) + +37  + #EMSESP_DEFAULT_DALLAS_PARASITE + +l + + + ) + +40 #i +defed +( +ESP8266 +) + +41  + #EMSESP_DEFAULT_RX_GPIO + 13 + +42  + #EMSESP_DEFAULT_TX_GPIO + 15 + +43  + #EMSESP_DEFAULT_DALLAS_GPIO + 14 + +44  + #EMSESP_DEFAULT_LED_GPIO + 2 + +45 #i + `defed +( +ESP32 +) + + ) + +46  + #EMSESP_DEFAULT_RX_GPIO + 23 + +47  + #EMSESP_DEFAULT_TX_GPIO + 5 + +48  + #EMSESP_DEFAULT_DALLAS_GPIO + 18 + +49  + #EMSESP_DEFAULT_LED_GPIO + 2 + +50 # + + ) + +52  + #EMSESP_DEFAULT_RX_GPIO + 0 + + ) + +53  + #EMSESP_DEFAULT_TX_GPIO + 0 + + ) + +54  + #EMSESP_DEFAULT_DALLAS_GPIO + 0 + + ) + +55  + #EMSESP_DEFAULT_LED_GPIO + 0 + + ) + +58 +mea + + gem + { + +60 + gMQTT_fm + : +ut8_t + { +SINGLE + = 1, + gNESTED +, + gHA +, + gCUSTOM + }; + +62 as + cEMSESPStgs + { + +63 + gpublic +: + +64 +ut8_t + +tx_mode +; + +65 +ut8_t + + gems_bus_id +; + +66 +ut8_t + + gma_thmo +; + +67 +bo + + gshow_tim +; + +68 +bo + + gshow_t +; + +69 +t8_t + + gsyog_v +; + +70 +ut32_t + + gsyog_mk_rv +; + +71 +Sg + + gsyog_ho +; + +72 +ut8_t + + grx_gpio +; + +73 +ut8_t + + gtx_gpio +; + +74 +ut8_t + + gds_gpio +; + +75 +bo + + gds_se +; + +76 +ut8_t + + gd_gpio +; + +77 +bo + + ghide_d +; + +79  +ad +( +EMSESPStgs + & +gs +, +JsObje + & +ro +); + +80  +SUpdeResu + +upde +( +JsObje + & +ro +, +EMSESPStgs + & +gs +); + +83 +ass + + gEMSESPStgsSvi + : +public + +SfulSvi +< +EMSESPStgs +> { + +84 +public +: + +85 +EMSESPStgsSvi +( +AsyncWebSv + * +rv +, +FS + * +fs +, +SecuryMag + * +curyMag +); + +87  +beg +(); + +88  +ve +(); + +90 + give +: + +91 +HpEndpot +< +EMSESPStgs +> +_hpEndpot +; + +92 + gFSPsi +< + gEMSESPStgs +> + g_fsPsi +; + +94  +Upde +(); + + @src/EMSESPStatusService.cpp + +19  + ~"EMSESPStusSvi.h +" + +20  + ~"em.h +" + +21  + ~"mq.h +" + +22  + ~"vsi.h +" + +24 +mea + + gem + { + +26 + gEMSESPStusSvi +:: +EMSESPStusSvi +( +AsyncWebSv + * +rv +, +SecuryMag + * +curyMag +) { + +28 + grv +-> + +( +EMSESP_STATUS_SERVICE_PATH +, + +29 +HTTP_GET +, + +30 +curyMag +-> +wpReque +( +d +:: +bd +(& +EMSESPStusSvi +:: +emStusSvi +, +this +, std:: +ahds +:: +_1 +), + +31 +AuthtitiPdis +:: +IS_AUTHENTICATED +)); + +34 #ifde +ESP32 + + +35 + gWiFi +. +Evt +( +StiModeDisced +, +WiFiEvt_t +:: +SYSTEM_EVENT_STA_DISCONNECTED +); + +36 + gWiFi +. +Evt +( +StiModeGIP +, +WiFiEvt_t +:: +SYSTEM_EVENT_STA_GOT_IP +); + +37 #i +defed +( +ESP8266 +) + +38 + g_StiModeDiscedHdr + = +WiFi +. +StiModeDisced +(onStationModeDisconnected); + +39 + g_StiModeGIPHdr + = +WiFi +. +StiModeGIP +(onStationModeGotIP); + +43 #ifde +ESP32 + + +44  + gEMSESPStusSvi +:: +StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +45 + gEMSESP +:: +logg +(). +debug +( +F +("WiFDisced. Rs code=%d"), +fo +. +disced +. +as +); + +47  + gEMSESPStusSvi +:: +StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +) { + +48 + gEMSESP +:: +logg +(). +debug +( +F +("WiFCed wh IP=%s, home=%s"), +WiFi +. +lolIP +(). +toSg +(). +c_r +(), WiFi. +gHome +()); + +49 + gEMSESP +:: +syem_ +. +nd_hbt +(); + +51 #i +defed +( +ESP8266 +) + +52  + gEMSESPStusSvi +:: +StiModeDisced +(cڡ +WiFiEvtStiModeDisced + & +evt +) { + +53 +EMSESP +:: +logg +(). +debug +( +F +("WiFDisced. Rs code=%d"), +evt +. +as +); + +55  + gEMSESPStusSvi +:: +StiModeGIP +(cڡ +WiFiEvtStiModeGIP + & +evt +) { + +56 +EMSESP +:: +logg +(). +debug +( +F +("WiFCed wh IP=%s, home=%s"), +evt +. + +. +toSg +(). +c_r +(), +WiFi +. +home +().c_str()); + +57 + gEMSESP +:: +syem_ +. +nd_hbt +(); + +61  + gEMSESPStusSvi +:: +emStusSvi +( +AsyncWebSvReque + * +que +) { + +62 +AsyncJsReڣ + * +ڣ + = +w + AsyncJsReڣ( +l +, +MAX_EMSESP_STATUS_SIZE +); + +63 +JsObje + + gro + = +ڣ +-> +gRo +(); + +65 + gro +["us"] = +EMSESP +:: +bus_us +(); + +66 + gro +["rx_ived"] = +EMSESP +:: +rxrvi_ +. +gm_cou +(); + +67 + gro +["tx_"] = +EMSESP +:: +txrvi_ +. +gm_ad_cou +(+ EMSESP::txrvi_. +gm_wre_cou +(); + +68 + gro +["c_rs"] = +EMSESP +:: +rxrvi_ +. +gm_r_cou +(); + +69 + gro +["tx_rs"] = +EMSESP +:: +txrvi_ +. +gm__cou +(); + +71 + gڣ +-> +tLgth +(); + +72 + gque +-> +nd +( +ڣ +); + + @src/EMSESPStatusService.h + +19 #ide +EMSESPStusSvi_h + + +20  + #EMSESPStusSvi_h + + + ) + +22  + ~ + +23  + ~ + +24  + ~ + +25  + ~ + +26  + ~ + +28  + #MAX_EMSESP_STATUS_SIZE + 1024 + + ) + +29  + #EMSESP_STATUS_SERVICE_PATH + "//emStus" + + ) + +31 +mea + + gem + { + +33 as + cEMSESPStusSvi + { + +34 + gpublic +: + +35 +EMSESPStusSvi +( +AsyncWebSv + * +rv +, +SecuryMag + * +curyMag +); + +37 + give +: + +38  +emStusSvi +( +AsyncWebSvReque + * +que +); + +40 #ifde +ESP32 + + +41  +StiModeDisced +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +42  +StiModeGIP +( +WiFiEvt_t + +evt +, +WiFiEvtInfo_t + +fo +); + +43 #i +defed +( +ESP8266 +) + +44 +WiFiEvtHdr + + g_StiModeDiscedHdr +; + +45 +WiFiEvtHdr + + g_StiModeGIPHdr +; + +46  +StiModeDisced +(cڡ +WiFiEvtStiModeDisced + & +evt +); + +47  +StiModeGIP +(cڡ +WiFiEvtStiModeGIP + & +evt +); + + @src/console.cpp + +19  + ~"cse.h +" + +20  + ~"em.h +" + +21  + ~"vsi.h +" + +23 #i +defed +( +EMSESP_DEBUG +) + +24  + ~"/.h +" + +27 +mea + + gem + { + +29 + gd +:: +shed_r +< +Commds +> +EMSESPShl +:: +commds + = [] { + +30 +d +:: +shed_r +< +Commds +> +commds + = std:: +make_shed +(); + +31  + gcommds +; + +34  + gd +:: +shed_r +< +EMSESPShl +> +shl +; + +36 + gd +:: +ve +< +bo +> +EMSESPSmCse +:: +ys_ +; + +38 #ide +EMSESP_STANDALONE + + +39 + guuid +:: +ʑ +:: +TtSvi + +ʑ_ +([]( +Sm + & +am +, cڡ +IPAddss + & +addr +, +ut16_t + +pt +-> +d +:: +shed_r +< +uuid +:: +cse +:: +Shl +> { + +40  +d +:: +make_shed +< +EMSESPSmCse +>( +am +, +addr +, +pt +); + +44 + gEMSESPShl +:: +EMSESPShl +() + +45 : +Shl +() { + +48  +EMSESPShl +:: +d +() { + +49 +logg +(). +log +( +LogLev +:: +INFO +, +LogFacy +:: +CONSOLE +, +F +("Ussi od ocsސ%s"), +cse_me +(). +c_r +()); + +52  + gEMSESPShl +:: +ݳd +() { + +53 i( +has_ags +( +CommdFgs +:: +ADMIN +)) { + +54 +logg +(). +log +( +LogLev +:: +INFO +, +LogFacy +:: +AUTH +, +F +("Adm sessi clod ocsސ%s"), +cse_me +(). +c_r +()); + +56 +logg +(). +log +( +LogLev +:: +INFO +, +LogFacy +:: +CONSOLE +, +F +("Ussi clod ocsސ%s"), +cse_me +(). +c_r +()); + +59 + gcommds +-> +move_l_commds +(); + +61 + gcse_commds_lded_ + = +l +; + +66  + gEMSESPShl +:: +diy_br +() { + +67 +n +(); + +68 +tn +( +F +("┌──────────────────────────────────────────┐")); + +69 +tn +( +F +("│ %sEMS-ESP vsi %-10s% │"), +COLOR_BOLD_ON +, +EMSESP_APP_VERSION +, +COLOR_BOLD_OFF +); + +70 +tn +( +F +("│ %s%shps://ghub.com/oddy/EMS-ESP% │"), +COLOR_BRIGHT_GREEN +, +COLOR_UNDERLINE +, +COLOR_RESET +); + +71 +tn +( +F +("│ │")); + +72 +tn +( +F +("│y %shp%tshowvaab commd │"), +COLOR_UNDERLINE +, +COLOR_RESET +); + +73 +tn +( +F +("└──────────────────────────────────────────┘")); + +74 +n +(); + +77 + gEMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +ad +([&]( +WiFiStgs + & +wifiStgs +{ +cse_home_ + = wifiStgs. +home +. +c_r +(); }); + +79 i( + gcse_home_ +. +emy +()) { + +80 + gcse_home_ +. +size +(16, '\0'); + +81 #i +defed +( +ESP8266 +) + +82 +tf_P +(& +cse_home_ +[0], cse_home_. +cy +(+ 1, +PSTR +("esp8266")); + +84 +tf_P +(& +cse_home_ +[0], cse_home_. +cy +(+ 1, +PSTR +("esp32")); + +89 +add_cse_commds +(); + +92 + gem +:: +EMSESP +:: +wch_id +( +WATCH_ID_NONE +); + +93 #i +defed +( +EMSESP_STANDALONE +) + +94 + gem +:: +EMSESP +:: +wch +(EMSESP:: +WATCH_ON +); + +96 + gem +:: +EMSESP +:: +wch +(EMSESP:: +WATCH_OFF +); + +102  + gEMSESPShl +:: +add_cse_commds +() { + +105 i( +cse_commds_lded_ +) { + +111 + gcommds +-> +move_l_commds +(); + +113 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +114 +CommdFgs +:: +USER +, + +115 +ash_rg_ve +{ +F_ +( +tch +)}, + +116 [&]( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +117 +shl +. +tn +( +F +("Requesting data from EMS devices")); + +118 +EMSESP +:: +tch_devi_vues +(); + +121 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +122 +CommdFgs +:: +USER +, + +123 +ash_rg_ve +{ +F_ +( +show +)}, + +124 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +125 +shl +. +tn +( +F +("%s%sEMS-ESP vsi %s%s"), +COLOR_BRIGHT_GREEN +, +COLOR_BOLD_ON +, +EMSESP_APP_VERSION +, +COLOR_RESET +); + +126 +shl +. +n +(); + +127 +EMSESP +:: +show_devi_vues +( +shl +); + +128 +EMSESP +:: +show_ns_vues +( +shl +); + +131 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +132 +CommdFgs +:: +USER +, + +133 +ash_rg_ve +{ +F_ +( +show +), F_( +devis +)}, + +134 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +)){ +EMSESP +:: +show_devis +(shell); }); + +137 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +138 +CommdFgs +:: +USER +, + +139 +ash_rg_ve +{ +F_ +( +show +), F_( +ems +)}, + +140 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +)){ +EMSESP +:: +show_ems +(shell); }); + +142 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +143 +CommdFgs +:: +USER +, + +144 +ash_rg_ve +{ +F_ +( +show +), F_( +vues +)}, + +145 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +)){ +EMSESP +:: +show_devi_vues +(shell); }); + +147 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +148 +CommdFgs +:: +USER +, + +149 +ash_rg_ve +{ +F_ +( +show +), F_( +mq +)}, + +150 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +)){ +Mq +:: +show_mq +(shell); }); + +152 + gcommds +-> +add_commd +( + +153 +ShlCڋxt +:: +MAIN +, + +154 +CommdFgs +:: +ADMIN +, + +155 +ash_rg_ve +{ +F_ +( +t +), F_( +bus_id +)}, + +156 +ash_rg_ve +{ +F_ +( +deviid_mdy +)}, + +157 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts +) { + +158 +ut8_t + +devi_id + = +Hrs +:: +hextot +( +gumts +. +t +(). +c_r +()); + +159 i(( +devi_id + == 0x0B) || (device_id == 0x0D) || (device_id == 0x0A) || (device_id == 0x0F) || (device_id == 0x12)) { + +160 +EMSESP +:: +emStgsSvi +. +upde +( + +161 [&]( +EMSESPStgs + & +gs +) { + +162 +gs +. +ems_bus_id + = +devi_id +; + +163 +shl +. +tn +( +F_ +( +bus_id_fmt +), +gs +. +ems_bus_id +); + +164  +SUpdeResu +:: +CHANGED +; + +168 +shl +. +n +( +F +("Must be 0B, 0D, 0A, 0F or 12")); + +171 []( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts + __attribute__((unused))) -> const std::vector { + +172  +d +:: +ve +{ + +173 +ad_ash_rg +( +F +("0B")), + +174 +ad_ash_rg +( +F +("0D")), + +175 +ad_ash_rg +( +F +("0A")), + +176 +ad_ash_rg +( +F +("0F")), + +177 +ad_ash_rg +( +F +("12")), + +182 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +183 +CommdFgs +:: +ADMIN +, + +184 +ash_rg_ve +{ +F_ +( +t +), F_( +tx_mode +)}, + +185 +ash_rg_ve +{ +F_ +( +n_mdy +)}, + +186 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts +) { + +187 +ut8_t + +tx_mode + = +d +:: + +( +gumts +[0]. +c_r +(), +nuαr +, 10); + +189 +EMSESP +:: +emStgsSvi +. +upde +( + +190 [&]( +EMSESPStgs + & +gs +) { + +191 +gs +. +tx_mode + =x_mode; + +192 +shl +. +tn +( +F_ +( +tx_mode_fmt +), +gs +. +tx_mode +); + +193  +SUpdeResu +:: +CHANGED +; + +198 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +199 +CommdFgs +:: +ADMIN +, + +200 +ash_rg_ve +{ +F_ +( +sn +), F_( +devis +)}, + +201 +ash_rg_ve +{ +F_ +( +dp_tiڮ +)}, + +202 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts +) { + +203 i( +gumts +. +size +() == 0) { + +204 +EMSESP +:: +sn_devis +(); + +206 +shl +. +tn +( +F +("Performing deep scan...")); + +207 +EMSESP +:: +r_l_devis +(); + +208 +d +:: +ve +< +ut8_t +> +Devi_Ids +; + +210 +Devi_Ids +. +push_back +(0x08); + +211 +Devi_Ids +. +push_back +(0x38); + +212 +Devi_Ids +. +push_back +(0x30); + +213 +Devi_Ids +. +push_back +(0x09); + +214 +Devi_Ids +. +push_back +(0x02); + +215 +Devi_Ids +. +push_back +(0x48); + +216 +Devi_Ids +. +push_back +(0x20); + +217 +Devi_Ids +. +push_back +(0x21); + +218 +Devi_Ids +. +push_back +(0x22); + +219 +Devi_Ids +. +push_back +(0x23); + +220 +Devi_Ids +. +push_back +(0x28); + +221 +Devi_Ids +. +push_back +(0x29); + +222 +Devi_Ids +. +push_back +(0x10); + +223 +Devi_Ids +. +push_back +(0x17); + +224 +Devi_Ids +. +push_back +(0x18); + +225 +Devi_Ids +. +push_back +(0x19); + +226 +Devi_Ids +. +push_back +(0x1A); + +227 +Devi_Ids +. +push_back +(0x1B); + +228 +Devi_Ids +. +push_back +(0x11); + +231 cڡ +ut8_t + +devi_id + : +Devi_Ids +) { + +232 +EMSESP +:: +nd_ad_que +( +EMSdevi +:: +EMS_TYPE_VERSION +, +devi_id +); + +237 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +238 +CommdFgs +:: +USER +, + +239 +ash_rg_ve +{ +F_ +( +t +)}, + +240 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +241 +EMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +242 +shl +. +tn +( +F_ +( +tx_mode_fmt +), +gs +. +tx_mode +); + +243 +shl +. +tn +( +F_ +( +bus_id_fmt +), +gs +. +ems_bus_id +); + +247 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +248 +CommdFgs +:: +ADMIN +, + +249 +ash_rg_ve +{ +F_ +( +ad +)}, + +250 +ash_rg_ve +{ +F_ +( +deviid_mdy +), F_( +tyid_mdy +)}, + +251 [=]( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts +) { + +252 +ut8_t + +devi_id + = +Hrs +:: +hextot +( +gumts +. +t +(). +c_r +()); + +253 +ut16_t + +ty_id + = +Hrs +:: +hextot +( +gumts +. +back +(). +c_r +()); + +254 +EMSESP +:: +t_ad_id +( +ty_id +); + +255 +EMSESP +:: +nd_ad_que +( +ty_id +, +devi_id +); + +263 + gcommds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +264 +CommdFgs +:: +USER +, + +265 +ash_rg_ve +{ +F_ +( +syem +)}, + +266 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +267 +Syem +:: +cse_commds +( +shl +, +ShlCڋxt +:: +SYSTEM +); + +272 + gEMSESP +:: +add_cڋxt_mus +(); + +274 + gCse +:: +ld_dd_commds +( +ShlCڋxt +:: +MAIN +); + +276 + gcse_commds_lded_ + = +ue +; + +279 + gd +:: +rg + +EMSESPShl +:: +home_xt +() { + +280  +cse_home_ +; + +284 +bo + + gEMSESPShl +:: +ex_cڋxt +() { + +285  +cut_cڋxt + = +cڋxt +(); + +286 + gcommds +-> +move_cڋxt_commds +( +cut_cڋxt +); + +288 i( + gcut_cڋxt + = +ShlCڋxt +:: +MAIN +) { + +289 +Shl +:: + +(); + +290  + gue +; + +292  + gShl +:: +ex_cڋxt +(); + +296  + gCse +:: +r_cuom_cڋxt +( +Shl + & +shl +,  +cڋxt +) { + +297 +ld_dd_commds +( +cڋxt +); + +300 i( + gcڋxt + ! +ShlCڋxt +:: +MAIN +) { + +301 +shl +. +r_cڋxt +( +cڋxt +); + +306  + gCse +:: +ld_dd_commds +( +cڋxt +) { + +307 #i +defed +( +EMSESP_DEBUG +) + +308 +EMSESPShl +:: +commds +-> +add_commd +( +cڋxt +, + +309 +CommdFgs +:: +USER +, + +310 +ash_rg_ve +{ +F_ +( + +)}, + +311 +ash_rg_ve +{ +F_ +( +me_tiڮ +)}, + +312 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +313 i( +gumts +. +size +() == 0) { + +314 +Te +:: +run_ +( +shl +, "default"); + +316 +Te +:: +run_ +( +shl +, +gumts +. +t +()); + +321 + gEMSESPShl +:: +commds +-> +add_commd +( + +322 +cڋxt +, + +323 +CommdFgs +:: +USER +, + +324 +ash_rg_ve +{ +F_ +( +log +)}, + +325 +ash_rg_ve +{ +F_ +( +log_v_tiڮ +)}, + +326 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts +) { + +327 i(! +gumts +. +emy +()) { + +328 +uuid +:: +log +:: +Lev + +v +; + +329 i( +uuid +:: +log +:: +r_v_low +( +gumts +[0], +v +)) { + +330 +shl +. +log_v +( +v +); + +332 +shl +. +tn +( +F_ +( +vid_log_v +)); + +336 +shl +. +t +( +F +("levels: ")); + +337 +d +:: +ve + +v + = +uuid +:: +log +:: +vs_low +(); + +338 +size_t + +i + = +v +. +size +(); + +339  +i +--) { + +340 +shl +. +tf +( +v +[ +i +]. +c_r +()); + +341 +shl +. +t +(' '); + +343 +shl +. +n +(); + +345 +shl +. +tn +( +F_ +( +log_v_fmt +), +uuid +:: +log +:: +fm_v_low +(shl. +log_v +())); + +347 []( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts + __attribute__((unused))) -> std::vector { + +348  +uuid +:: +log +:: +vs_low +(); + +351 + gEMSESPShl +:: +commds +-> +add_commd +( +cڋxt +, + +352 +CommdFgs +:: +USER +, + +353 +ash_rg_ve +{ +F_ +( +hp +)}, + +354 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +355 +shl +. +t_l_avaab_commds +(); + +358 + gEMSESPShl +:: +commds +-> +add_commd +( +cڋxt +, + +359 +CommdFgs +:: +USER +, + +360 +ash_rg_ve +{ +F_ +( +ex +)}, + +361 [=]( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +363 +EMSESPShl +:: +commds +-> +move_cڋxt_commds +( +cڋxt +); + +364 +shl +. +ex_cڋxt +(); + +367 + gEMSESPShl +:: +commds +-> +add_commd +( +cڋxt +, + +368 +CommdFgs +:: +USER +, + +369 +ash_rg_ve +{ +F_ +( +su +)}, + +370 [=]( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +371 aut +become_adm + = []( +Shl + & +shl +) { + +372 +shl +. +logg +(). +log +( +LogLev +:: +NOTICE +, +LogFacy +:: +AUTH +, +F +("Admin session opened on console")); + +373 +shl +. +add_ags +( +CommdFgs +:: +ADMIN +); + +376 i( +shl +. +has_ags +( +CommdFgs +:: +LOCAL +)) { + +377 +become_adm +( +shl +); + +379 +shl +. +r_sswd +( +F_ +( +sswd_om +), [=]( +Shl + & shl, +bo + +comed +, cڡ +d +:: +rg + & +sswd +) { + +380 i( +comed +) { + +381 +ut64_t + +now + = +uuid +:: +g_uime_ms +(); + +383 +EMSESP +:: +e8266R +. +gSecuryStgsSvi +()-> +ad +([&]( +SecuryStgs + & +curyStgs +) { + +384 i( +curyStgs +. +jwtSe +. +equs +( +sswd +. +c_r +())) { + +385 +become_adm +( +shl +); + +387 +shl +. +day_u +( +now + + +INVALID_PASSWORD_DELAY_MS +, []( +Shl + & shell) { + +388 +shl +. +logg +(). +log +( +LogLev +:: +NOTICE +, +LogFacy +:: +AUTH +, +F +("Invaliddminassword on console")); + +389 +shl +. +n +( +F +("su: incorrectassword")); + +398 + gEMSESPShl +:: +commds +-> +add_commd +( +cڋxt +, + +399 +CommdFgs +:: +ADMIN +, + +400 +ash_rg_ve +{ +F_ +( +nd +), F_( +gm +)}, + +401 +ash_rg_ve +{ +F_ +( +da_mdy +)}, + +402 []( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts +) { + +403 +EMSESP +:: +nd_w_gm +( +gumts +. +t +(). +c_r +()); + +406 + gEMSESPShl +:: +commds +-> +add_commd +( +cڋxt +, + +407 +CommdFgs +:: +USER +, + +408 +ash_rg_ve +{ +F_ +( +wch +)}, + +409 +ash_rg_ve +{ +F_ +( +wch_fm_tiڮ +), F_( +wchid_tiڮ +)}, + +410 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts +) { + +411 +ut16_t + +wch_id + = +WATCH_ID_NONE +; + +413 i(! +gumts +. +emy +()) { + +415 i( +gumts +[0] = +ad_ash_rg +( +F_ +( +w +))) { + +416 +em +:: +EMSESP +:: +wch +(EMSESP:: +WATCH_RAW +); + +417 } i( +gumts +[0] = +ad_ash_rg +( +F_ +( + +))) { + +418 +em +:: +EMSESP +:: +wch +(EMSESP:: +WATCH_ON +); + +419 } i( +gumts +[0] = +ad_ash_rg +( +F_ +( +off +))) { + +420 +em +:: +EMSESP +:: +wch +(EMSESP:: +WATCH_OFF +); + +421 } i( +em +:: +EMSESP +:: +wch +(=EMSESP:: +WATCH_OFF +) { + +422 +shl +. +tn +( +F_ +( +vid_wch +)); + +425 +wch_id + = +Hrs +:: +hextot +( +gumts +[0]. +c_r +()); + +428 i( +gumts +. +size +() == 2) { + +430 +wch_id + = +Hrs +:: +hextot +( +gumts +[1]. +c_r +()); + +433 +em +:: +EMSESP +:: +wch_id +(watch_id); + +436 +ut8_t + +wch + = +em +:: +EMSESP +::watch(); + +437 i( +wch + = +EMSESP +:: +WATCH_OFF +) { + +438 +shl +. +tn +( +F +("Watchingelegrams is off")); + +443 i(! +shl +. +logg +(). +abd +( +Lev +:: +NOTICE +)) { + +444 +shl +. +log_v +( +Lev +:: +NOTICE +); + +447 i( +wch + = +EMSESP +:: +WATCH_ON +) { + +448 +shl +. +tn +( +F +("Watching incomingelegrams, displayed in decoded format")); + +450 +shl +. +tn +( +F +("Watching incomingelegrams, displayedsaw bytes")); + +453 +wch_id + = +em +:: +EMSESP +::watch_id(); + +454 i( +wch_id + > 0x80) { + +455 +shl +. +tn +( +F +("Frg oyegmth mchegmy o0x%02X"), +wch_id +); + +456 } i( +wch_id + ! +WATCH_ID_NONE +) { + +457 +shl +. +tn +( +F +("Frg oyegmth mch devi ID ogmy o0x%02X"), +wch_id +); + +463 + gd +:: +rg + +EMSESPShl +:: +cڋxt_xt +() { + +464  +ic_ +< +ShlCڋxt +>( +cڋxt +())) { + +465  +ShlCڋxt +:: +MAIN +: + +466  +d +:: +rg +{'/'}; + +468  + gShlCڋxt +:: +BOILER +: + +469  +d +:: +rg +{"/boiler"}; + +471  + gShlCڋxt +:: +SYSTEM +: + +472  +d +:: +rg +{"/system"}; + +474  + gShlCڋxt +:: +THERMOSTAT +: + +475  +d +:: +rg +{"/thermostat"}; + +478  +d +:: +rg +{}; + +483 + gd +:: +rg + +EMSESPShl +:: +om_suffix +() { + +484 i( +has_ags +( +CommdFgs +:: +ADMIN +)) { + +485  +d +:: +rg +{'#'}; + +487  + gd +:: +rg +{'$'}; + +491  + gEMSESPShl +:: +d_of_smissi +() { + +492 +voke_commd +( +uuid +:: +ad_ash_rg +( +F_ +( +ex +))); + +495 + gEMSESPSmCse +:: +EMSESPSmCse +( +Sm + & +am +, +bo + +lol +) + +496 : +uuid +:: +cse +:: +Shl +( +commds +, +ShlCڋxt +:: +MAIN +, +lol + ? ( +CommdFgs +:: +USER + | CommdFgs:: +LOCAL +) : CommandFlags::USER) + +497 , + guuid +:: +cse +:: +SmCse +( +am +) + +498 , +EMSESPShl +() + +499 , +me_ +( +uuid +:: +ad_ash_rg +( +F +("Serial"))) + +500 , +y_ +( +d +:: +numic_lims +< +size_t +>:: +max +()) + +501 , +addr_ +() + +502 , +pt_ +(0) { + +505 + gEMSESPSmCse +:: +EMSESPSmCse +( +Sm + & +am +, cڡ +IPAddss + & +addr +, +ut16_t + +pt +) + +506 : +uuid +:: +cse +:: +Shl +( +commds +, +ShlCڋxt +:: +MAIN +, +CommdFgs +:: +USER +) + +507 , + guuid +:: +cse +:: +SmCse +( +am +) + +508 , +EMSESPShl +() + +509 , +addr_ +( +addr +) + +510 , +pt_ +( +pt +) { + +511 + gd +:: +ve +<> +xt +(16); + +513 + gy_ + = 0; + +514  + gy_ + < + gys_ +. +size +(&&tys_[ +y_ +]) + +515 + gy_ +++; + +516 i( + gy_ + = +ys_ +. +size +()) { + +517 +ys_ +. +push_back +( +ue +); + +519 + gys_ +[ +y_ +] = +ue +; + +522 +tf_P +( +xt +. +da +(),ext. +size +(), +PSTR +("y%u"), +y_ +); + +523 + gme_ + = +xt +. +da +(); + +524 #ide +EMSESP_STANDALONE + + +525 +logg +(). +fo +( +F +("Aod csސ%f ci from [%s]:%u"), +me_ +. +c_r +(), +uuid +:: +b_to_rg +( +addr_ +).c_r(), +pt_ +); + +529 + gEMSESPSmCse +::~ +EMSESPSmCse +() { + +530 i( +y_ + ! +SIZE_MAX +) { + +531 #ide +EMSESP_STANDALONE + + +532 +logg +(). +fo +( +F +("Shutdowcsސ%f ci from [%s]:%u"), +me_ +. +c_r +(), +uuid +:: +b_to_rg +( +addr_ +).c_r(), +pt_ +); + +534 + gys_ +[ +y_ +] = +l +; + +535 + gys_ +. +shrk_to_f +(); + +537 + gEMSESPShl +:: +commds +-> +move_l_commds +(); + +541 + gd +:: +rg + +EMSESPSmCse +:: +cse_me +() { + +542  +me_ +; + +547  + gCse +:: +t +() { + +550 #i +defed +( +ESP32 +|| defed( +EMSESP_STANDALONE +|| defed( +EMSESP_FORCE_SERIAL +) + +551 +rl_cse_ +. +beg +( +SERIAL_CONSOLE_BAUD_RATE +); + +552 + grl_cse_ +. +n +(); + +554 + gshl + = +d +:: +make_shed +< +EMSESPSmCse +>( +rl_cse_ +, + gue +); + +555 + gshl +-> +maximum_log_mesges +(100); + +556 + gshl +-> +t +(); + +559 #ide +ESP8266 + + +560 #i +defed +( +EMSESP_DEBUG +) + +561 + gshl +-> +log_v +( +uuid +:: +log +:: +Lev +:: +DEBUG +); + +565 #i +defed +( +EMSESP_FORCE_SERIAL +) + +566 + gshl +-> +log_v +( +uuid +:: +log +:: +Lev +:: +DEBUG +); + +570 #i +defed +( +EMSESP_STANDALONE +) + +572 + gshl +-> +add_ags +( +CommdFgs +:: +ADMIN +); + +578 #ide +EMSESP_STANDALONE + + +579 + gʑ_ +. +t +(); + +580 + gʑ_ +. +deu_wre_timeout +(1000); + +588  + gCse +:: +lo +() { + +589 +uuid +:: +lo +(); + +591 #ide +EMSESP_STANDALONE + + +592 + gʑ_ +. +lo +(); + +595 #i +defed +( +ESP8266 +) + +596 i(! + gEMSut +:: +ndg +()) { + +597 +Shl +:: +lo_l +(); + +600 + gShl +:: +lo_l +(); + + @src/console.h + +19 #ide +EMSESP_CONSOLE_H + + +20  + #EMSESP_CONSOLE_H + + + ) + +22  + ~ + +24  + ~ + +25  + ~ + +27  + ~ + +28  + ~ + +30  + ~"hrs.h +" + +31  + ~"syem.h +" + +32  + ~"mq.h +" + +34 +usg + + guuid +:: +ash_rg_ve +; + +35 +usg + + guuid +:: +ad_ash_rg +; + +36 +usg + + guuid +:: +cse +:: +Commds +; + +37 +usg + + guuid +:: +cse +:: +Shl +; + +38 +usg + + guuid +:: +log +:: +Lev +; + +40  + #LOG_DEBUG +(... +logg_ +. + `debug +( +__VA_ARGS__ +) + + ) + +41  + #LOG_INFO +(... +logg_ +. + `fo +( +__VA_ARGS__ +) + + ) + +42  + #LOG_TRACE +(... +logg_ +. + `a +( +__VA_ARGS__ +) + + ) + +43  + #LOG_NOTICE +(... +logg_ +. + `ni +( +__VA_ARGS__ +) + + ) + +44  + #LOG_WARNING +(... +logg_ +. + `wng +( +__VA_ARGS__ +) + + ) + +45  + #LOG_ERROR +(... +logg_ +. + `r +( +__VA_ARGS__ +) + + ) + +48  + #MAKE_PSTR +( +rg_me +, +rg_l +cڡ  +__pr__ +##rg_me[] + `__ibu__ +(( + `__igd__ +(())) +PROGMEM + = sg_l; + + ) + +49  + #MAKE_PSTR_WORD +( +rg_me + + `MAKE_PSTR +(rg_me, #rg_me) + + ) + +50  + #F_ +( +rg_me + + `FPSTR +( +__pr__ +##rg_me) + + ) + +54  + ~"lo_EN.h +" + +56 #ifde +LOCAL + + +57 #unde +LOCAL + + +60  +cڡex + +ut32_t + + gINVALID_PASSWORD_DELAY_MS + = 3000; + +62 +mea + + gem + { + +64 +usg + + gLogLev + = :: +uuid +:: +log +:: +Lev +; + +65 +usg + + gLogFacy + = :: +uuid +:: +log +:: +Facy +; + +67 + gCommdFgs + : +ut8_t + { + +69 +USER + = 0, + +70 + gADMIN + = (1 << 0), + +71 + gLOCAL + = (1 << 1) + +75 + gShlCڋxt + : +ut8_t + { + +77 +MAIN + = 0, + +78 + gSYSTEM +, + +79 + gBOILER +, + +80 + gTHERMOSTAT +, + +81 + gSOLAR +, + +82 + gMIXING + + +86 as + cEMSESPShl + : +vtu + +public + +uuid +:: +cse +:: +Shl + { + +87 +public +: + +88 ~ +EMSESPShl +( +ovride + = ; + +90 +vtu + + gd +:: +rg + +cse_me +() = 0; + +92  + gd +:: +shed_r +< +uuid +:: +cse +:: +Commds +> +commds +; + +93  + gd +:: +shed_r +< +EMSESPShl +> +shl +; + +95 + geed +: + +96 +EMSESPShl +(); + +99  +d +( + govride +; + +100  +ݳd +( + govride +; + +101  +diy_br +( + govride +; + +102 + gd +:: +rg + +home_xt +( +ovride +; + +103 + gd +:: +rg + +cڋxt_xt +( +ovride +; + +104 + gd +:: +rg + +om_suffix +( +ovride +; + +105  +d_of_smissi +( + govride +; + +106 +bo + +ex_cڋxt +( + govride +; + +108 + give +: + +109  +add_cse_commds +(); + +110 +bo + + gcse_commds_lded_ + = +l +; + +111 + gd +:: +rg + +cse_home_ +; + +114 +ass + + gEMSESPSmCse + : +public + +uuid +:: +cse +:: +SmCse +,ubli + gEMSESPShl + { + +115 + gpublic +: + +116 +EMSESPSmCse +( +Sm + & +am +, +bo + +lol +); + +117 +EMSESPSmCse +( +Sm + & +am +, cڡ +IPAddss + & +addr +, +ut16_t + +pt +); + +118 ~ +EMSESPSmCse +( + govride +; + +120 + gd +:: +rg + +cse_me +( +ovride +; + +122 + give +: + +123  +d +:: +ve +< +bo +> +ys_ +; + +125 + gd +:: +rg + +me_ +; + +126 +size_t + + gy_ +; + +127 +IPAddss + + gaddr_ +; + +128 +ut16_t + + gpt_ +; + +131 as + cCse + { + +132 + gpublic +: + +133  +lo +(); + +134  +t +(); + +136 + guuid +:: +log +:: +Lev + +log_v +(); + +138  +r_cuom_cڋxt +( +Shl + & +shl +,  +cڋxt +); + +139  +ld_dd_commds +( +cڋxt +); + +141 + give +: + +142  +cڡex +  +SERIAL_CONSOLE_BAUD_RATE + = 115200; + +143  +cڡex +ut& + grl_cse_ + = +Sl +; + + @src/device_library.h + +27 { 64, + gDeviTy +:: +BOILER +, +F +("BK13/BK15/Sme/GB1x2"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +28 { 72, + gDeviTy +:: +BOILER +, +F +("GB125/MC10"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +29 { 84, + gDeviTy +:: +BOILER +, +F +("Logamax PluGB022"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +30 { 95, + gDeviTy +:: +BOILER +, +F +("Cd2500/Logamax/Logomic/CuT/G/GiHT3"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +31 {115, + gDeviTy +:: +BOILER +, +F +("Tle/GB162"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +32 {122, + gDeviTy +:: +BOILER +, +F +("Prޚe"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +33 {123, + gDeviTy +:: +BOILER +, +F +("GBx72/Tndle/Cur/G Si/27i"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +34 {131, + gDeviTy +:: +BOILER +, +F +("GB212"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +35 {133, + gDeviTy +:: +BOILER +, +F +("GB125/LogamiMC110"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +36 {170, + gDeviTy +:: +BOILER +, +F +("LogGB212"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +37 {172, + gDeviTy +:: +BOILER +, +F +("Enve/Comes6000AW"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +38 {195, + gDeviTy +:: +BOILER +, +F +("Cd5000i"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +39 {203, + gDeviTy +:: +BOILER +, +F +("Logamax U122/Cur"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +40 {208, + gDeviTy +:: +BOILER +, +F +("Logamax Plus/GB192/CdGC9000"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +41 {234, + gDeviTy +:: +BOILER +, +F +("Logamax PluGB122"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +44 { 68, + gDeviTy +:: +CONTROLLER +, +F +("BC10/RFM20"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +45 { 89, + gDeviTy +:: +CONTROLLER +, +F +("BC10 GB142"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +46 { 95, + gDeviTy +:: +CONTROLLER +, +F +("HT3"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +47 {114, + gDeviTy +:: +CONTROLLER +, +F +("BC10"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +48 {125, + gDeviTy +:: +CONTROLLER +, +F +("BC25"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +49 {152, + gDeviTy +:: +CONTROLLER +, +F +("Cڌr"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +50 {169, + gDeviTy +:: +CONTROLLER +, +F +("BC40"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +51 {190, + gDeviTy +:: +CONTROLLER +, +F +("BC10"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +52 {194, + gDeviTy +:: +CONTROLLER +, +F +("BC10"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +53 {207, + gDeviTy +:: +CONTROLLER +, +F +("S II/CS200"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +54 {209, + gDeviTy +:: +CONTROLLER +, +F +("ErP"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +55 {218, + gDeviTy +:: +CONTROLLER +, +F +("M200/RFM200"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +56 {224, + gDeviTy +:: +CONTROLLER +, +F +("9000i"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +57 {230, + gDeviTy +:: +CONTROLLER +, +F +("BC Ba"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +58 {241, + gDeviTy +:: +CONTROLLER +, +F +("Cd5000i"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +61 {202, + gDeviTy +:: +THERMOSTAT +, +F +("LogamiTC100/ModulEasy"), + gDeviFgs +:: +EMS_DEVICE_FLAG_EASY + | +DeviFgs +:: +EMS_DEVICE_FLAG_NO_WRITE +}, + +62 {203, + gDeviTy +:: +THERMOSTAT +, +F +("EasyCڌ CT200"), + gDeviFgs +:: +EMS_DEVICE_FLAG_EASY + | +DeviFgs +:: +EMS_DEVICE_FLAG_NO_WRITE +}, + +65 { 67, + gDeviTy +:: +THERMOSTAT +, +F +("RC30"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC30_1 +}, + +66 { 77, + gDeviTy +:: +THERMOSTAT +, +F +("RC20/Modul300"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC20 +}, + +67 { 78, + gDeviTy +:: +THERMOSTAT +, +F +("Modul400"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC30 +}, + +68 { 79, + gDeviTy +:: +THERMOSTAT +, +F +("RC10/Modul100"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC10 +}, + +69 { 80, + gDeviTy +:: +THERMOSTAT +, +F +("Modul200"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC10 +}, + +70 { 86, + gDeviTy +:: +THERMOSTAT +, +F +("RC35"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC35 +}, + +71 { 93, + gDeviTy +:: +THERMOSTAT +, +F +("RC20RF"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC20 +}, + +72 { 94, + gDeviTy +:: +THERMOSTAT +, +F +("RFM20 Reme"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +73 {157, + gDeviTy +:: +THERMOSTAT +, +F +("RC200/CW100"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC100 +}, + +74 {158, + gDeviTy +:: +THERMOSTAT +, +F +("RC300/RC310/Modul3000/CW400/S II"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC300 +}, + +75 {165, + gDeviTy +:: +THERMOSTAT +, +F +("RC100/Modul1000/1010"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC100 +}, + +78 { 76, + gDeviTy +:: +THERMOSTAT +, +F +("ES73"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC35 +}, + +79 {113, + gDeviTy +:: +THERMOSTAT +, +F +("ES72/RC20"), + gDeviFgs +:: +EMS_DEVICE_FLAG_RC20_2 +}, + +82 {105, + gDeviTy +:: +THERMOSTAT +, +F +("FW100"), + gDeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS +}, + +83 {106, + gDeviTy +:: +THERMOSTAT +, +F +("FW200"), + gDeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS +}, + +84 {107, + gDeviTy +:: +THERMOSTAT +, +F +("FR100"), + gDeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS + | +DeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS_2 +}, + +85 {108, + gDeviTy +:: +THERMOSTAT +, +F +("FR110"), + gDeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS + | +DeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS_2 +}, + +86 {111, + gDeviTy +:: +THERMOSTAT +, +F +("FR10"), + gDeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS +}, + +87 {147, + gDeviTy +:: +THERMOSTAT +, +F +("FR50"), + gDeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS +}, + +88 {191, + gDeviTy +:: +THERMOSTAT +, +F +("FR120"), + gDeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS +}, + +89 {192, + gDeviTy +:: +THERMOSTAT +, +F +("FW120"), + gDeviFgs +:: +EMS_DEVICE_FLAG_JUNKERS +}, + +92 { 73, + gDeviTy +:: +SOLAR +, +F +("SM10"), + gDeviFgs +:: +EMS_DEVICE_FLAG_SM10 +}, + +93 {101, + gDeviTy +:: +SOLAR +, +F +("ISM1"), + gDeviFgs +:: +EMS_DEVICE_FLAG_ISM +}, + +94 {162, + gDeviTy +:: +SOLAR +, +F +("SM50"), + gDeviFgs +:: +EMS_DEVICE_FLAG_SM100 +}, + +95 {163, + gDeviTy +:: +SOLAR +, +F +("SM100/MS100"), + gDeviFgs +:: +EMS_DEVICE_FLAG_SM100 +}, + +96 {164, + gDeviTy +:: +SOLAR +, +F +("SM200/MS200"), + gDeviFgs +:: +EMS_DEVICE_FLAG_SM100 +}, + +99 { 69, + gDeviTy +:: +MIXING +, +F +("MM10"), + gDeviFgs +:: +EMS_DEVICE_FLAG_MM10 +}, + +100 {102, + gDeviTy +:: +MIXING +, +F +("IPM"), + gDeviFgs +:: +EMS_DEVICE_FLAG_IPM +}, + +101 {159, + gDeviTy +:: +MIXING +, +F +("MM50"), + gDeviFgs +:: +EMS_DEVICE_FLAG_MMPLUS +}, + +102 {160, + gDeviTy +:: +MIXING +, +F +("MM100"), + gDeviFgs +:: +EMS_DEVICE_FLAG_MMPLUS +}, + +103 {161, + gDeviTy +:: +MIXING +, +F +("MM200"), + gDeviFgs +:: +EMS_DEVICE_FLAG_MMPLUS +}, + +106 {200, + gDeviTy +:: +HEATPUMP +, +F +("HP Modu"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +107 {252, + gDeviTy +:: +HEATPUMP +, +F +("HP Modu"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +110 {171, + gDeviTy +:: +CONNECT +, +F +("OnThm Cvr"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +111 {205, + gDeviTy +:: +CONNECT +, +F +("ModulEasy C"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +112 {206, + gDeviTy +:: +CONNECT +, +F +("Easy C"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +115 { 71, + gDeviTy +:: +SWITCH +, +F +("WM10"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +}, + +118 {189, + gDeviTy +:: +GATEWAY +, +F +("KM200/MB LAN 2"), + gDeviFgs +:: +EMS_DEVICE_FLAG_NONE +} + + @src/devices/boiler.cpp + +19  + ~"bo.h +" + +21 +mea + + gem + { + +23 +REGISTER_FACTORY +( +Bo +, +EMSdevi +:: +DeviTy +:: +BOILER +) + +25 +uuid +:: +log +:: +Logg + +Bo +:: +logg_ +{ +F_ +( +bo +), + guuid +::log:: +Facy +:: +CONSOLE +}; + +27 + gBo +:: +Bo +( +ut8_t + +devi_ty +, +t8_t + +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +28 : +EMSdevi +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +) { + +29 + gthis +-> +rve_mem +(20); + +31 +LOG_DEBUG +( +F +("Addgew Bo wh devi ID 0x%02X"), +devi_id +); + +34 +gi_gm_ty +(0x10, +F +("UBAEMesge1"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAEMesge +(t); }); + +35 +gi_gm_ty +(0x11, +F +("UBAEMesge2"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAEMesge +(t); }); + +36 +gi_gm_ty +(0x18, +F +("UBAMڙFa"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAMڙFa +(t); }); + +37 +gi_gm_ty +(0x19, +F +("UBAMڙSlow"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_UBAMڙSlow +(t); }); + +38 +gi_gm_ty +(0x34, +F +("UBAMڙWW"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAMڙWW +(t); }); + +39 +gi_gm_ty +(0x1C, +F +("UBAManStus"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAManStus +(t); }); + +40 +gi_gm_ty +(0x2A, +F +("MC10Stus"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_MC10Stus +(t); }); + +41 +gi_gm_ty +(0x33, +F +("UBAPamWW"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_UBAPamWW +(t); }); + +42 +gi_gm_ty +(0x14, +F +("UBATٮUime"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_UBATٮUime +(t); }); + +43 +gi_gm_ty +(0x35, +F +("UBAFgs"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAFgs +(t); }); + +44 +gi_gm_ty +(0x15, +F +("UBAManDa"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAManDa +(t); }); + +45 +gi_gm_ty +(0x16, +F +("UBAPams"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_UBAPams +(t); }); + +46 +gi_gm_ty +(0x1A, +F +("UBASPots"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBASPots +(t); }); + +47 +gi_gm_ty +(0xD1, +F +("UBAOutdoTemp"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAOutdoTemp +(t); }); + +48 +gi_gm_ty +(0xE3, +F +("UBAMڙSlowPlus"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAMڙSlowPlus2 +(t); }); + +49 +gi_gm_ty +(0xE4, +F +("UBAMڙFaPlus"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAMڙFaPlus +(t); }); + +50 +gi_gm_ty +(0xE5, +F +("UBAMڙSlowPlus"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBAMڙSlowPlus +(t); }); + +51 +gi_gm_ty +(0xE9, +F +("UBADHWStus"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_UBADHWStus +(t); }); + +54 +gi_mq_cmd +( +F +("comft"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_wmw_mode +(value, id); }); + +55 +gi_mq_cmd +( +F +("wwaived"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_wmw_aived +(value, id); }); + +56 +gi_mq_cmd +( +F +("wwived"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_pwmw_aived +(value, id); }); + +57 +gi_mq_cmd +( +F +("wwڑime"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_wmw_ڑime +(value, id); }); + +58 +gi_mq_cmd +( +F +("wwccuti"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_wmw_ccuti +(value, id); }); + +59 +gi_mq_cmd +( +F +("owmp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_ow_mp +(value, id); }); + +60 +gi_mq_cmd +( +F +("wwmp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_wmw_mp +(value, id); }); + +61 +gi_mq_cmd +( +F +("bumaxpow"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_max_pow +(value, id); }); + +62 +gi_mq_cmd +( +F +("bumpow"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_m_pow +(value, id); }); + +63 +gi_mq_cmd +( +F +("bohy"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_hy_ +(value, id); }); + +64 +gi_mq_cmd +( +F +("bohyoff"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_hy_off +(value, id); }); + +65 +gi_mq_cmd +( +F +("buriod"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_bu_riod +(value, id); }); + +66 +gi_mq_cmd +( +F +("pumpday"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_pump_day +(value, id); }); + +68 + gEMSESP +:: +e8266R +. +gMqStgsSvi +()-> +ad +([&]( +MqStgs + & +gs +) { + +69 +mq_fm_ + = +gs +. +mq_fm +; + +71 i( +mq_fm_ + = +MQTT_fm +:: +HA +) { + +72 +gi_mq_ha_cfig +(); + +78  + gBo +:: +add_cڋxt_mu +() { + +79 +EMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +80 +CommdFgs +:: +USER +, + +81 +ash_rg_ve +{ +F_ +( +bo +)}, + +82 [&]( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +83 +Bo +:: +cse_commds +( +shl +, +ShlCڋxt +:: +BOILER +); + +84 +add_cڋxt_commds +( +ShlCڋxt +:: +BOILER +); + +92  + gBo +:: +gi_mq_ha_cfig +() { + +93 +SticJsDocumt +< +EMSESP_MAX_JSON_SIZE_MEDIUM +> +doc +; + +107  + gBo +:: +devi_fo_web +( +JsAay + & +ro +) { + +108 +JsObje + +daEmt +; + +110 i( + grviCodeCh_ +[0] && + gHrs +:: +hasVue +( +rviCode_ +)) { + +111 +daEmt + = +ro +. +NeedObje +(); + +112 + gdaEmt +["me"] = +F +("Service Code"); + +113  + gs +[12]; + +114 +tf_P +( +s +, 12, +PSTR +("%(%d)"), +rviCodeCh_ +, +rviCode_ +); + +115 + gdaEmt +["vue"] = +s +; + +118 i( + gHrs +:: +hasVue +( +p_w_aive_ +, +EMS_VALUE_BOOL +)) { + +119 + gdaEmt + = +ro +. +NeedObje +(); + +120 + gdaEmt +["me"] = +F +("Hotap water"); + +121 + gdaEmt +["vue"] = +p_w_aive_ + ? +F +("running") : F("off"); + +124 i( + gHrs +:: +hasVue +( +htg_aive_ +, +EMS_VALUE_BOOL +)) { + +125 + gdaEmt + = +ro +. +NeedObje +(); + +126 + gdaEmt +["me"] = +F +("Central heating"); + +127 + gdaEmt +["vue"] = +htg_aive_ + ? +F +("active") : F("off"); + +130 +nd_vue_js +( +ro +, "", +F +("Seed flowemtu"), +lFlowTemp_ +, +F_ +( +deges +)); + +131 +nd_vue_js +( +ro +, "", +F +("Cuowemtu"), +curFlowTemp_ +, +F_ +( +deges +), 10); + +132 +nd_vue_js +( +ro +, "", +F +("Wm W seedemtu"), +wWSTemp_ +, +F_ +( +deges +)); + +133 +nd_vue_js +( +ro +, "", +F +("Wm W semtu"), +wWSTmp_ +, +F_ +( +deges +)); + +134 +nd_vue_js +( +ro +, "", +F +("Wm W cumtu ()"), +wWCurTmp_ +, +F_ +( +deges +), 10); + +135 +nd_vue_js +( +ro +, "", +F +("Wm W cumtu (ex)"), +wWCurTmp2_ +, +F_ +( +deges +), 10); + +136 +nd_vue_js +( +ro +, "", +F +("Pummoduti"), +pumpMod_ +, +F_ +( +r +)); + +137 +nd_vue_js +( +ro +, "", +F +("HPummoduti"), +pumpMod2_ +, +F_ +( +r +)); + +141  + gBo +:: +publish_vues +() { + +144 +SticJsDocumt +< +EMSESP_MAX_JSON_SIZE_LARGE +> +doc +; + +146  + gs +[10]; + +148 i( + gHrs +:: +hasVue +( +wWComft_ +)) { + +149 i( +wWComft_ + == 0x00) { + +150 +doc +["wWComfort"] = "Hot"; + +151 } i( + gwWComft_ + == 0xD8) { + +152 +doc +["wWComfort"] = "Eco"; + +153 } i( + gwWComft_ + == 0xEC) { + +154 +doc +["wWComfort"] = "Intelligent"; + +158 i( + gHrs +:: +hasVue +( +wWSTemp_ +)) { + +159 +doc +["wWSTemp"] = +wWSTemp_ +; + +161 i( + gHrs +:: +hasVue +( +wWSTmp_ +)) { + +162 +doc +["wWSTemp"] = +wWSTmp_ +; + +164 i( + gHrs +:: +hasVue +( +wWDisTemp_ +)) { + +165 +doc +["wWDisiTemp"] = +wWDisTemp_ +; + +167 i( + gHrs +:: +hasVue +( +lFlowTemp_ +)) { + +168 +doc +["lFlowTemp"] = +lFlowTemp_ +; + +170 i( + gHrs +:: +hasVue +( +lBuPow_ +)) { + +171 +doc +["lBuPow"] = +lBuPow_ +; + +173 i( + gHrs +:: +hasVue +( +curBuPow_ +)) { + +174 +doc +["curBuPow"] = +curBuPow_ +; + +176 i( + gHrs +:: +hasVue +( +pumpMod_ +)) { + +177 +doc +["pumpMod"] = +pumpMod_ +; + +179 i( + gHrs +:: +hasVue +( +pumpMod2_ +)) { + +180 +doc +["pumpMod2"] = +pumpMod2_ +; + +182 i( + gHrs +:: +hasVue +( +wWCcPump_ +, +EMS_VALUE_BOOL +)) { + +183 + gdoc +["wWCcPump"] = +Hrs +:: +nd_vue +( +s +, +wWCcPump_ +, +EMS_VALUE_BOOL +); + +185 i( + gHrs +:: +hasVue +( +wWCcPumpTy_ +, +EMS_VALUE_BOOL +)) { + +186 + gdoc +["wWCiPuTy"] = +wWCcPumpTy_ + ? "valve" : "pump"; + +188 i( + gHrs +:: +hasVue +( +wWCcPumpMode_ +)) { + +189 +doc +["wWCiPuMode"] = +wWCcPumpMode_ +; + +191 i( + gHrs +:: +hasVue +( +wWCc_ +, +EMS_VALUE_BOOL +)) { + +192 + gdoc +["wWCc"] = +Hrs +:: +nd_vue +( +s +, +wWCc_ +, +EMS_VALUE_BOOL +); + +194 i( + gHrs +:: +hasVue +( +extTemp_ +)) { + +195 +doc +["outdoTemp"] = () +extTemp_ + / 10; + +197 i( + gHrs +:: +hasVue +( +wWCurTmp_ +)) { + +198 +doc +["wWCurTmp"] = () +wWCurTmp_ + / 10; + +200 i( + gHrs +:: +hasVue +( +wWCurTmp2_ +)) { + +201 +doc +["wWCurTmp2"] = () +wWCurTmp2_ + / 10; + +203 i( + gHrs +:: +hasVue +( +wWCurFlow_ +)) { + +204 +doc +["wWCurFlow"] = () +wWCurFlow_ + / 10; + +206 i( + gHrs +:: +hasVue +( +curFlowTemp_ +)) { + +207 +doc +["curFlowTemp"] = () +curFlowTemp_ + / 10; + +209 i( + gHrs +:: +hasVue +( +tTemp_ +)) { + +210 +doc +["tTemp"] = () +tTemp_ + / 10; + +212 i( + gHrs +:: +hasVue +( +swchTemp_ +)) { + +213 +doc +["swchTemp"] = () +swchTemp_ + / 10; + +215 i( + gHrs +:: +hasVue +( +sysPss_ +)) { + +216 +doc +["sysPss"] = () +sysPss_ + / 10; + +218 i( + gHrs +:: +hasVue +( +boTemp_ +)) { + +219 +doc +["boTemp"] = () +boTemp_ + / 10; + +221 i( + gHrs +:: +hasVue +( +wwStageTemp1_ +)) { + +222 +doc +["wwStageTemp1"] = () +wwStageTemp1_ + / 10; + +224 i( + gHrs +:: +hasVue +( +wwStageTemp2_ +)) { + +225 +doc +["wwStageTemp2"] = () +wwStageTemp2_ + / 10; + +227 i( + gHrs +:: +hasVue +( +exhauTemp_ +)) { + +228 +doc +["exhauTemp"] = () +exhauTemp_ + / 10; + +230 i( + gHrs +:: +hasVue +( +wWAived_ +, +EMS_VALUE_BOOL +)) { + +231 + gdoc +["wWAived"] = +Hrs +:: +nd_vue +( +s +, +wWAived_ +, +EMS_VALUE_BOOL +); + +233 i( + gHrs +:: +hasVue +( +wWOTime_ +, +EMS_VALUE_BOOL +)) { + +234 + gdoc +["wWOtime"] = +Hrs +:: +nd_vue +( +s +, +wWOTime_ +, +EMS_VALUE_BOOL +); + +236 i( + gHrs +:: +hasVue +( +wWDisg_ +, +EMS_VALUE_BOOL +)) { + +237 + gdoc +["wWDisg"] = +Hrs +:: +nd_vue +( +s +, +wWDisg_ +, +EMS_VALUE_BOOL +); + +239 i( + gHrs +:: +hasVue +( +wWRdess_ +, +EMS_VALUE_BOOL +)) { + +240 + gdoc +["wWRdy"] = +Hrs +:: +nd_vue +( +s +, +wWRdess_ +, +EMS_VALUE_BOOL +); + +242 i( + gHrs +:: +hasVue +( +wWRechgg_ +, +EMS_VALUE_BOOL +)) { + +243 + gdoc +["wWRechge"] = +Hrs +:: +nd_vue +( +s +, +wWRechgg_ +, +EMS_VALUE_BOOL +); + +245 i( + gHrs +:: +hasVue +( +wWTemtuOK_ +, +EMS_VALUE_BOOL +)) { + +246 + gdoc +["wWTempOK"] = +Hrs +:: +nd_vue +( +s +, +wWTemtuOK_ +, +EMS_VALUE_BOOL +); + +248 i( + gHrs +:: +hasVue +( +wWCc_ +, +EMS_VALUE_BOOL +)) { + +249 + gdoc +["wWCc"] = +Hrs +:: +nd_vue +( +s +, +wWCc_ +, +EMS_VALUE_BOOL +); + +251 i( + gHrs +:: +hasVue +( +buGas_ +, +EMS_VALUE_BOOL +)) { + +252 + gdoc +["buGas"] = +Hrs +:: +nd_vue +( +s +, +buGas_ +, +EMS_VALUE_BOOL +); + +254 i( + gHrs +:: +hasVue +( +ameCu_ +)) { + +255 +doc +["ameCu"] = ()( +t16_t +) +ameCu_ + / 10; + +257 i( + gHrs +:: +hasVue +( +htPmp_ +, +EMS_VALUE_BOOL +)) { + +258 + gdoc +["htPump"] = +Hrs +:: +nd_vue +( +s +, +htPmp_ +, +EMS_VALUE_BOOL +); + +260 i( + gHrs +:: +hasVue +( +nWk_ +, +EMS_VALUE_BOOL +)) { + +261 + gdoc +["nWk"] = +Hrs +:: +nd_vue +( +s +, +nWk_ +, +EMS_VALUE_BOOL +); + +263 i( + gHrs +:: +hasVue +( +ignWk_ +, +EMS_VALUE_BOOL +)) { + +264 + gdoc +["ignWk"] = +Hrs +:: +nd_vue +( +s +, +ignWk_ +, +EMS_VALUE_BOOL +); + +266 i( + gHrs +:: +hasVue +( +wWHt_ +, +EMS_VALUE_BOOL +)) { + +267 + gdoc +["wWHt"] = +Hrs +:: +nd_vue +( +s +, +wWHt_ +, +EMS_VALUE_BOOL +); + +269 i( + gHrs +:: +hasVue +( +htg_mp_ +)) { + +270 +doc +["htgTemp"] = +htg_mp_ +; + +272 i( + gHrs +:: +hasVue +( +pump_mod_max_ +)) { + +273 +doc +["pumpModMax"] = +pump_mod_max_ +; + +275 i( + gHrs +:: +hasVue +( +pump_mod_m_ +)) { + +276 +doc +["pumpModM"] = +pump_mod_m_ +; + +278 i( + gHrs +:: +hasVue +( +pumpDay_ +)) { + +279 +doc +["pumpDay"] = +pumpDay_ +; + +281 i( + gHrs +:: +hasVue +( +buPiod_ +)) { + +282 +doc +["buMPiod"] = +buPiod_ +; + +284 i( + gHrs +:: +hasVue +( +buPowm_ +)) { + +285 +doc +["buMPow"] = +buPowm_ +; + +287 i( + gHrs +:: +hasVue +( +buPowmax_ +)) { + +288 +doc +["buMaxPow"] = +buPowmax_ +; + +290 i( + gHrs +:: +hasVue +( +boTemp__ +)) { + +291 +doc +["boHyOn"] = +boTemp__ +; + +293 i( + gHrs +:: +hasVue +( +boTemp_off_ +)) { + +294 +doc +["boHyOff"] = +boTemp_off_ +; + +296 i( + gHrs +:: +hasVue +( +tFlowTemp_ +)) { + +297 +doc +["tFlowTemp"] = +tFlowTemp_ +; + +299 i( + gHrs +:: +hasVue +( +tWWPumpPow_ +)) { + +300 +doc +["wWSPumpPow"] = +tWWPumpPow_ +; + +302 i( + gHrs +:: +hasVue +( +wWSs_ +)) { + +303 +doc +["wWSs"] = +wWSs_ +; + +305 i( + gHrs +:: +hasVue +( +wWWkM_ +)) { + +306 +doc +["wWWkM"] = +wWWkM_ +; + +308 i( + gHrs +:: +hasVue +( +UBAuime_ +)) { + +309 +doc +["UBAuime"] = +UBAuime_ +; + +311 i( + gHrs +:: +hasVue +( +buSs_ +)) { + +312 +doc +["buSs"] = +buSs_ +; + +314 i( + gHrs +:: +hasVue +( +buWkM_ +)) { + +315 +doc +["buWkM"] = +buWkM_ +; + +317 i( + gHrs +:: +hasVue +( +htWkM_ +)) { + +318 +doc +["htWkM"] = +htWkM_ +; + +320 i( + gHrs +:: +hasVue +( +rviCode_ +)) { + +321 +doc +["rviCode"] = +rviCodeCh_ +; + +322 + gdoc +["rviCodeNumb"] = +rviCode_ +; + +326 i(! + gdoc +. +isNu +()) { + +327 + gMq +:: +publish +( +F +("bo_da"), +doc +); + +332 +bo + + gBo +:: +upded_vues +() { + +333 i( +chged_ +) { + +334 +chged_ + = +l +; + +335  + gue +; + +337  + gl +; + +341  + gBo +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +342 +EMSdevi +:: +show_vues +( +shl +); + +344 i( + gHrs +:: +hasVue +( +p_w_aive_ +, +EMS_VALUE_BOOL +)) { + +345 +t_vue +( +shl +, 2, +F +("Hف w"), +p_w_aive_ + ? F("running") : F("off")); + +348 i( + gHrs +:: +hasVue +( +htg_aive_ +, +EMS_VALUE_BOOL +)) { + +349 +t_vue +( +shl +, 2, +F +("C htg"), +htg_aive_ + ? F("active") : F("off")); + +352 +t_vue +( +shl +, 2, +F +("Wm Wived"), +wWAived_ +, +nuαr +, +EMS_VALUE_BOOL +); + +353 i( + gHrs +:: +hasVue +( +wWCcPumpTy_ +, +EMS_VALUE_BOOL +)) { + +354 +t_vue +( +shl +, 2, +F +("Wm W chggy"), +wWCcPumpTy_ + ? F("3-way valve") : F("chargeump")); + +356 +t_vue +( +shl +, 2, +F +("Wm W ccutiڅumavaab"), +wWCcPump_ +, +nuαr +, +EMS_VALUE_BOOL +); + +358 i( + gHrs +:: +hasVue +( +wWCcPumpMode_ +)) { + +359 i( +wWCcPumpMode_ + == 7) { + +360 +t_vue +( +shl +, 2, +F +("Warm Water circulationump freq"), F("continuous")); + +362  + gs +[7]; + +363  + gbufr +[2]; + +364 + gbufr +[0] = ( +wWCcPumpMode_ + % 10) + '0'; + +365 + gbufr +[1] = '\0'; + +366 +y +( +s +, +bufr +, 7); + +367 +t +( +s +, "x3min", 7); + +368 +t_vue +( +shl +, 2, +F +("Wm W ccutiڅumeq"), +s +); + +372 +t_vue +( +shl +, 2, +F +("Wm W ccutiڇive"), +wWCc_ +, +nuαr +, +EMS_VALUE_BOOL +); + +374 i( + gwWComft_ + == 0x00) { + +375 +t_vue +( +shl +, 2, +F +("Warm Water comfort setting"), F("Hot")); + +376 } i( + gwWComft_ + == 0xD8) { + +377 +t_vue +( +shl +, 2, +F +("Warm Water comfort setting"), F("Eco")); + +378 } i( + gwWComft_ + == 0xEC) { + +379 +t_vue +( +shl +, 2, +F +("Warm Water comfort setting"), F("Intelligent")); + +382 +t_vue +( +shl +, 2, +F +("Wm w mixemtu"), +wwMixTemtu_ +, +F_ +( +deges +), 10); + +383 +t_vue +( +shl +, 2, +F +("Wm w bufboemtu"), +wwBufrBoTemtu_ +, +F_ +( +deges +), 10); + +384 +t_vue +( +shl +, 2, +F +("Wm W disiځemtu"), +wWDisTemp_ +, +F_ +( +deges +)); + +385 +t_vue +( +shl +, 2, +F +("Wm W seedemtu"), +wWSTemp_ +, +F_ +( +deges +)); + +386 +t_vue +( +shl +, 2, +F +("Wm W semtu"), +wWSTmp_ +, +F_ +( +deges +)); + +387 +t_vue +( +shl +, 2, +F +("Wm W cumtu ()"), +wWCurTmp_ +, +F_ +( +deges +), 10); + +388 +t_vue +( +shl +, 2, +F +("Wm w stagmtu ()"), +wwStageTemp1_ +, +F_ +( +deges +), 10); + +389 +t_vue +( +shl +, 2, +F +("Wm W cumtu (ex)"), +wWCurTmp2_ +, +F_ +( +deges +), 10); + +390 +t_vue +( +shl +, 2, +F +("Wm w stagmtu (ex)"), +wwStageTemp2_ +, +F_ +( +deges +), 10); + +391 +t_vue +( +shl +, 2, +F +("Wm W cuw flow"), +wWCurFlow_ +, F("l/min"), 10); + +392 +t_vue +( +shl +, 2, +F +("Wm W # ss"), +wWSs_ +, +nuαr +); + +393 i( + gHrs +:: +hasVue +( +wWWkM_ +)) { + +394 +shl +. +tn +( +F +(" Wm Wivtime: %d day%d hour%d mus"), +wWWkM_ + / 1440, (wWWorkM_ % 1440) / 60, wWWorkM_ % 60); + +396 +t_vue +( +shl +, 2, +F +("Wm W chgg"), +wWHt_ +, +nuαr +, +EMS_VALUE_BOOL +); + +397 +t_vue +( +shl +, 2, +F +("Wm W disg"), +wWDisg_ +, +nuαr +, +EMS_VALUE_BOOL +); + +398 +t_vue +( +shl +, 2, +F +("Seed flowemtu"), +lFlowTemp_ +, +F_ +( +deges +)); + +399 +t_vue +( +shl +, 2, +F +("Cuowemtu"), +curFlowTemp_ +, +F_ +( +deges +), 10); + +400 +t_vue +( +shl +, 2, +F +("Max boemtu"), +boTemp_ +, +F_ +( +deges +), 10); + +401 +t_vue +( +shl +, 2, +F +("Ruemtu"), +tTemp_ +, +F_ +( +deges +), 10); + +402 +t_vue +( +shl +, 2, +F +("Gas"), +buGas_ +, +nuαr +, +EMS_VALUE_BOOL +); + +403 +t_vue +( +shl +, 2, +F +("Boump"), +htPmp_ +, +nuαr +, +EMS_VALUE_BOOL +); + +404 +t_vue +( +shl +, 2, +F +("F"), +nWk_ +, +nuαr +, +EMS_VALUE_BOOL +); + +405 +t_vue +( +shl +, 2, +F +("Igni"), +ignWk_ +, +nuαr +, +EMS_VALUE_BOOL +); + +407 +t_vue +( +shl +, 2, +F +("Bu seed maxow"), +lBuPow_ +, +F_ +( +r +)); + +408 +t_vue +( +shl +, 2, +F +("Bu cupow"), +curBuPow_ +, +F_ +( +r +)); + +409 +t_vue +( +shl +, 2, +F +("Fmcut"), +ameCu_ +, F("uA"), 10); + +410 +t_vue +( +shl +, 2, +F +("Syemssu"), +sysPss_ +, F("bar"), 10); + +411 i( + gHrs +:: +hasVue +( +rviCode_ +)) { + +412 +shl +. +tn +( +F +(" Syem svi code: %(%d)"), +rviCodeCh_ +, +rviCode_ +); + +413 } i( + grviCodeCh_ +[0] != '\0') { + +414 +t_vue +( +shl +, 2, +F +("Syem svi code"), +rviCodeCh_ +); + +418 +t_vue +( +shl +, 2, +F +("Htgemtu stg othbo"), +htg_mp_ +, +F_ +( +deges +)); + +419 +t_vue +( +shl +, 2, +F +("Bo ccuummoduti maxow"), +pump_mod_max_ +, +F_ +( +r +)); + +420 +t_vue +( +shl +, 2, +F +("Bo ccuummoduti mow"), +pump_mod_m_ +, +F_ +( +r +)); + +421 +t_vue +( +shl +, 2, +F +("Bo ccuumdayime"), +pumpDay_ +, F("min")); + +422 +t_vue +( +shl +, 2, +F +("Boemhyesi"), +boTemp__ +, +F_ +( +deges +)); + +423 +t_vue +( +shl +, 2, +F +("Boemhyesioff"), +boTemp_off_ +, +F_ +( +deges +)); + +424 +t_vue +( +shl +, 2, +F +("Bo bu miod"), +buPiod_ +, F("min")); + +425 +t_vue +( +shl +, 2, +F +("Bo bu mow"), +buPowm_ +, +F_ +( +r +)); + +426 +t_vue +( +shl +, 2, +F +("Bo bu maxow"), +buPowmax_ +, +F_ +( +r +)); + +429 +t_vue +( +shl +, 2, +F +("S Flowemtu"), +tFlowTemp_ +, +F_ +( +deges +)); + +430 +t_vue +( +shl +, 2, +F +("Bo bu sow"), +tBuPow_ +, +F_ +( +r +)); + +431 +t_vue +( +shl +, 2, +F +("Wm Wumpow"), +tWWPumpPow_ +, +F_ +( +r +)); + +434 i( + gHrs +:: +hasVue +( +extTemp_ +)) { + +435 +t_vue +( +shl +, 2, +F +("Outsidmtu"), +extTemp_ +, +F_ +( +deges +), 10); + +438 +t_vue +( +shl +, 2, +F +("Exhauemtu"), +exhauTemp_ +, +F_ +( +deges +), 10); + +439 +t_vue +( +shl +, 2, +F +("Pummoduti"), +pumpMod_ +, +F_ +( +r +)); + +440 +t_vue +( +shl +, 2, +F +("HPummoduti"), +pumpMod2_ +, +F_ +( +r +)); + +441 +t_vue +( +shl +, 2, +F +("Bu # ss"), +buSs_ +, +nuαr +); + +442 i( + gHrs +:: +hasVue +( +buWkM_ +)) { + +443 +shl +. +tn +( +F +(" Tٮ bu otgime: %d day%d hour%d mus"), +buWkM_ + / 1440, (burnWorkMin_ % 1440) / 60, burnWorkMin_ % 60); + +445 i( + gHrs +:: +hasVue +( +htWkM_ +)) { + +446 +shl +. +tn +( +F +(" Tٮ hݔgime: %d day%d hour%d mus"), +htWkM_ + / 1440, (heatWorkMin_ % 1440) / 60, heatWorkMin_ % 60); + +448 i( + gHrs +:: +hasVue +( +UBAuime_ +)) { + +449 +shl +. +tn +( +F +(" Tٮ UBA wkgime: %d day%d hour%d mus"), +UBAuime_ + / 1440, (UBAuptime_ % 1440) / 60, UBAuptime_ % 60); + +452 + gshl +. +n +(); + +459  + gBo +:: +check_aive +() { + +462 i( +Hrs +:: +hasVue +( +wWCurFlow_ +&& Hrs::hasVue( +buGas_ +)) { + +463 +p_w_aive_ + = (( +wWCurFlow_ + !0&& ( +buGas_ + ! +EMS_VALUE_BOOL_OFF +)); + +464 + gEMSESP +:: +p_w_aive +( +p_w_aive_ +); + +469 i( + gHrs +:: +hasVue +( +lFlowTemp_ +&& +Hrs +::hasVue( +buGas_ +)) { + +470 +htg_aive_ + = (! +p_w_aive_ + && (( +lFlowTemp_ + > +EMS_BOILER_SELFLOWTEMP_HEATING +&& ( +buGas_ + ! +EMS_VALUE_BOOL_OFF +))); + +475 i( + gHrs +:: +hasVue +( +p_w_aive_ +, +EMS_VALUE_BOOL +&& Hrs::hasVue( +htg_aive_ +, EMS_VALUE_BOOL)) { + +476 +ut8_t + + gϋ_boS + = ( +p_w_aive_ + << 1+ +htg_aive_ +; + +477 i( + gϋ_boS + ! +ϡ_boS +) { + +478 +ϡ_boS + = +ϋ_boS +; + +479 + gMq +:: +publish +( +F +("pw_aive"), +p_w_aive_ +); + +480 + gMq +:: +publish +( +F +("htg_aive"), +htg_aive_ +); + +486  + gBo +:: +oss_UBAPamWW +( +d +:: +shed_r + +gm +) { + +487 +chged_ + | +gm +-> +ad_vue +( +wWAived_ +, 1); + +488 + gchged_ + | +gm +-> +ad_vue +( +wWCcPump_ +, 6); + +489 + gchged_ + | +gm +-> +ad_vue +( +wWCcPumpMode_ +, 7); + +490 + gchged_ + | +gm +-> +ad_vue +( +wWCcPumpTy_ +, 10); + +491 + gchged_ + | +gm +-> +ad_vue +( +wWSTemp_ +, 2); + +492 + gchged_ + | +gm +-> +ad_vue +( +wWDisTemp_ +, 8); + +493 + gchged_ + | +gm +-> +ad_vue +( +wWComft_ +, 9); + +497  + gBo +:: +oss_UBAMڙFa +( +d +:: +shed_r + +gm +) { + +498 +chged_ + | +gm +-> +ad_vue +( +lFlowTemp_ +, 0); + +499 + gchged_ + | +gm +-> +ad_vue +( +curFlowTemp_ +, 1); + +500 + gchged_ + | +gm +-> +ad_vue +( +lBuPow_ +, 3); + +501 + gchged_ + | +gm +-> +ad_vue +( +curBuPow_ +, 4); + +503 + gchged_ + | +gm +-> +ad_bvue +( +buGas_ +, 7, 0); + +504 + gchged_ + | +gm +-> +ad_bvue +( +nWk_ +, 7, 2); + +505 + gchged_ + | +gm +-> +ad_bvue +( +ignWk_ +, 7, 3); + +506 + gchged_ + | +gm +-> +ad_bvue +( +htPmp_ +, 7, 5); + +507 + gchged_ + | +gm +-> +ad_bvue +( +wWHt_ +, 7, 6); + +508 + gchged_ + | +gm +-> +ad_bvue +( +wWCc_ +, 7, 7); + +512 + gchged_ + | +gm +-> +ad_vue +( +wwStageTemp1_ +, 9); + +513 + gchged_ + | +gm +-> +ad_vue +( +wwStageTemp2_ +, 11); + +515 + gchged_ + | +gm +-> +ad_vue +( +tTemp_ +, 13); + +516 + gchged_ + | +gm +-> +ad_vue +( +ameCu_ +, 15); + +517 + gchged_ + | +gm +-> +ad_vue +( +rviCode_ +, 20); + +520 + gchged_ + | +gm +-> +ad_vue +( +sysPss_ +, 17); + +523 i(( + ggm +-> + gmesge_ngth + > 18&& (gm-> + gofft + == 0)) { + +524 +chged_ + | +gm +-> +ad_vue +( +rviCodeCh_ +[0], 18); + +525 + gchged_ + | +gm +-> +ad_vue +( +rviCodeCh_ +[1], 19); + +526 + grviCodeCh_ +[2] = '\0'; + +530 +check_aive +(); + +537  + gBo +:: +oss_UBATٮUime +( +d +:: +shed_r + +gm +) { + +538 +chged_ + | +gm +-> +ad_vue +( +UBAuime_ +, 0, 3); + +544  + gBo +:: +oss_UBAPams +( +d +:: +shed_r + +gm +) { + +545 +chged_ + | +gm +-> +ad_vue +( +htg_mp_ +, 1); + +546 + gchged_ + | +gm +-> +ad_vue +( +buPowmax_ +, 2); + +547 + gchged_ + | +gm +-> +ad_vue +( +buPowm_ +, 3); + +548 + gchged_ + | +gm +-> +ad_vue +( +boTemp_off_ +, 4); + +549 + gchged_ + | +gm +-> +ad_vue +( +boTemp__ +, 5); + +550 + gchged_ + | +gm +-> +ad_vue +( +buPiod_ +, 6); + +551 + gchged_ + | +gm +-> +ad_vue +( +pumpDay_ +, 8); + +552 + gchged_ + | +gm +-> +ad_vue +( +pump_mod_max_ +, 9); + +553 + gchged_ + | +gm +-> +ad_vue +( +pump_mod_m_ +, 10); + +560  + gBo +:: +oss_UBAMڙWW +( +d +:: +shed_r + +gm +) { + +561 +chged_ + | +gm +-> +ad_vue +( +wWSTmp_ +, 0); + +562 + gchged_ + | +gm +-> +ad_vue +( +wWCurTmp_ +, 1); + +563 + gchged_ + | +gm +-> +ad_vue +( +wWCurTmp2_ +, 3); + +564 + gchged_ + | +gm +-> +ad_vue +( +wWCurFlow_ +, 9); + +566 + gchged_ + | +gm +-> +ad_vue +( +wWWkM_ +, 10, 3); + +567 + gchged_ + | +gm +-> +ad_vue +( +wWSs_ +, 13, 3); + +569 + gchged_ + | +gm +-> +ad_bvue +( +wWOTime_ +, 5, 1); + +570 + gchged_ + | +gm +-> +ad_bvue +( +wWDisg_ +, 5, 2); + +571 + gchged_ + | +gm +-> +ad_bvue +( +wWRdess_ +, 5, 3); + +572 + gchged_ + | +gm +-> +ad_bvue +( +wWRechgg_ +, 5, 4); + +573 + gchged_ + | +gm +-> +ad_bvue +( +wWTemtuOK_ +, 5, 5); + +580  + gBo +:: +oss_UBAMڙFaPlus +( +d +:: +shed_r + +gm +) { + +581 +chged_ + | +gm +-> +ad_vue +( +lFlowTemp_ +, 6); + +582 + gchged_ + | +gm +-> +ad_bvue +( +buGas_ +, 11, 0); + +583 + gchged_ + | +gm +-> +ad_bvue +( +wWHt_ +, 11, 2); + +584 + gchged_ + | +gm +-> +ad_vue +( +curBuPow_ +, 10); + +585 + gchged_ + | +gm +-> +ad_vue +( +lBuPow_ +, 9); + +586 + gchged_ + | +gm +-> +ad_vue +( +curFlowTemp_ +, 7); + +587 + gchged_ + | +gm +-> +ad_vue +( +ameCu_ +, 19); + +590 i(( + ggm +-> + gmesge_ngth + > 4&& (gm-> + gofft + == 0)) { + +591 +chged_ + | +gm +-> +ad_vue +( +rviCodeCh_ +[0], 4); + +592 + gchged_ + | +gm +-> +ad_vue +( +rviCodeCh_ +[1], 5); + +593 + grviCodeCh_ +[2] = '\0'; + +597 +check_aive +(); + +607  + gBo +:: +oss_UBAMڙSlow +( +d +:: +shed_r + +gm +) { + +608 +chged_ + | +gm +-> +ad_vue +( +extTemp_ +, 0); + +609 + gchged_ + | +gm +-> +ad_vue +( +boTemp_ +, 2); + +610 + gchged_ + | +gm +-> +ad_vue +( +exhauTemp_ +, 4); + +611 + gchged_ + | +gm +-> +ad_vue +( +swchTemp_ +, 25); + +612 + gchged_ + | +gm +-> +ad_vue +( +pumpMod_ +, 9); + +613 + gchged_ + | +gm +-> +ad_vue +( +buSs_ +, 10, 3); + +614 + gchged_ + | +gm +-> +ad_vue +( +buWkM_ +, 13, 3); + +615 + gchged_ + | +gm +-> +ad_vue +( +htWkM_ +, 19, 3); + +621  + gBo +:: +oss_UBAMڙSlowPlus2 +( +d +:: +shed_r + +gm +) { + +622 +chged_ + | +gm +-> +ad_vue +( +pumpMod2_ +, 13); + +628  + gBo +:: +oss_UBAMڙSlowPlus +( +d +:: +shed_r + +gm +) { + +629 +chged_ + | +gm +-> +ad_bvue +( +nWk_ +, 2, 2); + +630 + gchged_ + | +gm +-> +ad_bvue +( +ignWk_ +, 2, 3); + +631 + gchged_ + | +gm +-> +ad_bvue +( +htPmp_ +, 2, 5); + +632 + gchged_ + | +gm +-> +ad_bvue +( +wWCc_ +, 2, 7); + +633 + gchged_ + | +gm +-> +ad_vue +( +buSs_ +, 10, 3); + +634 + gchged_ + | +gm +-> +ad_vue +( +buWkM_ +, 13, 3); + +635 + gchged_ + | +gm +-> +ad_vue +( +htWkM_ +, 19, 3); + +636 + gchged_ + | +gm +-> +ad_vue +( +pumpMod_ +, 25); + +641  + gBo +:: +oss_UBADHWStus +( +d +:: +shed_r + +gm +) { + +642 +chged_ + | +gm +-> +ad_vue +( +wWSTmp_ +, 0); + +643 + gchged_ + | +gm +-> +ad_vue +( +wWCurTmp_ +, 1); + +644 + gchged_ + | +gm +-> +ad_vue +( +wWCurTmp2_ +, 3); + +646 + gchged_ + | +gm +-> +ad_vue +( +wWWkM_ +, 17, 3); + +647 + gchged_ + | +gm +-> +ad_vue +( +wWSs_ +, 14, 3); + +649 + gchged_ + | +gm +-> +ad_bvue +( +wWOTime_ +, 12, 2); + +650 + gchged_ + | +gm +-> +ad_bvue +( +wWDisg_ +, 12, 3); + +651 + gchged_ + | +gm +-> +ad_bvue +( +wWRdess_ +, 12, 4); + +652 + gchged_ + | +gm +-> +ad_bvue +( +wWRechgg_ +, 13, 4); + +653 + gchged_ + | +gm +-> +ad_bvue +( +wWTemtuOK_ +, 13, 5); + +654 + gchged_ + | +gm +-> +ad_bvue +( +wWCcPump_ +, 13, 2); + +656 + gchged_ + | +gm +-> +ad_vue +( +wWAived_ +, 20); + +657 + gchged_ + | +gm +-> +ad_vue +( +wWSTemp_ +, 10); + +658 + gchged_ + | +gm +-> +ad_vue +( +wWDisTemp_ +, 9); + +664  + gBo +:: +oss_MC10Stus +( +d +:: +shed_r + +gm +) { + +665 +chged_ + | +gm +-> +ad_vue +( +wwMixTemtu_ +, 14); + +666 + gchged_ + | +gm +-> +ad_vue +( +wwBufrBoTemtu_ +, 18); + +672  + gBo +:: +oss_UBAOutdoTemp +( +d +:: +shed_r + +gm +) { + +673 +chged_ + | +gm +-> +ad_vue +( +extTemp_ +, 0); + +677  + gBo +:: +oss_UBASPots +( +d +:: +shed_r + +gm +) { + +678 +chged_ + | +gm +-> +ad_vue +( +tFlowTemp_ +, 0); + +679 + gchged_ + | +gm +-> +ad_vue +( +tBuPow_ +, 1); + +680 + gchged_ + | +gm +-> +ad_vue +( +tWWPumpPow_ +, 2); + +683 #agm +GCC + +dgnoic + +push + + +684 #agm +GCC + +dgnoic + +igned + "-Wunused-parameter" + +688  + gBo +:: +oss_UBAFgs +( +d +:: +shed_r + +gm +) { + +693  +Bo +:: +oss_UBAManStus +( +d +:: +shed_r + +gm +) { + +699  +Bo +:: +oss_UBAEMesge +( +d +:: +shed_r + +gm +) { + +703 #agm +GCC + +dgnoic + +p + + +706  +Bo +:: +oss_UBAManDa +( +d +:: +shed_r + +gm +) { + +709 i( +gm +-> +mesge_da +[0] == 3) { + +710 +LOG_WARNING +( +F +("Boiler has booted.")); + +720  + gBo +:: +t_wmw_mp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +721  + gv + = 0; + +722 i(! + gHrs +:: +vue2numb +( +vue +, +v +)) { + +726 +LOG_INFO +( +F +("Stg bo wm wemtu%d C"), +v +); + +727 +wre_commd +( +EMS_TYPE_UBAPamWW +, 2, +v +, EMS_TYPE_UBAParameterWW); + +728 +wre_commd +( +EMS_TYPE_UBAFgs +, 3, +v +, +EMS_TYPE_UBAPamWW +); + +732  + gBo +:: +t_ow_mp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +733  + gv + = 0; + +734 i(! + gHrs +:: +vue2numb +( +vue +, +v +)) { + +738 +LOG_INFO +( +F +("Stg bo flowemtu%d C"), +v +); + +739 +wre_commd +( +EMS_TYPE_UBASPots +, 0, +v +, EMS_TYPE_UBASetPoints); + +743  + gBo +:: +t_m_pow +(cڡ * +vue +, cڡ +t8_t + +id +) { + +744  + gv + = 0; + +745 i(! + gHrs +:: +vue2numb +( +vue +, +v +)) { + +748 +LOG_INFO +( +F +("Stg bo mow"), +v +); + +749 +wre_commd +( +EMS_TYPE_UBAPams +, 3, +v +, EMS_TYPE_UBAParameters); + +753  + gBo +:: +t_max_pow +(cڡ * +vue +, cڡ +t8_t + +id +) { + +754  + gv + = 0; + +755 i(! + gHrs +:: +vue2numb +( +vue +, +v +)) { + +759 +LOG_INFO +( +F +("Stg bo maxow%d C"), +v +); + +760 +wre_commd +( +EMS_TYPE_UBAPams +, 2, +v +, EMS_TYPE_UBAParameters); + +764  + gBo +:: +t_hy_ +(cڡ * +vue +, cڡ +t8_t + +id +) { + +765  + gv + = 0; + +766 i(! + gHrs +:: +vue2numb +( +vue +, +v +)) { + +770 +LOG_INFO +( +F +("Stg bo hyesiځ%d C"), +v +); + +771 +wre_commd +( +EMS_TYPE_UBAPams +, 5, +v +, EMS_TYPE_UBAParameters); + +775  + gBo +:: +t_hy_off +(cڡ * +vue +, cڡ +t8_t + +id +) { + +776  + gv + = 0; + +777 i(! + gHrs +:: +vue2numb +( +vue +, +v +)) { + +781 +LOG_INFO +( +F +("Stg bo hyesioft%d C"), +v +); + +782 +wre_commd +( +EMS_TYPE_UBAPams +, 4, +v +, EMS_TYPE_UBAParameters); + +786  + gBo +:: +t_bu_riod +(cڡ * +vue +, cڡ +t8_t + +id +) { + +787  + gv + = 0; + +788 i(! + gHrs +:: +vue2numb +( +vue +, +v +)) { + +792 +LOG_INFO +( +F +("Stg bu m.iod%d m"), +v +); + +793 +wre_commd +( +EMS_TYPE_UBAPams +, 6, +v +, EMS_TYPE_UBAParameters); + +797  + gBo +:: +t_pump_day +(cڡ * +vue +, cڡ +t8_t + +id +) { + +798  + gv + = 0; + +799 i(! + gHrs +:: +vue2numb +( +vue +, +v +)) { + +803 +LOG_INFO +( +F +("Stg boumday%d m"), +v +); + +804 +wre_commd +( +EMS_TYPE_UBAPams +, 8, +v +, EMS_TYPE_UBAParameters); + +809  + gBo +:: +t_wmw_mode +(cڡ * +vue +, cڡ +t8_t + +id +) { + +810 i( + gvue + = +nuαr +) { + +813 +ut8_t + + gt +; + +814 i( +rcmp +( +vue +, "hot") == 0) { + +815 +LOG_INFO +( +F +("Setting boiler warm watero Hot")); + +816 + gt + = 0x00; + +817 } i( +rcmp +( +vue +, "eco") == 0) { + +818 +LOG_INFO +( +F +("Setting boiler warm watero Eco")); + +819 + gt + = 0xD8; + +820 } i( +rcmp +( +vue +, "intelligent") == 0) { + +821 +LOG_INFO +( +F +("Setting boiler warm watero Intelligent")); + +822 + gt + = 0xEC; + +826 +wre_commd +( +EMS_TYPE_UBAPamWW +, 9, +t +, EMS_TYPE_UBAParameterWW); + +830  + gBo +:: +t_wmw_aived +(cڡ * +vue +, cڡ +t8_t + +id +) { + +831 +bo + + gv + = +l +; + +832 i(! + gHrs +:: +vue2bo +( +vue +, +v +)) { + +836 +LOG_INFO +( +F +("Stg bo wm w %s"), +v + ? "on" : "off"); + +839 +ut8_t + + gn +; + +840 i( + gEMSbus +:: +is_ht3 +()) { + +841 +n + = ( +v + ? 0x08 : 0x00); + +843 + gn + = ( +v + ? 0xFF : 0x00); + +845 +wre_commd +( +EMS_TYPE_UBAPamWW +, 1, +n +, EMS_TYPE_UBAParameterWW); + +850  + gBo +:: +t_pwmw_aived +(cڡ * +vue +, cڡ +t8_t + +id +) { + +851 +bo + + gv + = +l +; + +852 i(! + gHrs +:: +vue2bo +( +vue +, +v +)) { + +856 +LOG_INFO +( +F +("Stg wm w %s"), +v + ? "on" : "off"); + +857 +ut8_t + + gmesge_da +[ +EMS_MAX_TELEGRAM_MESSAGE_LENGTH +]; + +858  +ut8_t + + gi + = 0; i < ( + gmesge_da +); i++) { + +859 + gmesge_da +[ +i +] = 0x00; + +865 i(! + gv +) { + +867 + gmesge_da +[0] = 0x5A; + +868 + gmesge_da +[1] = 0x00; + +869 + gmesge_da +[3] = 0x64; + +870 + gmesge_da +[4] = 0xFF; + +874 + gmesge_da +[4] = 0x00; + +877 +wre_commd +( +EMS_TYPE_UBAFuniTe +, 0, +mesge_da +, (message_data), 0); + +883  + gBo +:: +t_wmw_ڑime +(cڡ * +vue +, cڡ +t8_t + +id +) { + +884 +bo + + gv + = +l +; + +885 i(! + gHrs +:: +vue2bo +( +vue +, +v +)) { + +889 +LOG_INFO +( +F +("Stg bo wm w OTimldg %s"), +v + ? "on" : "off"); + +890 +wre_commd +( +EMS_TYPE_UBAFgs +, 0, ( +v + ? 0x22 : 0x02), 0x18); + +895  + gBo +:: +t_wmw_ccuti +(cڡ * +vue +, cڡ +t8_t + +id +) { + +896 +bo + + gv + = +l +; + +897 i(! + gHrs +:: +vue2bo +( +vue +, +v +)) { + +901 +LOG_INFO +( +F +("Stg bo wm w ccuti %s"), +v + ? "on" : "off"); + +902 +wre_commd +( +EMS_TYPE_UBAFgs +, 1, ( +v + ? 0x22 : 0x02), 0x18); + +906  + gBo +:: +cse_commds +( +Shl + & +shl +,  +cڋxt +) { + +907 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +BOILER +, + +908 +CommdFgs +:: +ADMIN +, + +909 +ash_rg_ve +{ +F_ +( +ad +)}, + +910 +ash_rg_ve +{ +F_ +( +tyid_mdy +)}, + +911 [=]( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts +) { + +912 +ut16_t + +ty_id + = +Hrs +:: +hextot +( +gumts +. +t +(). +c_r +()); + +913 +EMSESP +:: +t_ad_id +( +ty_id +); + +914 +EMSESP +:: +nd_ad_que +( +ty_id +, +g_devi_id +()); + +917 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +BOILER +, + +918 +CommdFgs +:: +USER +, + +919 +ash_rg_ve +{ +F_ +( +show +)}, + +920 [&]( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +)){ +show_vues +(shell); }); + +923 + gCse +:: +r_cuom_cڋxt +( +shl +, +cڋxt +); + + @src/devices/boiler.h + +19 #ide +EMSESP_BOILER_H + + +20  + #EMSESP_BOILER_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +27  + ~ + +29  + ~"emsdevi.h +" + +30  + ~"gm.h +" + +31  + ~"em.h +" + +32  + ~"hrs.h +" + +33  + ~"mq.h +" + +35 +mea + + gem + { + +37 as + cBo + : +public + +EMSdevi + { + +38 +public +: + +39 +Bo +( +ut8_t + +devi_ty +, +t8_t + +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +); + +41 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +42 +vtu +  +publish_vues +(); + +43 +vtu +  +devi_fo_web +( +JsAay + & +ro +); + +44 +vtu + +bo + +upded_vues +(); + +45 +vtu +  +add_cڋxt_mu +(); + +47 + give +: + +48  +uuid +:: +log +:: +Logg + +logg_ +; + +50  +cse_commds +( +Shl + & +shl +,  +cڋxt +); + +51  +gi_mq_ha_cfig +(); + +52  +check_aive +(); + +54 +ut8_t + + gϡ_boS + = 0xFF; + +55 +ut8_t + + gmq_fm_ +; + +56 +bo + + gchged_ + = +l +; + +58  +cڡex + +ut8_t + + gEMS_TYPE_UBAPamWW + = 0x33; + +59  +cڡex + +ut8_t + + gEMS_TYPE_UBAFuniTe + = 0x1D; + +60  +cڡex + +ut8_t + + gEMS_TYPE_UBAFgs + = 0x35; + +61  +cڡex + +ut8_t + + gEMS_TYPE_UBASPots + = 0x1A; + +62  +cڡex + +ut8_t + + gEMS_TYPE_UBAPams + = 0x16; + +64  +cڡex + +ut8_t + + gEMS_BOILER_SELFLOWTEMP_HEATING + = 20; + +67 +ut8_t + + gwWAived_ + = +EMS_VALUE_BOOL_NOTSET +; + +68 +ut8_t + + gwWSTemp_ + = +EMS_VALUE_UINT_NOTSET +; + +69 +ut8_t + + gwWCcPump_ + = +EMS_VALUE_BOOL_NOTSET +; + +70 +ut8_t + + gwWCcPumpMode_ + = +EMS_VALUE_UINT_NOTSET +; + +71 +ut8_t + + gwWCcPumpTy_ + = +EMS_VALUE_BOOL_NOTSET +; + +72 +ut8_t + + gwWDisTemp_ + = +EMS_VALUE_UINT_NOTSET +; + +73 +ut8_t + + gwWComft_ + = +EMS_VALUE_UINT_NOTSET +; + +76 +ut16_t + + gwwMixTemtu_ + = +EMS_VALUE_USHORT_NOTSET +; + +77 +ut16_t + + gwwBufrBoTemtu_ + = +EMS_VALUE_USHORT_NOTSET +; + +80 +ut8_t + + glFlowTemp_ + = +EMS_VALUE_UINT_NOTSET +; + +81 +ut16_t + + gcurFlowTemp_ + = +EMS_VALUE_USHORT_NOTSET +; + +82 +ut16_t + + gwwStageTemp1_ + = +EMS_VALUE_USHORT_NOTSET +; + +83 +ut16_t + + gwwStageTemp2_ + = +EMS_VALUE_USHORT_NOTSET +; + +84 +ut16_t + + gtTemp_ + = +EMS_VALUE_USHORT_NOTSET +; + +85 +ut8_t + + gbuGas_ + = +EMS_VALUE_BOOL_NOTSET +; + +86 +ut8_t + + gnWk_ + = +EMS_VALUE_BOOL_NOTSET +; + +87 +ut8_t + + gignWk_ + = +EMS_VALUE_BOOL_NOTSET +; + +88 +ut8_t + + ghtPmp_ + = +EMS_VALUE_BOOL_NOTSET +; + +89 +ut8_t + + gwWHt_ + = +EMS_VALUE_BOOL_NOTSET +; + +90 +ut8_t + + gwWCc_ + = +EMS_VALUE_BOOL_NOTSET +; + +91 +ut8_t + + glBuPow_ + = +EMS_VALUE_UINT_NOTSET +; + +92 +ut8_t + + gcurBuPow_ + = +EMS_VALUE_UINT_NOTSET +; + +93 +ut16_t + + gameCu_ + = +EMS_VALUE_USHORT_NOTSET +; + +94 +ut8_t + + gsysPss_ + = +EMS_VALUE_UINT_NOTSET +; + +95  + grviCodeCh_ +[3] = {'\0'}; + +96 +ut16_t + + grviCode_ + = +EMS_VALUE_USHORT_NOTSET +; + +99 +t16_t + + gextTemp_ + = +EMS_VALUE_SHORT_NOTSET +; + +100 +ut16_t + + gboTemp_ + = +EMS_VALUE_USHORT_NOTSET +; + +101 +ut16_t + + gexhauTemp_ + = +EMS_VALUE_USHORT_NOTSET +; + +102 +ut8_t + + gpumpMod_ + = +EMS_VALUE_UINT_NOTSET +; + +103 +ut32_t + + gbuSs_ + = +EMS_VALUE_ULONG_NOTSET +; + +104 +ut32_t + + gbuWkM_ + = +EMS_VALUE_ULONG_NOTSET +; + +105 +ut32_t + + ghtWkM_ + = +EMS_VALUE_ULONG_NOTSET +; + +106 +ut16_t + + gswchTemp_ + = +EMS_VALUE_USHORT_NOTSET +; + +109 +ut8_t + + gwWSTmp_ + = +EMS_VALUE_UINT_NOTSET +; + +110 +ut16_t + + gwWCurTmp_ + = +EMS_VALUE_USHORT_NOTSET +; + +111 +ut16_t + + gwWCurTmp2_ + = +EMS_VALUE_USHORT_NOTSET +; + +112 +ut32_t + + gwWSs_ + = +EMS_VALUE_ULONG_NOTSET +; + +113 +ut32_t + + gwWWkM_ + = +EMS_VALUE_ULONG_NOTSET +; + +114 +ut8_t + + gwWOTime_ + = +EMS_VALUE_BOOL_NOTSET +; + +115 +ut8_t + + gwWDisg_ + = +EMS_VALUE_BOOL_NOTSET +; + +116 +ut8_t + + gwWRdess_ + = +EMS_VALUE_BOOL_NOTSET +; + +117 +ut8_t + + gwWRechgg_ + = +EMS_VALUE_BOOL_NOTSET +; + +118 +ut8_t + + gwWTemtuOK_ + = +EMS_VALUE_BOOL_NOTSET +; + +119 +ut8_t + + gwWCurFlow_ + = +EMS_VALUE_UINT_NOTSET +; + +122 +ut32_t + + gUBAuime_ + = +EMS_VALUE_ULONG_NOTSET +; + +125 +ut8_t + + ghtg_mp_ + = +EMS_VALUE_UINT_NOTSET +; + +126 +ut8_t + + gpump_mod_max_ + = +EMS_VALUE_UINT_NOTSET +; + +127 +ut8_t + + gpump_mod_m_ + = +EMS_VALUE_UINT_NOTSET +; + +128 +ut8_t + + gbuPowm_ + = +EMS_VALUE_UINT_NOTSET +; + +129 +ut8_t + + gbuPowmax_ + = +EMS_VALUE_UINT_NOTSET +; + +130 +t8_t + + gboTemp_off_ + = +EMS_VALUE_INT_NOTSET +; + +131 +t8_t + + gboTemp__ + = +EMS_VALUE_INT_NOTSET +; + +132 +ut8_t + + gbuPiod_ + = +EMS_VALUE_UINT_NOTSET +; + +133 +ut8_t + + gpumpDay_ + = +EMS_VALUE_UINT_NOTSET +; + +136 +ut8_t + + gtFlowTemp_ + = +EMS_VALUE_UINT_NOTSET +; + +137 +ut8_t + + gtBuPow_ + = +EMS_VALUE_UINT_NOTSET +; + +138 +ut8_t + + gtWWPumpPow_ + = +EMS_VALUE_UINT_NOTSET +; + +141 +ut8_t + + gp_w_aive_ + = +EMS_VALUE_BOOL_NOTSET +; + +142 +ut8_t + + ghtg_aive_ + = +EMS_VALUE_BOOL_NOTSET +; + +143 +ut8_t + + gpumpMod2_ + = +EMS_VALUE_UINT_NOTSET +; + +145  +oss_UBAPamWW +( +d +:: +shed_r + +gm +); + +146  +oss_UBAMڙFa +( +d +:: +shed_r + +gm +); + +147  +oss_UBATٮUime +( +d +:: +shed_r + +gm +); + +148  +oss_UBAPams +( +d +:: +shed_r + +gm +); + +149  +oss_UBAMڙWW +( +d +:: +shed_r + +gm +); + +150  +oss_UBAMڙFaPlus +( +d +:: +shed_r + +gm +); + +151  +oss_UBAMڙSlow +( +d +:: +shed_r + +gm +); + +152  +oss_UBAMڙSlowPlus +( +d +:: +shed_r + +gm +); + +153  +oss_UBAMڙSlowPlus2 +( +d +:: +shed_r + +gm +); + +154  +oss_UBAOutdoTemp +( +d +:: +shed_r + +gm +); + +155  +oss_UBASPots +( +d +:: +shed_r + +gm +); + +156  +oss_UBAFgs +( +d +:: +shed_r + +gm +); + +157  +oss_MC10Stus +( +d +:: +shed_r + +gm +); + +158  +oss_UBAManStus +( +d +:: +shed_r + +gm +); + +159  +oss_UBAManDa +( +d +:: +shed_r + +gm +); + +160  +oss_UBAEMesge +( +d +:: +shed_r + +gm +); + +161  +oss_UBADHWStus +( +d +:: +shed_r + +gm +); + +164  +t_wmw_mode +(cڡ * +vue +, cڡ +t8_t + +id +); + +165  +t_wmw_aived +(cڡ * +vue +, cڡ +t8_t + +id +); + +166  +t_pwmw_aived +(cڡ * +vue +, cڡ +t8_t + +id +); + +167  +t_wmw_ڑime +(cڡ * +vue +, cڡ +t8_t + +id +); + +168  +t_wmw_ccuti +(cڡ * +vue +, cڡ +t8_t + +id +); + +169  +t_wmw_mp +(cڡ * +vue +, cڡ +t8_t + +id +); + +170  +t_ow_mp +(cڡ * +vue +, cڡ +t8_t + +id +); + +171  +t_m_pow +(cڡ * +vue +, cڡ +t8_t + +id +); + +172  +t_max_pow +(cڡ * +vue +, cڡ +t8_t + +id +); + +173  +t_hy_ +(cڡ * +vue +, cڡ +t8_t + +id +); + +174  +t_hy_off +(cڡ * +vue +, cڡ +t8_t + +id +); + +175  +t_bu_riod +(cڡ * +vue +, cڡ +t8_t + +id +); + +176  +t_pump_day +(cڡ * +vue +, cڡ +t8_t + +id +); + + @src/devices/connect.cpp + +19  + ~"c.h +" + +21 +mea + + gem + { + +23 +REGISTER_FACTORY +( +C +, +EMSdevi +:: +DeviTy +:: +CONNECT +); + +25 + guuid +:: +log +:: +Logg + +C +:: +logg_ +{ +F_ +( +c +), uuid::log:: +Facy +:: +CONSOLE +}; + +27 + gC +:: +C +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +28 : +EMSdevi +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +) { + +31  + gC +:: +devi_fo_web +( +JsAay + & +ro +) { + +34  +C +:: +add_cڋxt_mu +() { + +38  +C +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +43  +C +:: +publish_vues +() { + +47 +bo + +C +:: +upded_vues +() { + +48  +l +; + +52  + gC +:: +cse_commds +() { + + @src/devices/connect.h + +19 #ide +EMSESP_CONNECT_H + + +20  + #EMSESP_CONNECT_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +27  + ~"emsdevi.h +" + +28  + ~"gm.h +" + +29  + ~"hrs.h +" + +30  + ~"mq.h +" + +32 +mea + + gem + { + +34 as + cC + : +public + +EMSdevi + { + +35 +public +: + +36 +C +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +); + +38 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +39 +vtu +  +publish_vues +(); + +40 +vtu +  +devi_fo_web +( +JsAay + & +ro +); + +41 +vtu + +bo + +upded_vues +(); + +42 +vtu +  +add_cڋxt_mu +(); + +44 + give +: + +45  +uuid +:: +log +:: +Logg + +logg_ +; + +47  +cse_commds +(); + + @src/devices/controller.cpp + +19  + ~"cڌr.h +" + +21 +mea + + gem + { + +23 +REGISTER_FACTORY +( +Cڌr +, +EMSdevi +:: +DeviTy +:: +CONTROLLER +); + +25 + guuid +:: +log +:: +Logg + +Cڌr +:: +logg_ +{ +F_ +( +cڌr +), uuid::log:: +Facy +:: +CONSOLE +}; + +27 + gCڌr +:: +Cڌr +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +28 : +EMSdevi +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +) { + +31  + gCڌr +:: +add_cڋxt_mu +() { + +34  +Cڌr +:: +devi_fo_web +( +JsAay + & +ro +) { + +38  +Cڌr +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +43  +Cڌr +:: +publish_vues +() { + +47 +bo + +Cڌr +:: +upded_vues +() { + +48  +l +; + +52  + gCڌr +:: +cse_commds +() { + + @src/devices/controller.h + +19 #ide +EMSESP_CONTROLLER_H + + +20  + #EMSESP_CONTROLLER_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +27  + ~"emsdevi.h +" + +28  + ~"gm.h +" + +29  + ~"hrs.h +" + +30  + ~"mq.h +" + +32 +mea + + gem + { + +34 as + cCڌr + : +public + +EMSdevi + { + +35 +public +: + +36 +Cڌr +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +); + +38 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +39 +vtu +  +publish_vues +(); + +40 +vtu +  +devi_fo_web +( +JsAay + & +ro +); + +41 +vtu + +bo + +upded_vues +(); + +42 +vtu +  +add_cڋxt_mu +(); + +44 + give +: + +45  +uuid +:: +log +:: +Logg + +logg_ +; + +47  +cse_commds +(); + + @src/devices/gateway.cpp + +19  + ~"geway.h +" + +21 +mea + + gem + { + +23 +REGISTER_FACTORY +( +Geway +, +EMSdevi +:: +DeviTy +:: +GATEWAY +); + +25 + guuid +:: +log +:: +Logg + +Geway +:: +logg_ +{ +F_ +( +geway +), uuid::log:: +Facy +:: +CONSOLE +}; + +27 + gGeway +:: +Geway +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +28 : +EMSdevi +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +) { + +31  + gGeway +:: +add_cڋxt_mu +() { + +34  +Geway +:: +devi_fo_web +( +JsAay + & +ro +) { + +38  +Geway +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +39 +EMSdevi +:: +show_vues +( +shl +); + +43  + gGeway +:: +publish_vues +() { + +47 +bo + +Geway +:: +upded_vues +() { + +48  +l +; + +52  + gGeway +:: +cse_commds +() { + + @src/devices/gateway.h + +19 #ide +EMSESP_GATEWAY_H + + +20  + #EMSESP_GATEWAY_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +27  + ~"emsdevi.h +" + +28  + ~"gm.h +" + +29  + ~"hrs.h +" + +30  + ~"mq.h +" + +32 +mea + + gem + { + +34 as + cGeway + : +public + +EMSdevi + { + +35 +public +: + +36 +Geway +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +); + +38 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +39 +vtu +  +publish_vues +(); + +40 +vtu +  +devi_fo_web +( +JsAay + & +ro +); + +41 +vtu + +bo + +upded_vues +(); + +42 +vtu +  +add_cڋxt_mu +(); + +44 + give +: + +45  +uuid +:: +log +:: +Logg + +logg_ +; + +47  +cse_commds +(); + + @src/devices/heatpump.cpp + +19  + ~"hump.h +" + +21 +mea + + gem + { + +23 +REGISTER_FACTORY +( +Hump +, +EMSdevi +:: +DeviTy +:: +HEATPUMP +); + +25 + guuid +:: +log +:: +Logg + +Hump +:: +logg_ +{ +F_ +( +hump +), uuid::log:: +Facy +:: +CONSOLE +}; + +27 + gHump +:: +Hump +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +28 : +EMSdevi +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +) { + +29 +LOG_DEBUG +( +F +("Addgew HPummodu wh devi ID 0x%02X"), +devi_id +); + +32 +gi_gm_ty +(0x047B, +F +("HP1"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_HPMڙ1 +(t); }); + +33 +gi_gm_ty +(0x042B, +F +("HP2"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_HPMڙ2 +(t); }); + +37  + gHump +:: +add_cڋxt_mu +() { + +40  +Hump +:: +devi_fo_web +( +JsAay + & +ro +) { + +44  +Hump +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +49  +Hump +:: +publish_vues +() { + +53 +bo + +Hump +:: +upded_vues +() { + +54  +l +; + +58  + gHump +:: +cse_commds +() { + +61 #agm +GCC + +dgnoic + +push + + +62 #agm +GCC + +dgnoic + +igned + "-Wunused-parameter" + +68  +Hump +:: +oss_HPMڙ1 +( +d +:: +shed_r + +gm +) { + +76  +Hump +:: +oss_HPMڙ2 +( +d +:: +shed_r + +gm +) { + +80 #agm +GCC + +dgnoic + +p + + + @src/devices/heatpump.h + +19 #ide +EMSESP_HEATPUMP_H + + +20  + #EMSESP_HEATPUMP_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +27  + ~"emsdevi.h +" + +28  + ~"gm.h +" + +29  + ~"hrs.h +" + +30  + ~"mq.h +" + +32 +mea + + gem + { + +34 as + cHump + : +public + +EMSdevi + { + +35 +public +: + +36 +Hump +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +); + +38 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +39 +vtu +  +publish_vues +(); + +40 +vtu +  +devi_fo_web +( +JsAay + & +ro +); + +41 +vtu + +bo + +upded_vues +(); + +42 +vtu +  +add_cڋxt_mu +(); + +44 + give +: + +45  +uuid +:: +log +:: +Logg + +logg_ +; + +47  +cse_commds +(); + +49  +oss_HPMڙ1 +( +d +:: +shed_r + +gm +); + +50  +oss_HPMڙ2 +( +d +:: +shed_r + +gm +); + + @src/devices/mixing.cpp + +19  + ~"mixg.h +" + +21 +mea + + gem + { + +23 +REGISTER_FACTORY +( +Mixg +, +EMSdevi +:: +DeviTy +:: +MIXING +); + +25 + guuid +:: +log +:: +Logg + +Mixg +:: +logg_ +{ +F_ +( +mixg +), uuid::log:: +Facy +:: +CONSOLE +}; + +27 + gMixg +:: +Mixg +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +28 : +EMSdevi +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +) { + +29 +LOG_DEBUG +( +F +("Addgew Mixg modu wh devi ID 0x%02X"), +devi_id +); + +31 i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_MMPLUS +) { + +32 i( +devi_id + <= 0x27) { + +34 +gi_gm_ty +( +devi_id + - 0x20 + 0x02D7, +F +("MMPLUSStusMesge_HC"), +ue +, [&]( +d +:: +shed_r + +t +) { + +35 +oss_MMPLUSStusMesge_HC +( +t +); + +39 +gi_gm_ty +( +devi_id + - 0x28 + 0x0331, +F +("MMPLUSStusMesge_WWC"), +ue +, [&]( +d +:: +shed_r + +t +) { + +40 +oss_MMPLUSStusMesge_WWC +( +t +); + +46 i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_MM10 +) { + +47 +gi_gm_ty +(0x00AA, +F +("MMCfigMesge"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_MMCfigMesge +(t); }); + +48 +gi_gm_ty +(0x00AB, +F +("MMStusMesge"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_MMStusMesge +(t); }); + +49 +gi_gm_ty +(0x00AC, +F +("MMSMesge"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_MMSMesge +(t); }); + +53 i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_IPM +) { + +54 +gi_gm_ty +(0x010C, +F +("IPMSMesge"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_IPMStusMesge +(t); }); + +59  + gMixg +:: +add_cڋxt_mu +() { + +63  +Mixg +:: +devi_fo_web +( +JsAay + & +ro +) { + +64 i( +ty_ + = +Ty +:: +NONE +) { + +68 i( + gty_ + = +Ty +:: +WWC +) { + +69 +nd_vue_js +( +ro +, "", +F +("Wm W Ccu"), +hc_ +, +nuαr +); + +70 +nd_vue_js +( +ro +, "", +F +("Cuwm wemtu"), +owTemp_ +, +F_ +( +deges +), 10); + +71 +nd_vue_js +( +ro +, "", +F +("Cupumus"), +pump_ +, +nuαr +); + +72 +nd_vue_js +( +ro +, "", +F +("Cumtu stus"), +us_ +, +nuαr +); + +74 +nd_vue_js +( +ro +, "", +F +("Htg Ccu"), +hc_ +, +nuαr +); + +75 +nd_vue_js +( +ro +, "", +F +("Cuowemtu"), +owTemp_ +, +F_ +( +deges +), 10); + +76 +nd_vue_js +( +ro +, "", +F +("Spoowemtu"), +owSTemp_ +, +F_ +( +deges +)); + +77 +nd_vue_js +( +ro +, "", +F +("Cupumus"), +pump_ +, +nuαr +, +EMS_VALUE_BOOL +); + +78 +nd_vue_js +( +ro +, "", +F +("Cuvvus"), +us_ +, +F_ +( +r +)); + +83 +bo + + gMixg +:: +upded_vues +() { + +84 i( +chged_ +) { + +85 +chged_ + = +l +; + +86  + gue +; + +88  + gl +; + +92  + gMixg +:: +cse_commds +() { + +96  +Mixg +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +97 +EMSdevi +:: +show_vues +( +shl +); + +99 i( + gty_ + = +Ty +:: +NONE +) { + +103 i( + gty_ + = +Ty +:: +WWC +) { + +104 +t_vue +( +shl +, 2, +F +("Wm W Ccu"), +hc_ +, +nuαr +); + +105 +t_vue +( +shl +, 4, +F +("Cuwm wemtu"), +owTemp_ +, +F_ +( +deges +), 10); + +106 +t_vue +( +shl +, 4, +F +("Cupumus"), +pump_ +, +nuαr +); + +107 +t_vue +( +shl +, 4, +F +("Cumtu stus"), +us_ +, +nuαr +); + +109 +t_vue +( +shl +, 2, +F +("Htg Ccu"), +hc_ +, +nuαr +); + +110 +t_vue +( +shl +, 4, +F +("Cuowemtu"), +owTemp_ +, +F_ +( +deges +), 10); + +111 +t_vue +( +shl +, 4, +F +("Spoowemtu"), +owSTemp_ +, +F_ +( +deges +)); + +112 +t_vue +( +shl +, 4, +F +("Cupumus"), +pump_ +, +nuαr +, +EMS_VALUE_BOOL +); + +113 +t_vue +( +shl +, 4, +F +("Cuvvus"), +us_ +, +F_ +( +r +)); + +117 + gshl +. +n +(); + +122  + gMixg +:: +publish_vues +() { + +123 +SticJsDocumt +< +EMSESP_MAX_JSON_SIZE_SMALL +> +doc +; + +124  + gs +[5]; + +126  + gty_ +) { + +127  + gTy +:: +HC +: + +128 +doc +["type"] = "hc"; + +129 i( + gHrs +:: +hasVue +( +owTemp_ +)) { + +130 +doc +["owTemp"] = () +owTemp_ + / 10; + +132 i( + gHrs +:: +hasVue +( +owSTemp_ +)) { + +133 +doc +["owSTemp"] = +owSTemp_ +; + +135 i( + gHrs +:: +hasVue +( +pump_ +)) { + +136 +doc +["pumpStus"] = +Hrs +:: +nd_vue +( +s +, +pump_ +, +EMS_VALUE_BOOL +); + +138 i( + gHrs +:: +hasVue +( +us_ +)) { + +139 +doc +["vveStus"] = +us_ +; + +142  + gTy +:: +WWC +: + +143 +doc +["type"] = "wwc"; + +144 i( + gHrs +:: +hasVue +( +owTemp_ +)) { + +145 +doc +["wwTemp"] = () +owTemp_ + / 10; + +147 i( + gHrs +:: +hasVue +( +pump_ +)) { + +148 +doc +["pumpStus"] = +pump_ +; + +150 i( + gHrs +:: +hasVue +( +us_ +)) { + +151 +doc +["mpStus"] = +us_ +; + +154  + gTy +:: +NONE +: + +159  + gtic +[30]; + +160 +y +( +tic +, "mixing_data", 30); + +161 +t +( +tic +, +Hrs +:: + +( +s +, +g_devi_id +() - 0x20 + 1), 30); + +162 + gMq +:: +publish +( +tic +, +doc +); + +168  + gMixg +:: +oss_MMPLUSStusMesge_HC +( +d +:: +shed_r + +gm +) { + +169 +ty_ + = +Ty +:: +HC +; + +170 + ghc_ + = +gm +-> +ty_id + - 0x02D7 + 1; + +171 + gchged_ + | +gm +-> +ad_vue +( +owTemp_ +, 3); + +172 + gchged_ + | +gm +-> +ad_vue +( +owSTemp_ +, 5); + +173 + gchged_ + | +gm +-> +ad_vue +( +pump_ +, 0); + +174 + gchged_ + | +gm +-> +ad_vue +( +us_ +, 2); + +180  + gMixg +:: +oss_MMPLUSStusMesge_WWC +( +d +:: +shed_r + +gm +) { + +181 +ty_ + = +Ty +:: +WWC +; + +182 + ghc_ + = +gm +-> +ty_id + - 0x0331 + 1; + +183 + gchged_ + | +gm +-> +ad_vue +( +owTemp_ +, 0); + +184 + gchged_ + | +gm +-> +ad_vue +( +pump_ +, 2); + +185 + gchged_ + | +gm +-> +ad_vue +( +us_ +, 11); + +191  + gMixg +:: +oss_IPMStusMesge +( +d +:: +shed_r + +gm +) { + +192 +ty_ + = +Ty +:: +HC +; + +193 + ghc_ + = +g_devi_id +() - 0x20 + 1; + +194 +ut8_t + + gismixed + = 0; + +195 + gchged_ + | +gm +-> +ad_vue +( +ismixed +, 0); + +196 i( + gismixed + == 0) { + +199 i( + gismixed + == 2) { + +200 +chged_ + | +gm +-> +ad_vue +( +owTemp_ +, 3); + +201 + gchged_ + | +gm +-> +ad_vue +( +owSTemp_ +, 5); + +202 + gchged_ + | +gm +-> +ad_vue +( +us_ +, 2); + +204 + gchged_ + | +gm +-> +ad_bvue +( +pump_ +, 1, 0); + +210  + gMixg +:: +oss_MMStusMesge +( +d +:: +shed_r + +gm +) { + +211 +ty_ + = +Ty +:: +HC +; + +216 + ghc_ + = +g_devi_id +() - 0x20 + 1; + +217 + gchged_ + | +gm +-> +ad_vue +( +owTemp_ +, 1); + +218 + gchged_ + | +gm +-> +ad_vue +( +pump_ +, 3); + +219 + gchged_ + | +gm +-> +ad_vue +( +owSTemp_ +, 0); + +220 + gchged_ + | +gm +-> +ad_vue +( +us_ +, 4); + +223 #agm +GCC + +dgnoic + +push + + +224 #agm +GCC + +dgnoic + +igned + "-Wunused-parameter" + +228  + gMixg +:: +oss_MMCfigMesge +( +d +:: +shed_r + +gm +) { + +229 +hc_ + = +g_devi_id +() - 0x20 + 1; + +236  + gMixg +:: +oss_MMSMesge +( +d +:: +shed_r + +gm +) { + +237 +hc_ + = +g_devi_id +() - 0x20 + 1; + +242 #agm +GCC + +dgnoic + +p + + + @src/devices/mixing.h + +19 #ide +EMSESP_MIXING_H + + +20  + #EMSESP_MIXING_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +27  + ~"emsdevi.h +" + +28  + ~"gm.h +" + +29  + ~"hrs.h +" + +30  + ~"mq.h +" + +32 +mea + + gem + { + +34 as + cMixg + : +public + +EMSdevi + { + +35 +public +: + +36 +Mixg +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +); + +38 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +39 +vtu +  +publish_vues +(); + +40 +vtu +  +devi_fo_web +( +JsAay + & +ro +); + +41 +vtu + +bo + +upded_vues +(); + +42 +vtu +  +add_cڋxt_mu +(); + +44 + give +: + +45  +uuid +:: +log +:: +Logg + +logg_ +; + +47  +cse_commds +(); + +49  +oss_MMPLUSStusMesge_HC +( +d +:: +shed_r + +gm +); + +50  +oss_MMPLUSStusMesge_WWC +( +d +:: +shed_r + +gm +); + +51  +oss_IPMStusMesge +( +d +:: +shed_r + +gm +); + +52  +oss_MMStusMesge +( +d +:: +shed_r + +gm +); + +53  +oss_MMCfigMesge +( +d +:: +shed_r + +gm +); + +54  +oss_MMSMesge +( +d +:: +shed_r + +gm +); + +56 as + cTy + { + +57 + gNONE +, + +58 + gHC +, + +59 + gWWC + + +62 + give +: + +63 +ut16_t + +hc_ + = +EMS_VALUE_USHORT_NOTSET +; + +64 +ut16_t + + gowTemp_ + = +EMS_VALUE_USHORT_NOTSET +; + +65 +ut8_t + + gpump_ + = +EMS_VALUE_UINT_NOTSET +; + +66 +t8_t + + gus_ + = +EMS_VALUE_UINT_NOTSET +; + +67 +ut8_t + + gowSTemp_ + = +EMS_VALUE_UINT_NOTSET +; + +68 +Ty + + gty_ + = Ty:: +NONE +; + +69 +bo + + gchged_ + = +l +; + + @src/devices/solar.cpp + +19  + ~"sެ.h +" + +21 +mea + + gem + { + +23 +REGISTER_FACTORY +( +Sެ +, +EMSdevi +:: +DeviTy +:: +SOLAR +); + +25 + guuid +:: +log +:: +Logg + +Sެ +:: +logg_ +{ +F_ +( +sެ +), uuid::log:: +Facy +:: +CONSOLE +}; + +27 + gSެ +:: +Sެ +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +28 : +EMSdevi +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +) { + +29 +LOG_DEBUG +( +F +("Addgew Sެ modu wh devi ID 0x%02X"), +devi_id +); + +32 i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_SM10 +) { + +33 +gi_gm_ty +(0x0097, +F +("SM10Mڙ"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_SM10Mڙ +(t); }); + +36 i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_SM100 +) { + +37 +gi_gm_ty +(0x0362, +F +("SM100Mڙ"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_SM100Mڙ +(t); }); + +38 +gi_gm_ty +(0x0363, +F +("SM100Mڙ2"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_SM100Mڙ2 +(t); }); + +39 +gi_gm_ty +(0x0366, +F +("SM100Cfig"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_SM100Cfig +(t); }); + +41 +gi_gm_ty +(0x0364, +F +("SM100Stus"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_SM100Stus +(t); }); + +42 +gi_gm_ty +(0x036A, +F +("SM100Stus2"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_SM100Stus2 +(t); }); + +43 +gi_gm_ty +(0x038E, +F +("SM100Ergy"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_SM100Ergy +(t); }); + +46 i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_ISM +) { + +47 +gi_gm_ty +(0x0103, +F +("ISM1StusMesge"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_ISM1StusMesge +(t); }); + +48 +gi_gm_ty +(0x0101, +F +("ISM1S"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_ISM1S +(t); }); + +53  + gSެ +:: +add_cڋxt_mu +() { + +57  +Sެ +:: +devi_fo_web +( +JsAay + & +ro +) { + +58 +nd_vue_js +( +ro +, "", +F +("C܁emtu (TS1)"), +cTemp_ +, +F_ +( +deges +), 10); + +59 +nd_vue_js +( +ro +, "", +F +("Tk btomemtu (TS2)"), +nkBtomTemp_ +, +F_ +( +deges +), 10); + +60 +nd_vue_js +( +ro +, "", +F +("Tk btomemtu (TS5)"), +nkBtomTemp2_ +, +F_ +( +deges +), 10); + +61 +nd_vue_js +( +ro +, "", +F +("Hexchgemtu (TS6)"), +htExchgTemp_ +, +F_ +( +deges +), 10); + +62 +nd_vue_js +( +ro +, "", +F +("Sެummoduti (PS1)"), +sެPumpModuti_ +, +F_ +( +r +)); + +63 +nd_vue_js +( +ro +, "", +F +("Cyldummoduti (PS5)"), +cyldPumpModuti_ +, +F_ +( +r +)); + +64 +nd_vue_js +( +ro +, "", +F +("Vv(VS2衩us"), +vveStus_ +, +nuαr +, +EMS_VALUE_BOOL +); + +65 +nd_vue_js +( +ro +, "", +F +("Sެ Pum(PS1aive"), +sެPump_ +, +nuαr +, +EMS_VALUE_BOOL +); + +67 i( + gHrs +:: +hasVue +( +pumpWkM_ +)) { + +68 +JsObje + +daEmt +; + +69 + gdaEmt + = +ro +. +NeedObje +(); + +70 + gdaEmt +["me"] = +F +("Pump workingime"); + +71 + gd +:: +rg + +time_r +(60, '\0'); + +72 +tf_P +(& +time_r +[0],ime_r. +cy +(+ 1, +PSTR +("%d day%d hour%d mus"), +pumpWkM_ + / 1440, (pumpWorkMin_ % 1440) / 60,umpWorkMin_ % 60); + +73 + gdaEmt +["vue"] = +time_r +; + +76 +nd_vue_js +( +ro +, "", +F +("Tk Hd"), +nkHd_ +, +nuαr +, +EMS_VALUE_BOOL +); + +77 +nd_vue_js +( +ro +, "", +F +("C shutdown"), +cShutdown_ +, +nuαr +, +EMS_VALUE_BOOL +); + +79 +nd_vue_js +( +ro +, "", +F +("Ergya hour"), +gyLaHour_ +, +F_ +( +wh +), 10); + +80 +nd_vue_js +( +ro +, "", +F +("Ergyoday"), +gyToday_ +, +F_ +( +wh +)); + +81 +nd_vue_js +( +ro +, "", +F +("Ergyٮ"), +gyTٮ_ +, +F_ +( +kwh +), 10); + +85  + gSެ +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +86 +EMSdevi +:: +show_vues +( +shl +); + +88 +t_vue +( +shl +, 2, +F +("C܁emtu (TS1)"), +cTemp_ +, +F_ +( +deges +), 10); + +89 +t_vue +( +shl +, 2, +F +("Btomemtu (TS2)"), +nkBtomTemp_ +, +F_ +( +deges +), 10); + +90 +t_vue +( +shl +, 2, +F +("Btomemtu (TS5)"), +nkBtomTemp2_ +, +F_ +( +deges +), 10); + +91 +t_vue +( +shl +, 2, +F +("Hexchgemtu (TS6)"), +htExchgTemp_ +, +F_ +( +deges +), 10); + +92 +t_vue +( +shl +, 2, +F +("Sެummoduti (PS1)"), +sެPumpModuti_ +, +F_ +( +r +)); + +93 +t_vue +( +shl +, 2, +F +("Cyldummoduti (PS5)"), +cyldPumpModuti_ +, +F_ +( +r +)); + +94 +t_vue +( +shl +, 2, +F +("Vv(VS2衩us"), +vveStus_ +, +nuαr +, +EMS_VALUE_BOOL +); + +95 +t_vue +( +shl +, 2, +F +("Sެ Pum(PS1aive"), +sެPump_ +, +nuαr +, +EMS_VALUE_BOOL +); + +97 i( + gHrs +:: +hasVue +( +pumpWkM_ +)) { + +98 +shl +. +tn +( +F +(" Pumwkgime: %d day%d hour%d mus"), +pumpWkM_ + / 1440, (pumpWorkMin_ % 1440) / 60,umpWorkMin_ % 60); + +101 +t_vue +( +shl +, 2, +F +("Tk Hd"), +nkHd_ +, +nuαr +, +EMS_VALUE_BOOL +); + +102 +t_vue +( +shl +, 2, +F +("C shutdown"), +cShutdown_ +, +nuαr +, +EMS_VALUE_BOOL +); + +104 +t_vue +( +shl +, 2, +F +("Ergya hour"), +gyLaHour_ +, +F_ +( +wh +), 10); + +105 +t_vue +( +shl +, 2, +F +("Ergyoday"), +gyToday_ +, +F_ +( +wh +)); + +106 +t_vue +( +shl +, 2, +F +("Ergyٮ"), +gyTٮ_ +, +F_ +( +kwh +), 10); + +110  + gSެ +:: +publish_vues +() { + +111 +SticJsDocumt +< +EMSESP_MAX_JSON_SIZE_MEDIUM +> +doc +; + +113  + gs +[10]; + +115 i( + gHrs +:: +hasVue +( +cTemp_ +)) { + +116 +doc +["cTemp"] = () +cTemp_ + / 10; + +119 i( + gHrs +:: +hasVue +( +nkBtomTemp_ +)) { + +120 +doc +["nkBtomTemp"] = () +nkBtomTemp_ + / 10; + +123 i( + gHrs +:: +hasVue +( +nkBtomTemp2_ +)) { + +124 +doc +["nkBtomTemp2"] = () +nkBtomTemp2_ + / 10; + +127 i( + gHrs +:: +hasVue +( +htExchgTemp_ +)) { + +128 +doc +["htExchgTemp"] = () +htExchgTemp_ + / 10; + +131 i( + gHrs +:: +hasVue +( +sެPumpModuti_ +)) { + +132 +doc +["sެPumpModuti"] = +sެPumpModuti_ +; + +135 i( + gHrs +:: +hasVue +( +cyldPumpModuti_ +)) { + +136 +doc +["cyldPumpModuti"] = +cyldPumpModuti_ +; + +139 i( + gHrs +:: +hasVue +( +sެPump_ +, +EMS_VALUE_BOOL +)) { + +140 + gdoc +["sެPump"] = +Hrs +:: +nd_vue +( +s +, +sެPump_ +, +EMS_VALUE_BOOL +); + +143 i( + gHrs +:: +hasVue +( +vveStus_ +, +EMS_VALUE_BOOL +)) { + +144 + gdoc +["vveStus"] = +Hrs +:: +nd_vue +( +s +, +vveStus_ +, +EMS_VALUE_BOOL +); + +147 i( + gHrs +:: +hasVue +( +pumpWkM_ +)) { + +148 +doc +["pumpWkM"] = +pumpWkM_ +; + +151 i( + gHrs +:: +hasVue +( +nkHd_ +, +EMS_VALUE_BOOL +)) { + +152 + gdoc +["nkHd"] = +Hrs +:: +nd_vue +( +s +, +nkHd_ +, +EMS_VALUE_BOOL +); + +155 i( + gHrs +:: +hasVue +( +cShutdown_ +, +EMS_VALUE_BOOL +)) { + +156 + gdoc +["cShutdown"] = +Hrs +:: +nd_vue +( +s +, +cShutdown_ +, +EMS_VALUE_BOOL +); + +159 i( + gHrs +:: +hasVue +( +gyLaHour_ +)) { + +160 +doc +["gyLaHour"] = () +gyLaHour_ + / 10; + +163 i( + gHrs +:: +hasVue +( +gyToday_ +)) { + +164 +doc +["gyToday"] = +gyToday_ +; + +167 i( + gHrs +:: +hasVue +( +gyTٮ_ +)) { + +168 +doc +["gyTٮ"] = () +gyTٮ_ + / 10; + +172 i(! + gdoc +. +isNu +()) { + +173 + gMq +:: +publish +( +F +("sm_da"), +doc +); + +178 +bo + + gSެ +:: +upded_vues +() { + +179 i( +chged_ +) { + +180 +chged_ + = +l +; + +181  + gue +; + +183  + gl +; + +187  + gSެ +:: +cse_commds +() { + +191  +Sެ +:: +oss_SM10Mڙ +( +d +:: +shed_r + +gm +) { + +192 +chged_ + | +gm +-> +ad_vue +( +cTemp_ +, 2); + +193 + gchged_ + | +gm +-> +ad_vue +( +nkBtomTemp_ +, 5); + +194 + gchged_ + | +gm +-> +ad_vue +( +sެPumpModuti_ +, 4); + +195 + gchged_ + | +gm +-> +ad_bvue +( +sެPump_ +, 7, 1); + +196 + gchged_ + | +gm +-> +ad_vue +( +pumpWkM_ +, 8); + +210  + gSެ +:: +oss_SM100Mڙ +( +d +:: +shed_r + +gm +) { + +211 +chged_ + | +gm +-> +ad_vue +( +cTemp_ +, 0); + +212 + gchged_ + | +gm +-> +ad_vue +( +nkBtomTemp_ +, 2); + +213 + gchged_ + | +gm +-> +ad_vue +( +nkBtomTemp2_ +, 16); + +214 + gchged_ + | +gm +-> +ad_vue +( +htExchgTemp_ +, 20); + +217 #agm +GCC + +dgnoic + +push + + +218 #agm +GCC + +dgnoic + +igned + "-Wunused-parameter" + +222  + gSެ +:: +oss_SM100Mڙ2 +( +d +:: +shed_r + +gm +) { + +226 #agm +GCC + +dgnoic + +p + + +230  +Sެ +:: +oss_SM100Cfig +( +d +:: +shed_r + +gm +) { + +231 +chged_ + | +gm +-> +ad_vue +( +avaabyFg_ +, 0); + +232 + gchged_ + | +gm +-> +ad_vue +( +cfigFg_ +, 1); + +233 + gchged_ + | +gm +-> +ad_vue +( +urFg_ +, 2); + +242  + gSެ +:: +oss_SM100Stus +( +d +:: +shed_r + +gm +) { + +243 +ut8_t + +sެpumpmod + = +sެPumpModuti_ +; + +244 +ut8_t + + gcyldpumpmod + = +cyldPumpModuti_ +; + +245 + gchged_ + | +gm +-> +ad_vue +( +cyldPumpModuti_ +, 8); + +246 + gchged_ + | +gm +-> +ad_vue +( +sެPumpModuti_ +, 9); + +248 i( + gsެpumpmod + =0 && +sެPumpModuti_ + == 100) { + +249 +sެPumpModuti_ + = 15; + +252 i( + gcyldpumpmod + =0 && +cyldPumpModuti_ + == 100) { + +253 +cyldPumpModuti_ + = 15; + +255 + gchged_ + | +gm +-> +ad_bvue +( +nkHd_ +, 3, 1); + +256 + gchged_ + | +gm +-> +ad_bvue +( +cShutdown_ +, 3, 0); + +265  + gSެ +:: +oss_SM100Stus2 +( +d +:: +shed_r + +gm +) { + +266 +chged_ + | +gm +-> +ad_bvue +( +vveStus_ +, 4, 2); + +267 + gchged_ + | +gm +-> +ad_bvue +( +sެPump_ +, 10, 2); + +274  + gSެ +:: +oss_SM100Ergy +( +d +:: +shed_r + +gm +) { + +275 +chged_ + | +gm +-> +ad_vue +( +gyLaHour_ +, 0); + +276 + gchged_ + | +gm +-> +ad_vue +( +gyToday_ +, 4); + +277 + gchged_ + | +gm +-> +ad_vue +( +gyTٮ_ +, 8); + +284  + gSެ +:: +oss_ISM1StusMesge +( +d +:: +shed_r + +gm +) { + +285 +chged_ + | +gm +-> +ad_vue +( +cTemp_ +, 4); + +286 + gchged_ + | +gm +-> +ad_vue +( +nkBtomTemp_ +, 6); + +287 +ut16_t + + gWh + = 0xFFFF; + +288 + gchged_ + | +gm +-> +ad_vue +( +Wh +, 2); + +290 i( + gWh + != 0xFFFF) { + +291 +gyLaHour_ + = +Wh + * 10; + +294 + gchged_ + | +gm +-> +ad_bvue +( +sެPump_ +, 8, 0); + +295 + gchged_ + | +gm +-> +ad_vue +( +pumpWkM_ +, 10, 3); + +296 + gchged_ + | +gm +-> +ad_bvue +( +cShutdown_ +, 9, 0); + +297 + gchged_ + | +gm +-> +ad_bvue +( +nkHd_ +, 9, 2); + +303  + gSެ +:: +oss_ISM1S +( +d +:: +shed_r + +gm +) { + +304 +chged_ + | +gm +-> +ad_vue +( +ot_maxBtomTemp_ +, 6); + + @src/devices/solar.h + +19 #ide +EMSESP_SOLAR_H + + +20  + #EMSESP_SOLAR_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +27  + ~"emsdevi.h +" + +28  + ~"gm.h +" + +29  + ~"hrs.h +" + +30  + ~"mq.h +" + +32 +mea + + gem + { + +34 as + cSެ + : +public + +EMSdevi + { + +35 +public +: + +36 +Sެ +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +); + +38 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +39 +vtu +  +publish_vues +(); + +40 +vtu +  +devi_fo_web +( +JsAay + & +ro +); + +41 +vtu + +bo + +upded_vues +(); + +42 +vtu +  +add_cڋxt_mu +(); + +44 + give +: + +45  +uuid +:: +log +:: +Logg + +logg_ +; + +47  +cse_commds +(); + +49 +t16_t + + gcTemp_ + = +EMS_VALUE_SHORT_NOTSET +; + +50 +t16_t + + gnkBtomTemp_ + = +EMS_VALUE_SHORT_NOTSET +; + +51 +t16_t + + gnkBtomTemp2_ + = +EMS_VALUE_SHORT_NOTSET +; + +52 +t16_t + + ghtExchgTemp_ + = +EMS_VALUE_SHORT_NOTSET +; + +53 +ut8_t + + gsެPumpModuti_ + = +EMS_VALUE_UINT_NOTSET +; + +54 +ut8_t + + gcyldPumpModuti_ + = +EMS_VALUE_UINT_NOTSET +; + +55 +ut8_t + + gsެPump_ + = +EMS_VALUE_BOOL_NOTSET +; + +56 +ut8_t + + gvveStus_ + = +EMS_VALUE_BOOL_NOTSET +; + +57 +t16_t + + got_maxBtomTemp_ + = +EMS_VALUE_SHORT_NOTSET +; + +58 +ut32_t + + ggyLaHour_ + = +EMS_VALUE_ULONG_NOTSET +; + +59 +ut32_t + + ggyToday_ + = +EMS_VALUE_ULONG_NOTSET +; + +60 +ut32_t + + ggyTٮ_ + = +EMS_VALUE_ULONG_NOTSET +; + +61 +ut32_t + + gpumpWkM_ + = +EMS_VALUE_ULONG_NOTSET +; + +62 +ut8_t + + gnkHd_ + = +EMS_VALUE_BOOL_NOTSET +; + +63 +ut8_t + + gcShutdown_ + = +EMS_VALUE_BOOL_NOTSET +; + +65 +ut8_t + + gavaabyFg_ + = +EMS_VALUE_BOOL_NOTSET +; + +66 +ut8_t + + gcfigFg_ + = +EMS_VALUE_BOOL_NOTSET +; + +67 +ut8_t + + gurFg_ + = +EMS_VALUE_BOOL_NOTSET +; + +68 +bo + + gchged_ + = +l +; + +70  +oss_SM10Mڙ +( +d +:: +shed_r + +gm +); + +71  +oss_SM100Mڙ +( +d +:: +shed_r + +gm +); + +72  +oss_SM100Mڙ2 +( +d +:: +shed_r + +gm +); + +74  +oss_SM100Cfig +( +d +:: +shed_r + +gm +); + +76  +oss_SM100Stus +( +d +:: +shed_r + +gm +); + +77  +oss_SM100Stus2 +( +d +:: +shed_r + +gm +); + +78  +oss_SM100Ergy +( +d +:: +shed_r + +gm +); + +80  +oss_ISM1StusMesge +( +d +:: +shed_r + +gm +); + +81  +oss_ISM1S +( +d +:: +shed_r + +gm +); + + @src/devices/switch.cpp + +19  + ~"swch.h +" + +21 +mea + + gem + { + +23 +REGISTER_FACTORY +( +Swch +, +EMSdevi +:: +DeviTy +:: +SWITCH +); + +25 + guuid +:: +log +:: +Logg + +Swch +:: +logg_ +{ +F_ +(), uuid::log:: +Facy +:: +CONSOLE +}; + +27 + gSwch +:: +Swch +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +28 : +EMSdevi +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +) { + +31  + gSwch +:: +add_cڋxt_mu +() { + +34  +Swch +:: +devi_fo_web +( +JsAay + & +ro +) { + +38  +Swch +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +43  +Swch +:: +publish_vues +() { + +47 +bo + +Swch +:: +upded_vues +() { + +48  +l +; + +52  + gSwch +:: +cse_commds +() { + + @src/devices/switch.h + +19 #ide +EMSESP_SWITCH_H + + +20  + #EMSESP_SWITCH_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +27  + ~"emsdevi.h +" + +28  + ~"gm.h +" + +29  + ~"hrs.h +" + +30  + ~"mq.h +" + +32 +mea + + gem + { + +34 as + cSwch + : +public + +EMSdevi + { + +35 +public +: + +36 +Swch +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +); + +38 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +39 +vtu +  +publish_vues +(); + +40 +vtu +  +devi_fo_web +( +JsAay + & +ro +); + +41 +vtu + +bo + +upded_vues +(); + +42 +vtu +  +add_cڋxt_mu +(); + +44 + give +: + +45  +uuid +:: +log +:: +Logg + +logg_ +; + +47  +cse_commds +(); + + @src/devices/thermostat.cpp + +19  + ~"thmo.h +" + +21 +mea + + gem + { + +23 +REGISTER_FACTORY +( +Thmo +, +EMSdevi +:: +DeviTy +:: +THERMOSTAT +); + +25 + guuid +:: +log +:: +Logg + +Thmo +:: +logg_ +{ +F_ +( +thmo +), uuid::log:: +Facy +:: +CONSOLE +}; + +27 + gThmo +:: +Thmo +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +28 : +EMSdevi +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +) { + +29 +ut8_t + + gau_ma_thmo + = +EMSESP +:: +au_ma_thmo +(); + +30 +ut8_t + + gma_thmo + = +EMSESP_DEFAULT_MASTER_THERMOSTAT +; + +31 + gEMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +32 +ma_thmo + = +gs +.master_thermostat; + +35 +ut8_t + + gmod + = +this +-> +mod +(); + +40 i(( + gma_thmo + = +devi_id +) + +41 || (( +ma_thmo + = +EMSESP_DEFAULT_MASTER_THERMOSTAT +&& ( +devi_id + < 0x19) + +42 && (( +au_ma_thmo + = +EMSESP_DEFAULT_MASTER_THERMOSTAT +|| ( +devi_id + +rve_mem +(25); + +48 +gi_gm_ty +( +EMS_TYPE_RCOutdoTemp +, +F +("RCOutdoTemp"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RCOutdoTemp +(t); }); + +49 +gi_gm_ty +( +EMS_TYPE_RCTime +, +F +("RCTime"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RCTime +(t); }); + +52 i( + gmod + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC10 +) { + +53 +mڙ_tyids + = {0xB1}; + +54 + gt_tyids + = {0xB0}; + +55  +ut8_t + + gi + = 0; i < + gmڙ_tyids +. +size +(); i++) { + +56 +gi_gm_ty +( +mڙ_tyids +[ +i +], +F +("RC10Mڙ"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC10Mڙ +(t); }); + +57 +gi_gm_ty +( +t_tyids +[ +i +], +F +("RC10S"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC10S +(t); }); + +61 } i(( + gmod + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC35 +|| ( +mod + =EMSdevi:: +EMS_DEVICE_FLAG_RC30_1 +)) { + +62 +mڙ_tyids + = {0x3E, 0x48, 0x52, 0x5C}; + +63 + gt_tyids + = {0x3D, 0x47, 0x51, 0x5B}; + +64 + gtim_tyids + = {0x3F, 0x49, 0x53, 0x5D}; + +65  +ut8_t + + gi + = 0; i < + gmڙ_tyids +. +size +(); i++) { + +66 +gi_gm_ty +( +mڙ_tyids +[ +i +], +F +("RC35Mڙ"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC35Mڙ +(t); }); + +67 +gi_gm_ty +( +t_tyids +[ +i +], +F +("RC35S"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC35S +(t); }); + +69 +gi_gm_ty +( +EMS_TYPE_IBAStgs +, +F +("IBAStgs"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_IBAStgs +(t); }); + +70 +gi_gm_ty +( +EMS_TYPE_wwStgs +, +F +("WWStgs"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_RC35wwStgs +(t); }); + +73 } i( + gmod + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC20 +) { + +74 +mڙ_tyids + = {0x91}; + +75 + gt_tyids + = {0xA8}; + +76 i( + gau_ma_thmo + = +devi_id +) { + +77  +ut8_t + +i + = 0; + gi + < + gmڙ_tyids +. +size +(); i++) { + +78 +gi_gm_ty +( +mڙ_tyids +[ +i +], +F +("RC20Mڙ"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC20Mڙ +(t); }); + +79 +gi_gm_ty +( +t_tyids +[ +i +], +F +("RC20S"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC20S +(t); }); + +82 +gi_gm_ty +(0xAF, +F +("RC20Reme"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC20Reme +(t); }); + +85 } i( + gmod + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC20_2 +) { + +86 +mڙ_tyids + = {0xAE}; + +87 + gt_tyids + = {0xAD}; + +88 i( + gau_ma_thmo + = +devi_id +) { + +89  +ut8_t + +i + = 0; + gi + < + gmڙ_tyids +. +size +(); i++) { + +90 +gi_gm_ty +( +mڙ_tyids +[ +i +], +F +("RC20Mڙ"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC20Mڙ_2 +(t); }); + +91 +gi_gm_ty +( +t_tyids +[ +i +], +F +("RC20S"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC20S_2 +(t); }); + +94 +gi_gm_ty +(0xAF, +F +("RC20Reme"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC20Reme +(t); }); + +97 } i( + gmod + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC30 +) { + +98 +mڙ_tyids + = {0x41}; + +99 + gt_tyids + = {0xA7}; + +100  +ut8_t + + gi + = 0; i < + gmڙ_tyids +. +size +(); i++) { + +101 +gi_gm_ty +( +mڙ_tyids +[ +i +], +F +("RC30Mڙ"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC30Mڙ +(t); }); + +102 +gi_gm_ty +( +t_tyids +[ +i +], +F +("RC30S"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC30S +(t); }); + +106 } i( + gmod + = +EMSdevi +:: +EMS_DEVICE_FLAG_EASY +) { + +107 +mڙ_tyids + = {0x0A}; + +108 + gt_tyids + = {}; + +109 +gi_gm_ty +( +mڙ_tyids +[0], +F +("EasyMڙ"), +ue +, [&]( +d +:: +shed_r + +t +{ +oss_EasyMڙ +(t); }); + +112 } i(( + gmod + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC300 +|| ( +mod + =EMSdevi:: +EMS_DEVICE_FLAG_RC100 +)) { + +113 +mڙ_tyids + = {0x02A5, 0x02A6, 0x02A7, 0x02A8}; + +114 + gt_tyids + = {0x02B9, 0x02BA, 0x02BB, 0x02BC}; + +115  +ut8_t + + gi + = 0; i < + gmڙ_tyids +. +size +(); i++) { + +116 +gi_gm_ty +( +mڙ_tyids +[ +i +], +F +("RC300Mڙ"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC300Mڙ +(t); }); + +117 +gi_gm_ty +( +t_tyids +[ +i +], +F +("RC300S"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC300S +(t); }); + +119 +gi_gm_ty +(0x31D, +F +("RC300WWmode"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC300WWmode +(t); }); + +120 +gi_gm_ty +(0x31E, +F +("RC300WWmode"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_RC300WWmode +(t); }); + +123 } i( + gmod + = +EMSdevi +:: +EMS_DEVICE_FLAG_JUNKERS +) { + +124 +mڙ_tyids + = {0x016F, 0x0170, 0x0171, 0x0172}; + +125 + gt_tyids + = {0x0165, 0x0166, 0x0167, 0x0168}; + +126  +ut8_t + + gi + = 0; i < + gmڙ_tyids +. +size +(); i++) { + +127 +gi_gm_ty +( +mڙ_tyids +[ +i +], +F +("JunksMڙ"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_JunksMڙ +(t); }); + +128 +gi_gm_ty +( +t_tyids +[ +i +], +F +("JunksS"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_JunksS +(t); }); + +131 } i( + gmod + =( +EMSdevi +:: +EMS_DEVICE_FLAG_JUNKERS + | EMSdevi:: +EMS_DEVICE_FLAG_JUNKERS_2 +)) { + +132 +mڙ_tyids + = {0x016F, 0x0170, 0x0171, 0x0172}; + +133 + gt_tyids + = {0x0179, 0x017A, 0x017B, 0x017C}; + +134  +ut8_t + + gi + = 0; i < + gmڙ_tyids +. +size +(); i++) { + +135 +gi_gm_ty +( +mڙ_tyids +[ +i +], +F +("JunksMڙ"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_JunksMڙ +(t); }); + +136 +gi_gm_ty +( +t_tyids +[ +i +], +F +("JunksS"), +l +, [&]( +d +:: +shed_r + +t +{ +oss_JunksS2 +(t); }); + +140 + gEMSESP +:: +e8266R +. +gMqStgsSvi +()-> +ad +([&]( +MqStgs + & +gs +) { + +141 +mq_fm_ + = +gs +. +mq_fm +; + +144 i( + gau_ma_thmo + ! +devi_id +) { + +145 +LOG_DEBUG +( +F +("Addgewhmo wh devi ID 0x%02X"), +devi_id +); + +148 +LOG_DEBUG +( +F +("Addgewhmo wh devi ID 0x%02X (ama)"), +devi_id +); + +149 +add_commds +(); + +152 + ghtg_ccus_ +. +rve +(4); + +156  +ut8_t + + gi + = 0; i < + gmڙ_tyids +. +size +(); i++) { + +157 + gEMSESP +:: +nd_ad_que +( +mڙ_tyids +[ +i +], +devi_id +); + +160  +ut8_t + + gi + = 0; i < + gt_tyids +. +size +(); i++) { + +161 + gEMSESP +:: +nd_ad_que +( +t_tyids +[ +i +], +devi_id +); + +166  + gThmo +:: +devi_fo_web +( +JsAay + & +ro +) { + +167 +ut8_t + +ags + = +this +-> +mod +(); + +169 cڡut& + ghc + : +htg_ccus_ +) { + +170 i(! +Hrs +:: +hasVue +( +hc +-> +ot_roomTemp +)) { + +175 +ut8_t + + gfm_ot +, + gfm_cu +; + +176  + gags +) { + +177  + gEMS_DEVICE_FLAG_EASY +: + +178 +fm_ot + = 100; + +179 + gfm_cu + = 100; + +181  + gEMS_DEVICE_FLAG_JUNKERS +: + +182 +fm_ot + = 10; + +183 + gfm_cu + = 10; + +186 +fm_ot + = 2; + +187 + gfm_cu + = 10; + +192 + gd +:: +rg + +hc_r +(5, '\0'); + +193 +tf_P +(& +hc_r +[0], hc_r. +cy +(+ 1, +PSTR +("hc%d: "), +hc +-> +hc_num +()); + +195 +nd_vue_js +( +ro +, +hc_r +, +F +("Curoomemtu"), +hc +-> +cu_roomTemp +, +F_ +( +deges +), +fm_cu +); + +196 +nd_vue_js +( +ro +, +hc_r +, +F +("Sporoomemtu"), +hc +-> +ot_roomTemp +, +F_ +( +deges +), +fm_ot +); + +197 i( + gHrs +:: +hasVue +( +hc +-> +mode +)) { + +198 +JsObje + +daEmt +; + +199 + gdaEmt + = +ro +. +NeedObje +(); + +200 + gd +:: +rg + +mode_r +(15, '\0'); + +201 +tf_P +(& +mode_r +[0], mode_r. +cy +(+ 1, +PSTR +("%sMode"), +hc_r +. +c_r +()); + +202 + gdaEmt +["me"] = +mode_r +; + +203 + gd +:: +rg + +mody_r +(20, '\0'); + +204 i( + gHrs +:: +hasVue +( +hc +-> +summ_mode +) && hc->summer_mode) { + +205 +tf_P +(& +mody_r +[0], mody_r. +cy +(+ 1, +PSTR +("%- summ"), +mode_torg +( +hc +-> +g_mode +( +ags +)). +c_r +()); + +206 } i( + gHrs +:: +hasVue +( +hc +-> +hiday_mode +) && hc->holiday_mode) { + +207 +tf_P +(& +mody_r +[0], mody_r. +cy +(+ 1, +PSTR +("%- hiday"), +mode_torg +( +hc +-> +g_mode +( +ags +)). +c_r +()); + +208 } i( + gHrs +:: +hasVue +( +hc +-> +mode_ty +)) { + +209 +tf_P +(& +mody_r +[0], + +210 +mody_r +. +cy +() + 1, + +211 +PSTR +("%s - %s"), + +212 +mode_torg +( +hc +-> +g_mode +( +ags +)). +c_r +(), + +213 +mode_torg +( +hc +-> +g_mode_ty +( +ags +)). +c_r +()); + +215 +tf_P +(& +mody_r +[0], mody_r. +cy +(+ 1, +mode_torg +( +hc +-> +g_mode +( +ags +)). +c_r +()); + +217 + gdaEmt +["vue"] = +mody_r +; + +223  + gThmo +:: +add_cڋxt_mu +() { + +225 i( +this +-> +g_devi_id +(! +EMSESP +:: +au_ma_thmo +()) { + +229 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +MAIN +, + +230 +CommdFgs +:: +USER +, + +231 +ash_rg_ve +{ +F_ +( +thmo +)}, + +232 [&]( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +233 +Thmo +:: +cse_commds +( +shl +, +ShlCڋxt +:: +THERMOSTAT +); + +234 +add_cڋxt_commds +( +ShlCڋxt +:: +THERMOSTAT +); + +240 +bo + + gThmo +:: +upded_vues +() { + +242 i( +EMSESP +:: +au_ma_thmo +(! +this +-> +g_devi_id +()) { + +243  +l +; + +245 i( + gchged_ +) { + +246 + gchged_ + = +l +; + +247  + gue +; + +249  + gl +; + +253  + gThmo +:: +publish_vues +() { + +255 i( +EMSESP +:: +au_ma_thmo +(! +this +-> +g_devi_id +()) { + +259 +ut8_t + + gags + = +this +-> +mod +(); + +261 + gSticJsDocumt +< + gEMSESP_MAX_JSON_SIZE_MEDIUM +> + gdoc +; + +262 +JsObje + + groThmo + = +doc +. +to +(); + +263 +JsObje + + gdaThmo +; + +267 i( + gags + = +EMS_DEVICE_FLAG_RC35 + || +ags + = +EMS_DEVICE_FLAG_RC30_1 +) { + +268 i( +dime_ +. +size +()) { + +269 +roThmo +["time"] = +dime_ +. +c_r +(); + +271 i( + gHrs +:: +hasVue +( +damdoutdo܋mp_ +)) { + +272 +roThmo +["damdmp"] = +damdoutdo܋mp_ +; + +274 i( + gHrs +:: +hasVue +( +mpns1_ +)) { + +275 +roThmo +["emp1"] = () +mpns1_ + / 10; + +277 i( + gHrs +:: +hasVue +( +mpns2_ +)) { + +278 +roThmo +["emp2"] = () +mpns2_ + / 10; + +280 i( + gHrs +:: +hasVue +( +ibaCITemtu_ +)) { + +281 +roThmo +["tofft"] = () +ibaCITemtu_ + / 2; + +283 i( + gHrs +:: +hasVue +( +ibaMExtTemtu_ +)) { + +284 +roThmo +["mexemp"] = () +ibaMExtTemtu_ +; + +286 i( + gHrs +:: +hasVue +( +ibaBudgTy_ +)) { + +287 i( +ibaBudgTy_ + == 0) { + +288 +roThmo +["building"] = "light"; + +289 } i( + gibaBudgTy_ + == 1) { + +290 +roThmo +["building"] = "medium"; + +291 } i( + gibaBudgTy_ + == 2) { + +292 +roThmo +["building"] = "heavy"; + +295 i( + gHrs +:: +hasVue +( +wwMode_ +)) { + +296 i( +wwMode_ + == 0) { + +297 +roThmo +["wwmode"] = "off"; + +298 } i( + gwwMode_ + == 1) { + +299 +roThmo +["wwmode"] = "on"; + +300 } i( + gwwMode_ + == 2) { + +301 +roThmo +["wwmode"] = "auto"; + +306 i( + gmq_fm_ + ! +MQTT_fm +:: +NESTED +) { + +307 +Mq +:: +publish +( +F +("thmo_da"), +doc +); + +308 + groThmo + = +doc +. +to +< +JsObje +>(); + +313 +bo + + ghas_da + = +l +; + +314 cڡut& + ghc + : +htg_ccus_ +) { + +315 i( +hc +-> +is_aive +()) { + +316 +has_da + = +ue +; + +320 i(( + gmq_fm_ + = +MQTT_fm +:: +NESTED +|| ( +mq_fm_ + =MQTT_fm:: +HA +)) { + +321  +hc_me +[10]; + +322 +y +( +hc_me +, "hc", 10); + +323  + gs +[3]; + +324 +t +( +hc_me +, +Hrs +:: + +( +s +, +hc +-> +hc_num +()), 10); + +325 + gdaThmo + = +roThmo +. +NeedObje +( +hc_me +); + +327 + gdaThmo + = +roThmo +; + +331 +ut8_t + + got_mp_divid +; + +332 +ut8_t + + gcu_mp_divid +; + +333 i( + gags + = +EMS_DEVICE_FLAG_EASY +) { + +334 +ot_mp_divid + = 100; + +335 + gcu_mp_divid + = 100; + +336 } i( + gags + = +EMS_DEVICE_FLAG_JUNKERS +) { + +337 +ot_mp_divid + = 10; + +338 + gcu_mp_divid + = 10; + +340 + got_mp_divid + = 2; + +341 + gcu_mp_divid + = 10; + +344 i( + gHrs +:: +hasVue +( +hc +-> +ot_roomTemp +)) { + +345 +daThmo +["emp"] = +Hrs +:: +round2 +(() +hc +-> +ot_roomTemp + / +ot_mp_divid +); + +348 i( + gHrs +:: +hasVue +( +hc +-> +cu_roomTemp +)) { + +349 +daThmo +["cump"] = +Hrs +:: +round2 +(() +hc +-> +cu_roomTemp + / +cu_mp_divid +); + +352 i( + gHrs +:: +hasVue +( +hc +-> +daymp +)) { + +353 i( +ags + = +EMSdevi +:: +EMS_DEVICE_FLAG_JUNKERS +) { + +354 +daThmo +["hemp"] = () +hc +-> +daymp + / 2; + +356 + gdaThmo +["daymp"] = () +hc +-> +daymp + / 2; + +359 i( + gHrs +:: +hasVue +( +hc +-> +nighemp +)) { + +360 i( +ags + = +EMSdevi +:: +EMS_DEVICE_FLAG_JUNKERS +) { + +361 +daThmo +["ecemp"] = () +hc +-> +nighemp + / 2; + +363 + gdaThmo +["nighemp"] = () +hc +-> +nighemp + / 2; + +366 i( + gHrs +:: +hasVue +( +hc +-> +hidaymp +)) { + +367 +daThmo +["hidaymp"] = () +hc +-> +hidaymp + / 2; + +370 i( + gHrs +:: +hasVue +( +hc +-> +noomp +)) { + +371 +daThmo +["noomp"] = () +hc +-> +noomp + / 2; + +374 i( + gHrs +:: +hasVue +( +hc +-> +htgty +)) { + +375 +daThmo +["htgty"] = +hc +-> +htgty +; + +378 i( + gHrs +:: +hasVue +( +hc +-> +rgowmp +)) { + +379 +daThmo +["rgowmp"] = +hc +-> +rgowmp +; + +382 i( + gHrs +:: +hasVue +( +hc +-> +offemp +)) { + +383 +daThmo +["offemp"] = +hc +-> +offemp + / 2; + +386 i( + gHrs +:: +hasVue +( +hc +-> +desigemp +)) { + +387 +daThmo +["desigemp"] = +hc +-> +desigemp +; + +389 i( + gHrs +:: +hasVue +( +hc +-> +summmp +)) { + +390 +daThmo +["summmp"] = +hc +-> +summmp +; + +394 i(( + gHrs +:: +hasVue +( +hc +-> +mode +)|| ( +mq_fm_ + = +MQTT_fm +:: +HA +)) { + +395 +ut8_t + +hc_mode + = +hc +-> +g_mode +( +ags +); + +397 i( + gmq_fm_ + = +MQTT_fm +:: +HA +) { + +398 i(( +hc_mode + = +HtgCcu +:: +Mode +:: +MANUAL +|| (hc_mod=HtgCcu::Mode:: +DAY +)) { + +399 +hc_mode + = +HtgCcu +:: +Mode +:: +HEAT +; + +400 } i(( + ghc_mode + = +HtgCcu +:: +Mode +:: +NIGHT +|| ( +hc_mode + =HtgCcu::Mode:: +OFF +)) { + +401 +hc_mode + = +HtgCcu +:: +Mode +:: +OFF +; + +403 + ghc_mode + = +HtgCcu +:: +Mode +:: +AUTO +; + +406 + gdaThmo +["mode"] = +mode_torg +( +hc_mode +); + +411 i( + gHrs +:: +hasVue +( +hc +-> +summ_mode +) && hc->summer_mode) { + +412 +daThmo +["mody"] = +F +("summer"); + +413 } i( + gHrs +:: +hasVue +( +hc +-> +hiday_mode +) && hc->holiday_mode) { + +414 +daThmo +["mody"] = +F +("holiday"); + +415 } i( + gHrs +:: +hasVue +( +hc +-> +mode_ty +)) { + +416 +daThmo +["mody"] = +mode_torg +( +hc +-> +g_mode_ty +( +ags +)); + +422 i(( + gmq_fm_ + = +MQTT_fm +:: +SINGLE +|| ( +mq_fm_ + =MQTT_fm:: +CUSTOM +)) { + +423  +tic +[30]; + +424  + gs +[3]; + +425 +y +( +tic +, "thermostat_data", 30); + +426 +t +( +tic +, +Hrs +:: + +( +s +, +hc +-> +hc_num +()), 30); + +427 + gMq +:: +publish +( +tic +, +doc +); + +428 + groThmo + = +doc +. +to +< +JsObje +>(); + +429 } i( + gmq_fm_ + = +MQTT_fm +:: +HA +) { + +431 i(! +hc +-> +ha_gied +()) { + +432 +gi_mq_ha_cfig +( +hc +-> +hc_num +()); + +433 + ghc +-> +ha_gied +( +ue +); + +436 + gd +:: +rg + +tic +(100, '\0'); + +437 +tf_P +(& +tic +[0],ic. +cy +(+ 1, +PSTR +("homssit/ime/ems-e/hc%d/e"), +hc +-> +hc_num +()); + +438 + gMq +:: +publish +( +tic +, +doc +); + +443 i(! + ghas_da +) { + +448 i( + gmq_fm_ + = +MQTT_fm +:: +NESTED +) { + +449 +Mq +:: +publish +( +F +("thmo_da"), +doc +); + +455 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> Thmo:: +htg_ccu +(cڡ +ut8_t + +hc_num +) { + +457 i( +hc_num + = +AUTO_HEATING_CIRCUIT +) { + +458 cڡut& +htg_ccu + : +htg_ccus_ +) { + +459  +htg_ccu +; + +464 cڡut& + ghtg_ccu + : +htg_ccus_ +) { + +465 i( +htg_ccu +-> +hc_num +() == hc_num) { + +466  +htg_ccu +; + +470  + gnuαr +; + +476 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> Thmo:: +htg_ccu +( +d +::shed_r +gm +) { + +478 +ut8_t + +hc_num + = 0; + +479 +bo + + gtogg_ + = +l +; + +481  +ut8_t + + gi + = 0; i < + gmڙ_tyids +. +size +(); i++) { + +482 i( + gmڙ_tyids +[ +i +] = +gm +-> +ty_id +) { + +483 +hc_num + = +i + + 1; + +484 + gtogg_ + = +ue +; + +490 i( + ghc_num + == 0) { + +491  +ut8_t + +i + = 0; + gi + < + gt_tyids +. +size +(); i++) { + +492 i( + gt_tyids +[ +i +] = +gm +-> +ty_id +) { + +493 +hc_num + = +i + + 1; + +500 i( + ggm +-> + gc + >0x18 && +gm +-> +c + <= 0x1B) { + +501 +hc_num + = +gm +-> +c + - 0x17; + +505 i( + ghc_num + == 0) { + +506  +nuαr +; + +511 cڡut& + ghtg_ccu + : +htg_ccus_ +) { + +512 i( +htg_ccu +-> +hc_num +() == hc_num) { + +513  +htg_ccu +; + +518 aut + gw_hc + = +d +:: +make_shed +< +Thmo +:: +HtgCcu +>( +hc_num +); + +519 + ghtg_ccus_ +. +push_back +( +w_hc +); + +521 + gd +:: +st +( +htg_ccus_ +. +beg +(), htg_ccus_. +d +()); + +524 +togg_tch +( +mڙ_tyids +[ +hc_num + - 1], +togg_ +); + +526 i( + gt_tyids +. +size +()) { + +527 +togg_tch +( +t_tyids +[ +hc_num + - 1], +togg_ +); + +530  + ghtg_ccus_ +. +back +(); + +537  + gThmo +:: +gi_mq_ha_cfig +( +ut8_t + +hc_num +) { + +538 +SticJsDocumt +< +EMSESP_MAX_JSON_SIZE_MEDIUM +> +doc +; + +540 + gd +:: +rg + +hc_xt +(10, '\0'); + +541 +tf_P +(& +hc_xt +[0], hc_xt. +cy +(+ 1, +PSTR +("hc%d"), +hc_num +); + +542 + gdoc +["me"] = +hc_xt +; + +543 + gdoc +["uniq_id"] = +hc_xt +; + +546 + gd +:: +rg + +ro +(100, '\0'); + +547 +tf_P +(& +ro +[0],o. +cy +(+ 1, +PSTR +("homssit/ime/ems-e/hc%d"), +hc_num +); + +548 + gdoc +["~"] = +ro +; + +550 + gdoc +["mode_cmd_t"] = "~/cmd_mode"; + +551 + gdoc +["mode_stat_t"] = "~/state"; + +552 + gdoc +["temp_cmd_t"] = "~/cmd_temp"; + +553 + gdoc +["temp_stat_t"] = "~/state"; + +554 + gdoc +["curr_temp_t"] = "~/state"; + +556 + gd +:: +rg + +mode_r +(30, '\0'); + +557 +tf_P +(& +mode_r +[0], 30, +PSTR +("{{vue_js.hc%d.mode}}"), +hc_num +); + +558 + gdoc +["mode__l"] = +mode_r +; + +560 + gd +:: +rg + +emp_r +(30, '\0'); + +561 +tf_P +(& +emp_r +[0], 30, +PSTR +("{{vue_js.hc%d.emp}}"), +hc_num +); + +562 + gdoc +["mp__l"] = +emp_r +; + +564 + gd +:: +rg + +cump_r +(30, '\0'); + +565 +tf_P +(& +cump_r +[0], 30, +PSTR +("{{vue_js.hc%d.cump}}"), +hc_num +); + +566 + gdoc +["cu_mp_l"] = +cump_r +; + +568 + gdoc +["min_temp"] = "5"; + +569 + gdoc +["max_temp"] = "40"; + +570 + gdoc +["temp_step"] = "0.5"; + +572 +JsAay + + gmodes + = +doc +. +NeedAay +("modes"); + +573 +ut8_t + + gags + = +this +-> +mod +(); + +574 i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC20_2 +) { + +575 +modes +. +add +("night"); + +576 + gmodes +. +add +("day"); + +577 } i(( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC300 +|| ( +ags + =EMSdevi:: +EMS_DEVICE_FLAG_RC100 +)) { + +578 +modes +. +add +("eco"); + +579 + gmodes +. +add +("comfort"); + +580 + gmodes +. +add +("auto"); + +581 } i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_JUNKERS +) { + +582 +modes +. +add +("nofrost"); + +583 + gmodes +. +add +("eco"); + +584 + gmodes +. +add +("heat"); + +585 + gmodes +. +add +("auto"); + +587 + gmodes +. +add +("night"); + +588 + gmodes +. +add +("day"); + +589 + gmodes +. +add +("auto"); + +592 + gd +:: +rg + +tic +(100, '\0'); + +593 +tf_P +(& +tic +[0],ic. +cy +(+ 1, +PSTR +("homssit/ime/ems-e/hc%d/cfig"), +hc_num +); + +595 + gMq +:: +publish +( +tic +, +doc +, +ue +); + +598 +tf_P +(& +tic +[0],ic. +cy +(+ 1, +PSTR +("homssit/ime/ems-e/hc%d/cmd_mp"), +hc_num +); + +599 +gi_mq_tic +( +tic +, [&](cڡ * +m +{ +thmo_cmd_mp +(m); }); + +600 +tf_P +(& +tic +[0],ic. +cy +(+ 1, +PSTR +("homssit/ime/ems-e/hc%d/cmd_mode"), +hc_num +); + +601 +gi_mq_tic +( +tic +, [&](cڡ * +m +{ +thmo_cmd_mode +(m); }); + +606 +ut8_t + + gThmo +:: +HtgCcu +:: +g_mode +(ut8_ +ags +) const { + +607 i(! +Hrs +:: +hasVue +( +mode +)) { + +608  +HtgCcu +:: +Mode +:: +UNKNOWN +; + +611 + gags + &= 0x0F; + +613 i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC20 +) { + +614 i( +mode + == 0) { + +615  +HtgCcu +:: +Mode +:: +OFF +; + +616 } i( + gmode + == 1) { + +617  +HtgCcu +:: +Mode +:: +MANUAL +; + +618 } i( + gmode + == 2) { + +619  +HtgCcu +:: +Mode +:: +AUTO +; + +621 } i(( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_RC300 +|| ( +ags + =EMSdevi:: +EMS_DEVICE_FLAG_RC100 +)) { + +622 i( +mode + == 0) { + +623  +HtgCcu +:: +Mode +:: +MANUAL +; + +624 } i( + gmode + == 1) { + +625  +HtgCcu +:: +Mode +:: +AUTO +; + +627 } i( + gags + = +EMSdevi +:: +EMS_DEVICE_FLAG_JUNKERS +) { + +628 i( +mode + == 1) { + +629  +HtgCcu +:: +Mode +:: +MANUAL +; + +630 } i( + gmode + == 2) { + +631  +HtgCcu +:: +Mode +:: +AUTO +; + +632 } i( + gmode + == 3) { + +633  +HtgCcu +:: +Mode +:: +HOLIDAY +; + +636 i( + gmode + == 0) { + +637  +HtgCcu +:: +Mode +:: +NIGHT +; + +638 } i( + gmode + == 1) { + +639  +HtgCcu +:: +Mode +:: +DAY +; + +640 } i( + gmode + == 2) { + +641  +HtgCcu +:: +Mode +:: +AUTO +; + +645  + gHtgCcu +:: +Mode +:: +UNKNOWN +; + +650 +ut8_t + + gThmo +:: +HtgCcu +:: +g_mode_ty +(ut8_ +ags +) const { + +651 +ags + &= 0x0F; + +653 i( + gags + = +EMS_DEVICE_FLAG_JUNKERS +) { + +654 i( +mode_ty + == 3) { + +655  +HtgCcu +:: +Mode +:: +HEAT +; + +656 } i( + gmode_ty + == 2) { + +657  +HtgCcu +:: +Mode +:: +ECO +; + +658 } i( + gmode_ty + == 1) { + +659  +HtgCcu +:: +Mode +:: +NOFROST +; + +661 } i(( + gags + = +EMS_DEVICE_FLAG_RC35 +|| ( +ags + = +EMS_DEVICE_FLAG_RC30_1 +)) { + +662 i( +mode_ty + == 0) { + +663  +HtgCcu +:: +Mode +:: +NIGHT +; + +664 } i( + gmode_ty + == 1) { + +665  +HtgCcu +:: +Mode +:: +DAY +; + +667 } i( + gags + = +EMS_DEVICE_FLAG_RC300 +) { + +668 i( +mode_ty + == 0) { + +669  +HtgCcu +:: +Mode +:: +ECO +; + +670 } i( + gmode_ty + == 1) { + +671  +HtgCcu +:: +Mode +:: +COMFORT +; + +673 } i( + gags + = +EMS_DEVICE_FLAG_RC100 +) { + +674  +HtgCcu +:: +Mode +:: +DAY +; + +677  + gHtgCcu +:: +Mode +:: +DAY +; + +682 + gd +:: +rg + +Thmo +:: +mode_torg +( +ut8_t + +mode +) { + +683  +mode +) { + +684  +HtgCcu +:: +Mode +:: +OFF +: + +685  +ad_ash_rg +( +F +("off")); + +687  + gHtgCcu +:: +Mode +:: +MANUAL +: + +688  +ad_ash_rg +( +F +("manual")); + +690  + gHtgCcu +:: +Mode +:: +DAY +: + +691  +ad_ash_rg +( +F +("day")); + +693  + gHtgCcu +:: +Mode +:: +NIGHT +: + +694  +ad_ash_rg +( +F +("night")); + +696  + gHtgCcu +:: +Mode +:: +ECO +: + +697  +ad_ash_rg +( +F +("eco")); + +699  + gHtgCcu +:: +Mode +:: +COMFORT +: + +700  +ad_ash_rg +( +F +("comfort")); + +702  + gHtgCcu +:: +Mode +:: +HEAT +: + +703  +ad_ash_rg +( +F +("heat")); + +705  + gHtgCcu +:: +Mode +:: +HOLIDAY +: + +706  +ad_ash_rg +( +F +("holiday")); + +708  + gHtgCcu +:: +Mode +:: +NOFROST +: + +709  +ad_ash_rg +( +F +("nofrost")); + +711  + gHtgCcu +:: +Mode +:: +AUTO +: + +712  +ad_ash_rg +( +F +("auto")); + +714  + gHtgCcu +:: +Mode +:: +SUMMER +: + +715  +ad_ash_rg +( +F +("summer")); + +717  + gHtgCcu +:: +Mode +:: +OFFSET +: + +718  +ad_ash_rg +( +F +("offset")); + +720  + gHtgCcu +:: +Mode +:: +DESIGN +: + +721  +ad_ash_rg +( +F +("design")); + +724  +HtgCcu +:: +Mode +:: +UNKNOWN +: + +725  +ad_ash_rg +( +F +("unknown")); + +731  + gThmo +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +732 +EMSdevi +:: +show_vues +( +shl +); + +734 +ut8_t + + gags + = +this +-> +mod +(); + +736 i( + gdime_ +. +size +()) { + +737 + gshl +. +tn +( +F +(" Clock: %s"), +dime_ +. +c_r +()); + +738 i( + gHrs +:: +hasVue +( +ibaClockOfft_ +&& +ags + = +EMS_DEVICE_FLAG_RC30_1 +) { + +739 +t_vue +( +shl +, 2, +F +("Offock"), +ibaClockOfft_ +, +nuαr +); + +742 i( + gHrs +:: +hasVue +( +wwMode_ +)) { + +743 i( +wwMode_ + == 0) { + +744 +shl +. +tn +( +F +(" Warm Water mode: off")); + +745 } i( + gwwMode_ + == 1) { + +746 +shl +. +tn +( +F +(" Warm Water mode: on")); + +747 } i( + gwwMode_ + == 2) { + +748 +shl +. +tn +( +F +(" Warm Water mode:uto")); + +751 i( + gags + = +EMS_DEVICE_FLAG_RC35 +) { + +752 +t_vue +( +shl +, 2, +F +("Damd Outdo܁emtu"), +damdoutdo܋mp_ +, +F_ +( +deges +)); + +753 +t_vue +( +shl +, 2, +F +("Temns 1"), +mpns1_ +, +F_ +( +deges +), 10); + +754 +t_vue +( +shl +, 2, +F +("Temns 2"), +mpns2_ +, +F_ +( +deges +), 10); + +756 i( + gags + = +EMS_DEVICE_FLAG_RC30_1 +) { + +758 i( +Hrs +:: +hasVue +( +ibaMaDiy_ +)) { + +759 i( +ibaMaDiy_ + == 0) { + +760 +shl +. +tn +( +F +(" Display: internalemperature")); + +761 } i( + gibaMaDiy_ + == 1) { + +762 +shl +. +tn +( +F +(" Display: internal setpoint")); + +763 } i( + gibaMaDiy_ + == 2) { + +764 +shl +. +tn +( +F +(" Display:xternalemperature")); + +765 } i( + gibaMaDiy_ + == 3) { + +766 +shl +. +tn +( +F +(" Display: burneremperature")); + +767 } i( + gibaMaDiy_ + == 4) { + +768 +shl +. +tn +( +F +(" Display: WWemperature")); + +769 } i( + gibaMaDiy_ + == 5) { + +770 +shl +. +tn +( +F +(" Display: functioning mode")); + +771 } i( + gibaMaDiy_ + == 6) { + +772 +shl +. +tn +( +F +(" Display:ime")); + +773 } i( + gibaMaDiy_ + == 7) { + +774 +shl +. +tn +( +F +(" Display: date")); + +775 } i( + gibaMaDiy_ + == 8) { + +776 +shl +. +tn +( +F +(" Display: smokeemperature")); + +780 i( + gHrs +:: +hasVue +( +ibaLguage_ +)) { + +781 i( +ibaLguage_ + == 0) { + +782 +shl +. +tn +( +F +(" Language: German")); + +783 } i( + gibaLguage_ + == 1) { + +784 +shl +. +tn +( +F +(" Language: Dutch")); + +785 } i( + gibaLguage_ + == 2) { + +786 +shl +. +tn +( +F +(" Language: French")); + +787 } i( + gibaLguage_ + == 3) { + +788 +shl +. +tn +( +F +(" Language: Italian")); + +792 i( + gags + = +EMS_DEVICE_FLAG_RC35 + || +ags + = +EMS_DEVICE_FLAG_RC30_1 +) { + +793 i( +Hrs +:: +hasVue +( +ibaCITemtu_ +)) { + +794 +t_vue +( +shl +, 2, +F +("Offt.emtu"), +ibaCITemtu_ +, +F_ +( +deges +), 2); + +797 i( + gHrs +:: +hasVue +( +ibaMExtTemtu_ +)) { + +798 +t_vue +( +shl +, 2, +F +("Mxt.emtu"), +ibaMExtTemtu_ +, +F_ +( +deges +)); + +801 i( + gHrs +:: +hasVue +( +ibaBudgTy_ +)) { + +802 i( +ibaBudgTy_ + == 0) { + +803 +shl +. +tn +( +F +(" Building:ight")); + +804 } i( + gibaBudgTy_ + == 1) { + +805 +shl +. +tn +( +F +(" Building: medium")); + +806 } i( + gibaBudgTy_ + == 2) { + +807 +shl +. +tn +( +F +(" Building: heavy")); + +812 cڡut& + ghc + : +htg_ccus_ +) { + +813 i(! +hc +-> +is_aive +()) { + +817 + gshl +. +tn +( +F +(" Htg Ccu %d:"), +hc +-> +hc_num +()); + +820 +ut8_t + + gfm_ot +, + gfm_cu +; + +821  + gags +) { + +822  + gEMS_DEVICE_FLAG_EASY +: + +823 +fm_ot + = 100; + +824 + gfm_cu + = 100; + +826  + gEMS_DEVICE_FLAG_JUNKERS +: + +827 +fm_ot + = 10; + +828 + gfm_cu + = 10; + +831 +fm_ot + = 2; + +832 + gfm_cu + = 10; + +836 +t_vue +( +shl +, 4, +F +("Curoomemtu"), +hc +-> +cu_roomTemp +, +F_ +( +deges +), +fm_cu +); + +837 +t_vue +( +shl +, 4, +F +("Sporoomemtu"), +hc +-> +ot_roomTemp +, +F_ +( +deges +), +fm_ot +); + +838 i( + gHrs +:: +hasVue +( +hc +-> +mode +)) { + +839 +t_vue +( +shl +, 4, +F +("Mode"), +mode_torg +( +hc +-> +g_mode +( +ags +)). +c_r +()); + +841 i( + gHrs +:: +hasVue +( +hc +-> +mode_ty +)) { + +842 +t_vue +( +shl +, 4, +F +("ModTy"), +mode_torg +( +hc +-> +g_mode_ty +( +ags +)). +c_r +()); + +845 i( + gHrs +:: +hasVue +( +hc +-> +summ_mode +) && hc->summer_mode) { + +846 +shl +. +tn +( +F +(" Program is seto Summer mode")); + +847 } i( + gHrs +:: +hasVue +( +hc +-> +hiday_mode +) && hc->holiday_mode) { + +848 +shl +. +tn +( +F +(" Program is seto Holiday mode")); + +851 i( + gHrs +:: +hasVue +( +hc +-> +daymp +)) { + +852 i( +ags + = +EMSdevi +:: +EMS_DEVICE_FLAG_JUNKERS +) { + +853 +t_vue +( +shl +, 4, +F +("Hmtu"), +hc +-> +daymp +, +F_ +( +deges +), 2); + +855 +t_vue +( +shl +, 4, +F +("Dayemtu"), +hc +-> +daymp +, +F_ +( +deges +), 2); + +858 i( + gHrs +:: +hasVue +( +hc +-> +nighemp +)) { + +859 i( +ags + = +EMSdevi +:: +EMS_DEVICE_FLAG_JUNKERS +) { + +860 +t_vue +( +shl +, 4, +F +("Ec؋mtu"), +hc +-> +nighemp +, +F_ +( +deges +), 2); + +862 +t_vue +( +shl +, 4, +F +("Nighmtu"), +hc +-> +nighemp +, +F_ +( +deges +), 2); + +865 i( + gHrs +:: +hasVue +( +hc +-> +noomp +)) { + +866 +t_vue +( +shl +, 4, +F +("Nooemtu"), +hc +-> +noomp +, +F_ +( +deges +), 2); + +868 i( + gHrs +:: +hasVue +( +hc +-> +hidaymp +)) { + +869 +t_vue +( +shl +, 4, +F +("Hidayemtu"), +hc +-> +hidaymp +, +F_ +( +deges +), 2); + +871 i( + gHrs +:: +hasVue +( +hc +-> +offemp +)) { + +872 +t_vue +( +shl +, 4, +F +("Offmtu"), +hc +-> +offemp +, +F_ +( +deges +), 2); + +874 i( + gHrs +:: +hasVue +( +hc +-> +desigemp +)) { + +875 +t_vue +( +shl +, 4, +F +("Desigmtu"), +hc +-> +desigemp +, +F_ +( +deges +)); + +877 i( + gHrs +:: +hasVue +( +hc +-> +summmp +)) { + +878 +t_vue +( +shl +, 4, +F +("Summemtu"), +hc +-> +summmp +, +F_ +( +deges +)); + +880 i( + gHrs +:: +hasVue +( +hc +-> +rgowmp +)) { + +881 +t_vue +( +shl +, 4, +F +("Tg flowemtu"), +hc +-> +rgowmp +, +F_ +( +deges +)); + +885 + gshl +. +n +(); + +889  + gThmo +:: +oss_RC20S +( +d +:: +shed_r + +gm +) { + +890 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +892 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +mode +, 23); + +896  + gThmo +:: +oss_RC20Mڙ_2 +( +d +:: +shed_r + +gm +) { + +897 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +899 + gchged_ + | +gm +-> +ad_bvue +( +hc +-> +mode_ty +, 0, 7); + +900 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +ot_roomTemp +, 2, 1); + +901 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +cu_roomTemp +, 3); + +906  + gThmo +:: +oss_RC20S_2 +( +d +:: +shed_r + +gm +) { + +907 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +909 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +mode +, 3); + +913  + gThmo +:: +oss_RC20Reme +( +d +:: +shed_r + +gm +) { + +914 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +915 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +cu_roomTemp +, 0); + +919  + gThmo +:: +oss_RC10Mڙ +( +d +:: +shed_r + +gm +) { + +920 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +922 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +ot_roomTemp +, 1, 1); + +923 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +cu_roomTemp +, 2); + +926 #agm +GCC + +dgnoic + +push + + +927 #agm +GCC + +dgnoic + +igned + "-Wunused-parameter" + +930  + gThmo +:: +oss_RC10S +( +d +:: +shed_r + +gm +) { + +933 #agm +GCC + +dgnoic + +p + + +936  +Thmo +:: +oss_JunksS +( +d +:: +shed_r + +gm +) { + +937 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +938 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +daymp +, 17); + +939 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +nighemp +, 16); + +940 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +noomp +, 15); + +943  + gThmo +:: +oss_JunksS2 +( +d +:: +shed_r + +gm +) { + +944 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +945 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +daymp +, 7); + +946 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +nighemp +, 6); + +947 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +noomp +, 5); + +951  + gThmo +:: +oss_RCOutdoTemp +( +d +:: +shed_r + +gm +) { + +952 +chged_ + | +gm +-> +ad_vue +( +damdoutdo܋mp_ +, 0); + +953 + gchged_ + | +gm +-> +ad_vue +( +mpns1_ +, 3); + +954 + gchged_ + | +gm +-> +ad_vue +( +mpns2_ +, 5); + +958  + gThmo +:: +oss_RC20Mڙ +( +d +:: +shed_r + +gm +) { + +959 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +961 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +ot_roomTemp +, 1, 1); + +962 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +cu_roomTemp +, 2); + +966  + gThmo +:: +oss_EasyMڙ +( +d +:: +shed_r + +gm +) { + +967 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +969 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +cu_roomTemp +, 8); + +970 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +ot_roomTemp +, 10); + +974  + gThmo +:: +oss_IBAStgs +( +d +:: +shed_r + +gm +) { + +976 +chged_ + |= + +977 +gm +-> +ad_vue +( +ibaMaDiy_ +, + +979 + gchged_ + | +gm +-> +ad_vue +( +ibaLguage_ +, 1); + +980 + gchged_ + | +gm +-> +ad_vue +( +ibaCITemtu_ +, 2); + +981 + gchged_ + | +gm +-> +ad_vue +( +ibaBudgTy_ +, 6); + +982 + gchged_ + | +gm +-> +ad_vue +( +ibaMExtTemtu_ +, 5); + +983 + gchged_ + | +gm +-> +ad_vue +( +ibaClockOfft_ +, 12); + +987  + gThmo +:: +oss_RC35wwStgs +( +d +:: +shed_r + +gm +) { + +988 +chged_ + | +gm +-> +ad_vue +( +wwMode_ +, 2); + +992  + gThmo +:: +oss_JunksMڙ +( +d +:: +shed_r + +gm +) { + +994 i( +gm +-> +mesge_ngth + <= 1) { + +998 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +1000 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +cu_roomTemp +, 4); + +1001 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +ot_roomTemp +, 2); + +1003 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +mode_ty +, 0); + +1004 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +mode +, 1); + +1008  + gThmo +:: +oss_RC300Mڙ +( +d +:: +shed_r + +gm +) { + +1009 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +1011 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +cu_roomTemp +, 0); + +1013 + gchged_ + | +gm +-> +ad_bvue +( +hc +-> +mode_ty +, 10, 1); + +1014 + gchged_ + | +gm +-> +ad_bvue +( +hc +-> +mode +, 10, 0); + +1023 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +ot_roomTemp +, 3, 1); + +1024 + gchged_ + | +gm +-> +ad_bvue +( +hc +-> +summ_mode +, 2, 4); + +1025 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +rgowmp +, 4); + +1029  + gThmo +:: +oss_RC300S +( +d +:: +shed_r + +gm +) { + +1030 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +1043 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +daymp +, 2); + +1044 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +nighemp +, 4); + +1048  + gThmo +:: +oss_RC300WWmode +( +d +:: +shed_r + +gm +) { + +1050 +wwSyem_ + = +gm +-> +ty_id + - 0x31D + 1; + +1051 + gchged_ + | +gm +-> +ad_vue +( +wwExa_ +, 0); + +1058  + gThmo +:: +oss_RC30Mڙ +( +d +:: +shed_r + +gm +) { + +1059 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +1061 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +ot_roomTemp +, 1, 1); + +1062 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +cu_roomTemp +, 2); + +1066  + gThmo +:: +oss_RC30S +( +d +:: +shed_r + +gm +) { + +1067 +d +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +1069 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +mode +, 23); + +1073  + gThmo +:: +oss_RC35Mڙ +( +d +:: +shed_r + +gm +) { + +1077 i( +gm +-> +mesge_da +[14] == 0x00) { + +1081 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +1083 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +ot_roomTemp +, 2, 1); + +1084 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +cu_roomTemp +, 3); + +1086 + gchged_ + | +gm +-> +ad_bvue +( +hc +-> +mode_ty +, 1, 1); + +1087 + gchged_ + | +gm +-> +ad_bvue +( +hc +-> +summ_mode +, 1, 0); + +1088 + gchged_ + | +gm +-> +ad_bvue +( +hc +-> +hiday_mode +, 0, 5); + +1090 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +rgowmp +, 14); + +1094  + gThmo +:: +oss_RC35S +( +d +:: +shed_r + +gm +) { + +1096 i( +gm +-> +mesge_da +[0] == 0x00) { + +1100 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +gm +); + +1102 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +mode +, 7); + +1103 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +daymp +, 2); + +1104 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +nighemp +, 1); + +1105 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +hidaymp +, 3); + +1106 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +htgty +, 0); + +1108 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +summmp +, 22); + +1109 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +noomp +, 23); + +1110 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +desigemp +, 17); + +1111 + gchged_ + | +gm +-> +ad_vue +( +hc +-> +offemp +, 6); + +1115  + gThmo +:: +oss_RCTime +( +d +:: +shed_r + +gm +) { + +1116 i( +this +-> +ags +(= +EMS_DEVICE_FLAG_EASY +) { + +1119 i( + ggm +-> + gmesge_ngth + < 7) { + +1122 i( + ggm +-> + gmesge_da +[7] & 0x0C) { + +1123 +t_dime +("ntp", -1); + +1126 i( + gdime_ +. +emy +()) { + +1127 + gdime_ +. +size +(25, '\0'); + +1129 aut + gtimed + = +dime_ +; + +1132  + gbuf1 +[6]; + +1133  + gbuf2 +[6]; + +1134  + gbuf3 +[6]; + +1135  + gbuf4 +[6]; + +1136  + gbuf5 +[6]; + +1137  + gbuf6 +[6]; + +1138 +tf_P +(& +dime_ +[0], + +1139 +dime_ +. +cy +() + 1, + +1140 +PSTR +("%s:%s:%s %s/%s/%s"), + +1141 +Hrs +:: +sml +( +buf1 +, +gm +-> +mesge_da +[2]), + +1142 +Hrs +:: +sml +( +buf2 +, +gm +-> +mesge_da +[4]), + +1143 +Hrs +:: +sml +( +buf3 +, +gm +-> +mesge_da +[5]), + +1144 +Hrs +:: +sml +( +buf4 +, +gm +-> +mesge_da +[3]), + +1145 +Hrs +:: +sml +( +buf5 +, +gm +-> +mesge_da +[1]), + +1146 +Hrs +:: + +( +buf6 +, +gm +-> +mesge_da +[0] + 2000, 10) + +1148 i( + gtimed + ! +dime_ +) { + +1149 +chged_ + = +ue +; + +1154  + gThmo +:: +cse_commds +( +Shl + & +shl +,  +cڋxt +) { + +1155 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +THERMOSTAT +, + +1156 +CommdFgs +:: +ADMIN +, + +1157 +ash_rg_ve +{ +F_ +( +t +), F_( +ma +)}, + +1158 +ash_rg_ve +{ +F_ +( +deviid_mdy +)}, + +1159 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts +) { + +1160 +ut8_t + +vue + = +Hrs +:: +hextot +( +gumts +. +t +(). +c_r +()); + +1161 +EMSESP +:: +emStgsSvi +. +upde +( + +1162 [&]( +EMSESPStgs + & +gs +) { + +1163 +gs +. +ma_thmo + = +vue +; + +1164 +EMSESP +:: +au_ma_thmo +( +vue +); + +1165  +bufr +[5]; + +1166 +shl +. +tn +( +F_ +( +ma_thmo_fmt +), + +1167 ! +vue + ? +uuid +:: +ad_ash_rg +( +F_ +uto)). +c_r +(: +Hrs +:: +hext +( +bufr +, value)); + +1168  +SUpdeResu +:: +CHANGED +; + +1173 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +THERMOSTAT +, + +1174 +CommdFgs +:: +ADMIN +, + +1175 +ash_rg_ve +{ +F_ +( +ad +)}, + +1176 +ash_rg_ve +{ +F_ +( +tyid_mdy +)}, + +1177 [=]( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts +) { + +1178 +ut16_t + +ty_id + = +Hrs +:: +hextot +( +gumts +. +t +(). +c_r +()); + +1179 +EMSESP +:: +t_ad_id +( +ty_id +); + +1180 +EMSESP +:: +nd_ad_que +( +ty_id +, +this +-> +g_devi_id +()); + +1183 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +THERMOSTAT +, + +1184 +CommdFgs +:: +USER +, + +1185 +ash_rg_ve +{ +F_ +( +show +)}, + +1186 [&]( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +)){ +show_vues +(shell); }); + +1188 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +THERMOSTAT +, + +1189 +CommdFgs +:: +USER +, + +1190 +ash_rg_ve +{ +F_ +( +t +)}, + +1191 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +1192 +EMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +1193  +bufr +[4]; + +1194 +shl +. +tn +( +F_ +( +ma_thmo_fmt +), + +1195 +gs +. +ma_thmo + =0 ? +uuid +:: +ad_ash_rg +( +F_ +uto)). +c_r +() + +1196 : +Hrs +:: +hext +( +bufr +, +gs +. +ma_thmo +)); + +1197 +shl +. +n +(); + +1202 + gCse +:: +r_cuom_cڋxt +( +shl +, +cڋxt +); + +1206  + gThmo +:: +t_mexemp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1207  + gmt + = 0; + +1208 i(! + gHrs +:: +vue2numb +( +vue +, +mt +)) { + +1211 +LOG_INFO +( +F +("Stg mxemtu%d"), +mt +); + +1212 +wre_commd +( +EMS_TYPE_IBAStgs +, 5, +mt +, EMS_TYPE_IBASettings); + +1216  + gThmo +:: +t_ockofft +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1217  + gco + = 0; + +1218 i(! + gHrs +:: +vue2numb +( +vue +, +co +)) { + +1221 +LOG_INFO +( +F +("Stg clock offt%d"), +co +); + +1222 +wre_commd +( +EMS_TYPE_IBAStgs +, 12, +co +, EMS_TYPE_IBASettings); + +1226  + gThmo +:: +t_lemp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1227  + g + = 0; + +1228 i(! + gHrs +:: +vue2numb +( +vue +, + +)) { + +1232 +LOG_INFO +( +F +("Cibtg iȋmtu%d.%d"), + + / 10, ct < 0 ? -ct % 10 : ct % 10); + +1233 +wre_commd +( +EMS_TYPE_IBAStgs +, 2, + +, EMS_TYPE_IBASettings); + +1237  + gThmo +:: +t_diy +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1238  + gds + = 0; + +1239 i(! + gHrs +:: +vue2numb +( +vue +, +ds +)) { + +1242 +LOG_INFO +( +F +("Stg diy%d"), +ds +); + +1243 +wre_commd +( +EMS_TYPE_IBAStgs +, 0, +ds +, EMS_TYPE_IBASettings); + +1246  + gThmo +:: +t_mّemp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1247  + gf + = 0; + +1248 i(! + gHrs +:: +vue2t +( +vue +, +f +)) { + +1252 +ut8_t + + ghc_num + = ( +id + =-1? +AUTO_HEATING_CIRCUIT + : id; + +1254 i( + gf + > 100 || f < 0) { + +1255 + gRoom +:: +t_mّemp +( +hc_num + - 1, +EMS_VALUE_SHORT_NOTSET +); + +1257 + gRoom +:: +t_mّemp +( +hc_num + - 1, ( +t16_t +)( +f + * 10)); + +1262  + gThmo +:: +t_budg +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1263 + gd +:: +rg + +bd +(20, '\0'); + +1264 i(! + gHrs +:: +vue2rg +( +vue +, +bd +)) { + +1268 +ut8_t + + gbg + = 0; + +1269 i( + gbd + == "light") { + +1270 +bg + = 0; + +1271 } i( + gbd + == "medium") { + +1272 +bg + = 1; + +1273 } i( + gbd + == "heavy") { + +1274 +bg + = 2; + +1279 +LOG_INFO +( +F +("Stg budg%d"), +bg +); + +1280 +wre_commd +( +EMS_TYPE_IBAStgs +, 6, +bg +, EMS_TYPE_IBASettings); + +1284  + gThmo +:: +t_nguage +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1285  + glg + = 0; + +1286 i(! + gHrs +:: +vue2numb +( +vue +, +lg +)) { + +1289 +LOG_INFO +( +F +("Stgguagt%d"), +lg +); + +1290 +wre_commd +( +EMS_TYPE_IBAStgs +, 1, +lg +, EMS_TYPE_IBASettings); + +1294  + gThmo +:: +t_cڌ +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1295  + g + = 0; + +1296 i(! + gHrs +:: +vue2numb +( +vue +, + +)) { + +1300 +ut8_t + + ghc_num + = ( +id + =-1? +AUTO_HEATING_CIRCUIT + : id; + +1302 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +hc_num +); + +1303 i( + ghc + = +nuαr +) { + +1304 +LOG_WARNING +( +F +("S cڌ: Htg Ccu %d found oaived"), +hc_num +); + +1308 i( + g + > 2) { + +1309 +LOG_WARNING +( +F +("S cڌ: Invid cڌ mode: %d"), + +); + +1313 +LOG_INFO +( +F +("Stg ccu-cڌ f hc%d%d"), +hc_num +, + +); + +1314 +wre_commd +( +t_tyids +[ +hc +-> +hc_num +(- 1], 26, + +); + +1318  + gThmo +:: +t_wwmode +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1319 + gd +:: +rg + +v +(10, '\0'); + +1320 i(! + gHrs +:: +vue2rg +( +vue +, +v +)) { + +1324 +ut8_t + + gt + = 0xFF; + +1325 i( + gv + == "off") { + +1326 +t + = 0; + +1327 } i( + gv + == "on") { + +1328 +t + = 1; + +1329 } i( + gv + == "auto") { + +1330 +t + = 2; + +1333 i( + gt + != 0xFF) { + +1334 +LOG_INFO +( +F +("Stghmo wm w modt%s"), +v +. +c_r +()); + +1335 +wre_commd +( +EMS_TYPE_wwStgs +, 2, +t +, EMS_TYPE_wwSettings); + +1337 +LOG_WARNING +( +F +("Shmo wm w mode: Invid mode: %s"), +v +. +c_r +()); + +1342  + gThmo +:: +t_hiday +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1343 + gd +:: +rg + +hd +(30, '\0'); + +1344 i(! + gHrs +:: +vue2rg +( +vue +, +hd +)) { + +1347 +ut8_t + + ghc_num + = ( +id + =-1? +AUTO_HEATING_CIRCUIT + : id; + +1349 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +hc_num +); + +1350 i( + ghc + = +nuαr +) { + +1351 +LOG_WARNING +( +F +("S hiday: Htg Ccu %d found oaived f devi ID 0x%02X"), +hc_num +, +this +-> +g_devi_id +()); + +1354 +ut8_t + + gda +[6]; + +1355 + gda +[0] = ( +hd +[0] - '0') * 10 + (hd[1] - '0'); + +1356 + gda +[1] = ( +hd +[3] - '0') * 10 + (hd[4] - '0'); + +1357 + gda +[2] = ( +hd +[7] - '0') * 100 + (hd[8] - '0') * 10 + (hd[9] - '0'); + +1358 + gda +[3] = ( +hd +[11] - '0') * 10 + (hd[11] - '0'); + +1359 + gda +[4] = ( +hd +[14] - '0') * 10 + (hd[15] - '0'); + +1360 + gda +[5] = ( +hd +[18] - '0') * 100 + (hd[19] - '0') * 10 + (hd[20] - '0'); + +1362 +LOG_INFO +( +F +("Stg hiday f h%d"), +hc +-> +hc_num +()); + +1363 +wre_commd +( +tim_tyids +[ +hc +-> +hc_num +(- 1], 87, +da +, 6, 0); + +1367  + gThmo +:: +t_u +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1368  + ghrs + = 0; + +1369 i(! + gHrs +:: +vue2numb +( +vue +, +hrs +)) { + +1372 +ut8_t + + ghc_num + = ( +id + =-1? +AUTO_HEATING_CIRCUIT + : id; + +1374 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +hc_num +); + +1375 i( + ghc + = +nuαr +) { + +1376 +LOG_WARNING +( +F +("Sau: Htg Ccu %d found oaived f devi ID 0x%02X"), +hc_num +, +this +-> +g_devi_id +()); + +1379 +LOG_INFO +( +F +("Stgau: %d hours, hc: %d"), +hrs +, +hc +-> +hc_num +()); + +1380 +wre_commd +( +tim_tyids +[ +hc +-> +hc_num +(- 1], 85, +hrs +); + +1384  + gThmo +:: +t_y +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1385  + ghrs + = 0; + +1386 i(! + gHrs +:: +vue2numb +( +vue +, +hrs +)) { + +1389 +ut8_t + + ghc_num + = ( +id + =-1? +AUTO_HEATING_CIRCUIT + : id; + +1391 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +hc_num +); + +1392 i( + ghc + = +nuαr +) { + +1393 +LOG_WARNING +( +F +("Sty: Htg Ccu %d found oaived f devi ID 0x%02X"), +hc_num +, +this +-> +g_devi_id +()); + +1396 +LOG_INFO +( +F +("Stgty: %d hours, hc: %d"), +hrs +, +hc +-> +hc_num +()); + +1397 +wre_commd +( +tim_tyids +[ +hc +-> +hc_num +(- 1], 86, +hrs +); + +1403  + gThmo +:: +t_dime +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1404 + gd +:: +rg + +dt +(30, '\0'); + +1405 i(! + gHrs +:: +vue2rg +( +vue +, +dt +)) { + +1409 +ut8_t + + gda +[9]; + +1410 i( + gdt + == "ntp") { + +1411 +time_t + +now + = +time +( +nuαr +); + +1412 +tm + * + gtm_ + = +loime +(& +now +); + +1413 i( + gtm_ +-> + gtm_yr + < 110) { + +1414 +LOG_WARNING +( +F +("No NTPime. Cannot set RCtime")); + +1417 + gda +[0] = +tm_ +-> +tm_yr + - 100; + +1418 + gda +[1] = +tm_ +-> +tm_m +; + +1419 + gda +[2] = +tm_ +-> +tm_hour +; + +1420 + gda +[3] = +tm_ +-> +tm_mday +; + +1421 + gda +[4] = +tm_ +-> +tm_m +; + +1422 + gda +[5] = +tm_ +-> +tm_c +; + +1423 + gda +[6] = ( +tm_ +-> +tm_wday + + 6) % 7; + +1424 + gda +[7] = +tm_ +-> +tm_isd + + 2; + +1425  + gtime_rg +[25]; + +1426 +rime +( +time_rg +, 25, "%FT%T%z", +tm_ +); + +1427 +LOG_INFO +( +F +("Ddime: %s"), +time_rg +); + +1429 + gda +[0] = ( +dt +[16] - '0') * 100 + (dt[17] - '0') * 10 + (dt[18] - '0'); + +1430 + gda +[1] = ( +dt +[12] - '0') * 10 + (dt[13] - '0'); + +1431 + gda +[2] = ( +dt +[0] - '0') * 10 + (dt[1] - '0'); + +1432 + gda +[3] = ( +dt +[9] - '0') * 10 + (dt[10] - '0'); + +1433 + gda +[4] = ( +dt +[3] - '0') * 10 + (dt[4] - '0'); + +1434 + gda +[5] = ( +dt +[6] - '0') * 10 + (dt[7] - '0'); + +1435 + gda +[6] = ( +dt +[20] - '0'); + +1436 + gda +[7] = ( +dt +[22] - '0') + 2; + +1438 +LOG_INFO +( +F +("Setting datendime")); + +1439 +wre_commd +( +EMS_TYPE_time +, 0, +da +, 8, EMS_TYPE_time); + +1444  + gThmo +:: +t_mode +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1445 + gd +:: +rg + +mode +(10, '\0'); + +1446 i(! + gHrs +:: +vue2rg +( +vue +, +mode +)) { + +1450 +ut8_t + + ghc_num + = ( +id + =-1? +AUTO_HEATING_CIRCUIT + : id; + +1452 i( +mode_torg +( +HtgCcu +:: +Mode +:: +OFF += +mode +) { + +1453 +t_mode_n +( +HtgCcu +:: +Mode +:: +OFF +, +hc_num +); + +1454 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +MANUAL += +mode +) { + +1455 +t_mode_n +( +HtgCcu +:: +Mode +:: +MANUAL +, +hc_num +); + +1456 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +AUTO += +mode +) { + +1457 +t_mode_n +( +HtgCcu +:: +Mode +:: +AUTO +, +hc_num +); + +1458 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +DAY += +mode +) { + +1459 +t_mode_n +( +HtgCcu +:: +Mode +:: +DAY +, +hc_num +); + +1460 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +NIGHT += +mode +) { + +1461 +t_mode_n +( +HtgCcu +:: +Mode +:: +NIGHT +, +hc_num +); + +1462 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +HEAT += +mode +) { + +1463 +t_mode_n +( +HtgCcu +:: +Mode +:: +HEAT +, +hc_num +); + +1464 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +NOFROST += +mode +) { + +1465 +t_mode_n +( +HtgCcu +:: +Mode +:: +NOFROST +, +hc_num +); + +1466 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +ECO += +mode +) { + +1467 +t_mode_n +( +HtgCcu +:: +Mode +:: +ECO +, +hc_num +); + +1468 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +HOLIDAY += +mode +) { + +1469 +t_mode_n +( +HtgCcu +:: +Mode +:: +HOLIDAY +, +hc_num +); + +1470 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +COMFORT += +mode +) { + +1471 +t_mode_n +( +HtgCcu +:: +Mode +:: +COMFORT +, +hc_num +); + +1473 +LOG_WARNING +( +F +("Invid mod%s. Cn s"), +mode +. +c_r +()); + +1479  + gThmo +:: +t_mode_n +(cڡ +ut8_t + +mode +, cڡ ut8_ +hc_num +) { + +1481 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +hc_num +); + +1482 i( + ghc + = +nuαr +) { + +1483 +LOG_WARNING +( +F +("mode: Htg Ccu %d found oaived"), +hc_num +); + +1487 +ut8_t + + gt_mode_vue +, + gofft +; + +1488 +ut16_t + + gvide_tyid + = 0; + +1489 +ut8_t + + ghc_p + = +hc +-> +hc_num +() - 1; + +1492  + gmode +) { + +1493  + gHtgCcu +:: +Mode +:: +NIGHT +: + +1494  +HtgCcu +:: +Mode +:: +OFF +: + +1495 +t_mode_vue + = 0; + +1498  + gHtgCcu +:: +Mode +:: +DAY +: + +1499  +HtgCcu +:: +Mode +:: +HEAT +: + +1500  +HtgCcu +:: +Mode +:: +MANUAL +: + +1501  +HtgCcu +:: +Mode +:: +NOFROST +: + +1502 +t_mode_vue + = 1; + +1506  +HtgCcu +:: +Mode +:: +AUTO +: + +1507  +HtgCcu +:: +Mode +:: +ECO +: + +1508 +t_mode_vue + = 2; + +1512  + gthis +-> +mod +()) { + +1513  + gEMSdevi +:: +EMS_DEVICE_FLAG_RC20 +: + +1514 +offt + = +EMS_OFFSET_RC20S_mode +; + +1515 + gvide_tyid + = +t_tyids +[ +hc_p +]; + +1517  + gEMSdevi +:: +EMS_DEVICE_FLAG_RC20_2 +: + +1518 +offt + = +EMS_OFFSET_RC20_2_S_mode +; + +1519 + gvide_tyid + = +t_tyids +[ +hc_p +]; + +1521  + gEMSdevi +:: +EMS_DEVICE_FLAG_RC30 +: + +1522 +offt + = +EMS_OFFSET_RC30S_mode +; + +1523 + gvide_tyid + = +t_tyids +[ +hc_p +]; + +1525  + gEMSdevi +:: +EMS_DEVICE_FLAG_RC35 +: + +1526  +EMSdevi +:: +EMS_DEVICE_FLAG_RC30_1 +: + +1527 +offt + = +EMS_OFFSET_RC35S_mode +; + +1528 + gvide_tyid + = +t_tyids +[ +hc_p +]; + +1530  + gEMSdevi +:: +EMS_DEVICE_FLAG_RC300 +: + +1531  +EMSdevi +:: +EMS_DEVICE_FLAG_RC100 +: + +1532 +offt + = +EMS_OFFSET_RCPLUSS_mode +; + +1533 + gvide_tyid + = +mڙ_tyids +[ +hc_p +]; + +1534 i( + gmode + = +HtgCcu +:: +Mode +:: +AUTO +) { + +1535 +t_mode_vue + = 0xFF; + +1537 + gt_mode_vue + = 0; + +1540  + gEMSdevi +:: +EMS_DEVICE_FLAG_JUNKERS +: + +1541 i(( +this +-> +ags +(& +EMS_DEVICE_FLAG_JUNKERS_2 +) == EMS_DEVICE_FLAG_JUNKERS_2) { + +1542 +offt + = +EMS_OFFSET_JunksSMesge2_t_mode +; + +1544 + gofft + = +EMS_OFFSET_JunksSMesge_t_mode +; + +1546 + gvide_tyid + = +mڙ_tyids +[ +hc_p +]; + +1547 i( + gmode + = +HtgCcu +:: +Mode +:: +NOFROST +) { + +1548 +t_mode_vue + = 0x01; + +1549 } i( + gmode + = +HtgCcu +:: +Mode +:: +ECO + || ( +mode + =HtgCcu::Mode:: +NIGHT +)) { + +1550 +t_mode_vue + = 0x02; + +1551 } i(( + gmode + = +HtgCcu +:: +Mode +:: +DAY +|| ( +mode + =HtgCcu::Mode:: +HEAT +)) { + +1552 +t_mode_vue + = 0x03; + +1553 } i( + gmode + = +HtgCcu +:: +Mode +:: +AUTO +) { + +1554 +t_mode_vue + = 0x04; + +1558 +offt + = 0; + +1562 +LOG_INFO +( +F +("Stghmo modt%f htg ccu %d"), +mode_torg +( +mode +). +c_r +(), +hc +-> +hc_num +()); + +1566 +wre_commd +( +t_tyids +[ +hc +-> +hc_num +(- 1], +offt +, +t_mode_vue +, +vide_tyid +); + +1570  + gThmo +:: +t_mtu +(cڡ  +mtu +, cڡ +d +:: +rg + & +mode +, cڡ +ut8_t + +hc_num +) { + +1571 i( +mode_torg +( +HtgCcu +:: +Mode +:: +MANUAL += +mode +) { + +1572 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +MANUAL +, +hc_num +); + +1573 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +AUTO += +mode +) { + +1574 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +AUTO +, +hc_num +); + +1575 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +DAY += +mode +) { + +1576 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +DAY +, +hc_num +); + +1577 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +NIGHT += +mode +) { + +1578 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +NIGHT +, +hc_num +); + +1579 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +COMFORT += +mode +) { + +1580 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +COMFORT +, +hc_num +); + +1581 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +HEAT += +mode +) { + +1582 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +HEAT +, +hc_num +); + +1583 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +NOFROST += +mode +) { + +1584 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +NOFROST +, +hc_num +); + +1585 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +SUMMER += +mode +) { + +1586 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +SUMMER +, +hc_num +); + +1587 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +HOLIDAY += +mode +) { + +1588 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +HOLIDAY +, +hc_num +); + +1589 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +OFFSET += +mode +) { + +1590 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +OFFSET +, +hc_num +); + +1591 } i( +mode_torg +( +HtgCcu +:: +Mode +:: +DESIGN += +mode +) { + +1592 +t_mtu +( +mtu +, +HtgCcu +:: +Mode +:: +DESIGN +, +hc_num +); + +1594 +LOG_WARNING +( +F +("Invid mod%s."), +mode +. +c_r +()); + +1600  + gThmo +:: +t_mtu +(cڡ  +mtu +, cڡ +ut8_t + +mode +, cڡ ut8_ +hc_num +) { + +1602 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +hc + = +htg_ccu +( +hc_num +); + +1603 i( + ghc + = +nuαr +) { + +1604 +LOG_WARNING +( +F +("Semtu: Htg Ccu %d found oaived f devi ID 0x%02X"), +hc_num +, +this +-> +g_devi_id +()); + +1608 +ut8_t + + gmod + = +this +-> +mod +(); + +1609 +t8_t + + gofft + = -1; + +1610 +ut8_t + + g + = 2; + +1611 +ut16_t + + gvide_tyid + = +mڙ_tyids +[ +hc +-> +hc_num +() - 1]; + +1613 i( + gmod + = +EMS_DEVICE_FLAG_RC10 +) { + +1614 +offt + = +EMS_OFFSET_RC10S_mp +; + +1616 } i( + gmod + = +EMS_DEVICE_FLAG_RC20 +) { + +1617 +offt + = +EMS_OFFSET_RC20S_mp +; + +1619 } i( + gmod + = +EMS_DEVICE_FLAG_RC30 +) { + +1620 +offt + = +EMS_OFFSET_RC30S_mp +; + +1622 } i(( + gmod + = +EMS_DEVICE_FLAG_RC300 +|| ( +mod + = +EMS_DEVICE_FLAG_RC100 +)) { + +1623 +vide_tyid + = +t_tyids +[ +hc +-> +hc_num +() - 1]; + +1624  + gmode +) { + +1625  + gHtgCcu +:: +Mode +:: +MANUAL +: + +1626 +offt + = 0x0A; + +1628  + gHtgCcu +:: +Mode +:: +COMFORT +: + +1629 +offt + = 0x02; + +1632  +HtgCcu +:: +Mode +:: +AUTO +: + +1633 +offt + = 0x08; + +1634 + gvide_tyid + = +mڙ_tyids +[ +hc +-> +hc_num +() - 1]; + +1638 } i( + gmod + = +EMS_DEVICE_FLAG_RC20_2 +) { + +1639  +mode +) { + +1640  +HtgCcu +:: +Mode +:: +NIGHT +: + +1641 +offt + = +EMS_OFFSET_RC20_2_S_mp_night +; + +1643  + gHtgCcu +:: +Mode +:: +DAY +: + +1644 +offt + = +EMS_OFFSET_RC20_2_S_mp_day +; + +1647  +HtgCcu +:: +Mode +:: +AUTO +: + +1648 +ut8_t + +mode_ty + = +hc +-> +g_mode_ty +( +this +-> +ags +()); + +1649 + gofft + = ( +mode_ty + = +HtgCcu +:: +Mode +:: +NIGHT +? +EMS_OFFSET_RC20_2_S_mp_night + : +EMS_OFFSET_RC20_2_S_mp_day +; + +1653 } i(( + gmod + = +EMS_DEVICE_FLAG_RC35 +|| ( +mod + = +EMS_DEVICE_FLAG_RC30_1 +)) { + +1654 +vide_tyid + = +t_tyids +[ +hc +-> +hc_num +() - 1]; + +1655  + gmode +) { + +1656  + gHtgCcu +:: +Mode +:: +NIGHT +: + +1657 +offt + = +EMS_OFFSET_RC35S_mp_night +; + +1659  + gHtgCcu +:: +Mode +:: +DAY +: + +1660 +offt + = +EMS_OFFSET_RC35S_mp_day +; + +1662  + gHtgCcu +:: +Mode +:: +HOLIDAY +: + +1663 +offt + = +EMS_OFFSET_RC35S_mp_hiday +; + +1665  + gHtgCcu +:: +Mode +:: +OFFSET +: + +1666 +offt + = +EMS_OFFSET_RC35S_mp_offt +; + +1668  + gHtgCcu +:: +Mode +:: +DESIGN +: + +1669 +offt + = +EMS_OFFSET_RC35S_mp_design +; + +1670 + g + = 1; + +1672  + gHtgCcu +:: +Mode +:: +SUMMER +: + +1673 +offt + = +EMS_OFFSET_RC35S_mp_summ +; + +1674 + g + = 1; + +1676  + gHtgCcu +:: +Mode +:: +NOFROST +: + +1677 +offt + = +EMS_OFFSET_RC35S_mp_noo +; + +1678 + g + = 1; + +1681  +HtgCcu +:: +Mode +:: +AUTO +: + +1682 +vide_tyid + = +mڙ_tyids +[ +hc +-> +hc_num +() - 1]; + +1683 i( + gmod + = +EMS_DEVICE_FLAG_RC35 +) { + +1684 +ut8_t + +mode_ + = +hc +-> +g_mode +( +this +-> +ags +()); + +1685 i( + gmode_ + = +HtgCcu +:: +Mode +:: +NIGHT +) { + +1686 +offt + = +EMS_OFFSET_RC35S_mp_night +; + +1687 } i( + gmode_ + = +HtgCcu +:: +Mode +:: +DAY +) { + +1688 +offt + = +EMS_OFFSET_RC35S_mp_day +; + +1690 + gofft + = +EMS_OFFSET_RC35S_emp +; + +1693 +ut8_t + + gmode_ty + = +hc +-> +g_mode_ty +( +this +-> +ags +()); + +1694 + gofft + = ( +mode_ty + = +HtgCcu +:: +Mode +:: +NIGHT +? +EMS_OFFSET_RC35S_mp_night + : +EMS_OFFSET_RC35S_mp_day +; + +1699 } i( + gmod + = +EMS_DEVICE_FLAG_JUNKERS +) { + +1702 +bo + +d_junks + = (( +this +-> +ags +(& +EMS_DEVICE_FLAG_JUNKERS_2 +) == EMS_DEVICE_FLAG_JUNKERS_2); + +1703 i(! + gd_junks +) { + +1704  + gmode +) { + +1705  + gHtgCcu +:: +Mode +:: +NOFROST +: + +1706 +offt + = +EMS_OFFSET_JunksSMesge_no_o_mp +; + +1708  + gHtgCcu +:: +Mode +:: +NIGHT +: + +1709  +HtgCcu +:: +Mode +:: +ECO +: + +1710 +offt + = +EMS_OFFSET_JunksSMesge_night_mp +; + +1712  + gHtgCcu +:: +Mode +:: +HEAT +: + +1713  +HtgCcu +:: +Mode +:: +DAY +: + +1714 +offt + = +EMS_OFFSET_JunksSMesge_day_mp +; + +1717  +HtgCcu +:: +Mode +:: +AUTO +: + +1718 +ut8_t + +mode_ty + = +hc +-> +g_mode_ty +( +this +-> +ags +()); + +1719 i( + gmode_ty + = +HtgCcu +:: +Mode +:: +NIGHT + || +mode_ty + =HtgCcu::Mode:: +ECO +) { + +1720 +offt + = +EMS_OFFSET_JunksSMesge_night_mp +; + +1721 } i( + gmode_ty + = +HtgCcu +:: +Mode +:: +DAY + || +mode_ty + =HtgCcu::Mode:: +HEAT +) { + +1722 +offt + = +EMS_OFFSET_JunksSMesge_day_mp +; + +1724 + gofft + = +EMS_OFFSET_JunksSMesge_no_o_mp +; + +1731  + gmode +) { + +1732  + gHtgCcu +:: +Mode +:: +NOFROST +: + +1733 +offt + = +EMS_OFFSET_JunksSMesge2_no_o_mp +; + +1735  + gHtgCcu +:: +Mode +:: +ECO +: + +1736  +HtgCcu +:: +Mode +:: +NIGHT +: + +1737 +offt + = +EMS_OFFSET_JunksSMesge2_eco_mp +; + +1739  + gHtgCcu +:: +Mode +:: +HEAT +: + +1740  +HtgCcu +:: +Mode +:: +DAY +: + +1741 +offt + = +EMS_OFFSET_JunksSMesge2_ht_mp +; + +1744  +HtgCcu +:: +Mode +:: +AUTO +: + +1745 +ut8_t + +mode_ty + = +hc +-> +g_mode_ty +( +this +-> +ags +()); + +1746 i( + gmode_ty + = +HtgCcu +:: +Mode +:: +NIGHT + || +mode_ty + =HtgCcu::Mode:: +ECO +) { + +1747 +offt + = +EMS_OFFSET_JunksSMesge2_eco_mp +; + +1748 } i( + gmode_ty + = +HtgCcu +:: +Mode +:: +DAY + || +mode_ty + =HtgCcu::Mode:: +HEAT +) { + +1749 +offt + = +EMS_OFFSET_JunksSMesge2_ht_mp +; + +1751 + gofft + = +EMS_OFFSET_JunksSMesge2_no_o_mp +; + +1759 i( + gofft + != -1) { + +1760  +s +[10]; + +1761 +LOG_INFO +( +F +("Settinghermostatemperatureo %s for heating circuit %d, mode %s"), + +1762 +Hrs +:: +nd_vue +( +s +, +mtu +, 2), + +1763 +hc +-> +hc_num +(), + +1764 +mode_torg +( +mode +). +c_r +()); + +1768 +wre_commd +( +t_tyids +[ +hc +-> +hc_num +(- 1], +offt +, ( +ut8_t +)(() +mtu + * () + +), +vide_tyid +); + +1773  + gThmo +:: +thmo_cmd_mp +(cڡ * +mesge +) { + +1774  +f + = +of +((*) +mesge +, 0); + +1775 +t_mtu +( +f +, +HtgCcu +:: +Mode +:: +AUTO +, +AUTO_HEATING_CIRCUIT +); + +1780  + gThmo +:: +thmo_cmd_mode +(cڡ * +mesge +) { + +1781 +t_mode +( +mesge +, +AUTO_HEATING_CIRCUIT +); + +1784  + gThmo +:: +t_mtu_vue +(cڡ * +vue +, cڡ +t8_t + +id +, cڡ +ut8_t + +mode +) { + +1785  + gf + = 0; + +1786 +ut8_t + + ghc_num + = ( +id + =-1? +AUTO_HEATING_CIRCUIT + : id; + +1787 i( + gHrs +:: +vue2t +( +vue +, +f +)) { + +1788 +t_mtu +( +f +, +mode +, +hc_num +); + +1792  + gThmo +:: +t_mp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1793 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +AUTO +); + +1796  + gThmo +:: +t_nighemp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1797 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +NIGHT +); + +1800  + gThmo +:: +t_daymp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1801 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +DAY +); + +1804  + gThmo +:: +t_noomp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1805 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +NOFROST +); + +1808  + gThmo +:: +t_ecemp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1809 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +ECO +); + +1812  + gThmo +:: +t_hemp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1813 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +HEAT +); + +1816  + gThmo +:: +t_summmp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1817 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +SUMMER +); + +1820  + gThmo +:: +t_desigemp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1821 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +DESIGN +); + +1824  + gThmo +:: +t_offemp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1825 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +OFFSET +); + +1828  + gThmo +:: +t_hidaymp +(cڡ * +vue +, cڡ +t8_t + +id +) { + +1829 +t_mtu_vue +( +vue +, +id +, +HtgCcu +:: +Mode +:: +HOLIDAY +); + +1833  + gThmo +:: +add_commds +() { + +1835 i(( +this +-> +ags +(& +EMSdevi +:: +EMS_DEVICE_FLAG_NO_WRITE +) == EMSdevice::EMS_DEVICE_FLAG_NO_WRITE) { + +1840 +gi_mq_cmd +( +F +("wwmode"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_wwmode +(value, id); }); + +1841 +gi_mq_cmd +( +F +("mp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_mp +(value, id); }); + +1842 +gi_mq_cmd +( +F +("mode"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_mode +(value, id); }); + +1844 +ut8_t + + gmod + = +this +-> +mod +(); + +1845  + gmod +) { + +1846  + gEMS_DEVICE_FLAG_RC20_2 +: + +1847 +gi_mq_cmd +( +F +("nighemp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_nighemp +(value, id); }); + +1848 +gi_mq_cmd +( +F +("daymp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_daymp +(value, id); }); + +1850  + gEMS_DEVICE_FLAG_RC30_1 +: + +1851 +gi_mq_cmd +( +F +("ockofft"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_ockofft +(value, id); }); + +1852 +gi_mq_cmd +( +F +("nguage"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_nguage +(value, id); }); + +1853 +gi_mq_cmd +( +F +("diy"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_diy +(value, id); }); + +1854  + gEMS_DEVICE_FLAG_RC35 +: + +1855 +gi_mq_cmd +( +F +("nighemp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_nighemp +(value, id); }); + +1856 +gi_mq_cmd +( +F +("daymp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_daymp +(value, id); }); + +1857 +gi_mq_cmd +( +F +("noomp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_noomp +(value, id); }); + +1858 +gi_mq_cmd +( +F +("mّemp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_mّemp +(value, id); }); + +1859 +gi_mq_cmd +( +F +("dime"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_dime +(value, id); }); + +1860 +gi_mq_cmd +( +F +("mexemp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_mexemp +(value, id); }); + +1861 +gi_mq_cmd +( +F +("lemp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_lemp +(value, id); }); + +1862 +gi_mq_cmd +( +F +("budg"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_budg +(value, id); }); + +1863 +gi_mq_cmd +( +F +("cڌ"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_cڌ +(value, id); }); + +1864 +gi_mq_cmd +( +F +("u"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_u +(value, id); }); + +1865 +gi_mq_cmd +( +F +("y"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_y +(value, id); }); + +1866 +gi_mq_cmd +( +F +("hiday"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_hiday +(value, id); }); + +1867 +gi_mq_cmd +( +F +("summmp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_summmp +(value, id); }); + +1868 +gi_mq_cmd +( +F +("desigemp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_desigemp +(value, id); }); + +1869 +gi_mq_cmd +( +F +("offemp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_offemp +(value, id); }); + +1870 +gi_mq_cmd +( +F +("hidaymp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_hidaymp +(value, id); }); + +1872  + gEMS_DEVICE_FLAG_JUNKERS +: + +1873 +gi_mq_cmd +( +F +("noomp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_noomp +(value, id); }); + +1874 +gi_mq_cmd +( +F +("ecemp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_ecemp +(value, id); }); + +1875 +gi_mq_cmd +( +F +("hemp"), [&](cڡ * +vue +, cڡ +t8_t + +id +{ +t_hemp +(value, id); }); + + @src/devices/thermostat.h + +19 #ide +EMSESP_THERMOSTAT_H + + +20  + #EMSESP_THERMOSTAT_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +27  + ~"emsdevi.h +" + +28  + ~"gm.h +" + +29  + ~"em.h +" + +30  + ~"hrs.h +" + +31  + ~"mq.h +" + +33  + ~ + +34  + ~ + +36 +mea + + gem + { + +38 as + cThmo + : +public + +EMSdevi + { + +39 +public +: + +40 +Thmo +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +); + +41 as + cHtgCcu + { + +42 + gpublic +: + +43 +HtgCcu +(cڡ +ut8_t + +hc_num +) + +44 : +hc_num_ +( +hc_num +) + +45 , +ha_gied_ +( +l +) { + +47 ~ +HtgCcu +() = ; + +49 +t16_t + + got_roomTemp + = +EMS_VALUE_SHORT_NOTSET +; + +50 +t16_t + + gcu_roomTemp + = +EMS_VALUE_SHORT_NOTSET +; + +51 +ut8_t + + gmode + = +EMS_VALUE_UINT_NOTSET +; + +52 +ut8_t + + gmode_ty + = +EMS_VALUE_UINT_NOTSET +; + +53 +ut8_t + + gsumm_mode + = +EMS_VALUE_UINT_NOTSET +; + +54 +ut8_t + + ghiday_mode + = +EMS_VALUE_UINT_NOTSET +; + +55 +ut8_t + + gdaymp + = +EMS_VALUE_UINT_NOTSET +; + +56 +ut8_t + + gnighemp + = +EMS_VALUE_UINT_NOTSET +; + +57 +ut8_t + + ghidaymp + = +EMS_VALUE_UINT_NOTSET +; + +58 +ut8_t + + ghtgty + = +EMS_VALUE_UINT_NOTSET +; + +59 +ut8_t + + grgowmp + = +EMS_VALUE_UINT_NOTSET +; + +60 +ut8_t + + gsummmp + = +EMS_VALUE_UINT_NOTSET +; + +61 +ut8_t + + gnoomp + = +EMS_VALUE_UINT_NOTSET +; + +62 +ut8_t + + gdesigemp + = +EMS_VALUE_UINT_NOTSET +; + +63 +t8_t + + goffemp + = +EMS_VALUE_INT_NOTSET +; + +65 +ut8_t + +hc_num +() const { + +66  + ghc_num_ +; + +69 +bo + +ha_gied +() const { + +70  + gha_gied_ +; + +73  +ha_gied +( +bo + +b +) { + +74 + gha_gied_ + = +b +; + +78 +bo + +is_aive +() { + +79  + gHrs +:: +hasVue +( +ot_roomTemp +); + +82 +ut8_t + +g_mode +(ut8_ +ags +) const; + +83 +ut8_t + +g_mode_ty +(ut8_ +ags +) const; + +85 + gMode + : +ut8_t + { +UNKNOWN +, + gOFF +, + gMANUAL +, + gAUTO +, + gDAY +, + gNIGHT +, + gHEAT +, + gNOFROST +, + gECO +, + gHOLIDAY +, + gCOMFORT +, + gOFFSET +, + gDESIGN +, + gSUMMER + }; + +88 +nd + +le + +bo + + gݔ +<(cڡ + gd +:: +shed_r +< +HtgCcu +> & +lhs +, cڡ std::shed_r & +rhs +) { + +89  ( +lhs +-> +hc_num_ + < +rhs +->hc_num_); + +92 + give +: + +93 +ut8_t + +hc_num_ +; + +94 +bo + + gha_gied_ +; + +97  + gd +:: +rg + +mode_torg +( +ut8_t + +mode +); + +99 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +100 +vtu +  +publish_vues +(); + +101 +vtu +  +devi_fo_web +( +JsAay + & +ro +); + +102 +vtu + +bo + +upded_vues +(); + +103 +vtu +  +add_cڋxt_mu +(); + +105 + give +: + +106  +uuid +:: +log +:: +Logg + +logg_ +; + +108  +cse_commds +( +Shl + & +shl +,  +cڋxt +); + +109  +add_commds +(); + +112 +le + +ut8_t + +mod +() const { + +113  ( + gthis +-> +ags +() & 0x0F); + +117 + gd +:: +ve +< +ut16_t +> +mڙ_tyids +; + +118 + gd +:: +ve +< +ut16_t +> +t_tyids +; + +119 + gd +:: +ve +< +ut16_t +> +tim_tyids +; + +121 + gd +:: +rg + +dime_ +; + +123 +ut8_t + + gmq_fm_ +; + +124 +bo + + gchged_ + = +l +; + +127 +ut8_t + + gibaMaDiy_ + = + +128 +EMS_VALUE_UINT_NOTSET +; + +129 +ut8_t + + gibaLguage_ + = +EMS_VALUE_UINT_NOTSET +; + +130 +t8_t + + gibaCITemtu_ + = +EMS_VALUE_INT_NOTSET +; + +131 +t8_t + + gibaMExtTemtu_ + = +EMS_VALUE_INT_NOTSET +; + +132 +ut8_t + + gibaBudgTy_ + = +EMS_VALUE_UINT_NOTSET +; + +133 +ut8_t + + gibaClockOfft_ + = +EMS_VALUE_UINT_NOTSET +; + +135 +t8_t + + gdamdoutdo܋mp_ + = +EMS_VALUE_INT_NOTSET +; + +136 +ut16_t + + gmpns1_ + = +EMS_VALUE_USHORT_NOTSET +; + +137 +ut16_t + + gmpns2_ + = +EMS_VALUE_USHORT_NOTSET +; + +139 +ut8_t + + gwwSyem_ + = +EMS_VALUE_UINT_NOTSET +; + +140 +ut8_t + + gwwExa_ + = +EMS_VALUE_UINT_NOTSET +; + +141 +ut8_t + + gwwMode_ + = +EMS_VALUE_UINT_NOTSET +; + +143 + gd +:: +ve +< +d +:: +shed_r +< +HtgCcu +>> +htg_ccus_ +; + +146  +cڡex + +ut16_t + + gEMS_TYPE_RCTime + = 0x06; + +147  +cڡex + +ut16_t + + gEMS_TYPE_RCOutdoTemp + = 0xA3; + +150  +cڡex + +ut8_t + + gEMS_OFFSET_RC10StusMesge_ot + = 1; + +151  +cڡex + +ut8_t + + gEMS_OFFSET_RC10StusMesge_cu + = 2; + +152  +cڡex + +ut8_t + + gEMS_OFFSET_RC10S_mp + = 4; + +154  +cڡex + +ut8_t + + gEMS_OFFSET_RC20StusMesge_ot + = 1; + +155  +cڡex + +ut8_t + + gEMS_OFFSET_RC20StusMesge_cu + = 2; + +156  +cڡex + +ut8_t + + gEMS_OFFSET_RC20S_mode + = 23; + +157  +cڡex + +ut8_t + + gEMS_OFFSET_RC20S_mp + = 28; + +159  +cڡex + +ut8_t + + gEMS_OFFSET_RC20_2_S_mode + = 3; + +160  +cڡex + +ut8_t + + gEMS_OFFSET_RC20_2_S_mp_night + = 1; + +161  +cڡex + +ut8_t + + gEMS_OFFSET_RC20_2_S_mp_day + = 2; + +163  +cڡex + +ut8_t + + gEMS_OFFSET_RC30StusMesge_ot + = 1; + +164  +cڡex + +ut8_t + + gEMS_OFFSET_RC30StusMesge_cu + = 2; + +165  +cڡex + +ut8_t + + gEMS_OFFSET_RC30S_mode + = 23; + +166  +cڡex + +ut8_t + + gEMS_OFFSET_RC30S_mp + = 28; + +168  +cڡex + +ut8_t + + gEMS_OFFSET_RC35StusMesge_ot + = 2; + +169  +cڡex + +ut8_t + + gEMS_OFFSET_RC35StusMesge_cu + = 3; + +170  +cڡex + +ut8_t + + gEMS_OFFSET_RC35StusMesge_mode + = 1; + +171  +cڡex + +ut8_t + + gEMS_OFFSET_RC35StusMesge_mode1 + = 0; + +172  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_mode + = 7; + +173  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_mp_day + = 2; + +174  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_mp_night + = 1; + +175  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_mp_hiday + = 3; + +176  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_htgty + = 0; + +177  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_rgowmp + = 14; + +178  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_emp + = 37; + +179  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_mp_offt + = 6; + +180  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_mp_design + = 17; + +181  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_mp_summ + = 22; + +182  +cڡex + +ut8_t + + gEMS_OFFSET_RC35S_mp_noo + = 23; + +184  +cڡex + +ut8_t + + gEMS_OFFSET_EasyStusMesge_ot + = 10; + +185  +cڡex + +ut8_t + + gEMS_OFFSET_EasyStusMesge_cu + = 8; + +187  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSStusMesge_mode + = 10; + +188  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSStusMesge_ot + = 3; + +189  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSStusMesge_cu + = 0; + +190  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSStusMesge_cuot + = 6; + +191  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSS_mode + = 0; + +192  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSS_mp_comft3 + = 1; + +193  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSS_mp_comft2 + = 2; + +194  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSS_mp_comft1 + = 3; + +195  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSS_mp_eco + = 4; + +196  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSS_mp_ot + = 8; + +197  +cڡex + +ut8_t + + gEMS_OFFSET_RCPLUSS_mu_ot + = 10; + +199  +cڡex + +ut8_t + + gEMS_OFFSET_JunksStusMesge_daymode + = 0; + +200  +cڡex + +ut8_t + + gEMS_OFFSET_JunksStusMesge_mode + = 1; + +201  +cڡex + +ut8_t + + gEMS_OFFSET_JunksStusMesge_ot + = 2; + +202  +cڡex + +ut8_t + + gEMS_OFFSET_JunksStusMesge_cu + = 4; + +203  +cڡex + +ut8_t + + gEMS_OFFSET_JunksSMesge_day_mp + = 17; + +204  +cڡex + +ut8_t + + gEMS_OFFSET_JunksSMesge_night_mp + = 16; + +205  +cڡex + +ut8_t + + gEMS_OFFSET_JunksSMesge_no_o_mp + = 15; + +206  +cڡex + +ut8_t + + gEMS_OFFSET_JunksSMesge_t_mode + = 14; + +207  +cڡex + +ut8_t + + gEMS_OFFSET_JunksSMesge2_t_mode + = 4; + +208  +cڡex + +ut8_t + + gEMS_OFFSET_JunksSMesge2_no_o_mp + = 5; + +209  +cڡex + +ut8_t + + gEMS_OFFSET_JunksSMesge2_eco_mp + = 6; + +210  +cڡex + +ut8_t + + gEMS_OFFSET_JunksSMesge2_ht_mp + = 7; + +212  +cڡex + +ut8_t + + gAUTO_HEATING_CIRCUIT + = 0; + +215  +cڡex + +ut8_t + + gEMS_TYPE_IBAStgs + = 0xA5; + +216  +cڡex + +ut8_t + + gEMS_TYPE_wwStgs + = 0x37; + +217  +cڡex + +ut8_t + + gEMS_TYPE_time + = 0x06; + +219 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +htg_ccu +( +d +::shed_r +gm +); + +220 + gd +:: +shed_r +< +Thmo +:: +HtgCcu +> +htg_ccu +(cڡ +ut8_t + +hc_num +); + +222  +gi_mq_ha_cfig +( +ut8_t + +hc_num +); + +224  +oss_RCOutdoTemp +( +d +:: +shed_r + +gm +); + +225  +oss_IBAStgs +( +d +:: +shed_r + +gm +); + +226  +oss_RCTime +( +d +:: +shed_r + +gm +); + +227  +oss_RC35wwStgs +( +d +:: +shed_r + +gm +); + +228  +oss_RC35Mڙ +( +d +:: +shed_r + +gm +); + +229  +oss_RC35S +( +d +:: +shed_r + +gm +); + +230  +oss_RC30Mڙ +( +d +:: +shed_r + +gm +); + +231  +oss_RC30S +( +d +:: +shed_r + +gm +); + +232  +oss_RC20Mڙ +( +d +:: +shed_r + +gm +); + +233  +oss_RC20S +( +d +:: +shed_r + +gm +); + +234  +oss_RC20Reme +( +d +:: +shed_r + +gm +); + +235  +oss_RC20Mڙ_2 +( +d +:: +shed_r + +gm +); + +236  +oss_RC20S_2 +( +d +:: +shed_r + +gm +); + +237  +oss_RC10Mڙ +( +d +:: +shed_r + +gm +); + +238  +oss_RC10S +( +d +:: +shed_r + +gm +); + +239  +oss_RC300Mڙ +( +d +:: +shed_r + +gm +); + +240  +oss_RC300S +( +d +:: +shed_r + +gm +); + +241  +oss_JunksMڙ +( +d +:: +shed_r + +gm +); + +242  +oss_JunksS +( +d +:: +shed_r + +gm +); + +243  +oss_JunksS2 +( +d +:: +shed_r + +gm +); + +244  +oss_EasyMڙ +( +d +:: +shed_r + +gm +); + +245  +oss_RC300WWmode +( +d +:: +shed_r + +gm +); + +248  +t_mode_n +(cڡ +ut8_t + +mode +, cڡ ut8_ +hc_num +); + +250  +t_mtu_vue +(cڡ * +vue +, cڡ +t8_t + +id +, cڡ +ut8_t + +mode +); + +251  +t_mtu +(cڡ  +mtu +, cڡ +d +:: +rg + & +mode +, cڡ +ut8_t + +hc_num +); + +252  +t_mtu +(cڡ  +mtu +, cڡ +ut8_t + +mode +, cڡ ut8_ +hc_num +); + +255  +thmo_cmd_mp +(cڡ * +mesge +); + +256  +thmo_cmd_mode +(cڡ * +mesge +); + +259  +t_mode +(cڡ * +vue +, cڡ +t8_t + +id +); + +260  +t_cڌ +(cڡ * +vue +, cڡ +t8_t + +id +); + +261  +t_hiday +(cڡ * +vue +, cڡ +t8_t + +id +); + +262  +t_u +(cڡ * +vue +, cڡ +t8_t + +id +); + +263  +t_y +(cڡ * +vue +, cڡ +t8_t + +id +); + +265  +t_mp +(cڡ * +vue +, cڡ +t8_t + +id +); + +266  +t_nighemp +(cڡ * +vue +, cڡ +t8_t + +id +); + +267  +t_daymp +(cڡ * +vue +, cڡ +t8_t + +id +); + +268  +t_noomp +(cڡ * +vue +, cڡ +t8_t + +id +); + +269  +t_ecemp +(cڡ * +vue +, cڡ +t8_t + +id +); + +270  +t_hemp +(cڡ * +vue +, cڡ +t8_t + +id +); + +271  +t_summmp +(cڡ * +vue +, cڡ +t8_t + +id +); + +272  +t_desigemp +(cڡ * +vue +, cڡ +t8_t + +id +); + +273  +t_offemp +(cڡ * +vue +, cڡ +t8_t + +id +); + +274  +t_hidaymp +(cڡ * +vue +, cڡ +t8_t + +id +); + +276  +t_mّemp +(cڡ * +vue +, cڡ +t8_t + +id +); + +279  +t_wwmode +(cڡ * +vue +, cڡ +t8_t + +id +); + +280  +t_dime +(cڡ * +vue +, cڡ +t8_t + +id +); + +281  +t_mexemp +(cڡ * +vue +, cڡ +t8_t + +id +); + +282  +t_ockofft +(cڡ * +vue +, cڡ +t8_t + +id +); + +283  +t_lemp +(cڡ * +vue +, cڡ +t8_t + +id +); + +284  +t_diy +(cڡ * +vue +, cڡ +t8_t + +id +); + +285  +t_budg +(cڡ * +vue +, cڡ +t8_t + +id +); + +286  +t_nguage +(cڡ * +vue +, cڡ +t8_t + +id +); + + @src/emsdevice.cpp + +19  + ~"emsdevi.h +" + +20  + ~"em.h +" + +21  + ~"mq.h +" + +23 +mea + + gem + { + +25 + guuid +:: +log +:: +Logg + +EMSdevi +:: +logg_ +{ +F_ +( +em +), uuid::log:: +Facy +:: +CONSOLE +}; + +27 + gd +:: +rg + +EMSdevi +:: +bnd_to_rg +() const { + +28  +bnd_ +) { + +29  +EMSdevi +:: +Bnd +:: +BOSCH +: + +30  +ad_ash_rg +( +F +("Bosch")); + +32  + gEMSdevi +:: +Bnd +:: +JUNKERS +: + +33  +ad_ash_rg +( +F +("Junkers")); + +35  + gEMSdevi +:: +Bnd +:: +BUDERUS +: + +36  +ad_ash_rg +( +F +("Buderus")); + +38  + gEMSdevi +:: +Bnd +:: +NEFIT +: + +39  +ad_ash_rg +( +F +("Nefit")); + +41  + gEMSdevi +:: +Bnd +:: +SIEGER +: + +42  +ad_ash_rg +( +F +("Sieger")); + +44  + gEMSdevi +:: +Bnd +:: +WORCESTER +: + +45  +ad_ash_rg +( +F +("Worcester")); + +47  + gEMSdevi +:: +Bnd +:: +NO_BRAND +: + +49  +ad_ash_rg +( +F +("---")); + +53  + gd +:: +rg +{}; + +57 + gd +:: +rg + +EMSdevi +:: +devi_ty_tic_me +(cڡ +ut8_t + +devi_ty +) { + +58  +devi_ty +) { + +59  +DeviTy +:: +SERVICEKEY +: + +60  +ad_ash_rg +( +F +("system_cmd")); + +63  + gDeviTy +:: +BOILER +: + +64  +ad_ash_rg +( +F +("boiler_cmd")); + +67  + gDeviTy +:: +THERMOSTAT +: + +68  +ad_ash_rg +( +F +("thermostat_cmd")); + +71  + gDeviTy +:: +HEATPUMP +: + +72  +ad_ash_rg +( +F +("heatpump_cmd")); + +75  + gDeviTy +:: +SOLAR +: + +76  +ad_ash_rg +( +F +("solar_cmd")); + +79  + gDeviTy +:: +MIXING +: + +80  +ad_ash_rg +( +F +("mixing_cmd")); + +84  +d +:: +rg +{}; + +89 + gd +:: +rg + +EMSdevi +:: +devi_ty_me +() const { + +90  +devi_ty_ +) { + +91  +DeviTy +:: +BOILER +: + +92  +ad_ash_rg +( +F +("Boiler")); + +95  + gDeviTy +:: +THERMOSTAT +: + +96  +ad_ash_rg +( +F +("Thermostat")); + +99  + gDeviTy +:: +HEATPUMP +: + +100  +ad_ash_rg +( +F +("Heat Pump")); + +103  + gDeviTy +:: +SOLAR +: + +104  +ad_ash_rg +( +F +("Solar Module")); + +107  + gDeviTy +:: +CONNECT +: + +108  +ad_ash_rg +( +F +("Connect Module")); + +111  + gDeviTy +:: +CONTROLLER +: + +112  +ad_ash_rg +( +F +("Controller")); + +115  + gDeviTy +:: +MIXING +: + +116  +ad_ash_rg +( +F +("Mixing Module")); + +119  + gDeviTy +:: +SWITCH +: + +120  +ad_ash_rg +( +F +("Switching Module")); + +123  + gDeviTy +:: +GATEWAY +: + +124  +ad_ash_rg +( +F +("Gateway Module")); + +128  +ad_ash_rg +( +F +("Unknown")); + +134 +ut8_t + + gEMSdevi +:: +decode_bnd +(ut8_ +vue +) { + +135  +vue +) { + +137  +EMSdevi +:: +Bnd +:: +BOSCH +; + +140  +EMSdevi +:: +Bnd +:: +JUNKERS +; + +143  +EMSdevi +:: +Bnd +:: +BUDERUS +; + +146  +EMSdevi +:: +Bnd +:: +NEFIT +; + +149  +EMSdevi +:: +Bnd +:: +SIEGER +; + +152  +EMSdevi +:: +Bnd +:: +WORCESTER +; + +156  +EMSdevi +:: +Bnd +:: +NO_BRAND +; + +162 + gd +:: +rg + +EMSdevi +:: +to_rg +() const { + +163 +d +:: +rg + +r +(160, '\0'); + +166 i( + godu_id_ + == 0) { + +167 +tf_P +(& +r +[0], s. +cy +(+ 1, +PSTR +("%(DeviID:0x%02X)"), +me_ +. +c_r +(), +devi_id_ +); + +168  + gr +; + +171 i( + gbnd_ + = +Bnd +:: +NO_BRAND +) { + +172 +tf_P +(& +r +[0], s. +cy +(+ 1, +PSTR +("%(DeviID:0x%02X, ProduID:%d, Vsi:%s)"), +me_ +. +c_r +(), +devi_id_ +, +odu_id_ +, +vsi_ +.c_str()); + +174 +tf_P +(& +r +[0], + +175 +r +. +cy +() + 1, + +176 +PSTR +("%s %s (DeviceID:0x%02X ProductID:%d, Version:%s)"), + +177 +bnd_to_rg +(). +c_r +(), + +178 +me_ +. +c_r +(), + +179 +devi_id_ +, + +180 +odu_id_ +, + +181 +vsi_ +. +c_r +()); + +184  + gr +; + +188 + gd +:: +rg + +EMSdevi +:: +to_rg_sht +() const { + +189 +d +:: +rg + +r +(160, '\0'); + +190 i( + gbnd_ + = +Bnd +:: +NO_BRAND +) { + +191 +tf_P +(& +r +[0], s. +cy +(+ 1, +PSTR +("%s: %s"), +devi_ty_me +(). +c_r +(), +me_ +.c_str()); + +193 +tf_P +(& +r +[0], s. +cy +(+ 1, +PSTR +("%s: %%s"), +devi_ty_me +(). +c_r +(), +bnd_to_rg +().c_r(), +me_ +.c_str()); + +195  + gr +; + +199  + gEMSdevi +:: +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +200 +shl +. +tn +( +F +("%s: %s"), +devi_ty_me +(). +c_r +(), +to_rg +().c_str()); + +204  + gEMSdevi +:: +tch_vues +() { + +205 +LOG_DEBUG +( +F +("Fchg vuef devi ID 0x%02X"), +g_devi_id +()); + +207 cڡut& + gtf + : +gm_funis_ +) { + +208 i( +tf +. +tch_ +) { + +209 +ad_commd +( +tf +. +gm_ty_id_ +); + +215  + gEMSdevi +:: +togg_tch +( +ut16_t + +gm_id +, +bo + +togg +) { + +216 +LOG_DEBUG +( +F +("Togglg fch f devi ID 0x%02X,egm ID 0x%02X%d"), +g_devi_id +(), +gm_id +, +togg +); + +218 aut& + gtf + : +gm_funis_ +) { + +219 i( +tf +. +gm_ty_id_ + = +gm_id +) { + +220 +tf +. +tch_ + = +togg +; + +226  + gEMSdevi +:: +show_gm_hdrs +( +uuid +:: +cse +:: +Shl + & +shl +) { + +227 i( +gm_funis_ +. +size +() == 0) { + +231 + gshl +. +tf +( +F +(" Thi%wȻd؋gmy IDs: "), +devi_ty_me +(). +c_r +()); + +232 cڡut& + gtf + : +gm_funis_ +) { + +233 +shl +. +tf +( +F +("0x%02X "), +tf +. +gm_ty_id_ +); + +235 + gshl +. +n +(); + +239  + gEMSdevi +:: +show_mq_hdrs +( +uuid +:: +cse +:: +Shl + & +shl +) { + +240 +Mq +:: +show_tic_hdrs +( +shl +, +this +-> +devi_ty_ +); + +243  + gEMSdevi +:: +gi_mq_tic +(cڡ +d +:: +rg + & +tic +, +mq_subfuni_p + +f +) { + +244 +LOG_DEBUG +( +F +("Regig MQTTi%f devi ID %02Xndy %s"), +tic +. +c_r +(), +this +-> +devi_id_ +,his-> +devi_ty_me +().c_str()); + +245 + gMq +:: +subsibe +( +this +-> +devi_ty_ +, +tic +, +f +); + +248  + gEMSdevi +:: +gi_mq_cmd +(cڡ +__FshSgHr + * +cmd +, +mq_cmdfuni_p + +f +) { + +249 + gMq +:: +add_commd +( +this +-> +devi_ty_ +,his-> +devi_id_ +, +cmd +, +f +); + +253  + gEMSdevi +:: +gi_gm_ty +(cڡ +ut16_t + +gm_ty_id +, cڡ +__FshSgHr + * +gm_ty_me +, +bo + +tch +, +oss_funi_p + +f +) { + +254 + ggm_funis_ +. +ema_back +( +gm_ty_id +, +gm_ty_me +, +tch +, +f +); + +258 + gd +:: +rg + +EMSdevi +:: +gm_ty_me +( +d +:: +shed_r + +gm +) { + +260 i( +gm +-> +ty_id + = +EMS_TYPE_VERSION +) { + +261  +ad_ash_rg +( +F +("Version")); + +262 } i( + ggm +-> + gty_id + = +EMS_TYPE_UBADevis +) { + +263  +ad_ash_rg +( +F +("UBADevices")); + +266 cڡut& + gtf + : +gm_funis_ +) { + +267 i(( +tf +. +gm_ty_id_ + = +gm +-> +ty_id +) && ((telegram->type_id & 0xF0) != 0xF0)) { + +268  +uuid +:: +ad_ash_rg +( +tf +. +gm_ty_me_ +); + +272  + gd +:: +rg +{}; + +277 +bo + + gEMSdevi +:: +hd_gm +( +d +:: +shed_r + +gm +) { + +278 cڡut& +tf + : +gm_funis_ +) { + +279 i( +tf +. +gm_ty_id_ + = +gm +-> +ty_id +) { + +282 i( +gm +-> +mesge_ngth + == 0) { + +283 +LOG_DEBUG +( +F +("Thigm (%sinلecognized byhEMS bus"), +uuid +:: +ad_ash_rg +( +tf +. +gm_ty_me_ +). +c_r +()); + +284 +togg_tch +( +tf +. +gm_ty_id_ +, +l +); + +285  + gl +; + +288 +LOG_DEBUG +( +F +("Reived %s"), +uuid +:: +ad_ash_rg +( +tf +. +gm_ty_me_ +). +c_r +()); + +289 + gtf +. +oss_funi_ +( +gm +); + +290  + gue +; + +293  + gl +; + +297  + gEMSdevi +:: +wre_commd +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +offt +, ut8_* +mesge_da +, cڡ ut8_ +mesge_ngth +, cڡ ut16_ +vide_tyid +) { + +298 + gEMSESP +:: +nd_wre_que +( +ty_id +, +this +-> +g_devi_id +(), +offt +, +mesge_da +, +mesge_ngth +, +vide_tyid +); + +302  + gEMSdevi +:: +wre_commd +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +offt +, cڡ ut8_ +vue +, cڡ ut16_ +vide_tyid +) { + +303 + gEMSESP +:: +nd_wre_que +( +ty_id +, +this +-> +g_devi_id +(), +offt +, +vue +, +vide_tyid +); + +307  + gEMSdevi +:: +wre_commd +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +offt +, cڡ ut8_ +vue +) { + +308 + gEMSESP +:: +nd_wre_que +( +ty_id +, +this +-> +g_devi_id +(), +offt +, +vue +, 0); + +312  + gEMSdevi +:: +ad_commd +(cڡ +ut16_t + +ty_id +) { + +313 +EMSESP +:: +nd_ad_que +( +ty_id +, +g_devi_id +()); + +317  + gEMSdevi +:: +t_vue +( +uuid +:: +cse +:: +Shl + & +shl +, +ut8_t + +ddg +, cڡ +__FshSgHr + * +me +, cڡ __FshSgH* +vue +) { + +318 +t_vue +( +shl +, +ddg +, +me +, +uuid +:: +ad_ash_rg +( +vue +). +c_r +()); + +322  + gEMSdevi +:: +t_vue +( +uuid +:: +cse +:: +Shl + & +shl +, +ut8_t + +ddg +, cڡ +__FshSgHr + * +me +, cڡ * +vue +) { + +323 +ut8_t + + gi + = +ddg +; + +324  + gi +-- > 0) { + +325 + gshl +. +t +( +F +(" ")); + +328 + gshl +. +tn +( +PSTR +("%s: %s"), +uuid +:: +ad_ash_rg +( +me +). +c_r +(), +vue +); + +332  + gEMSdevi +:: +add_cڋxt_commds +( +cڋxt +) { + +334 +ash_rg_ve + +ms +; + +335 i(( + gcڋxt + = +ShlCڋxt +:: +THERMOSTAT +|| ( +cڋxt + =ShlCڋxt:: +MIXING +)) { + +336 +ms + = +ash_rg_ve +{ +F_ +( +cmd_tiڮ +), F_( +da_tiڮ +), F_( +hc_tiڮ +)}; + +338 + gms + = +ash_rg_ve +{ +F_ +( +cmd_tiڮ +), F_( +da_tiڮ +)}; + +341 + gEMSESPShl +:: +commds +-> +add_commd +( + +342 +cڋxt +, + +343 +CommdFgs +:: +ADMIN +, + +344 +ash_rg_ve +{ +F_ +( + +)}, + +345 +ms +, + +346 [&]( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts +) { + +347 +ut8_t + +devi_ty_ + = +devi_ty +(); + +348 i( +gumts +. +emy +()) { + +350 +shl +. +t +("Available commands:"); + +351 cڡut& +cf + : +Mq +:: +commds +()) { + +352 i( +cf +. +devi_ty_ + == device_type_) { + +353 +shl +. +tf +(" %s", +uuid +:: +ad_ash_rg +( +cf +. +cmd_ +). +c_r +()); + +356 +shl +. +n +(); + +360 cڡ * +cmd + = +gumts +[0]. +c_r +(); + +361 i( +gumts +. +size +() == 1) { + +363 +Mq +:: +_commd +( +devi_ty_ +, +cmd +, +nuαr +, -1); + +364 } i( +gumts +. +size +() == 2) { + +366 +Mq +:: +_commd +( +devi_ty_ +, +cmd +, +gumts +. +back +(). +c_r +(), -1); + +369 +Mq +:: +_commd +( +devi_ty_ +, +cmd +, +gumts +[1]. +c_r +(), +oi +(arguments[2].c_str())); + +372 [&]( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts +) -> std::vector { + +373 i( +gumts +. +size +() > 0) { + +376 +d +:: +ve + +commds +; + +377 cڡut& +cf + : +Mq +:: +commds +()) { + +378 i( +cf +. +devi_ty_ + = +devi_ty +()) { + +379 +commds +. +ema_back +( +uuid +:: +ad_ash_rg +( +cf +. +cmd_ +)); + +382  +commds +; + + @src/emsdevice.h + +19 #ide +EMSESP_EMSDEVICE_H_ + + +20  + #EMSESP_EMSDEVICE_H_ + + + ) + +22  + ~ + +23  + ~ + +24  + ~ + +26  + ~"emsy.h +" + +27  + ~"gm.h +" + +28  + ~"mq.h +" + +29  + ~"hrs.h +" + +31 +mea + + gem + { + +33 as + cEMSdevi + { + +34 + gpublic +: + +35  +cڡex + +ut8_t + +EMS_DEVICES_MAX_TELEGRAMS + = 20; + +38 +EMSdevi +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, cڡ +d +:: +rg + & +vsi +, cڡ std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +39 : +devi_ty_ +( +devi_ty +) + +40 , +devi_id_ +( +devi_id +) + +41 , +odu_id_ +( +odu_id +) + +42 , +vsi_ +( +vsi +) + +43 , +me_ +( +me +) + +44 , +ags_ +( +ags +) + +45 , +bnd_ +( +bnd +) { + +48 + gvtu + ~ +EMSdevi +() = ; + +50 +le + +ut8_t + +g_devi_id +() const { + +51  + gdevi_id_ +; + +54 + gd +:: +rg + +devi_ty_me +() const; + +55  + gd +:: +rg + +devi_ty_tic_me +(cڡ +ut8_t + +devi_ty +); + +57 +le + +ut8_t + +odu_id +() const { + +58  + godu_id_ +; + +61  +odu_id +( +ut8_t +roduct_id) { + +62 + godu_id_ + = +odu_id +; + +65 +le + +bo + +is_devi_id +( +ut8_t + +devi_id +) { + +66  (( + gdevi_id + & 0x7F=( +devi_id_ + & 0x7F)); + +69 +le + +ut8_t + +ags +() const { + +70  + gags_ +; + +73 +le +  +ags +( +ut8_t + flags) { + +74 + gags_ + = +ags +; + +78 +le + +ut8_t + +devi_ty +() const { + +79  + gdevi_ty_ +; + +82 +le +  +vsi +( +d +:: +rg + & version) { + +83 +vsi_ + = +vsi +; + +86 +le + + gd +:: +rg + +vsi +() const { + +87  +vsi_ +; + +90 +le +  +bnd +( +ut8_t + brand) { + +91 + gbnd_ + = +bnd +; + +94 +le + +ut8_t + +bnd +() const { + +95  + gbnd_ +; + +98 +le +  +me +(cڡ +d +:: +rg + &ame) { + +99 +me_ + = +me +; + +102 +le + + gd +:: +rg + +me +() const { + +103  +me_ +; + +106 +le + +ut8_t + +unique_id +() const { + +107  + gunique_id_ +; + +110 +le +  +unique_id +( +ut8_t + unique_id) { + +111 + gunique_id_ + = +unique_id +; + +114 + gd +:: +rg + +bnd_to_rg +() const; + +115  +ut8_t + +decode_bnd +(ut8_ +vue +); + +117 + gd +:: +rg + +to_rg +() const; + +118 + gd +:: +rg + +to_rg_sht +() const; + +120  +show_gm_hdrs +( +uuid +:: +cse +:: +Shl + & +shl +); + +121  +show_mq_hdrs +( +uuid +:: +cse +:: +Shl + & +shl +); + +123 +usg + + goss_funi_p + = +d +:: +funi +<(d:: +shed_r +)>; + +124  +gi_gm_ty +(cڡ +ut16_t + +gm_ty_id +, cڡ +__FshSgHr + * +gm_ty_me +, +bo + +tch +, +oss_funi_p + +cb +); + +125 +bo + +hd_gm +( +d +:: +shed_r + +gm +); + +127  +wre_commd +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +offt +, ut8_* +mesge_da +, cڡ ut8_ +mesge_ngth +, cڡ ut16_ +vide_tyid +); + +128  +wre_commd +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +offt +, cڡ ut8_ +vue +, cڡ ut16_ +vide_tyid +); + +129  +wre_commd +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +offt +, cڡ ut8_ +vue +); + +131  +ad_commd +(cڡ +ut16_t + +ty_id +); + +133  +add_cڋxt_commds +( +cڋxt +); + +135  +gi_mq_tic +(cڡ +d +:: +rg + & +tic +, +mq_subfuni_p + +f +); + +136  +gi_mq_cmd +(cڡ +__FshSgHr + * +cmd +, +mq_cmdfuni_p + +f +); + +139 +vtu +  +show_vues +( +uuid +:: +cse +:: +Shl + & +shl +) = 0; + +140 +vtu +  +publish_vues +() = 0; + +141 +vtu + +bo + +upded_vues +() = 0; + +142 +vtu +  +add_cڋxt_mu +() = 0; + +143 +vtu +  +devi_fo_web +( +JsAay + & +ro +) = 0; + +145 + gd +:: +rg + +gm_ty_me +( +d +:: +shed_r + +gm +); + +147  +tch_vues +(); + +148  +togg_tch +( +ut16_t + +gm_id +, +bo + +togg +); + +150  +rve_mem +( +size_t + +n +) { + +151 + ggm_funis_ +. +rve +( +n +); + +161 + gme + < +tyme + + gVue +> + +162  +t_vue +( +uuid +:: +cse +:: +Shl + & +shl +, + +163 +ut8_t + +ddg +, + +164 cڡ +__FshSgHr + * +me +, + +165 +Vue + & +vue +, + +166 cڡ +__FshSgHr + * +suffix +, + +167 cڡ +ut8_t + +fm + = 0) { + +168  +bufr +[15]; + +169 i( + gHrs +:: +nd_vue +( +bufr +, +vue +, +fm += +nuαr +) { + +173 +ut8_t + + gi + = +ddg +; + +174  + gi +-- > 0) { + +175 + gshl +. +t +( +F +(" ")); + +178 + gshl +. +tf +( +PSTR +("%s: %s"), +uuid +:: +ad_ash_rg +( +me +). +c_r +(), +bufr +); + +180 i( + gsuffix + ! +nuαr +) { + +181 +shl +. +n +( +uuid +:: +ad_ash_rg +( +suffix +). +c_r +()); + +183 + gshl +. +n +(); + +189 + gme + < +tyme + + gVue +> + +190  +nd_vue_js +( +JsAay + & +js +, + +191 cڡ +d +:: +rg + & +efix +, + +192 cڡ +__FshSgHr + * +me +, + +193 +Vue + & +vue +, + +194 cڡ +__FshSgHr + * +suffix +, + +195 cڡ +ut8_t + +fm + = 0) { + +196  +bufr +[15]; + +197 i( + gHrs +:: +nd_vue +( +bufr +, +vue +, +fm += +nuαr +) { + +201 +JsObje + + gdaEmt + = +js +. +NeedObje +(); + +205 i( + gsuffix + ! +nuαr +) { + +206 +d +:: +rg + +xt +(20, '\0'); + +207 +tf_P +(& +xt +[0],ext. +cy +(+ 1, +PSTR +("%s%s"), +bufr +, +uuid +:: +ad_ash_rg +( +suffix +). +c_r +()); + +208 + gdaEmt +["vue"] = +xt +; + +210 + gdaEmt +["vue"] = +bufr +; + +213 + gd +:: +rg + +xt2 +(100, '\0'); + +214 +tf_P +(& +xt2 +[0],ext2. +cy +(+ 1, +PSTR +("%s%s"), +efix +. +c_r +(), +uuid +:: +ad_ash_rg +( +me +).c_str()); + +215 + gdaEmt +["me"] = +xt2 +; + +218  +t_vue +( +uuid +:: +cse +:: +Shl + & +shl +, +ut8_t + +ddg +, cڡ +__FshSgHr + * +me +, cڡ __FshSgH* +vue +); + +219  +t_vue +( +uuid +:: +cse +:: +Shl + & +shl +, +ut8_t + +ddg +, cڡ +__FshSgHr + * +me +, cڡ * +vue +); + +221 + gBnd + : +ut8_t + { + +222 +NO_BRAND +, + +223 + gBOSCH +, + +224 + gJUNKERS +, + +225 + gBUDERUS +, + +226 + gNEFIT +, + +227 + gSIEGER +, + +228 + gWORCESTER + + +231 + gDeviTy + : +ut8_t + { + +232 +SERVICEKEY + = 0, + +233 + gBOILER +, + +234 + gTHERMOSTAT +, + +235 + gMIXING +, + +236 + gSOLAR +, + +237 + gHEATPUMP +, + +238 + gGATEWAY +, + +239 + gSWITCH +, + +240 + gCONTROLLER +, + +241 + gCONNECT + + +246  +cڡex + +ut8_t + + gEMS_DEVICE_ID_BOILER + = 0x08; + +247  +cڡex + +ut8_t + + gEMS_DEVICE_ID_MODEM + = 0x48; + +250  +cڡex + +ut16_t + + gEMS_TYPE_VERSION + = 0x02; + +251  +cڡex + +ut16_t + + gEMS_TYPE_UBADevis + = 0x07; + +254  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_NONE + = 0; + +257  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_SM10 + = 1; + +258  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_SM100 + = 2; + +259  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_ISM + = 3; + +262  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_MMPLUS + = 1; + +263  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_MM10 + = 2; + +264  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_IPM + = 3; + +267  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_NO_WRITE + = (1 << 7); + +268  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_EASY + = 1; + +269  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_RC10 + = 2; + +270  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_RC20 + = 3; + +271  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_RC20_2 + = 4; + +272  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_RC30_1 + = 5; + +273  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_RC30 + = 6; + +274  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_RC35 + = 7; + +275  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_RC300 + = 8; + +276  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_RC100 + = 9; + +277  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_JUNKERS + = 10; + +278  +cڡex + +ut8_t + + gEMS_DEVICE_FLAG_JUNKERS_2 + = (1 << 6); + +280 + give +: + +281 +ut8_t + +unique_id_ +; + +282 +ut8_t + + gdevi_ty_ + = +DeviTy +:: +SERVICEKEY +; + +283 +ut8_t + + gdevi_id_ + = 0; + +284 +ut8_t + + godu_id_ + = 0; + +285 + gd +:: +rg + +vsi_ +; + +286 + gd +:: +rg + +me_ +; + +287 +ut8_t + + gags_ + = 0; + +288 +ut8_t + + gbnd_ + = +Bnd +:: +NO_BRAND +; + +290  + guuid +:: +log +:: +Logg + +logg_ +; + +292  + sTegmFuni + { + +293 +ut16_t + + ggm_ty_id_ +; + +294 cڡ +__FshSgHr + * + ggm_ty_me_ +; + +295 +bo + + gtch_ +; + +297 +oss_funi_p + + goss_funi_ +; + +299 +TegmFuni +( +ut16_t + +gm_ty_id +, cڡ +__FshSgHr + * +gm_ty_me +, +bo + +tch +, +oss_funi_p + +oss_funi +) + +300 : +gm_ty_id_ +( +gm_ty_id +) + +301 , +gm_ty_me_ +( +gm_ty_me +) + +302 , +tch_ +( +tch +) + +303 , +oss_funi_ +( +oss_funi +) { + +306 + gd +:: +ve +< +TegmFuni +> +gm_funis_ +; + + @src/emsesp.cpp + +19  + ~"em.h +" + +21 +mea + + gem + { + +23 +AsyncWebSv + +webSv +(80); + +25 #i +defed +( +ESP32 +) + +26 +ESP8266R + + gEMSESP +:: +e8266R +(& +webSv +, & +SPIFFS +); + +27 +EMSESPStgsSvi + + gEMSESP +:: +emStgsSvi + = EMSESPStgsSvi(& +webSv +, & +SPIFFS +, +EMSESP +:: +e8266R +. +gSecuryMag +()); + +28 #i +defed +( +ESP8266 +) + +29 +ESP8266R + + gEMSESP +:: +e8266R +(& +webSv +, & +LeFS +); + +30 +EMSESPStgsSvi + + gEMSESP +:: +emStgsSvi + = EMSESPStgsSvi(& +webSv +, & +LeFS +, +EMSESP +:: +e8266R +. +gSecuryMag +()); + +31 #i +defed +( +EMSESP_STANDALONE +) + +32 +FS + + gdummyFS +; + +33 +ESP8266R + + gEMSESP +:: +e8266R +(& +webSv +, & +dummyFS +); + +34 +EMSESPStgsSvi + + gEMSESP +:: +emStgsSvi + = EMSESPStgsSvi(& +webSv +, & +dummyFS +, +EMSESP +:: +e8266R +. +gSecuryMag +()); + +37 +EMSESPStusSvi + + gEMSESP +:: +emStusSvi + = EMSESPStusSvi(& +webSv +, +EMSESP +:: +e8266R +. +gSecuryMag +()); + +38 +EMSESPDevisSvi + + gEMSESP +:: +emDevisSvi + = EMSESPDevisSvi(& +webSv +, +EMSESP +:: +e8266R +. +gSecuryMag +()); + +40 +usg + + gDeviFgs + = +em +:: +EMSdevi +; + +41 +usg + + gDeviTy + = +em +:: +EMSdevi +:: +DeviTy +; + +42 + gd +:: +ve +< +d +:: +unique_r +< +EMSdevi +>> +EMSESP +:: +emsdevis +; + +43 + gd +:: +ve +< +em +:: +EMSESP +:: +Devi_cd +> EMSESP:: +devi_libry_ +; + +45 + guuid +:: +log +:: +Logg + +EMSESP +:: +logg_ +{ +F_ +( +em +), uuid::log:: +Facy +:: +KERN +}; + +48 +RxSvi + + gEMSESP +:: +rxrvi_ +; + +49 +TxSvi + + gEMSESP +:: +txrvi_ +; + +50 +Mq + + gEMSESP +:: +mq_ +; + +51 +Syem + + gEMSESP +:: +syem_ +; + +52 +Cse + + gEMSESP +:: +cse_ +; + +53 +Sss + + gEMSESP +:: +nss_ +; + +54 +Show + + gEMSESP +:: +show_ +; + +57 +ut8_t + + gEMSESP +:: +au_ma_thmo_ + = +EMSESP_DEFAULT_MASTER_THERMOSTAT +; + +58 +ut16_t + + gEMSESP +:: +wch_id_ + = +WATCH_ID_NONE +; + +59 +ut8_t + + gEMSESP +:: +wch_ + = 0; + +60 +ut16_t + + gEMSESP +:: +ad_id_ + = +WATCH_ID_NONE +; + +61 +ut16_t + + gEMSESP +:: +publish_id_ + = 0; + +62 +bo + + gEMSESP +:: +p_w_aive_ + = +l +; + +63 +ut32_t + + gEMSESP +:: +ϡ_tch_ + = 0; + +64 +ut8_t + + gEMSESP +:: +unique_id_cou_ + = 0; + +68  + gEMSESP +:: +tch_devi_vues +(cڡ +ut8_t + +devi_id +) { + +69 cڡut& +emsdevi + : +emsdevis +) { + +70 i( +emsdevi +) { + +71 i(( +devi_id + =0|| +emsdevi +-> +is_devi_id +(device_id)) { + +72 +emsdevi +-> +tch_vues +(); + +73 i( + gdevi_id + != 0) { + +82  + gEMSESP +:: +r_l_devis +() { + +83 +emsdevis +. +r +(); + +87 +ut8_t + + gEMSESP +:: +cou_devis +(cڡ ut8_ +devi_ty +) { + +88 +ut8_t + +cou + = 0; + +89 cڡut& + gemsdevi + : +emsdevis +) { + +90 i( +emsdevi +) { + +91 +cou + +( +emsdevi +-> +devi_ty +() == device_type); + +94  + gcou +; + +98  + gEMSESP +:: +sn_devis +() { + +99 +EMSESP +:: +r_l_devis +(); + +100 + gEMSESP +:: +nd_ad_que +( +EMSdevi +:: +EMS_TYPE_UBADevis +, EMSdevi:: +EMS_DEVICE_ID_BOILER +); + +107 +ut8_t + + gEMSESP +:: +check_ma_devi +(cڡ ut8_ +devi_id +, cڡ +ut16_t + +ty_id +, cڡ +bo + +ad +) { + +108 +ut16_t + + gm_id +[4] = {0x02A5, 0x02A6, 0x02A7, 0x02A8}; + +109 +ut16_t + + gt_id +[4] = {0x02B9, 0x02BA, 0x02BB, 0x02BC}; + +110 i( + gau_ma_thmo_ + == 0x18) { + +111  +ut8_t + +i + = 0; + gi + < 4; i++) { + +112 i( + gty_id + = +m_id +[ +i +] || +ty_id + = +t_id +[i]) { + +113 i( +ad +) { + +116  0x18 + + gi +; + +121  + gdevi_id +; + +124  + gEMSESP +:: +au_ma_thmo +(cڡ +ut8_t + +devi_id +) { + +125 +au_ma_thmo_ + = +devi_id +; + +128 +ut8_t + + gEMSESP +:: +au_ma_thmo +() { + +129  +au_ma_thmo_ +; + +133  + gEMSESP +:: +wch_id +( +ut16_t + watch_id) { + +134 +wch_id_ + = +wch_id +; + +140  + gEMSESP +:: +_tx +() { + +141 +ut8_t + +tx_mode +; + +142 + gEMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +143 +tx_mode + = +gs +.tx_mode; + +145 #ide +EMSESP_FORCE_SERIAL + + +146 +EMSut +:: + +(); + +147 +EMSut +:: +t +( +tx_mode +, +gs +. +rx_gpio +, stgs. +tx_gpio +); + +151 + gtxrvi_ +. +t +(); + +154 i( + gtx_mode + != 0) { + +155 +EMSESP +:: +tch_devi_vues +(); + +160 +ut8_t + + gEMSESP +:: +bus_us +() { + +161 i(! +rxrvi_ +. +bus_ced +()) { + +162  +BUS_STATUS_OFFLINE +; + +166 +ut32_t + + gtٮ_ + = +txrvi_ +. +gm_ad_cou +(+xrvi_. +gm_wre_cou +(); + +169 i(( + gtٮ_ + =0&& ( +txrvi_ +. +gm__cou +() == 0)) { + +170  +BUS_STATUS_CONNECTED +; + +174 i(( + gtٮ_ + =0&& ( +txrvi_ +. +gm__cou +() != 0)) { + +175  +BUS_STATUS_TX_ERRORS +; + +179 i((( + gtxrvi_ +. +gm__cou +(* 100/ + gtٮ_ +> + gEMSbus +:: +EMS_TX_ERROR_LIMIT +) { + +180  +BUS_STATUS_TX_ERRORS +; + +183  + gBUS_STATUS_CONNECTED +; + +187  + gEMSESP +:: +show_ems +( +uuid +:: +cse +:: +Shl + & +shl +) { + +189  +bus_us +()) { + +190  +BUS_STATUS_OFFLINE +: + +191 +shl +. +tn +( +F +("EMS Bus is disconnected.")); + +193  + gBUS_STATUS_TX_ERRORS +: + +194 +shl +. +tn +( +F +("EMS Bus is connected, but Tx isot stable.")); + +196  + gBUS_STATUS_CONNECTED +: + +198 +shl +. +tn +( +F +("EMS Bus is connected.")); + +202 + gshl +. +n +(); + +204 i( +bus_us +(! +BUS_STATUS_OFFLINE +) { + +205 +ut8_t + +sucss_ + = 0; + +206 i( + grxrvi_ +. +gm_r_cou +()) { + +207 + gsucss_ + = (() +rxrvi_ +. +gm_r_cou +(/ (xrvi_. +gm_cou +()) * 100; + +210 + gshl +. +tn +( +F +("EMS Bus info:")); + +211 + gEMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +{ +shl +. +tn +( +F +(" Tx mode: %d"), stgs. +tx_mode +); }); + +212 + gshl +. +tn +( +F +(" Buoc: %s"), +EMSbus +:: +is_ht3 +() ? F("HT3") : F("Buderus")); + +213 + gshl +. +tn +( +F +(" #gmived: %d"), +rxrvi_ +. +gm_cou +()); + +214 + gshl +. +tn +( +F +(" #adeque: %d"), +txrvi_ +. +gm_ad_cou +()); + +215 + gshl +. +tn +( +F +(" #wrque: %d"), +txrvi_ +. +gm_wre_cou +()); + +216 + gshl +. +tn +( +F +(" #comgms: %d (%d%%)"), +rxrvi_ +. +gm_r_cou +(), +sucss_ +); + +217 + gshl +. +tn +( +F +(" #tx fa %drs): %d"), +TxSvi +:: +MAXIMUM_TX_RETRIES +, +txrvi_ +. +gm__cou +()); + +220 + gshl +. +n +(); + +223 aut + grx_gms + = +rxrvi_ +. +queue +(); + +224 i( + grx_gms +. +emy +()) { + +225 + gshl +. +tn +( +F +("Rx Queue ismpty")); + +227 + gshl +. +tn +( +F +("Rx Queu(%ldegm%s):"), +rx_gms +. +size +(),x_telegrams.size() == 1 ? "" : "s"); + +228 cڡut& + g + : +rx_gms +) { + +229 +shl +. +tn +( +F +(" [%02d] %s"), + +. +id_ +, +ty_gm +(. +gm_ +). +c_r +()); + +233 + gshl +. +n +(); + +236 aut + gtx_gms + = +txrvi_ +. +queue +(); + +237 i( + gtx_gms +. +emy +()) { + +238 + gshl +. +tn +( +F +("Tx Queue ismpty")); + +240 + gshl +. +tn +( +F +("Tx Queu(%ldegm%s):"), +tx_gms +. +size +(),x_telegrams.size() == 1 ? "" : "s"); + +242 + gd +:: +rg + + +(10, '\0'); + +243 cڡut& + g + : +tx_gms +) { + +244 i(( + +. +gm_ +-> +ݔi += +Tegm +:: +Oti +:: +TX_RAW +) { + +245 + + = +ad_ash_rg +( +F +("RAW ")); + +246 } i(( + g +. + ggm_ +-> + gݔi += +Tegm +:: +Oti +:: +TX_READ +) { + +247 + + = +ad_ash_rg +( +F +("READ ")); + +248 } i(( + g +. + ggm_ +-> + gݔi += +Tegm +:: +Oti +:: +TX_WRITE +) { + +249 + + = +ad_ash_rg +( +F +("WRITE")); + +251 + gshl +. +tn +( +F +(" [%02d%c] %%s"), + +. +id_ +, ((. +y_ +? '*' : ' '), + +. +c_r +(), +ty_gm +(. +gm_ +).c_str()); + +255 + gshl +. +n +(); + +259  + gEMSESP +:: +show_devi_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +260 i( +emsdevis +. +emy +()) { + +261 +shl +. +tn +( +F +("No EMS devices detected. Try using 'scan devices' fromhems menu.")); + +262 + gshl +. +n +(); + +267 cڡut& + gdevi_ass + : +EMSFay +:: +devi_hdrs +()) { + +268 cڡut& +emsdevi + : +emsdevis +) { + +269 i(( +emsdevi +&& (emsdevi-> +devi_ty +(= +devi_ass +. +f +)) { + +270 +emsdevi +-> +show_vues +( +shl +); + +277  + gEMSESP +:: +show_ns_vues +( +uuid +:: +cse +:: +Shl + & +shl +) { + +278 i( +ns_devis +(). +emy +()) { + +282  + gvuer +[8] = {0}; + +283 + gshl +. +tn +( +F +("Dallasemperature sensors:")); + +284 cڡut& + gdevi + : +ns_devis +()) { + +285 +shl +. +tn +( +F +(" ID: %s, Temtu: %s°C"), +devi +. +to_rg +(). +c_r +(), +Hrs +:: +nd_vue +( +vuer +, devi. +mtu_c +, 1)); + +287 + gshl +. +n +(); + +290  + gEMSESP +:: +publish_devi_vues +( +ut8_t + +devi_ty +) { + +291 i( +Mq +:: +ced +()) { + +292 cڡut& +emsdevi + : +emsdevis +) { + +293 i( +emsdevi + && (emsdevi-> +devi_ty +() == device_type)) { + +294 +emsdevi +-> +publish_vues +(); + +300  + gEMSESP +:: +publish_h_vues +() { + +301 i( +Mq +:: +ced +()) { + +302 cڡut& +emsdevi + : +emsdevis +) { + +303 i( +emsdevi + && (emsdevi-> +devi_ty +(! +EMSdevi +:: +DeviTy +:: +BOILER +&& (emsdevi->devi_ty(!EMSdevi::DeviTy:: +THERMOSTAT +) + +304 && ( +emsdevi +-> +devi_ty +(! +EMSdevi +:: +DeviTy +:: +SOLAR +&& (emsdevi->devi_ty(!EMSdevi::DeviTy:: +MIXING +)) { + +305 +emsdevi +-> +publish_vues +(); + +311  + gEMSESP +:: +publish_ns_vues +(cڡ +bo + +f +) { + +312 i( +Mq +:: +ced +()) { + +313 i( +nss_ +. +upded_vues +(|| +f +) { + +314 +nss_ +. +publish_vues +(); + +320  + gEMSESP +:: +publish_ڣ +( +d +:: +shed_r + +gm +) { + +321 +SticJsDocumt +< +EMSESP_MAX_JSON_SIZE_SMALL +> +doc +; + +323  + gbufr +[100]; + +324 + gdoc +["c"] = +Hrs +:: +hext +( +bufr +, +gm +-> +c +); + +325 + gdoc +["de"] = +Hrs +:: +hext +( +bufr +, +gm +-> +de +); + +326 + gdoc +["ty"] = +Hrs +:: +hext +( +bufr +, +gm +-> +ty_id +); + +327 + gdoc +["offt"] = +Hrs +:: +hext +( +bufr +, +gm +-> +offt +); + +328 +ry +( +bufr +, +Hrs +:: +da_to_hex +( +gm +-> +mesge_da +,egm-> +mesge_ngth +). +c_r +()); + +329 + gdoc +["da"] = +bufr +; + +331 i( + ggm +-> + gmesge_ngth + <= 4) { + +332 +ut32_t + +vue + = 0; + +333  +ut8_t + + gi + = 0; i < + ggm +-> + gmesge_ngth +; i++) { + +334 + gvue + = ( +vue + << 8+ +gm +-> +mesge_da +[ +i +]; + +336 + gdoc +["vue"] = +vue +; + +339 + gMq +:: +publish +( +F +("ڣ"), +doc +); + +343 + gd +:: +rg + +EMSESP +:: +devi_torg +(cڡ +ut8_t + +devi_id +) { + +344 i(( +devi_id + & 0x7F= +rxrvi_ +. +ems_bus_id +()) { + +345  +ad_ash_rg +( +F +("Me")); + +346 } i( + gdevi_id + == 0x00) { + +347  +ad_ash_rg +( +F +("All")); + +349  + gbufr +[5]; + +350  + gHrs +:: +hext +( +bufr +, +devi_id +); + +356 + gd +:: +rg + +EMSESP +:: +ty_gm +( +d +:: +shed_r + +gm +) { + +357 +ut8_t + +c + = +gm +->src & 0x7F; + +358 +ut8_t + + gde + = +gm +-> +de + & 0x7F; + +359 +ut8_t + + gofft + = +gm +-> +offt +; + +362 + gd +:: +rg + +c_me +(20, '\0'); + +363 + gd +:: +rg + +de_me +(20, '\0'); + +364 + gd +:: +rg + +ty_me +(20, '\0'); + +365 cڡut& + gemsdevi + : +emsdevis +) { + +366 i( +emsdevi +) { + +368 i( +emsdevi +-> +is_devi_id +( +c +)) { + +369 +c_me + = +emsdevi +-> +devi_ty_me +(); + +370 } i( + gemsdevi +-> +is_devi_id +( +de +)) { + +371 + gde_me + = +emsdevi +-> +devi_ty_me +(); + +374 i( + gty_me +. +emy +()) { + +375 + gty_me + = +emsdevi +-> +gm_ty_me +( +gm +); + +381 i( + gc_me +. +emy +()) { + +382 + gc_me + = +devi_torg +( +c +); + +385 i( + gde_me +. +emy +()) { + +386 + gde_me + = +devi_torg +( +de +); + +390 i( + ggm +-> + gty_id + = +EMSdevi +:: +EMS_TYPE_VERSION +) { + +391 +ty_me + = +ad_ash_rg +( +F +("Version")); + +395 i( + gty_me +. +emy +()) { + +396 + gty_me + = +ad_ash_rg +( +F +("?")); + +399 + gd +:: +rg + +r +(200, '\0'); + +401 i( + gofft +) { + +402 +tf_P +(& +r +[0], + +403 +r +. +cy +() + 1, + +404 +PSTR +("%s(0x%02X) -> %s(0x%02X), %s(0x%02X), data: %s (offset %d)"), + +405 +c_me +. +c_r +(), + +406 +c +, + +407 +de_me +. +c_r +(), + +408 +de +, + +409 +ty_me +. +c_r +(), + +410 +gm +-> +ty_id +, + +411 +gm +-> +to_rg_mesge +(). +c_r +(), + +412 +offt +); + +414 +tf_P +(& +r +[0], + +415 +r +. +cy +() + 1, + +416 +PSTR +("%s(0x%02X) -> %s(0x%02X), %s(0x%02X), data: %s"), + +417 +c_me +. +c_r +(), + +418 +c +, + +419 +de_me +. +c_r +(), + +420 +de +, + +421 +ty_me +. +c_r +(), + +422 +gm +-> +ty_id +, + +423 +gm +-> +to_rg_mesge +(). +c_r +()); + +426  + gr +; + +436  + gEMSESP +:: +oss_UBADevis +( +d +:: +shed_r + +gm +) { + +438 i( +gm +-> +mesge_ngth + > 15) { + +443  +ut8_t + + gda_by + = 0; da_by < + ggm +-> + gmesge_ngth +; data_byte++) { + +444 +ut8_t + + gxt_by + = +gm +-> +mesge_da +[ +da_by +]; + +446 i( + gxt_by +) { + +447  +ut8_t + + gb + = 0; bit < 8; bit++) { + +448 i( + gxt_by + & 0x01) { + +449 +ut8_t + + gdevi_id + = (( +da_by + + 1* 8+ +b +; + +452 i(( + gdevi_id + ! +EMSbus +:: +ems_bus_id +()&& !( +EMSESP +:: +devi_exis +( +devi_id +))) { + +453 +LOG_DEBUG +( +F +("New EMS devi deed wh ID 0x%02X. Requeg vsi infmi."), +devi_id +); + +454 +nd_ad_que +( +EMSdevi +:: +EMS_TYPE_VERSION +, +devi_id +); + +457 + gxt_by + = +xt_by + >> 1; + +465  + gEMSESP +:: +oss_vsi +( +d +:: +shed_r + +gm +) { + +467 i( +gm +-> +mesge_ngth + < 3) { + +472 +ut8_t + + gofft + = 0; + +473 i( + ggm +-> + gmesge_da +[0] == 0x00) { + +475 i( +gm +-> +mesge_da +[3] != 0x00) { + +476 +offt + = 3; + +483 +ut8_t + + gdevi_id + = +gm +-> +c +; + +484 +ut8_t + + godu_id + = +gm +-> +mesge_da +[ +offt +]; + +487 + gd +:: +rg + +vsi +(5, '\0'); + +488 +tf_P +(& +vsi +[0], vsi. +cy +(+ 1, +PSTR +("%02d.%02d"), +gm +-> +mesge_da +[ +offt + + 1],elegram->message_data[offset + 2]); + +491 +ut8_t + + gbnd +; + +492 i( + ggm +-> + gmesge_ngth + >= 10) { + +493 +bnd + = +EMSdevi +:: +decode_bnd +( +gm +-> +mesge_da +[9]); + +495 + gbnd + = +EMSdevi +:: +Bnd +:: +NO_BRAND +; + +499 () +add_devi +( +devi_id +, +odu_id +, +vsi +, +bnd +); + +506 +bo + + gEMSESP +:: +oss_gm +( +d +:: +shed_r + +gm +) { + +508 i( +gm +-> +ty_id + = +ad_id_ +) { + +509 +LOG_NOTICE +( +ty_gm +( +gm +). +c_r +()); + +510 +publish_ڣ +( +gm +); + +511 + gad_id_ + = +WATCH_ID_NONE +; + +512 } i( +wch +(= +WATCH_ON +) { + +513 i(( +wch_id_ + = +WATCH_ID_NONE +|| ( +gm +-> +ty_id + == watch_id_) + +514 || (( +wch_id_ + < 0x80&& (( +gm +-> +c + =wch_id_|| (gm-> +de + == watch_id_)))) { + +515 +LOG_NOTICE +( +ty_gm +( +gm +). +c_r +()); + +520 i(( + ggm +-> + gde + !0x00&& ( +gm +-> +de + ! +rxrvi_ +. +ems_bus_id +())) { + +521  +l +; + +525 i( + ggm +-> + gty_id + = +EMSdevi +:: +EMS_TYPE_VERSION +) { + +526 +oss_vsi +( +gm +); + +527  + gue +; + +528 } i( + ggm +-> + gty_id + = +EMSdevi +:: +EMS_TYPE_UBADevis +) { + +529 +oss_UBADevis +( +gm +); + +530  + gue +; + +537 +bo + + gfound + = +l +; + +538 cڡut& + gemsdevi + : +emsdevis +) { + +539 i( +emsdevi +) { + +540 i( +emsdevi +-> +is_devi_id +( +gm +-> +c +)) { + +541 +found + = +emsdevi +-> +hd_gm +( +gm +); + +543 i( + gfound +) { + +544 i(( + gmq_ +. +g_publish_chge +( +emsdevi +-> +devi_ty +()&& + gemsdevi +-> +upded_vues +()|| + ggm +-> + gty_id + = +publish_id_ +) { + +545 i( +gm +-> +ty_id + = +publish_id_ +) { + +546 +publish_id_ + = 0; + +548 + gemsdevi +-> +publish_vues +(); + +556 i(! + gfound +) { + +557 +LOG_DEBUG +( +F +("N؋gmy hd˸found f ID 0x%02X (0x%02X)"), +gm +-> +ty_id +,egm-> +c +); + +560  + gfound +; + +565  + gEMSESP +:: +devi_fo_web +(cڡ +ut8_t + +unique_id +, +JsObje + & +ro +) { + +566 cڡut& + gemsdevi + : +emsdevis +) { + +567 i( +emsdevi +) { + +568 i( +emsdevi +-> +unique_id +() == unique_id) { + +569 +ro +["deviName"] = +emsdevi +-> +to_rg_sht +(); + +570 +JsAay + + gda + = +ro +. +NeedAay +("deviceData"); + +571 + gemsdevi +-> +devi_fo_web +( +da +); + +579 +bo + + gEMSESP +:: +devi_exis +(cڡ +ut8_t + +devi_id +) { + +580 cڡut& +emsdevi + : +emsdevis +) { + +581 i( +emsdevi +) { + +582 i( +emsdevi +-> +is_devi_id +( +devi_id +)) { + +583  +ue +; + +588  + gl +; + +592  + gEMSESP +:: +add_cڋxt_mus +() { + +593 cڡut& +emsdevi + : +emsdevis +) { + +594 i( +emsdevi +) { + +595 +emsdevi +-> +add_cڋxt_mu +(); + +601  + gEMSESP +:: +show_devis +( +uuid +:: +cse +:: +Shl + & +shl +) { + +602 i( +emsdevis +. +emy +()) { + +603 +shl +. +tn +( +F +("No EMS devices detected. Try using 'scan devices' fromhems menu.")); + +604 + gshl +. +n +(); + +608 + gshl +. +tn +( +F +("These EMS devicesre currentlyctive:")); + +609 + gshl +. +n +(); + +613 cڡut& + gdevi_ass + : +EMSFay +:: +devi_hdrs +()) { + +615 cڡut& +emsdevi + : +emsdevis +) { + +616 i(( +emsdevi +&& (emsdevi-> +devi_ty +(= +devi_ass +. +f +)) { + +617 +shl +. +tf +( +F +("%s: %s"), +emsdevi +-> +devi_ty_me +(). +c_r +(),msdevi-> +to_rg +().c_str()); + +618 i(( + gemsdevi +-> +devi_ty +(= +EMSdevi +:: +DeviTy +:: +THERMOSTAT +&& ( +emsdevi +-> +g_devi_id +(= +au_ma_thmo +())) { + +619 +shl +. +tf +( +F +(" ** master device **")); + +621 + gshl +. +n +(); + +622 + gemsdevi +-> +show_gm_hdrs +( +shl +); + +624 + gshl +. +n +(); + +632 +bo + + gEMSESP +:: +add_devi +(cڡ +ut8_t + +devi_id +, cڡ ut8_ +odu_id +, +d +:: +rg + & +vsi +, cڡ ut8_ +bnd +) { + +634 i( + gdevi_id + = +rxrvi_ +. +ems_bus_id +()) { + +635  +l +; + +640 cڡut& + gemsdevi + : +emsdevis +) { + +641 i( +emsdevi +) { + +642 i( +emsdevi +-> +is_devi_id +( +devi_id +)) { + +643 +LOG_DEBUG +( +F +("Updg daڇ̗dyxig devi ID 0x%02X"), +devi_id +); + +644 + gemsdevi +-> +odu_id +(product_id); + +645 + gemsdevi +-> +vsi +(version); + +647 i( + gemsdevi +-> +bnd +(= +EMSdevi +:: +Bnd +:: +NO_BRAND +) { + +648 +emsdevi +-> +bnd +(brand); + +651 cڡut& + gdevi + : +devi_libry_ +) { + +652 i( +devi +. +odu_id + ==roduct_id) { + +653 +emsdevi +-> +me +( +uuid +:: +ad_ash_rg +( +devi +.name)); + +654 + gemsdevi +-> +ags +( +devi +.flags); + +658  + gue +; + +665 +Devi_cd + * + gdevi_p + = +nuαr +; + +666 aut& + gdevi + : +devi_libry_ +) { + +667 i( +devi +. +odu_id + ==roduct_id) { + +670 i( +devi +. +devi_ty + = +DeviTy +:: +BOILER +) { + +671 i( +devi_id + = +EMSdevi +:: +EMS_DEVICE_ID_BOILER +) { + +672 +devi_p + = & +devi +; + +677 + gdevi_p + = & +devi +; + +684 i( + gdevi_p + = +nuαr +) { + +685 +LOG_NOTICE +( +F +("Uecognized EMS devi wh devi ID 0x%02X whrodu ID %d. Pa܈ GHub."), +devi_id +, +odu_id +); + +686  + gl +; + +688 + gd +:: +rg + +me + = +uuid +:: +ad_ash_rg +( +devi_p +->name); + +689 + gemsdevis +. +push_back +( +EMSFay +:: +add +( +devi_p +-> +devi_ty +, +devi_id +, devi_p-> +odu_id +, +vsi +, +me +, devi_p-> +ags +, +bnd +)); + +690 + gemsdevis +. +back +()-> +unique_id +(++ +unique_id_cou_ +); + +691 +LOG_DEBUG +( +F +("Addgew devi wh devi ID 0x%02X whrodu ID %dnd vsi %s"), +devi_id +, +odu_id +, +vsi +. +c_r +()); + +692 +tch_devi_vues +( +devi_id +); + +695  + gue +; + +699  + gEMSESP +:: +nd_ad_que +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +de +) { + +700 + gtxrvi_ +. +ad_que +( +ty_id +, +de +, 0); + +704  + gEMSESP +:: +nd_wre_que +(cڡ +ut16_t + +ty_id +, + +705 cڡ +ut8_t + +de +, + +706 cڡ +ut8_t + +offt +, + +707 +ut8_t + * +mesge_da +, + +708 cڡ +ut8_t + +mesge_ngth +, + +709 cڡ +ut16_t + +vide_tyid +) { + +710 + gtxrvi_ +. +add +( +Tegm +:: +Oti +:: +TX_WRITE +, +de +, +ty_id +, +offt +, +mesge_da +, +mesge_ngth +); + +712 + gtxrvi_ +. +t_po_nd_quy +( +vide_tyid +); + +715  + gEMSESP +:: +nd_wre_que +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +de +, cڡ ut8_ +offt +, cڡ ut8_ +vue +) { + +716 +nd_wre_que +( +ty_id +, +de +, +offt +, +vue +, 0); + +720  + gEMSESP +:: +nd_wre_que +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +de +, cڡ ut8_ +offt +, cڡ ut8_ +vue +, cڡ ut16_ +vide_tyid +) { + +721 +ut8_t + + gmesge_da +[1]; + +722 + gmesge_da +[0] = +vue +; + +723 + gEMSESP +:: +nd_wre_que +( +ty_id +, +de +, +offt +, +mesge_da +, 1, +vide_tyid +); + +729  + gEMSESP +:: +comg_gm +( +ut8_t + * +da +, cڡ ut8_ +ngth +) { + +730 #ifde +EMSESP_DEBUG + + +731  +ut32_t + + grx_time_ + = 0; + +734 +ut8_t + + gf_vue + = +da +[0]; + +735 i((( + gf_vue + & 0x7F= +txrvi_ +. +ems_bus_id +()&& ( +ngth + > 1)) { + +737 +Room +:: +check +(( +da +[1] ^ 0x80 ^ +rxrvi_ +. +ems_mask +()), data); + +738 #ifde +EMSESP_DEBUG + + +740 +LOG_TRACE +( +F +("[DEBUG] Echa %d ms: %s"), :: +mlis +(- +rx_time_ +, +Hrs +:: +da_to_hex +( +da +, +ngth +). +c_r +()); + +746 +ut8_t + + gtx_e + = +EMSbus +:: +tx_e +(); + +747 i( + gtx_e + ! +Tegm +:: +Oti +:: +NONE +) { + +748 +bo + +tx_sucssful + = +l +; + +749 + gEMSbus +:: +tx_e +( +Tegm +:: +Oti +:: +NONE +); + +752 i(( + gtx_e + = +Tegm +:: +Oti +:: +TX_WRITE +&& ( +ngth + == 1)) { + +753 i( +f_vue + = +TxSvi +:: +TX_WRITE_SUCCESS +) { + +754 +LOG_DEBUG +( +F +("Last Tx write successful")); + +755 + gtxrvi_ +. +emt_gm_wre_cou +(); + +756 + gtxrvi_ +. +nd_pl +(); + +757 + gpublish_id_ + = +txrvi_ +. +po_nd_quy +(); + +758 + gtxrvi_ +. +t_y_cou +(); + +759 + gtx_sucssful + = +ue +; + +760 } i( + gf_vue + = +TxSvi +:: +TX_WRITE_FAIL +) { + +761 +LOG_ERROR +( +F +("Last Tx writeejected by host")); + +762 + gtxrvi_ +. +nd_pl +(); + +763 + gtxrvi_ +. +t_y_cou +(); + +765 } i( + gtx_e + = +Tegm +:: +Oti +:: +TX_READ +) { + +767 +ut8_t + +c + = +da +[0]; + +768 +ut8_t + + gde + = +da +[1]; + +769 i( + gtxrvi_ +. +is_ϡ_tx +( +c +, +de +)) { + +770 +LOG_DEBUG +( +F +("Last Txead successful")); + +771 + gtxrvi_ +. +emt_gm_ad_cou +(); + +772 + gtxrvi_ +. +nd_pl +(); + +773 + gtxrvi_ +. +t_y_cou +(); + +774 + gtx_sucssful + = +ue +; + +779 i(! + gtx_sucssful +) { + +780 + gtxrvi_ +. +y_tx +( +tx_e +, +da +, +ngth +); + +786 i( + gngth + == 1) { + +787 +EMSbus +:: +ϡ_bus_aivy +( +uuid +:: +g_uime +()); + +789 #ifde +EMSESP_DEBUG + + +790  + gs +[4]; + +791 i( + gf_vue + & 0x80) { + +792 +LOG_TRACE +( +F +("[DEBUG]exP%a %d ms"), +Hrs +:: +hext +( +s +, +f_vue +), :: +mlis +(- +rx_time_ +); + +794 + grx_time_ + = :: +mlis +(); + +796 +LOG_TRACE +( +F +("[DEBUG] Pack %a %d ms"), +Hrs +:: +hext +( +s +, +f_vue +), :: +mlis +(- +rx_time_ +); + +801 i(( + gf_vue + ^ 0x80 ^ + grxrvi_ +. +ems_mask +()= +txrvi_ +. +ems_bus_id +()) { + +802 +txrvi_ +. +nd +(); + +805 + gRoom +:: +nd +( +f_vue + ^ 0x80 ^ +rxrvi_ +. +ems_mask +()); + +808 #ifde +EMSESP_DEBUG + + +809 +LOG_TRACE +( +F +("[DEBUG] Rly %d ms: %s"), :: +mlis +(- +rx_time_ +, +Hrs +:: +da_to_hex +( +da +, +ngth +). +c_r +()); + +811 + gRoom +:: +check +(( +da +[1] ^ 0x80 ^ +rxrvi_ +. +ems_mask +()), data); + +813 + grxrvi_ +. +add +( +da +, +ngth +); + +818  + gEMSESP +:: +nd_w_gm +(cڡ * +da +) { + +819 +txrvi_ +. +nd_w +( +da +); + +824  + gEMSESP +:: +t +() { + +826 i(! +syem_ +. +check_upgde +()) { + +827 #ifde +ESP32 + + +828 +SPIFFS +. +beg +( +ue +); + +829 #i +defed +( +ESP8266 +) + +830 + gLeFS +. +beg +(); + +833 + ge8266R +. +beg +(); + +834 + gemStgsSvi +. +beg +(); + +838 + gdevi_libry_ +. +rve +(80); + +839 + gdevi_libry_ + = { + +840  + ~"devi_libry.h +" + +843 + gcse_ +. +t +(); + +844 + gmq_ +. +t +(); + +845 + gsyem_ +. +t +(); + +846 + gshow_ +. +t +(); + +847 + gnss_ +. +t +(); + +848 + gwebSv +. +beg +(); + +850 + gemsdevis +. +rve +(5); + +852 +LOG_INFO +("EMS Deviibryded wh %decds", +devi_libry_ +. +size +()); + +854 #i +defed +( +EMSESP_STANDALONE +) + +855 + gmq_ +. +_c +(); + +860  + gEMSESP +:: +lo +() { + +861 +e8266R +. +lo +(); + +864 i( + gsyem_ +. +ud_us +()) { + +868 + gsyem_ +. +lo +(); + +869 + gshow_ +. +lo +(); + +870 + gnss_ +. +lo +(); + +871 + gmq_ +. +lo +(); + +872 + gcse_ +. +lo +(); + +873 + grxrvi_ +. +lo +(); + +876 i(( + guuid +:: +g_uime +(- +ϡ_tch_ + > +EMS_FETCH_FREQUENCY +)) { + +877 +ϡ_tch_ + = +uuid +:: +g_uime +(); + +878 +tch_devi_vues +(); + +881 +day +(1); + + @src/emsesp.h + +19 #ide +EMSESP_EMSESP_H + + +20  + #EMSESP_EMSESP_H + + + ) + +22  + ~ + +24  + ~ + +25  + ~ + +26  + ~ + +28  + ~ + +29  + ~ + +30  + ~ + +32 #ide +EMSESP_STANDALONE + + +33  + ~ + +36  + ~ + +37  + ~"EMSESPStusSvi.h +" + +38  + ~"EMSESPDevisSvi.h +" + +39  + ~"EMSESPStgsSvi.h +" + +41  + ~"emsdevi.h +" + +42  + ~"emsy.h +" + +43  + ~"gm.h +" + +44  + ~"mq.h +" + +45  + ~"syem.h +" + +46  + ~"nss.h +" + +47  + ~"cse.h +" + +48  + ~"show.h +" + +49  + ~"roomcڌ.h +" + +51  + #WATCH_ID_NONE + 0 + +52 + + ) + +53 +mea + + gem + { + +55 +ass + + gShow +; + +57 as + cEMSESP + { + +58 + gpublic +: + +59  +t +(); + +60  +lo +(); + +62  +publish_devi_vues +( +ut8_t + +devi_ty +); + +63  +publish_h_vues +(); + +64  +publish_ns_vues +(cڡ +bo + +f + = +l +); + +66 #ifde +EMSESP_STANDALONE + + +67  +run_ +( +uuid +:: +cse +:: +Shl + & +shl +, cڡ +d +:: +rg + & +commd +); + +68  +dummy_mq_commds +(cڡ * +mesge +); + +69  +rx_gm +(cڡ +d +:: +ve +< +ut8_t +> & +da +); + +70  +ut_gm +(cڡ +d +:: +ve +< +ut8_t +> & +rx_da +); + +73  +bo + +oss_gm +( +d +:: +shed_r + +gm +); + +74  + gd +:: +rg + +ty_gm +( +d +:: +shed_r + +gm +); + +76  +nd_ad_que +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +de +); + +77  +nd_wre_que +(cڡ +ut16_t + +ty_id +, + +78 cڡ +ut8_t + +de +, + +79 cڡ +ut8_t + +offt +, + +80 +ut8_t + * +mesge_da +, + +81 cڡ +ut8_t + +mesge_ngth +, + +82 cڡ +ut16_t + +vide_tyid +); + +83  +nd_wre_que +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +de +, cڡ ut8_ +offt +, cڡ ut8_ +vue +); + +84  +nd_wre_que +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +de +, cڡ ut8_ +offt +, cڡ ut8_ +vue +, cڡ ut16_ +vide_tyid +); + +86  +nd_w_gm +(cڡ * +da +); + +87  +bo + +devi_exis +(cڡ +ut8_t + +devi_id +); + +89  +devi_fo_web +(cڡ +ut8_t + +unique_id +, +JsObje + & +ro +); + +91  +ut8_t + +cou_devis +(cڡ ut8_ +devi_ty +); + +93  +ut8_t + +au_ma_thmo +(); + +94  +au_ma_thmo +(cڡ +ut8_t + +devi_id +); + +95  +ut8_t + +check_ma_devi +(cڡ ut8_ +devi_id +, cڡ +ut16_t + +ty_id +, cڡ +bo + +ad +); + +97  +show_devi_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +98  +show_ns_vues +( +uuid +:: +cse +:: +Shl + & +shl +); + +100  +show_devis +( +uuid +:: +cse +:: +Shl + & +shl +); + +101  +show_ems +( +uuid +:: +cse +:: +Shl + & +shl +); + +103  +add_cڋxt_mus +(); + +105  +_tx +(); + +107  +comg_gm +( +ut8_t + * +da +, cڡ ut8_ +ngth +); + +109 cڡ + gd +:: +ve +< +Sss +:: +Devi +> +ns_devis +() { + +110  +nss_ +. +devis +(); + +113 + gWch + : +ut8_t + { +WATCH_OFF +, + gWATCH_ON +, + gWATCH_RAW + }; + +114  +wch_id +( +ut16_t + +id +); + +115  +ut16_t + +wch_id +() { + +116  + gwch_id_ +; + +119  +wch +( +ut8_t + watch) { + +120 + gwch_ + = +wch +; + +121 i( + gwch + = +WATCH_OFF +) { + +122 +wch_id_ + = 0; + +125  +ut8_t + +wch +() { + +126  + gwch_ +; + +128  +t_ad_id +( +ut16_t + +id +) { + +129 + gad_id_ + = +id +; + +132 + gBus_us + : +ut8_t + { +BUS_STATUS_CONNECTED + = 0, + gBUS_STATUS_TX_ERRORS +, + gBUS_STATUS_OFFLINE + }; + +133  +ut8_t + +bus_us +(); + +135  +bo + +p_w_aive +() { + +136  + gp_w_aive_ +; + +139  +p_w_aive +(cڡ +bo +ap_water_active) { + +140 + gp_w_aive_ + = +p_w_aive +; + +143  +tch_devi_vues +(cڡ +ut8_t + +devi_id + = 0); + +145  +bo + +add_devi +(cڡ +ut8_t + +devi_id +, cڡ ut8_ +odu_id +, +d +:: +rg + & +vsi +, cڡ ut8_ +bnd +); + +146  +sn_devis +(); + +147  +r_l_devis +(); + +149  + gd +:: +ve +< +d +:: +unique_r +< +EMSdevi +>> +emsdevis +; + +152  +Mq + + gmq_ +; + +153  +Syem + + gsyem_ +; + +154  +Sss + + gnss_ +; + +155  +Cse + + gcse_ +; + +156  +Show + + gshow_ +; + +157  +RxSvi + + grxrvi_ +; + +158  +TxSvi + + gtxrvi_ +; + +161  +ESP8266R + + ge8266R +; + +162  +EMSESPStgsSvi + + gemStgsSvi +; + +163  +EMSESPStusSvi + + gemStusSvi +; + +164  +EMSESPDevisSvi + + gemDevisSvi +; + +166  + guuid +:: +log +:: +Logg + +logg +() { + +167  +logg_ +; + +170 + give +: + +171 +EMSESP +( +de +; + +173  + guuid +:: +log +:: +Logg + +logg_ +; + +175  + gd +:: +rg + +devi_torg +(cڡ +ut8_t + +devi_id +); + +177  +oss_UBADevis +( +d +:: +shed_r + +gm +); + +178  +oss_vsi +( +d +:: +shed_r + +gm +); + +179  +publish_ڣ +( +d +:: +shed_r + +gm +); + +181  +cڡex + +ut32_t + + gEMS_FETCH_FREQUENCY + = 60000; + +182  +ut32_t + + gϡ_tch_ +; + +184  + sDevi_cd + { + +185 +ut8_t + + godu_id +; + +186 + gEMSdevi +:: +DeviTy + +devi_ty +; + +187 cڡ +__FshSgHr + * + gme +; + +188 +ut8_t + + gags +; + +191  + gd +:: +ve +< +Devi_cd +> +devi_libry_ +; + +193  +ut8_t + + gau_ma_thmo_ +; + +194  +ut16_t + + gwch_id_ +; + +195  +ut8_t + + gwch_ +; + +196  +ut16_t + + gad_id_ +; + +197  +ut16_t + + gpublish_id_ +; + +198  +bo + + gp_w_aive_ +; + +200  +ut8_t + + gunique_id_cou_ +; + + @src/emsfactory.h + +19 #ide +EMSESP_EMSFACTORY_H_ + + +20  + #EMSESP_EMSFACTORY_H_ + + + ) + +22  + ~ + +23  + ~ + +25  + ~"emsdevi.h +" + +30  + #REGISTER_FACTORY +( +divedCss +, +devi_ty +) \ + +31 +mea + { \ + +32 aut +giry_ +## +divedCss + = +CeEMSFay +( +devi_ty +); \ + +33 } + + ) + +35 +mea + + gem + { + +37 +ass + + gEMSdevi +; + +39 as + cEMSFay + { + +40 + gpublic +: + +41 +vtu + ~ +EMSFay +() = ; + +45 aut +giFay +(cڡ +ut8_t + +devi_ty +, +EMSFay + * +y +) -> { + +46 aut& + gg + = +EMSFay +:: +gRegi +(); + +47 + gg +[ +devi_ty +] = +y +; + +50 +usg + + gFayM + = +d +:: +m +< +ut8_t +, + gEMSFay + *>; + +53 aut +devi_hdrs +(-> + gFayM + { + +54  + gEMSFay +:: +gRegi +(); + +58 aut +add +(cڡ +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, +d +:: +rg + & +vsi +, std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +59 -> + gd +:: +unique_r +< +EMSdevi +> { + +60  +d +:: +unique_r +< +EMSdevi +>( +EMSFay +:: +makeRaw +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +)); + +63 +vtu +ut +cڡru +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, +d +:: +rg + & +vsi +, std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) const + +64 -> + gEMSdevi + * = 0; + +66 + give +: + +68 aut +gRegi +(-> +FayM + & { + +69  +FayM + +assRegi +{}; + +70  + gassRegi +; + +75 aut +makeRaw +(cڡ +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, +d +:: +rg + & +vsi +, std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) + +76 -> + gEMSdevi + * { + +77 aut + g + = +EMSFay +:: +gRegi +(). +fd +( +devi_ty +); + +78 i( + g + ! +EMSFay +:: +gRegi +(). +d +()) { + +79  + +-> +cd +-> +cڡru +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +); + +81  + gnuαr +; + +85 + gme + < +tyme + + gDivedCss +> + +86 as + cCeEMSFay + : +EMSFay + { + +87 +public +: + +89 +CeEMSFay +(cڡ +ut8_t + +devi_ty +) { + +90 +EMSFay +:: +giFay +( +devi_ty +, +this +); + +93 aut +cڡru +( +ut8_t + +devi_ty +, ut8_ +devi_id +, ut8_ +odu_id +, +d +:: +rg + & +vsi +, std::rg & +me +, ut8_ +ags +, ut8_ +bnd +) const + +94 -> + gEMSdevi + * { + +95  +w + +DivedCss +( +devi_ty +, +devi_id +, +odu_id +, +vsi +, +me +, +ags +, +bnd +); + + @src/helpers.cpp + +19  + ~"hrs.h +" + +21 +mea + + gem + { + +24 * + gHrs +:: +hext +(* +su +, cڡ +ut8_t + +vue +) { + +25 * + gp + = +su +; + +26 +ut8_t + + gnib1 + = ( +vue + >> 4) & 0x0F; + +27 +ut8_t + + gnib2 + = ( +vue + >> 0) & 0x0F; + +28 * + gp +++ = +nib1 + < 0xA ? '0' +ib1 : 'A' +ib1 - 0xA; + +29 * + gp +++ = +nib2 + < 0xA ? '0' +ib2 : 'A' +ib2 - 0xA; + +30 * + gp + = '\0'; + +31  + gsu +; + +34 #ifde +EMSESP_STANDALONE + + +36 * + gHrs +:: +uor +(* +r +, +ut32_t + +vue +, cڡ +ut8_t + +ba +) { + +37  + gt + = 0, + gs + = 0; + +38  + gtmp + = +vue +; + +39  + gcou + = 0; + +41 i( + gNULL + = +r +) { + +42  +NULL +; + +45 i( + gtmp + == 0) { + +46 +cou +++; + +49  + gtmp + > 0) { + +50 + gtmp + = +tmp + / +ba +; + +51 + gcou +++; + +54 + gr + + +cou +; + +56 * + gr + = '\0'; + +59 + gs + = +vue + - +ba + * ( +t + = value / base); + +60 i( + gs + < 10) { + +61 *-- + gr + = '0' + +s +; + +62 } i(( + gs + >10&& ( +s + < 16)) { + +63 *-- +r + = 'A' - 10 + +s +; + +65 } ( + gvue + = +t +) != 0); + +67  ( + gr +); + +75 * + gHrs +:: + +(* +su +, +t16_t + +vue +, cڡ +ut8_t + +ba +) { + +77 i( + gba + < 2 || base > 36) { + +78 * + gsu + = '\0'; + +79  + gsu +; + +82 * + gr + = +su +, * + gr1 + =esu, + gtmp_ch +; + +83 +t16_t + + gtmp_vue +; + +86 + gtmp_vue + = +vue +; + +87 + gvue + / +ba +; + +88 * + gr +++ = "zyxwvutqpmlkjihgdcba9876543210123456789abcdefghijklmnqruvwxyz"[35 + ( +tmp_vue + - +vue + * +ba +)]; + +89 }  + gvue +); + +92 i( + gtmp_vue + < 0) { + +93 * + gr +++ = '-'; + +96 * + gr +-- = '\0'; + +97  + gr1 + < + gr +) { + +98 + gtmp_ch + = * +r +; + +99 * + gr +-- = * +r1 +; + +100 * + gr1 +++ = +tmp_ch +; + +103  + gsu +; + +107 * + gHrs +:: +sml +(* +su +, cڡ +ut8_t + +vue +) { + +108 + gsu +[0] = (( +vue + / 10) == 0) ? '0' : (value / 10) + '0'; + +109 + gsu +[1] = ( +vue + % 10) + '0'; + +110 + gsu +[2] = '\0'; + +111  + gsu +; + +115 * + gHrs +:: +sml +(* +su +, cڡ +ut16_t + +vue +) { + +116 + gsu +[0] = (( +vue + / 100) == 0) ? '0' : (value / 100) + '0'; + +117 + gsu +[1] = ((( +vue + % 100) / 10) == 0) ? '0' : ((value % 100) / 10) + '0'; + +118 + gsu +[2] = ( +vue + % 10) + '0'; + +119 + gsu +[3] = '\0'; + +120  + gsu +; + +125 * + gHrs +:: +nd_vue +(* +su +, +ut8_t + +vue +, ut8_ +fm +) { + +127 i( + gfm + = +EMS_VALUE_BOOL +) { + +128 i( +vue + = +EMS_VALUE_BOOL_OFF +) { + +129 +y +( +su +, "off", 5); + +130 } i( + gvue + = +EMS_VALUE_BOOL_NOTSET +) { + +131  +nuαr +; + +133 +y +( +su +, "on", 5); + +135  + gsu +; + +138 i(! +hasVue +( +vue +)) { + +139  + gnuαr +; + +142 i(! + gfm +) { + +143 + +( +su +, +vue +, 10); + +144  + gsu +; + +147  + gs2 +[5]; + +150 i( + gfm + == 2) { + +151 +y +( +su +, + +( +s2 +, +vue + >> 1, 10), 5); + +152 +t +( +su +, ".", 5); + +153 +t +( +su +, (( +vue + & 0x01) ? "5" : "0"), 5); + +154  + gsu +; + +157 +y +( +su +, + +( +s2 +, +vue + / +fm +, 10), 5); + +158 +t +( +su +, ".", 5); + +159 +t +( +su +, + +( +s2 +, +vue + % +fm +, 10), 5); + +161  + gsu +; + +166 * + gHrs +:: +nd_vue +(* +su +, cڡ  +vue +, cڡ +ut8_t + +fm +) { + +167  + gp +[] = {0, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000}; + +169 * + gt + = +su +; + +170  + gwhe + = () +vue +; + +171 + gHrs +:: + +( +su +, +whe +, 10); + +172 * + gsu + != '\0') { + +173 +su +++; + +175 * + gsu +++ = '.'; + +176  + gdecim + = +abs +(()(( +vue + - +whe +* +p +[ +fm +])); + +177 + +( +su +, +decim +, 10); + +179  + gt +; + +184 * + gHrs +:: +nd_vue +(* +su +, cڡ +t16_t + +vue +, cڡ +ut8_t + +fm +) { + +185 i(! +hasVue +( +vue +)) { + +186  + gnuαr +; + +190 i(! + gfm +) { + +191 + +( +su +, +vue +, 10); + +192  + gsu +; + +195 +t16_t + + gw_vue + = +vue +; + +196 + gsu +[0] = '\0'; + +199 i( + gw_vue + < 0) { + +200 +y +( +su +, "-", 10); + +201 + gw_vue + *= -1; + +203 +y +( +su +, "", 10); + +207  + gs2 +[10] = {0}; + +208 i( + gfm + == 2) { + +210 +t +( +su +, + +( +s2 +, +w_vue + / 2, 10), 10); + +211 +t +( +su +, ".", 10); + +212 +t +( +su +, (( +w_vue + & 0x01) ? "5" : "0"), 10); + +214 +t +( +su +, + +( +s2 +, +w_vue + / +fm +, 10), 10); + +215 +t +( +su +, ".", 10); + +216 +t +( +su +, + +( +s2 +, +w_vue + % +fm +, 10), 10); + +219  + gsu +; + +223 * + gHrs +:: +nd_vue +(* +su +, cڡ +ut16_t + +vue +, cڡ +ut8_t + +fm +) { + +224 i(! +hasVue +( +vue +)) { + +225  + gnuαr +; + +227  ( +nd_vue +( +su +, ( +t16_t +) +vue +, +fm +)); + +231 * + gHrs +:: +nd_vue +(* +su +, cڡ +t8_t + +vue +, cڡ +ut8_t + +fm +) { + +232 i(! +hasVue +( +vue +)) { + +233  + gnuαr +; + +235  ( +nd_vue +( +su +, ( +t16_t +) +vue +, +fm +)); + +239 * + gHrs +:: +nd_vue +(* +su +, cڡ +ut32_t + +vue +, cڡ +ut8_t + +fm +) { + +240 i(! +hasVue +( +vue +)) { + +241  + gnuαr +; + +244  + gs +[20]; + +245 + gsu +[0] = '\0'; + +247 #ide +EMSESP_STANDALONE + + +248 i(! + gfm +) { + +249 +t +( +su +, + +( +vue +, +s +, 10), 20); + +251 +t +( +su +, + +( +vue + / +fm +, +s +, 10), 20); + +252 +t +( +su +, ".", 20); + +253 +t +( +su +, + +( +vue + % +fm +, +s +, 10), 20); + +257 i(! + gfm +) { + +258 +t +( +su +, +uor +( +s +, +vue +, 10), 20); + +260 +t +( +su +, +uor +( +s +, +vue + / +fm +, 10), 20); + +261 +t +( +su +, ".", 20); + +262 +t +( +su +, +uor +( +s +, +vue + % +fm +, 10), 20); + +266  + gsu +; + +270 + gd +:: +rg + +Hrs +:: +da_to_hex +(cڡ +ut8_t + * +da +, cڡ ut8_ +ngth +) { + +271 i( + gngth + == 0) { + +272  +uuid +:: +ad_ash_rg +( +F +("")); + +275 + gd +:: +rg + +r +(160, '\0'); + +276  + gbufr +[4]; + +277 * + gp + = & +r +[0]; + +278  +ut8_t + + gi + = 0; i < + gngth +; i++) { + +279 + gHrs +:: +hext +( +bufr +, +da +[ +i +]); + +280 * + gp +++ = +bufr +[0]; + +281 * + gp +++ = +bufr +[1]; + +282 * + gp +++ = ' '; + +284 *-- + gp + = '\0'; + +286  + gr +; + +291 +ut32_t + + gHrs +:: +hextot +(cڡ * +hex +) { + +292 +ut32_t + +v + = 0; + +293 * + ghex +) { + +295  + gby + = * +hex +++; + +297 i( + gby + >'0' && +by + <= '9') + +298 +by + = byte - '0'; + +299 i( + gby + >'a' && +by + <= 'f') + +300 +by + = byte - 'a' + 10; + +301 i( + gby + >'A' && +by + <= 'F') + +302 +by + = byte - 'A' + 10; + +306 + gv + = ( +v + << 4| ( +by + & 0xF); + +308  + gv +; + +312 +ut16_t + + gHrs +:: +ot +(cڡ * +vue +) { + +313  +x + = 0; + +314 * + gvue + != '\0') { + +315 +x + = (x * 10+ (* +vue + - '0'); + +316 ++ + gvue +; + +318  + gx +; + +323  + gHrs +:: +round2 +( +vue +) { + +324  ()( +vue + * 100 + 0.5) / 100.0; + +327 +bo + + gHrs +:: +check_abs +(cڡ +t32_t + +i +) { + +328  (( +i + < 0 ? -i : i) != 0xFFFFFF); + +332 +bo + + gHrs +:: +hasVue +(cڡ +ut8_t + & +v +, cڡ ut8_ +isBo +) { + +333 i( + gisBo + = +EMS_VALUE_BOOL +) { + +334  ( +v + ! +EMS_VALUE_BOOL_NOTSET +); + +336  ( + gv + ! +EMS_VALUE_UINT_NOTSET +); + +339 +bo + + gHrs +:: +hasVue +(cڡ +t8_t + & +v +) { + +340  ( +v + ! +EMS_VALUE_INT_NOTSET +); + +344 +bo + + gHrs +:: +hasVue +(cڡ +t16_t + & +v +) { + +345  ( +abs +( +v +< +EMS_VALUE_USHORT_NOTSET +); + +348 +bo + + gHrs +:: +hasVue +(cڡ +ut16_t + & +v +) { + +349  ( +v + < +EMS_VALUE_USHORT_NOTSET +); + +352 +bo + + gHrs +:: +hasVue +(cڡ +ut32_t + & +v +) { + +353  ( +v + ! +EMS_VALUE_ULONG_NOTSET +); + +357 +bo + + gHrs +:: +vue2numb +(cڡ * +v +, & +vue +) { + +358 i(( + gv + = +nuαr +|| ( + +( +v +) == 0)) { + +359 +vue + = 0; + +360  + gl +; + +362 + gvue + = +oi +((*) +v +); + +363  + gue +; + +367 +bo + + gHrs +:: +vue2t +(cڡ * +v +, & +vue +) { + +368 i(( + gv + = +nuαr +|| ( + +( +v +) == 0)) { + +369 +vue + = 0; + +370  + gl +; + +372 + gvue + = +of +((*) +v +); + +373  + gue +; + +377 + gd +:: +rg + +Hrs +:: +toLow +( +d +::rg cڡ & +s +) { + +378 +d +:: +rg + +lc + = +s +; + +379 + gd +:: +sfm +( +lc +. +beg +(),c. +d +(),c.beg(), []( +c +{  +d +:: +tow +(c); }); + +380  + glc +; + +384 +bo + + gHrs +:: +vue2rg +(cڡ * +v +, +d +:: +rg + & +vue +) { + +385 i(( +v + = +nuαr +|| ( + +(v) == 0)) { + +386 +vue + = {}; + +387  + gl +; + +389 + gvue + = +toLow +( +v +); + +390  + gue +; + +395 +bo + + gHrs +:: +vue2bo +(cڡ * +v +, bo & +vue +) { + +396 i(( + gv + = +nuαr +|| ( + +( +v +) == 0)) { + +397  +l +; + +400 + gd +:: +rg + +bo_r + = +toLow +( +v +); + +402 i(( + gbo_r + =""|| ( +bo_r + ="1" + + (bool_str == "true")) { + +403 +vue + = +ue +; + +404  + gue +; + +407 i(( + gbo_r + ="off"|| ( +bo_r + ="0" + + (bool_str == "false")) { + +408 +vue + = +l +; + +409  + gue +; + +412  + gl +; + + @src/helpers.h + +19 #ide +EMSESP_HELPERS_H + + +20  + #EMSESP_HELPERS_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~"gm.h +" + +27 +mea + + gem + { + +29 as + cHrs + { + +30 + gpublic +: + +31 * +hext +(* +su +, cڡ +ut8_t + +vue +); + +32  + gd +:: +rg + +da_to_hex +(cڡ +ut8_t + * +da +, cڡ ut8_ +ngth +); + +34 * +nd_vue +(* +su +, cڡ  +vue +, cڡ +ut8_t + +fm +); + +35 * +nd_vue +(* +su +, cڡ +ut8_t + +vue +, cڡ ut8_ +fm +); + +36 * +nd_vue +(* +su +, cڡ +t8_t + +vue +, cڡ +ut8_t + +fm +); + +37 * +nd_vue +(* +su +, cڡ +ut16_t + +vue +, cڡ +ut8_t + +fm +); + +38 * +nd_vue +(* +su +, cڡ +ut32_t + +vue +, cڡ +ut8_t + +fm +); + +39 * +nd_vue +(* +su +, cڡ +t16_t + +vue +, cڡ +ut8_t + +fm +); + +41 * +sml +(* +su +, cڡ +ut8_t + +vue +); + +42 * +sml +(* +su +, cڡ +ut16_t + +vue +); + +43 * + +(* +su +, +t16_t + +vue +, cڡ +ut8_t + +ba + = 10); + +44  +ut32_t + +hextot +(cڡ * +hex +); + +45  +ut16_t + +ot +(cڡ * +vue +); + +46  +bo + +check_abs +(cڡ +t32_t + +i +); + +47  +round2 +( +vue +); + +49 #ifde +EMSESP_STANDALONE + + +50 * +uor +(* +r +, +ut32_t + +vue +, cڡ +ut8_t + +ba +); + +53  +bo + +hasVue +(cڡ +ut8_t + & +v +, cڡ ut8_ +isBo + = 0); + +54  +bo + +hasVue +(cڡ +t8_t + & +v +); + +55  +bo + +hasVue +(cڡ +t16_t + & +v +); + +56  +bo + +hasVue +(cڡ +ut16_t + & +v +); + +57  +bo + +hasVue +(cڡ +ut32_t + & +v +); + +59  + gd +:: +rg + +toLow +( +d +::rg cڡ & +s +); + +61  +bo + +vue2numb +(cڡ * +v +, & +vue +); + +62  +bo + +vue2t +(cڡ * +v +, & +vue +); + +63  +bo + +vue2bo +(cڡ * +v +, bo & +vue +); + +64  +bo + +vue2rg +(cڡ * +v +, +d +:: +rg + & +vue +); + + @src/locale_EN.h + +20 + $MAKE_PSTR_WORD +( +ex +) + +21 + $MAKE_PSTR_WORD +( +hp +) + +22 + $MAKE_PSTR_WORD +( +gs +) + +23 + $MAKE_PSTR_WORD +( +log +) + +24 + $MAKE_PSTR_WORD +( +logout +) + +25 + $MAKE_PSTR_WORD +( +abd +) + +26 + $MAKE_PSTR_WORD +( +dibd +) + +27 + $MAKE_PSTR_WORD +( +t +) + +28 + $MAKE_PSTR_WORD +( +show +) + +29 + $MAKE_PSTR_WORD +( + +) + +30 + $MAKE_PSTR_WORD +( +off +) + +31 + $MAKE_PSTR_WORD +( +su +) + +32 + $MAKE_PSTR_WORD +( +me +) + +33 + $MAKE_PSTR_WORD +(auto) + +34 + $MAKE_PSTR_WORD +( +sn +) + +35 + $MAKE_PSTR_WORD +( +sswd +) + +36 + $MAKE_PSTR_WORD +( +ad +) + +37 + $MAKE_PSTR_WORD +( +vsi +) + +38 + $MAKE_PSTR_WORD +( +vues +) + +39 + $MAKE_PSTR_WORD +( +syem +) + +40 + $MAKE_PSTR_WORD +( +tch +) + +41 + $MAKE_PSTR_WORD +( +t +) + +42 + $MAKE_PSTR_WORD +( +fm +) + +43 + $MAKE_PSTR_WORD +( +w +) + +44 + $MAKE_PSTR_WORD +( +wch +) + +45 + $MAKE_PSTR_WORD +( +nd +) + +46 + $MAKE_PSTR_WORD +( +gm +) + +47 + $MAKE_PSTR_WORD +( +bus_id +) + +48 + $MAKE_PSTR_WORD +( +tx_mode +) + +49 + $MAKE_PSTR_WORD +( +ems +) + +50 + $MAKE_PSTR_WORD +( +devis +) + +51 + $MAKE_PSTR_WORD +( +show +) + +52 + $MAKE_PSTR_WORD +( +mq +) + +53 + $MAKE_PSTR_WORD +( +em +) + +54 + $MAKE_PSTR_WORD +( +ced +) + +55 + $MAKE_PSTR_WORD +( +disced +) + +56 + $MAKE_PSTR_WORD +( +sswd +) + +57 + $MAKE_PSTR_WORD +( +home +) + +58 + $MAKE_PSTR_WORD +( +wifi +) + +59 + $MAKE_PSTR_WORD +( +c +) + +60 + $MAKE_PSTR_WORD +( +ssid +) + +61 + $MAKE_PSTR_WORD +( +hbt +) + +62 + $MAKE_PSTR_WORD +( +urs +) + +63 + $MAKE_PSTR_WORD +( +ma +) + +64 + $MAKE_PSTR_WORD +( + +) + +65 + $MAKE_PSTR_WORD +( +p +) + +68 + $MAKE_PSTR_WORD +( + +) + +71 + $MAKE_PSTR_WORD +( +bo +) + +72 + $MAKE_PSTR_WORD +( +thmo +) + +73 + $MAKE_PSTR_WORD +() + +74 + $MAKE_PSTR_WORD +( +sެ +) + +75 + $MAKE_PSTR_WORD +( +mixg +) + +76 + $MAKE_PSTR_WORD +( +geway +) + +77 + $MAKE_PSTR_WORD +( +cڌr +) + +78 + $MAKE_PSTR_WORD +( +c +) + +79 + $MAKE_PSTR_WORD +( +hump +) + +82 + $MAKE_PSTR_WORD +( +nss +) + +84 + `MAKE_PSTR +( +kwh +, "kWh") + +85 + `MAKE_PSTR +( +wh +, "Wh") + +86 + `MAKE_PSTR +( +hc_tiڮ +, "[heating circuit]") + +87 + `MAKE_PSTR +( +ma_thmo_fmt +, "Master Thermostat Device ID = %s") + +88 + `MAKE_PSTR +( +ho_fmt +, "Host = %s") + +89 + `MAKE_PSTR +( +home_fmt +, "WiFi Hostname = %s") + +90 + `MAKE_PSTR +( +mk_rv_fmt +, "Mark interval = %lus") + +91 + `MAKE_PSTR +( +wifi_ssid_fmt +, "WiFi SSID = %s") + +92 + `MAKE_PSTR +( +wifi_sswd_fmt +, "WiFi Password = %S") + +93 + `MAKE_PSTR +( +syem_hbt_fmt +, "MQTT Heartbeat is %s") + +94 + `MAKE_PSTR +( +cmd_tiڮ +, "[cmd]") + +95 + `MAKE_PSTR +( +dp_tiڮ +, "[deep]") + +96 + `MAKE_PSTR +( +tx_mode_fmt +, "Tx mode = %d") + +97 + `MAKE_PSTR +( +bus_id_fmt +, "Bus ID = %02X") + +98 + `MAKE_PSTR +( +wchid_tiڮ +, "[ID]") + +99 + `MAKE_PSTR +( +wch_fm_tiڮ +, "[off | on |aw]") + +100 + `MAKE_PSTR +( +vid_wch +, "Invalid watchype") + +101 + `MAKE_PSTR +( +da_mdy +, "<\"XX XX ...\">") + +102 + `MAKE_PSTR +( +r +, "%") + +103 + `MAKE_PSTR +( +deges +, "°C") + +104 + `MAKE_PSTR +( +aisks +, "********") + +105 + `MAKE_PSTR +( +n_mdy +, "") + +106 + `MAKE_PSTR +( +n_tiڮ +, "[n]") + +107 + `MAKE_PSTR +( +gpio_mdy +, "") + +108 + `MAKE_PSTR +( +da_tiڮ +, "[data]") + +109 + `MAKE_PSTR +( +tyid_mdy +, "") + +110 + `MAKE_PSTR +( +deviid_mdy +, "") + +111 + `MAKE_PSTR +( +vid_log_v +, "Invalidogevel") + +112 + `MAKE_PSTR +( +log_v_fmt +, "Logevel = %s") + +113 + `MAKE_PSTR +( +log_v_tiڮ +, "[level]") + +114 + `MAKE_PSTR +( +me_mdy +, "") + +115 + `MAKE_PSTR +( +me_tiڮ +, "[name]") + +116 + `MAKE_PSTR +( +w_sswd_om1 +, "Enterewassword: ") + +117 + `MAKE_PSTR +( +w_sswd_om2 +, "Retypeewassword: ") + +118 + `MAKE_PSTR +( +sswd_om +, "Password: ") + +119 + `MAKE_PSTR +( +unt +, "") + + @src/main.cpp + +19  + ~"em.h +" + +21  + $tup +() { + +22 +em +:: +EMSESP +:: + `t +(); + +23 + } +} + +25  + $lo +() { + +26 +em +:: +EMSESP +:: + `lo +(); + +27 + } +} + + @src/mqtt.cpp + +19  + ~"mq.h +" + +20  + ~"em.h +" + +21  + ~"vsi.h +" + +23 +mea + + gem + { + +25 +AsyncMqCl + * + gMq +:: +mqCl_ +; + +28 + gd +:: +rg + +Mq +:: +home_ +; + +29 +ut8_t + + gMq +:: +mq_qos_ +; + +30 +ut8_t + + gMq +:: +bus_id_ +; + +31 +ut32_t + + gMq +:: +publish_time_bo_ +; + +32 +ut32_t + + gMq +:: +publish_time_thmo_ +; + +33 +ut32_t + + gMq +:: +publish_time_sެ_ +; + +34 +ut32_t + + gMq +:: +publish_time_mixg_ +; + +35 +ut32_t + + gMq +:: +publish_time_h_ +; + +36 +ut32_t + + gMq +:: +publish_time_ns_ +; + +38 + gd +:: +ve +< +Mq +:: +MQTTSubFuni +> Mq:: +mq_subfunis_ +; + +39 + gd +:: +ve +< +Mq +:: +MQTTCmdFuni +> Mq:: +mq_cmdfunis_ +; + +41 +ut16_t + + gMq +:: +mq_publish_s_ + = 0; + +42 +size_t + + gMq +:: +maximum_mq_mesges_ + = +Mq +:: +MAX_MQTT_MESSAGES +; + +43 +ut16_t + + gMq +:: +mq_mesge_id_ + = 0; + +44 + gd +:: +li +< +Mq +:: +QueuedMqMesge +> Mq:: +mq_mesges_ +; + +45  + gwl_tic_ +[ +Mq +:: +MQTT_TOPIC_MAX_SIZE +]; + +47 + guuid +:: +log +:: +Logg + +Mq +:: +logg_ +{ +F_ +( +mq +), uuid::log:: +Facy +:: +DAEMON +}; + +51  + gMq +:: +subsibe +(cڡ +ut8_t + +devi_ty +, cڡ +d +:: +rg + & +tic +, +mq_subfuni_p + +cb +) { + +53 i(! + gmq_subfunis_ +. +emy +()) { + +54 cڡut& + gmq_subfuni + : +mq_subfunis_ +) { + +55 i(( +mq_subfuni +. +devi_ty_ + = +devi_ty +&& ( +rcmp +(mq_subfuni. +tic_ +. +c_r +(), +tic +.c_str()) == 0)) { + +62 aut + gmesge + = +queue_subsibe_mesge +( +tic +); + +66 + gmq_subfunis_ +. +ema_back +( +devi_ty +, +d +:: +move +( +tic +), std::move( +mesge +->tic), std::move( +cb +)); + +70  + gMq +:: +add_commd +(cڡ +ut8_t + +devi_ty +, cڡ ut8_ +devi_id +, cڡ +__FshSgHr + * +cmd +, +mq_cmdfuni_p + +cb +) { + +72 + gd +:: +rg + +cmd_tic + = +EMSdevi +:: +devi_ty_tic_me +( +devi_ty +); + +74 +bo + + gexis + = +l +; + +75 i(! + gmq_subfunis_ +. +emy +()) { + +76 cڡut& + gmq_subfuni + : +mq_subfunis_ +) { + +77 i(( +mq_subfuni +. +devi_ty_ + = +devi_ty +&& ( +rcmp +(mq_subfuni. +tic_ +. +c_r +(), +cmd_tic +.c_str()) == 0)) { + +78 +exis + = +ue +; + +82 i(! + gexis +) { + +83 + gMq +:: +subsibe +( +devi_ty +, +cmd_tic +, +nuαr +); + +86 +LOG_DEBUG +( +F +("Regig MQTT cmd %whi%s"), +uuid +:: +ad_ash_rg +( +cmd +). +c_r +(), +EMSdevi +:: +devi_ty_tic_me +( +devi_ty +).c_str()); + +88 + gmq_cmdfunis_ +. +ema_back +( +devi_ty +, +devi_id +, +cmd +, +cb +); + +92  + gMq +:: +subsibe +(cڡ +d +:: +rg + & +tic +, +mq_subfuni_p + +cb +) { + +93 +subsibe +(0, +tic +, +cb +); + +97  + gMq +:: +subsibe +() { + +98 i( +mq_subfunis_ +. +emy +()) { + +102 cڡut& + gmq_subfuni + : +mq_subfunis_ +) { + +103 +queue_subsibe_mesge +( +mq_subfuni +. +tic_ +); + +110  + gMq +:: +lo +() { + +112 i(! +ced +()) { + +116 +ut32_t + + gcutMlis + = +uuid +:: +g_uime +(); + +119 i( + gpublish_time_bo_ + && ( + gcutMlis + - + gϡ_publish_bo_ + >ublish_time_boiler_)) { + +120 + gϡ_publish_bo_ + = +cutMlis +; + +121 + gEMSESP +:: +publish_devi_vues +( +EMSdevi +:: +DeviTy +:: +BOILER +); + +123 i( + gpublish_time_thmo_ + && ( + gcutMlis + - + gϡ_publish_thmo_ + >ublish_time_thermostat_)) { + +124 + gϡ_publish_thmo_ + = +cutMlis +; + +125 + gEMSESP +:: +publish_devi_vues +( +EMSdevi +:: +DeviTy +:: +THERMOSTAT +); + +127 i( + gpublish_time_sެ_ + && ( + gcutMlis + - + gϡ_publish_sެ_ + >ublish_time_solar_)) { + +128 + gϡ_publish_sެ_ + = +cutMlis +; + +129 + gEMSESP +:: +publish_devi_vues +( +EMSdevi +:: +DeviTy +:: +SOLAR +); + +131 i( + gpublish_time_mixg_ + && ( + gcutMlis + - + gϡ_publish_mixg_ + >ublish_time_mixing_)) { + +132 + gϡ_publish_mixg_ + = +cutMlis +; + +133 + gEMSESP +:: +publish_devi_vues +( +EMSdevi +:: +DeviTy +:: +MIXING +); + +135 i( + gpublish_time_h_ + && ( + gcutMlis + - + gϡ_publish_h_ + >ublish_time_other_)) { + +136 + gϡ_publish_h_ + = +cutMlis +; + +137 + gEMSESP +:: +publish_h_vues +(); + +139 i( + gcutMlis + - + gϡ_publish_ns_ + > + gpublish_time_ns_ +) { + +140 + gϡ_publish_ns_ + = +cutMlis +; + +141 + gEMSESP +:: +publish_ns_vues +( +publish_time_ns_ + != 0); + +144 i(( + gut32_t +)( + gcutMlis + - + gϡ_mq_pl_ +> + gMQTT_PUBLISH_WAIT +) { + +145 + gϡ_mq_pl_ + = +cutMlis +; + +146 +oss_queue +(); + +151  + gMq +:: +show_mq +( +uuid +:: +cse +:: +Shl + & +shl +) { + +152 +shl +. +tn +( +F +("MQTT i%s"), +ced +(? +uuid +:: +ad_ash_rg +( +F_ +(ced)). +c_r +(: uuid::ad_ash_rg(F_( +disced +)).c_str()); + +154 +bo + + gsyem_hbt +; + +155 + gEMSESP +:: +e8266R +. +gMqStgsSvi +()-> +ad +([&]( +MqStgs + & +gs +{ +syem_hbt + = settings.system_heartbeat; }); + +156 + gshl +. +tn +( +F_ +( +syem_hbt_fmt +), +syem_hbt + ? F_( +abd +: F_( +dibd +)); + +158 + gshl +. +tn +( +F +("MQTTublish fas: %lu"), +mq_publish_s_ +); + +159 + gshl +. +n +(); + +162 + gshl +. +tn +( +F +("MQTT subscriptions:")); + +163 cڡut& + gmq_subfuni + : +mq_subfunis_ +) { + +165 i(( +cmp +( +mq_subfuni +. +fu_tic_ +. +c_r +(), "homeassistant/", 13) == 0)) { + +166 +shl +. +tf +( +F +("ic: %s"), +mq_subfuni +. +fu_tic_ +. +c_r +()); + +169 + gshl +. +tf +( +F +("ic: %s, [cmd]:"), +mq_subfuni +. +fu_tic_ +. +c_r +()); + +170 cڡut& + gmq_cmdfuni + : +mq_cmdfunis_ +) { + +171 i( +EMSdevi +:: +devi_ty_tic_me +( +mq_cmdfuni +. +devi_ty_ += +mq_subfuni +. +tic_ +) { + +172 +shl +. +tf +( +F +(" %s"), +uuid +:: +ad_ash_rg +( +mq_cmdfuni +. +cmd_ +). +c_r +()); + +176 + gshl +. +n +(); + +178 + gshl +. +n +(); + +181 i( + gmq_mesges_ +. +emy +()) { + +182 + gshl +. +tn +( +F +("MQTT queue ismpty")); + +183 + gshl +. +n +(); + +187 + gshl +. +tn +( +F +("MQTT queu(%d mesges):"), +mq_mesges_ +. +size +()); + +189 cڡut& + gmesge + : +mq_mesges_ +) { + +190 aut +cڋ + = +mesge +. +cڋ_ +; + +191 i( + gcڋ +-> + gݔi + = +Oti +:: +PUBLISH +) { + +193 i( +mesge +. +y_cou_ + == 0) { + +194 i( +mesge +. +ck_id_ + == 0) { + +195 +shl +. +tn +( +F +(" [%02d] (Pubtic=%yld=%s"), +mesge +. +id_ +, +cڋ +-> +tic +. +c_r +(), cڋ-> +yld +.c_str()); + +197 + gshl +. +tn +( +F +(" [%02d] (Pub)opic=%sayload=%s (pid %d)"), + +198 +mesge +. +id_ +, + +199 +cڋ +-> +tic +. +c_r +(), + +200 +cڋ +-> +yld +. +c_r +(), + +201 +mesge +. +ck_id_ +); + +204 + gshl +. +tn +( +F +(" [%02d] (Pub)opic=%sayload=%s (pid %d,etry #%d)"), + +205 +mesge +. +id_ +, + +206 +cڋ +-> +tic +. +c_r +(), + +207 +cڋ +-> +yld +. +c_r +(), + +208 +mesge +. +ck_id_ +, + +209 +mesge +. +y_cou_ +); + +213 + gshl +. +tn +( +F +(" [%02d] (Subtic=%s"), +mesge +. +id_ +, +cڋ +-> +tic +. +c_r +()); + +216 + gshl +. +n +(); + +219 #i +defed +( +EMSESP_DEBUG +) + +221  + gMq +:: +comg +(cڡ * +tic +, cڡ * +yld +) { + +222 +_mesge +( +tic +, +yld +, + +(payload)); + +228 +bo + + gMq +:: +_commd +(cڡ +ut8_t + +devi_ty +, cڡ * +cmd +, cڡ * +vue +, cڡ +t8_t + +id +) { + +229 #ifde +EMSESP_DEBUG + + +230 i( + gid + == -1) { + +231 +LOG_DEBUG +( +F +("[DEBUG] Clg commd %s, vu%s, id ideu"), +cmd +, +vue +); + +233 +LOG_DEBUG +( +F +("[DEBUG] Clg commd %s, vu%s, id i%d"), +cmd +, +vue +, +id +); + +237 i(! + gmq_cmdfunis_ +. +emy +()) { + +238 cڡut& + gcf + : +mq_cmdfunis_ +) { + +239 i( +cf +. +devi_ty_ + = +devi_ty +) { + +240 cڡ * +cf_cmd + = +uuid +:: +ad_ash_rg +( +cf +. +cmd_ +). +c_r +(); + +241 i( +rcmp +( +cf_cmd +, +cmd +) == 0) { + +242 ( +cf +. +mq_cmdfuni_ +)( +vue +, +id +); + +243  + gue +; + +248  + gl +; + +252  + gMq +:: +_mesge +(cڡ * +tic +, cڡ * +yld +, +size_t + +n +) { + +253 i( + gn + == 0) { + +258  + gmesge +[ +n + + 2]; + +259 +y +( +mesge +, +yld +, +n + + 1); + +261 #ifde +EMSESP_DEBUG + + +262 +LOG_DEBUG +( +F +("[DEBUG] Reived %=> %֒gth %d)"), +tic +, +mesge +, +n +); + +266 cڡut& + gmf + : +mq_subfunis_ +) { + +267 i( +rcmp +( +tic +, +mf +. +fu_tic_ +. +c_r +()) == 0) { + +268 i( +mf +. +mq_subfuni_ +) { + +269 ( +mf +. +mq_subfuni_ +)( +mesge +); + +273 + gSticJsDocumt +< + gEMSESP_MAX_JSON_SIZE_SMALL +> + gdoc +; + +274 +DerliziE + + gr + = +derlizeJs +( +doc +, +mesge +); + +275 i( + gr +) { + +276 +LOG_ERROR +( +F +("MQTT:ayld %s, %s"), +mesge +, +r +. +c_r +()); + +280 cڡ * + gcommd + = +doc +["cmd"]; + +281 i( + gcommd + = +nuαr +) { + +282 +LOG_ERROR +( +F +("MQTT: invidayld cmd fm. mesge=%s"), +mesge +); + +287 +t8_t + + gn + = -1; + +288 i( + gdoc +. +cڏsKey +("hc")) { + +289 + gn + = +doc +["hc"]; + +290 } i( + gdoc +. +cڏsKey +("id")) { + +291 + gn + = +doc +["id"]; + +294 +bo + + gcmd_known + = +l +; + +295 +JsV + + gda + = +doc +["data"]; + +296 i( + gda +. + gis +<*>()) { + +297 + gcmd_known + = +_commd +( +mf +. +devi_ty_ +, +commd +, +da +. +as +<*>(), +n +); + +298 } i( + gda +. + gis +<>()) { + +299  + gda_r +[10]; + +300 + gcmd_known + = +_commd +( +mf +. +devi_ty_ +, +commd +, +Hrs +:: + +( +da_r +, ( +t16_t +) +da +. +as +<>()), +n +); + +301 } i( + gda +. + gis +<>()) { + +302  + gda_r +[10]; + +303 + gcmd_known + = +_commd +( +mf +. +devi_ty_ +, +commd +, +Hrs +:: +nd_vue +( +da_r +, () +da +. +as +<>(), 2), +n +); + +306 i(! + gcmd_known +) { + +307 +LOG_ERROR +( +F +("MQTT:mchg cmd ovid da: %s"), +mesge +); + +315 +LOG_ERROR +( +F +("NMQTT hd˸found f܁i%dayld %s"), +tic +, +mesge +); + +319  + gMq +:: +show_tic_hdrs +( +uuid +:: +cse +:: +Shl + & +shl +, cڡ +ut8_t + +devi_ty +) { + +320 i( + gd +:: +cou_if +( +mq_subfunis_ +. +cbeg +(), + +321 +mq_subfunis_ +. +nd +(), + +322 [=]( +MQTTSubFuni + cڡ & +mq_subfuni +{  +devi_ty + =mq_subfuni. +devi_ty_ +; }) + +327 + gshl +. +t +( +F +(" Subscribed MQTTopics: ")); + +328 cڡut& + gmq_subfuni + : +mq_subfunis_ +) { + +329 i( +mq_subfuni +. +devi_ty_ + = +devi_ty +) { + +330 +shl +. +tf +( +F +("%"), +mq_subfuni +. +tic_ +. +c_r +()); + +333 + gshl +. +n +(); + +340  + gMq +:: +_publish +( +ut16_t + +ckId +) { + +342 i( +mq_mesges_ +. +emy +()) { + +346 aut + gmq_mesge + = +mq_mesges_ +. +t +(); + +349 i( + gmq_mesge +. + gck_id_ + == 0) { + +353 i( + gmq_mesge +. + gck_id_ + ! +ckId +) { + +354 +LOG_DEBUG +( +F +("Mismch,xg PID %d, g %d"), +mq_mesge +. +ck_id_ +, +ckId +); + +355 + gmq_publish_s_ +++; + +358 + gmq_mesges_ +. +p_t +(); + +361  + gMq +:: +t +() { + +362 +mqCl_ + = +EMSESP +:: +e8266R +. +gMqCl +(); + +365 + gEMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +ad +([&]( +WiFiStgs + & +wifiStgs +{ +home_ + = wifiStgs. +home +. +c_r +(); }); + +368 + gEMSESP +:: +e8266R +. +gMqStgsSvi +()-> +ad +([&]( +MqStgs + & +mqStgs +) { + +369 +publish_time_bo_ + = +mqStgs +. +publish_time_bo + * 1000; + +370 +publish_time_thmo_ + = +mqStgs +. +publish_time_thmo + * 1000; + +371 +publish_time_sެ_ + = +mqStgs +. +publish_time_sެ + * 1000; + +372 +publish_time_mixg_ + = +mqStgs +. +publish_time_mixg + * 1000; + +373 +publish_time_h_ + = +mqStgs +. +publish_time_h + * 1000; + +374 +publish_time_ns_ + = +mqStgs +. +publish_time_ns + * 1000; + +375 +mq_qos_ + = +mqStgs +. +mq_qos +; + +378 + gEMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +{ +bus_id_ + = stgs. +ems_bus_id +; }); + +380 + gmqCl_ +-> +C +([ +this +]( +bo + +ssiP +{ +_c +(); }); + +382 + gmqCl_ +-> +Disc +([ +this +]( +AsyncMqClDiscRs + +as +) { + +383 i( +as + = +AsyncMqClDiscRs +:: +TCP_DISCONNECTED +) { + +384 +LOG_INFO +( +F +("MQTT disconnected: TCP")); + +386 i( +as + = +AsyncMqClDiscRs +:: +MQTT_IDENTIFIER_REJECTED +) { + +387 +LOG_INFO +( +F +("MQTT disconnected: Identifier Rejected")); + +389 i( +as + = +AsyncMqClDiscRs +:: +MQTT_SERVER_UNAVAILABLE +) { + +390 +LOG_INFO +( +F +("MQTT disconnected: Server unavailable")); + +392 i( +as + = +AsyncMqClDiscRs +:: +MQTT_MALFORMED_CREDENTIALS +) { + +393 +LOG_INFO +( +F +("MQTT disconnected: Malformed credentials")); + +395 i( +as + = +AsyncMqClDiscRs +:: +MQTT_NOT_AUTHORIZED +) { + +396 +LOG_INFO +( +F +("MQTT disconnected: Notuthorized")); + +401  + gwl_tic +[ +MQTT_TOPIC_MAX_SIZE +]; + +402 +y +( +wl_tic +, +home_ +. +c_r +(), +MQTT_TOPIC_MAX_SIZE +); + +403 +t +( +wl_tic +, "/", +MQTT_TOPIC_MAX_SIZE +); + +404 +t +( +wl_tic +, "us", +MQTT_TOPIC_MAX_SIZE +); + +405 + gmqCl_ +-> +tWl +( +wl_tic +, 1, +ue +, "offline"); + +407 + gmqCl_ +-> +Mesge +([ +this +](* +tic +, * +yld +, +AsyncMqClMesgePrݔts + +ݔts +, +size_t + +n +, size_ +dex +, size_ +tٮ +) { + +409 +_mesge +( +tic +, +yld +, +n +); + +412 + gmqCl_ +-> +Publish +([ +this +]( +ut16_t + +ckId +) { + +414 +_publish +( +ckId +); + +418 + gmq_cmdfunis_ +. +rve +(40); + +419 + gmq_subfunis_ +. +rve +(10); + +422  + gMq +:: +t_publish_time_bo +( +ut16_t + +publish_time +) { + +423 +publish_time_bo_ + = +publish_time + * 1000; + +426  + gMq +:: +t_publish_time_thmo +( +ut16_t + +publish_time +) { + +427 +publish_time_thmo_ + = +publish_time + * 1000; + +430  + gMq +:: +t_publish_time_sެ +( +ut16_t + +publish_time +) { + +431 +publish_time_sެ_ + = +publish_time + * 1000; + +434  + gMq +:: +t_publish_time_mixg +( +ut16_t + +publish_time +) { + +435 +publish_time_mixg_ + = +publish_time + * 1000; + +438  + gMq +:: +t_publish_time_h +( +ut16_t + +publish_time +) { + +439 +publish_time_h_ + = +publish_time + * 1000; + +442  + gMq +:: +t_publish_time_ns +( +ut16_t + +publish_time +) { + +443 +publish_time_ns_ + = +publish_time + * 1000; + +446 +bo + + gMq +:: +g_publish_chge +( +ut8_t + +devi_ty +) { + +447 i( +devi_ty + = +EMSdevi +:: +DeviTy +:: +BOILER +) { + +448 i(! +publish_time_bo_ +) { + +449  +ue +; + +451 } i( + gdevi_ty + = +EMSdevi +:: +DeviTy +:: +THERMOSTAT +) { + +452 i(! +publish_time_thmo_ +) { + +453  +ue +; + +455 } i( + gdevi_ty + = +EMSdevi +:: +DeviTy +:: +SOLAR +) { + +456 i(! +publish_time_sެ_ +) { + +457  +ue +; + +459 } i( + gdevi_ty + = +EMSdevi +:: +DeviTy +:: +MIXING +) { + +460 i(! +publish_time_mixg_ +) { + +461  +ue +; + +463 } i(! + gpublish_time_h_ +) { + +464  + gue +; + +466  + gl +; + +469  + gMq +:: +t_qos +( +ut8_t + +mq_qos +) { + +470 +mq_qos_ + = +mq_qos +; + +474  + gMq +:: +_c +() { + +476 +SticJsDocumt +<90> +doc +; + +477 + gdoc +["event"] = "start"; + +478 + gdoc +["vsi"] = +EMSESP_APP_VERSION +; + +479 #ide +EMSESP_STANDALONE + + +480 + gdoc +[""] = +WiFi +. +lolIP +(). +toSg +(); + +482 +publish +( +F +("fo"), +doc +, +l +); + +484 +publish +( +F +("us"), "le", +ue +); + +486 +t_publish_s +(); + +488 +subsibe +(); + +491 +add_commd +( +EMSdevi +:: +DeviTy +:: +SERVICEKEY +, +bus_id_ +, +F +("p"), +Syem +:: +mq_commd_p +); + +492 +add_commd +( +EMSdevi +:: +DeviTy +:: +SERVICEKEY +, +bus_id_ +, +F +("nd"), +Syem +:: +mq_commd_nd +); + +494 +LOG_INFO +( +F +("MQTT connected")); + +500 + gd +:: +shed_r + +Mq +:: +queue_mesge +(cڡ +ut8_t + +ݔi +, cڡ +d +:: +rg + & +tic +, cڡ std::rg & +yld +, cڡ +bo + + +) { + +501 i( + gtic +. +emy +()) { + +502  + gnuαr +; + +506 + gd +:: +shed_r +< +MqMesge +> +mesge +; + +507 i(( +cmp +( +tic +. +c_r +(), "homeassistant/", 13) == 0)) { + +509 +mesge + = +d +:: +make_shed +< +MqMesge +>( +ݔi +, + gtic +, + gd +:: +move +( +yld +), + g +); + +512 + gd +:: +rg + +fu_tic +(50, '\0'); + +513 +tf_P +(& +fu_tic +[0], fu_tic. +cy +(+ 1, +PSTR +("%s/%s"), +Mq +:: +home_ +. +c_r +(), +tic +.c_str()); + +514 + gmesge + = +d +:: +make_shed +< +MqMesge +>( +ݔi +, + gfu_tic +, + gd +:: +move +( +yld +), + g +); + +518 i( + gmq_mesges_ +. +size +(> +maximum_mq_mesges_ +) { + +519 +mq_mesges_ +. +p_t +(); + +521 + gmq_mesges_ +. +ema_back +( +mq_mesge_id_ +++, +d +:: +move +( +mesge +)); + +523  + gmq_mesges_ +. +back +(). + gcڋ_ +; + +527 + gd +:: +shed_r + +Mq +:: +queue_publish_mesge +(cڡ +d +:: +rg + & +tic +, cڡ std::rg & +yld +, cڡ +bo + + +) { + +528  +queue_mesge +( +Oti +:: +PUBLISH +, +tic +, +yld +, + +); + +532 + gd +:: +shed_r + +Mq +:: +queue_subsibe_mesge +(cڡ +d +:: +rg + & +tic +) { + +533  +queue_mesge +( +Oti +:: +SUBSCRIBE +, +tic +, "", +l +); + +537  + gMq +:: +publish +(cڡ +d +:: +rg + & +tic +, cڡ std::rg & +yld +, +bo + + +) { + +538 +queue_publish_mesge +( +tic +, +yld +, + +); + +542  + gMq +:: +publish +(cڡ +__FshSgHr + * +tic +, cڡ +d +:: +rg + & +yld +, +bo + + +) { + +543 +queue_publish_mesge +( +uuid +:: +ad_ash_rg +( +tic +), +yld +, + +); + +546  + gMq +:: +publish +(cڡ +__FshSgHr + * +tic +, cڡ +JsDocumt + & +yld +, +bo + + +) { + +547 +publish +( +uuid +:: +ad_ash_rg +( +tic +), +yld +, + +); + +550  + gMq +:: +publish +(cڡ +d +:: +rg + & +tic +, cڡ +JsDocumt + & +yld +, +bo + + +) { + +551 + gd +:: +rg + +yld_xt +; + +552 +rlizeJs +( +yld +, +yld_xt +); + +553 +queue_publish_mesge +( +tic +, +yld_xt +, + +); + +557  + gMq +:: +publish +(cڡ +d +:: +rg + & +tic +, cڡ +bo + +vue +) { + +558 +queue_publish_mesge +( +tic +, +vue + ? "1" : "0", +l +); + +560  + gMq +:: +publish +(cڡ +__FshSgHr + * +tic +, cڡ +bo + +vue +) { + +561 +queue_publish_mesge +( +uuid +:: +ad_ash_rg +( +tic +), +vue + ? "1" : "0", +l +); + +565  + gMq +:: +publish +(cڡ +d +:: +rg + & +tic +) { + +566 +queue_publish_mesge +( +tic +, "", +l +); + +571  + gMq +:: +oss_queue +() { + +572 i( +mq_mesges_ +. +emy +()) { + +597 aut + gmq_mesge + = +mq_mesges_ +. +t +(); + +598 aut + gmesge + = +mq_mesge +. +cڋ_ +; + +601 i( + gmesge +-> + gݔi + = +Oti +:: +SUBSCRIBE +) { + +602 +LOG_DEBUG +( +F +("Subsibgtic: %s"), +mesge +-> +tic +. +c_r +()); + +603 +ut16_t + + gck_id + = +mqCl_ +-> +subsibe +( +mesge +-> +tic +. +c_r +(), +mq_qos_ +); + +604 i(! + gck_id +) { + +605 +LOG_DEBUG +( +F +("E subsibg%s, %d"), +mesge +-> +tic +. +c_r +(), +ck_id +); + +608 + gmq_mesges_ +. +p_t +(); + +615 i( + gmq_mesge +. + gck_id_ + > 0) { + +620 +ut16_t + + gck_id + = + +621 +mqCl_ +-> +publish +( +mesge +-> +tic +. +c_r +(), +mq_qos_ +, mesge-> + +, mesge-> +yld +.c_r(), mesge->yld. +size +(), +l +, +mq_mesge +. +id_ +); + +622 +LOG_DEBUG +( +F +("Publishgi%(#%02d,em #%d,id %d)"), +mesge +-> +tic +. +c_r +(), +mq_mesge +. +id_ +, mq_mesge. +y_cou_ + + 1, +ck_id +); + +624 i( + gck_id + == 0) { + +626 i( +mq_mesge +. +y_cou_ + =( +MQTT_PUBLISH_MAX_RETRY + - 1)) { + +627 +LOG_ERROR +( +F +("Faedpublish%a %dems"), +mesge +-> +tic +. +c_r +(), +mq_mesge +. +y_cou_ + + 1); + +628 + gmq_publish_s_ +++; + +629 + gmq_mesges_ +. +p_t +(); + +632 + gmq_mesges_ +. +t +(). + gy_cou_ +++; + +633 +LOG_DEBUG +( +F +("Faedpublish%s. Trygga, #%d"), +mesge +-> +tic +. +c_r +(), +mq_mesge +. +y_cou_ + + 1); + +640 i( + gmq_qos_ + != 0) { + +641 +mq_mesges_ +. +t +(). +ck_id_ + = +ck_id +; + +646 + gmq_mesges_ +. +p_t +(); + + @src/mqtt.h + +19 #ide +EMSESP_MQTT_H_ + + +20  + #EMSESP_MQTT_H_ + + + ) + +22  + ~ + +23  + ~ + +25  + ~ + +26  + ~ + +27  + ~
  • + +28  + ~ + +30  + ~ + +32  + ~"hrs.h +" + +33  + ~"syem.h +" + +34  + ~"cse.h +" + +36  + ~ + +38 +usg + + guuid +:: +cse +:: +Shl +; + +40  + #EMSESP_MAX_JSON_SIZE_SMALL + 200 + +41  + #EMSESP_MAX_JSON_SIZE_MEDIUM + 800 + +42  + #EMSESP_MAX_JSON_SIZE_LARGE + 1500 + +43 + + ) + +44 +mea + + gem + { + +46 +usg + + gmq_subfuni_p + = +d +:: +funi +<(cڡ * +mesge +)>; + +47 +usg + + gmq_cmdfuni_p + = +d +:: +funi +<(cڡ * +da +, cڡ +t8_t + + gid +)>; + +49  + sMqMesge + { + +50 ~ +MqMesge +() = ; + +52 cڡ +ut8_t + + gݔi +; + +53 cڡ + gd +:: +rg + +tic +; + +54 cڡ + gd +:: +rg + +yld +; + +55 cڡ +bo + + g +; + +57 +MqMesge +(cڡ +ut8_t + +ݔi +, cڡ +d +:: +rg + & +tic +, cڡ std::rg && +yld +, +bo + + +) + +58 : +ݔi +(operation) + +59 , +tic +(topic) + +60 , +yld +(payload) + +61 , + +(retain) { + +65 as + cMq + { + +66 + gpublic +: + +67  +lo +(); + +68  +t +(); + +70  +t_publish_time_bo +( +ut16_t + +publish_time +); + +71  +t_publish_time_thmo +( +ut16_t + +publish_time +); + +72  +t_publish_time_sެ +( +ut16_t + +publish_time +); + +73  +t_publish_time_mixg +( +ut16_t + +publish_time +); + +74  +t_publish_time_h +( +ut16_t + +publish_time +); + +75  +t_publish_time_ns +( +ut16_t + +publish_time +); + +76  +t_qos +( +ut8_t + +mq_qos +); + +77 +bo + +g_publish_chge +( +ut8_t + +devi_ty +); + +79 + eOti + { + gPUBLISH +, + gSUBSCRIBE + }; + +81  +cڡex + +ut8_t + + gMQTT_TOPIC_MAX_SIZE + = 100; + +83  +subsibe +(cڡ +ut8_t + +devi_ty +, cڡ +d +:: +rg + & +tic +, +mq_subfuni_p + +cb +); + +84  +subsibe +(cڡ +d +:: +rg + & +tic +, +mq_subfuni_p + +cb +); + +85  +subsibe +(); + +87  +add_commd +(cڡ +ut8_t + +devi_ty +, cڡ ut8_ +devi_id +, cڡ +__FshSgHr + * +cmd +, +mq_cmdfuni_p + +cb +); + +89  +publish +(cڡ +d +:: +rg + & +tic +, cڡ std::rg & +yld +, +bo + + + = +l +); + +90  +publish +(cڡ +d +:: +rg + & +tic +, cڡ +JsDocumt + & +yld +, +bo + + + = +l +); + +91  +publish +(cڡ +__FshSgHr + * +tic +, cڡ +JsDocumt + & +yld +, +bo + + + = +l +); + +92  +publish +(cڡ +__FshSgHr + * +tic +, cڡ +d +:: +rg + & +yld +, +bo + + + = +l +); + +93  +publish +(cڡ +d +:: +rg + & +tic +, cڡ +bo + +vue +); + +94  +publish +(cڡ +__FshSgHr + * +ti +, cڡ +bo + +vue +); + +95  +publish +(cڡ +d +:: +rg + & +tic +); + +97  +show_tic_hdrs +( +uuid +:: +cse +:: +Shl + & +shl +, cڡ +ut8_t + +devi_ty +); + +98  +show_mq +( +uuid +:: +cse +:: +Shl + & +shl +); + +100  +_c +(); + +102  +bo + +_commd +(cڡ +ut8_t + +devi_ty +, cڡ * +cmd +, cڡ * +vue +, cڡ +t8_t + +id +); + +104  +disc +() { + +105 + gmqCl_ +-> +disc +(); + +108 #i +defed +( +EMSESP_DEBUG +) + +109  +comg +(cڡ * +tic +, cڡ * +yld +); + +112  +bo + +ced +() { + +113  + gmqCl_ +-> +ced +(); + +116  +ut32_t + +publish_s +() { + +117  + gmq_publish_s_ +; + +120  +t_publish_s +() { + +121 + gmq_publish_s_ + = 0; + +124  + sMQTTCmdFuni + { + +125 +ut8_t + + gdevi_ty_ +; + +126 +ut8_t + + gdevi_id_ +; + +127 cڡ +__FshSgHr + * + gcmd_ +; + +128 +mq_cmdfuni_p + + gmq_cmdfuni_ +; + +130 +MQTTCmdFuni +( +ut8_t + +devi_ty +, ut8_ +devi_id +, cڡ +__FshSgHr + * +cmd +, +mq_cmdfuni_p + +mq_cmdfuni +) + +131 : +devi_ty_ +( +devi_ty +) + +132 , +devi_id_ +( +devi_id +) + +133 , +cmd_ +( +cmd +) + +134 , +mq_cmdfuni_ +( +mq_cmdfuni +) { + +138  + gd +:: +ve +< +MQTTCmdFuni +> +commds +() { + +139  +mq_cmdfunis_ +; + +142 + give +: + +143  +uuid +:: +log +:: +Logg + +logg_ +; + +145 as + cQueuedMqMesge + { + +146 + gpublic +: + +147 cڡ +ut16_t + +id_ +; + +148 cڡ + gd +:: +shed_r + +cڋ_ +; + +149 +ut8_t + + gy_cou_ +; + +150 +ut16_t + + gck_id_ +; + +152 ~ +QueuedMqMesge +() = ; + +153 +QueuedMqMesge +( +ut16_t + +id +, +d +:: +shed_r +< +MqMesge +> && +cڋ +) + +154 : +id_ +( +id +) + +155 , +cڋ_ +( +d +:: +move +( +cڋ +)) { + +156 +y_cou_ + = 0; + +157 + gck_id_ + = 0; + +160  + gd +:: +li +< +QueuedMqMesge +> +mq_mesges_ +; + +162  +AsyncMqCl + * + gmqCl_ +; + +164  +size_t + + gmaximum_mq_mesges_ +; + +165  +ut16_t + + gmq_mesge_id_ +; + +166  +bo + + gmq__ +; + +168  +cڡex + +size_t + + gMAX_MQTT_MESSAGES + = 20; + +169  +cڡex + +ut32_t + + gMQTT_PUBLISH_WAIT + = 200; + +170  +cڡex + +ut8_t + + gMQTT_PUBLISH_MAX_RETRY + = 3; + +172  + gd +:: +shed_r + +queue_mesge +(cڡ +ut8_t + +ݔi +, cڡ +d +:: +rg + & +tic +, cڡ std::rg & +yld +, cڡ +bo + + +); + +173  + gd +:: +shed_r + +queue_publish_mesge +(cڡ +d +:: +rg + & +tic +, cڡ std::rg & +yld +, cڡ +bo + + +); + +174  + gd +:: +shed_r + +queue_subsibe_mesge +(cڡ +d +:: +rg + & +tic +); + +176  +_publish +( +ut16_t + +ckId +); + +177  +_mesge +(cڡ * +tic +, cڡ * +yld +, +size_t + +n +); + +178  +oss_queue +(); + +180  +ut16_t + + gmq_publish_s_ +; + +183  + sMQTTSubFuni + { + +184 +ut8_t + + gdevi_ty_ +; + +185 cڡ + gd +:: +rg + +tic_ +; + +186 cڡ + gd +:: +rg + +fu_tic_ +; + +187 +mq_subfuni_p + + gmq_subfuni_ +; + +189 +MQTTSubFuni +( +ut8_t + +devi_ty +, cڡ +d +:: +rg + && +tic +, cڡ std::rg && +fu_tic +, +mq_subfuni_p + +mq_subfuni +) + +190 : +devi_ty_ +( +devi_ty +) + +191 , +tic_ +( +tic +) + +192 , +fu_tic_ +( +fu_tic +) + +193 , +mq_subfuni_ +( +mq_subfuni +) { + +197  + gd +:: +ve +< +MQTTSubFuni +> +mq_subfunis_ +; + +198  + gd +:: +ve +< +MQTTCmdFuni +> +mq_cmdfunis_ +; + +200 +ut32_t + + gϡ_mq_pl_ + = 0; + +201 +ut32_t + + gϡ_publish_bo_ + = 0; + +202 +ut32_t + + gϡ_publish_thmo_ + = 0; + +203 +ut32_t + + gϡ_publish_sެ_ + = 0; + +204 +ut32_t + + gϡ_publish_mixg_ + = 0; + +205 +ut32_t + + gϡ_publish_h_ + = 0; + +206 +ut32_t + + gϡ_publish_ns_ + = 0; + +209  + gd +:: +rg + +home_ +; + +210  +ut8_t + + gmq_qos_ +; + +211  +ut32_t + + gpublish_time_ +; + +212  +ut8_t + + gbus_id_ +; + +213  +ut32_t + + gpublish_time_bo_ +; + +214  +ut32_t + + gpublish_time_thmo_ +; + +215  +ut32_t + + gpublish_time_sެ_ +; + +216  +ut32_t + + gpublish_time_mixg_ +; + +217  +ut32_t + + gpublish_time_h_ +; + +218  +ut32_t + + gpublish_time_ns_ +; + + @src/roomcontrol.cpp + +19  + ~"roomcڌ.h +" + +21 +mea + + gem + { + +23  +ut32_t + + grc_time_ + = 0; + +24  +t16_t + + gmّemp +[4] = { +EMS_VALUE_SHORT_NOTSET +, EMS_VALUE_SHORT_NOTSET, EMS_VALUE_SHORT_NOTSET, EMS_VALUE_SHORT_NOTSET}; + +29  + gRoom +:: +t_mّemp +(cڡ +ut8_t + +hc +, cڡ +t16_t + +mp +) { + +30 i( + ghc + > 3) { + +33 + gmّemp +[ +hc +] = +mp +; + +39  + gRoom +:: +nd +(cڡ +ut8_t + +addr +) { + +40 +ut8_t + +hc_ + = +addr + - +ADDR +; + +42 i( + ghc_ + > 3) { + +46 i( + gmّemp +[ +hc_ +] = +EMS_VALUE_SHORT_NOTSET +) { + +49 i( + guuid +:: +g_uime +(- +rc_time_ + > +SEND_INTERVAL +) { + +50 +rc_time_ + = +uuid +:: +g_uime +(); + +51 +mtu +( +addr +, 0x00); + +54 + gEMSut +:: +nd_pl +( +addr +); + +61  + gRoom +:: +check +(cڡ +ut8_t + +addr +, cڡ ut8_* +da +) { + +62 +ut8_t + + ghc_ + = ( +addr + & 0x7F- +ADDR +; + +65 i( + ghc_ + > 3) { + +69 i( + gmّemp +[ +hc_ +] = +EMS_VALUE_SHORT_NOTSET +) { + +73 i( + gaddr + & 0x80) { + +74 +ck_wre +(); + +79 i( + gda +[2] == 0x02) { + +80 +vsi +( +addr +, +da +[0]); + +81 } i( + gmّemp +[ +hc_ +] = +EMS_VALUE_SHORT_NOTSET +) { + +82 +unknown +( +addr +, +da +[0], data[2], data[3]); + +83 } i( + gda +[2] =0xAF && +da +[3] == 0) { + +84 +mtu +( +addr +, +da +[0]); + +86 +unknown +( +addr +, +da +[0], data[2], data[3]); + +93  + gRoom +:: +vsi +( +ut8_t + +addr +, ut8_ +d +) { + +94 +ut8_t + + gda +[10]; + +95 + gda +[0] = +addr +; + +96 + gda +[1] = +d +; + +97 + gda +[2] = 0x02; + +98 + gda +[3] = 0; + +99 + gda +[4] = 113; + +100 + gda +[5] = 0x02; + +101 + gda +[6] = 0x01; + +102 + gda +[7] = +EMSbus +:: +lcuϋ_c +( +da +, 7); + +103 + gEMSut +:: +sm +( +da +, 8); + +109  + gRoom +:: +unknown +( +ut8_t + +addr +, ut8_ +d +, ut8_ +ty +, ut8_ +offt +) { + +110 +ut8_t + + gda +[10]; + +111 + gda +[0] = +addr +; + +112 + gda +[1] = +d +; + +113 + gda +[2] = +ty +; + +114 + gda +[3] = +offt +; + +115 + gda +[4] = +EMSbus +:: +lcuϋ_c +( +da +, 4); + +116 + gEMSut +:: +sm +( +da +, 5); + +122  + gRoom +:: +mtu +( +ut8_t + +addr +, ut8_ +d +) { + +123 +ut8_t + + gda +[10]; + +124 +ut8_t + + ghc_ + = +addr + - +ADDR +; + +125 + gda +[0] = +addr +; + +126 + gda +[1] = +d +; + +127 + gda +[2] = 0xAF; + +128 + gda +[3] = 0; + +129 + gda +[4] = ( +ut8_t +)( +mّemp +[ +hc_ +] >> 8); + +130 + gda +[5] = ( +ut8_t +)( +mّemp +[ +hc_ +] & 0xFF); + +131 + gda +[6] = 0; + +132 + gda +[7] = +EMSbus +:: +lcuϋ_c +( +da +, 7); + +133 + gEMSut +:: +sm +( +da +, 8); + +138  + gRoom +:: +ck_wre +() { + +139 +ut8_t + +da +[1]; + +140 + gda +[0] = +TxSvi +:: +TX_WRITE_FAIL +; + +141 + gEMSut +:: +sm +( +da +, 1); + + @src/roomcontrol.h + +19 #ide +EMSESP_ROOMCONTROL_H + + +20  + #EMSESP_ROOMCONTROL_H + + + ) + +22  + ~"em.h +" + +24 +mea + + gem + { + +26 as + cRoom + { + +27 + gpublic +: + +28  +nd +(cڡ +ut8_t + +addr +); + +29  +check +(cڡ +ut8_t + +addr +, cڡ ut8_* +da +); + +30  +t_mّemp +(cڡ +ut8_t + +hc +, cڡ +t16_t + +mp +); + +32 + give +: + +33  +cڡex + +ut8_t + +ADDR + = 0x18; + +34  +cڡex + +ut32_t + + gSEND_INTERVAL + = 60000; + +36  +vsi +( +ut8_t + +addr +, ut8_ +d +); + +37  +unknown +( +ut8_t + +addr +, ut8_ +d +, ut8_ +ty +, ut8_ +offt +); + +38  +mtu +( +ut8_t + +addr +, ut8_ +d +); + +39  +ck_wre +(); + + @src/sensors.cpp + +21  + ~"nss.h +" + +22  + ~"em.h +" + +24 #ifde +ESP32 + + +25  + #YIELD + + + ) + +27  + #YIELD + + `yld +() + + ) + +30 +mea + + gem + { + +32 + guuid +:: +log +:: +Logg + +Sss +:: +logg_ +{ +F_ +( +nss +), uuid::log:: +Facy +:: +DAEMON +}; + +35  + gSss +:: +t +() { + +36 +ld +(); + +38 #ide +EMSESP_STANDALONE + + +39 i( + gds_gpio_ +) { + +40 + gbus_ +. +beg +( +ds_gpio_ +); + +46  + gSss +:: +ld +() { + +48 +EMSESP +:: +e8266R +. +gMqStgsSvi +()-> +ad +([&]( +MqStgs + & +gs +) { + +49 +mq_fm_ + = +gs +. +mq_fm +; + +52 + gEMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +53 +ds_gpio_ + = +gs +. +ds_gpio +; + +54 +se_ + = +gs +. +ds_se +; + +57 i( + gmq_fm_ + = +MQTT_fm +:: +HA +) { + +58  +ut8_t + +i + = 0; + gi + < + gMAX_SENSORS +; + ggied_ha_ +[i++] = +l +) + +63  + gSss +:: +lo +() { + +64 #ide +EMSESP_STANDALONE + + +65 +ut32_t + +time_now + = +uuid +:: +g_uime +(); + +67 i( + ge_ + = +S +:: +IDLE +) { + +68 i( +time_now + - +ϡ_aivy_ + > +READ_INTERVAL_MS +) { + +70 i( +bus_ +. +t +(|| +se_ +) { + +71 +YIELD +; + +72 + gbus_ +. +sk +(); + +73 + gbus_ +. +wre +( +CMD_CONVERT_TEMP +, +se_ + ? 1 : 0); + +74 + ge_ + = +S +:: +READING +; + +78 + gdevis_ +. +r +(); + +80 + gϡ_aivy_ + = +time_now +; + +82 } i( + ge_ + = +S +:: +READING +) { + +83 i( +mtu_cvt_come +(&& ( +time_now + - +ϡ_aivy_ + > +CONVERSION_MS +)) { + +85 +bus_ +. +t_ch +(); + +86 + gfound_ +. +r +(); + +87 + ge_ + = +S +:: +SCANNING +; + +88 } i( + gtime_now + - + gϡ_aivy_ + > + gREAD_TIMEOUT_MS +) { + +89 +LOG_ERROR +( +F +("Sensoreadimeout")); + +90 + ge_ + = +S +:: +IDLE +; + +92 } i( + ge_ + = +S +:: +SCANNING +) { + +93 i( +time_now + - +ϡ_aivy_ + > +SCAN_TIMEOUT_MS +) { + +94 +LOG_ERROR +( +F +("Sensor scanimeout")); + +95 + ge_ + = +S +:: +IDLE +; + +97 +ut8_t + + gaddr +[ +ADDR_LEN +] = {0}; + +99 i( + gbus_ +. +ch +( +addr +)) { + +100 i(! + gse_ +) { + +101 + gbus_ +. +dow +(); + +103 i( + gbus_ +. +c8 +( +addr +, +ADDR_LEN + - 1) ==ddr[ADDR_LEN - 1]) { + +104  +addr +[0]) { + +105  +TYPE_DS18B20 +: + +106  +TYPE_DS18S20 +: + +107  +TYPE_DS1822 +: + +108  +TYPE_DS1825 +: + +109  +f +; + +110 + gf + = +g_mtu_c +( +addr +); + +111 i(( + gf + ! +NAN +&& ( +f + >= -55) && (f <= 125)) { + +112 +found_ +. +ema_back +( +addr +); + +113 + gfound_ +. +back +(). + gmtu_c + = +f +; + +126 +LOG_ERROR +( +F +("Unknowns %s"), +Devi +( +addr +). +to_rg +(). +c_r +()); + +130 +LOG_ERROR +( +F +("Invid ss %s"), +Devi +( +addr +). +to_rg +(). +c_r +()); + +133 i(! + gse_ +) { + +134 + gbus_ +. +dow +(); + +136 i(( + gfound_ +. +size +(> +devis_ +.size()|| ( +yt_ + > 5)) { + +137 i( +found_ +. +size +(= +devis_ +.size()) { + +138  +ut8_t + +i + = 0; + gi + < + gdevis_ +. +size +(); i++) { + +139 i( + gfound_ +[ +i +]. + gmtu_c + ! +devis_ +[i]. +mtu_c +) { + +140 +chged_ + = +ue +; + +144 + gchged_ + = +ue +; + +146 + gdevis_ + = +d +:: +move +( +found_ +); + +147 + gyt_ + = 0; + +149 + gyt_ +++; + +151 + gfound_ +. +r +(); + +153 + ge_ + = +S +:: +IDLE +; + +160 +bo + + gSss +:: +mtu_cvt_come +() { + +161 #ide +EMSESP_STANDALONE + + +162 i( +se_ +) { + +163  +ue +; + +165  + gbus_ +. +ad_b +() == 1; + +167  + gue +; + +171 #agm +GCC + +dgnoic + +push + + +172 #agm +GCC + +dgnoic + +igned + "-Wunused-parameter" + +174  + gSss +:: +g_mtu_c +(cڡ +ut8_t + +addr +[]) { + +175 #ide +EMSESP_STANDALONE + + +176 i(! +bus_ +. +t +()) { + +177 +LOG_ERROR +( +F +("Bued befܐadg schd from %s"), +Devi +( +addr +). +to_rg +(). +c_r +()); + +178  + gNAN +; + +180 + gYIELD +; + +181 +ut8_t + + gschd +[ +SCRATCHPAD_LEN +] = {0}; + +182 + gbus_ +. + +( +addr +); + +183 + gbus_ +. +wre +( +CMD_READ_SCRATCHPAD +); + +184 + gbus_ +. +ad_bys +( +schd +, +SCRATCHPAD_LEN +); + +185 + gYIELD +; + +186 i(! + gbus_ +. +t +()) { + +187 +LOG_ERROR +( +F +("Buedᔄdg schd from %s"), +Devi +( +addr +). +to_rg +(). +c_r +()); + +188  + gNAN +; + +190 + gYIELD +; + +191 i( + gbus_ +. +c8 +( +schd +, +SCRATCHPAD_LEN + - 1) != scratchpad[SCRATCHPAD_LEN - 1]) { + +192 +LOG_WARNING +( +F +("Invalid scratchpad CRC: %02X%02X%02X%02X%02X%02X%02X%02X%02X from device %s"), + +193 +schd +[0], + +194 +schd +[1], + +195 +schd +[2], + +196 +schd +[3], + +197 +schd +[4], + +198 +schd +[5], + +199 +schd +[6], + +200 +schd +[7], + +201 +schd +[8], + +202 +Devi +( +addr +). +to_rg +(). +c_r +()); + +203  + gNAN +; + +206 +t16_t + + gw_vue + = ((t16_t) +schd +[ +SCRATCHPAD_TEMP_MSB +] << 8| schd[ +SCRATCHPAD_TEMP_LSB +]; + +208 i( + gaddr +[0] = +TYPE_DS18S20 +) { + +209 +w_vue + = (w_vu<< 3+ 12 - +schd +[ +SCRATCHPAD_CNT_REM +]; + +212  + gsuti + = 9 + (( +schd +[ +SCRATCHPAD_CONFIG +] >> 5) & 0x3); + +213  + gsuti +) { + +215 +w_vue + &= ~0x7; + +218 +w_vue + &= ~0x3; + +221 +w_vue + &= ~0x1; + +227 +ut32_t + + gw + = ((ut32_t) +w_vue + * 625 + 500) / 1000; + +228  () + gw + / 10; + +230  + gNAN +; + +234 #agm +GCC + +dgnoic + +p + + +236 cڡ + gd +:: +ve +< +Sss +:: +Devi +> Sss:: +devis +() const { + +237  +devis_ +; + +240 + gSss +:: +Devi +::Devi(cڡ +ut8_t + +addr +[]) + +241 : +id_ +((( +ut64_t +) +addr +[0] << 56) | ((uint64_t)addr[1] << 48) | ((uint64_t)addr[2] << 40) | ((uint64_t)addr[3] << 32) | ((uint64_t)addr[4] << 24) + +242 | (( +ut64_t +) +addr +[5] << 16) | ((uint64_t)addr[6] << 8) | (uint64_t)addr[7]) { + +245 +ut64_t + +Sss +:: +Devi +:: +id +() const { + +246  +id_ +; + +249 + gd +:: +rg + +Sss +:: +Devi +:: +to_rg +() const { + +250 +d +:: +rg + +r +(20, '\0'); + +251 +tf_P +(& +r +[0], + +252 +r +. +cy +() + 1, + +253 +PSTR +("%02X-%04X-%04X-%04X-%02X"), + +254 ()( +id_ + >> 56) & 0xFF, + +255 ()( +id_ + >> 40) & 0xFFFF, + +256 ()( +id_ + >> 24) & 0xFFFF, + +257 ()( +id_ + >> 8) & 0xFFFF, + +258 ()( +id_ +)&0xFF); + +259  + gr +; + +263 +bo + + gSss +:: +upded_vues +() { + +264 i( +chged_ +) { + +265 +chged_ + = +l +; + +266  + gue +; + +268  + gl +; + +273  + gSss +:: +publish_vues +() { + +274 +ut8_t + +num_devis + = +devis_ +. +size +(); + +276 i( + gnum_devis + == 0) { + +283 i( + gmq_fm_ + = +MQTT_fm +:: +SINGLE +) { + +284 +SticJsDocumt +<100> +doc +; + +285 cڡut& + gdevi + : +devis_ +) { + +286  +s +[7]; + +287 + gdoc +["mp"] = +Hrs +:: +nd_vue +( +s +, +devi +. +mtu_c +, 1); + +288  + gtic +[60]; + +289 +y +( +tic +, "sensor_", 50); + +290 +t +( +tic +, +devi +. +to_rg +(). +c_r +(), 60); + +291 + gMq +:: +publish +( +tic +, +doc +); + +292 + gdoc +. +r +(); + +297 +DymicJsDocumt + +doc +(100 * +num_devis +); + +298 +ut8_t + + gi + = 1; + +299 cڡut& + gdevi + : +devis_ +) { + +300  +s +[7]; + +302 i( + gmq_fm_ + = +MQTT_fm +:: +CUSTOM +) { + +304 +doc +[ +devi +. +to_rg +()] = +Hrs +:: +nd_vue +( +s +, devi. +mtu_c +, 1); + +305 } i(( + gmq_fm_ + = +MQTT_fm +:: +NESTED +|| ( +mq_fm_ + =MQTT_fm:: +HA +)) { + +307  +nsID +[10]; + +308 +y +( +nsID +, "sensor", 10); + +309 +t +( +nsID +, +Hrs +:: + +( +s +, +i +), 10); + +310 +JsObje + + gdaSs + = +doc +. +NeedObje +( +nsID +); + +311 + gdaSs +["id"] = +devi +. +to_rg +(); + +312 + gdaSs +["mp"] = +Hrs +:: +nd_vue +( +s +, +devi +. +mtu_c +, 1); + +316 i( + gmq_fm_ + = +MQTT_fm +:: +HA +) { + +317 +d +:: +rg + +tic +(100, '\0'); + +330 i(!( + ggied_ha_ +[ +i +])) { + +331 + gSticJsDocumt +< + gEMSESP_MAX_JSON_SIZE_MEDIUM +> + gcfig +; + +332 + gcfig +["dev_cla"] = "temperature"; + +333 + gcfig +["stat_t"] = "homeassistant/sensor/ems-esp/state"; + +334 + gcfig +["unit_of_meas"] = "°C"; + +336 + gd +:: +rg + +r +(50, '\0'); + +337 +tf_P +(& +r +[0], 50, +PSTR +("{{vue_js.ns%d.mp}}"), +i +); + +338 + gcfig +["v_l"] = +r +; + +340 +tf_P +(& +r +[0], 50, +PSTR +("ems-e-ns%d"), +i +); + +341 + gcfig +["me"] = +r +; + +342 + gcfig +["uniq_id"] = +r +; + +344 +tf_P +(& +tic +[0], 50, +PSTR +("homssit/ns/ems-e/ns%d/cfig"), +i +); + +345 + gMq +:: +publish +( +tic +, +cfig +, +l +); + +347 + ggied_ha_ +[ +i +] = +ue +; + +350 + gi +++; + +353 i(( + gmq_fm_ + = +MQTT_fm +:: +NESTED +|| ( +mq_fm_ + =MQTT_fm:: +CUSTOM +)) { + +354 +Mq +:: +publish +( +F +("nss"), +doc +); + +355 } i( + gmq_fm_ + = +MQTT_fm +:: +HA +) { + +356 +Mq +:: +publish +( +F +("homssit/ns/ems-e/e"), +doc +); + + @src/sensors.h + +21 #ide +EMSESP_SENSORS_H + + +22  + #EMSESP_SENSORS_H + + + ) + +24  + ~ + +25  + ~ + +27  + ~"hrs.h +" + +28  + ~"mq.h +" + +29  + ~"cse.h +" + +31  + ~ + +33 #ide +EMSESP_STANDALONE + + +34  + ~ + +37 +mea + + gem + { + +39 as + cSss + { + +40 + gpublic +: + +41 as + cDevi + { + +42 +public +: + +43 +Devi +(cڡ +ut8_t + +addr +[]); + +44 ~ +Devi +() = ; + +46 +ut64_t + +id +() const; + +47 + gd +:: +rg + +to_rg +() const; + +49  + gmtu_c + = +NAN +; + +51 + give +: + +52 cڡ +ut64_t + +id_ +; + +53 +bo + + ggied_ + = +l +; + +56 +Sss +() = ; + +57 ~ +Sss +() = ; + +59  +t +(); + +60  +lo +(); + +61  +publish_vues +(); + +62  +ld +(); + +63 +bo + +upded_vues +(); + +65 cڡ + gd +:: +ve +< +Devi +> +devis +() const; + +67 + give +: + +68  +cڡex + +ut8_t + +MAX_SENSORS + = 20; + +70 as + cS + { + gIDLE +, + gREADING +, + gSCANNING + }; + +72  +cڡex + +size_t + + gADDR_LEN + = 8; + +74  +cڡex + +size_t + + gSCRATCHPAD_LEN + = 9; + +75  +cڡex + +size_t + + gSCRATCHPAD_TEMP_MSB + = 1; + +76  +cڡex + +size_t + + gSCRATCHPAD_TEMP_LSB + = 0; + +77  +cڡex + +size_t + + gSCRATCHPAD_CONFIG + = 4; + +78  +cڡex + +size_t + + gSCRATCHPAD_CNT_REM + = 6; + +81  +cڡex + +ut8_t + + gTYPE_DS18B20 + = 0x28; + +82  +cڡex + +ut8_t + + gTYPE_DS18S20 + = 0x10; + +83  +cڡex + +ut8_t + + gTYPE_DS1822 + = 0x22; + +84  +cڡex + +ut8_t + + gTYPE_DS1825 + = 0x3B; + +86  +cڡex + +ut32_t + + gREAD_INTERVAL_MS + = 5000; + +87  +cڡex + +ut32_t + + gCONVERSION_MS + = 1000; + +88  +cڡex + +ut32_t + + gREAD_TIMEOUT_MS + = 2000; + +89  +cڡex + +ut32_t + + gSCAN_TIMEOUT_MS + = 3000; + +91  +cڡex + +ut8_t + + gCMD_CONVERT_TEMP + = 0x44; + +92  +cڡex + +ut8_t + + gCMD_READ_SCRATCHPAD + = 0xBE; + +94  + guuid +:: +log +:: +Logg + +logg_ +; + +96 #ide +EMSESP_STANDALONE + + +97 +OWe + + gbus_ +; + +100 +bo + +mtu_cvt_come +(); + +101  +g_mtu_c +(cڡ +ut8_t + +addr +[]); + +103 +ut32_t + + gϡ_aivy_ + = +uuid +:: +g_uime +(); + +104 +ut32_t + + gϡ_publish_ + = +uuid +:: +g_uime +(); + +105 +S + + ge_ + = S:: +IDLE +; + +106 + gd +:: +ve +< +Devi +> +found_ +; + +107 + gd +:: +ve +< +Devi +> +devis_ +; + +109 +bo + + ggied_ha_ +[ +MAX_SENSORS +]; + +111 +ut8_t + + gmq_fm_ +; + +112 +ut8_t + + gyt_ + = 0; + +113 +ut8_t + + gds_gpio_ + = 0; + +114 +bo + + gse_ + = +l +; + +115 +bo + + gchged_ + = +l +; + + @src/shower.cpp + +19  + ~"show.h +" + +21 +mea + + gem + { + +23 + guuid +:: +log +:: +Logg + +Show +:: +logg_ +{ +F_ +( +show +), uuid::log:: +Facy +:: +CONSOLE +}; + +25  + gShow +:: +t +() { + +26 +EMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +27 +show_tim_ + = +gs +. +show_tim +; + +28 +show_t_ + = +gs +. +show_t +; + +32  + gShow +:: +lo +() { + +33 i(! +show_tim_ +) { + +37 +ut32_t + + gtime_now + = +uuid +:: +g_uime +(); + +40 i(! + gdog_cd_sh_ +) { + +42 i( + gEMSESP +:: +p_w_aive +()) { + +44 i( +tim_t_ + == 0) { + +46 +tim_t_ + = +time_now +; + +47 + gtim_u_ + = 0; + +48 + gdog_cd_sh_ + = +l +; + +49 + gduti_ + = 0; + +50 + gshow__ + = +l +; + +54 i(! + gshow__ + && ( + gtime_now + - + gtim_t_ +> + gSHOWER_MIN_DURATION +) { + +55 + gshow__ + = +ue +; + +56 + gMq +:: +publish +( +F +("show_aive"), ( +bo +) +ue +); + +57 +LOG_DEBUG +( +F +("[Shower] hot water stillunning, starting showerimer")); + +60 i(((( + gtime_now + - + gtim_t_ +> + gSHOWER_MAX_DURATION +&& ! + gdog_cd_sh_ +&& + gshow_t_ +) { + +61 +show_t_t +(); + +66 i(( + gtim_t_ +&& ( + gtim_u_ + == 0)) { + +67 +tim_u_ + = +time_now +; + +71 i(( + gtim_u_ +&& (( + gtime_now + -im_u_> + gSHOWER_PAUSE_TIME +)) { + +74 i(( + gtim_u_ + - + gtim_t_ +> + gSHOWER_OFFSET_TIME +) { + +75 + gduti_ + = ( +tim_u_ + - +tim_t_ + - +SHOWER_OFFSET_TIME +); + +76 i( + gduti_ + > + gSHOWER_MIN_DURATION +) { + +77 + gMq +:: +publish +( +F +("show_aive"), ( +bo +) +l +); + +78 +LOG_DEBUG +( +F +("[Show] fished wh duti %d"), +duti_ +); + +79 +publish_vues +(); + +84 + gtim_t_ + = 0; + +85 + gtim_u_ + = 0; + +86 + gshow__ + = +l +; + +87 +show_t_ +(); + +94  + gShow +:: +show_t_ +() { + +95 i( +dog_cd_sh_ +) { + +96 +LOG_DEBUG +( +F +("Shower Alert stopped")); + +98 + gdog_cd_sh_ + = +l +; + +104  + gShow +:: +show_t_t +() { + +105 i( +show_t_ +) { + +106 +LOG_DEBUG +( +F +("Shower Alert started!")); + +108 + gdog_cd_sh_ + = +ue +; + +116  + gShow +:: +publish_vues +() { + +117 +SticJsDocumt +<90> +doc +; + +118 + gdoc +["show_tim"] = +show_tim_ + ? "1" : "0"; + +119 + gdoc +["show_t"] = +show_t_ + ? "1" : "0"; + +122  + gs +[50]; + +123 i( + gduti_ + > + gSHOWER_MIN_DURATION +) { + +124  + gbufr +[16] = {0}; + +125 +y +( +s +, +Hrs +:: + +( +bufr +, ( +ut8_t +)(( +duti_ + / (1000 * 60)) % 60), 10), 50); + +126 +t +( +s +, " minutesnd ", 50); + +127 +t +( +s +, +Hrs +:: + +( +bufr +, ( +ut8_t +)(( +duti_ + / 1000) % 60), 10), 50); + +128 +t +( +s +, " seconds", 50); + +129 + gdoc +["duti"] = +s +; + +132 + gMq +:: +publish +( +F +("show_da"), +doc +); + + @src/shower.h + +19 #ide +EMSESP_SHOWER_H + + +20  + #EMSESP_SHOWER_H + + + ) + +22  + ~ + +23  + ~ + +25  + ~"hrs.h +" + +26  + ~"cse.h +" + +27  + ~"mq.h +" + +28  + ~"gm.h +" + +29  + ~"em.h +" + +31  + ~ + +33 +mea + + gem + { + +35 as + cShow + { + +36 + gpublic +: + +37  +t +(); + +38  +lo +(); + +40 +bo + +show_t +() const { + +41  + gshow_t_ +; + +44  +show_t +(cڡ +bo + shower_alert) { + +45 + gshow_t_ + = +show_t +; + +48 +bo + +show_tim +() const { + +49  + gshow_tim_ +; + +52  +show_tim +(cڡ +bo + shower_timer) { + +53 + gshow_tim_ + = +show_tim +; + +56 + give +: + +57  +uuid +:: +log +:: +Logg + +logg_ +; + +59  +cڡex + +ut32_t + + gSHOWER_PAUSE_TIME + = 15000; + +60  +cڡex + +ut32_t + + gSHOWER_MIN_DURATION + = 120000; + +61  +cڡex + +ut32_t + + gSHOWER_OFFSET_TIME + = 5000; + +62  +cڡex + +ut32_t + + gSHOWER_COLDSHOT_DURATION + = 10; + +63  +cڡex + +ut32_t + + gSHOWER_MAX_DURATION + = 420000; + +65  +cse_commds +(); + +67  +publish_vues +(); + +68  +show_t_t +(); + +69  +show_t_ +(); + +71 +bo + + gshow_tim_ +; + +72 +bo + + gshow_t_ +; + +74 +bo + + gshow__ +; + +75 +ut32_t + + gtim_t_ +; + +76 +ut32_t + + gtim_u_ +; + +77 +ut32_t + + gduti_ +; + +78 +bo + + gdog_cd_sh_ +; + + @src/system.cpp + +19  + ~"syem.h +" + +20  + ~"em.h +" + +22  + ~"vsi.h +" + +24 +mea + + gem + { + +26 + guuid +:: +log +:: +Logg + +Syem +:: +logg_ +{ +F_ +( +syem +), uuid::log:: +Facy +:: +KERN +}; + +28 #ide +EMSESP_STANDALONE + + +29 + guuid +:: +syog +:: +SyogSvi + +Syem +:: +syog_ +; + +33 +ut32_t + + gSyem +:: +hp_t_ + = 0; + +34  + gSyem +:: +t_cou_ + = 0; + +35 +bo + + gSyem +:: +ud_us_ + = +l +; + +36 +bo + + gSyem +:: +hide_d_ + = +l +; + +37 +ut8_t + + gSyem +:: +d_gpio_ + = 0; + +38 +ut16_t + + gSyem +:: +og_ + = 0; + +42  + gSyem +:: +mq_commd_p +(cڡ * +vue +, cڡ +t8_t + +id +) { + +43 +bo + + gv + = +l +; + +44 i( + gHrs +:: +vue2bo +( +vue +, +v +)) { + +45 +pMode +( +id +, +OUTPUT +); + +46 +digWre +( +id +, +v +); + +47 +LOG_INFO +( +F +("GPIO %d s%s"), +id +, +v + ? "HIGH" : "LOW"); + +52  + gSyem +:: +mq_commd_nd +(cڡ * +vue +, cڡ +t8_t + +id +) { + +53 + gEMSESP +:: +nd_w_gm +( +vue +); + +57  + gSyem +:: +t +() { + +58 +LOG_NOTICE +("Restarting system..."); + +59 + gShl +:: +lo_l +(); + +60 +day +(1000); + +61 #i +defed +( +ESP8266 +) + +62 + gESP +. +t +(); + +63 #i +defed +( +ESP32 +) + +64 + gESP +. +t +(); + +69  + gSyem +:: +wifi_c +() { + +70 +LOG_NOTICE +("The wifi willeconnect..."); + +71 + gShl +:: +lo_l +(); + +72 +day +(1000); + +73 + gEMSESP +:: +emStgsSvi +. +ve +(); + +74 + gEMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +UpdeHdrs +("local"); + +79  + gSyem +:: +fm +( +uuid +:: +cse +:: +Shl + & +shl +) { + +80 aut +msg + = +F +("Formatting file system. This willesetll settingsoheir defaults"); + +81 + gshl +. +logg +(). +wng +( +msg +); + +82 + gshl +. +ush +(); + +84 + gEMSut +:: + +(); + +86 #i +defed +( +ESP8266 +) + +87 + gLeFS +. +fm +(); + +88 #i +defed +( +ESP32 +) + +89 + gSPIFFS +. +fm +(); + +92 + gSyem +:: +t +(); + +96 +ut8_t + + gSyem +:: +_mem +() { + +97 #ide +EMSESP_STANDALONE + + +98 +ut32_t + +_memy + = +ESP +. +gFeHp +(); + +100 +ut32_t + + g_memy + = 1000; + +103  (100 * + g_memy + / + ghp_t_ +); + +106  + gSyem +:: +syog_ +() { + +108 +EMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +109 +syog_v_ + = +gs +. +syog_v +; + +110 +syog_mk_rv_ + = +gs +. +syog_mk_rv +; + +111 +syog_ho_ + = +gs +. +syog_ho +; + +114 #ide +EMSESP_STANDALONE + + +115 + gsyog_ +. +t +(); + +118 +IPAddss + + gaddr +; + +119 i(! + gaddr +. +omSg +( +syog_ho_ +. +c_r +())) { + +120 + gaddr + = ( +ut32_t +)0; + +122 + gsyog_ +. +log_v +(( +uuid +:: +log +:: +Lev +) +syog_v_ +); + +123 + gsyog_ +. +mk_rv +( +syog_mk_rv_ +); + +124 + gsyog_ +. +dei +( +addr +); + +125 + gEMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +ad +([&]( +WiFiStgs + & +wifiStgs +{ +syog_ +. +home +(wifiStgs.home. +c_r +()); }); + +129  + gSyem +:: +t_hbt +( +bo + +syem_hbt +) { + +130 +syem_hbt_ + = +syem_hbt +; + +134  + gSyem +:: +t +() { + +136 i( +hp_t_ + == 0) { + +137 #ide +EMSESP_STANDALONE + + +138 +hp_t_ + = +ESP +. +gFeHp +(); + +140 + ghp_t_ + = 2000; + +145 + gEMSESP +:: +e8266R +. +gMqStgsSvi +()-> +ad +([&]( +MqStgs + & +gs +{ +syem_hbt_ + = stgs. +syem_hbt +; }); + +148 + gEMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +ad +( + +149 [&]( +WiFiStgs + & +wifiStgs +{ +LOG_INFO +( +F +("Syem %boed (EMS-ESP vsi %s)"), wifiStgs. +home +. +c_r +(), +EMSESP_APP_VERSION +); }); + +151 +syog_ +(); + +152 +t_d +(); + +153 + gEMSESP +:: +_tx +(); + +157  + gSyem +:: +t_d +() { + +158 +EMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +159 +hide_d_ + = +gs +. +hide_d +; + +160 +d_gpio_ + = +gs +. +d_gpio +; + +161 i( +d_gpio_ +) { + +162 +pMode +( +d_gpio_ +, +OUTPUT +); + +163 +digWre +( +d_gpio_ +, +hide_d_ + ? ! +LED_ON + : LED_ON); + +169 +bo + + gSyem +:: +ud_us +() { + +170 #i +defed +( +EMSESP_STANDALONE +) + +171  +l +; + +173  + gud_us_ + || + gUpde +. +isRušg +(); + +177  + gSyem +:: +ud_us +( +bo + +_ogss +) { + +179 i((! +ud_us_ +&& ( +_ogss +)) { + +180 +EMSut +:: + +(); + +182 + gud_us_ + = +_ogss +; + +186  + gSyem +:: +lo +() { + +187 #ide +EMSESP_STANDALONE + + +188 +syog_ +. +lo +(); + +190 +d_mڙ +(); + +191 +syem_check +(); + +192 +msu_og +(); + +195 +ut32_t + + gcutMlis + = +uuid +:: +g_uime +(); + +196 i(! + gϡ_hbt_ + || ( + gcutMlis + -a_hbt_ > + gSYSTEM_HEARTBEAT_INTERVAL +)) { + +197 + gϡ_hbt_ + = +cutMlis +; + +198 i( + gsyem_hbt_ +) { + +199 +nd_hbt +(); + +203 #i +defed +( +ESP8266 +) + +204 #i +defed +( +EMSESP_DEBUG +) + +205  +ut32_t + + gϡ_memcheck_ + = 0; + +206 i( + gcutMlis + - + gϡ_memcheck_ + > 10000) { + +207 + gϡ_memcheck_ + = +cutMlis +; + +208 +show_mem +("core"); + +214  + gSyem +:: +show_mem +(cڡ * +ne +) { + +215 #i +defed +( +ESP8266 +) + +216 #i +defed +( +EMSESP_DEBUG +) + +217 +LOG_INFO +( +F +("(%sFhp: %d%% (%lu), fg:%u%%"), +ne +, +_mem +(), () +ESP +. +gFeHp +(), ESP. +gHpFgmti +()); + +223  + gSyem +:: +nd_hbt +() { + +225  +rssid + = +wifi_quy +(); + +226 i( + grssid + == -1) { + +230 + gSticJsDocumt +< + gEMSESP_MAX_JSON_SIZE_SMALL +> + gdoc +; + +231 + gdoc +["rssid"] = +rssid +; + +232 + gdoc +["uime"] = +uuid +:: +log +:: +fm_timeamp_ms +(uuid:: +g_uime_ms +(), 3); + +233 + gdoc +["uime_c"] = +uuid +:: +g_uime_c +(); + +234 + gdoc +["mem"] = +_mem +(); + +235 + gdoc +["mqpublishs"] = +Mq +:: +publish_s +(); + +236 + gdoc +["txs"] = +EMSESP +:: +txrvi_ +. +gm__cou +(); + +237 + gdoc +["rxs"] = +EMSESP +:: +rxrvi_ +. +gm_r_cou +(); + +238 + gdoc +["adc"] = +og_ +; + +240 + gMq +:: +publish +( +F +("hbt"), +doc +, +l +); + +244  + gSyem +:: +msu_og +() { + +245  +ut32_t + +msu_ϡ_ + = 0; + +247 i(! + gmsu_ϡ_ + || ( + gut32_t +)( + guuid +:: +g_uime +(- +msu_ϡ_ +> +SYSTEM_MEASURE_ANALOG_INTERVAL +) { + +248 +msu_ϡ_ + = +uuid +:: +g_uime +(); + +249 #i +defed +( +ESP8266 +) + +250 +ut16_t + + ga + = +ogRd +( +A0 +); + +251 #i +defed +( +ESP32 +) + +252 +ut16_t + + ga + = +ogRd +(36); + +254 +ut16_t + + ga + = 0; + +256  +ut32_t + + gsum_ + = 0; + +258 i(! + gog_ +) { + +259 + gog_ + = +a +; + +260 + gsum_ + = +a + * 256; + +262 + gsum_ + = +sum_ + * 255 / 256 + +a +; + +263 + gog_ + = +sum_ + / 256; + +269  + gSyem +:: +t_d_d +( +ut32_t + +d +) { + +270 +d_ash_d_ + = +d +; + +271 +d_mڙ +(); + +275  + gSyem +:: +syem_check +() { + +276  +ut32_t + +ϡ_syem_check_ + = 0; + +278 i(! + gϡ_syem_check_ + || (( + gut32_t +)( + guuid +:: +g_uime +(- +ϡ_syem_check_ +> +SYSTEM_CHECK_FREQUENCY +)) { + +279 +ϡ_syem_check_ + = +uuid +:: +g_uime +(); + +281 #ide +EMSESP_STANDALONE + + +282 i( + gWiFi +. +us +(! +WL_CONNECTED +) { + +283 +t_d_d +( +LED_WARNING_BLINK_FAST +); + +284 + gsyem_hhy_ + = +l +; + +290 i(! + gEMSbus +:: +bus_ced +()) { + +291 +syem_hhy_ + = +l +; + +292 +t_d_d +( +LED_WARNING_BLINK +); + +296 i(! + gsyem_hhy_ +) { + +297 + gsyem_hhy_ + = +ue +; + +298 i( + gd_gpio_ +) { + +299 +digWre +( +d_gpio_ +, +hide_d_ + ? ! +LED_ON + : LED_ON); + +307  + gSyem +:: +d_mڙ +() { + +308 i(! +d_gpio_ +) { + +312  +ut32_t + + gd_ϡ_blk_ + = 0; + +314 i(! + gd_ϡ_blk_ + || ( + gut32_t +)( + guuid +:: +g_uime +(- +d_ϡ_blk_ +> +d_ash_d_ +) { + +315 +d_ϡ_blk_ + = +uuid +:: +g_uime +(); + +318 i(! + gsyem_hhy_ +) { + +319 +digWre +( +d_gpio_ +, ! +digRd +(led_gpio_)); + +329 +t8_t + + gSyem +:: +wifi_quy +() { + +330 #ide +EMSESP_STANDALONE + + +331 i( +WiFi +. +us +(! +WL_CONNECTED +) { + +334  + gdBm + = +WiFi +. +RSSI +(); + +336 +t8_t + + gdBm + = -70; + +338 i( + gdBm + <= -100) { + +341 i( + gdBm + >= -50) { + +344  2 * ( + gdBm + + 100); + +348  + gSyem +:: +show_urs +( +uuid +:: +cse +:: +Shl + & +shl +) { + +349 +shl +. +tn +( +F +("Users:")); + +351 #ide +EMSESP_STANDALONE + + +352 + gEMSESP +:: +e8266R +. +gSecuryStgsSvi +()-> +ad +([&]( +SecuryStgs + & +curyStgs +) { + +353  +Ur + +ur + : +curyStgs +. +urs +) { + +354 +shl +. +tn +( +F +(" uame: %s,asswd: %s, is_adm: %s"), +ur +. +uame +. +c_r +(), ur. +sswd +.c_r(), ur. +adm + ? F("yes") : F("no")); + +359 + gshl +. +n +(); + +362  + gSyem +:: +show_syem +( +uuid +:: +cse +:: +Shl + & +shl +) { + +363 +shl +. +tn +( +F +("Uime: %s"), +uuid +:: +log +:: +fm_timeamp_ms +(uuid:: +g_uime_ms +(), 3). +c_r +()); + +365 #ide +EMSESP_STANDALONE + + +366 #i +defed +( +ESP8266 +) + +367 + gshl +. +tn +( +F +("Ch ID: 0x%08x"), +ESP +. +gChId +()); + +368 + gshl +. +tn +( +F +("SDK vsi: %s"), +ESP +. +gSdkVsi +()); + +369 + gshl +. +tn +( +F +("Cܐvsi: %s"), +ESP +. +gCeVsi +(). +c_r +()); + +370 + gshl +. +tn +( +F +("Fu vsi: %s"), +ESP +. +gFuVsi +(). +c_r +()); + +371 + gshl +. +tn +( +F +("Bo vsi: %u"), +ESP +. +gBoVsi +()); + +372 + gshl +. +tn +( +F +("Bo mode: %u"), +ESP +. +gBoMode +()); + +373 + gshl +. +tn +( +F +("CPU fqucy: %u MHz"), +ESP +. +gCpuFqMHz +()); + +374 + gshl +. +tn +( +F +("Fsh ch: 0x%08X (%u bys)"), +ESP +. +gFshChId +(), ESP. +gFshChRlSize +()); + +375 + gshl +. +tn +( +F +("Reas: %s"), +ESP +. +gRetRs +(). +c_r +()); + +376 + gshl +. +tn +( +F +("Refo: %s"), +ESP +. +gRetInfo +(). +c_r +()); + +377 + gshl +. +tn +( +F +("Fhp: %lu bys"), () +ESP +. +gFeHp +()); + +378 + gshl +. +tn +( +F +("Fmem: %d %%"), +_mem +()); + +379 + gshl +. +tn +( +F +("Maximum fblock size: %lu bys"), () +ESP +. +gMaxFeBlockSize +()); + +380 + gshl +. +tn +( +F +("Hagmti: %u %%"), +ESP +. +gHpFgmti +()); + +381 + gshl +. +tn +( +F +("Fctuiڠack: %lu bys"), () +ESP +. +gFeCtSck +()); + +382 #i +defed +( +ESP32 +) + +383 + gshl +. +tn +( +F +("SDK vsi: %s"), +ESP +. +gSdkVsi +()); + +384 + gshl +. +tn +( +F +("CPU fqucy: %u MHz"), +ESP +. +gCpuFqMHz +()); + +386 + gshl +. +tn +( +F +("Skch size: %u by(%u by)"), +ESP +. +gSkchSize +(), ESP. +gFeSkchS +()); + +387 + gshl +. +tn +( +F +("Fhp: %lu bys"), () +ESP +. +gFeHp +()); + +388 + gshl +. +tn +( +F +("Fmem: %d %%"), +_mem +()); + +389 + gshl +. +n +(); + +391  + gWiFi +. +us +()) { + +392  + gWL_IDLE_STATUS +: + +393 +shl +. +tn +( +F +("WiFi: Idle")); + +396  + gWL_NO_SSID_AVAIL +: + +397 +shl +. +tn +( +F +("WiFi: Networkot found")); + +400  + gWL_SCAN_COMPLETED +: + +401 +shl +. +tn +( +F +("WiFi: Network scan complete")); + +404  + gWL_CONNECTED +: { + +405 +shl +. +tn +( +F +("WiFi: Connected")); + +406 + gshl +. +tn +( +F +("SSID: %s"), +WiFi +. +SSID +(). +c_r +()); + +407 + gshl +. +tn +( +F +("BSSID: %s"), +WiFi +. +BSSIDr +(). +c_r +()); + +408 + gshl +. +tn +( +F +("RSSI: %d dBm (%d %%)"), +WiFi +. +RSSI +(), +wifi_quy +()); + +409 + gshl +. +tn +( +F +("MACddss: %s"), +WiFi +. +macAddss +(). +c_r +()); + +411 #i +defed +( +ESP8266 +) + +412 + gshl +. +tn +( +F +("Home: %s"), +WiFi +. +home +(). +c_r +()); + +413 #i +defed +( +ESP32 +) + +414 + gshl +. +tn +( +F +("Home: %s"), +WiFi +. +gHome +()); + +416 + gshl +. +tn +( +F +("IPv4ddss: %s/%s"), +uuid +:: +b_to_rg +( +WiFi +. +lolIP +()). +c_r +(), uuid::b_to_rg(WiFi. +subtMask +()).c_str()); + +417 + gshl +. +tn +( +F +("IPv4 geway: %s"), +uuid +:: +b_to_rg +( +WiFi +. +gewayIP +()). +c_r +()); + +418 + gshl +. +tn +( +F +("IPv4amerv: %s"), +uuid +:: +b_to_rg +( +WiFi +. +dnsIP +()). +c_r +()); + +421  + gWL_CONNECT_FAILED +: + +422 +shl +. +tn +( +F +("WiFi: Connection failed")); + +425  + gWL_CONNECTION_LOST +: + +426 +shl +. +tn +( +F +("WiFi: Connectionost")); + +429  + gWL_DISCONNECTED +: + +430 +shl +. +tn +( +F +("WiFi: Disconnected")); + +433  + gWL_NO_SHIELD +: + +435 +shl +. +tn +( +F +("WiFi: Unknown")); + +439 + gEMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +440 +shl +. +n +(); + +441 +shl +. +tn +( +F +("Syslog:")); + +442 +shl +. +t +(" "); + +443 +shl +. +tn +( +F_ +( +ho_fmt +), ! +gs +. +syog_ho +. +isEmy +(? stgs.syog_ho. +c_r +(: +uuid +:: +ad_ash_rg +(F_( +unt +)).c_str()); + +444 +shl +. +t +(" "); + +445 +shl +. +tn +( +F_ +( +log_v_fmt +), +uuid +:: +log +:: +fm_v_low +( +ic_ +( +gs +. +syog_v +))); + +446 +shl +. +t +(" "); + +447 +shl +. +tn +( +F_ +( +mk_rv_fmt +), +gs +. +syog_mk_rv +); + +454  + gSyem +:: +cse_commds +( +Shl + & +shl +,  +cڋxt +) { + +455 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +456 +CommdFgs +:: +ADMIN +, + +457 +ash_rg_ve +{ +F_ +( +t +)}, + +458 []( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts + __attribute__((unused))) { + +459 +t +(); + +462 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +463 +CommdFgs +:: +ADMIN +, + +464 +ash_rg_ve +{ +F_ +( +wifi +), F_( +c +)}, + +465 []( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts + __attribute__((unused))) { + +466 +wifi_c +(); + +469 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +470 +CommdFgs +:: +ADMIN +, + +471 +ash_rg_ve +{ +F_ +( +fm +)}, + +472 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +473 +shl +. +r_sswd +( +F_ +( +sswd_om +), [=]( +Shl + & shl, +bo + +comed +, cڡ +d +:: +rg + & +sswd +) { + +474 i( +comed +) { + +475 +EMSESP +:: +e8266R +. +gSecuryStgsSvi +()-> +ad +([&]( +SecuryStgs + & +curyStgs +) { + +476 i( +curyStgs +. +jwtSe +. +equs +( +sswd +. +c_r +())) { + +477 +fm +( +shl +); + +479 +shl +. +n +( +F +("incorrectassword")); + +486 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +487 +CommdFgs +:: +ADMIN +, + +488 +ash_rg_ve +{ +F_ +( +sswd +)}, + +489 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +490 +shl +. +r_sswd +( +F_ +( +w_sswd_om1 +), []( +Shl + & shl, +bo + +comed +, cڡ +d +:: +rg + & +sswd1 +) { + +491 i( +comed +) { + +492 +shl +. +r_sswd +( +F_ +( +w_sswd_om2 +), + +493 [ +sswd1 +]( +Shl + & +shl +, +bo + +comed +, cڡ +d +:: +rg + & +sswd2 +) { + +494 i( +comed +) { + +495 i( +sswd1 + = +sswd2 +) { + +496 +EMSESP +:: +e8266R +. +gSecuryStgsSvi +()-> +upde +( + +497 [&]( +SecuryStgs + & +curyStgs +) { + +498 +curyStgs +. +jwtSe + = +sswd2 +. +c_r +(); + +499  +SUpdeResu +:: +CHANGED +; + +502 +shl +. +n +( +F +("Adminassword updated")); + +504 +shl +. +n +( +F +("Passwords doot match")); + +512 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +513 +CommdFgs +:: +USER +, + +514 +ash_rg_ve +{ +F_ +( +show +)}, + +515 [=]( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +516 +show_syem +( +shl +); + +517 +shl +. +n +(); + +520 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +521 +CommdFgs +:: +ADMIN +, + +522 +ash_rg_ve +{ +F_ +( +t +), F_( +wifi +), F_( +home +)}, + +523 +ash_rg_ve +{ +F_ +( +me_mdy +)}, + +524 []( +Shl + & +shl + +__ibu__ +(( +unud +)), cڡ +d +:: +ve + & +gumts +) { + +525 +shl +. +n +("The wifi connection will beeset..."); + +526 +Shl +:: +lo_l +(); + +527 +day +(1000); + +528 +EMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +upde +( + +529 [&]( +WiFiStgs + & +wifiStgs +) { + +530 +wifiStgs +. +home + = +gumts +. +t +(). +c_r +(); + +531  +SUpdeResu +:: +CHANGED +; + +536 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +537 +CommdFgs +:: +ADMIN +, + +538 +ash_rg_ve +{ +F_ +( +t +), F_( +wifi +), F_( +ssid +)}, + +539 +ash_rg_ve +{ +F_ +( +me_mdy +)}, + +540 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts +) { + +541 +EMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +updeWhoutPragi +([&]( +WiFiStgs + & +wifiStgs +) { + +542 +wifiStgs +. +ssid + = +gumts +. +t +(). +c_r +(); + +543  +SUpdeResu +:: +CHANGED +; + +545 +shl +. +n +("Use `wifieconnect`opplyheew settings"); + +548 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +549 +CommdFgs +:: +ADMIN +, + +550 +ash_rg_ve +{ +F_ +( +t +), F_( +wifi +), F_( +sswd +)}, + +551 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +552 +shl +. +r_sswd +( +F_ +( +w_sswd_om1 +), []( +Shl + & shl, +bo + +comed +, cڡ +d +:: +rg + & +sswd1 +) { + +553 i( +comed +) { + +554 +shl +. +r_sswd +( +F_ +( +w_sswd_om2 +), + +555 [ +sswd1 +]( +Shl + & +shl +, +bo + +comed +, cڡ +d +:: +rg + & +sswd2 +) { + +556 i( +comed +) { + +557 i( +sswd1 + = +sswd2 +) { + +558 +EMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +updeWhoutPragi +( + +559 [&]( +WiFiStgs + & +wifiStgs +) { + +560 +wifiStgs +. +sswd + = +sswd2 +. +c_r +(); + +561  +SUpdeResu +:: +CHANGED +; + +563 +shl +. +n +("Use `wifieconnect`opplyheew settings"); + +565 +shl +. +n +( +F +("Passwords doot match")); + +573 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +574 +CommdFgs +:: +USER +, + +575 +ash_rg_ve +{ +F_ +( +t +)}, + +576 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +))) { + +577 +EMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +ad +([&]( +WiFiStgs + & +wifiStgs +) { + +578 +shl +. +t +(" "); + +579 +shl +. +tn +( +F_ +( +home_fmt +), + +580 +wifiStgs +. +home +. +isEmy +(? +uuid +:: +ad_ash_rg +( +F_ +( +unt +)). +c_r +() + +581 : +wifiStgs +. +home +. +c_r +()); + +584 +EMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +ad +([&]( +WiFiStgs + & +wifiStgs +) { + +585 +shl +. +t +(" "); + +586 +shl +. +tn +( +F_ +( +wifi_ssid_fmt +), + +587 +wifiStgs +. +ssid +. +isEmy +(? +uuid +:: +ad_ash_rg +( +F_ +( +unt +)). +c_r +() + +588 : +wifiStgs +. +ssid +. +c_r +()); + +589 +shl +. +t +(" "); + +590 +shl +. +tn +( +F_ +( +wifi_sswd_fmt +), +wifiStgs +. +ssid +. +isEmy +(? F_( +unt +: F_( +aisks +)); + +599 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +600 +CommdFgs +:: +ADMIN +, + +601 +ash_rg_ve +{ +F_ +( +show +), F_( +urs +)}, + +602 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts + +__ibu__ +(( +unud +)){ +Syem +:: +show_urs +(shell); }); + +604 + gEMSESPShl +:: +commds +-> +add_commd +( +ShlCڋxt +:: +SYSTEM +, + +605 +CommdFgs +:: +ADMIN +, + +606 +ash_rg_ve +{ +F_ +( +p +)}, + +607 +ash_rg_ve +{ +F_ +( +gpio_mdy +), F_( +da_tiڮ +)}, + +608 []( +Shl + & +shl +, cڡ +d +:: +ve + & +gumts +) { + +609 i( +gumts +. +size +() == 1) { + +610 +shl +. +tn +( +F +("use on/off, 1/0 orrue/false")); + +613  +p + = 0; + +614 i( +Hrs +:: +vue2numb +( +gumts +[0]. +c_r +(), +p +)) { + +615 +Syem +:: +mq_commd_p +( +gumts +[1]. +c_r +(), +p +); + +620 + gCse +:: +r_cuom_cڋxt +( +shl +, +cڋxt +); + +626 +bo + + gSyem +:: +check_upgde +() { + +627 #i +defed +( +ESP8266 +) + +629 +LeFSCfig + +l_cfg +; + +630 + gl_cfg +. +tAutoFm +( +l +); + +631 + gLeFS +. +tCfig +( +l_cfg +); + +632 i( + gLeFS +. +beg +()) { + +633 #i +defed +( +EMSESP_DEBUG +) + +634 + gSl +. +beg +(115200); + +635 + gSl +. +n +( +F +("FS is Littlefs")); + +636 + gSl +. +d +(); + +638  + gl +; + +641 #agm +GCC + +dgnoic + +push + + +642 #agm +GCC + +dgnoic + +igned + "-Wdeprecated-declarations" + +644 +SPIFFSCfig + + gcfg +; + +645 + gcfg +. +tAutoFm +( +l +); + +646 + gSPIFFS +. +tCfig +( +cfg +); + +647 i(! + gSPIFFS +. +beg +()) { + +648 #i +defed +( +EMSESP_DEBUG +) + +649 + gSl +. +beg +(115200); + +650 + gSl +. +n +( +F +("No old SPIFFS found!")); + +651 + gSl +. +d +(); + +654 + gl_cfg +. +tAutoFm +( +ue +); + +655 + gLeFS +. +tCfig +( +l_cfg +); + +656  + gl +; + +659 + gSl +. +beg +(115200); + +661 +bo + + ged + = +l +; + +662 +Fe + + gfe +; + +663 +JsObje + + gtwk +, + gg +, + gmq +, + gcuom_gs +; + +664 + gSticJsDocumt +<1024> + gdoc +; + +674 + gfe + = +SPIFFS +. +ݒ +("/myesp.json", "r"); + +675 i(! + gfe +) { + +676 + gSl +. +n +( +F +("Unableoeadhe system config file")); + +677 + ged + = +ue +; + +679 +DerliziE + + gr + = +derlizeJs +( +doc +, +fe +); + +680 i( + gr +) { + +681 + gSl +. +tf +( +PSTR +("E. Faedderlizsyem js, %s\n"), +r +. +c_r +()); + +682 + ged + = +ue +; + +684 + gSl +. +n +( +F +("Migrating settings from EMS-ESP v1.9...")); + +685 #i +defed +( +EMSESP_DEBUG +) + +686 +rlizeJs +( +doc +, +Sl +); + +687 + gSl +. +n +(); + +689 + gtwk + = +doc +["network"]; + +690 + gg + = +doc +["general"]; + +691 + gmq + = +doc +["mqtt"]; + +694 + gl_cfg +. +tAutoFm +( +ue +); + +695 + gLeFS +. +tCfig +( +l_cfg +); + +696 + gLeFS +. +beg +(); + +697 + gEMSESP +:: +e8266R +. +beg +(); + +698 + gEMSESP +:: +emStgsSvi +. +beg +(); + +700 + gEMSESP +:: +e8266R +. +gWiFiStgsSvi +()-> +upde +( + +701 [&]( +WiFiStgs + & +wifiStgs +) { + +702 +wifiStgs +. +home + = +g +["home"] | +FACTORY_WIFI_HOSTNAME +; + +703 +wifiStgs +. +ssid + = +twk +["ssid"] | +FACTORY_WIFI_SSID +; + +704 +wifiStgs +. +sswd + = +twk +["sswd"] | +FACTORY_WIFI_PASSWORD +; + +706 +wifiStgs +. +icIPCfig + = +l +; + +707 +JsUts +:: +adIP +( +twk +, "ic", +wifiStgs +. +lolIP +); + +708 +JsUts +:: +adIP +( +twk +, "dns", +wifiStgs +. +dnsIP1 +); + +709 +JsUts +:: +adIP +( +twk +, "geway", +wifiStgs +. +gewayIP +); + +710 +JsUts +:: +adIP +( +twk +, "nmask", +wifiStgs +. +subtMask +); + +712  +SUpdeResu +:: +CHANGED +; + +716 + gEMSESP +:: +e8266R +. +gSecuryStgsSvi +()-> +upde +( + +717 [&]( +SecuryStgs + & +curyStgs +) { + +718 +curyStgs +. +jwtSe + = +g +["sswd"] | +FACTORY_JWT_SECRET +; + +720  +SUpdeResu +:: +CHANGED +; + +724 + gEMSESP +:: +e8266R +. +gMqStgsSvi +()-> +upde +( + +725 [&]( +MqStgs + & +mqStgs +) { + +726 +mqStgs +. +ho + = +mq +[""] | +FACTORY_MQTT_HOST +; + +727 +mqStgs +. +mq_fm + = ( +mq +["áedjs"] ? +MQTT_fm +:: +NESTED + : MQTT_fm:: +SINGLE +); + +728 +mqStgs +. +mq_qos + = +mq +["qos"] | 0; + +729 +mqStgs +. +uame + = +mq +["user"] | ""; + +730 +mqStgs +. +sswd + = +mq +["password"] | ""; + +731 +mqStgs +. +pt + = +mq +["pt"] | +FACTORY_MQTT_PORT +; + +732 +mqStgs +. +Id + = +FACTORY_MQTT_CLIENT_ID +; + +733 +mqStgs +. +abd + = +mq +["enabled"]; + +734 +mqStgs +. +syem_hbt + = +mq +["heartbeat"]; + +735 +mqStgs +. +kpAlive + = +FACTORY_MQTT_KEEP_ALIVE +; + +736 +mqStgs +. +nSessi + = +FACTORY_MQTT_CLEAN_SESSION +; + +737 +mqStgs +. +maxTicLgth + = +FACTORY_MQTT_MAX_TOPIC_LENGTH +; + +739  +SUpdeResu +:: +CHANGED +; + +744 + gfe +. +o +(); + +746 i( + ged +) { + +747 #i +defed +( +EMSESP_DEBUG +) + +748 + gSl +. +n +( +F +("Failedoead system config. Quitting.")); + +750 + gSPIFFS +. +d +(); + +751 + gSl +. +d +(); + +752  + gl +; + +760 + gdoc +. +r +(); + +761 + ged + = +l +; + +762 + gfe + = +SPIFFS +. +ݒ +("/customconfig.json", "r"); + +763 i(! + gfe +) { + +764 + gSl +. +n +( +F +("Unableoead custom config file")); + +765 + ged + = +ue +; + +767 +DerliziE + + gr + = +derlizeJs +( +doc +, +fe +); + +768 i( + gr +) { + +769 + gSl +. +tf +( +PSTR +("E. Faedderlizcuom js, %s\n"), +r +. +c_r +()); + +770 + ged + = +ue +; + +772 #i +defed +( +EMSESP_DEBUG +) + +773 +rlizeJs +( +doc +, +Sl +); + +774 + gSl +. +n +(); + +776 + gcuom_gs + = +doc +["settings"]; + +777 + gEMSESP +:: +emStgsSvi +. +upde +( + +778 [&]( +EMSESPStgs + & +gs +) { + +779 +gs +. +tx_mode + = +cuom_gs +["tx_mode"] | +EMSESP_DEFAULT_TX_MODE +; + +780 +gs +. +show_t + = +cuom_gs +["show_t"] | +EMSESP_DEFAULT_SHOWER_ALERT +; + +781 +gs +. +show_tim + = +cuom_gs +["show_tim"] | +EMSESP_DEFAULT_SHOWER_TIMER +; + +782 +gs +. +ma_thmo + = +cuom_gs +["ma_thmo"] | +EMSESP_DEFAULT_MASTER_THERMOSTAT +; + +783 +gs +. +ems_bus_id + = +cuom_gs +["bus_id"] | +EMSESP_DEFAULT_EMS_BUS_ID +; + +784 +gs +. +syog_ho + = +EMSESP_DEFAULT_SYSLOG_HOST +; + +785 +gs +. +syog_v + = +EMSESP_DEFAULT_SYSLOG_LEVEL +; + +786 +gs +. +syog_mk_rv + = +EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL +; + +787 +gs +. +ds_gpio + = +cuom_gs +["ds_gpio"] | +EMSESP_DEFAULT_DALLAS_GPIO +; + +788 +gs +. +ds_se + = +cuom_gs +["ds_se"] | +EMSESP_DEFAULT_DALLAS_PARASITE +; + +789 +gs +. +d_gpio + = +cuom_gs +["d_gpio"] | +EMSESP_DEFAULT_LED_GPIO +; + +791  +SUpdeResu +:: +CHANGED +; + +796 + gfe +. +o +(); + +798 + gSPIFFS +. +d +(); + +800 i( + ged +) { + +801 #i +defed +( +EMSESP_DEBUG +) + +802 + gSl +. +n +( +F +("Failedoead custom config. Quitting.")); + +804 + gSl +. +d +(); + +805  + gl +; + +808 #agm +GCC + +dgnoic + +p + + +810 + gSl +. +n +( +F +("Restarting...")); + +811 + gSl +. +ush +(); + +812 +day +(1000); + +813 + gSl +. +d +(); + +814 +day +(1000); + +815 +t +(); + +816  + gue +; + +818  + gl +; + + @src/system.h + +19 #ide +EMSESP_SYSTEM_H_ + + +20  + #EMSESP_SYSTEM_H_ + + + ) + +22  + ~ + +23  + ~ + +25  + ~"hrs.h +" + +26  + ~"cse.h +" + +27  + ~"mq.h +" + +28  + ~"gm.h +" + +30 #ide +EMSESP_STANDALONE + + +31  + ~ + +34  + ~ + +36 +usg + + guuid +:: +cse +:: +Shl +; + +38 +mea + + gem + { + +40 as + cSyem + { + +41 + gpublic +: + +42  +t +(); + +43  +lo +(); + +46  +t +(); + +47  +fm +( +uuid +:: +cse +:: +Shl + & +shl +); + +49  +cse_commds +( +Shl + & +shl +,  +cڋxt +); + +51  +mq_commd_p +(cڡ * +vue +, cڡ +t8_t + +id +); + +52  +mq_commd_nd +(cڡ * +vue +, cڡ +t8_t + +id +); + +54  +ut8_t + +_mem +(); + +55  +ud_us +( +bo + +_ogss +); + +56  +bo + +ud_us +(); + +57  +syog_ +(); + +58  +t_hbt +( +bo + +syem_hbt +); + +59  +nd_hbt +(); + +60  +show_mem +(cڡ * +ne +); + +61  +t_d +(); + +62 +bo + +check_upgde +(); + +64 + give +: + +65  +uuid +:: +log +:: +Logg + +logg_ +; + +67 #ide +EMSESP_STANDALONE + + +68  + guuid +:: +syog +:: +SyogSvi + +syog_ +; + +71  +cڡex + +ut32_t + + gSYSTEM_CHECK_FREQUENCY + = 5000; + +72  +cڡex + +ut32_t + + gLED_WARNING_BLINK + = 1000; + +73  +cڡex + +ut32_t + + gLED_WARNING_BLINK_FAST + = 100; + +74  +cڡex + +ut32_t + + gSYSTEM_HEARTBEAT_INTERVAL + = 60000; + +75  +cڡex + +ut32_t + + gSYSTEM_MEASURE_ANALOG_INTERVAL + = 1100; + +78  +cڡex + +ut8_t + + gLED_ON + = +LOW +; + +80  +d_mڙ +(); + +81  +t_d_d +( +ut32_t + +d +); + +82  +syem_check +(); + +83  +msu_og +(); + +85  +show_syem +( +uuid +:: +cse +:: +Shl + & +shl +); + +86  +show_urs +( +uuid +:: +cse +:: +Shl + & +shl +); + +87  +wifi_c +(); + +88  +t8_t + +wifi_quy +(); + +90 +bo + + gsyem_hhy_ + = +l +; + +91 +ut32_t + + gd_ash_d_ + = +LED_WARNING_BLINK_FAST +; + +92  +ut32_t + + ghp_t_ +; + +93  + gt_cou_ +; + +94 +ut32_t + + gϡ_hbt_ + = 0; + +95  +bo + + gud_us_ +; + +96  +ut16_t + + gog_ +; + +99 +bo + + gsyem_hbt_ +; + +100  +bo + + ghide_d_ +; + +101 +ut8_t + + gsyog_v_ +; + +102 +ut32_t + + gsyog_mk_rv_ +; + +103 +Sg + + gsyog_ho_ +; + +104  +ut8_t + + gd_gpio_ +; + + @src/telegram.cpp + +19  + ~"gm.h +" + +20  + ~"em.h +" + +22 +mea + + gem + { + +25 cڡ +ut8_t + + gems_c_b +[] = {0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x20, 0x22, 0x24, 0x26, + +39 +ut32_t + + gEMSbus +:: +ϡ_bus_aivy_ + = 0; + +40 +bo + + gEMSbus +:: +bus_ced_ + = +l +; + +41 +ut8_t + + gEMSbus +:: +ems_mask_ + = +EMS_MASK_UNSET +; + +42 +ut8_t + + gEMSbus +:: +ems_bus_id_ + = +EMSESP_DEFAULT_EMS_BUS_ID +; + +43 +ut8_t + + gEMSbus +:: +tx_mode_ + = +EMSESP_DEFAULT_TX_MODE +; + +44 +ut8_t + + gEMSbus +:: +tx_e_ + = +Tegm +:: +Oti +:: +NONE +; + +46 + guuid +:: +log +:: +Logg + +EMSbus +:: +logg_ +{ +F_ +( +gm +), uuid::log:: +Facy +:: +CONSOLE +}; + +50 +ut8_t + + gEMSbus +:: +lcuϋ_c +(cڡ ut8_* +da +, cڡ ut8_ +ngth +) { + +51 +ut8_t + + gi + = 0; + +52 +ut8_t + + gc + = 0; + +53  + gi + < + gngth +) { + +54 + gc + = +ems_c_b +[ +c +]; + +55 + gc + ^ +da +[ +i +++]; + +57  + gc +; + +62 + gTegm +:: +Tegm +(cڡ +ut8_t + +ݔi +, + +63 cڡ +ut8_t + +c +, + +64 cڡ +ut8_t + +de +, + +65 cڡ +ut16_t + +ty_id +, + +66 cڡ +ut8_t + +offt +, + +67 cڡ +ut8_t + * +da +, + +68 cڡ +ut8_t + +mesge_ngth +) + +69 : +ݔi +(operation) + +70 , +c +(src) + +71 , +de +(dest) + +72 , +ty_id +(type_id) + +73 , +offt +(offset) + +74 , +mesge_ngth +(message_length) { + +76  +ut8_t + + gi + = 0; ((< + gmesge_ngth +&& (< + gEMS_MAX_TELEGRAM_MESSAGE_LENGTH +)); i++) { + +77 + gmesge_da +[ +i +] = +da +[i]; + +82 + gd +:: +rg + +Tegm +:: +to_rg +() const { + +83 +ut8_t + +da +[ +EMS_MAX_TELEGRAM_LENGTH +]; + +84 +ut8_t + + gngth + = 0; + +85 + gda +[0] = +this +-> +c + ^ +RxSvi +:: +ems_mask +(); + +86 i( + gthis +-> + gݔi + = +Tegm +:: +Oti +:: +TX_READ +) { + +87 +da +[1] = +this +-> +de + | 0x80; + +88 + gda +[4] = +this +-> +mesge_da +[0]; + +89 i( + gthis +-> + gty_id + > 0xFF) { + +90 + gda +[2] = 0xFF; + +91 + gda +[5] = ( +this +-> +ty_id + >> 8) - 1; + +92 + gda +[6] = +this +-> +ty_id + & 0xFF; + +93 + gngth + = 7; + +95 + gda +[2] = +this +-> +ty_id +; + +96 + gngth + = 5; + +99 + gda +[1] = +this +-> +de +; + +100 i( + gthis +-> + gty_id + > 0xFF) { + +101 + gda +[2] = 0xFF; + +102 + gda +[4] = ( +this +-> +ty_id + >> 8) - 1; + +103 + gda +[5] = +this +-> +ty_id + & 0xFF; + +104 + gngth + = 6; + +106 + gda +[2] = +this +-> +ty_id +; + +107 + gngth + = 4; + +109  +ut8_t + + gi + = 0; i < + gthis +-> + gmesge_ngth +; i++) { + +110 + gda +[ +ngth +++] = +this +-> +mesge_da +[ +i +]; + +114  + gHrs +:: +da_to_hex +( +da +, +ngth +); + +118 + gd +:: +rg + +Tegm +:: +to_rg_mesge +() const { + +119 i( +this +-> +mesge_ngth + == 0) { + +120  +ad_ash_rg +( +F +("")); + +123  + gHrs +:: +da_to_hex +( +this +-> +mesge_da +,his-> +mesge_ngth +); + +127  + gRxSvi +:: +lo +() { + +128 ! +rx_gms_ +. +emy +()) { + +129 aut +gm + = +rx_gms_ +. +t +(). +gm_ +; + +130 () + gEMSESP +:: +oss_gm +( +gm +); + +131 +emt_gm_cou +(); + +132 + grx_gms_ +. +p_t +(); + +140  + gRxSvi +:: +add +( +ut8_t + * +da +, ut8_ +ngth +) { + +141 i( + gngth + < 2) { + +146 +ut8_t + + gc + = +lcuϋ_c +( +da +, +ngth + - 1); + +147 i( + gda +[ +ngth + - 1] ! +c +) { + +148 +emt_gm_r_cou +(); + +149 +LOG_ERROR +( +F +("Rx: %(CRC %02X !%02X)"), +Hrs +:: +da_to_hex +( +da +, +ngth +). +c_r +(), da[ngth - 1], +c +); + +157 i( +ems_mask +(= +EMS_MASK_UNSET +) { + +158 +ems_mask +( +da +[0]); + +162 +ut8_t + + gc + = +da +[0] & 0x7F; + +163 +ut8_t + + gde + = +da +[1] & 0x7F; + +164 +ut8_t + + gofft + = +da +[3]; + +166 +ut16_t + + gty_id +; + +167 +ut8_t + * + gmesge_da +; + +168 +ut8_t + + gmesge_ngth +; + +174 i( + gda +[2] < 0xF0 || + gngth + < 6) { + +176 + gty_id + = +da +[2]; + +177 + gmesge_da + = +da + + 4; + +178 + gmesge_ngth + = +ngth + - 5; + +181 +ut8_t + + gshi + = 0; + +182 i( + gda +[2] != 0xFF) { + +184 +shi + = ( +da +[4] != 0xFF) ? 2 : 1; + +186 + gty_id + = ( +da +[4 + +shi +] << 8) + data[5 + shift] + 256; + +187 + gmesge_da + = +da + + 6 + +shi +; + +188 + gmesge_ngth + = +ngth + - 7 - +shi +; + +192 i( + gEMSESP +:: +wch +(= +EMSESP +:: +Wch +:: +WATCH_RAW +) { + +193 +ut16_t + +a_wch_id + = +EMSESP +:: +wch_id +(); + +194 i(( + ga_wch_id + = +WATCH_ID_NONE +|| ( +ty_id + = +a_wch_id +) + +195 || (( +a_wch_id + < 0x80&& (( +c + =a_wch_id|| ( +de + ==race_watch_id)))) { + +196 +LOG_NOTICE +( +F +("Rx: %s"), +Hrs +:: +da_to_hex +( +da +, +ngth +). +c_r +()); + +200 #ifde +EMSESP_DEBUG + + +201 +LOG_DEBUG +( +F +("[DEBUG] New Rxegm, mesgngth %d"), +mesge_ngth +); + +206 i( + gty_id + == 0) { + +211 + gc + = +EMSESP +:: +check_ma_devi +( +c +, +ty_id +, +ue +); + +214 aut + ggm + = +d +:: +make_shed +< +Tegm +>(Tegm:: +Oti +:: +RX +, + gc +, + gde +, + gty_id +, + gofft +, + gmesge_da +, + gmesge_ngth +); + +217 i( + grx_gms_ +. +size +(> +MAX_RX_TELEGRAMS +) { + +218 +rx_gms_ +. +p_t +(); + +219 +emt_gm_r_cou +(); + +222 + grx_gms_ +. +ema_back +( +rx_gm_id_ +++, +d +:: +move +( +gm +)); + +230  + gTxSvi +:: +ush_tx_queue +() { + +231 +tx_gms_ +. +r +(); + +232 + gtx_gm_id_ + = 0; + +237  + gTxSvi +:: +t +() { + +239 +EMSESP +:: +emStgsSvi +. +ad +([&]( +EMSESPStgs + & +gs +) { + +240 +ems_bus_id +( +gs +.ems_bus_id); + +241 +tx_mode +( +gs +.tx_mode); + +245 +gm_ad_cou +(0); + +246 +gm_wre_cou +(0); + +247 +gm__cou +(0); + +251 +ad_que +( +EMSdevi +:: +EMS_TYPE_UBADevis +, EMSdevi:: +EMS_DEVICE_ID_BOILER +); + +255  + gTxSvi +:: +nd_pl +() { + +257 i( +tx_mode +()) { + +258 +EMSut +:: +nd_pl +( +ems_bus_id +(^ +ems_mask +()); + +264  + gTxSvi +:: +nd +() { + +266 i(! +bus_ced +()) { + +271 i( + gtx_gms_ +. +emy +()) { + +272 +nd_pl +(); + +277 i( +tx_mode +() != 0) { + +278 +nd_gm +( +tx_gms_ +. +t +()); + +282 + gtx_gms_ +. +p_t +(); + +286  + gTxSvi +:: +nd_gm +(cڡ +QueuedTxTegm + & +tx_gm +) { + +287  +ut8_t + +gm_w +[ +EMS_MAX_TELEGRAM_LENGTH +]; + +290 aut + ggm + = +tx_gm +. +gm_ +; + +293 +ut8_t + + gc + = +gm +-> +c +; + +294 i( +ems_mask +(! +EMS_MASK_UNSET +) { + +295 +c + ^ +ems_mask +(); + +297 + ggm_w +[0] = +c +; + +301 +ut8_t + + gde + = +gm +-> +de +; + +304 + gde + = +EMSESP +:: +check_ma_devi +( +de +, +gm +-> +ty_id +, +l +); + +306 i( + ggm +-> + gݔi + = +Tegm +:: +Oti +:: +TX_READ +) { + +307 +de + |= 0x80; + +309 + ggm_w +[1] = +de +; + +311 +ut8_t + + gmesge_p + = 0; + +312 +bo + + gcy_da + = +ue +; + +314 i( + ggm +-> + gty_id + > 0xFF) { + +316 + ggm_w +[2] = 0xFF; + +317 + ggm_w +[3] = +gm +-> +offt +; + +320 i( + ggm +-> + gݔi + = +Tegm +:: +Oti +:: +TX_WRITE +) { + +322 +gm_w +[4] = ( +gm +-> +ty_id + >> 8) - 1; + +323 + ggm_w +[5] = +gm +-> +ty_id + & 0xFF; + +324 + gmesge_p + = 6; + +327 + ggm_w +[4] = +gm +-> +mesge_da +[0]; + +328 + ggm_w +[5] = ( +gm +-> +ty_id + >> 8) - 1; + +329 + ggm_w +[6] = +gm +-> +ty_id + & 0xFF; + +330 + gmesge_p + = 7; + +331 + gcy_da + = +l +; + +335 + ggm_w +[2] = +gm +-> +ty_id +; + +336 + ggm_w +[3] = +gm +-> +offt +; + +337 + gmesge_p + = 4; + +340 i( + gcy_da +) { + +341 i( + ggm +-> + gmesge_ngth + > + gEMS_MAX_TELEGRAM_MESSAGE_LENGTH +) { + +346  +ut8_t + + gi + = 0; i < + ggm +-> + gmesge_ngth +; i++) { + +347 + ggm_w +[ +mesge_p +++] = +gm +-> +mesge_da +[ +i +]; + +351 +ut8_t + + gngth + = +mesge_p +; + +353 + ggm_ϡ_ + = +d +:: +make_shed +< +Tegm +>(* +gm +); + +355 + ggm_w +[ +ngth +] = +lcuϋ_c +( +gm_w +,ength); + +357 + gngth +++; + +359 +LOG_DEBUG +( +F +("Sending %s Tx [#%d],elegram: %s"), + +360 ( +gm +-> +ݔi + = +Tegm +:: +Oti +:: +TX_WRITE +? +F +("write") : F("read"), + +361 +tx_gm +. +id_ +, + +362 +Hrs +:: +da_to_hex +( +gm_w +, +ngth +). +c_r +()); + +365 +ut16_t + + gus + = +EMSut +:: +sm +( +gm_w +, +ngth +); + +367 i( + gus + = +EMS_TX_STATUS_ERR +) { + +368 +LOG_ERROR +( +F +("Failedoransmit Tx via UART.")); + +369 +emt_gm__cou +(); + +370 +tx_e +( +Tegm +:: +Oti +:: +NONE +); + +374 +tx_e +( +gm +-> +ݔi +); + +380  + gTxSvi +:: +nd_gm +(cڡ +ut8_t + * +da +, cڡ ut8_ +ngth +) { + +381 +ut8_t + + ggm_w +[ +EMS_MAX_TELEGRAM_LENGTH +]; + +383  +ut8_t + + gi + = 0; i < + gngth +; i++) { + +384 + ggm_w +[ +i +] = +da +[i]; + +386 + ggm_w +[ +ngth +] = +lcuϋ_c +( +gm_w +,ength); + +388 +tx_e +( +Tegm +:: +Oti +:: +NONE +); + +391 +ut16_t + + gus + = +EMSut +:: +sm +( +gm_w +, +ngth +); + +393 i( + gus + = +EMS_TX_STATUS_ERR +) { + +394 +LOG_ERROR +( +F +("Failedoransmit Tx via UART.")); + +395 +emt_gm__cou +(); + +401  + gTxSvi +:: +add +(cڡ +ut8_t + +ݔi +, + +402 cڡ +ut8_t + +de +, + +403 cڡ +ut16_t + +ty_id +, + +404 cڡ +ut8_t + +offt +, + +405 +ut8_t + * +mesge_da +, + +406 cڡ +ut8_t + +mesge_ngth +, + +407 cڡ +bo + +t +) { + +408 aut + ggm + = +d +:: +make_shed +< +Tegm +>( +ݔi +, +ems_bus_id +(), + gde +, + gty_id +, + gofft +, + gmesge_da +, + gmesge_ngth +); + +410 #ifde +EMSESP_DEBUG + + +411 +LOG_DEBUG +( +F +("[DEBUG] New Tx [#%d]egm,gth %d"), +tx_gm_id_ +, +mesge_ngth +); + +415 i( + gtx_gms_ +. +size +(> +MAX_TX_TELEGRAMS +) { + +416 +tx_gms_ +. +p_t +(); + +419 i( + gt +) { + +420 + gtx_gms_ +. +ema_t +( +tx_gm_id_ +++, +d +:: +move +( +gm +), +l +); + +422 + gtx_gms_ +. +ema_back +( +tx_gm_id_ +++, +d +:: +move +( +gm +), +l +); + +430  + gTxSvi +:: +add +( +ut8_t + +ݔi +, cڡ ut8_* +da +, cڡ ut8_ +ngth +, cڡ +bo + +t +) { + +432 +ut8_t + + gc + = +da +[0]; + +433 +ut8_t + + gde + = +da +[1]; + +434 +ut8_t + + gofft + = +da +[3]; + +436 +ut16_t + + gty_id +; + +437 cڡ +ut8_t + * + gmesge_da +; + +438 +ut8_t + + gmesge_ngth +; + +442 i( + gda +[2] < 0xF0) { + +444 + gty_id + = +da +[2]; + +445 + gmesge_da + = +da + + 4; + +446 + gmesge_ngth + = +ngth + - 4; + +449 +ut8_t + + gshi + = 0; + +450 i( + gda +[2] != 0xFF) { + +452 +shi + = ( +da +[4] != 0xFF) ? 2 : 1; + +454 + gty_id + = ( +da +[4 + +shi +] << 8) + data[5 + shift] + 256; + +455 + gmesge_da + = +da + + 6 + +shi +; + +456 + gmesge_ngth + = +ngth + - 6 - +shi +; + +460 i(( + gty_id + =0|| ( +mesge_ngth + == 0)) { + +461 #ifde +EMSESP_DEBUG + + +462 +LOG_DEBUG +( +F +("[DEBUG] Txegmy %d faed,gth %d"), +ty_id +, +mesge_ngth +); + +467 i( + gݔi + = +Tegm +:: +Oti +:: +TX_RAW +) { + +468 i( +de + & 0x80) { + +469 +ݔi + = +Tegm +:: +Oti +:: +TX_READ +; + +471 + gݔi + = +Tegm +:: +Oti +:: +TX_WRITE +; + +472 +t_po_nd_quy +( +ty_id +); + +474 + gEMSESP +:: +t_ad_id +( +ty_id +); + +477 aut + ggm + = +d +:: +make_shed +< +Tegm +>( +ݔi +, + gc +, + gde +, + gty_id +, + gofft +, + gmesge_da +, + gmesge_ngth +); + +480 i( + gtx_gms_ +. +size +(> +MAX_TX_TELEGRAMS +) { + +481 +tx_gms_ +. +p_t +(); + +484 #ifde +EMSESP_DEBUG + + +485 +LOG_DEBUG +( +F +("[DEBUG] New Tx [#%d]egm,gth %d"), +tx_gm_id_ +, +mesge_ngth +); + +488 i( + gt +) { + +489 + gtx_gms_ +. +ema_t +( +tx_gm_id_ +++, +d +:: +move +( +gm +), +l +); + +491 + gtx_gms_ +. +ema_back +( +tx_gm_id_ +++, +d +:: +move +( +gm +), +l +); + +496  + gTxSvi +:: +ad_que +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +de +, cڡ ut8_ +offt +) { + +497 +LOG_DEBUG +( +F +("Txdequedevi 0x%02X f܁y ID 0x%02X"), +de +, +ty_id +); + +499 +ut8_t + + gmesge_da +[1] = { +EMS_MAX_TELEGRAM_LENGTH +}; + +500 +add +( +Tegm +:: +Oti +:: +TX_READ +, +de +, +ty_id +, +offt +, +mesge_da +, 1); + +504  + gTxSvi +:: +nd_w +(cڡ * +gm_da +) { + +506  +gm +[ +EMS_MAX_TELEGRAM_LENGTH + * 3]; + +507  +ut8_t + + gi + = 0; i < + +( +gm_da +); i++) { + +508 + ggm +[ +i +] = +gm_da +[i]; + +510 + ggm +[ + +( +gm_da +)] = '\0'; + +512 +ut8_t + + gcou + = 0; + +513 * + gp +; + +514  + gvue +[10] = {0}; + +516 +ut8_t + + gda +[ +EMS_MAX_TELEGRAM_LENGTH +]; + +519 i(( + gp + = +ok +( +gm +, " ,"))) { + +520 +y +( +vue +, +p +, 10); + +521 + gda +[0] = ( +ut8_t +) + +( +vue +, 0, 16); + +525  + gp + != 0) { + +526 i(( +p + = +ok +( +nuαr +, " ,"))) { + +527 +y +( +vue +, +p +, 10); + +528 +ut8_t + + gv + = (ut8_t) + +( +vue +, 0, 16); + +529 + gda +[++ +cou +] = +v +; + +533 i( + gcou + == 0) { + +537 +add +( +Tegm +:: +Oti +:: +TX_RAW +, +da +, +cou + + 1, +ue +); + +542  + gTxSvi +:: +y_tx +(cڡ +ut8_t + +ݔi +, cڡ ut8_* +da +, cڡ ut8_ +ngth +) { + +544 i(++ + gy_cou_ + > + gMAXIMUM_TX_RETRIES +) { + +545 +t_y_cou +(); + +546 +emt_gm__cou +(); + +548 +LOG_ERROR +( +F +("Last Tx %s operation failedfter %detries. Ignoringequest."), + +549 ( +ݔi + = +Tegm +:: +Oti +:: +TX_WRITE +? +F +("Write") : F("Read"), + +550 +MAXIMUM_TX_RETRIES +); + +554 #ifde +EMSESP_DEBUG + + +555 +LOG_DEBUG +( +F +("[DEBUG] Last Tx %s operation failed. Retry #%d. sent message: %s,eceived: %s"), + +556 ( +ݔi + = +Tegm +:: +Oti +:: +TX_WRITE +? +F +("Write") : F("Read"), + +557 +y_cou_ +, + +558 +gm_ϡ_ +-> +to_rg +(). +c_r +(), + +559 +Hrs +:: +da_to_hex +( +da +, +ngth +). +c_r +()); + +563 i( + gtx_gms_ +. +size +(> +MAX_TX_TELEGRAMS +) { + +564 +tx_gms_ +. +p_back +(); + +567 + gtx_gms_ +. +ema_t +( +tx_gm_id_ +++, +d +:: +move +( +gm_ϡ_ +), +ue +); + +575 +bo + + gTxSvi +:: +is_ϡ_tx +(cڡ +ut8_t + +c +, cڡ ut8_ +de +) const { + +576  ((( + ggm_ϡ_ +-> + gde + & 0x7F=( +c + & 0x7F)&& (( +de + & 0x7F= +ems_bus_id +())); + +581 +ut16_t + + gTxSvi +:: +po_nd_quy +() { + +582 +ut16_t + +po_tyid + = +this +-> +g_po_nd_quy +(); + +584 i( + gpo_tyid +) { + +585 +ut8_t + + gde + = ( +this +-> +gm_ϡ_ +-> +de + & 0x7F); + +587 +ut8_t + + gofft + = ( +this +-> +gm_ϡ_ +-> +ty_id + = +po_tyid +? (his->gm_ϡ_-> +offt + / 26) * 26) : 0; + +588 +ut8_t + + gmesge_da +[1] = { +EMS_MAX_TELEGRAM_LENGTH +}; + +589 + gthis +-> +add +( +Tegm +:: +Oti +:: +TX_READ +, +de +, +po_tyid +, +offt +, +mesge_da +, 1, +ue +); + +591 +LOG_DEBUG +( +F +("Sdgo vidad,y ID 0x%02Xde 0x%02X"), +po_tyid +, +de +); + +592 +t_po_nd_quy +(0); + +595  + gpo_tyid +; + + @src/telegram.h + +19 #ide +EMSESP_TELEGRAM_H + + +20  + #EMSESP_TELEGRAM_H + + + ) + +22  + ~ + +23  + ~
  • + +26 #i +defed +( +ESP8266 +) + +27  + ~"ut/emsut_e8266.h +" + +28 #i +defed +( +ESP32 +) + +29  + ~"ut/emsut_e32.h +" + +30 #i +defed +( +EMSESP_STANDALONE +) + +31  + ~ + +34  + ~ + +36  + ~"hrs.h +" + +39  +cڡex + +ut8_t + + gEMS_VALUE_BOOL + = 0xFF; + +40  +cڡex + +ut8_t + + gEMS_VALUE_BOOL_OFF + = 0x00; + +41  +cڡex + +ut8_t + + gEMS_VALUE_BOOL_ON + = 0x01; + +43  +cڡex + +ut8_t + + gEMS_VALUE_BOOL_NOTSET + = 0xFE; + +44  +cڡex + +ut8_t + + gEMS_VALUE_UINT_NOTSET + = 0xFF; + +45  +cڡex + +t8_t + + gEMS_VALUE_INT_NOTSET + = 0x7F; + +46  +cڡex + +ut16_t + + gEMS_VALUE_USHORT_NOTSET + = 0x7D00; + +47  +cڡex + +t16_t + + gEMS_VALUE_SHORT_NOTSET + = 0x7D00; + +48  +cڡex + +ut32_t + + gEMS_VALUE_ULONG_NOTSET + = 0xFFFFFFFF; + +50  +cڡex + +ut8_t + + gEMS_MAX_TELEGRAM_LENGTH + = 32; + +51  +cڡex + +ut8_t + + gEMS_MAX_TELEGRAM_MESSAGE_LENGTH + = 27; + +53 +mea + + gem + { + +55 as + cTegm + { + +56 + gpublic +: + +57 +Tegm +(cڡ +ut8_t + +ݔi +, + +58 cڡ +ut8_t + +c +, + +59 cڡ +ut8_t + +de +, + +60 cڡ +ut16_t + +ty_id +, + +61 cڡ +ut8_t + +offt +, + +62 cڡ +ut8_t + * +mesge_da +, + +63 cڡ +ut8_t + +mesge_ngth +); + +64 ~ +Tegm +() = ; + +66 cڡ +ut8_t + + gݔi +; + +67 cڡ +ut8_t + + gc +; + +68 cڡ +ut8_t + + gde +; + +69 cڡ +ut16_t + + gty_id +; + +70 cڡ +ut8_t + + gofft +; + +71 cڡ +ut8_t + + gmesge_ngth +; + +72 +ut8_t + + gmesge_da +[ +EMS_MAX_TELEGRAM_MESSAGE_LENGTH +]; + +74 + gOti + : +ut8_t + { + +75 +NONE + = 0, + +76 + gRX +, + +77 + gTX_RAW +, + +78 + gTX_READ +, + +79 + gTX_WRITE +, + +82 + gd +:: +rg + +to_rg_mesge +() const; + +83 + gd +:: +rg + +to_rg +() const; + +86 +bo + +ad_bvue +( +ut8_t + & +vue +, cڡ ut8_ +dex +, cڡ ut8_ +b +) const { + +87 +ut8_t + + gabs_dex + = ( +dex + - +this +-> +offt +); + +88 i( + gabs_dex + > +this +-> +mesge_ngth +) { + +89  +l +; + +91 +ut8_t + + gv + = +vue +; + +92 + gvue + = ( +ut8_t +)((( +this +-> +mesge_da +[ +abs_dex +]>> ( +b +)) & 0x01); + +93 i( + gv + ! +vue +) { + +94  +ue +; + +96  + gl +; + +100 + gme + < +tyme + + gVue +> + +106 +bo + +ad_vue +( +Vue + & +vue +, cڡ +ut8_t + +dex +, ut8_ +s + = 0) const { + +107 +ut8_t + +num_bys + = (! +s +? ( +Vue +) : s; + +109 i(( + gdex + < + gthis +-> + gofft +|| ((dex -his->off+ + gnum_bys + - 1> +this +-> +mesge_ngth +)) { + +110  +l +; + +112 aut + gv + = +vue +; + +113 + gvue + = 0; + +114  +ut8_t + + gi + = 0; i < + gnum_bys +; i++) { + +115 + gvue + = ( +vue + << 8+ +this +-> +mesge_da +[ +dex + -his-> +offt + + +i +]; + +117 i( + gv + ! +vue +) { + +118  +ue +; + +120  + gl +; + +123 + give +: + +124 +t8_t + +_gDaPosi +(cڡ +ut8_t + +dex +, cڡ ut8_ +size +) const; + +127 as + cEMSbus + { + +128 + gpublic +: + +129  +uuid +:: +log +:: +Logg + +logg_ +; + +131  +cڡex + +ut8_t + + gEMS_MASK_UNSET + = 0xFF; + +132  +cڡex + +ut8_t + + gEMS_MASK_HT3 + = 0x80; + +133  +cڡex + +ut8_t + + gEMS_MASK_BUDERUS + = 0xFF; + +134  +cڡex + +ut8_t + + gEMS_TX_ERROR_LIMIT + = 10; + +136  +bo + +is_ht3 +() { + +137  ( + gems_mask_ + = +EMS_MASK_HT3 +); + +140  +ut8_t + +ems_mask +() { + +141  + gems_mask_ +; + +144  +ems_mask +( +ut8_t +ms_mask) { + +145 + gems_mask_ + = +ems_mask + & 0x80; + +148  +ut8_t + +tx_mode +() { + +149  + gtx_mode_ +; + +152  +tx_mode +( +ut8_t +x_mode) { + +153 + gtx_mode_ + = +tx_mode +; + +156  +ut8_t + +ems_bus_id +() { + +157  + gems_bus_id_ +; + +160  +ems_bus_id +( +ut8_t +ms_bus_id) { + +161 + gems_bus_id_ + = +ems_bus_id +; + +164  +bo + +bus_ced +() { + +165 #ide +EMSESP_STANDALONE + + +166 i(( + guuid +:: +g_uime +(- +ϡ_bus_aivy_ +> +EMS_BUS_TIMEOUT +) { + +167 +bus_ced_ + = +l +; + +169  + gbus_ced_ +; + +171  + gue +; + +176  +ϡ_bus_aivy +( +ut32_t + +timeamp +) { + +177 + gϡ_bus_aivy_ + = +timeamp +; + +178 + gbus_ced_ + = +ue +; + +181  +ut8_t + +tx_e +() { + +182  + gtx_e_ +; + +184  +tx_e +( +ut8_t +x_state) { + +185 + gtx_e_ + = +tx_e +; + +188  +ut8_t + +lcuϋ_c +(cڡ ut8_* +da +, cڡ ut8_ +ngth +); + +190 + give +: + +191  +cڡex + +ut32_t + +EMS_BUS_TIMEOUT + = 30000; + +192  +ut32_t + + gϡ_bus_aivy_ +; + +193  +bo + + gbus_ced_ +; + +194  +ut8_t + + gems_mask_ +; + +195  +ut8_t + + gems_bus_id_ +; + +196  +ut8_t + + gtx_mode_ +; + +197  +ut8_t + + gtx_e_ +; + +200 as + cRxSvi + : +public + +EMSbus + { + +201  +cڡex + +size_t + +MAX_RX_TELEGRAMS + = 10; + +203 + gpublic +: + +204 +RxSvi +() = ; + +205 ~ +RxSvi +() = ; + +207  +lo +(); + +208  +add +( +ut8_t + * +da +, ut8_ +ngth +); + +210 +ut32_t + +gm_cou +() const { + +211  + ggm_cou_ +; + +214  +emt_gm_cou +() { + +215 + ggm_cou_ +++; + +218 +ut32_t + +gm_r_cou +() const { + +219  + ggm_r_cou_ +; + +222  +emt_gm_r_cou +() { + +223 + ggm_r_cou_ +++; + +226 as + cQueuedRxTegm + { + +227 + gpublic +: + +228 cڡ +ut16_t + +id_ +; + +229 cڡ + gd +:: +shed_r + +gm_ +; + +231 ~ +QueuedRxTegm +() = ; + +232 +QueuedRxTegm +( +ut16_t + +id +, +d +:: +shed_r +< +Tegm +> && +gm +) + +233 : +id_ +( +id +) + +234 , +gm_ +( +d +:: +move +( +gm +)) { + +238 cڡ + gd +:: +li +< +QueuedRxTegm +> +queue +() const { + +239  +rx_gms_ +; + +242 + give +: + +243 +ut8_t + +rx_gm_id_ + = 0; + +244 +ut32_t + + ggm_cou_ + = 0; + +245 +ut32_t + + ggm_r_cou_ + = 0; + +246 + gd +:: +shed_r + +rx_gm +; + +247 + gd +:: +li +< +QueuedRxTegm +> +rx_gms_ +; + +250 as + cTxSvi + : +public + +EMSbus + { + +251 +public +: + +252  +cڡex + +size_t + +MAX_TX_TELEGRAMS + = 20; + +253  +cڡex + +ut8_t + + gTX_WRITE_FAIL + = 4; + +254  +cڡex + +ut8_t + + gTX_WRITE_SUCCESS + = 1; + +256 +TxSvi +() = ; + +257 ~ +TxSvi +() = ; + +259  +t +(); + +260  +nd +(); + +261  +add +(cڡ +ut8_t + +ݔi +, + +262 cڡ +ut8_t + +de +, + +263 cڡ +ut16_t + +ty_id +, + +264 cڡ +ut8_t + +offt +, + +265 +ut8_t + * +mesge_da +, + +266 cڡ +ut8_t + +mesge_ngth +, + +267 cڡ +bo + +t + = +l +); + +268  +add +(cڡ +ut8_t + +ݔi +, cڡ ut8_* +da +, cڡ ut8_ +ngth +, cڡ +bo + +t + = +l +); + +269  +ad_que +(cڡ +ut16_t + +ty_id +, cڡ +ut8_t + +de +, cڡ ut8_ +offt + = 0); + +270  +nd_w +(cڡ * +gm_da +); + +271  +nd_pl +(); + +272  +ush_tx_queue +(); + +273  +y_tx +(cڡ +ut8_t + +ݔi +, cڡ ut8_* +da +, cڡ ut8_ +ngth +); + +274 +bo + +is_ϡ_tx +(cڡ +ut8_t + +c +, cڡ ut8_ +de +) const; + +275 +ut16_t + +po_nd_quy +(); + +277 +ut8_t + +y_cou +() const { + +278  + gy_cou_ +; + +281  +t_y_cou +() { + +282 + gy_cou_ + = 0; + +285  +t_po_nd_quy +( +ut16_t + +ty_id +) { + +286 + ggm_ϡ_po_nd_quy_ + = +ty_id +; + +289 +ut16_t + +g_po_nd_quy +() { + +290  + ggm_ϡ_po_nd_quy_ +; + +293 +ut32_t + +gm_ad_cou +() const { + +294  + ggm_ad_cou_ +; + +297  +gm_ad_cou +( +ut8_t +elegram_read_count) { + +298 + ggm_ad_cou_ + = +gm_ad_cou +; + +301  +emt_gm_ad_cou +() { + +302 + ggm_ad_cou_ +++; + +305 +ut32_t + +gm__cou +() const { + +306  + ggm__cou_ +; + +309  +gm__cou +( +ut8_t +elegram_fail_count) { + +310 + ggm__cou_ + = +gm__cou +; + +313  +emt_gm__cou +() { + +314 + ggm__cou_ +++; + +317 +ut32_t + +gm_wre_cou +() const { + +318  + ggm_wre_cou_ +; + +321  +gm_wre_cou +( +ut8_t +elegram_write_count) { + +322 + ggm_wre_cou_ + = +gm_wre_cou +; + +325  +emt_gm_wre_cou +() { + +326 + ggm_wre_cou_ +++; + +329 as + cQueuedTxTegm + { + +330 + gpublic +: + +331 cڡ +ut16_t + +id_ +; + +332 cڡ + gd +:: +shed_r + +gm_ +; + +333 cڡ +bo + + gy_ +; + +335 ~ +QueuedTxTegm +() = ; + +336 +QueuedTxTegm +( +ut16_t + +id +, +d +:: +shed_r +< +Tegm +> && +gm +, +bo + +y +) + +337 : +id_ +( +id +) + +338 , +gm_ +( +d +:: +move +( +gm +)) + +339 , +y_ +( +y +) { + +343 cڡ + gd +:: +li +< +QueuedTxTegm +> +queue +() const { + +344  +tx_gms_ +; + +347 #i +defed +( +EMSESP_DEBUG +) + +348  +cڡex + +ut8_t + + gMAXIMUM_TX_RETRIES + = 0; + +350  +cڡex + +ut8_t + + gMAXIMUM_TX_RETRIES + = 3; + +353 + give +: + +354 +d +:: +li +< +QueuedTxTegm +> +tx_gms_ +; + +356 +ut32_t + + ggm_ad_cou_ + = 0; + +357 +ut32_t + + ggm_wre_cou_ + = 0; + +358 +ut32_t + + ggm__cou_ + = 0; + +360 + gd +:: +shed_r +< +Tegm +> +gm_ϡ_ +; + +361 +ut16_t + + ggm_ϡ_po_nd_quy_ +; + +362 +ut8_t + + gy_cou_ + = 0; + +364 +ut8_t + + gtx_gm_id_ + = 0; + +366  +nd_gm +(cڡ +QueuedTxTegm + & +tx_gm +); + +367  +nd_gm +(cڡ +ut8_t + * +da +, cڡ ut8_ +ngth +); + + @src/test/test.cpp + +21 #i +defed +( +EMSESP_DEBUG +) + +23  + ~".h +" + +25 +mea + + gem + { + +29  + gTe +:: +run_ +( +uuid +:: +cse +:: +Shl + & +shl +, cڡ +d +:: +rg + & +commd +) { + +30 i( +commd + == "default") { + +31 +run_ +( +shl +, "mqtt"); + +34 i( + gcommd +. +emy +()) { + +35 +run_ +( +shl +, "default"); + +38 i( + gcommd + == "render") { + +39 +ut8_t + +1 + = 12; + +40 +t8_t + + g2 + = -12; + +41 +ut16_t + + g3 + = 456; + +42 +t16_t + + g4 + = -456; + +43 +ut8_t + + g5 + = 1; + +44 +ut32_t + + g6 + = 305419896; + +45  + g7 + = 89.43; + +47 +ut8_t + + g1u + = +EMS_VALUE_UINT_NOTSET +; + +48 +t8_t + + g2u + = +EMS_VALUE_INT_NOTSET +; + +50 +ut8_t + + g5u + = +EMS_VALUE_BOOL_NOTSET +; + +51 +ut32_t + + g6u + = +EMS_VALUE_ULONG_NOTSET +; + +53 +ut16_t + + g3u + = +EMS_VALUE_USHORT_NOTSET +; + +54 +t16_t + + g4u + = +EMS_VALUE_SHORT_NOTSET +; + +56 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu1"), +1 +, +F_ +( +deges +)); + +57 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu2"), +2 +, +F_ +( +deges +)); + +58 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu3"), +3 +, +F_ +( +deges +), 10); + +59 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu4"), +4 +, +F_ +( +deges +), 10); + +60 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu5"), +5 +, +nuαr +, +EMS_VALUE_BOOL +); + +61 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu6"), +6 +, +F_ +( +deges +)); + +62 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu7"), +7 +, +F_ +( +deges +), 2); + +63 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Warm Water comfort setting"), F("Intelligent")); + +64  + gs +[100]; + +65 +ry +( +s +, "Not very intelligent"); + +66 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Wm W comf܈g2"), +s +); + +68 + gshl +. +n +(); + +70 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu1u"), +1u +, +F_ +( +deges +)); + +71 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu2u"), +2u +, +F_ +( +deges +)); + +72 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu3u"), +3u +, +F_ +( +deges +), 10); + +73 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu4u"), +4u +, +F_ +( +deges +), 10); + +74 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu5u"), +5u +, +F_ +( +deges +), +EMS_VALUE_BOOL +); + +75 + gEMSdevi +:: +t_vue +( +shl +, 2, +F +("Seed flowemtu6u"), +6u +, +F_ +( +deges +), 100); + +77 + gshl +. +n +(); + +80 +ut8_t + + gmesge_da +[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; + +81 aut + ggm + = +d +:: +make_shed +< +Tegm +>(Tegm:: +Oti +:: +RX +, 0x10, 0x11, 0x1234, 0, + gmesge_da +, (message_data)); + +83 +ut8_t + + gut8b + = +EMS_VALUE_UINT_NOTSET +; + +84 + ggm +-> +ad_vue +( +ut8b +, 0); + +85 + gshl +. +tn +("ut8:xg %02X, g:%02X", 1, +ut8b +); + +87 +t8_t + + gt8b + = +EMS_VALUE_INT_NOTSET +; + +88 + ggm +-> +ad_vue +( +t8b +, 0); + +89 + gshl +. +tn +("t8:xg %02X, g:%02X", 1, +t8b +); + +91 +ut16_t + + gut16b + = +EMS_VALUE_USHORT_NOTSET +; + +92 + ggm +-> +ad_vue +( +ut16b +, 1); + +93 + gshl +. +tn +("ut16:xg %02X, g:%02X", 0x0203, +ut16b +); + +95 +t16_t + + gt16b + = +EMS_VALUE_SHORT_NOTSET +; + +96 + ggm +-> +ad_vue +( +t16b +, 1); + +97 + gshl +. +tn +("t16:xg %02X, g:%02X", 0x0203, +t16b +); + +99 +t16_t + + gt16b8 + = +EMS_VALUE_SHORT_NOTSET +; + +100 + ggm +-> +ad_vue +( +t16b8 +, 1, 1); + +101 + gshl +. +tn +("t16 1 by:xg %02X, g:%02X", 0x02, +t16b8 +); + +103 +ut32_t + + gut32b + = +EMS_VALUE_ULONG_NOTSET +; + +104 + ggm +-> +ad_vue +( +ut32b +, 1, 3); + +105 + gshl +. +tn +("ut32 3 bys:xg %02X, g:%02X", 0x020304, +ut32b +); + +107 + gut32b + = +EMS_VALUE_ULONG_NOTSET +; + +108 + ggm +-> +ad_vue +( +ut32b +, 1); + +109 + gshl +. +tn +("ut32 4 bys:xg %02X, g:%02X", 0x02030405, +ut32b +); + +112 +ut16_t + + gut16 + = +EMS_VALUE_USHORT_NOTSET +; + +113 + ggm +-> +ad_vue +( +ut16 +, 9); + +114 + gshl +. +tn +("ut16 out-of-bounds: was:%02X,ew:%02X", +EMS_VALUE_USHORT_NOTSET +, +ut16 +); + +115 +ut8_t + + gut8oob + = +EMS_VALUE_UINT_NOTSET +; + +116 + ggm +-> +ad_vue +( +ut8oob +, 9); + +117 + gshl +. +tn +("ut8 out-of-bounds: was:%02X,ew:%02X", +EMS_VALUE_UINT_NOTSET +, +ut8oob +); + +120 +ut8_t + + gut8bb + = +EMS_VALUE_UINT_NOTSET +; + +121 + ggm +-> +ad_bvue +( +ut8bb +, 1, 1); + +122 + gshl +. +tn +("ut8 bd:xg 1, g:%d", +ut8bb +); + +123 + gut8bb + = +EMS_VALUE_UINT_NOTSET +; + +124 + ggm +-> +ad_bvue +( +ut8bb +, 0, 0); + +125 + gshl +. +tn +("ut8 bd:xg 1, g:%d", +ut8bb +); + +128 i( + gcommd + == "devices") { + +129 +EMSESP +:: +rxrvi_ +. +ems_mask +( +EMSbus +:: +EMS_MASK_BUDERUS +); + +134 +rx_gm +({0x08, 0x00, 0x07, 0x00, 0x0B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}); + +137 i( + gcommd + == "boiler") { + +139 +d +:: +rg + +vsi +("1.2.3"); + +140 + gEMSESP +:: +add_devi +(0x08, 123, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +143 +ut_gm +({0x08, 0x0B, 0x14, 00, 0x3C, 0x1F, 0xAC, 0x70}); + +147 i(( + gcommd + ="unknown"|| ( +commd + == "u")) { + +149 +d +:: +rg + +vsi +("1.2.3"); + +152 + gEMSESP +:: +add_devi +(0x08, 84, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +155 + gEMSESP +:: +add_devi +(0x09, 84, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +159 +rx_gm +({0x09, 0x0B, 0x02, 0x00, 0x59, 0x09, 0x0a}); + +161 + gEMSESP +:: +show_devi_vues +( +shl +); + +164 i( + gcommd + == "unknown2") { + +166 +rx_gm +({0x09, 0x0B, 0x02, 0x00, 0x5A, 0x01, 0x02}); + +169 i( + gcommd + == "gateway") { + +171 +rx_gm +({0x48, 0x0B, 0x02, 0x00, 0xBD, 0x04, 0x06, 00, 00, 00, 00, 00, 00, 00}); + +175 +rx_gm +({0x08, 0x00, 0x07, 0x00, 0x09, 01, 00, 00, 00, 00, 00, 00, 01, 00, 00, 00, 00}); + +178 + gd +:: +rg + +vsi +("01.03"); + +179 + gEMSESP +:: +add_devi +(0x10, 158, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +183 +rx_gm +({0x10, 0x48, 0xFF, 00, 01, 0x6B, 00, 0x6B, 0x08, 0x4F, 00, 00, 00, 02, 00, 00, 00, 02, 00, 03, 00, 03, 00, 03}); + +186 i( + gcommd + == "general") { + +187 +shl +. +tn +( +F +("Testingdding boiler &hermostat...")); + +189 + gd +:: +rg + +vsi +("1.2.3"); + +190 + gEMSESP +:: +add_devi +(0x08, 123, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +191 + gEMSESP +:: +add_devi +(0x18, 157, +vsi +, +EMSdevi +:: +Bnd +:: +BOSCH +); + +195 +ut_gm +({0x08, 0x00, 0x18, 0x00, 0x00, 0x02, 0x5A, 0x73, 0x3D, 0x0A, 0x10, 0x65, 0x40, 0x02, 0x1A, + +199 +ut_gm +({0x08, 0x98, 0x33, 0x00, 0x23, 0x24}); + +202 +ut_gm +({0x08, 0x0B, 0x33, 0x00, 0x08, 0xFF, 0x34, 0xFB, 0x00, 0x28, 0x00, 0x00, 0x46, 0x00, 0xFF, 0xFF, 0x00}); + +205 +ut_gm +({0x98, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xCF, 0x21, 0x2E, 0x00, 0x00, 0x2E, 0x24, + +208 + gshl +. +voke_commd +("show"); + +213 i( + gcommd + == "thermostat") { + +214 +shl +. +tn +( +F +("Testingddinghermostatohe EMS bus...")); + +223 + gd +:: +rg + +vsi +("1.2.3"); + +229 + gEMSESP +:: +add_devi +(0x10, 192, +vsi +, +EMSdevi +:: +Bnd +:: +JUNKERS +); + +232 +ut_gm +({0x90, 0x00, 0xFF, 0x00, 0x00, 0x6F, 0x00, 0xCF, 0x21, 0x2E, 0x20, 0x00, 0x2E, 0x24, + +236 +ut_gm +({0x90, 0x00, 0xFF, 0x00, 0x00, 0x70, 0x00, 0xCF, 0x22, 0x2F, 0x10, 0x00, 0x2E, 0x24, + +240 +ut_gm +({0x90, 0x00, 0xFF, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}); + +243 i( + gcommd + == "tc100") { + +244 +shl +. +tn +( +F +("Testingdding TC100hermostatohe EMS bus...")); + +246 + gd +:: +rg + +vsi +("02.21"); + +252 + gEMSESP +:: +add_devi +(0x18, 202, +vsi +, +EMSdevi +:: +Bnd +:: +BOSCH +); + +255 +ut_gm +({0x98, 0x0B, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +259 i( + gcommd + == "solar") { + +260 +shl +. +tn +( +F +("Testing Solar")); + +262 + gEMSESP +:: +rxrvi_ +. +ems_mask +( +EMSbus +:: +EMS_MASK_BUDERUS +); + +264 + gd +:: +rg + +vsi +("1.2.3"); + +265 + gEMSESP +:: +add_devi +(0x30, 163, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +269 +rx_gm +({0xB0, 0x0B, 0xFF, 00, 0x02, 0x62, 00, 0x44, 0x02, 0x7A, 0x80, 00, 0x80, 0x00, 0x80, 00, + +271 + gEMSESP +:: +show_devi_vues +( +shl +); + +273 +rx_gm +({0xB0, 0x0B, 0xFF, 0x00, 0x02, 0x62, 0x01, 0x44, 0x03, 0x30, 0x80, 00, 0x80, 00, 0x80, 00, + +275 + gEMSESP +:: +show_devi_vues +( +shl +); + +277 +rx_gm +({0xB0, 00, 0xFF, 0x18, 02, 0x62, 0x80, 00, 0xB8}); + +278 + gEMSESP +:: +show_devi_vues +( +shl +); + +280 + gEMSESP +:: +nd_w_gm +("B0 00 FF 18 02 62 80 00 B8"); + +282 +ut_gm +("30 00 FF 0A 02 6A 04"); + +283 +ut_gm +("30 00 FF 00 02 64 00 00 00 04 00 00 FF 00 00 1E 0B 09 64 00 00 00 00"); + +285 + gEMSESP +:: +show_devi_vues +( +shl +); + +287 +ut_gm +("30 00 FF 0A 02 6A 03"); + +289 + gEMSESP +:: +show_devi_vues +( +shl +); + +292 i( + gcommd + == "solar200") { + +293 +shl +. +tn +( +F +("Testing Solar SM200")); + +295 + gEMSESP +:: +rxrvi_ +. +ems_mask +( +EMSbus +:: +EMS_MASK_BUDERUS +); + +297 + gd +:: +rg + +vsi +("1.2.3"); + +298 + gEMSESP +:: +add_devi +(0x30, 164, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +302 +rx_gm +({0xB0, 0x0B, 0xFF, 00, 0x02, 0x62, 00, 0x44, 0x02, 0x7A, 0x80, 00, 0x80, 0x00, 0x80, 00, + +304 + gEMSESP +:: +show_devi_vues +( +shl +); + +306 +rx_gm +({0xB0, 0x0B, 0xFF, 0x00, 0x02, 0x62, 0x01, 0x44, 0x03, 0x30, 0x80, 00, 0x80, 00, 0x80, 00, + +308 + gEMSESP +:: +show_devi_vues +( +shl +); + +310 +rx_gm +({0xB0, 00, 0xFF, 0x18, 02, 0x62, 0x80, 00, 0xB8}); + +311 + gEMSESP +:: +show_devi_vues +( +shl +); + +313 + gEMSESP +:: +nd_w_gm +("B0 00 FF 18 02 62 80 00 B8"); + +315 +ut_gm +("30 00 FF 0A 02 6A 04"); + +316 +ut_gm +("30 00 FF 00 02 64 00 00 00 04 00 00 FF 00 00 1E 0B 09 64 00 00 00 00"); + +318 + gEMSESP +:: +show_devi_vues +( +shl +); + +320 +ut_gm +("30 00 FF 0A 02 6A 03"); + +322 + gEMSESP +:: +show_devi_vues +( +shl +); + +325 i( + gcommd + == "km") { + +326 +shl +. +tn +( +F +("Testing KM200 Gateway")); + +328 + gem +:: +EMSESP +:: +wch +(EMSESP:: +Wch +:: +WATCH_RAW +); + +330 + gEMSESP +:: +rxrvi_ +. +ems_mask +( +EMSbus +:: +EMS_MASK_BUDERUS +); + +332 + gd +:: +rg + +vsi +("1.2.3"); + +333 + gEMSESP +:: +add_devi +(0x10, 158, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +334 + gEMSESP +:: +add_devi +(0x48, 189, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +378 +ut_gm_whCRC +("C8 90 F7 02 01 FF 01 A6 BA"); + +380 +ut_gm_whCRC +("90 48 FF 04 01 A6 5C"); + +381 +ut_gm_whCRC +("90 00 FF 00 01 A5 80 00 01 27 16 00 27 2A 05 A0 02 03 03 05 A0 05 A0 00 00 11 01 02 FF FF 00 9A"); + +382 +ut_gm_whCRC +("90 00 FF 19 01 A5 01 04 00 00 00 00 FF 64 2A 00 3C 01 FF 92"); + +383 +ut_gm_whCRC +("90 0B FF 00 01 A5 80 00 01 26 15 00 26 2A 05 A0 03 03 03 05 A0 05 A0 00 00 11 01 03 FF FF 00 FE"); + +384 +ut_gm_whCRC +("90 00 FF 19 01 A5 01 04 00 00 00 00 FF 64 2A 00 3C 01 FF 92"); + +386 + gEMSESP +:: +show_ems +( +shl +); + +387 + gEMSESP +:: +show_devi_vues +( +shl +); + +390 i( + gcommd + == "cr100") { + +391 +shl +. +tn +( +F +("Testing CR100")); + +393 + gem +:: +EMSESP +:: +wch +(EMSESP:: +Wch +:: +WATCH_RAW +); + +395 + gEMSESP +:: +rxrvi_ +. +ems_mask +( +EMSbus +:: +EMS_MASK_HT3 +); + +397 + gd +:: +rg + +vsi +("1.2.3"); + +398 + gEMSESP +:: +add_devi +(0x18, 157, +vsi +, +EMSdevi +:: +Bnd +:: +BOSCH +); + +402 +ut_gm +({0x98, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xCF, 0x21, 0x2E, 0x00, 0x00, 0x2E, 0x24, + +405 +ut_gm +("98 00 FF 00 01 A5 00 CF 21 2E 00 00 2E 24 03 25 03 03 01 03 25 00 C8 00 00 11 01 03"); + +406 +ut_gm_whCRC +("98 00 FF 00 01 A6 00 CF 21 2E 00 00 2E 24 03 25 03 03 01 03 25 00 C8 00 00 11 01 03 6B"); + +408 + gEMSESP +:: +txrvi_ +. +ush_tx_queue +(); + +409 + gshl +. +lo_l +(); + +410 + gEMSESP +:: +show_devi_vues +( +shl +); + +412 + gshl +. +voke_commd +("thermostat"); + +413 + gshl +. +lo_l +(); + +416 + gshl +. +voke_commd +("set modeuto"); + +418 + gshl +. +lo_l +(); + +419 + gEMSESP +:: +show_ems +( +shl +); + +420 + gshl +. +lo_l +(); + +422 + gEMSESP +:: +txrvi_ +. +nd +(); + +425 i( + gcommd + == "rx2") { + +426 +shl +. +tn +( +F +("Testing Rx2...")); + +427  +ut8_t + + gi + = 0; i < 30; i++) { + +428 +ut_gm +({0x08, 0x0B, 0x33, 0x00, 0x08, 0xFF, 0x34, 0xFB, 0x00, 0x28, 0x00, 0x00, 0x46, 0x00, 0xFF, 0xFF, 0x00}); + +432 i( + gcommd + == "rx") { + +433 +shl +. +tn +( +F +("Testing Rx...")); + +437 +ut_gm +({0x08, 0x00, 0x18, 0x00, 0x00, 0x02, 0x5A, 0x73, 0x3D, 0x0A, 0x10, 0x65, 0x40, 0x02, 0x1A, + +441 +ut_gm +({0x08, 0x97, 0x33, 0x00, 0x23, 0x24}); + +444 +ut_gm +({0x08, 0x0B, 0x33, 0x00, 0x08, 0xFF, 0x34, 0xFB, 0x00, 0x28, 0x00, 0x00, 0x46, 0x00, 0xFF, 0xFF, 0x00}); + +447 +ut_gm +({0x17, 0x0B, 0x91, 0x05, 0x44, 0x45, 0x46, 0x47}); + +450 +ut8_t + + gt5 +[] = {0x17, 0x0B, 0x91, 0x05, 0x44, 0x45, 0x46, 0x47, 0x99}; + +451 + gEMSESP +:: +rxrvi_ +. +add +( +t5 +, (t5)); + +454 +ut_gm +({0x0B, 0x88, 0x07, 0x00, 0x20}); + +457 +ut_gm +({0x08, 0x0B, 0x02, 0x00, 0x7B, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04}); + +460 +ut_gm +({0x11, 0x0B, 0x02, 0x00, 0x4D, 0x03, 0x03}); + +464 +ut_gm +({0x10, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xD7, 0x21, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x84, + +468 +ut_gm +({0x10, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xC7, 0x21, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x84, + +472 +ut_gm +({0x17, 0x08, 0x35, 0x00, 0x11, 0x00}); + +475 +ut_gm +({0x17, 0x08, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00}); + +478 +ut_gm +({0x17, 0x0B, 0xA8, 0x00, 0x01, 0x00, 0xFF, 0xF6, 0x01, 0x06, 0x00, 0x01, 0x0D, 0x01, 0x00, 0xFF, + +482 +ut_gm +( + +486 +ut_gm +({0x88, 00, 0x2A, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0xD2, 00, 00, 0x80, 00, 00, 01, 0x9D, 0x80, 0x00, 0x02, 0x79, 00}); + +489 i( + gcommd + == "send") { + +490 +shl +. +tn +( +F +("Sendingo Tx...")); + +491 + gEMSESP +:: +show_ems +( +shl +); + +492 + gEMSESP +:: +txrvi_ +. +nd +(); + +495 i( + gcommd + == "tx") { + +496 +shl +. +tn +( +F +("Testing Tx...")); + +498 + gEMSESP +:: +txrvi_ +. +ush_tx_queue +(); + +501 +ut8_t + + gt11 +[] = {0x44, 0x45, 0x46, 0x47}; + +502 + gEMSESP +:: +txrvi_ +. +add +( +Tegm +:: +Oti +:: +TX_RAW +, 0x17, 0x91, 0x05, +t11 +, (t11)); + +505 +ut8_t + + gt12 +[] = {0x10, 0x08, 0x63, 0x04, 0x64}; + +506 + gEMSESP +:: +txrvi_ +. +add +( +Tegm +:: +Oti +:: +TX_RAW +, +t12 +, (t12)); + +509 + gEMSESP +:: +txrvi_ +. +nd_w +("10 08 63 03 64 65 66"); + +512 + gEMSESP +:: +nd_ad_que +(0x18, 0x08); + +515 +ut8_t + + gt18 +[] = {0x52, 0x79}; + +516 + gEMSESP +:: +nd_wre_que +(0x91, 0x17, 0x00, +t18 +, (t18), 0x00); + +519 cڡ +ut8_t + + gt13 +[] = {0x90, 0x0B, 0xFF, 00, 01, 0xBA, 00, 0x2E, 0x2A, 0x26, 0x1E, 0x03, + +521 + gEMSESP +:: +txrvi_ +. +add +( +Tegm +:: +Oti +:: +TX_RAW +, +t13 +, (t13)); + +524 + gEMSESP +:: +nd_ad_que +(0x16F, 0x10); + +526 + gEMSESP +:: +show_ems +( +shl +); + +529  +ut8_t + + gi + = 0; i < 10; i++) { + +530 + gEMSESP +:: +txrvi_ +. +nd +(); + +533 + gshl +. +lo_l +(); + +535 + gEMSESP +:: +txrvi_ +. +ush_tx_queue +(); + +538 i( + gcommd + == "poll") { + +539 +shl +. +tn +( +F +("Testing Poll...")); + +542 + gEMSESP +:: +txrvi_ +. +ush_tx_queue +(); + +547 + gEMSESP +:: +nd_ad_que +(0x91, 0x17); + +551 +ut8_t + + gpl +[1] = {0x8B}; + +552 + gEMSESP +:: +comg_gm +( +pl +, 1); + +555 +ut_gm +({0x17, 0x08, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A}); + +558 + gEMSESP +:: +comg_gm +( +pl +, 1); + +560 + gEMSESP +:: +show_ems +( +shl +); + +561 +ut8_t + + gt2 +[] = {0x21, 0x22}; + +562 + gEMSESP +:: +nd_wre_que +(0x91, 0x17, 0x00, +t2 +, (t2), 0); + +563 + gEMSESP +:: +show_ems +( +shl +); + +565 + gEMSESP +:: +txrvi_ +. +ush_tx_queue +(); + +568 i( + gcommd + == "pin") { + +569 +shl +. +tn +( +F +("Testingin...")); + +571 + gEMSESP +:: +add_cڋxt_mus +(); + +572 + gshl +. +voke_commd +("su"); + +573 + gshl +. +voke_commd +("system"); + +574 + gshl +. +voke_commd +("help"); + +575 + gshl +. +voke_commd +("pin"); + +576 + gshl +. +voke_commd +("pin 1rue"); + +579 i( + gcommd + == "mqtt") { + +580 +shl +. +tn +( +F +("Testing MQTT...")); + +584 + gd +:: +rg + +vsi +("1.2.3"); + +585 + gEMSESP +:: +add_devi +(0x08, 123, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +588 + gEMSESP +:: +add_devi +(0x18, 157, +vsi +, +EMSdevi +:: +Bnd +:: +BOSCH +); + +591 +ut_gm +({0x98, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xCF, 0x21, 0x2E, 0x00, 0x00, 0x2E, 0x24, + +593 +ut_gm +("98 00 FF 00 01 A5 00 CF 21 2E 00 00 2E 24 03 25 03 03 01 03 25 00 C8 00 00 11 01 03"); + +594 +ut_gm_whCRC +("98 00 FF 00 01 A5 00 CF 21 2E 00 00 2E 24 03 25 03 03 01 03 25 00 C8 00 00 11 01 03 13"); + +596 + gshl +. +lo_l +(); + +598  + gbo_tic +[ +Mq +:: +MQTT_TOPIC_MAX_SIZE +]; + +599  + gthmo_tic +[ +Mq +:: +MQTT_TOPIC_MAX_SIZE +]; + +600  + gsyem_tic +[ +Mq +:: +MQTT_TOPIC_MAX_SIZE +]; + +603 + gEMSESP +:: +txrvi_ +. +ush_tx_queue +(); + +604 + gEMSESP +:: +EMSESP +:: +mq_ +. +publish +("boiler_cmd", "test me"); + +605 + gMq +:: +show_mq +( +shl +); + +607 +ry +( +bo_tic +, "ems-esp/boiler_cmd"); + +608 +ry +( +thmo_tic +, "ems-esp/thermostat_cmd"); + +609 +ry +( +syem_tic +, "ems-esp/saystem_cmd"); + +611 + gEMSESP +:: +mq_ +. +comg +( +bo_tic +, "12345"); + +612 + gEMSESP +:: +mq_ +. +comg +("bad_topic", "12345"); + +613 + gEMSESP +:: +mq_ +. +comg +( +bo_tic +, "{\"cmd\":\"garbage\",\"data\":22.52}"); + +614 + gEMSESP +:: +mq_ +. +comg +( +bo_tic +, "{\"cmd\":\"comfort\",\"data\":\"eco\"}"); + +615 + gEMSESP +:: +mq_ +. +comg +( +bo_tic +, "{\"cmd\":\"wwactivated\",\"data\":\"1\"}"); + +616 + gEMSESP +:: +mq_ +. +comg +( +bo_tic +, "{\"cmd\":\"wwactivated\",\"data\":1}"); + +617 + gEMSESP +:: +mq_ +. +comg +( +bo_tic +, "{\"cmd\":\"flowtemp\",\"data\":55}"); + +619 + gEMSESP +:: +mq_ +. +comg +( +syem_tic +, "{\"cmd\":\"send\",\"data\":\"01 02 03 04 05\"}"); + +620 + gEMSESP +:: +mq_ +. +comg +( +syem_tic +, "{\"cmd\":\"pin\",\"id\":12,\"data\":\"1\"}"); + +622 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"wwmode\",\"data\":\"auto\"}"); + +623 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"control\",\"data\":\"1\"}"); + +624 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"control\",\"data\":1}"); + +625 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"mode\",\"data\":\"auto\",\"id\":2}"); + +626 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"mode\",\"data\":\"auto\",\"hc\":2}"); + +627 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"temp\",\"data\":19.5,\"hc\":1}"); + +628 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"mode\",\"data\":\"auto\",\"hc\":\"2\"}"); + +629 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"temp\",\"data\":22.56}"); + +630 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"temp\",\"data\":22}"); + +631 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"temp\",\"data\":\"22.56\"}"); + +632 + gEMSESP +:: +mq_ +. +comg +( +thmo_tic +, "{\"cmd\":\"temp\",\"id\":2,\"data\":22}"); + +637 + gEMSESP +:: +add_cڋxt_mus +(); + +638 + gshl +. +voke_commd +("su"); + +639 + gshl +. +voke_commd +("thermostat"); + +640 + gshl +. +voke_commd +("help"); + +641 + gshl +. +voke_commd +("call"); + +642 + gshl +. +voke_commd +("call wwmode"); + +643 + gshl +. +voke_commd +("call modeuto 2"); + +644 + gshl +. +voke_commd +("callemp 22.56"); + +646 + gMq +:: +subsibe +(); + +647 + gMq +:: +show_mq +( +shl +); + +650 i( + gcommd + == "poll2") { + +651 +shl +. +tn +( +F +("Testing Tx Sendingast message on queue...")); + +653 + gEMSESP +:: +show_ems +( +shl +); + +655 +ut8_t + + gpl +[1] = {0x8B}; + +656 + gEMSESP +:: +comg_gm +( +pl +, 1); + +658 + gEMSESP +:: +show_ems +( +shl +); + +659 + gEMSESP +:: +txrvi_ +. +ush_tx_queue +(); + +662 i( + gcommd + == "rx2") { + +663 +ut_gm +({0x1B, 0x5B, 0xFD, 0x2D, 0x9E, 0x3A, 0xB6, 0xE5, 0x02, 0x20, 0x33, 0x30, 0x32, 0x3A, 0x20, 0x5B, + +668 i( + gcommd + == "rx3") { + +669 +ut_gm +({0x21, 0x0B, 0xFF, 0x00}); + +673 i( + gcommd + == "tx2") { + +674 +ut8_t + +t +[] = {0x0B, 0x88, 0x18, 0x00, 0x20, 0xD4}; + +675 + gEMSut +:: +sm +( +t +, (t)); + +679 i( + gcommd + == "offset") { + +681 +EMSESP +:: +txrvi_ +. +ad_que +(0x18, 0x08, 27); + +684 i( + gcommd + == "mixing") { + +685 +shl +. +tn +( +F +("Testing Mixing...")); + +687 + gEMSESP +:: +rxrvi_ +. +ems_mask +( +EMSbus +:: +EMS_MASK_BUDERUS +); + +689 + gd +:: +rg + +vsi +("1.2.3"); + +690 + gEMSESP +:: +add_devi +(0x28, 160, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +691 + gEMSESP +:: +add_devi +(0x29, 161, +vsi +, +EMSdevi +:: +Bnd +:: +BUDERUS +); + +693 + gEMSESP +:: +add_devi +(0x20, 160, +vsi +, +EMSdevi +:: +Bnd +:: +BOSCH +); + +696 +rx_gm +({0xA9, 0x00, 0xFF, 0x00, 0x02, 0x32, 0x02, 0x6C, 0x00, 0x3C, 0x00, 0x3C, 0x3C, 0x46, 0x02, 0x03, 0x03, 0x00, 0x3C}); + +699 +rx_gm +({0xA8, 0x00, 0xFF, 0x00, 0x02, 0x31, 0x02, 0x35, 0x00, 0x3C, 0x00, 0x3C, 0x3C, 0x46, 0x02, 0x03, 0x03, 0x00, 0x3C}); + +702 +rx_gm +({0xA0, 0x00, 0xFF, 0x00, 0x01, 0x55, 0x00, 0x1A}); + +706 + gEMSESP +:: +lo +(); + +710  + gTe +:: +rx_gm +(cڡ +d +:: +ve +< +ut8_t +> & +rx_da +) { + +711 +ut8_t + +n + = +rx_da +. +size +(); + +712 +ut8_t + + gda +[50]; + +713 +ut8_t + + gi + = 0; + +714  + gn +--) { + +715 + gda +[ +i +] = +rx_da +[i]; + +716 + gi +++; + +718 + gda +[ +i +] = +EMSESP +:: +rxrvi_ +. +lcuϋ_c +( +da +, i); + +719 + gEMSESP +:: +rxrvi_ +. +add +( +da +, +n + + 1); + +723  + gTe +:: +ut_gm +(cڡ +d +:: +ve +< +ut8_t +> & +rx_da +) { + +724 +ut8_t + +n + = +rx_da +. +size +(); + +725 +ut8_t + + gda +[50]; + +726 +ut8_t + + gi + = 0; + +727  + gn +--) { + +728 + gda +[ +i +] = +rx_da +[i]; + +729 + gi +++; + +731 + gda +[ +i +] = +EMSESP +:: +rxrvi_ +. +lcuϋ_c +( +da +, i); + +732 + gEMSESP +:: +comg_gm +( +da +, +i + + 1); + +733 + gEMSESP +:: +rxrvi_ +. +lo +(); + +737  + gTe +:: +ut_gm_whCRC +(cڡ * +rx_da +) { + +739  +gm +[( +EMS_MAX_TELEGRAM_LENGTH + * 3) + 1]; + +740  +ut8_t + + gi + = 0; i < + +( +rx_da +); i++) { + +741 + ggm +[ +i +] = +rx_da +[i]; + +743 + ggm +[ + +( +rx_da +)] = '\0'; + +745 +ut8_t + + gcou + = 0; + +746 * + gp +; + +747  + gvue +[10] = {0}; + +749 +ut8_t + + gda +[ +EMS_MAX_TELEGRAM_LENGTH +]; + +752 i(( + gp + = +ok +( +gm +, " ,"))) { + +753 +y +( +vue +, +p +, 10); + +754 + gda +[0] = ( +ut8_t +) + +( +vue +, 0, 16); + +758  + gp + != 0) { + +759 i(( +p + = +ok +( +nuαr +, " ,"))) { + +760 +y +( +vue +, +p +, 10); + +761 +ut8_t + + gv + = (ut8_t) + +( +vue +, 0, 16); + +762 + gda +[++ +cou +] = +v +; + +766 i( + gcou + == 0) { + +770 + gEMSESP +:: +comg_gm +( +da +, +cou + + 1); + +771 + gEMSESP +:: +rxrvi_ +. +lo +(); + +775  + gTe +:: +ut_gm +(cڡ * +rx_da +) { + +777  +gm +[( +EMS_MAX_TELEGRAM_LENGTH + * 3) + 1]; + +778  +ut8_t + + gi + = 0; i < + +( +rx_da +); i++) { + +779 + ggm +[ +i +] = +rx_da +[i]; + +781 + ggm +[ + +( +rx_da +)] = '\0'; + +783 +ut8_t + + gcou + = 0; + +784 * + gp +; + +785  + gvue +[10] = {0}; + +787 +ut8_t + + gda +[ +EMS_MAX_TELEGRAM_LENGTH +]; + +790 i(( + gp + = +ok +( +gm +, " ,"))) { + +791 +y +( +vue +, +p +, 10); + +792 + gda +[0] = ( +ut8_t +) + +( +vue +, 0, 16); + +796  + gp + != 0) { + +797 i(( +p + = +ok +( +nuαr +, " ,"))) { + +798 +y +( +vue +, +p +, 10); + +799 +ut8_t + + gv + = (ut8_t) + +( +vue +, 0, 16); + +800 + gda +[++ +cou +] = +v +; + +804 i( + gcou + == 0) { + +808 + gda +[ +cou + + 1] = +EMSESP +:: +rxrvi_ +. +lcuϋ_c +( +da +, count + 1); + +810 + gEMSESP +:: +comg_gm +( +da +, +cou + + 2); + +811 + gEMSESP +:: +rxrvi_ +. +lo +(); + +814 #agm +GCC + +dgnoic + +push + + +815 #agm +GCC + +dgnoic + +igned + "-Wunused-parameter" + +818 #agm +GCC + +dgnoic + +p + + + @src/test/test.h + +19 #i +defed +( +EMSESP_DEBUG +) + +21 #ide +EMSESP_TEST_H + + +22  + #EMSESP_TEST_H + + + ) + +24  + ~ + +26  + ~ + +27  + ~ + +29  + ~ + +30  + ~ + +31  + ~ + +33  + ~"emsdevi.h +" + +34  + ~"emsy.h +" + +35  + ~"gm.h +" + +36  + ~"mq.h +" + +37  + ~"em.h +" + +39 +mea + + gem + { + +41 as + cTe + { + +42 + gpublic +: + +43  +run_ +( +uuid +:: +cse +:: +Shl + & +shl +, cڡ +d +:: +rg + & +commd +); + +44  +dummy_mq_commds +(cڡ * +mesge +); + +45  +rx_gm +(cڡ +d +:: +ve +< +ut8_t +> & +da +); + +46  +ut_gm +(cڡ +d +:: +ve +< +ut8_t +> & +rx_da +); + +47  +ut_gm +(cڡ * +rx_da +); + +48  +ut_gm_whCRC +(cڡ * +rx_da +); + + @src/uart/emsuart_esp32.cpp + +23 #i +defed +( +ESP32 +) + +25  + ~"ut/emsut_e32.h +" + +27  + ~"em.h +" + +29 +mea + + gem + { + +31  +RgbufHd_t + + gbuf_hd + = +NULL +; + +32 +ptMUX_TYPE + + gmux + = +ptMUX_INITIALIZER_UNLOCKED +; + +33  +hw_tim_t + * + gtim + = +NULL +; + +34 +bo + + gdr_xt_rx + = +ue +; + +35 +ut8_t + + gtx_mode_ + = 0xFF; + +36 +ut8_t + + gemsTxBuf +[ +EMS_MAXBUFFERSIZE +]; + +37 +ut8_t + + gemsTxBufIdx + = 0; + +38 +ut8_t + + gemsTxBufL + = 0; + +39 +ut32_t + + gemsTxWa +; + +44  + gEMSut +:: +emsut_cvTask +(* + +) { + +46 +size_t + +em_size +; + +47 +ut8_t + * + ggm + = (ut8_*) +xRgbufrReive +( +buf_hd +, & +em_size +, +ptMAX_DELAY +); + +48 +ut8_t + + ggmSize + = +em_size +; + +49 i( + ggm +) { + +50 + gEMSESP +:: +comg_gm +( +gm +, +gmSize +); + +51 +vRgbufrRuIm +( +buf_hd +, (*) +gm +); + +59  +IRAM_ATTR + + gEMSut +:: +emsut_rx__hdr +(* + +) { + +60  +ut8_t + +rxbuf +[ +EMS_MAXBUFFERSIZE +]; + +61  +ut8_t + + gngth +; + +62 +ptENTER_CRITICAL +(& +mux +); + +63 i( + gEMS_UART +. + gt_ +. + gbrk_d +) { + +64 + gEMS_UART +. + gt_r +. + gbrk_d + = 1; + +65 + gngth + = 0; + +66  + gEMS_UART +. + gus +. + grxfifo_t +) { + +67 +ut8_t + + grx + = +EMS_UART +. +fifo +. +rw_by +; + +68 i( + gngth + < + gEMS_MAXBUFFERSIZE +) { + +69 + grxbuf +[ +ngth +++] = +rx +; + +71 + gdr_xt_rx + = +ue +; + +74 i((! + gdr_xt_rx +&& (( + gngth + =2|| ( +ngth + > 4))) { + +75  +baTy + = 0; + +76 +xRgbufrSdFromISR +( +buf_hd +, +rxbuf +, +ngth + - 1, & +baTy +); + +78 + gdr_xt_rx + = +l +; + +80 +ptEXIT_CRITICAL +(& +mux +); + +83  +IRAM_ATTR + + gEMSut +:: +emsut_tx_tim__hdr +() { + +84 i( +emsTxBufL + == 0) { + +87 +ptENTER_CRITICAL +(& +mux +); + +88 i( + gemsTxBufIdx + < + gemsTxBufL +) { + +89 + gEMS_UART +. + gfifo +. + grw_by + = +emsTxBuf +[ +emsTxBufIdx +]; + +90 i( + gemsTxBufIdx + == 1) { + +91 +timArmWre +( +tim +, +emsTxWa +, +ue +); + +93 } i( + gemsTxBufIdx + = +emsTxBufL +) { + +94 +EMS_UART +. +cf0 +. +txd_v + = 1; + +95 +timArmWre +( +tim +, +EMSUART_TX_BRK_TIMER +, +ue +); + +96 } i( + gemsTxBufIdx + = +emsTxBufL + + 1) { + +97 +EMS_UART +. +cf0 +. +txd_v + = 0; + +98 + gemsTxBufL + = 0; + +99 +timArmDib +( +tim +); + +101 + gemsTxBufIdx +++; + +102 +ptEXIT_CRITICAL +(& +mux +); + +108  + gEMSut +:: +t +(cڡ +ut8_t + +tx_mode +, cڡ ut8_ +rx_gpio +, cڡ ut8_ +tx_gpio +) { + +109 i( + gtx_mode_ + != 0xFF) { + +110 +tx_mode_ + = +tx_mode +; + +111 +t +(); + +114 + gtx_mode_ + = +tx_mode +; + +116 +ut_cfig_t + + gut_cfig + = { + +117 . +baud_ + = +EMSUART_BAUD +, + +118 . + gda_bs + = +UART_DATA_8_BITS +, + +119 . + gry + = +UART_PARITY_DISABLE +, + +120 . + g_bs + = +UART_STOP_BITS_1 +, + +121 . + gow_ + = +UART_HW_FLOWCTRL_DISABLE +, + +124 +ut_m_cfig +( +EMSUART_UART +, & +ut_cfig +); + +125 +ut_t_p +( +EMSUART_UART +, +tx_gpio +, +rx_gpio +, +UART_PIN_NO_CHANGE +, UART_PIN_NO_CHANGE); + +126 + gEMS_UART +. + gt_a +. + gv + = 0; + +127 + gEMS_UART +. + gt_r +. + gv + = 0xFFFFFFFF; + +128 + gEMS_UART +. + gid_cf +. + gtx_brk_num + = 10; + +129 + gEMS_UART +. + gid_cf +. + grx_id_thrhd + = 256; + +130 + gdr_xt_rx + = +ue +; + +131 + gbuf_hd + = +xRgbufrCe +(128, +RINGBUF_TYPE_NOSPLIT +); + +132 +ut_i_gi +( +EMSUART_UART +, +emsut_rx__hdr +, +NULL +, +ESP_INTR_FLAG_IRAM +, NULL); + +133 +xTaskCe +( +emsut_cvTask +, "emsut_cvTask", 2048, +NULL +, +cfigMAX_PRIORITIES + - 1, NULL); + +135 + gtim + = +timBeg +(0, 80, +ue +); + +136 +timAachIru +( +tim +, & +emsut_tx_tim__hdr +, +ue +); + +137 +t +(); + +143  + gEMSut +:: + +() { + +144 +EMS_UART +. +t_a +. +v + = 0; + +145 + gEMS_UART +. + gcf0 +. + gtxd_v + = 0; + +146 i( + gemsTxBufL + > 0) { + +147 +timArmDib +( +tim +); + +154  + gEMSut +:: +t +() { + +155 i( +EMS_UART +. +t_w +. +brk_d +) { + +156 +EMS_UART +. +t_r +. +brk_d + = 1; + +157 + gdr_xt_rx + = +ue +; + +159 + gEMS_UART +. + gt_a +. + gbrk_d + = 1; + +160 + gemsTxBufIdx + = 0; + +161 + gemsTxBufL + = 0; + +162 i( + gtx_mode_ + > 100) { + +163 + gemsTxWa + = +EMSUART_TX_BIT_TIME + * ( +tx_mode_ + - 90); + +165 + gemsTxWa + = +EMSUART_TX_BIT_TIME + * ( +tx_mode_ + + 10); + +167 i( + gtx_mode_ + = +EMS_TXMODE_NEW +) { + +168 +EMS_UART +. +cf0 +. +txd_brk + = 1; + +170 + gEMS_UART +. + gcf0 +. + gtxd_brk + = 0; + +177  + gEMSut +:: +nd_pl +(cڡ +ut8_t + +da +) { + +178 +sm +(& +da +, 1); + +186 +ut16_t + + gEMSut +:: +sm +(cڡ +ut8_t + * +buf +, cڡ ut8_ +n +) { + +187 i( + gn + =0 || +n + > +EMS_MAXBUFFERSIZE +) { + +188  +EMS_TX_STATUS_ERR +; + +191 i( + gtx_mode_ + > 5) { + +192  +ut8_t + + gi + = 0; i < + gn +; i++) { + +193 + gemsTxBuf +[ +i +] = +buf +[i]; + +195 + gemsTxBufIdx + = 0; + +196 + gemsTxBufL + = +n +; + +197 i( + gtx_mode_ + > 100 && + gn + > 1) { + +198 +timArmWre +( +tim +, +EMSUART_TX_WAIT_REPLY +, +ue +); + +200 +timArmWre +( +tim +, +emsTxWa +, +ue +); + +202 +timArmEb +( +tim +); + +203  + gEMS_TX_STATUS_OK +; + +206 i( + gtx_mode_ + = +EMS_TXMODE_NEW +) { + +207  +ut8_t + +i + = 0; + gi + < + gn +; i++) { + +208 + gEMS_UART +. + gfifo +. + grw_by + = +buf +[ +i +]; + +210  + gEMS_TX_STATUS_OK +; + +213 i( + gtx_mode_ + = +EMS_TXMODE_EMSPLUS +) { + +214  +ut8_t + +i + = 0; + gi + < + gn +; i++) { + +215 + gEMS_UART +. + gfifo +. + grw_by + = +buf +[ +i +]; + +216 +dayMiocds +( +EMSUART_TX_WAIT_PLUS +); + +218 + gEMS_UART +. + gcf0 +. + gtxd_v + = 1; + +219 +dayMiocds +( +EMSUART_TX_BRK_PLUS +); + +220 + gEMS_UART +. + gcf0 +. + gtxd_v + = 0; + +221  + gEMS_TX_STATUS_OK +; + +224 i( + gtx_mode_ + = +EMS_TXMODE_HT3 +) { + +225  +ut8_t + +i + = 0; + gi + < + gn +; i++) { + +226 + gEMS_UART +. + gfifo +. + grw_by + = +buf +[ +i +]; + +227 +dayMiocds +( +EMSUART_TX_WAIT_HT3 +); + +229 + gEMS_UART +. + gcf0 +. + gtxd_v + = 1; + +230 +dayMiocds +( +EMSUART_TX_BRK_HT3 +); + +231 + gEMS_UART +. + gcf0 +. + gtxd_v + = 0; + +232  + gEMS_TX_STATUS_OK +; + +239  +ut8_t + + gi + = 0; i < + gn +; i++) { + +240 vީ +ut8_t + + g_uxc + = +EMS_UART +. +us +. +rxfifo_t +; + +241 + gEMS_UART +. + gfifo +. + grw_by + = +buf +[ +i +]; + +242 +ut16_t + + gtimeoutt + = +EMSUART_TX_TIMEOUT +; + +243 ( + gEMS_UART +. + gus +. + grxfifo_t + = +_uxc +&& (-- +timeoutt + > 0)) { + +244 +dayMiocds +( +EMSUART_TX_BUSY_WAIT +); + +247 + gEMS_UART +. + gcf0 +. + gtxd_v + = 1; + +248 +dayMiocds +( +EMSUART_TX_BRK_EMS +); + +249 + gEMS_UART +. + gcf0 +. + gtxd_v + = 0; + +250  + gEMS_TX_STATUS_OK +; + + @src/uart/emsuart_esp32.h + +23 #i +defed +( +ESP32 +) + +25 #ide +EMSESP_EMSUART_H + + +26  + #EMSESP_EMSUART_H + + + ) + +28  + ~ + +30  + ~"䓹os/FeRTOS.h +" + +31  + ~"䓹os/sk.h +" + +32  + ~"䓹os/rgbuf.h +" + +33  + ~"䓹os/queue.h +" + +34  + ~ + +35  + ~ + +37  + #EMS_MAXBUFFERSIZE + 33 + +38 + + ) + +39  + #EMSUART_UART + +UART_NUM_2 + + +40  + #EMS_UART + +UART2 + + +41  + #EMSUART_BAUD + 9600 + +42 + + ) + +43  + #EMS_TXMODE_DEFAULT + 1 + + ) + +44  + #EMS_TXMODE_EMSPLUS + 2 + + ) + +45  + #EMS_TXMODE_HT3 + 3 + + ) + +46  + #EMS_TXMODE_NEW + 4 + +47 + + ) + +49  + #EMSUART_TX_BIT_TIME + 104 + +50 + + ) + +52  + #EMSUART_TX_BRK_TIMER + ( +EMSUART_TX_BIT_TIME + * 10 + 28) + +53  + #EMSUART_TX_WAIT_REPLY + 100000 + +54 + + ) + +56  + #EMSUART_TX_BUSY_WAIT + ( +EMSUART_TX_BIT_TIME + / 8) + +57  + #EMSUART_TX_TIMEOUT + (20 * +EMSUART_TX_BIT_TIME + / +EMSUART_TX_BUSY_WAIT +) + + ) + +58  + #EMSUART_TX_BRK_EMS + ( +EMSUART_TX_BIT_TIME + * 10) + + ) + +62  + #EMSUART_TX_WAIT_HT3 + ( +EMSUART_TX_BIT_TIME + * 17) + +63  + #EMSUART_TX_BRK_HT3 + ( +EMSUART_TX_BIT_TIME + * 11) + + ) + +66  + #EMSUART_TX_WAIT_PLUS + ( +EMSUART_TX_BIT_TIME + * 20) + +67  + #EMSUART_TX_BRK_PLUS + ( +EMSUART_TX_BIT_TIME + * 11) + + ) + +69 +mea + + gem + { + +71  + #EMS_TX_STATUS_OK + 1 + + ) + +72  + #EMS_TX_STATUS_ERR + 0 + + ) + +74 as + cEMSut + { + +75 + gpublic +: + +76 +EMSut +() = ; + +77 ~ +EMSut +() = ; + +79  +t +(cڡ +ut8_t + +tx_mode +, cڡ ut8_ +rx_gpio +, cڡ ut8_ +tx_gpio +); + +80  +nd_pl +(cڡ +ut8_t + +da +); + +81  + +(); + +82  +t +(); + +83  +ut16_t + +sm +(cڡ +ut8_t + * +buf +, cڡ ut8_ +n +); + +85 + give +: + +86  +emsut_cvTask +(* + +); + +87  +IRAM_ATTR + +emsut_rx__hdr +(* + +); + +88  +IRAM_ATTR + +emsut_tx_tim__hdr +(); + + @src/uart/emsuart_esp8266.cpp + +19 #i +defed +( +ESP8266 +) + +21  + ~"ut/emsut_e8266.h +" + +23  + ~"em.h +" + +25 +mea + + gem + { + +27 +os_evt_t + + gcvTaskQueue +[ +EMSUART_cvTaskQueueL +]; + +28 + gEMSut +:: +EMSRxBuf_t + * +pEMSRxBuf +; + +29 + gEMSut +:: +EMSRxBuf_t + * +EMSRxBuf +[ +EMS_MAXBUFFERS +]; + +30 +ut8_t + + gemsRxBufIdx + = 0; + +31 +ut8_t + + gtx_mode_ + = 0xFF; + +32 +bo + + gdr_xt_rx + = +ue +; + +33 +ut8_t + + gemsTxBuf +[ +EMS_MAXBUFFERSIZE +]; + +34 +ut8_t + + gemsTxBufIdx +; + +35 +ut8_t + + gemsTxBufL +; + +36 +ut32_t + + gemsTxWa +; + +37 +bo + + gEMSut +:: +ndg_ + = +l +; + +43  +ICACHE_RAM_ATTR + + gEMSut +:: +emsut_rx__hdr +(* + +) { + +44  +ut8_t + +ngth + = 0; + +45  +ut8_t + + gut_bufr +[ +EMS_MAXBUFFERSIZE + + 2]; + +47 i( +USIS +( +EMSUART_UART +& ((1 << + gUIBD +))) { + +48 +USC0 +( +EMSUART_UART +&~(1 << +UCBRK +); + +49 i( + gndg_ +) { + +50 + gdr_xt_rx + = +ue +; + +52 +USIC +( +EMSUART_UART +(1 << +UIBD +); + +53 + gngth + = 0; + +54 ( +USS +( +EMSUART_UART +>> + gUSRXC +) & 0x0FF) { + +55 +ut8_t + + grx + = +USF +( +EMSUART_UART +); + +56 i( + gngth + < + gEMS_MAXBUFFERSIZE +) { + +57 i( + gngth + || + grx +) { + +58 + gut_bufr +[ +ngth +++] = +rx +; + +61 + gdr_xt_rx + = +ue +; + +64 i(! + gdr_xt_rx +) { + +65 i( + gut_bufr +[ +ngth + - 1]) { + +66 + gngth +++; + +68 + gpEMSRxBuf +-> + gngth + = +ngth +; + +69 +os_memy +((*) +pEMSRxBuf +-> +bufr +, (*)& +ut_bufr +,EMSRxBuf-> +ngth +); + +70 +syem_os_po +( +EMSUART_cvTaskPrio +, 0, 0); + +72 + gdr_xt_rx + = +l +; + +73 + gndg_ + = +l +; + +82  +ICACHE_FLASH_ATTR + + gEMSut +:: +emsut_cvTask +( +os_evt_t + * +evts +) { + +83 +EMSRxBuf_t + * +pCut + = +pEMSRxBuf +; + +84 + gpEMSRxBuf + = +EMSRxBuf +[++ +emsRxBufIdx + % +EMS_MAXBUFFERS +]; + +85 +ut8_t + + gngth + = +pCut +-> +ngth +; + +86 + gpCut +-> + gngth + = 0; + +89 i( + gngth + > 4 ||ength == 2) { + +90 +EMSESP +:: +comg_gm +(( +ut8_t + *) +pCut +-> +bufr +, +ngth + - 1); + +95  +ICACHE_RAM_ATTR + + gEMSut +:: +emsut_tx_tim__hdr +() { + +96 i(! +ndg_ +) { + +99 + gemsTxBufIdx +++; + +100 i( + gemsTxBufIdx + < + gemsTxBufL +) { + +101 +USF +( +EMSUART_UART + +emsTxBuf +[ +emsTxBufIdx +]; + +102 +tim1_wre +( +emsTxWa +); + +103 } i( + gemsTxBufIdx + = +emsTxBufL +) { + +104 +USC0 +( +EMSUART_UART +|(1 << +UCBRK +); + +105 +tim1_wre +( +EMSUART_TX_BRK_TIMER +); + +107 +USC0 +( +EMSUART_UART +&~(1 << +UCBRK +); + +108 + gndg_ + = +l +; + +115  +ICACHE_FLASH_ATTR + + gEMSut +:: +emsut_ush_fifos +() { + +116 +USC0 +( +EMSUART_UART +|((1 << +UCRXRST +| (1 << +UCTXRST +)); + +117 +USC0 +( +EMSUART_UART +&~((1 << +UCRXRST +| (1 << +UCTXRST +)); + +123  +ICACHE_FLASH_ATTR + + gEMSut +:: +t +(cڡ +ut8_t + +tx_mode +, cڡ ut8_ +rx_gpio +, cڡ ut8_ +tx_gpio +) { + +124 i( + gtx_mode_ + != 0xFF) { + +125 +tx_mode_ + = +tx_mode +; + +126 +t +(); + +129 + gtx_mode_ + = +tx_mode +; + +131  + gi + = 0; i < + gEMS_MAXBUFFERS +; i++) { + +132 +EMSRxBuf_t + * + gp + = (EMSRxBuf_*) +mloc +((EMSRxBuf_t)); + +133 + gp +-> + gngth + = 0; + +134 + gEMSRxBuf +[ +i +] = +p +; + +136 + gpEMSRxBuf + = +EMSRxBuf +[0]; + +138 +ETS_UART_INTR_ATTACH +( +nuαr +,ullptr); + +141 +PIN_PULLUP_DIS +( +PERIPHS_IO_MUX_U0TXD_U +); + +142 +PIN_FUNC_SELECT +( +PERIPHS_IO_MUX_U0TXD_U +, +FUNC_U0TXD +); + +143 +PIN_PULLUP_DIS +( +PERIPHS_IO_MUX_U0RXD_U +); + +144 +PIN_FUNC_SELECT +( +PERIPHS_IO_MUX_U0RXD_U +, +FUNC_U0RXD +); + +147 +USD +( +EMSUART_UART +( +UART_CLK_FREQ + / +EMSUART_BAUD +); + +148 +USC0 +( +EMSUART_UART + +EMSUART_CONFIG +; + +149 +emsut_ush_fifos +(); + +158 +USC1 +( +EMSUART_UART +) = 0; + +162 +USIC +( +EMSUART_UART +) = 0xFFFF; + +163 +USIE +( +EMSUART_UART +) = 0; + +166 +syem_os_sk +( +emsut_cvTask +, +EMSUART_cvTaskPrio +, +cvTaskQueue +, +EMSUART_cvTaskQueueL +); + +169 +syem_t_os_t +(0); + +171 i( + gtx_gpio + =1 && +rx_gpio + == 3) { + +172 +syem_ut_de_sw +(); + +173 } i( + gtx_gpio + =15 && +rx_gpio + == 13) { + +174 +syem_ut_sw +(); + +177 +ETS_UART_INTR_ATTACH +( +emsut_rx__hdr +, +nuαr +); + +178 + gdr_xt_rx + = +ue +; + +181 +tim1_chIru +( +emsut_tx_tim__hdr +); + +183 +t +(); + +190  +ICACHE_FLASH_ATTR + + gEMSut +:: + +() { + +191 +USIE +( +EMSUART_UART +) = 0; + +192 +USC0 +( +EMSUART_UART +&~(1 << +UCBRK +); + +193 +tim1_dib +(); + +194 + gndg_ + = +l +; + +200  +ICACHE_FLASH_ATTR + + gEMSut +:: +t +() { + +201 i( +USIR +( +EMSUART_UART +& ((1 << +UIBD +))) { + +202 +USIC +( +EMSUART_UART +(1 << +UIBD +); + +203 + gdr_xt_rx + = +ue +; + +205 i( + gtx_mode_ + > 100) { + +206 + gemsTxWa + = 5 * +EMSUART_TX_BIT_TIME + * ( +tx_mode_ + - 90); + +208 + gemsTxWa + = 5 * +EMSUART_TX_BIT_TIME + * ( +tx_mode_ + + 10); + +210 + gemsTxBufIdx + = 0; + +211 + gemsTxBufL + = 0; + +212 +tim1_ab +( +TIM_DIV16 +, +TIM_EDGE +, +TIM_SINGLE +); + +213 +USIE +( +EMSUART_UART +(1 << +UIBD +); + +219  +ICACHE_FLASH_ATTR + + gEMSut +:: +nd_pl +( +ut8_t + +da +) { + +220 +sm +(& +da +, 1); + +228 +ut16_t + +ICACHE_FLASH_ATTR + + gEMSut +:: +sm +( +ut8_t + * +buf +, ut8_ +n +) { + +229 i( + gn + =0 || +n + > +EMS_MAXBUFFERSIZE +) { + +230  +EMS_TX_STATUS_ERR +; + +234 i( + gtx_mode_ + >= 5) { + +235 +ndg_ + = +ue +; + +236  +ut8_t + + gi + = 0; i < + gn +; i++) { + +237 + gemsTxBuf +[ +i +] = +buf +[i]; + +239 +USF +( +EMSUART_UART + +buf +[0]; + +240 + gemsTxBufIdx + = 0; + +241 + gemsTxBufL + = +n +; + +242 i( + gtx_mode_ + > 100 && + gn + > 1) { + +243 +tim1_wre +( +EMSUART_TX_WAIT_REPLY +); + +245 +tim1_wre +( +emsTxWa +); + +247  + gEMS_TX_STATUS_OK +; + +251 i( + gtx_mode_ + = +EMS_TXMODE_NEW +) { + +252  +ut8_t + +i + = 0; + gi + < + gn +; i++) { + +253 +USF +( +EMSUART_UART + +buf +[ +i +]; + +255 +USC0 +( +EMSUART_UART +|(1 << +UCBRK +); + +256  + gEMS_TX_STATUS_OK +; + +260 i( + gtx_mode_ + = +EMS_TXMODE_EMSPLUS +) { + +261  +ut8_t + +i + = 0; + gi + < + gn +; i++) { + +262 +USF +( +EMSUART_UART + +buf +[ +i +]; + +263 +dayMiocds +( +EMSUART_TX_WAIT_PLUS +); + +265 +USC0 +( +EMSUART_UART +|(1 << +UCBRK +); + +266 +dayMiocds +( +EMSUART_TX_BRK_PLUS +); + +267 +USC0 +( +EMSUART_UART +&~(1 << +UCBRK +); + +268  + gEMS_TX_STATUS_OK +; + +272 i( + gtx_mode_ + = +EMS_TXMODE_HT3 +) { + +273  +ut8_t + +i + = 0; + gi + < + gn +; i++) { + +274 +USF +( +EMSUART_UART + +buf +[ +i +]; + +276 (( +USS +( +EMSUART_UART +>> + gUSTXC +) & 0xff)) { + +279 +dayMiocds +( +EMSUART_TX_WAIT_HT3 +); + +281 +USC0 +( +EMSUART_UART +|(1 << +UCBRK +); + +282 +dayMiocds +( +EMSUART_TX_BRK_HT3 +); + +283 +USC0 +( +EMSUART_UART +&~(1 << +UCBRK +); + +284  + gEMS_TX_STATUS_OK +; + +313 +emsut_ush_fifos +(); + +316  +ut8_t + + gi + = 0; i < + gn +; i++) { + +317 vީ +ut8_t + + g_uxc + = ( +USS +( +EMSUART_UART +>> +USRXC +) & 0xFF; + +318 +ut16_t + + gtimeoutt + = +EMSUART_TX_TIMEOUT +; + +319 +USF +( +EMSUART_UART + +buf +[ +i +]; + +321 ((( +USS +( +EMSUART_UART +>> + gUSRXC +& 0xFF= +_uxc +&& (-- +timeoutt + > 0)) { + +322 +dayMiocds +( +EMSUART_TX_BUSY_WAIT +); + +325 +USC0 +( +EMSUART_UART +|(1 << +UCBRK +); + +326 +dayMiocds +( +EMSUART_TX_BRK_EMS +); + +327 +USC0 +( +EMSUART_UART +&~(1 << +UCBRK +); + +328  + gEMS_TX_STATUS_OK +; + + @src/uart/emsuart_esp8266.h + +18 #i +defed +( +ESP8266 +) + +20 #ide +EMSESP_EMSUART_H + + +21  + #EMSESP_EMSUART_H + + + ) + +23  + ~ + +25  + ~ + +27  + #EMSUART_UART + 0 + +28  + #EMSUART_CONFIG + 0x1C + +29  + #EMSUART_BAUD + 9600 + +30 + + ) + +31  + #EMS_MAXBUFFERS + 3 + +32  + #EMS_MAXBUFFERSIZE + 33 + +33 + + ) + +34  + #EMSUART_cvTaskPrio + 2 + +35  + #EMSUART_cvTaskQueueL + 10 + +36 + + ) + +37  + #EMS_TXMODE_DEFAULT + 1 + + ) + +38  + #EMS_TXMODE_EMSPLUS + 2 + + ) + +39  + #EMS_TXMODE_HT3 + 3 + + ) + +40  + #EMS_TXMODE_NEW + 4 + +41 + + ) + +43  + #EMSUART_TX_BIT_TIME + 104 + +44 + + ) + +46  + #EMSUART_TX_BRK_TIMER + ( +EMSUART_TX_BIT_TIME + * 52) + +47  + #EMSUART_TX_WAIT_REPLY + 500000 + +48 + + ) + +50  + #EMSUART_TX_BUSY_WAIT + ( +EMSUART_TX_BIT_TIME + / 8) + +52  + #EMSUART_TX_TIMEOUT + (220 * 8) + +53  + #EMSUART_TX_BRK_EMS + ( +EMSUART_TX_BIT_TIME + * 10) + + ) + +57  + #EMSUART_TX_WAIT_HT3 + ( +EMSUART_TX_BIT_TIME + * 17) + +58  + #EMSUART_TX_BRK_HT3 + ( +EMSUART_TX_BIT_TIME + * 11) + + ) + +61  + #EMSUART_TX_WAIT_PLUS + ( +EMSUART_TX_BIT_TIME + * 20) + +62  + #EMSUART_TX_BRK_PLUS + ( +EMSUART_TX_BIT_TIME + * 11) + + ) + +64 +mea + + gem + { + +66  + #EMS_TX_STATUS_ERR + 0 + + ) + +67  + #EMS_TX_STATUS_OK + 1 + + ) + +69 as + cEMSut + { + +70 + gpublic +: + +71 +EMSut +() = ; + +72 ~ +EMSut +() = ; + +74  +ICACHE_FLASH_ATTR + +t +(cڡ +ut8_t + +tx_mode +, cڡ ut8_ +rx_gpio +, cڡ ut8_ +tx_gpio +); + +75  +ICACHE_FLASH_ATTR + + +(); + +76  +ICACHE_FLASH_ATTR + +t +(); + +77  +ICACHE_FLASH_ATTR + +nd_pl +( +ut8_t + +da +); + +78  +ut16_t + +ICACHE_FLASH_ATTR + +sm +( +ut8_t + * +buf +, ut8_ +n +); + +79  +bo + +ndg +() { + +80  + gndg_ +; + +84 +ut8_t + + gngth +; + +85 +ut8_t + + gbufr +[ +EMS_MAXBUFFERSIZE +]; + +86 } + tEMSRxBuf_t +; + +88 + give +: + +89  +ICACHE_RAM_ATTR + +emsut_rx__hdr +(* + +); + +90  +ICACHE_FLASH_ATTR + +emsut_cvTask +( +os_evt_t + * +evts +); + +91  +ICACHE_FLASH_ATTR + +emsut_ush_fifos +(); + +92  +ICACHE_RAM_ATTR + +emsut_tx_tim__hdr +(); + +93  +bo + + gndg_ +; + + @src/version.h + +1  + #EMSESP_APP_VERSION + "2.0.1" + + ) + + @ +1 +. +0 +701 +42112 +.pio/libdeps/esp8266/ArduinoJson/ArduinoJson.h +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.h +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayFunctions.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayIterator.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayRef.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayShortcuts.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Configuration.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/StaticJsonDocument.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/Visitable.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Namespace.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/Float.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/Integer.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectFunctions.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectIterator.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectRef.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectShortcuts.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/Pair.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/safe_strcmp.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/static_array.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringCopier.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringMover.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringStorage.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/ArduinoStringAdapter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/ConstRamStringAdapter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/FlashStringAdapter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/FlashStringIterator.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsWriteableString.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/RamStringAdapter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/SizedFlashStringAdapter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/SizedRamStringAdapter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StdStringAdapter.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StoragePolicy.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/String.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/SlotFunctions.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAs.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAsImpl.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantFunctions.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRef.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantShortcuts.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/compatibility.hpp +.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/version.hpp +.pio/libdeps/esp8266/AsyncMqttClient/examples/FullyFeaturedSSL/src/main.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.h +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Callbacks.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/DisconnectReasons.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Flags.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Helpers.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/MessageProperties.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/ConnAckPacket.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/ConnAckPacket.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/Packet.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PingRespPacket.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PingRespPacket.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubAckPacket.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubAckPacket.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubCompPacket.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubCompPacket.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRecPacket.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRecPacket.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRelPacket.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRelPacket.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PublishPacket.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PublishPacket.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/SubAckPacket.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/SubAckPacket.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/UnsubAckPacket.cpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/UnsubAckPacket.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/ParsingInformation.hpp +.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Storage.hpp +.pio/libdeps/esp8266/AsyncTCP/src/AsyncTCP.cpp +.pio/libdeps/esp8266/AsyncTCP/src/AsyncTCP.h +.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/config.h +.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/config.h +.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.cpp +.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.h +.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.cpp +.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.h +.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.cpp +.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.h +.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.cpp +.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.h +.pio/libdeps/esp8266/ESPAsyncTCP/src/async_config.h +.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.c +.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.h +interface/node_modules/jest-haste-map/node_modules/fsevents/fsevents.cc +interface/node_modules/jest-haste-map/node_modules/fsevents/src/async.cc +interface/node_modules/jest-haste-map/node_modules/fsevents/src/constants.cc +interface/node_modules/jest-haste-map/node_modules/fsevents/src/methods.cc +interface/node_modules/jest-haste-map/node_modules/fsevents/src/storage.cc +interface/node_modules/jest-haste-map/node_modules/fsevents/src/thread.cc +interface/node_modules/nan/nan.h +interface/node_modules/nan/nan_callbacks.h +interface/node_modules/nan/nan_callbacks_12_inl.h +interface/node_modules/nan/nan_callbacks_pre_12_inl.h +interface/node_modules/nan/nan_converters.h +interface/node_modules/nan/nan_converters_43_inl.h +interface/node_modules/nan/nan_converters_pre_43_inl.h +interface/node_modules/nan/nan_define_own_property_helper.h +interface/node_modules/nan/nan_implementation_12_inl.h +interface/node_modules/nan/nan_implementation_pre_12_inl.h +interface/node_modules/nan/nan_json.h +interface/node_modules/nan/nan_maybe_43_inl.h +interface/node_modules/nan/nan_maybe_pre_43_inl.h +interface/node_modules/nan/nan_new.h +interface/node_modules/nan/nan_object_wrap.h +interface/node_modules/nan/nan_persistent_12_inl.h +interface/node_modules/nan/nan_persistent_pre_12_inl.h +interface/node_modules/nan/nan_private.h +interface/node_modules/nan/nan_string_bytes.h +interface/node_modules/nan/nan_typedarray_contents.h +interface/node_modules/nan/nan_weak.h +interface/node_modules/watchpack-chokidar2/node_modules/fsevents/fsevents.cc +interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/async.cc +interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/constants.cc +interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/methods.cc +interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/storage.cc +interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/thread.cc +interface/node_modules/webpack-dev-server/node_modules/fsevents/fsevents.cc +interface/node_modules/webpack-dev-server/node_modules/fsevents/src/async.cc +interface/node_modules/webpack-dev-server/node_modules/fsevents/src/constants.cc +interface/node_modules/webpack-dev-server/node_modules/fsevents/src/methods.cc +interface/node_modules/webpack-dev-server/node_modules/fsevents/src/storage.cc +interface/node_modules/webpack-dev-server/node_modules/fsevents/src/thread.cc +interface/node_modules/zlib/src/node-zlib.cc +lib/ESPAsyncWebServer/AsyncEventSource.cpp +lib/ESPAsyncWebServer/AsyncEventSource.h +lib/ESPAsyncWebServer/AsyncJson.h +lib/ESPAsyncWebServer/AsyncWebSocket.cpp +lib/ESPAsyncWebServer/AsyncWebSocket.h +lib/ESPAsyncWebServer/AsyncWebSynchronization.h +lib/ESPAsyncWebServer/ESPAsyncWebServer.h +lib/ESPAsyncWebServer/SPIFFSEditor.cpp +lib/ESPAsyncWebServer/SPIFFSEditor.h +lib/ESPAsyncWebServer/StringArray.h +lib/ESPAsyncWebServer/WebAuthentication.cpp +lib/ESPAsyncWebServer/WebAuthentication.h +lib/ESPAsyncWebServer/WebHandlerImpl.h +lib/ESPAsyncWebServer/WebHandlers.cpp +lib/ESPAsyncWebServer/WebRequest.cpp +lib/ESPAsyncWebServer/WebResponseImpl.h +lib/ESPAsyncWebServer/WebResponses.cpp +lib/ESPAsyncWebServer/WebServer.cpp +lib/OneWire/OneWire.cpp +lib/OneWire/OneWire.h +lib/OneWire/OneWire_direct_gpio.h +lib/OneWire/OneWire_direct_regtype.h +lib/framework/APSettingsService.cpp +lib/framework/APSettingsService.h +lib/framework/APStatus.cpp +lib/framework/APStatus.h +lib/framework/ArduinoJsonJWT.cpp +lib/framework/ArduinoJsonJWT.h +lib/framework/AuthenticationService.cpp +lib/framework/AuthenticationService.h +lib/framework/ESP8266React.cpp +lib/framework/ESP8266React.h +lib/framework/ESPUtils.h +lib/framework/FSPersistence.h +lib/framework/FactoryResetService.cpp +lib/framework/FactoryResetService.h +lib/framework/Features.h +lib/framework/FeaturesService.cpp +lib/framework/FeaturesService.h +lib/framework/HttpEndpoint.h +lib/framework/JsonUtils.h +lib/framework/MqttPubSub.h +lib/framework/MqttSettingsService.cpp +lib/framework/MqttSettingsService.h +lib/framework/MqttStatus.cpp +lib/framework/MqttStatus.h +lib/framework/NTPSettingsService.cpp +lib/framework/NTPSettingsService.h +lib/framework/NTPStatus.cpp +lib/framework/NTPStatus.h +lib/framework/OTASettingsService.cpp +lib/framework/OTASettingsService.h +lib/framework/RestartService.cpp +lib/framework/RestartService.h +lib/framework/SecurityManager.h +lib/framework/SecuritySettingsService.cpp +lib/framework/SecuritySettingsService.h +lib/framework/StatefulService.cpp +lib/framework/StatefulService.h +lib/framework/SystemStatus.cpp +lib/framework/SystemStatus.h +lib/framework/UploadFirmwareService.cpp +lib/framework/UploadFirmwareService.h +lib/framework/WWWData.h +lib/framework/WebSocketTxRx.h +lib/framework/WiFiScanner.cpp +lib/framework/WiFiScanner.h +lib/framework/WiFiSettingsService.cpp +lib/framework/WiFiSettingsService.h +lib/framework/WiFiStatus.cpp +lib/framework/WiFiStatus.h +lib/uuid-common/src/common.cpp +lib/uuid-common/src/get_uptime_ms.cpp +lib/uuid-common/src/loop.cpp +lib/uuid-common/src/printable_to_string.cpp +lib/uuid-common/src/read_flash_string.cpp +lib/uuid-common/src/uuid/common.h +lib/uuid-console/src/command_line.cpp +lib/uuid-console/src/commands.cpp +lib/uuid-console/src/console.cpp +lib/uuid-console/src/shell.cpp +lib/uuid-console/src/shell_log.cpp +lib/uuid-console/src/shell_loop_all.cpp +lib/uuid-console/src/shell_print.cpp +lib/uuid-console/src/shell_prompt.cpp +lib/uuid-console/src/shell_stream.cpp +lib/uuid-console/src/stream_console.cpp +lib/uuid-console/src/uuid/console.h +lib/uuid-log/src/format_level_char.cpp +lib/uuid-log/src/format_level_lowercase.cpp +lib/uuid-log/src/format_level_uppercase.cpp +lib/uuid-log/src/format_timestamp_ms.cpp +lib/uuid-log/src/levels.cpp +lib/uuid-log/src/levels_lowercase.cpp +lib/uuid-log/src/levels_uppercase.cpp +lib/uuid-log/src/log.cpp +lib/uuid-log/src/parse_level_lowercase.cpp +lib/uuid-log/src/parse_level_uppercase.cpp +lib/uuid-log/src/uuid/log.h +lib/uuid-syslog/src/syslog.cpp +lib/uuid-syslog/src/uuid/syslog.h +lib/uuid-telnet/src/stream.cpp +lib/uuid-telnet/src/telnet.cpp +lib/uuid-telnet/src/uuid/telnet.h +lib_standalone/Arduino.cpp +lib_standalone/Arduino.h +lib_standalone/ArduinoJson/ArduinoJson.h +lib_standalone/ArduinoJson/extras/fuzzing/fuzzer_main.cpp +lib_standalone/ArduinoJson/extras/fuzzing/json_fuzzer.cpp +lib_standalone/ArduinoJson/extras/fuzzing/msgpack_fuzzer.cpp +lib_standalone/ArduinoJson/extras/scripts/wandbox/JsonGeneratorExample.cpp +lib_standalone/ArduinoJson/extras/scripts/wandbox/JsonParserExample.cpp +lib_standalone/ArduinoJson/extras/scripts/wandbox/MsgPackParserExample.cpp +lib_standalone/ArduinoJson/extras/tests/ElementProxy/add.cpp +lib_standalone/ArduinoJson/extras/tests/ElementProxy/clear.cpp +lib_standalone/ArduinoJson/extras/tests/ElementProxy/compare.cpp +lib_standalone/ArduinoJson/extras/tests/ElementProxy/remove.cpp +lib_standalone/ArduinoJson/extras/tests/ElementProxy/set.cpp +lib_standalone/ArduinoJson/extras/tests/ElementProxy/size.cpp +lib_standalone/ArduinoJson/extras/tests/ElementProxy/subscript.cpp +lib_standalone/ArduinoJson/extras/tests/Helpers/CustomReader.hpp +lib_standalone/ArduinoJson/extras/tests/Helpers/Stream.h +lib_standalone/ArduinoJson/extras/tests/Helpers/WString.h +lib_standalone/ArduinoJson/extras/tests/Helpers/progmem_emulation.hpp +lib_standalone/ArduinoJson/extras/tests/IntegrationTests/gbathree.cpp +lib_standalone/ArduinoJson/extras/tests/IntegrationTests/issue772.cpp +lib_standalone/ArduinoJson/extras/tests/IntegrationTests/openweathermap.cpp +lib_standalone/ArduinoJson/extras/tests/IntegrationTests/round_trip.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/add.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/copyArray.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/createNested.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/equals.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/get.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/isNull.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/iterator.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/memoryUsage.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/nesting.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/remove.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/size.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/std_string.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/subscript.cpp +lib_standalone/ArduinoJson/extras/tests/JsonArray/undefined.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/DeserializationError.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/array.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/array_static.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/filter.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/incomplete_input.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/input_types.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/invalid_input.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/misc.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/nestingLimit.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/number.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/object.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/object_static.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/string.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/BasicJsonDocument.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/DynamicJsonDocument.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/StaticJsonDocument.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/add.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/compare.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/containsKey.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/createNested.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/isNull.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/nesting.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/remove.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/shrinkToFit.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/size.cpp +lib_standalone/ArduinoJson/extras/tests/JsonDocument/subscript.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/containsKey.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/copy.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/createNestedArray.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/createNestedObject.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/equals.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/invalid.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/isNull.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/iterator.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/memoryUsage.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/nesting.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/remove.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/size.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/std_string.cpp +lib_standalone/ArduinoJson/extras/tests/JsonObject/subscript.cpp +lib_standalone/ArduinoJson/extras/tests/JsonSerializer/CustomWriter.cpp +lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonArray.cpp +lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonArrayPretty.cpp +lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonObject.cpp +lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonObjectPretty.cpp +lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonVariant.cpp +lib_standalone/ArduinoJson/extras/tests/JsonSerializer/misc.cpp +lib_standalone/ArduinoJson/extras/tests/JsonSerializer/std_stream.cpp +lib_standalone/ArduinoJson/extras/tests/JsonSerializer/std_string.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/add.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/as.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/clear.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/compare.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/containsKey.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/copy.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/createNested.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/is.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/isnull.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/memoryUsage.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/misc.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/nesting.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/or.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/overflow.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/remove.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/set.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/subscript.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/types.cpp +lib_standalone/ArduinoJson/extras/tests/JsonVariant/undefined.cpp +lib_standalone/ArduinoJson/extras/tests/MemberProxy/add.cpp +lib_standalone/ArduinoJson/extras/tests/MemberProxy/clear.cpp +lib_standalone/ArduinoJson/extras/tests/MemberProxy/compare.cpp +lib_standalone/ArduinoJson/extras/tests/MemberProxy/containsKey.cpp +lib_standalone/ArduinoJson/extras/tests/MemberProxy/remove.cpp +lib_standalone/ArduinoJson/extras/tests/MemberProxy/set.cpp +lib_standalone/ArduinoJson/extras/tests/MemberProxy/size.cpp +lib_standalone/ArduinoJson/extras/tests/MemberProxy/subscript.cpp +lib_standalone/ArduinoJson/extras/tests/MemoryPool/StringBuilder.cpp +lib_standalone/ArduinoJson/extras/tests/MemoryPool/allocString.cpp +lib_standalone/ArduinoJson/extras/tests/MemoryPool/allocVariant.cpp +lib_standalone/ArduinoJson/extras/tests/MemoryPool/clear.cpp +lib_standalone/ArduinoJson/extras/tests/MemoryPool/size.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/FloatParts.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/Issue1189.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/Issue978.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/Readers.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/StringAdapters.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/StringWriter.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/TypeTraits.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/Utf16.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/Utf8.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/conflicts.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/custom_string.hpp +lib_standalone/ArduinoJson/extras/tests/Misc/unsigned_char.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/version.cpp +lib_standalone/ArduinoJson/extras/tests/Misc/weird_strcmp.hpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/cpp11.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/decode_unicode_0.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/decode_unicode_1.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_0.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_1.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_infinity_0.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_infinity_1.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_nan_0.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_nan_1.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_progmem_1.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_double_0.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_double_1.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_long_long_0.cpp +lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_long_long_1.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeArray.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeObject.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeStaticVariant.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeVariant.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/doubleToFloat.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/incompleteInput.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/input_types.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/nestingLimit.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/notSupported.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/destination_types.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/measure.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/misc.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeArray.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeObject.cpp +lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeVariant.cpp +lib_standalone/ArduinoJson/extras/tests/Numbers/parseFloat.cpp +lib_standalone/ArduinoJson/extras/tests/Numbers/parseInteger.cpp +lib_standalone/ArduinoJson/extras/tests/Numbers/parseNumber.cpp +lib_standalone/ArduinoJson/extras/tests/TextFormatter/writeFloat.cpp +lib_standalone/ArduinoJson/extras/tests/TextFormatter/writeString.cpp +lib_standalone/ArduinoJson/extras/tests/catch/catch.cpp +lib_standalone/ArduinoJson/extras/tests/catch/catch.hpp +lib_standalone/ArduinoJson/src/ArduinoJson.h +lib_standalone/ArduinoJson/src/ArduinoJson.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayFunctions.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayIterator.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayRef.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayShortcuts.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Configuration.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Document/StaticJsonDocument.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Memory/StringSlot.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Misc/Visitable.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Namespace.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/Float.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/Integer.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseFloat.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseInteger.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectFunctions.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectIterator.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectRef.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectShortcuts.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Object/Pair.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantCasts.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantComparisons.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantOperators.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantOr.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantShortcuts.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/gsl/not_null.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/safe_strcmp.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringCopier.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringMover.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringStorage.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/ArduinoStringAdapter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/ConstRamStringAdapter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/FlashStringAdapter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/IsWriteableString.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/RamStringAdapter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/SizedFlashStringAdapter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/SizedRamStringAdapter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StlStringAdapter.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StoragePolicy.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/String.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/SlotFunctions.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantAs.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantAsImpl.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantFunctions.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantRef.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/compatibility.hpp +lib_standalone/ArduinoJson/src/ArduinoJson/version.hpp +lib_standalone/AsyncJson.h +lib_standalone/AsyncMqttClient.h +lib_standalone/AsyncTCP.h +lib_standalone/ESP8266React.h +lib_standalone/ESPAsyncWebServer.h +lib_standalone/FS.h +lib_standalone/FSPersistence.h +lib_standalone/Features.h +lib_standalone/HttpEndpoint.h +lib_standalone/MqttPubSub.h +lib_standalone/SecurityManager.h +lib_standalone/SecuritySettingsService.cpp +lib_standalone/SecuritySettingsService.h +lib_standalone/StatefulService.cpp +lib_standalone/StatefulService.h +lib_standalone/WString.cpp +lib_standalone/WString.h +lib_standalone/WebSocketTxRx.h +lib_standalone/emsuart_standalone.cpp +lib_standalone/emsuart_standalone.h +src/EMSESPDevicesService.cpp +src/EMSESPDevicesService.h +src/EMSESPSettingsService.cpp +src/EMSESPSettingsService.h +src/EMSESPStatusService.cpp +src/EMSESPStatusService.h +src/console.cpp +src/console.h +src/device_library.h +src/devices/boiler.cpp +src/devices/boiler.h +src/devices/connect.cpp +src/devices/connect.h +src/devices/controller.cpp +src/devices/controller.h +src/devices/gateway.cpp +src/devices/gateway.h +src/devices/heatpump.cpp +src/devices/heatpump.h +src/devices/mixing.cpp +src/devices/mixing.h +src/devices/solar.cpp +src/devices/solar.h +src/devices/switch.cpp +src/devices/switch.h +src/devices/thermostat.cpp +src/devices/thermostat.h +src/emsdevice.cpp +src/emsdevice.h +src/emsesp.cpp +src/emsesp.h +src/emsfactory.h +src/helpers.cpp +src/helpers.h +src/locale_EN.h +src/main.cpp +src/mqtt.cpp +src/mqtt.h +src/roomcontrol.cpp +src/roomcontrol.h +src/sensors.cpp +src/sensors.h +src/shower.cpp +src/shower.h +src/system.cpp +src/system.h +src/telegram.cpp +src/telegram.h +src/test/test.cpp +src/test/test.h +src/uart/emsuart_esp32.cpp +src/uart/emsuart_esp32.h +src/uart/emsuart_esp8266.cpp +src/uart/emsuart_esp8266.h +src/version.h diff --git a/doc/how-to Domoticz.txt b/doc/how-to Domoticz.txt new file mode 100644 index 000000000..b3088c338 --- /dev/null +++ b/doc/how-to Domoticz.txt @@ -0,0 +1,9 @@ +Copy the nefit directory + its content to your ../domoticz/plugin directory +You can now select ""Nefit EMS-ESP with Proddy firmware" as new hardware in Domoticz +Don't forget to tick "accept new hardware devices" or click "allow for 5 minutes" in Settings first +Enter your MQTT server address and click "add" + +The plugin will create 3 new devices: +- room temperature (as measured in the thermostat) under "temperature" +- system pressure under "utility" +- a device to set the thermostat (change temperature setting) under "utility" \ No newline at end of file diff --git a/doc/nefit/mqtt.py b/doc/nefit/mqtt.py new file mode 100644 index 000000000..21ddc42a5 --- /dev/null +++ b/doc/nefit/mqtt.py @@ -0,0 +1,113 @@ +# Based on https://github.com/emontnemery/domoticz_mqtt_discovery +import Domoticz +import time + +class MqttClient: + Address = "" + Port = "" + mqttConn = None + isConnected = False + mqttConnectedCb = None + mqttDisconnectedCb = None + mqttPublishCb = None + + def __init__(self, destination, port, mqttConnectedCb, mqttDisconnectedCb, mqttPublishCb, mqttSubackCb): + Domoticz.Debug("MqttClient::__init__") + self.Address = destination + self.Port = port + self.mqttConnectedCb = mqttConnectedCb + self.mqttDisconnectedCb = mqttDisconnectedCb + self.mqttPublishCb = mqttPublishCb + self.mqttSubackCb = mqttSubackCb + self.Open() + + def __str__(self): + Domoticz.Debug("MqttClient::__str__") + if (self.mqttConn != None): + return str(self.mqttConn) + else: + return "None" + + def Open(self): + Domoticz.Debug("MqttClient::Open") + if (self.mqttConn != None): + self.Close() + self.isConnected = False + self.mqttConn = Domoticz.Connection(Name=self.Address, Transport="TCP/IP", Protocol="MQTT", Address=self.Address, Port=self.Port) + self.mqttConn.Connect() + + def Connect(self): + Domoticz.Debug("MqttClient::Connect") + if (self.mqttConn == None): + self.Open() + else: + ID = 'Domoticz_'+str(int(time.time())) + Domoticz.Log("MQTT CONNECT ID: '" + ID + "'") + self.mqttConn.Send({'Verb': 'CONNECT', 'ID': ID}) + + def Ping(self): + Domoticz.Debug("MqttClient::Ping") + if (self.mqttConn == None or not self.isConnected): + self.Open() + else: + self.mqttConn.Send({'Verb': 'PING'}) + + def Publish(self, topic, payload, retain = 0): + Domoticz.Log("MqttClient::Publish " + topic + " (" + payload + ")") + if (self.mqttConn == None or not self.isConnected): + self.Open() + else: + self.mqttConn.Send({'Verb': 'PUBLISH', 'Topic': topic, 'Payload': bytearray(payload, 'utf-8'), 'Retain': retain}) + + def Subscribe(self, topics): + Domoticz.Debug("MqttClient::Subscribe") + subscriptionlist = [] + for topic in topics: + subscriptionlist.append({'Topic':topic, 'QoS':0}) + if (self.mqttConn == None or not self.isConnected): + self.Open() + else: + self.mqttConn.Send({'Verb': 'SUBSCRIBE', 'Topics': subscriptionlist}) + + def Close(self): + Domoticz.Log("MqttClient::Close") + #TODO: Disconnect from server + self.mqttConn = None + self.isConnected = False + + def onConnect(self, Connection, Status, Description): + Domoticz.Debug("MqttClient::onConnect") + if (Status == 0): + Domoticz.Log("Successful connect to: "+Connection.Address+":"+Connection.Port) + self.Connect() + else: + Domoticz.Log("Failed to connect to: "+Connection.Address+":"+Connection.Port+", Description: "+Description) + + def onDisconnect(self, Connection): + Domoticz.Log("MqttClient::onDisonnect Disconnected from: "+Connection.Address+":"+Connection.Port) + self.Close() + # TODO: Reconnect? + if self.mqttDisconnectedCb != None: + self.mqttDisconnectedCb() + + def onMessage(self, Connection, Data): + topic = '' + if 'Topic' in Data: + topic = Data['Topic'] + payloadStr = '' + if 'Payload' in Data: + payloadStr = Data['Payload'].decode('utf8','replace') + payloadStr = str(payloadStr.encode('unicode_escape')) + + if Data['Verb'] == "CONNACK": + self.isConnected = True + if self.mqttConnectedCb != None: + self.mqttConnectedCb() + + if Data['Verb'] == "SUBACK": + if self.mqttSubackCb != None: + self.mqttSubackCb() + + if Data['Verb'] == "PUBLISH": + if self.mqttPublishCb != None: + self.mqttPublishCb(topic, Data['Payload']) \ No newline at end of file diff --git a/doc/nefit/plugin.py b/doc/nefit/plugin.py new file mode 100644 index 000000000..d9f4d7515 --- /dev/null +++ b/doc/nefit/plugin.py @@ -0,0 +1,169 @@ +""" + + + Plugin to control Nefit EMS-ESP with ' Proddy' firmware
    +
    + Automatically creates Domoticz devices for connected device.
    + Do not forget to "Accept new Hardware Devices" on first run
    +
    + + + + + + + + +
    +""" + +import Domoticz +import json +import time +from mqtt import MqttClient + +class Thermostat: + def checkDevices(self): + if 1 not in Devices: + Domoticz.Debug("Create Temperature Device") + Domoticz.Device(Name="Woonkamer", Unit=1, Type=80, Subtype=5).Create() + if 2 not in Devices: + Domoticz.Debug("Create System Pressure Device") + Domoticz.Device(Name="System Pressure", Unit=2, Type=243, Subtype=9).Create() + if 3 not in Devices: + Domoticz.Debug("Create Thermostat Device") + Domoticz.Device(Name="Nefit", Unit=3, Type=242, Subtype=1).Create() + + def onMqttMessage(self, topic, payload): + if "sysPress" in payload: + pressure=payload["sysPress"] + Domoticz.Debug("System Pressure: {}".format(pressure)) + Devices[2].Update(nValue=1, sValue=str(pressure)) + + if "currtemp" in payload: + temp=round(float(payload["currtemp"]),1) + Domoticz.Debug("Current temp: {}".format(temp)) + if Devices[1].sValue != temp: + Devices[1].Update(nValue=1, sValue=str(temp)) + if "seltemp" in payload: + temp=payload["seltemp"] + Domoticz.Debug("Temp setting: {}".format(temp)) + if Devices[3].sValue != temp: + Devices[3].Update(nValue=1, sValue=str(temp)) + + def onCommand(self, mqttClient, unit, command, level, color): + topic = "ems-esp/thermostat_cmd" + if (command == "Set Level"): + #MQTT command syntax for setting the temperature: {"cmd":"temp", "data":, "hc":1} + cmdstr = chr(123) + chr(34) + "cmd" +chr(34) + ":" + chr(34) + "temp" + chr(34) + ", " #that's {"cmd":"temp", + cmdstr = cmdstr + chr(34) + "data" + chr(34) + ":" + str(level) +", " #that adds "data":, + cmdstr = cmdstr + chr(34) + "hc" + chr(34) + ":1" + chr(125) #that adds "hc":1} + mqttClient.Publish(topic, cmdstr) + +class BasePlugin: + mqttClient = None + + def onStart(self): + self.debugging = Parameters["Mode6"] + + if self.debugging == "Verbose+": + Domoticz.Debugging(2+4+8+16+64) + if self.debugging == "Verbose": + Domoticz.Debugging(2+4+8+16+64) + if self.debugging == "Debug": + Domoticz.Debugging(2+4+8) + + self.controller = Thermostat() + + self.controller.checkDevices() + + self.topics = list(["ems-esp/thermostat_data1", "ems-esp/boiler_data", "ems-esp/STATE"]) + self.mqttserveraddress = Parameters["Address"].replace(" ", "") + self.mqttserverport = Parameters["Port"].replace(" ", "") + self.mqttClient = MqttClient(self.mqttserveraddress, self.mqttserverport, self.onMQTTConnected, self.onMQTTDisconnected, self.onMQTTPublish, self.onMQTTSubscribed) + + def checkDevices(self): + Domoticz.Log("checkDevices called") + + def onStop(self): + Domoticz.Log("onStop called") + + def onCommand(self, Unit, Command, Level, Color): + Domoticz.Debug("Command: " + Command + " (" + str(Level)) + self.controller.onCommand(self.mqttClient, Unit, Command, Level, Color) + + def onConnect(self, Connection, Status, Description): + self.mqttClient.onConnect(Connection, Status, Description) + + def onDisconnect(self, Connection): + self.mqttClient.onDisconnect(Connection) + + def onMessage(self, Connection, Data): + self.mqttClient.onMessage(Connection, Data) + + def onHeartbeat(self): + Domoticz.Debug("Heartbeating...") + + # Reconnect if connection has dropped + if self.mqttClient.mqttConn is None or (not self.mqttClient.mqttConn.Connecting() and not self.mqttClient.mqttConn.Connected() or not self.mqttClient.isConnected): + Domoticz.Debug("Reconnecting") + self.mqttClient.Open() + else: + self.mqttClient.Ping() + + def onMQTTConnected(self): + Domoticz.Debug("onMQTTConnected") + self.mqttClient.Subscribe(self.topics) + + def onMQTTDisconnected(self): + Domoticz.Debug("onMQTTDisconnected") + + def onMQTTSubscribed(self): + Domoticz.Debug("onMQTTSubscribed") + + def onMQTTPublish(self, topic, rawmessage): + Domoticz.Debug("MQTT message: " + topic + " " + str(rawmessage)) + + message = "" + try: + message = json.loads(rawmessage.decode('utf8')) + except ValueError: + message = rawmessage.decode('utf8') + + if (topic in self.topics): + self.controller.onMqttMessage(topic, message) + +global _plugin +_plugin = BasePlugin() + +def onStart(): + global _plugin + _plugin.onStart() + +def onStop(): + global _plugin + _plugin.onStop() + +def onConnect(Connection, Status, Description): + global _plugin + _plugin.onConnect(Connection, Status, Description) + +def onDisconnect(Connection): + global _plugin + _plugin.onDisconnect(Connection) + +def onMessage(Connection, Data): + global _plugin + _plugin.onMessage(Connection, Data) + +def onCommand(Unit, Command, Level, Color): + global _plugin + _plugin.onCommand(Unit, Command, Level, Color) + +def onHeartbeat(): + global _plugin + _plugin.onHeartbeat() diff --git a/pio_local.ini.txt b/pio_local.ini.txt new file mode 100644 index 000000000..4c89f40e2 --- /dev/null +++ b/pio_local.ini.txt @@ -0,0 +1,3 @@ +upload_protocol = espota +upload_flags = --port=8266 --auth=ems-esp-neo +upload_port = ems-esp.local diff --git a/src/.emsdevice.cpp.swp b/src/.emsdevice.cpp.swp new file mode 100644 index 000000000..9c75687c0 Binary files /dev/null and b/src/.emsdevice.cpp.swp differ diff --git a/src/devices/solar.cpp b/src/devices/solar.cpp index ac342a6cb..94081946c 100644 --- a/src/devices/solar.cpp +++ b/src/devices/solar.cpp @@ -17,6 +17,7 @@ */ #include "solar.h" +#include "emsesp.h" namespace emsesp { @@ -45,7 +46,12 @@ Solar::Solar(uint8_t device_type, uint8_t device_id, uint8_t product_id, const s register_telegram_type(0x0364, F("SM100Status"), false, [&](std::shared_ptr t) { process_SM100Status(t); }); register_telegram_type(0x036A, F("SM100Status2"), false, [&](std::shared_ptr t) { process_SM100Status2(t); }); register_telegram_type(0x038E, F("SM100Energy"), true, [&](std::shared_ptr t) { process_SM100Energy(t); }); - } + register_telegram_type(0x035A, F("SM100Tank1MaxTemp"), false, [&](std::shared_ptr t) { process_SM100Tank1MaxTemp(t); }); +// EMSESP::send_read_request(0x035A, device_id); + // This is a hack right now, need to update TXService to support sending F9 packets + uint8_t msg[]="8B B0 F9 00 11 FF 02 5A 03 00"; + msg[sizeof(msg)-2] = EMSESP::rxservice_.calculate_crc(msg, sizeof(msg)-2); + EMSESP::send_raw_telegram((const char*)msg); } if (flags == EMSdevice::EMS_DEVICE_FLAG_ISM) { @@ -66,6 +72,7 @@ void Solar::device_info_web(JsonArray & root) { print_value_json(root, F("collectorTemp"), nullptr, F_(collectorTemp), F_(degrees), json); print_value_json(root, F("tankBottomTemp"), nullptr, F_(tankBottomTemp), F_(degrees), json); print_value_json(root, F("tankBottomTemp2"), nullptr, F_(tankBottomTemp2), F_(degrees), json); + print_value_json(root, F("tank1MaxTemp"), nullptr, F_(tank1MaxTempCurrent_*10), F_(degrees), json); print_value_json(root, F("heatExchangerTemp"), nullptr, F_(heatExchangerTemp), F_(degrees), json); print_value_json(root, F("solarPumpModulation"), nullptr, F_(solarPumpModulation), F_(percent), json); print_value_json(root, F("cylinderPumpModulation"), nullptr, F_(cylinderPumpModulation), F_(percent), json); @@ -100,6 +107,7 @@ void Solar::show_values(uuid::console::Shell & shell) { print_value_json(shell, F("collectorTemp"), nullptr, F_(collectorTemp), F_(degrees), json); print_value_json(shell, F("tankBottomTemp"), nullptr, F_(tankBottomTemp), F_(degrees), json); print_value_json(shell, F("tankBottomTemp2"), nullptr, F_(tankBottomTemp2), F_(degrees), json); + print_value_json(shell, F("tank1MaxTemp"), nullptr, F_(tank1MaxTempCurrent_*10), F_(degrees), json); print_value_json(shell, F("heatExchangerTemp"), nullptr, F_(heatExchangerTemp), F_(degrees), json); print_value_json(shell, F("solarPumpModulation"), nullptr, F_(solarPumpModulation), F_(percent), json); print_value_json(shell, F("cylinderPumpModulation"), nullptr, F_(cylinderPumpModulation), F_(percent), json); @@ -203,6 +211,10 @@ bool Solar::export_values(JsonObject & json) { json["tankBottomTemp2"] = (float)tankBottomTemp2_ / 10; } + if (Helpers::hasValue(tank1MaxTempCurrent_)) { + doc["tankMaximumTemp"] = tank1MaxTempCurrent_; + } + if (Helpers::hasValue(heatExchangerTemp_)) { json["heatExchangerTemp"] = (float)heatExchangerTemp_ / 10; } @@ -268,6 +280,29 @@ void Solar::process_SM10Monitor(std::shared_ptr telegram) { changed_ |= telegram->read_value(pumpWorkMin_, 8, 3); } +/* + * process_SM100Tank1MaxTemp - type 0x035A EMS+ - for MS/SM100 and MS/SM200 + * e.g. B0 10 F9 00 FF 02 5A 03 17 00 00 00 14 00 00 00 3C 00 00 00 5A 00 00 00 59 29 - requested with 90 B0 F9 00 11 FF 02 5A 03 AF + * bytes 0-1 = packet format designator + * bytes 2..5 = minimum value + * bytes 6..9 = default value + * bytes 10..13 = maximum value + * bytes 14..17 = current value + * e.g, FD 3F - requested with 90 B0 F7 00 FF FF 02 5A B0 + */ +void Solar::process_SM100Tank1MaxTemp(std::shared_ptr telegram) { + int16_t designator; + telegram->read_value(designator, 0); + LOG_DEBUG(F("SM100Tank1MaxTemp designator 0x%02X"), designator); + if(designator==0x0317) // The telegram has the right form + { + changed_ |= telegram->read_value(tank1MaxTempMinimum_, 2); + changed_ |= telegram->read_value(tank1MaxTempDefault_, 6); + changed_ |= telegram->read_value(tank1MaxTempMaximum_, 10); + changed_ |= telegram->read_value(tank1MaxTempCurrent_, 14); + } +} + /* * SM100Monitor - type 0x0362 EMS+ - for MS/SM100 and MS/SM200 * e.g. B0 0B FF 00 02 62 00 77 01 D4 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 00 F9 80 00 80 9E - for heat exchanger temp diff --git a/src/devices/solar.h b/src/devices/solar.h index fa3e48f7d..e57e4b5ae 100644 --- a/src/devices/solar.h +++ b/src/devices/solar.h @@ -46,6 +46,10 @@ class Solar : public EMSdevice { static uuid::log::Logger logger_; void register_mqtt_ha_config(bool force); + uint32_t tank1MaxTempMinimum_ = EMS_VALUE_ULONG_NOTSET; // Min value for max tank temp + uint32_t tank1MaxTempDefault_ = EMS_VALUE_ULONG_NOTSET; // Default value for max tank temp + uint32_t tank1MaxTempMaximum_ = EMS_VALUE_ULONG_NOTSET; // Max value for max tank temp + uint32_t tank1MaxTempCurrent_ = EMS_VALUE_ULONG_NOTSET; // Current value for max tank temp int16_t collectorTemp_ = EMS_VALUE_SHORT_NOTSET; // TS1: Temperature sensor for collector array 1 int16_t tankBottomTemp_ = EMS_VALUE_SHORT_NOTSET; // TS2: Temperature sensor 1 cylinder, bottom (solar thermal system) int16_t tankBottomTemp2_ = EMS_VALUE_SHORT_NOTSET; // TS5: Temperature sensor 2 cylinder, bottom, or swimming pool (solar thermal system) @@ -70,6 +74,7 @@ class Solar : public EMSdevice { bool mqtt_ha_config_ = false; // for HA MQTT Discovery void process_SM10Monitor(std::shared_ptr telegram); + void process_SM100Tank1MaxTemp(std::shared_ptr telegram); void process_SM100Monitor(std::shared_ptr telegram); void process_SM100Monitor2(std::shared_ptr telegram);