Contr1 ControllerSetting1 ESP8266WifiSettingsRoot1 ProjectTreeESP8266WifiInterfaceRoot1Client 0@0 LibraryRoot LibraryGroup-Таймеры 0@0 542 0@0 169 309 0@0 root output 1 c523cb4d-0a07-44ac-bef6-11fbd5adb738 LibraryGroup-Mojor 0@0 4 2 360@0 380@0 corner: 496.0d@40 360@0 corner: 516.0d@40 385.0d@14.0d 570@20 590@20 corner: 614.0d@40 570@20 corner: 634.0d@40 594@33.5d 570@20 corner: 590@40 570@30 led 14 GPIO-14 D5 130322095 16.0d 7.0d 590@30 516.0d@30 corner: 516.0d@30 mqttConnected 73.0d 496.0d@30 516.0d@30 MQTT_ESP_Main_2_6 mqttConnect 02ed448d-9a2c-49a6-9075-d0d3a9bdc15c 9e57d0ed-81f4-4575-83d5-43d3de08806b 13b6daf4-2068-49e6-a601-c2b730999cff MQTT_ESP_Main_2_6 mqtt_server 99102de8-1803-44c3-806a-5b628f6bddf7 192.168.2.9 0945a421-3dd6-4271-911b-f1ca5ef00c24 Port 1883 c56c80ff-39f1-4fbc-805d-6b39bd43de46 0bd59d21-1c72-4981-94bf-c96e3feae0c4 cluser a4a04d85-cbfc-42be-847c-139929db1f0e mqtt a3a71e77-b81d-46f0-b781-9583f39f8b10 clpass 885309a9-04a3-4539-876c-d8643ee0e79a mqttd0184d d01644cc-4b29-47ee-a4ac-b8ac170d626e clientId 84e49d44-f80d-4af2-bc2e-e95c1279c05d mishagate 7b359cac-6098-48bb-a765-ee3a82022f16 if (!client.connected()) { mqttConnect = 0; long now = millis(); if (now - lastReconnectAttempt > 5000) { lastReconnectAttempt = now; // Attempt to reconnect if (reconnect()) { lastReconnectAttempt = 0; } } } else { client.loop(); mqttConnect = 1; } 304 client.setServer(mqtt_server, Port); client.setCallback(callback); lastReconnectAttempt = 0; 93 #include <PubSubClient.h> MQTT_inputTopic ; String MQTT_inputtext ; String espClient ; WiFiClient client (espClient); PubSubClient mqttConnect = 0; bool lastReconnectAttempt = 0; long MQTT_inputtext = ""; MQTT_inputTopic = ""; MQTT_inputTopic = topic; for (int i=0;i<len;i++) { MQTT_inputtext += (char)payload[i]; } 136 void callback char* topic byte* payload unsigned int len if (client.connect(clientId, cluser, clpass)) { client.subscribe("#"); } return client.connected(); 110 boolean reconnect ESPAsyncTCP .gitignore 0A2E44535F53746F72650A .travis 7375646F3A2066616C73650A6C616E67756167653A20626173680A6F733A0A20202D206C696E75780A0A7363726970743A0A20202D202F7362696E2F73746172742D73746F702D6461656D6F6E202D2D7374617274202D2D7175696574202D2D70696466696C65202F746D702F637573746F6D5F787666625F312E706964202D2D6D616B652D70696466696C65202D2D6261636B67726F756E64202D2D65786563202F7573722F62696E2F58766662202D2D203A31202D6163202D73637265656E2030203132383078313032347831360A20202D20736C65657020330A20202D206578706F727420444953504C41593D3A312E300A20202D207767657420687474703A2F2F646F776E6C6F6164732E61726475696E6F2E63632F61726475696E6F2D312E362E352D6C696E757836342E7461722E787A0A20202D207461722078662061726475696E6F2D312E362E352D6C696E757836342E7461722E787A0A20202D206D762061726475696E6F2D312E362E352024484F4D452F61726475696E6F5F6964650A20202D206578706F727420504154483D2224484F4D452F61726475696E6F5F6964653A2450415448220A20202D2077686963682061726475696E6F0A20202D206D6B646972202D702024484F4D452F41726475696E6F2F6C69627261726965730A20202D206370202D7220245452415649535F4255494C445F4449522024484F4D452F41726475696E6F2F6C69627261726965732F4553504173796E635443500A20202D2063642024484F4D452F61726475696E6F5F6964652F68617264776172650A20202D206D6B6469722065737038323636636F6D0A20202D2063642065737038323636636F6D0A20202D2067697420636C6F6E652068747470733A2F2F6769746875622E636F6D2F657370383236362F41726475696E6F2E67697420657370383236360A20202D20636420657370383236362F746F6F6C730A20202D20707974686F6E206765742E70790A20202D20736F7572636520245452415649535F4255494C445F4449522F7472617669732F636F6D6D6F6E2E73680A20202D2061726475696E6F202D2D626F6172642065737038323636636F6D3A657370383236363A67656E65726963202D2D736176652D70726566730A20202D2061726475696E6F202D2D6765742D7072656620736B65746368626F6F6B2E706174680A20202D206275696C645F736B6574636865732061726475696E6F2024484F4D452F41726475696E6F2F6C69627261726965732F4553504173796E6354435020657370383236360A0A6E6F74696669636174696F6E733A0A2020656D61696C3A0A202020206F6E5F737563636573733A206368616E67650A202020206F6E5F6661696C7572653A206368616E67650A2020776562686F6F6B733A0A2020202075726C733A0A2020202020202D2068747470733A2F2F776562686F6F6B732E6769747465722E696D2F652F36306536356430633738656130613932303334370A202020206F6E5F737563636573733A206368616E6765202023206F7074696F6E733A205B616C776179737C6E657665727C6368616E67655D2064656661756C743A20616C776179730A202020206F6E5F6661696C7572653A20616C77617973202023206F7074696F6E733A205B616C776179737C6E657665727C6368616E67655D2064656661756C743A20616C776179730A202020206F6E5F73746172743A2066616C73652020202020232064656661756C743A2066616C73650A .yml examples ClientServer Client Client 23696E636C756465203C45535038323636576946692E683E0A23696E636C756465203C4553504173796E635443502E683E0A0A65787465726E20224322207B0A23696E636C756465203C6F736170692E683E0A23696E636C756465203C6F735F747970652E683E0A7D0A0A23696E636C7564652022636F6E6669672E68220A0A737461746963206F735F74696D65725F7420696E74657276616C54696D65723B0A0A73746174696320766F6964207265706C79546F53657276657228766F69642A2061726729207B0A094173796E63436C69656E742A20636C69656E74203D207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267293B0A0A092F2F2073656E64207265706C790A0969662028636C69656E742D3E73706163652829203E20333220262620636C69656E742D3E63616E53656E64282929207B0A090963686172206D6573736167655B33325D3B0A0909737072696E7466286D6573736167652C2022746869732069732066726F6D202573222C20576946692E6C6F63616C495028292E746F537472696E6728292E635F7374722829293B0A0909636C69656E742D3E616464286D6573736167652C207374726C656E286D65737361676529293B0A0909636C69656E742D3E73656E6428293B0A097D0A7D0A0A2F2A206576656E742063616C6C6261636B73202A2F0A73746174696320766F69642068616E646C654461746128766F69642A206172672C204173796E63436C69656E742A20636C69656E742C20766F6964202A646174612C2073697A655F74206C656E29207B0A0953657269616C2E7072696E746628225C6E20646174612072656365697665642066726F6D202573205C6E222C20636C69656E742D3E72656D6F7465495028292E746F537472696E6728292E635F7374722829293B0A0953657269616C2E7772697465282875696E74385F742A29646174612C206C656E293B0A0A096F735F74696D65725F61726D2826696E74657276616C54696D65722C20323030302C2074727565293B202F2F207363686564756C6520666F72207265706C7920746F20736572766572206174206E6578742032730A7D0A0A766F6964206F6E436F6E6E65637428766F69642A206172672C204173796E63436C69656E742A20636C69656E7429207B0A0953657269616C2E7072696E746628225C6E20636C69656E7420686173206265656E20636F6E6E656374656420746F202573206F6E20706F7274202564205C6E222C205345525645525F484F53545F4E414D452C205443505F504F5254293B0A097265706C79546F53657276657228636C69656E74293B0A7D0A0A0A766F69642073657475702829207B0A0953657269616C2E626567696E28313135323030293B0A0964656C6179283230293B0A0A092F2F20636F6E6E6563747320746F2061636365737320706F696E740A09576946692E6D6F646528574946495F535441293B0A09576946692E626567696E28535349442C2050415353574F5244293B0A097768696C652028576946692E737461747573282920213D20574C5F434F4E4E454354454429207B0A090953657269616C2E7072696E7428272E27293B0A090964656C617928353030293B0A097D0A0A094173796E63436C69656E742A20636C69656E74203D206E6577204173796E63436C69656E743B0A09636C69656E742D3E6F6E44617461282668616E646C65446174612C20636C69656E74293B0A09636C69656E742D3E6F6E436F6E6E65637428266F6E436F6E6E6563742C20636C69656E74293B0A09636C69656E742D3E636F6E6E656374285345525645525F484F53545F4E414D452C205443505F504F5254293B0A0A096F735F74696D65725F64697361726D2826696E74657276616C54696D6572293B0A096F735F74696D65725F736574666E2826696E74657276616C54696D65722C20267265706C79546F5365727665722C20636C69656E74293B0A7D0A0A766F6964206C6F6F702829207B0A0A7D0A .ino config 2369666E64656620434F4E4649475F480A23646566696E6520434F4E4649475F480A0A2F2A0A202A2054686973206578616D706C652064656D6F6E73747261746520686F7720746F20757365206173796E6368726F6E6F757320636C69656E7420262073657276657220415049730A202A20696E206F7264657220746F2065737461626C6973682074637020736F636B657420636F6E6E656374696F6E7320696E20636C69656E7420736572766572206D616E6E65722E0A202A207365727665722069732072756E6E696E6720286F6E20706F7274203730353029206F6E206F6E65204553502C20616374732061732041502C20616E64206F7468657220636C69656E74732072756E6E696E67206F6E0A202A2072656D61696E696E672045535073206163747320617320535441732E20616674657220636F6E6E656374696F6E2065737461626C6973686D656E74206265747765656E2073657276657220616E6420636C69656E74730A202A20746865726520697320612073696D706C65206D657373616765207472616E7366657220696E2065766572792032732E20636C69656E747320636F6E6E65637420746F2073657276657220766961206974277320686F7374206E616D650A202A2028696E2074686973206361736520276573705F736572766572272920776974682068656C70206F6620444E5320736572766963652072756E6E696E67206F6E2073657276657220736964652E0A202A0A202A204E6F74653A2064656661756C74204D535320666F72204553504173796E6354435020697320353336206279746520616E642064656675616C742041434B2074696D656F75742069732035732E0A2A2F0A0A23646566696E65205353494420224553502D54455354220A23646566696E652050415353574F52442022313233343536373839220A0A23646566696E65205345525645525F484F53545F4E414D4520226573705F736572766572220A0A23646566696E65205443505F504F525420373035300A23646566696E6520444E535F504F52542035330A0A23656E646966202F2F20434F4E4649475F480A .h Server config 2369666E64656620434F4E4649475F480A23646566696E6520434F4E4649475F480A0A2F2A0A202A2054686973206578616D706C652064656D6F6E73747261746520686F7720746F20757365206173796E6368726F6E6F757320636C69656E7420262073657276657220415049730A202A20696E206F7264657220746F2065737461626C6973682074637020736F636B657420636F6E6E656374696F6E7320696E20636C69656E7420736572766572206D616E6E65722E0A202A207365727665722069732072756E6E696E6720286F6E20706F7274203730353029206F6E206F6E65204553502C20616374732061732041502C20616E64206F7468657220636C69656E74732072756E6E696E67206F6E0A202A2072656D61696E696E672045535073206163747320617320535441732E20616674657220636F6E6E656374696F6E2065737461626C6973686D656E74206265747765656E2073657276657220616E6420636C69656E74730A202A20746865726520697320612073696D706C65206D657373616765207472616E7366657220696E2065766572792032732E20636C69656E747320636F6E6E65637420746F2073657276657220766961206974277320686F7374206E616D650A202A2028696E2074686973206361736520276573705F736572766572272920776974682068656C70206F6620444E5320736572766963652072756E6E696E67206F6E2073657276657220736964652E0A202A0A202A204E6F74653A2064656661756C74204D535320666F72204553504173796E6354435020697320353336206279746520616E642064656675616C742041434B2074696D656F75742069732035732E0A2A2F0A0A23646566696E65205353494420224553502D54455354220A23646566696E652050415353574F52442022313233343536373839220A0A23646566696E65205345525645525F484F53545F4E414D4520226573705F736572766572220A0A23646566696E65205443505F504F525420373035300A23646566696E6520444E535F504F52542035330A0A23656E646966202F2F20434F4E4649475F480A .h Server 23696E636C756465203C45535038323636576946692E683E0A23696E636C756465203C4553504173796E635443502E683E0A23696E636C756465203C444E535365727665722E683E0A23696E636C756465203C766563746F723E0A0A23696E636C7564652022636F6E6669672E68220A0A73746174696320444E5353657276657220444E533B0A0A737461746963207374643A3A766563746F723C4173796E63436C69656E742A3E20636C69656E74733B202F2F2061206C69737420746F20686F6C6420616C6C20636C69656E74730A0A202F2A20636C69656E7473206576656E7473202A2F0A73746174696320766F69642068616E646C654572726F7228766F69642A206172672C204173796E63436C69656E742A20636C69656E742C20696E74385F74206572726F7229207B0A0953657269616C2E7072696E746628225C6E20636F6E6E656374696F6E206572726F722025732066726F6D20636C69656E74202573205C6E222C20636C69656E742D3E6572726F72546F537472696E67286572726F72292C20636C69656E742D3E72656D6F7465495028292E746F537472696E6728292E635F7374722829293B0A7D0A0A73746174696320766F69642068616E646C654461746128766F69642A206172672C204173796E63436C69656E742A20636C69656E742C20766F6964202A646174612C2073697A655F74206C656E29207B0A0953657269616C2E7072696E746628225C6E20646174612072656365697665642066726F6D20636C69656E74202573205C6E222C20636C69656E742D3E72656D6F7465495028292E746F537472696E6728292E635F7374722829293B0A0953657269616C2E7772697465282875696E74385F742A29646174612C206C656E293B0A0A092F2F207265706C7920746F20636C69656E740A0969662028636C69656E742D3E73706163652829203E20333220262620636C69656E742D3E63616E53656E64282929207B0A090963686172207265706C795B33325D3B0A0909737072696E7466287265706C792C2022746869732069732066726F6D202573222C205345525645525F484F53545F4E414D45293B0A0909636C69656E742D3E616464287265706C792C207374726C656E287265706C7929293B0A0909636C69656E742D3E73656E6428293B0A097D0A7D0A0A73746174696320766F69642068616E646C65446973636F6E6E65637428766F69642A206172672C204173796E63436C69656E742A20636C69656E7429207B0A0953657269616C2E7072696E746628225C6E20636C69656E7420257320646973636F6E6E6563746564205C6E222C20636C69656E742D3E72656D6F7465495028292E746F537472696E6728292E635F7374722829293B0A7D0A0A73746174696320766F69642068616E646C6554696D654F757428766F69642A206172672C204173796E63436C69656E742A20636C69656E742C2075696E7433325F742074696D6529207B0A0953657269616C2E7072696E746628225C6E20636C69656E742041434B2074696D656F75742069703A202573205C6E222C20636C69656E742D3E72656D6F7465495028292E746F537472696E6728292E635F7374722829293B0A7D0A0A0A2F2A20736572766572206576656E7473202A2F0A73746174696320766F69642068616E646C654E6577436C69656E7428766F69642A206172672C204173796E63436C69656E742A20636C69656E7429207B0A0953657269616C2E7072696E746628225C6E206E657720636C69656E7420686173206265656E20636F6E6E656374656420746F207365727665722C2069703A202573222C20636C69656E742D3E72656D6F7465495028292E746F537472696E6728292E635F7374722829293B0A0A092F2F2061646420746F206C6973740A09636C69656E74732E707573685F6261636B28636C69656E74293B0A090A092F2F207265676973746572206576656E74730A09636C69656E742D3E6F6E44617461282668616E646C65446174612C204E554C4C293B0A09636C69656E742D3E6F6E4572726F72282668616E646C654572726F722C204E554C4C293B0A09636C69656E742D3E6F6E446973636F6E6E656374282668616E646C65446973636F6E6E6563742C204E554C4C293B0A09636C69656E742D3E6F6E54696D656F7574282668616E646C6554696D654F75742C204E554C4C293B0A7D0A0A766F69642073657475702829207B0A0953657269616C2E626567696E28313135323030293B0A0964656C6179283230293B0A090A092F2F206372656174652061636365737320706F696E740A097768696C65202821576946692E736F6674415028535349442C2050415353574F52442C20362C2066616C73652C2031352929207B0A090964656C617928353030293B0A097D0A0A092F2F20737461727420646E73207365727665720A096966202821444E532E737461727428444E535F504F52542C205345525645525F484F53545F4E414D452C20576946692E736F667441504950282929290A090953657269616C2E7072696E746628225C6E206661696C656420746F20737461727420646E732073657276696365205C6E22293B0A0A094173796E635365727665722A20736572766572203D206E6577204173796E63536572766572285443505F504F5254293B202F2F207374617274206C697374656E696E67206F6E2074637020706F727420373035300A097365727665722D3E6F6E436C69656E74282668616E646C654E6577436C69656E742C20736572766572293B0A097365727665722D3E626567696E28293B0A7D0A0A766F6964206C6F6F702829207B0A09444E532E70726F636573734E6578745265717565737428293B0A7D0A .ino SyncClient .esp31b .skip SyncClient 23696664656620455350383236360A23696E636C756465203C45535038323636576946692E683E0A23696E636C756465203C455350383236366D444E532E683E0A23696E636C756465203C41726475696E6F4F54412E683E0A23656C73650A23696E636C756465203C455350333142576946692E683E0A23656E6469660A23696E636C75646520224553504173796E635443502E68220A23696E636C756465202253796E63436C69656E742E68220A0A636F6E737420636861722A2073736964203D20222A2A2A2A2A2A2A2A2A2A223B0A636F6E737420636861722A2070617373776F7264203D20222A2A2A2A2A2A2A2A2A2A2A2A223B0A0A766F696420736574757028297B0A202053657269616C2E626567696E28313135323030293B0A2020576946692E626567696E28737369642C2070617373776F7264293B0A202069662028576946692E77616974466F72436F6E6E656374526573756C74282920213D20574C5F434F4E4E454354454429207B0A2020202053657269616C2E7072696E7466282257694669204661696C6564215C6E22293B0A2020202072657475726E3B0A20207D0A202053657269616C2E7072696E746628225769466920436F6E6E6563746564215C6E22293B0A202053657269616C2E7072696E746C6E28576946692E6C6F63616C49502829293B0A23696664656620455350383236360A202041726475696E6F4F54412E626567696E28293B0A23656E6469660A20200A202053796E63436C69656E7420636C69656E743B0A202069662821636C69656E742E636F6E6E65637428227777772E676F6F676C652E636F6D222C20383029297B0A2020202053657269616C2E7072696E746C6E2822436F6E6E656374204661696C656422293B0A2020202072657475726E3B0A20207D0A2020636C69656E742E73657454696D656F75742832293B0A2020696628636C69656E742E7072696E74662822474554202F20485454502F312E315C725C6E486F73743A207777772E676F6F676C652E636F6D5C725C6E436F6E6E656374696F6E3A20636C6F73655C725C6E5C725C6E2229203E2030297B0A202020207768696C6528636C69656E742E636F6E6E6563746564282920262620636C69656E742E617661696C61626C652829203D3D2030297B0A20202020202064656C61792831293B0A202020207D0A202020207768696C6528636C69656E742E617661696C61626C652829297B0A20202020202053657269616C2E777269746528636C69656E742E726561642829293B0A202020207D0A20202020696628636C69656E742E636F6E6E65637465642829297B0A202020202020636C69656E742E73746F7028293B0A202020207D0A20207D20656C7365207B0A20202020636C69656E742E73746F7028293B0A2020202053657269616C2E7072696E746C6E282253656E64204661696C656422293B0A202020207768696C6528636C69656E742E636F6E6E65637465642829292064656C61792830293B0A20207D0A7D0A0A766F6964206C6F6F7028297B0A23696664656620455350383236360A202041726475696E6F4F54412E68616E646C6528293B0A23656E6469660A7D0A .ino library 7B0A2020226E616D65223A224553504173796E63544350222C0A2020226465736372697074696F6E223A224173796E6368726F6E6F757320544350204C69627261727920666F722045535038323636222C0A2020226B6579776F726473223A226173796E632C746370222C0A202022617574686F7273223A0A20207B0A20202020226E616D65223A202248726973746F20476F63686B6F76222C0A20202020226D61696E7461696E6572223A20747275650A20207D2C0A2020227265706F7369746F7279223A0A20207B0A202020202274797065223A2022676974222C0A202020202275726C223A202268747470733A2F2F6769746875622E636F6D2F6D652D6E6F2D6465762F4553504173796E635443502E676974220A20207D2C0A20202276657273696F6E223A2022312E322E30222C0A2020226C6963656E7365223A20224C47504C2D332E30222C0A2020226672616D65776F726B73223A202261726475696E6F222C0A202022706C6174666F726D73223A202265737072657373696638323636222C0A2020226275696C64223A207B0A20202020226C6962436F6D7061744D6F6465223A20320A20207D20200A7D0A .json library 6E616D653D455350204173796E635443500A76657273696F6E3D312E322E300A617574686F723D4D652D4E6F2D4465760A6D61696E7461696E65723D4D652D4E6F2D4465760A73656E74656E63653D4173796E6320544350204C69627261727920666F72204553503832363620616E64204553503331420A7061726167726170683D4173796E6320544350204C69627261727920666F72204553503832363620616E64204553503331420A63617465676F72793D4F746865720A75726C3D68747470733A2F2F6769746875622E636F6D2F6D652D6E6F2D6465762F4553504173796E635443500A617263686974656374757265733D2A0A .properties LICENSE 20202020202020202020202020202020202020474E55204C45535345522047454E4552414C205055424C4943204C4943454E53450A202020202020202020202020202020202020202020202056657273696F6E20332C203239204A756E6520323030370A0A20436F70797269676874202843292032303037204672656520536F66747761726520466F756E646174696F6E2C20496E632E203C687474703A2F2F6673662E6F72672F3E0A2045766572796F6E65206973207065726D697474656420746F20636F707920616E64206469737472696275746520766572626174696D20636F706965730A206F662074686973206C6963656E736520646F63756D656E742C20627574206368616E67696E67206974206973206E6F7420616C6C6F7765642E0A0A0A2020546869732076657273696F6E206F662074686520474E55204C65737365722047656E6572616C205075626C6963204C6963656E736520696E636F72706F72617465730A746865207465726D7320616E6420636F6E646974696F6E73206F662076657273696F6E2033206F662074686520474E552047656E6572616C205075626C69630A4C6963656E73652C20737570706C656D656E74656420627920746865206164646974696F6E616C207065726D697373696F6E73206C69737465642062656C6F772E0A0A2020302E204164646974696F6E616C20446566696E6974696F6E732E0A0A2020417320757365642068657265696E2C202274686973204C6963656E7365222072656665727320746F2076657273696F6E2033206F662074686520474E55204C65737365720A47656E6572616C205075626C6963204C6963656E73652C20616E64207468652022474E552047504C222072656665727320746F2076657273696F6E2033206F662074686520474E550A47656E6572616C205075626C6963204C6963656E73652E0A0A202022546865204C696272617279222072656665727320746F206120636F766572656420776F726B20676F7665726E65642062792074686973204C6963656E73652C0A6F74686572207468616E20616E204170706C69636174696F6E206F72206120436F6D62696E656420576F726B20617320646566696E65642062656C6F772E0A0A2020416E20224170706C69636174696F6E2220697320616E7920776F726B2074686174206D616B657320757365206F6620616E20696E746572666163652070726F76696465640A627920746865204C6962726172792C20627574207768696368206973206E6F74206F7468657277697365206261736564206F6E20746865204C6962726172792E0A446566696E696E67206120737562636C617373206F66206120636C61737320646566696E656420627920746865204C696272617279206973206465656D65642061206D6F64650A6F66207573696E6720616E20696E746572666163652070726F766964656420627920746865204C6962726172792E0A0A2020412022436F6D62696E656420576F726B22206973206120776F726B2070726F647563656420627920636F6D62696E696E67206F72206C696E6B696E6720616E0A4170706C69636174696F6E207769746820746865204C6962726172792E202054686520706172746963756C61722076657273696F6E206F6620746865204C6962726172790A776974682077686963682074686520436F6D62696E656420576F726B20776173206D61646520697320616C736F2063616C6C65642074686520224C696E6B65640A56657273696F6E222E0A0A202054686520224D696E696D616C20436F72726573706F6E64696E6720536F757263652220666F72206120436F6D62696E656420576F726B206D65616E73207468650A436F72726573706F6E64696E6720536F7572636520666F722074686520436F6D62696E656420576F726B2C206578636C7564696E6720616E7920736F7572636520636F64650A666F7220706F7274696F6E73206F662074686520436F6D62696E656420576F726B20746861742C20636F6E7369646572656420696E2069736F6C6174696F6E2C206172650A6261736564206F6E20746865204170706C69636174696F6E2C20616E64206E6F74206F6E20746865204C696E6B65642056657273696F6E2E0A0A20205468652022436F72726573706F6E64696E67204170706C69636174696F6E20436F64652220666F72206120436F6D62696E656420576F726B206D65616E73207468650A6F626A65637420636F646520616E642F6F7220736F7572636520636F646520666F7220746865204170706C69636174696F6E2C20696E636C7564696E6720616E7920646174610A616E64207574696C6974792070726F6772616D73206E656564656420666F7220726570726F647563696E672074686520436F6D62696E656420576F726B2066726F6D207468650A4170706C69636174696F6E2C20627574206578636C7564696E67207468652053797374656D204C6962726172696573206F662074686520436F6D62696E656420576F726B2E0A0A2020312E20457863657074696F6E20746F2053656374696F6E2033206F662074686520474E552047504C2E0A0A2020596F75206D617920636F6E766579206120636F766572656420776F726B20756E6465722073656374696F6E73203320616E642034206F662074686973204C6963656E73650A776974686F7574206265696E6720626F756E642062792073656374696F6E2033206F662074686520474E552047504C2E0A0A2020322E20436F6E766579696E67204D6F6469666965642056657273696F6E732E0A0A2020496620796F75206D6F64696679206120636F7079206F6620746865204C6962726172792C20616E642C20696E20796F7572206D6F64696669636174696F6E732C20610A666163696C6974792072656665727320746F20612066756E6374696F6E206F72206461746120746F20626520737570706C69656420627920616E204170706C69636174696F6E0A7468617420757365732074686520666163696C69747920286F74686572207468616E20617320616E20617267756D656E7420706173736564207768656E207468650A666163696C69747920697320696E766F6B6564292C207468656E20796F75206D617920636F6E766579206120636F7079206F6620746865206D6F6469666965640A76657273696F6E3A0A0A202020612920756E6465722074686973204C6963656E73652C2070726F7669646564207468617420796F75206D616B65206120676F6F64206661697468206566666F727420746F0A202020656E7375726520746861742C20696E20746865206576656E7420616E204170706C69636174696F6E20646F6573206E6F7420737570706C79207468650A20202066756E6374696F6E206F7220646174612C2074686520666163696C697479207374696C6C206F706572617465732C20616E6420706572666F726D730A20202077686174657665722070617274206F662069747320707572706F73652072656D61696E73206D65616E696E6766756C2C206F720A0A202020622920756E6465722074686520474E552047504C2C2077697468206E6F6E65206F6620746865206164646974696F6E616C207065726D697373696F6E73206F660A20202074686973204C6963656E7365206170706C696361626C6520746F207468617420636F70792E0A0A2020332E204F626A65637420436F646520496E636F72706F726174696E67204D6174657269616C2066726F6D204C696272617279204865616465722046696C65732E0A0A2020546865206F626A65637420636F646520666F726D206F6620616E204170706C69636174696F6E206D617920696E636F72706F72617465206D6174657269616C2066726F6D0A61206865616465722066696C6520746861742069732070617274206F6620746865204C6962726172792E2020596F75206D617920636F6E7665792073756368206F626A6563740A636F646520756E646572207465726D73206F6620796F75722063686F6963652C2070726F766964656420746861742C2069662074686520696E636F72706F72617465640A6D6174657269616C206973206E6F74206C696D6974656420746F206E756D65726963616C20706172616D65746572732C2064617461207374727563747572650A6C61796F75747320616E64206163636573736F72732C206F7220736D616C6C206D6163726F732C20696E6C696E652066756E6374696F6E7320616E642074656D706C617465730A2874656E206F72206665776572206C696E657320696E206C656E677468292C20796F7520646F20626F7468206F662074686520666F6C6C6F77696E673A0A0A202020612920476976652070726F6D696E656E74206E6F746963652077697468206561636820636F7079206F6620746865206F626A65637420636F64652074686174207468650A2020204C696272617279206973207573656420696E20697420616E64207468617420746865204C69627261727920616E642069747320757365206172650A202020636F76657265642062792074686973204C6963656E73652E0A0A2020206229204163636F6D70616E7920746865206F626A65637420636F64652077697468206120636F7079206F662074686520474E552047504C20616E642074686973206C6963656E73650A202020646F63756D656E742E0A0A2020342E20436F6D62696E656420576F726B732E0A0A2020596F75206D617920636F6E766579206120436F6D62696E656420576F726B20756E646572207465726D73206F6620796F75722063686F69636520746861742C0A74616B656E20746F6765746865722C206566666563746976656C7920646F206E6F74207265737472696374206D6F64696669636174696F6E206F66207468650A706F7274696F6E73206F6620746865204C69627261727920636F6E7461696E656420696E2074686520436F6D62696E656420576F726B20616E6420726576657273650A656E67696E656572696E6720666F7220646562756767696E672073756368206D6F64696669636174696F6E732C20696620796F7520616C736F20646F2065616368206F660A74686520666F6C6C6F77696E673A0A0A202020612920476976652070726F6D696E656E74206E6F746963652077697468206561636820636F7079206F662074686520436F6D62696E656420576F726B20746861740A202020746865204C696272617279206973207573656420696E20697420616E64207468617420746865204C69627261727920616E642069747320757365206172650A202020636F76657265642062792074686973204C6963656E73652E0A0A2020206229204163636F6D70616E792074686520436F6D62696E656420576F726B2077697468206120636F7079206F662074686520474E552047504C20616E642074686973206C6963656E73650A202020646F63756D656E742E0A0A202020632920466F72206120436F6D62696E656420576F726B207468617420646973706C61797320636F70797269676874206E6F746963657320647572696E670A202020657865637574696F6E2C20696E636C7564652074686520636F70797269676874206E6F7469636520666F7220746865204C69627261727920616D6F6E670A2020207468657365206E6F74696365732C2061732077656C6C2061732061207265666572656E636520646972656374696E6720746865207573657220746F207468650A202020636F70696573206F662074686520474E552047504C20616E642074686973206C6963656E736520646F63756D656E742E0A0A202020642920446F206F6E65206F662074686520666F6C6C6F77696E673A0A0A20202020202020302920436F6E76657920746865204D696E696D616C20436F72726573706F6E64696E6720536F7572636520756E64657220746865207465726D73206F6620746869730A202020202020204C6963656E73652C20616E642074686520436F72726573706F6E64696E67204170706C69636174696F6E20436F646520696E206120666F726D0A202020202020207375697461626C6520666F722C20616E6420756E646572207465726D732074686174207065726D69742C20746865207573657220746F0A202020202020207265636F6D62696E65206F722072656C696E6B20746865204170706C69636174696F6E20776974682061206D6F6469666965642076657273696F6E206F660A20202020202020746865204C696E6B65642056657273696F6E20746F2070726F647563652061206D6F64696669656420436F6D62696E656420576F726B2C20696E207468650A202020202020206D616E6E6572207370656369666965642062792073656374696F6E2036206F662074686520474E552047504C20666F7220636F6E766579696E670A20202020202020436F72726573706F6E64696E6720536F757263652E0A0A202020202020203129205573652061207375697461626C6520736861726564206C696272617279206D656368616E69736D20666F72206C696E6B696E672077697468207468650A202020202020204C6962726172792E202041207375697461626C65206D656368616E69736D206973206F6E6520746861742028612920757365732061742072756E2074696D650A202020202020206120636F7079206F6620746865204C69627261727920616C72656164792070726573656E74206F6E207468652075736572277320636F6D70757465720A2020202020202073797374656D2C20616E64202862292077696C6C206F7065726174652070726F7065726C7920776974682061206D6F6469666965642076657273696F6E0A202020202020206F6620746865204C696272617279207468617420697320696E746572666163652D636F6D70617469626C65207769746820746865204C696E6B65640A2020202020202056657273696F6E2E0A0A20202065292050726F7669646520496E7374616C6C6174696F6E20496E666F726D6174696F6E2C20627574206F6E6C7920696620796F7520776F756C64206F74686572776973650A202020626520726571756972656420746F2070726F76696465207375636820696E666F726D6174696F6E20756E6465722073656374696F6E2036206F66207468650A202020474E552047504C2C20616E64206F6E6C7920746F2074686520657874656E742074686174207375636820696E666F726D6174696F6E2069730A2020206E656365737361727920746F20696E7374616C6C20616E6420657865637574652061206D6F6469666965642076657273696F6E206F66207468650A202020436F6D62696E656420576F726B2070726F6475636564206279207265636F6D62696E696E67206F722072656C696E6B696E67207468650A2020204170706C69636174696F6E20776974682061206D6F6469666965642076657273696F6E206F6620746865204C696E6B65642056657273696F6E2E202849660A202020796F7520757365206F7074696F6E203464302C2074686520496E7374616C6C6174696F6E20496E666F726D6174696F6E206D757374206163636F6D70616E790A202020746865204D696E696D616C20436F72726573706F6E64696E6720536F7572636520616E6420436F72726573706F6E64696E67204170706C69636174696F6E0A202020436F64652E20496620796F7520757365206F7074696F6E203464312C20796F75206D7573742070726F766964652074686520496E7374616C6C6174696F6E0A202020496E666F726D6174696F6E20696E20746865206D616E6E6572207370656369666965642062792073656374696F6E2036206F662074686520474E552047504C0A202020666F7220636F6E766579696E6720436F72726573706F6E64696E6720536F757263652E290A0A2020352E20436F6D62696E6564204C69627261726965732E0A0A2020596F75206D617920706C616365206C69627261727920666163696C6974696573207468617420617265206120776F726B206261736564206F6E207468650A4C6962726172792073696465206279207369646520696E20612073696E676C65206C69627261727920746F6765746865722077697468206F74686572206C6962726172790A666163696C6974696573207468617420617265206E6F74204170706C69636174696F6E7320616E6420617265206E6F7420636F766572656420627920746869730A4C6963656E73652C20616E6420636F6E7665792073756368206120636F6D62696E6564206C69627261727920756E646572207465726D73206F6620796F75720A63686F6963652C20696620796F7520646F20626F7468206F662074686520666F6C6C6F77696E673A0A0A2020206129204163636F6D70616E792074686520636F6D62696E6564206C6962726172792077697468206120636F7079206F66207468652073616D6520776F726B2062617365640A2020206F6E20746865204C6962726172792C20756E636F6D62696E6564207769746820616E79206F74686572206C69627261727920666163696C69746965732C0A202020636F6E766579656420756E64657220746865207465726D73206F662074686973204C6963656E73652E0A0A202020622920476976652070726F6D696E656E74206E6F7469636520776974682074686520636F6D62696E6564206C69627261727920746861742070617274206F662069740A2020206973206120776F726B206261736564206F6E20746865204C6962726172792C20616E64206578706C61696E696E6720776865726520746F2066696E64207468650A2020206163636F6D70616E79696E6720756E636F6D62696E656420666F726D206F66207468652073616D6520776F726B2E0A0A2020362E20526576697365642056657273696F6E73206F662074686520474E55204C65737365722047656E6572616C205075626C6963204C6963656E73652E0A0A2020546865204672656520536F66747761726520466F756E646174696F6E206D6179207075626C697368207265766973656420616E642F6F72206E65772076657273696F6E730A6F662074686520474E55204C65737365722047656E6572616C205075626C6963204C6963656E73652066726F6D2074696D6520746F2074696D652E2053756368206E65770A76657273696F6E732077696C6C2062652073696D696C617220696E2073706972697420746F207468652070726573656E742076657273696F6E2C20627574206D61790A64696666657220696E2064657461696C20746F2061646472657373206E65772070726F626C656D73206F7220636F6E6365726E732E0A0A2020456163682076657273696F6E20697320676976656E20612064697374696E6775697368696E672076657273696F6E206E756D6265722E204966207468650A4C69627261727920617320796F752072656365697665642069742073706563696669657320746861742061206365727461696E206E756D62657265642076657273696F6E0A6F662074686520474E55204C65737365722047656E6572616C205075626C6963204C6963656E736520226F7220616E79206C617465722076657273696F6E220A6170706C69657320746F2069742C20796F75206861766520746865206F7074696F6E206F6620666F6C6C6F77696E6720746865207465726D7320616E640A636F6E646974696F6E7320656974686572206F662074686174207075626C69736865642076657273696F6E206F72206F6620616E79206C617465722076657273696F6E0A7075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E2E20496620746865204C69627261727920617320796F750A726563656976656420697420646F6573206E6F74207370656369667920612076657273696F6E206E756D626572206F662074686520474E55204C65737365720A47656E6572616C205075626C6963204C6963656E73652C20796F75206D61792063686F6F736520616E792076657273696F6E206F662074686520474E55204C65737365720A47656E6572616C205075626C6963204C6963656E73652065766572207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E2E0A0A2020496620746865204C69627261727920617320796F7520726563656976656420697420737065636966696573207468617420612070726F78792063616E206465636964650A77686574686572206675747572652076657273696F6E73206F662074686520474E55204C65737365722047656E6572616C205075626C6963204C6963656E7365207368616C6C0A6170706C792C20746861742070726F78792773207075626C69632073746174656D656E74206F6620616363657074616E6365206F6620616E792076657273696F6E2069730A7065726D616E656E7420617574686F72697A6174696F6E20666F7220796F7520746F2063686F6F736520746861742076657273696F6E20666F72207468650A4C6962726172792E0A .txt README 23204553504173796E63544350205B215B4275696C64205374617475735D2868747470733A2F2F7472617669732D63692E6F72672F6D652D6E6F2D6465762F4553504173796E635443502E7376673F6272616E63683D6D6173746572295D2868747470733A2F2F7472617669732D63692E6F72672F6D652D6E6F2D6465762F4553504173796E63544350290A4173796E6320544350204C69627261727920666F7220455350383236362041726475696E6F0A0A466F72204553503332206C6F6F6B205B484552455D2868747470733A2F2F6769746875622E636F6D2F6D652D6E6F2D6465762F4173796E63544350290A0A5B215B4A6F696E2074686520636861742061742068747470733A2F2F6769747465722E696D2F6D652D6E6F2D6465762F4553504173796E635765625365727665725D2868747470733A2F2F6261646765732E6769747465722E696D2F6D652D6E6F2D6465762F4553504173796E635765625365727665722E737667295D2868747470733A2F2F6769747465722E696D2F6D652D6E6F2D6465762F4553504173796E635765625365727665723F75746D5F736F757263653D62616467652675746D5F6D656469756D3D62616467652675746D5F63616D706169676E3D70722D62616467652675746D5F636F6E74656E743D6261646765290A0A5468697320697320612066756C6C79206173796E6368726F6E6F757320544350206C6962726172792C2061696D656420617420656E61626C696E672074726F75626C652D667265652C206D756C74692D636F6E6E656374696F6E206E6574776F726B20656E7669726F6E6D656E7420666F722045737072657373696627732045535038323636204D4355732E0A0A54686973206C69627261727920697320746865206261736520666F72205B4553504173796E635765625365727665725D2868747470733A2F2F6769746875622E636F6D2F6D652D6E6F2D6465762F4553504173796E63576562536572766572290A0A2323204173796E63436C69656E7420616E64204173796E635365727665720A546865206261736520636C6173736573206F6E2077686963682065766572797468696E6720656C7365206973206275696C742E2054686579206578706F736520616C6C20706F737369626C65207363656E6172696F732C2062757420617265207265616C6C792072617720616E642072657175697265206D6F726520736B696C6C7320746F207573652E0A0A2323204173796E635072696E7465720A5468697320636C6173732063616E206265207573656420746F2073656E642064617461206C696B6520616E79206F74686572206060605072696E7460606020696E74657266616365202860606053657269616C60606020666F72206578616D706C65292E0A546865206F626A656374207468656E2063616E2062652075736564206F757473696465206F6620746865204173796E632063616C6C6261636B732028746865206C6F6F702920616E642072656365697665206173796E6368726F6E6F75736C792064617461207573696E67206060606F6E446174616060602E20546865206F626A6563742063616E20626520636865636B65642069662074686520756E6465726C79696E67206060604173796E63436C69656E74606060697320636F6E6E65637465642C206F7220686F6F6B20746F20746865206060606F6E446973636F6E6E6563746060602063616C6C6261636B2E0A0A2323204173796E635443506275666665720A5468697320636C617373206973207265616C6C792073696D696C617220746F20746865206060604173796E635072696E7465726060602C20627574206974206469666665727320696E20746865206661637420746861742069742063616E2062756666657220736F6D65206F662074686520696E636F6D696E6720646174612E0A0A23232053796E63436C69656E740A49742069732065786163746C79207768617420697420736F756E6473206C696B652E20546869732069732061207374616E646172642C20626C6F636B696E672054435020436C69656E742C2073696D696C617220746F20746865206F6E6520696E636C7564656420696E2060606045535038323636576946696060600A0A2323204C696272617269657320616E642070726F6A65637473207468617420757365204173796E635443500A2D205B455350204173796E6320576562205365727665725D2868747470733A2F2F6769746875622E636F6D2F6D652D6E6F2D6465762F4553504173796E63576562536572766572290A2D205B4173796E63204D51545420636C69656E745D2868747470733A2F2F6769746875622E636F6D2F6D617276696E726F6765722F6173796E632D6D7174742D636C69656E74290A2D205B61726475696E6F576562536F636B6574735D2868747470733A2F2F6769746875622E636F6D2F4C696E6B73323030342F61726475696E6F576562536F636B657473290A2D205B4553503832363620536D61727420486F6D655D2868747470733A2F2F6769746875622E636F6D2F6261727563682F657370383236365F736D6172745F686F6D65290A2D205B4B426F78204669726D776172655D2868747470733A2F2F6769746875622E636F6D2F736172666174612F6B626F782D6669726D77617265290A .md src AsyncPrinter 2F2A0A20204173796E6368726F6E6F757320544350206C69627261727920666F7220457370726573736966204D4355730A0A2020436F707972696768742028632920323031362048726973746F20476F63686B6F762E20416C6C207269676874732072657365727665642E0A2020546869732066696C652069732070617274206F6620746865206573703832363620636F726520666F722041726475696E6F20656E7669726F6E6D656E742E0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A0A23696E636C75646520224173796E635072696E7465722E68220A0A4173796E635072696E7465723A3A4173796E635072696E74657228290A20203A205F636C69656E74284E554C4C290A20202C205F646174615F6362284E554C4C290A20202C205F646174615F617267284E554C4C290A20202C205F636C6F73655F6362284E554C4C290A20202C205F636C6F73655F617267284E554C4C290A20202C205F74785F627566666572284E554C4C290A20202C205F74785F6275666665725F73697A652831343630290A20202C206E657874284E554C4C290A7B7D0A0A4173796E635072696E7465723A3A4173796E635072696E746572284173796E63436C69656E74202A636C69656E742C2073697A655F742074784275664C656E290A20203A205F636C69656E7428636C69656E74290A20202C205F646174615F6362284E554C4C290A20202C205F646174615F617267284E554C4C290A20202C205F636C6F73655F6362284E554C4C290A20202C205F636C6F73655F617267284E554C4C290A20202C205F74785F627566666572284E554C4C290A20202C205F74785F6275666665725F73697A652874784275664C656E290A20202C206E657874284E554C4C290A7B0A20205F61747461636843616C6C6261636B7328293B0A20205F74785F627566666572203D206E65772063627566285F74785F6275666665725F73697A65293B0A7D0A0A4173796E635072696E7465723A3A7E4173796E635072696E74657228297B0A20205F6F6E5F636C6F736528293B0A7D0A0A766F6964204173796E635072696E7465723A3A6F6E446174612841704461746148616E646C65722063622C20766F6964202A617267297B0A20205F646174615F6362203D2063623B0A20205F646174615F617267203D206172673B0A7D0A0A766F6964204173796E635072696E7465723A3A6F6E436C6F7365284170436C6F736548616E646C65722063622C20766F6964202A617267297B0A20205F636C6F73655F6362203D2063623B0A20205F636C6F73655F617267203D206172673B0A7D0A0A696E74204173796E635072696E7465723A3A636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F7274297B0A20206966285F636C69656E7420213D204E554C4C20262620636F6E6E65637465642829290A2020202072657475726E20303B0A20205F636C69656E74203D206E6577204173796E63436C69656E7428293B0A20205F636C69656E742D3E6F6E436F6E6E656374285B5D28766F6964202A6F626A2C204173796E63436C69656E74202A63297B2028284173796E635072696E7465722A29286F626A29292D3E5F6F6E436F6E6E6563742863293B207D2C2074686973293B0A20206966285F636C69656E742D3E636F6E6E6563742869702C20706F727429297B0A202020207768696C65285F636C69656E742D3E73746174652829203C2034290A20202020202064656C61792831293B0A2020202072657475726E20636F6E6E656374656428293B0A20207D0A202072657475726E20303B0A7D0A0A696E74204173796E635072696E7465723A3A636F6E6E65637428636F6E73742063686172202A686F73742C2075696E7431365F7420706F7274297B0A20206966285F636C69656E7420213D204E554C4C20262620636F6E6E65637465642829290A2020202072657475726E20303B0A20205F636C69656E74203D206E6577204173796E63436C69656E7428293B0A20205F636C69656E742D3E6F6E436F6E6E656374285B5D28766F6964202A6F626A2C204173796E63436C69656E74202A63297B2028284173796E635072696E7465722A29286F626A29292D3E5F6F6E436F6E6E6563742863293B207D2C2074686973293B0A20206966285F636C69656E742D3E636F6E6E65637428686F73742C20706F727429297B0A202020207768696C65285F636C69656E742D3E73746174652829203C2034290A20202020202064656C61792831293B0A2020202072657475726E20636F6E6E656374656428293B0A20207D0A202072657475726E20303B0A7D0A0A766F6964204173796E635072696E7465723A3A5F6F6E436F6E6E656374284173796E63436C69656E74202A63297B0A20206966285F74785F62756666657220213D204E554C4C297B0A2020202063627566202A62203D205F74785F6275666665723B0A202020205F74785F627566666572203D204E554C4C3B0A2020202064656C65746520623B0A20207D0A20205F74785F627566666572203D206E65772063627566285F74785F6275666665725F73697A65293B0A20205F61747461636843616C6C6261636B7328293B0A7D0A0A4173796E635072696E7465723A3A6F70657261746F7220626F6F6C28297B2072657475726E20636F6E6E656374656428293B207D0A0A4173796E635072696E7465722026204173796E635072696E7465723A3A6F70657261746F723D28636F6E7374204173796E635072696E74657220266F74686572297B0A20206966285F636C69656E7420213D204E554C4C297B0A202020205F636C69656E742D3E636C6F73652874727565293B0A202020205F636C69656E74203D204E554C4C3B0A20207D0A20205F74785F6275666665725F73697A65203D206F746865722E5F74785F6275666665725F73697A653B0A20206966285F74785F62756666657220213D204E554C4C297B0A2020202063627566202A62203D205F74785F6275666665723B0A202020205F74785F627566666572203D204E554C4C3B0A2020202064656C65746520623B0A20207D0A20205F74785F627566666572203D206E65772063627566286F746865722E5F74785F6275666665725F73697A65293B0A20205F636C69656E74203D206F746865722E5F636C69656E743B0A20205F61747461636843616C6C6261636B7328293B0A202072657475726E202A746869733B0A7D0A0A73697A655F74204173796E635072696E7465723A3A77726974652875696E74385F742064617461297B0A202072657475726E2077726974652826646174612C2031293B0A7D0A0A73697A655F74204173796E635072696E7465723A3A777269746528636F6E73742075696E74385F74202A646174612C2073697A655F74206C656E297B0A20206966285F74785F627566666572203D3D204E554C4C207C7C2021636F6E6E65637465642829290A2020202072657475726E20303B0A202073697A655F7420746F5772697465203D20303B0A202073697A655F7420746F53656E64203D206C656E3B0A20207768696C65285F74785F6275666665722D3E726F6F6D2829203C20746F53656E64297B0A20202020746F5772697465203D205F74785F6275666665722D3E726F6F6D28293B0A202020205F74785F6275666665722D3E77726974652828636F6E737420636861722A29646174612C20746F5772697465293B0A202020207768696C6528215F636C69656E742D3E63616E53656E642829290A20202020202064656C61792830293B0A202020205F73656E6442756666657228293B0A20202020746F53656E64202D3D20746F57726974653B0A20207D0A20205F74785F6275666665722D3E77726974652828636F6E737420636861722A2928646174612B286C656E202D20746F53656E6429292C20746F53656E64293B0A20207768696C6528215F636C69656E742D3E63616E53656E642829292064656C61792830293B0A20205F73656E6442756666657228293B0A202072657475726E206C656E3B0A7D0A0A626F6F6C204173796E635072696E7465723A3A636F6E6E656374656428297B0A202072657475726E20285F636C69656E7420213D204E554C4C202626205F636C69656E742D3E636F6E6E65637465642829293B0A7D0A0A766F6964204173796E635072696E7465723A3A636C6F736528297B0A20206966285F636C69656E7420213D204E554C4C290A202020205F636C69656E742D3E636C6F73652874727565293B0A7D0A0A73697A655F74204173796E635072696E7465723A3A5F73656E6442756666657228297B0A202073697A655F7420617661696C61626C65203D205F74785F6275666665722D3E617661696C61626C6528293B0A202069662821636F6E6E65637465642829207C7C20215F636C69656E742D3E63616E53656E642829207C7C20617661696C61626C65203D3D2030290A2020202072657475726E20303B0A202073697A655F742073656E6461626C65203D205F636C69656E742D3E737061636528293B0A202069662873656E6461626C65203C20617661696C61626C65290A20202020617661696C61626C653D2073656E6461626C653B0A202063686172202A6F7574203D206E657720636861725B617661696C61626C655D3B0A20205F74785F6275666665722D3E72656164286F75742C20617661696C61626C65293B0A202073697A655F742073656E74203D205F636C69656E742D3E7772697465286F75742C20617661696C61626C65293B0A202064656C657465206F75743B0A202072657475726E2073656E743B0A7D0A0A766F6964204173796E635072696E7465723A3A5F6F6E4461746128766F6964202A646174612C2073697A655F74206C656E297B0A20206966285F646174615F6362290A202020205F646174615F6362285F646174615F6172672C20746869732C202875696E74385F742A29646174612C206C656E293B0A7D0A0A766F6964204173796E635072696E7465723A3A5F6F6E5F636C6F736528297B0A20206966285F636C69656E7420213D204E554C4C297B0A202020205F636C69656E74203D204E554C4C3B0A20207D0A20206966285F74785F62756666657220213D204E554C4C297B0A2020202063627566202A62203D205F74785F6275666665723B0A202020205F74785F627566666572203D204E554C4C3B0A2020202064656C65746520623B0A20207D0A20206966285F636C6F73655F6362290A202020205F636C6F73655F6362285F636C6F73655F6172672C2074686973293B0A7D0A0A766F6964204173796E635072696E7465723A3A5F61747461636843616C6C6261636B7328297B0A20205F636C69656E742D3E6F6E506F6C6C285B5D28766F6964202A6F626A2C204173796E63436C69656E742A2063297B2028284173796E635072696E7465722A29286F626A29292D3E5F73656E6442756666657228293B207D2C2074686973293B0A20205F636C69656E742D3E6F6E41636B285B5D28766F6964202A6F626A2C204173796E63436C69656E742A20632C2073697A655F74206C656E2C2075696E7433325F742074696D65297B2028284173796E635072696E7465722A29286F626A29292D3E5F73656E6442756666657228293B207D2C2074686973293B0A20205F636C69656E742D3E6F6E446973636F6E6E656374285B5D28766F6964202A6F626A2C204173796E63436C69656E742A2063297B2028284173796E635072696E7465722A29286F626A29292D3E5F6F6E5F636C6F736528293B2064656C65746520633B207D2C2074686973293B0A20205F636C69656E742D3E6F6E44617461285B5D28766F6964202A6F626A2C204173796E63436C69656E742A20632C20766F6964202A646174612C2073697A655F74206C656E297B2028284173796E635072696E7465722A29286F626A29292D3E5F6F6E4461746128646174612C206C656E293B207D2C2074686973293B0A7D0A .cpp AsyncPrinter 2F2A0A20204173796E6368726F6E6F757320544350206C69627261727920666F7220457370726573736966204D4355730A0A2020436F707972696768742028632920323031362048726973746F20476F63686B6F762E20416C6C207269676874732072657365727665642E0A2020546869732066696C652069732070617274206F6620746865206573703832363620636F726520666F722041726475696E6F20656E7669726F6E6D656E742E0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A0A2369666E646566204153594E435052494E5445525F485F0A23646566696E65204153594E435052494E5445525F485F0A0A23696E636C756465202241726475696E6F2E68220A23696E636C75646520224553504173796E635443502E68220A23696E636C7564652022636275662E68220A0A636C617373204173796E635072696E7465723B0A0A74797065646566207374643A3A66756E6374696F6E3C766F696428766F69642A2C204173796E635072696E7465722A2C2075696E74385F742A2C2073697A655F74293E2041704461746148616E646C65723B0A74797065646566207374643A3A66756E6374696F6E3C766F696428766F69642A2C204173796E635072696E7465722A293E204170436C6F736548616E646C65723B0A0A636C617373204173796E635072696E7465723A207075626C6963205072696E74207B0A2020707269766174653A0A202020204173796E63436C69656E74202A5F636C69656E743B0A2020202041704461746148616E646C6572205F646174615F63623B0A20202020766F6964202A5F646174615F6172673B0A202020204170436C6F736548616E646C6572205F636C6F73655F63623B0A20202020766F6964202A5F636C6F73655F6172673B0A2020202063627566202A5F74785F6275666665723B0A2020202073697A655F74205F74785F6275666665725F73697A653B0A0A20202020766F6964205F6F6E436F6E6E656374284173796E63436C69656E74202A63293B0A20207075626C69633A0A202020204173796E635072696E746572202A6E6578743B0A0A202020204173796E635072696E74657228293B0A202020204173796E635072696E746572284173796E63436C69656E74202A636C69656E742C2073697A655F742074784275664C656E203D2031343630293B0A202020207669727475616C207E4173796E635072696E74657228293B0A0A20202020696E7420636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F7274293B0A20202020696E7420636F6E6E65637428636F6E73742063686172202A686F73742C2075696E7431365F7420706F7274293B0A0A20202020766F6964206F6E446174612841704461746148616E646C65722063622C20766F6964202A617267293B0A20202020766F6964206F6E436C6F7365284170436C6F736548616E646C65722063622C20766F6964202A617267293B0A0A202020206F70657261746F7220626F6F6C28293B0A202020204173796E635072696E7465722026206F70657261746F723D28636F6E7374204173796E635072696E74657220266F74686572293B0A0A2020202073697A655F742077726974652875696E74385F742064617461293B0A2020202073697A655F7420777269746528636F6E73742075696E74385F74202A646174612C2073697A655F74206C656E293B0A0A20202020626F6F6C20636F6E6E656374656428293B0A20202020766F696420636C6F736528293B0A0A2020202073697A655F74205F73656E6442756666657228293B0A20202020766F6964205F6F6E4461746128766F6964202A646174612C2073697A655F74206C656E293B0A20202020766F6964205F6F6E5F636C6F736528293B0A20202020766F6964205F61747461636843616C6C6261636B7328293B0A7D3B0A0A23656E646966202F2A204153594E435052494E5445525F485F202A2F0A .h async_config 2369666E646566204C49425241524945535F4553504153594E435443505F5352435F4153594E435F434F4E4649475F485F0A23646566696E65204C49425241524945535F4553504153594E435443505F5352435F4153594E435F434F4E4649475F485F0A0A2369666E646566204153594E435F5443505F53534C5F454E41424C45440A23646566696E65204153594E435F5443505F53534C5F454E41424C454420300A23656E6469660A0A23646566696E65204153594E435F5443505F4445425547282E2E2E29202F2F6574735F7072696E7466285F5F56415F415247535F5F290A23646566696E65205443505F53534C5F4445425547282E2E2E29202F2F6574735F7072696E7466285F5F56415F415247535F5F290A0A23656E646966202F2A204C49425241524945535F4553504153594E435443505F5352435F4153594E435F434F4E4649475F485F202A2F0A .h ESPAsyncTCP 2F2A0A20204173796E6368726F6E6F757320544350206C69627261727920666F7220457370726573736966204D4355730A0A2020436F707972696768742028632920323031362048726973746F20476F63686B6F762E20416C6C207269676874732072657365727665642E0A2020546869732066696C652069732070617274206F6620746865206573703832363620636F726520666F722041726475696E6F20656E7669726F6E6D656E742E0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A0A23696E636C756465202241726475696E6F2E68220A0A23696E636C75646520224553504173796E635443502E68220A65787465726E202243227B0A202023696E636C75646520226C7769702F6F70742E68220A202023696E636C75646520226C7769702F7463702E68220A202023696E636C75646520226C7769702F696E65742E68220A202023696E636C75646520226C7769702F646E732E68220A202023696E636C75646520226C7769702F696E69742E68220A7D0A23696E636C756465203C7463705F6178746C732E683E0A0A2F2A0A20204173796E632054435020436C69656E740A2A2F0A0A236966204153594E435F5443505F53534C5F454E41424C45440A4173796E63436C69656E743A3A4173796E63436C69656E74287463705F7063622A207063622C2053534C5F435458202A2073736C5F637478293A0A23656C73650A4173796E63436C69656E743A3A4173796E63436C69656E74287463705F7063622A20706362293A0A23656E6469660A20205F636F6E6E6563745F63622830290A20202C205F636F6E6E6563745F63625F6172672830290A20202C205F646973636172645F63622830290A20202C205F646973636172645F63625F6172672830290A20202C205F73656E745F63622830290A20202C205F73656E745F63625F6172672830290A20202C205F6572726F725F63622830290A20202C205F6572726F725F63625F6172672830290A20202C205F726563765F63622830290A20202C205F726563765F63625F6172672830290A20202C205F70625F63622830290A20202C205F70625F63625F6172672830290A20202C205F74696D656F75745F63622830290A20202C205F74696D656F75745F63625F6172672830290A20202C205F7063625F627573792866616C7365290A236966204153594E435F5443505F53534C5F454E41424C45440A20202C205F7063625F7365637572652866616C7365290A20202C205F68616E647368616B655F646F6E652874727565290A23656E6469660A20202C205F7063625F73656E745F61742830290A20202C205F636C6F73655F7063622866616C7365290A20202C205F61636B5F7063622874727565290A20202C205F74785F756E61636B65645F6C656E2830290A20202C205F74785F61636B65645F6C656E2830290A20202C205F74785F756E73656E745F6C656E2830290A20202C205F72785F6C6173745F7061636B65742830290A20202C205F72785F73696E63655F74696D656F75742830290A20202C205F61636B5F74696D656F7574284153594E435F4D41585F41434B5F54494D45290A20202C205F636F6E6E6563745F706F72742830290A20202C2070726576284E554C4C290A20202C206E657874284E554C4C290A7B0A20205F706362203D207063623B0A20206966285F706362297B0A202020205F72785F6C6173745F7061636B6574203D206D696C6C697328293B0A202020207463705F7365747072696F285F7063622C205443505F5052494F5F4D494E293B0A202020207463705F617267285F7063622C2074686973293B0A202020207463705F72656376285F7063622C20265F735F72656376293B0A202020207463705F73656E74285F7063622C20265F735F73656E74293B0A202020207463705F657272285F7063622C20265F735F6572726F72293B0A202020207463705F706F6C6C285F7063622C20265F735F706F6C6C2C2031293B0A236966204153594E435F5443505F53534C5F454E41424C45440A2020202069662873736C5F637478297B0A2020202020206966287463705F73736C5F6E65775F736572766572285F7063622C2073736C5F63747829203C2030297B0A20202020202020205F636C6F736528293B0A202020202020202072657475726E3B0A2020202020207D0A2020202020207463705F73736C5F617267285F7063622C2074686973293B0A2020202020207463705F73736C5F64617461285F7063622C20265F735F64617461293B0A2020202020207463705F73736C5F68616E647368616B65285F7063622C20265F735F68616E647368616B65293B0A2020202020207463705F73736C5F657272285F7063622C20265F735F73736C5F6572726F72293B0A0A2020202020205F7063625F736563757265203D20747275653B0A2020202020205F68616E647368616B655F646F6E65203D2066616C73653B0A202020207D0A23656E6469660A20207D0A7D0A0A4173796E63436C69656E743A3A7E4173796E63436C69656E7428297B0A20206966285F706362290A202020205F636C6F736528293B0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A626F6F6C204173796E63436C69656E743A3A636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F72742C20626F6F6C20736563757265297B0A23656C73650A626F6F6C204173796E63436C69656E743A3A636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F7274297B0A23656E6469660A2020696620285F70636229202F2F616C726561647920636F6E6E65637465640A2020202072657475726E2066616C73653B0A202069705F616464725F7420616464723B0A2020616464722E61646472203D2069703B0A236966204C5749505F56455253494F4E5F4D414A4F52203D3D20310A20206E657469662A20696E74657266616365203D2069705F726F757465282661646472293B0A20206966202821696E74657266616365297B202F2F6E6F20726F75746520746F20686F73740A2020202072657475726E2066616C73653B0A20207D0A23656E6469660A20207463705F7063622A20706362203D207463705F6E657728293B0A20206966202821706362297B202F2F636F756C64206E6F7420616C6C6F63617465207063620A2020202072657475726E2066616C73653B0A20207D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A20205F7063625F736563757265203D207365637572653B0A20205F68616E647368616B655F646F6E65203D20217365637572653B0A23656E6469660A20207463705F617267287063622C2074686973293B0A20207463705F657272287063622C20265F735F6572726F72293B0A20207463705F636F6E6E656374287063622C2026616464722C20706F72742C287463705F636F6E6E65637465645F666E29265F735F636F6E6E6563746564293B0A202072657475726E20747275653B0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A626F6F6C204173796E63436C69656E743A3A636F6E6E65637428636F6E737420636861722A20686F73742C2075696E7431365F7420706F72742C20626F6F6C20736563757265297B0A23656C73650A626F6F6C204173796E63436C69656E743A3A636F6E6E65637428636F6E737420636861722A20686F73742C2075696E7431365F7420706F7274297B0A23656E6469660A202069705F616464725F7420616464723B0A20206572725F7420657272203D20646E735F676574686F737462796E616D6528686F73742C2026616464722C2028646E735F666F756E645F63616C6C6261636B29265F735F646E735F666F756E642C2074686973293B0A2020696628657272203D3D204552525F4F4B29207B0A236966204153594E435F5443505F53534C5F454E41424C45440A2020202072657475726E20636F6E6E6563742849504164647265737328616464722E61646472292C20706F72742C20736563757265293B0A23656C73650A2020202072657475726E20636F6E6E6563742849504164647265737328616464722E61646472292C20706F7274293B0A23656E6469660A20207D20656C736520696628657272203D3D204552525F494E50524F475245535329207B0A236966204153594E435F5443505F53534C5F454E41424C45440A202020205F7063625F736563757265203D207365637572653B0A202020205F68616E647368616B655F646F6E65203D20217365637572653B0A23656E6469660A202020205F636F6E6E6563745F706F7274203D20706F72743B0A2020202072657475726E20747275653B0A20207D0A202072657475726E2066616C73653B0A7D0A0A4173796E63436C69656E7426204173796E63436C69656E743A3A6F70657261746F723D28636F6E7374204173796E63436C69656E7426206F74686572297B0A2020696620285F706362290A202020205F636C6F736528293B0A0A20205F706362203D206F746865722E5F7063623B0A2020696620285F70636229207B0A202020205F72785F6C6173745F7061636B6574203D206D696C6C697328293B0A202020207463705F7365747072696F285F7063622C205443505F5052494F5F4D494E293B0A202020207463705F617267285F7063622C2074686973293B0A202020207463705F72656376285F7063622C20265F735F72656376293B0A202020207463705F73656E74285F7063622C20265F735F73656E74293B0A202020207463705F657272285F7063622C20265F735F6572726F72293B0A202020207463705F706F6C6C285F7063622C20265F735F706F6C6C2C2031293B0A236966204153594E435F5443505F53534C5F454E41424C45440A202020206966287463705F73736C5F686173285F70636229297B0A2020202020205F7063625F736563757265203D20747275653B0A2020202020205F68616E647368616B655F646F6E65203D2066616C73653B0A2020202020207463705F73736C5F617267285F7063622C2074686973293B0A2020202020207463705F73736C5F64617461285F7063622C20265F735F64617461293B0A2020202020207463705F73736C5F68616E647368616B65285F7063622C20265F735F68616E647368616B65293B0A2020202020207463705F73736C5F657272285F7063622C20265F735F73736C5F6572726F72293B0A202020207D20656C7365207B0A2020202020205F7063625F736563757265203D2066616C73653B0A2020202020205F68616E647368616B655F646F6E65203D20747275653B0A202020207D0A23656E6469660A20207D0A202072657475726E202A746869733B0A7D0A0A626F6F6C204173796E63436C69656E743A3A6F70657261746F723D3D28636F6E7374204173796E63436C69656E7420266F7468657229207B0A202072657475726E20285F70636220213D204E554C4C202626206F746865722E5F70636220213D204E554C4C20262620285F7063622D3E72656D6F74655F69702E61646472203D3D206F746865722E5F7063622D3E72656D6F74655F69702E616464722920262620285F7063622D3E72656D6F74655F706F7274203D3D206F746865722E5F7063622D3E72656D6F74655F706F727429293B0A7D0A0A696E74385F74204173796E63436C69656E743A3A61626F727428297B0A20206966285F70636229207B0A202020207463705F61626F7274285F706362293B0A202020205F706362203D204E554C4C3B0A20207D0A202072657475726E204552525F414252543B0A7D0A0A766F6964204173796E63436C69656E743A3A636C6F736528626F6F6C206E6F77297B0A20206966285F706362290A202020207463705F726563766564285F7063622C205F72785F61636B5F6C656E293B0A20206966286E6F77290A202020205F636C6F736528293B0A2020656C73650A202020205F636C6F73655F706362203D20747275653B0A7D0A0A766F6964204173796E63436C69656E743A3A73746F702829207B0A2020636C6F73652866616C7365293B0A7D0A0A626F6F6C204173796E63436C69656E743A3A6672656528297B0A2020696628215F706362290A2020202072657475726E20747275653B0A20206966285F7063622D3E7374617465203D3D2030207C7C205F7063622D3E7374617465203E2034290A2020202072657475726E20747275653B0A202072657475726E2066616C73653B0A7D0A0A73697A655F74204173796E63436C69656E743A3A777269746528636F6E737420636861722A206461746129207B0A202069662864617461203D3D204E554C4C290A2020202072657475726E20303B0A202072657475726E20777269746528646174612C207374726C656E286461746129293B0A7D0A0A73697A655F74204173796E63436C69656E743A3A777269746528636F6E737420636861722A20646174612C2073697A655F742073697A652C2075696E74385F7420617069666C61677329207B0A202073697A655F742077696C6C5F73656E64203D2061646428646174612C2073697A652C20617069666C616773293B0A20206966282177696C6C5F73656E64207C7C202173656E642829290A2020202072657475726E20303B0A202072657475726E2077696C6C5F73656E643B0A7D0A0A73697A655F74204173796E63436C69656E743A3A61646428636F6E737420636861722A20646174612C2073697A655F742073697A652C2075696E74385F7420617069666C61677329207B0A2020696628215F706362207C7C2073697A65203D3D2030207C7C2064617461203D3D204E554C4C290A2020202072657475726E20303B0A202073697A655F7420726F6F6D203D20737061636528293B0A202069662821726F6F6D290A2020202072657475726E20303B0A236966204153594E435F5443505F53534C5F454E41424C45440A20206966285F7063625F736563757265297B0A20202020696E742073656E74203D207463705F73736C5F7772697465285F7063622C202875696E74385F742A29646174612C2073697A65293B0A2020202069662873656E74203E3D2030297B0A2020202020205F74785F756E61636B65645F6C656E202B3D2073656E743B0A20202020202072657475726E2073656E743B0A202020207D0A202020205F636C6F736528293B0A2020202072657475726E20303B0A20207D0A23656E6469660A202073697A655F742077696C6C5F73656E64203D2028726F6F6D203C2073697A6529203F20726F6F6D203A2073697A653B0A2020696E74385F7420657272203D207463705F7772697465285F7063622C20646174612C2077696C6C5F73656E642C20617069666C616773293B0A202069662865727220213D204552525F4F4B290A2020202072657475726E20303B0A20205F74785F756E73656E745F6C656E202B3D2077696C6C5F73656E643B0A202072657475726E2077696C6C5F73656E643B0A7D0A0A626F6F6C204173796E63436C69656E743A3A73656E6428297B0A236966204153594E435F5443505F53534C5F454E41424C45440A20206966285F7063625F736563757265290A2020202072657475726E20747275653B0A23656E6469660A20206966287463705F6F7574707574285F70636229203D3D204552525F4F4B297B0A202020205F7063625F62757379203D20747275653B0A202020205F7063625F73656E745F6174203D206D696C6C697328293B0A202020205F74785F756E61636B65645F6C656E202B3D205F74785F756E73656E745F6C656E3B0A202020205F74785F756E73656E745F6C656E203D20303B0A2020202072657475726E20747275653B0A20207D0A20205F74785F756E73656E745F6C656E203D20303B0A202072657475726E2066616C73653B0A7D0A0A73697A655F74204173796E63436C69656E743A3A61636B2873697A655F74206C656E297B0A20206966286C656E203E205F72785F61636B5F6C656E290A202020206C656E203D205F72785F61636B5F6C656E3B0A20206966286C656E290A202020207463705F726563766564285F7063622C206C656E293B0A20205F72785F61636B5F6C656E202D3D206C656E3B0A202072657475726E206C656E3B0A7D0A0A2F2F20507269766174652043616C6C6261636B730A0A6572725F74204173796E63436C69656E743A3A5F636F6E6E656374656428766F69642A207063622C206572725F7420657272297B0A20205F706362203D207265696E746572707265745F636173743C7463705F7063622A3E28706362293B0A20206966285F706362297B0A202020205F7063625F62757379203D2066616C73653B0A202020205F72785F6C6173745F7061636B6574203D206D696C6C697328293B0A202020207463705F7365747072696F285F7063622C205443505F5052494F5F4D494E293B0A202020207463705F72656376285F7063622C20265F735F72656376293B0A202020207463705F73656E74285F7063622C20265F735F73656E74293B0A202020207463705F706F6C6C285F7063622C20265F735F706F6C6C2C2031293B0A236966204153594E435F5443505F53534C5F454E41424C45440A202020206966285F7063625F736563757265297B0A2020202020206966287463705F73736C5F6E65775F636C69656E74285F70636229203C2030297B0A202020202020202072657475726E205F636C6F736528293B0A2020202020207D0A2020202020207463705F73736C5F617267285F7063622C2074686973293B0A2020202020207463705F73736C5F64617461285F7063622C20265F735F64617461293B0A2020202020207463705F73736C5F68616E647368616B65285F7063622C20265F735F68616E647368616B65293B0A2020202020207463705F73736C5F657272285F7063622C20265F735F73736C5F6572726F72293B0A202020207D0A20207D0A2020696628215F7063625F736563757265202626205F636F6E6E6563745F6362290A23656C73650A20207D0A20206966285F636F6E6E6563745F6362290A23656E6469660A202020205F636F6E6E6563745F6362285F636F6E6E6563745F63625F6172672C2074686973293B0A202072657475726E204552525F4F4B3B0A7D0A0A696E74385F74204173796E63436C69656E743A3A5F636C6F736528297B0A2020696E74385F7420657272203D204552525F4F4B3B0A20206966285F70636229207B0A236966204153594E435F5443505F53534C5F454E41424C45440A202020206966285F7063625F736563757265297B0A2020202020207463705F73736C5F66726565285F706362293B0A202020207D0A23656E6469660A202020207463705F617267285F7063622C204E554C4C293B0A202020207463705F73656E74285F7063622C204E554C4C293B0A202020207463705F72656376285F7063622C204E554C4C293B0A202020207463705F657272285F7063622C204E554C4C293B0A202020207463705F706F6C6C285F7063622C204E554C4C2C2030293B0A20202020657272203D207463705F636C6F7365285F706362293B0A2020202069662865727220213D204552525F4F4B29207B0A202020202020657272203D2061626F727428293B0A202020207D0A202020205F706362203D204E554C4C3B0A202020206966285F646973636172645F6362290A2020202020205F646973636172645F6362285F646973636172645F63625F6172672C2074686973293B0A20207D0A202072657475726E206572723B0A7D0A0A766F6964204173796E63436C69656E743A3A5F6572726F72286572725F742065727229207B0A20206966285F706362297B0A236966204153594E435F5443505F53534C5F454E41424C45440A202020206966285F7063625F736563757265297B0A2020202020207463705F73736C5F66726565285F706362293B0A202020207D0A23656E6469660A202020207463705F617267285F7063622C204E554C4C293B0A202020207463705F73656E74285F7063622C204E554C4C293B0A202020207463705F72656376285F7063622C204E554C4C293B0A202020207463705F657272285F7063622C204E554C4C293B0A202020207463705F706F6C6C285F7063622C204E554C4C2C2030293B0A202020205F706362203D204E554C4C3B0A20207D0A20206966285F6572726F725F6362290A202020205F6572726F725F6362285F6572726F725F63625F6172672C20746869732C20657272293B0A20206966285F646973636172645F6362290A202020205F646973636172645F6362285F646973636172645F63625F6172672C2074686973293B0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A766F6964204173796E63436C69656E743A3A5F73736C5F6572726F7228696E74385F7420657272297B0A20206966285F6572726F725F6362290A202020205F6572726F725F6362285F6572726F725F63625F6172672C20746869732C206572722B3634293B0A7D0A23656E6469660A0A6572725F74204173796E63436C69656E743A3A5F73656E74287463705F7063622A207063622C2075696E7431365F74206C656E29207B0A236966204153594E435F5443505F53534C5F454E41424C45440A2020696620285F7063625F73656375726520262620215F68616E647368616B655F646F6E65290A2020202072657475726E204552525F4F4B3B0A23656E6469660A20205F72785F6C6173745F7061636B6574203D206D696C6C697328293B0A20205F74785F756E61636B65645F6C656E202D3D206C656E3B0A20205F74785F61636B65645F6C656E202B3D206C656E3B0A20204153594E435F5443505F444542554728225F73656E743A20257520282564202564295C6E222C206C656E2C205F74785F756E61636B65645F6C656E2C205F74785F61636B65645F6C656E293B0A20206966285F74785F756E61636B65645F6C656E203D3D2030297B0A202020205F7063625F62757379203D2066616C73653B0A202020206966285F73656E745F6362290A2020202020205F73656E745F6362285F73656E745F63625F6172672C20746869732C205F74785F61636B65645F6C656E2C20286D696C6C69732829202D205F7063625F73656E745F617429293B0A2020202020205F74785F61636B65645F6C656E203D20303B0A20207D0A202072657475726E204552525F4F4B3B0A7D0A0A6572725F74204173796E63436C69656E743A3A5F72656376287463705F7063622A207063622C20706275662A2070622C206572725F742065727229207B0A20206966287062203D3D204E554C4C297B0A202020204153594E435F5443505F444542554728225F726563763A207062203D3D204E554C4C2120436C6F73696E672E2E2E2025645C6E222C20657272293B0A2020202072657475726E205F636C6F736528293B0A20207D0A0A20205F72785F6C6173745F7061636B6574203D206D696C6C697328293B0A236966204153594E435F5443505F53534C5F454E41424C45440A20206966285F7063625F736563757265297B0A202020204153594E435F5443505F444542554728225F726563763A2025645C6E222C2070622D3E746F745F6C656E293B0A20202020696E7420726561645F6279746573203D207463705F73736C5F72656164287063622C207062293B0A20202020696628726561645F6279746573203C2030297B0A20202020202069662028726561645F627974657320213D2053534C5F434C4F53455F4E4F5449465929207B0A20202020202020204153594E435F5443505F444542554728225F72656376206572723A2025645C6E222C20726561645F6279746573293B0A20202020202020205F636C6F736528293B0A2020202020207D0A2020202020202F2F72657475726E20726561645F62797465733B0A202020207D0A2020202072657475726E204552525F4F4B3B0A20207D0A23656E6469660A20207768696C6528706220213D204E554C4C297B0A202020202F2F77652073686F756C64206E6F742061636B206265666F726520776520617373696D696C6174652074686520646174610A202020205F61636B5F706362203D20747275653B0A2020202070627566202A62203D2070623B0A202020207062203D20622D3E6E6578743B0A20202020622D3E6E657874203D204E554C4C3B0A202020204153594E435F5443505F444542554728225F726563763A2025645C6E222C20622D3E6C656E293B0A202020206966285F70625F6362297B0A2020202020205F70625F6362285F70625F63625F6172672C20746869732C2062293B0A202020207D20656C7365207B0A2020202020206966285F726563765F6362290A20202020202020205F726563765F6362285F726563765F63625F6172672C20746869732C20622D3E7061796C6F61642C20622D3E6C656E293B0A202020202020696628215F61636B5F706362290A20202020202020205F72785F61636B5F6C656E202B3D20622D3E6C656E3B0A202020202020656C73650A20202020202020207463705F726563766564287063622C20622D3E6C656E293B0A202020202020706275665F667265652862293B0A202020207D0A20207D0A202072657475726E204552525F4F4B3B0A7D0A0A6572725F74204173796E63436C69656E743A3A5F706F6C6C287463705F7063622A20706362297B0A20202F2F20436C6F7365207265717565737465640A20206966285F636C6F73655F706362297B0A202020205F636C6F73655F706362203D2066616C73653B0A202020205F636C6F736528293B0A2020202072657475726E204552525F4F4B3B0A20207D0A202075696E7433325F74206E6F77203D206D696C6C697328293B0A0A20202F2F2041434B2054696D656F75740A20206966285F7063625F62757379202626205F61636B5F74696D656F757420262620286E6F77202D205F7063625F73656E745F617429203E3D205F61636B5F74696D656F7574297B0A202020205F7063625F62757379203D2066616C73653B0A202020206966285F74696D656F75745F6362290A2020202020205F74696D656F75745F6362285F74696D656F75745F63625F6172672C20746869732C20286E6F77202D205F7063625F73656E745F617429293B0A2020202072657475726E204552525F4F4B3B0A20207D0A20202F2F2052582054696D656F75740A20206966285F72785F73696E63655F74696D656F757420262620286E6F77202D205F72785F6C6173745F7061636B657429203E3D20285F72785F73696E63655F74696D656F7574202A203130303029297B0A202020205F636C6F736528293B0A2020202072657475726E204552525F4F4B3B0A20207D0A236966204153594E435F5443505F53534C5F454E41424C45440A20202F2F2053534C2048616E647368616B652054696D656F75740A20206966285F7063625F73656375726520262620215F68616E647368616B655F646F6E6520262620286E6F77202D205F72785F6C6173745F7061636B657429203E3D2032303030297B0A202020205F636C6F736528293B0A2020202072657475726E204552525F4F4B3B0A20207D0A23656E6469660A20202F2F2045766572797468696E672069732066696E650A20206966285F706F6C6C5F6362290A202020205F706F6C6C5F6362285F706F6C6C5F63625F6172672C2074686973293B0A202072657475726E204552525F4F4B3B0A7D0A0A236966204C5749505F56455253494F4E5F4D414A4F52203D3D20310A766F6964204173796E63436C69656E743A3A5F646E735F666F756E64287374727563742069705F61646472202A697061646472297B0A23656C73650A766F6964204173796E63436C69656E743A3A5F646E735F666F756E6428636F6E73742069705F61646472202A697061646472297B0A23656E6469660A2020696628697061646472297B0A236966204153594E435F5443505F53534C5F454E41424C45440A20202020636F6E6E65637428495041646472657373286970616464722D3E61646472292C205F636F6E6E6563745F706F72742C205F7063625F736563757265293B0A23656C73650A20202020636F6E6E65637428495041646472657373286970616464722D3E61646472292C205F636F6E6E6563745F706F7274293B0A23656E6469660A20207D20656C7365207B0A202020206966285F6572726F725F6362290A2020202020205F6572726F725F6362285F6572726F725F63625F6172672C20746869732C202D3535293B0A202020206966285F646973636172645F6362290A2020202020205F646973636172645F6362285F646973636172645F63625F6172672C2074686973293B0A20207D0A7D0A0A2F2F206C5749502043616C6C6261636B730A236966204C5749505F56455253494F4E5F4D414A4F52203D3D20310A766F6964204173796E63436C69656E743A3A5F735F646E735F666F756E6428636F6E73742063686172202A6E616D652C2069705F616464725F74202A6970616464722C20766F6964202A617267297B0A23656C73650A766F6964204173796E63436C69656E743A3A5F735F646E735F666F756E6428636F6E73742063686172202A6E616D652C20636F6E73742069705F61646472202A6970616464722C20766F6964202A617267297B0A23656E6469660A20207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267292D3E5F646E735F666F756E6428697061646472293B0A7D0A0A6572725F74204173796E63436C69656E743A3A5F735F706F6C6C28766F6964202A6172672C20737472756374207463705F706362202A7470636229207B0A202072657475726E207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267292D3E5F706F6C6C2874706362293B0A7D0A0A6572725F74204173796E63436C69656E743A3A5F735F7265637628766F6964202A6172672C20737472756374207463705F706362202A747063622C207374727563742070627566202A70622C206572725F742065727229207B0A202072657475726E207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267292D3E5F7265637628747063622C2070622C20657272293B0A7D0A0A766F6964204173796E63436C69656E743A3A5F735F6572726F7228766F6964202A6172672C206572725F742065727229207B0A20207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267292D3E5F6572726F7228657272293B0A7D0A0A6572725F74204173796E63436C69656E743A3A5F735F73656E7428766F6964202A6172672C20737472756374207463705F706362202A747063622C2075696E7431365F74206C656E29207B0A202072657475726E207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267292D3E5F73656E7428747063622C206C656E293B0A7D0A0A6572725F74204173796E63436C69656E743A3A5F735F636F6E6E656374656428766F69642A206172672C20766F69642A20747063622C206572725F7420657272297B0A2020202072657475726E207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267292D3E5F636F6E6E656374656428747063622C20657272293B0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A766F6964204173796E63436C69656E743A3A5F735F6461746128766F6964202A6172672C20737472756374207463705F706362202A7463702C2075696E74385F74202A20646174612C2073697A655F74206C656E297B0A20204173796E63436C69656E74202A63203D207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267293B0A2020696628632D3E5F726563765F6362290A20202020632D3E5F726563765F636228632D3E5F726563765F63625F6172672C20632C20646174612C206C656E293B0A7D0A0A766F6964204173796E63436C69656E743A3A5F735F68616E647368616B6528766F6964202A6172672C20737472756374207463705F706362202A7463702C2053534C202A73736C297B0A20204173796E63436C69656E74202A63203D207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267293B0A2020632D3E5F68616E647368616B655F646F6E65203D20747275653B0A2020696628632D3E5F636F6E6E6563745F6362290A20202020632D3E5F636F6E6E6563745F636228632D3E5F636F6E6E6563745F63625F6172672C2063293B0A7D0A0A766F6964204173796E63436C69656E743A3A5F735F73736C5F6572726F7228766F6964202A6172672C20737472756374207463705F706362202A7463702C20696E74385F7420657272297B0A20207265696E746572707265745F636173743C4173796E63436C69656E742A3E28617267292D3E5F73736C5F6572726F7228657272293B0A7D0A23656E6469660A0A2F2F204F70657261746F72730A0A4173796E63436C69656E742026204173796E63436C69656E743A3A6F70657261746F722B3D28636F6E7374204173796E63436C69656E7420266F7468657229207B0A20206966286E657874203D3D204E554C4C297B0A202020206E657874203D20284173796E63436C69656E742A2928266F74686572293B0A202020206E6578742D3E70726576203D20746869733B0A20207D20656C7365207B0A202020204173796E63436C69656E74202A63203D206E6578743B0A202020207768696C6528632D3E6E65787420213D204E554C4C292063203D20632D3E6E6578743B0A20202020632D3E6E657874203D284173796E63436C69656E742A2928266F74686572293B0A20202020632D3E6E6578742D3E70726576203D20633B0A20207D0A202072657475726E202A746869733B0A7D0A0A766F6964204173796E63436C69656E743A3A736574527854696D656F75742875696E7433325F742074696D656F7574297B0A20205F72785F73696E63655F74696D656F7574203D2074696D656F75743B0A7D0A0A75696E7433325F74204173796E63436C69656E743A3A676574527854696D656F757428297B0A202072657475726E205F72785F73696E63655F74696D656F75743B0A7D0A0A75696E7433325F74204173796E63436C69656E743A3A67657441636B54696D656F757428297B0A202072657475726E205F61636B5F74696D656F75743B0A7D0A0A766F6964204173796E63436C69656E743A3A73657441636B54696D656F75742875696E7433325F742074696D656F7574297B0A20205F61636B5F74696D656F7574203D2074696D656F75743B0A7D0A0A766F6964204173796E63436C69656E743A3A7365744E6F44656C617928626F6F6C206E6F64656C6179297B0A2020696628215F706362290A2020202072657475726E3B0A20206966286E6F64656C6179290A202020207463705F6E61676C655F64697361626C65285F706362293B0A2020656C73650A202020207463705F6E61676C655F656E61626C65285F706362293B0A7D0A0A626F6F6C204173796E63436C69656E743A3A6765744E6F44656C617928297B0A2020696628215F706362290A2020202072657475726E2066616C73653B0A202072657475726E207463705F6E61676C655F64697361626C6564285F706362293B0A7D0A0A75696E7431365F74204173796E63436C69656E743A3A6765744D737328297B0A20206966285F706362290A2020202072657475726E207463705F6D7373285F706362293B0A202072657475726E20303B0A7D0A0A75696E7433325F74204173796E63436C69656E743A3A67657452656D6F7465416464726573732829207B0A2020696628215F706362290A2020202072657475726E20303B0A202072657475726E205F7063622D3E72656D6F74655F69702E616464723B0A7D0A0A75696E7431365F74204173796E63436C69656E743A3A67657452656D6F7465506F72742829207B0A2020696628215F706362290A2020202072657475726E20303B0A202072657475726E205F7063622D3E72656D6F74655F706F72743B0A7D0A0A75696E7433325F74204173796E63436C69656E743A3A6765744C6F63616C416464726573732829207B0A2020696628215F706362290A2020202072657475726E20303B0A202072657475726E205F7063622D3E6C6F63616C5F69702E616464723B0A7D0A0A75696E7431365F74204173796E63436C69656E743A3A6765744C6F63616C506F72742829207B0A2020696628215F706362290A2020202072657475726E20303B0A202072657475726E205F7063622D3E6C6F63616C5F706F72743B0A7D0A0A495041646472657373204173796E63436C69656E743A3A72656D6F746549502829207B0A202072657475726E204950416464726573732867657452656D6F7465416464726573732829293B0A7D0A0A75696E7431365F74204173796E63436C69656E743A3A72656D6F7465506F72742829207B0A202072657475726E2067657452656D6F7465506F727428293B0A7D0A0A495041646472657373204173796E63436C69656E743A3A6C6F63616C49502829207B0A202072657475726E20495041646472657373286765744C6F63616C416464726573732829293B0A7D0A0A75696E7431365F74204173796E63436C69656E743A3A6C6F63616C506F72742829207B0A202072657475726E206765744C6F63616C506F727428293B0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A53534C202A204173796E63436C69656E743A3A67657453534C28297B0A20206966285F706362202626205F7063625F736563757265297B0A2020202072657475726E207463705F73736C5F6765745F73736C285F706362293B0A20207D0A202072657475726E204E554C4C3B0A7D0A23656E6469660A0A75696E74385F74204173796E63436C69656E743A3A73746174652829207B0A2020696628215F706362290A2020202072657475726E20303B0A202072657475726E205F7063622D3E73746174653B0A7D0A0A626F6F6C204173796E63436C69656E743A3A636F6E6E656374656428297B0A202069662028215F706362290A2020202072657475726E2066616C73653B0A236966204153594E435F5443505F53534C5F454E41424C45440A202072657475726E205F7063622D3E7374617465203D3D2034202626205F68616E647368616B655F646F6E653B0A23656C73650A202072657475726E205F7063622D3E7374617465203D3D20343B0A23656E6469660A7D0A0A626F6F6C204173796E63436C69656E743A3A636F6E6E656374696E6728297B0A202069662028215F706362290A2020202072657475726E2066616C73653B0A202072657475726E205F7063622D3E7374617465203E2030202626205F7063622D3E7374617465203C20343B0A7D0A0A626F6F6C204173796E63436C69656E743A3A646973636F6E6E656374696E6728297B0A202069662028215F706362290A2020202072657475726E2066616C73653B0A202072657475726E205F7063622D3E7374617465203E2034202626205F7063622D3E7374617465203C2031303B0A7D0A0A626F6F6C204173796E63436C69656E743A3A646973636F6E6E656374656428297B0A202069662028215F706362290A2020202072657475726E20747275653B0A202072657475726E205F7063622D3E7374617465203D3D2030207C7C205F7063622D3E7374617465203D3D2031303B0A7D0A0A626F6F6C204173796E63436C69656E743A3A6672656561626C6528297B0A202069662028215F706362290A2020202072657475726E20747275653B0A202072657475726E205F7063622D3E7374617465203D3D2030207C7C205F7063622D3E7374617465203E20343B0A7D0A0A626F6F6C204173796E63436C69656E743A3A63616E53656E6428297B0A202072657475726E20215F7063625F62757379202626202873706163652829203E2030293B0A7D0A0A0A2F2F2043616C6C6261636B20536574746572730A0A766F6964204173796E63436C69656E743A3A6F6E436F6E6E656374284163436F6E6E65637448616E646C65722063622C20766F69642A20617267297B0A20205F636F6E6E6563745F6362203D2063623B0A20205F636F6E6E6563745F63625F617267203D206172673B0A7D0A0A766F6964204173796E63436C69656E743A3A6F6E446973636F6E6E656374284163436F6E6E65637448616E646C65722063622C20766F69642A20617267297B0A20205F646973636172645F6362203D2063623B0A20205F646973636172645F63625F617267203D206172673B0A7D0A0A766F6964204173796E63436C69656E743A3A6F6E41636B28416341636B48616E646C65722063622C20766F69642A20617267297B0A20205F73656E745F6362203D2063623B0A20205F73656E745F63625F617267203D206172673B0A7D0A0A766F6964204173796E63436C69656E743A3A6F6E4572726F722841634572726F7248616E646C65722063622C20766F69642A20617267297B0A20205F6572726F725F6362203D2063623B0A20205F6572726F725F63625F617267203D206172673B0A7D0A0A766F6964204173796E63436C69656E743A3A6F6E446174612841634461746148616E646C65722063622C20766F69642A20617267297B0A20205F726563765F6362203D2063623B0A20205F726563765F63625F617267203D206172673B0A7D0A0A766F6964204173796E63436C69656E743A3A6F6E5061636B65742841635061636B657448616E646C65722063622C20766F69642A20617267297B0A20205F70625F6362203D2063623B0A20205F70625F63625F617267203D206172673B0A7D0A0A766F6964204173796E63436C69656E743A3A6F6E54696D656F757428416354696D656F757448616E646C65722063622C20766F69642A20617267297B0A20205F74696D656F75745F6362203D2063623B0A20205F74696D656F75745F63625F617267203D206172673B0A7D0A0A766F6964204173796E63436C69656E743A3A6F6E506F6C6C284163436F6E6E65637448616E646C65722063622C20766F69642A20617267297B0A20205F706F6C6C5F6362203D2063623B0A20205F706F6C6C5F63625F617267203D206172673B0A7D0A0A0A73697A655F74204173796E63436C69656E743A3A737061636528297B0A236966204153594E435F5443505F53534C5F454E41424C45440A2020696628285F70636220213D204E554C4C2920262620285F7063622D3E7374617465203D3D203429202626205F68616E647368616B655F646F6E65297B0A2020202075696E7431365F742073203D207463705F736E64627566285F706362293B0A202020206966285F7063625F736563757265297B0A236966646566204158544C535F325F305F305F534E444255460A20202020202072657475726E207463705F73736C5F736E64627566285F706362293B0A23656C73650A20202020202069662873203E3D2031323829202F2F7361666520617070726F6163680A202020202020202072657475726E2073202D203132383B0A20202020202072657475726E20303B0A23656E6469660A202020207D0A2020202072657475726E20733B0A20207D0A23656C73650A2020696628285F70636220213D204E554C4C2920262620285F7063622D3E7374617465203D3D203429297B0A2020202072657475726E207463705F736E64627566285F706362293B0A20207D0A23656E6469660A202072657475726E20303B0A7D0A0A766F6964204173796E63436C69656E743A3A61636B5061636B6574287374727563742070627566202A207062297B0A2020696628217062297B0A2020202072657475726E3B0A20207D0A20207463705F726563766564285F7063622C2070622D3E6C656E293B0A2020706275665F66726565287062293B0A7D0A0A636F6E73742063686172202A204173796E63436C69656E743A3A6572726F72546F537472696E6728696E74385F74206572726F7229207B0A2020202073776974636820286572726F7229207B0A2020202063617365204552525F4F4B3A200A090972657475726E20224F4B223B0A2020202063617365204552525F4D454D3A200A090972657475726E20224F7574206F66206D656D6F7279206572726F72223B0A2020202063617365204552525F4255463A200A090972657475726E2022427566666572206572726F72223B0A2020202063617365204552525F54494D454F55543A200A090972657475726E202254696D656F7574223B0A2020202063617365204552525F5254453A200A090972657475726E2022526F7574696E672070726F626C656D223B0A2020202063617365204552525F494E50524F47524553533A200A090972657475726E20224F7065726174696F6E20696E2070726F6772657373223B0A2020202063617365204552525F56414C3A200A090972657475726E2022496C6C6567616C2076616C7565223B0A2020202063617365204552525F574F554C44424C4F434B3A200A090972657475726E20224F7065726174696F6E20776F756C6420626C6F636B223B0A2020202063617365204552525F414252543A0A090972657475726E2022436F6E6E656374696F6E2061626F72746564223B0A2020202063617365204552525F5253543A200A090972657475726E2022436F6E6E656374696F6E207265736574223B0A2020202063617365204552525F434C53443A200A090972657475726E2022436F6E6E656374696F6E20636C6F736564223B0A2020202063617365204552525F434F4E4E3A200A090972657475726E20224E6F7420636F6E6E6563746564223B0A2020202063617365204552525F4152473A200A090972657475726E2022496C6C6567616C20617267756D656E74223B0A2020202063617365204552525F5553453A200A090972657475726E20224164647265737320696E20757365223B0A2020202063617365204552525F49463A200A090972657475726E20224C6F772D6C6576656C206E65746966206572726F72223B0A2020202063617365204552525F4953434F4E4E3A200A090972657475726E2022436F6E6E656374696F6E20616C72656164792065737461626C6973686564223B0A2020202064656661756C743A200A090972657475726E2022556E6B6E6F776E206572726F72223B0A202020207D0A7D0A0A636F6E73742063686172202A204173796E63436C69656E743A3A7374617465546F537472696E6728297B0A20207377697463682873746174652829297B0A202020206361736520303A2072657475726E2022436C6F736564223B0A202020206361736520313A2072657475726E20224C697374656E223B0A202020206361736520323A2072657475726E202253594E2053656E74223B0A202020206361736520333A2072657475726E202253594E205265636569766564223B0A202020206361736520343A2072657475726E202245737461626C6973686564223B0A202020206361736520353A2072657475726E202246494E20576169742031223B0A202020206361736520363A2072657475726E202246494E20576169742032223B0A202020206361736520373A2072657475726E2022436C6F73652057616974223B0A202020206361736520383A2072657475726E2022436C6F73696E67223B0A202020206361736520393A2072657475726E20224C6173742041434B223B0A20202020636173652031303A2072657475726E202254696D652057616974223B0A2020202064656661756C743A2072657475726E2022554E4B4E4F574E223B0A20207D0A7D0A0A2F2A0A20204173796E6320544350205365727665720A2A2F0A7374727563742070656E64696E675F706362207B0A202020207463705F7063622A207063623B0A2020202070627566202A70623B0A202020207374727563742070656E64696E675F706362202A206E6578743B0A7D3B0A0A4173796E635365727665723A3A4173796E635365727665722849504164647265737320616464722C2075696E7431365F7420706F7274290A20203A205F706F727428706F7274290A20202C205F616464722861646472290A20202C205F6E6F44656C61792866616C7365290A20202C205F7063622830290A20202C205F636F6E6E6563745F63622830290A20202C205F636F6E6E6563745F63625F6172672830290A236966204153594E435F5443505F53534C5F454E41424C45440A20202C205F70656E64696E67284E554C4C290A20202C205F73736C5F637478284E554C4C290A20202C205F66696C655F63622830290A20202C205F66696C655F63625F6172672830290A23656E6469660A7B7D0A0A4173796E635365727665723A3A4173796E635365727665722875696E7431365F7420706F7274290A20203A205F706F727428706F7274290A20202C205F61646472282875696E7433325F7429204950414444525F414E59290A20202C205F6E6F44656C61792866616C7365290A20202C205F7063622830290A20202C205F636F6E6E6563745F63622830290A20202C205F636F6E6E6563745F63625F6172672830290A236966204153594E435F5443505F53534C5F454E41424C45440A20202C205F70656E64696E67284E554C4C290A20202C205F73736C5F637478284E554C4C290A20202C205F66696C655F63622830290A20202C205F66696C655F63625F6172672830290A23656E6469660A7B7D0A0A4173796E635365727665723A3A7E4173796E6353657276657228297B0A2020656E6428293B0A7D0A0A766F6964204173796E635365727665723A3A6F6E436C69656E74284163436F6E6E65637448616E646C65722063622C20766F69642A20617267297B0A20205F636F6E6E6563745F6362203D2063623B0A20205F636F6E6E6563745F63625F617267203D206172673B0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A766F6964204173796E635365727665723A3A6F6E53736C46696C655265717565737428416353536C46696C6548616E646C65722063622C20766F69642A20617267297B0A20205F66696C655F6362203D2063623B0A20205F66696C655F63625F617267203D206172673B0A7D0A23656E6469660A0A766F6964204173796E635365727665723A3A626567696E28297B0A20206966285F706362290A2020202072657475726E3B0A0A2020696E74385F74206572723B0A20207463705F7063622A20706362203D207463705F6E657728293B0A20206966202821706362297B0A2020202072657475726E3B0A20207D0A0A202069705F616464725F74206C6F63616C5F616464723B0A20206C6F63616C5F616464722E61646472203D202875696E7433325F7429205F616464723B0A2020657272203D207463705F62696E64287063622C20266C6F63616C5F616464722C205F706F7274293B0A0A20206966202865727220213D204552525F4F4B29207B0A202020207463705F636C6F736528706362293B0A2020202072657475726E3B0A20207D0A0A20207463705F7063622A206C697374656E5F706362203D207463705F6C697374656E28706362293B0A202069662028216C697374656E5F70636229207B0A202020207463705F636C6F736528706362293B0A2020202072657475726E3B0A20207D0A20205F706362203D206C697374656E5F7063623B0A20207463705F617267285F7063622C2028766F69642A292074686973293B0A20207463705F616363657074285F7063622C20265F735F616363657074293B0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A766F6964204173796E635365727665723A3A626567696E53656375726528636F6E73742063686172202A636572742C20636F6E73742063686172202A6B65792C20636F6E73742063686172202A70617373776F7264297B0A20206966285F73736C5F637478297B0A2020202072657475726E3B0A20207D0A20207463705F73736C5F66696C65285F735F636572742C2074686973293B0A20205F73736C5F637478203D207463705F73736C5F6E65775F7365727665725F63747828636572742C206B65792C2070617373776F7264293B0A20206966285F73736C5F637478297B0A20202020626567696E28293B0A20207D0A7D0A23656E6469660A0A766F6964204173796E635365727665723A3A656E6428297B0A20206966285F706362297B0A202020202F2F636C65616E757020616C6C20636F6E6E656374696F6E733F0A202020207463705F617267285F7063622C204E554C4C293B0A202020207463705F616363657074285F7063622C204E554C4C293B0A202020206966287463705F636C6F7365285F7063622920213D204552525F4F4B297B0A2020202020207463705F61626F7274285F706362293B0A202020207D0A202020205F706362203D204E554C4C3B0A20207D0A236966204153594E435F5443505F53534C5F454E41424C45440A20206966285F73736C5F637478297B0A2020202073736C5F6374785F66726565285F73736C5F637478293B0A202020205F73736C5F637478203D204E554C4C3B0A202020206966285F70656E64696E67297B0A2020202020207374727563742070656E64696E675F706362202A20703B0A2020202020207768696C65285F70656E64696E67297B0A202020202020202070203D205F70656E64696E673B0A20202020202020205F70656E64696E67203D205F70656E64696E672D3E6E6578743B0A2020202020202020696628702D3E7062297B0A20202020202020202020706275665F6672656528702D3E7062293B0A20202020202020207D0A2020202020202020667265652870293B0A2020202020207D0A202020207D0A20207D0A23656E6469660A7D0A0A766F6964204173796E635365727665723A3A7365744E6F44656C617928626F6F6C206E6F64656C6179297B0A20205F6E6F44656C6179203D206E6F64656C61793B0A7D0A0A626F6F6C204173796E635365727665723A3A6765744E6F44656C617928297B0A202072657475726E205F6E6F44656C61793B0A7D0A0A75696E74385F74204173796E635365727665723A3A73746174757328297B0A202069662028215F706362290A2020202072657475726E20303B0A202072657475726E205F7063622D3E73746174653B0A7D0A0A6572725F74204173796E635365727665723A3A5F616363657074287463705F7063622A207063622C206572725F7420657272297B0A20206966285F636F6E6E6563745F6362297B0A236966204153594E435F5443505F53534C5F454E41424C45440A20202020696620285F6E6F44656C6179207C7C205F73736C5F637478290A23656C73650A20202020696620285F6E6F44656C6179290A23656E6469660A2020202020207463705F6E61676C655F64697361626C6528706362293B0A20202020656C73650A2020202020207463705F6E61676C655F656E61626C6528706362293B0A0A0A236966204153594E435F5443505F53534C5F454E41424C45440A202020206966285F73736C5F637478297B0A2020202020206966287463705F73736C5F6861735F636C69656E742829207C7C205F70656E64696E67297B0A20202020202020207374727563742070656E64696E675F706362202A206E65775F6974656D203D20287374727563742070656E64696E675F7063622A296D616C6C6F632873697A656F66287374727563742070656E64696E675F70636229293B0A2020202020202020696628216E65775F6974656D297B0A202020202020202020204153594E435F5443505F44454255472822232323206D616C6C6F63206E65772070656E64696E67206661696C6564215C6E22293B0A202020202020202020206966287463705F636C6F7365287063622920213D204552525F4F4B297B0A2020202020202020202020207463705F61626F727428706362293B0A202020202020202020207D0A2020202020202020202072657475726E204552525F4F4B3B0A20202020202020207D0A20202020202020204153594E435F5443505F444542554728222323232070757420746F20776169743A2025645C6E222C205F636C69656E74735F77616974696E67293B0A20202020202020206E65775F6974656D2D3E706362203D207063623B0A20202020202020206E65775F6974656D2D3E7062203D204E554C4C3B0A20202020202020206E65775F6974656D2D3E6E657874203D204E554C4C3B0A20202020202020207463705F7365747072696F285F7063622C205443505F5052494F5F4D494E293B0A20202020202020207463705F617267287063622C2074686973293B0A20202020202020207463705F706F6C6C287063622C20265F735F706F6C6C2C2031293B0A20202020202020207463705F72656376287063622C20265F735F72656376293B0A0A20202020202020206966285F70656E64696E67203D3D204E554C4C297B0A202020202020202020205F70656E64696E67203D206E65775F6974656D3B0A20202020202020207D20656C7365207B0A202020202020202020207374727563742070656E64696E675F706362202A2070203D205F70656E64696E673B0A202020202020202020207768696C6528702D3E6E65787420213D204E554C4C290A20202020202020202020202070203D20702D3E6E6578743B0A20202020202020202020702D3E6E657874203D206E65775F6974656D3B0A20202020202020207D0A2020202020207D20656C7365207B0A20202020202020204173796E63436C69656E74202A63203D206E6577204173796E63436C69656E74287063622C205F73736C5F637478293B0A202020202020202069662863297B0A202020202020202020202020632D3E6F6E436F6E6E656374285B746869735D28766F6964202A206172672C204173796E63436C69656E74202A63297B0A20202020202020202020202020205F636F6E6E6563745F6362285F636F6E6E6563745F63625F6172672C2063293B0A2020202020202020202020207D2C2074686973293B0A20202020202020207D0A2020202020207D0A20202020202072657475726E204552525F4F4B3B0A202020207D20656C7365207B0A2020202020204173796E63436C69656E74202A63203D206E6577204173796E63436C69656E74287063622C204E554C4C293B0A23656C73650A2020202020204173796E63436C69656E74202A63203D206E6577204173796E63436C69656E7428706362293B0A23656E6469660A20202020202069662863297B0A20202020202020205F636F6E6E6563745F6362285F636F6E6E6563745F63625F6172672C2063293B0A202020202020202072657475726E204552525F4F4B3B0A2020202020207D0A236966204153594E435F5443505F53534C5F454E41424C45440A202020207D0A23656E6469660A20207D0A20206966287463705F636C6F7365287063622920213D204552525F4F4B297B0A202020207463705F61626F727428706362293B0A20207D0A202072657475726E204552525F4F4B3B0A7D0A0A20206572725F74204173796E635365727665723A3A5F735F61636365707428766F6964202A6172672C207463705F7063622A207063622C206572725F7420657272297B0A2020202072657475726E207265696E746572707265745F636173743C4173796E635365727665722A3E28617267292D3E5F616363657074287063622C20657272293B0A20207D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A6572725F74204173796E635365727665723A3A5F706F6C6C287463705F7063622A20706362297B0A2020696628217463705F73736C5F6861735F636C69656E742829202626205F70656E64696E67297B0A202020207374727563742070656E64696E675F706362202A2070203D205F70656E64696E673B0A20202020696628702D3E706362203D3D20706362297B0A2020202020205F70656E64696E67203D205F70656E64696E672D3E6E6578743B0A202020207D20656C7365207B0A2020202020207768696C6528702D3E6E65787420262620702D3E6E6578742D3E70636220213D20706362292070203D20702D3E6E6578743B0A20202020202069662821702D3E6E657874292072657475726E20303B0A2020202020207374727563742070656E64696E675F706362202A2062203D20702D3E6E6578743B0A202020202020702D3E6E657874203D20622D3E6E6578743B0A20202020202070203D20623B0A202020207D0A202020204153594E435F5443505F444542554728222323232072656D6F76652066726F6D20776169743A2025645C6E222C205F636C69656E74735F77616974696E67293B0A202020204173796E63436C69656E74202A63203D206E6577204173796E63436C69656E74287063622C205F73736C5F637478293B0A2020202069662863297B0A202020202020632D3E6F6E436F6E6E656374285B746869735D28766F6964202A206172672C204173796E63436C69656E74202A63297B0A20202020202020205F636F6E6E6563745F6362285F636F6E6E6563745F63625F6172672C2063293B0A2020202020207D2C2074686973293B0A202020202020696628702D3E7062290A2020202020202020632D3E5F72656376287063622C20702D3E70622C2030293B0A202020207D0A20202020667265652870293B0A20207D0A202072657475726E204552525F4F4B3B0A7D0A0A6572725F74204173796E635365727665723A3A5F7265637628737472756374207463705F706362202A7063622C207374727563742070627566202A70622C206572725F7420657272297B0A2020696628215F70656E64696E67290A2020202072657475726E204552525F4F4B3B0A0A20207374727563742070656E64696E675F706362202A20703B0A0A2020696628217062297B0A202020204153594E435F5443505F4445425547282223232320636C6F73652066726F6D20776169743A2025645C6E222C205F636C69656E74735F77616974696E67293B0A2020202070203D205F70656E64696E673B0A20202020696628702D3E706362203D3D20706362297B0A2020202020205F70656E64696E67203D205F70656E64696E672D3E6E6578743B0A202020207D20656C7365207B0A2020202020207768696C6528702D3E6E65787420262620702D3E6E6578742D3E70636220213D20706362292070203D20702D3E6E6578743B0A20202020202069662821702D3E6E657874292072657475726E20303B0A2020202020207374727563742070656E64696E675F706362202A2062203D20702D3E6E6578743B0A202020202020702D3E6E657874203D20622D3E6E6578743B0A20202020202070203D20623B0A202020207D0A20202020696628702D3E7062297B0A202020202020706275665F6672656528702D3E7062293B0A202020207D0A20202020667265652870293B0A202020207463705F636C6F736528706362293B0A202020207463705F61626F727428706362293B0A20207D20656C7365207B0A202020204153594E435F5443505F444542554728222323232077616974205F726563763A2025752025645C6E222C2070622D3E746F745F6C656E2C205F636C69656E74735F77616974696E67293B0A2020202070203D205F70656E64696E673B0A202020207768696C65287020262620702D3E70636220213D20706362290A20202020202070203D20702D3E6E6578743B0A2020202069662870297B0A202020202020696628702D3E7062297B0A2020202020202020706275665F636861696E28702D3E70622C207062293B0A2020202020207D20656C7365207B0A2020202020202020702D3E7062203D2070623B0A2020202020207D0A202020207D0A20207D0A202072657475726E204552525F4F4B3B0A7D0A0A696E74204173796E635365727665723A3A5F6365727428636F6E73742063686172202A66696C656E616D652C2075696E74385F74202A2A627566297B0A20206966285F66696C655F6362297B0A2020202072657475726E205F66696C655F6362285F66696C655F63625F6172672C2066696C656E616D652C20627566293B0A20207D0A20202A627566203D20303B0A202072657475726E20303B0A7D0A0A696E74204173796E635365727665723A3A5F735F6365727428766F6964202A6172672C20636F6E73742063686172202A66696C656E616D652C2075696E74385F74202A2A627566297B0A202072657475726E207265696E746572707265745F636173743C4173796E635365727665722A3E28617267292D3E5F636572742866696C656E616D652C20627566293B0A7D0A0A6572725F74204173796E635365727665723A3A5F735F706F6C6C28766F6964202A6172672C20737472756374207463705F706362202A706362297B0A202072657475726E207265696E746572707265745F636173743C4173796E635365727665722A3E28617267292D3E5F706F6C6C28706362293B0A7D0A0A6572725F74204173796E635365727665723A3A5F735F7265637628766F6964202A6172672C20737472756374207463705F706362202A7063622C207374727563742070627566202A70622C206572725F7420657272297B0A202072657475726E207265696E746572707265745F636173743C4173796E635365727665722A3E28617267292D3E5F72656376287063622C2070622C20657272293B0A7D0A23656E6469660A .cpp ESPAsyncTCP 2F2A0A20204173796E6368726F6E6F757320544350206C69627261727920666F7220457370726573736966204D4355730A0A2020436F707972696768742028632920323031362048726973746F20476F63686B6F762E20416C6C207269676874732072657365727665642E0A2020546869732066696C652069732070617274206F6620746865206573703832363620636F726520666F722041726475696E6F20656E7669726F6E6D656E742E0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A0A2369666E646566204153594E435443505F485F0A23646566696E65204153594E435443505F485F0A0A23696E636C756465203C6173796E635F636F6E6669672E683E0A23696E636C75646520224950416464726573732E68220A23696E636C756465203C66756E6374696F6E616C3E0A0A65787465726E20224322207B0A2020202023696E636C75646520226C7769702F696E69742E68220A2020202023696E636C75646520226C7769702F6572722E68220A2020202023696E636C75646520226C7769702F706275662E68220A7D3B0A0A636C617373204173796E63436C69656E743B0A0A23646566696E65204153594E435F4D41585F41434B5F54494D4520353030300A23646566696E65204153594E435F57524954455F464C41475F434F50592030783031202F2F77696C6C20616C6C6F63617465206E65772062756666657220746F20686F6C64207468652064617461207768696C652073656E64696E672028656C73652077696C6C20686F6C64207265666572656E636520746F20746865206461746120676976656E290A23646566696E65204153594E435F57524954455F464C41475F4D4F52452030783032202F2F77696C6C206E6F742073656E642050534820666C61672C206D65616E696E6720746861742074686572652073686F756C64206265206D6F7265206461746120746F2062652073656E74206265666F726520746865206170706C69636174696F6E2073686F756C642072656163742E0A0A737472756374207463705F7063623B0A7374727563742069705F616464723B0A236966204153594E435F5443505F53534C5F454E41424C45440A7374727563742053534C5F3B0A74797065646566207374727563742053534C5F2053534C3B0A7374727563742053534C5F4354585F3B0A74797065646566207374727563742053534C5F4354585F2053534C5F4354583B0A23656E6469660A0A74797065646566207374643A3A66756E6374696F6E3C766F696428766F69642A2C204173796E63436C69656E742A293E204163436F6E6E65637448616E646C65723B0A74797065646566207374643A3A66756E6374696F6E3C766F696428766F69642A2C204173796E63436C69656E742A2C2073697A655F74206C656E2C2075696E7433325F742074696D65293E20416341636B48616E646C65723B0A74797065646566207374643A3A66756E6374696F6E3C766F696428766F69642A2C204173796E63436C69656E742A2C20696E74385F74206572726F72293E2041634572726F7248616E646C65723B0A74797065646566207374643A3A66756E6374696F6E3C766F696428766F69642A2C204173796E63436C69656E742A2C20766F6964202A646174612C2073697A655F74206C656E293E2041634461746148616E646C65723B0A74797065646566207374643A3A66756E6374696F6E3C766F696428766F69642A2C204173796E63436C69656E742A2C207374727563742070627566202A7062293E2041635061636B657448616E646C65723B0A74797065646566207374643A3A66756E6374696F6E3C766F696428766F69642A2C204173796E63436C69656E742A2C2075696E7433325F742074696D65293E20416354696D656F757448616E646C65723B0A0A636C617373204173796E63436C69656E74207B0A202070726F7465637465643A0A20202020667269656E6420636C617373204173796E635443506275666665723B0A202020207463705F7063622A205F7063623B0A202020204163436F6E6E65637448616E646C6572205F636F6E6E6563745F63623B0A20202020766F69642A205F636F6E6E6563745F63625F6172673B0A202020204163436F6E6E65637448616E646C6572205F646973636172645F63623B0A20202020766F69642A205F646973636172645F63625F6172673B0A20202020416341636B48616E646C6572205F73656E745F63623B0A20202020766F69642A205F73656E745F63625F6172673B0A2020202041634572726F7248616E646C6572205F6572726F725F63623B0A20202020766F69642A205F6572726F725F63625F6172673B0A2020202041634461746148616E646C6572205F726563765F63623B0A20202020766F69642A205F726563765F63625F6172673B0A2020202041635061636B657448616E646C6572205F70625F63623B0A20202020766F69642A205F70625F63625F6172673B0A20202020416354696D656F757448616E646C6572205F74696D656F75745F63623B0A20202020766F69642A205F74696D656F75745F63625F6172673B0A202020204163436F6E6E65637448616E646C6572205F706F6C6C5F63623B0A20202020766F69642A205F706F6C6C5F63625F6172673B0A20202020626F6F6C205F7063625F627573793B0A236966204153594E435F5443505F53534C5F454E41424C45440A20202020626F6F6C205F7063625F7365637572653B0A20202020626F6F6C205F68616E647368616B655F646F6E653B0A23656E6469660A2020202075696E7433325F74205F7063625F73656E745F61743B0A20202020626F6F6C205F636C6F73655F7063623B0A20202020626F6F6C205F61636B5F7063623B0A2020202075696E7433325F74205F74785F756E61636B65645F6C656E3B0A2020202075696E7433325F74205F74785F61636B65645F6C656E3B0A2020202075696E7433325F74205F74785F756E73656E745F6C656E3B0A2020202075696E7433325F74205F72785F61636B5F6C656E3B0A2020202075696E7433325F74205F72785F6C6173745F7061636B65743B0A2020202075696E7433325F74205F72785F73696E63655F74696D656F75743B0A2020202075696E7433325F74205F61636B5F74696D656F75743B0A2020202075696E7431365F74205F636F6E6E6563745F706F72743B0A0A20202020696E74385F74205F636C6F736528293B0A202020206572725F74205F636F6E6E656374656428766F69642A207063622C206572725F7420657272293B0A20202020766F6964205F6572726F72286572725F7420657272293B0A236966204153594E435F5443505F53534C5F454E41424C45440A20202020766F6964205F73736C5F6572726F7228696E74385F7420657272293B0A23656E6469660A202020206572725F74205F706F6C6C287463705F7063622A20706362293B0A202020206572725F74205F73656E74287463705F7063622A207063622C2075696E7431365F74206C656E293B0A236966204C5749505F56455253494F4E5F4D414A4F52203D3D20310A20202020766F6964205F646E735F666F756E64287374727563742069705F61646472202A697061646472293B0A23656C73650A20202020766F6964205F646E735F666F756E6428636F6E73742069705F61646472202A697061646472293B0A23656E6469660A20202020737461746963206572725F74205F735F706F6C6C28766F6964202A6172672C20737472756374207463705F706362202A74706362293B0A20202020737461746963206572725F74205F735F7265637628766F6964202A6172672C20737472756374207463705F706362202A747063622C207374727563742070627566202A70622C206572725F7420657272293B0A2020202073746174696320766F6964205F735F6572726F7228766F6964202A6172672C206572725F7420657272293B0A20202020737461746963206572725F74205F735F73656E7428766F6964202A6172672C20737472756374207463705F706362202A747063622C2075696E7431365F74206C656E293B0A20202020737461746963206572725F74205F735F636F6E6E656374656428766F69642A206172672C20766F69642A20747063622C206572725F7420657272293B0A236966204C5749505F56455253494F4E5F4D414A4F52203D3D20310A2020202073746174696320766F6964205F735F646E735F666F756E6428636F6E73742063686172202A6E616D652C207374727563742069705F61646472202A6970616464722C20766F6964202A617267293B0A23656C73650A2020202073746174696320766F6964205F735F646E735F666F756E6428636F6E73742063686172202A6E616D652C20636F6E73742069705F61646472202A6970616464722C20766F6964202A617267293B0A23656E6469660A236966204153594E435F5443505F53534C5F454E41424C45440A2020202073746174696320766F6964205F735F6461746128766F6964202A6172672C20737472756374207463705F706362202A7463702C2075696E74385F74202A20646174612C2073697A655F74206C656E293B0A2020202073746174696320766F6964205F735F68616E647368616B6528766F6964202A6172672C20737472756374207463705F706362202A7463702C2053534C202A73736C293B0A2020202073746174696320766F6964205F735F73736C5F6572726F7228766F6964202A6172672C20737472756374207463705F706362202A7463702C20696E74385F7420657272293B0A23656E6469660A0A20207075626C69633A0A202020204173796E63436C69656E742A20707265763B0A202020204173796E63436C69656E742A206E6578743B0A0A236966204153594E435F5443505F53534C5F454E41424C45440A202020204173796E63436C69656E74287463705F7063622A20706362203D20302C2053534C5F435458202A2073736C5F637478203D204E554C4C293B0A23656C73650A202020204173796E63436C69656E74287463705F7063622A20706362203D2030293B0A23656E6469660A202020207E4173796E63436C69656E7428293B0A0A202020204173796E63436C69656E742026206F70657261746F723D28636F6E7374204173796E63436C69656E7420266F74686572293B0A202020204173796E63436C69656E742026206F70657261746F722B3D28636F6E7374204173796E63436C69656E7420266F74686572293B0A0A20202020626F6F6C206F70657261746F723D3D28636F6E7374204173796E63436C69656E7420266F74686572293B0A0A20202020626F6F6C206F70657261746F72213D28636F6E7374204173796E63436C69656E7420266F7468657229207B0A20202020202072657475726E2021282A74686973203D3D206F74686572293B0A202020207D0A236966204153594E435F5443505F53534C5F454E41424C45440A20202020626F6F6C20636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F72742C20626F6F6C207365637572653D66616C7365293B0A20202020626F6F6C20636F6E6E65637428636F6E737420636861722A20686F73742C2075696E7431365F7420706F72742C20626F6F6C207365637572653D66616C7365293B0A23656C73650A20202020626F6F6C20636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F7274293B0A20202020626F6F6C20636F6E6E65637428636F6E737420636861722A20686F73742C2075696E7431365F7420706F7274293B0A23656E6469660A20202020766F696420636C6F736528626F6F6C206E6F77203D2066616C7365293B0A20202020766F69642073746F7028293B0A20202020696E74385F742061626F727428293B0A20202020626F6F6C206672656528293B0A0A20202020626F6F6C2063616E53656E6428293B2F2F61636B206973206E6F742070656E64696E670A2020202073697A655F7420737061636528293B0A2020202073697A655F742061646428636F6E737420636861722A20646174612C2073697A655F742073697A652C2075696E74385F7420617069666C6167733D30293B2F2F61646420666F722073656E64696E670A20202020626F6F6C2073656E6428293B2F2F73656E6420616C6C2064617461206164646564207769746820746865206D6574686F642061626F76650A2020202073697A655F742061636B2873697A655F74206C656E293B202F2F61636B2064617461207468617420796F752068617665206E6F742061636B6564207573696E6720746865206D6574686F642062656C6F770A20202020766F69642061636B4C6174657228297B205F61636B5F706362203D2066616C73653B207D202F2F77696C6C206E6F742061636B207468652063757272656E74207061636B65742E2043616C6C2066726F6D206F6E446174610A0A236966204153594E435F5443505F53534C5F454E41424C45440A2020202053534C202A67657453534C28293B0A23656E6469660A0A2020202073697A655F7420777269746528636F6E737420636861722A2064617461293B0A2020202073697A655F7420777269746528636F6E737420636861722A20646174612C2073697A655F742073697A652C2075696E74385F7420617069666C6167733D30293B202F2F6F6E6C79207768656E2063616E53656E642829203D3D20747275650A0A2020202075696E74385F7420737461746528293B0A20202020626F6F6C20636F6E6E656374696E6728293B0A20202020626F6F6C20636F6E6E656374656428293B0A20202020626F6F6C20646973636F6E6E656374696E6728293B0A20202020626F6F6C20646973636F6E6E656374656428293B0A20202020626F6F6C206672656561626C6528293B2F2F646973636F6E6E6563746564206F7220646973636F6E6E656374696E670A0A2020202075696E7431365F74206765744D737328293B0A2020202075696E7433325F7420676574527854696D656F757428293B0A20202020766F696420736574527854696D656F75742875696E7433325F742074696D656F7574293B2F2F6E6F20525820646174612074696D656F757420666F722074686520636F6E6E656374696F6E20696E207365636F6E64730A2020202075696E7433325F742067657441636B54696D656F757428293B0A20202020766F69642073657441636B54696D656F75742875696E7433325F742074696D656F7574293B2F2F6E6F2041434B2074696D656F757420666F7220746865206C6173742073656E74207061636B657420696E206D696C6C697365636F6E64730A20202020766F6964207365744E6F44656C617928626F6F6C206E6F64656C6179293B0A20202020626F6F6C206765744E6F44656C617928293B0A2020202075696E7433325F742067657452656D6F74654164647265737328293B0A2020202075696E7431365F742067657452656D6F7465506F727428293B0A2020202075696E7433325F74206765744C6F63616C4164647265737328293B0A2020202075696E7431365F74206765744C6F63616C506F727428293B0A0A202020204950416464726573732072656D6F7465495028293B0A2020202075696E7431365F74202072656D6F7465506F727428293B0A20202020495041646472657373206C6F63616C495028293B0A2020202075696E7431365F7420206C6F63616C506F727428293B0A0A20202020766F6964206F6E436F6E6E656374284163436F6E6E65637448616E646C65722063622C20766F69642A20617267203D2030293B20202020202F2F6F6E207375636365737366756C20636F6E6E6563740A20202020766F6964206F6E446973636F6E6E656374284163436F6E6E65637448616E646C65722063622C20766F69642A20617267203D2030293B20202F2F646973636F6E6E65637465640A20202020766F6964206F6E41636B28416341636B48616E646C65722063622C20766F69642A20617267203D2030293B202020202020202020202020202F2F61636B2072656365697665640A20202020766F6964206F6E4572726F722841634572726F7248616E646C65722063622C20766F69642A20617267203D2030293B2020202020202020202F2F756E7375636365737366756C20636F6E6E656374206F72206572726F720A20202020766F6964206F6E446174612841634461746148616E646C65722063622C20766F69642A20617267203D2030293B20202020202020202020202F2F64617461207265636569766564202863616C6C6564206966206F6E5061636B6574206973206E6F742075736564290A20202020766F6964206F6E5061636B65742841635061636B657448616E646C65722063622C20766F69642A20617267203D2030293B202020202020202F2F646174612072656365697665640A20202020766F6964206F6E54696D656F757428416354696D656F757448616E646C65722063622C20766F69642A20617267203D2030293B20202020202F2F61636B2074696D656F75740A20202020766F6964206F6E506F6C6C284163436F6E6E65637448616E646C65722063622C20766F69642A20617267203D2030293B20202020202020202F2F6576657279203132356D73207768656E20636F6E6E65637465640A0A20202020766F69642061636B5061636B6574287374727563742070627566202A207062293B0A0A20202020636F6E73742063686172202A206572726F72546F537472696E6728696E74385F74206572726F72293B0A20202020636F6E73742063686172202A207374617465546F537472696E6728293B0A0A202020206572725F74205F72656376287463705F7063622A207063622C20706275662A2070622C206572725F7420657272293B0A7D3B0A0A236966204153594E435F5443505F53534C5F454E41424C45440A74797065646566207374643A3A66756E6374696F6E3C696E7428766F69642A206172672C20636F6E73742063686172202A66696C656E616D652C2075696E74385F74202A2A627566293E20416353536C46696C6548616E646C65723B0A7374727563742070656E64696E675F7063623B0A23656E6469660A0A636C617373204173796E63536572766572207B0A202070726F7465637465643A0A2020202075696E7431365F74205F706F72743B0A20202020495041646472657373205F616464723B0A20202020626F6F6C205F6E6F44656C61793B0A202020207463705F7063622A205F7063623B0A202020204163436F6E6E65637448616E646C6572205F636F6E6E6563745F63623B0A20202020766F69642A205F636F6E6E6563745F63625F6172673B0A236966204153594E435F5443505F53534C5F454E41424C45440A202020207374727563742070656E64696E675F706362202A205F70656E64696E673B0A2020202053534C5F435458202A205F73736C5F6374783B0A20202020416353536C46696C6548616E646C6572205F66696C655F63623B0A20202020766F69642A205F66696C655F63625F6172673B0A23656E6469660A0A20207075626C69633A0A0A202020204173796E635365727665722849504164647265737320616464722C2075696E7431365F7420706F7274293B0A202020204173796E635365727665722875696E7431365F7420706F7274293B0A202020207E4173796E6353657276657228293B0A20202020766F6964206F6E436C69656E74284163436F6E6E65637448616E646C65722063622C20766F69642A20617267293B0A236966204153594E435F5443505F53534C5F454E41424C45440A20202020766F6964206F6E53736C46696C655265717565737428416353536C46696C6548616E646C65722063622C20766F69642A20617267293B0A20202020766F696420626567696E53656375726528636F6E73742063686172202A636572742C20636F6E73742063686172202A707269766174655F6B65795F66696C652C20636F6E73742063686172202A70617373776F7264293B0A23656E6469660A20202020766F696420626567696E28293B0A20202020766F696420656E6428293B0A20202020766F6964207365744E6F44656C617928626F6F6C206E6F64656C6179293B0A20202020626F6F6C206765744E6F44656C617928293B0A2020202075696E74385F742073746174757328293B0A0A202070726F7465637465643A0A202020206572725F74205F616363657074287463705F7063622A206E65777063622C206572725F7420657272293B0A20202020737461746963206572725F74205F735F61636365707428766F6964202A6172672C207463705F7063622A206E65777063622C206572725F7420657272293B0A236966204153594E435F5443505F53534C5F454E41424C45440A20202020696E74205F6365727428636F6E73742063686172202A66696C656E616D652C2075696E74385F74202A2A627566293B0A202020206572725F74205F706F6C6C287463705F7063622A20706362293B0A202020206572725F74205F72656376287463705F706362202A7063622C207374727563742070627566202A70622C206572725F7420657272293B0A2020202073746174696320696E74205F735F6365727428766F6964202A6172672C20636F6E73742063686172202A66696C656E616D652C2075696E74385F74202A2A627566293B0A20202020737461746963206572725F74205F735F706F6C6C28766F6964202A6172672C20737472756374207463705F706362202A74706362293B0A20202020737461746963206572725F74205F735F7265637628766F6964202A6172672C20737472756374207463705F706362202A747063622C207374727563742070627566202A70622C206572725F7420657272293B0A23656E6469660A7D3B0A0A0A23656E646966202F2A204153594E435443505F485F202A2F0A .h ESPAsyncTCPbuffer 2F2A2A0D0A202A204066696C6520204553504173796E635443506275666665722E6370700D0A202A204064617465202032322E30312E323031360D0A202A2040617574686F72204D61726B757320536174746C65720D0A202A0D0A202A20436F70797269676874202863292032303135204D61726B757320536174746C65722E20416C6C207269676874732072657365727665642E0D0A202A20546869732066696C652069732070617274206F6620746865204173796E762054435020666F72204553502E0D0A202A0D0A202A2054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720D0A202A206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630D0A202A204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720D0A202A2076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0D0A202A0D0A202A2054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0D0A202A2062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660D0A202A204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550D0A202A204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0D0A202A0D0A202A20596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630D0A202A204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650D0A202A20466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410D0A202A0D0A202A2F0D0A0D0A0D0A23696E636C756465203C41726475696E6F2E683E0D0A23696E636C756465203C64656275672E683E0D0A0D0A23696E636C75646520224553504173796E635443506275666665722E68220D0A0D0A0D0A4173796E635443506275666665723A3A4173796E63544350627566666572284173796E63436C69656E742A20636C69656E7429207B0D0A20202020696628636C69656E74203D3D204E554C4C29207B0D0A202020202020202044454255475F4153594E435F54435028225B412D5443505D20636C69656E74206973206E756C6C2121215C6E22293B0D0A202020202020202070616E696328293B0D0A202020207D0D0A0D0A202020205F636C69656E74203D20636C69656E743B0D0A202020205F54586275666665725772697465203D206E657720636275662831343630293B0D0A202020205F545862756666657252656164203D205F545862756666657257726974653B0D0A202020205F5258627566666572203D206E6577206362756628313030293B0D0A202020205F52586D6F6465203D204154425F52585F4D4F44455F465245453B0D0A202020205F727853697A65203D20303B0D0A202020205F72785465726D696E61746F72203D20307830303B0D0A202020205F7278526561644279746573507472203D204E554C4C3B0D0A202020205F727852656164537472696E67507472203D204E554C4C3B0D0A202020205F6362446973636F6E6E656374203D204E554C4C3B0D0A0D0A202020205F63625258203D204E554C4C3B0D0A202020205F6362446F6E65203D204E554C4C3B0D0A202020205F61747461636843616C6C6261636B7328293B0D0A7D0D0A0D0A4173796E635443506275666665723A3A7E4173796E635443506275666665722829207B0D0A202020206966285F636C69656E7429207B0D0A20202020202020205F636C69656E742D3E636C6F736528293B0D0A202020207D0D0A0D0A202020206966285F525862756666657229207B0D0A202020202020202064656C657465205F52586275666665723B0D0A20202020202020205F5258627566666572203D204E554C4C3B0D0A202020207D0D0A0D0A202020206966285F5458627566666572577269746529207B0D0A20202020202020202F2F2077696C6C2062652064656C6574656420696E205F54586275666665725265616420636861696E0D0A20202020202020205F54586275666665725772697465203D204E554C4C3B0D0A202020207D0D0A0D0A202020206966285F54586275666665725265616429207B0D0A202020202020202063627566202A206E657874203D205F5458627566666572526561642D3E6E6578743B0D0A202020202020202064656C657465205F5458627566666572526561643B0D0A20202020202020207768696C65286E65787420213D204E554C4C29207B0D0A2020202020202020202020205F545862756666657252656164203D206E6578743B0D0A2020202020202020202020206E657874203D205F5458627566666572526561642D3E6E6578743B0D0A20202020202020202020202064656C657465205F5458627566666572526561643B0D0A20202020202020207D0D0A20202020202020205F545862756666657252656164203D204E554C4C3B0D0A202020207D0D0A7D0D0A0D0A73697A655F74204173796E635443506275666665723A3A777269746528537472696E672026206461746129207B0D0A2020202072657475726E20777269746528646174612E635F73747228292C20646174612E6C656E6774682829293B0D0A7D0D0A0D0A73697A655F74204173796E635443506275666665723A3A77726974652875696E74385F74206461746129207B0D0A2020202072657475726E2077726974652826646174612C2031293B0D0A7D0D0A0D0A73697A655F74204173796E635443506275666665723A3A777269746528636F6E737420636861722A206461746129207B0D0A2020202072657475726E2077726974652828636F6E73742075696E74385F74202A2920646174612C207374726C656E286461746129293B0D0A7D0D0A0D0A73697A655F74204173796E635443506275666665723A3A777269746528636F6E73742063686172202A646174612C2073697A655F74206C656E29207B0D0A2020202072657475726E2077726974652828636F6E73742075696E74385F74202A2920646174612C206C656E293B0D0A7D0D0A0D0A2F2A2A0D0A202A207772697465206461746120696E20746F2062756666657220616E642074727920746F2073656E642074686520646174610D0A202A2040706172616D20646174610D0A202A2040706172616D206C656E0D0A202A204072657475726E0D0A202A2F0D0A73697A655F74204173796E635443506275666665723A3A777269746528636F6E73742075696E74385F74202A646174612C2073697A655F74206C656E29207B0D0A202020206966285F54586275666665725772697465203D3D204E554C4C207C7C205F636C69656E74203D3D204E554C4C207C7C20215F636C69656E742D3E636F6E6E65637465642829207C7C2064617461203D3D204E554C4C207C7C206C656E203D3D203029207B0D0A202020202020202072657475726E20303B0D0A202020207D0D0A0D0A2020202073697A655F742062797465734C656674203D206C656E3B0D0A202020207768696C652862797465734C65667429207B0D0A202020202020202073697A655F742077203D205F545862756666657257726974652D3E77726974652828636F6E737420636861722A2920646174612C2062797465734C656674293B0D0A202020202020202062797465734C656674202D3D20773B0D0A202020202020202064617461202B3D20773B0D0A20202020202020205F73656E6442756666657228293B0D0A0D0A20202020202020202F2F20616464206E6577206275666665722073696E63652077652068617665206D6F726520646174610D0A20202020202020206966285F545862756666657257726974652D3E66756C6C28292026262062797465734C656674203E203029207B0D0A0D0A2020202020202020202020202F2F20746F206C6573732072616D2121210D0A2020202020202020202020206966284553502E67657446726565486561702829203C203430393629207B0D0A2020202020202020202020202020202044454255475F4153594E435F54435028225B412D5443505D2072756E206F7574206F6620486561702063616E206E6F742073656E6420616C6C2044617461215C6E22293B0D0A2020202020202020202020202020202072657475726E20286C656E202D2062797465734C656674293B0D0A2020202020202020202020207D0D0A0D0A20202020202020202020202063627566202A206E657874203D206E657720636275662831343630293B0D0A0D0A2020202020202020202020206966286E657874203D3D204E554C4C29207B0D0A2020202020202020202020202020202044454255475F4153594E435F54435028225B412D5443505D2072756E206F7574206F662048656170215C6E22293B0D0A2020202020202020202020202020202070616E696328293B0D0A2020202020202020202020207D20656C7365207B0D0A2020202020202020202020202020202044454255475F4153594E435F54435028225B412D5443505D206E657720636275665C6E22293B0D0A2020202020202020202020207D0D0A0D0A2020202020202020202020202F2F20616464206E65772062756666657220746F20636861696E202863757272656E742063627566290D0A2020202020202020202020205F545862756666657257726974652D3E6E657874203D206E6578743B0D0A0D0A2020202020202020202020202F2F206D6F76652070747220666F72206E65787420646174610D0A2020202020202020202020205F54586275666665725772697465203D206E6578743B0D0A20202020202020207D0D0A202020207D0D0A0D0A2020202072657475726E206C656E3B0D0A0D0A7D0D0A0D0A2F2A2A0D0A202A207761697420756E74696C20616C6C2064617461206861732073656E64206F75740D0A202A2F0D0A766F6964204173796E635443506275666665723A3A666C7573682829207B0D0A202020207768696C6528215F545862756666657257726974652D3E656D707479282929207B0D0A20202020202020207768696C6528215F636C69656E742D3E63616E53656E64282929207B0D0A20202020202020202020202064656C61792830293B0D0A20202020202020207D0D0A20202020202020205F73656E6442756666657228293B0D0A202020207D0D0A7D0D0A0D0A766F6964204173796E635443506275666665723A3A6E6F43616C6C6261636B2829207B0D0A202020205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A7D0D0A0D0A766F6964204173796E635443506275666665723A3A72656164537472696E67556E74696C2863686172207465726D696E61746F722C20537472696E67202A207374722C204173796E63544350627566666572446F6E65436220646F6E6529207B0D0A202020206966285F636C69656E74203D3D204E554C4C29207B0D0A202020202020202072657475726E3B0D0A202020207D0D0A2020202044454255475F4153594E435F54435028225B412D5443505D2072656164537472696E67556E74696C207465726D696E61746F723A20253032585C6E222C207465726D696E61746F72293B0D0A202020205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A202020205F6362446F6E65203D20646F6E653B0D0A202020205F727852656164537472696E67507472203D207374723B0D0A202020205F72785465726D696E61746F72203D207465726D696E61746F723B0D0A202020205F727853697A65203D20303B0D0A202020205F52586D6F6465203D204154425F52585F4D4F44455F5445524D494E41544F525F535452494E473B0D0A7D0D0A0D0A2F2A0D0A20766F6964204173796E635443506275666665723A3A726561644279746573556E74696C2863686172207465726D696E61746F722C2063686172202A6275666665722C2073697A655F74206C656E6774682C204173796E63544350627566666572446F6E65436220646F6E6529207B0D0A205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A205F6362446F6E65203D20646F6E653B0D0A205F7278526561644279746573507472203D202875696E74385F74202A29206275666665723B0D0A205F72785465726D696E61746F72203D207465726D696E61746F723B0D0A205F727853697A65203D206C656E6774683B0D0A205F52586D6F6465203D204154425F52585F4D4F44455F5445524D494E41544F523B0D0A205F68616E646C655278427566666572284E554C4C2C2030293B0D0A207D0D0A0D0A20766F6964204173796E635443506275666665723A3A726561644279746573556E74696C2863686172207465726D696E61746F722C2075696E74385F74202A6275666665722C2073697A655F74206C656E6774682C204173796E63544350627566666572446F6E65436220646F6E6529207B0D0A20726561644279746573556E74696C287465726D696E61746F722C202863686172202A29206275666665722C206C656E6774682C20646F6E65293B0D0A207D0D0A202A2F0D0A0D0A766F6964204173796E635443506275666665723A3A7265616442797465732863686172202A6275666665722C2073697A655F74206C656E6774682C204173796E63544350627566666572446F6E65436220646F6E6529207B0D0A202020206966285F636C69656E74203D3D204E554C4C29207B0D0A202020202020202072657475726E3B0D0A202020207D0D0A2020202044454255475F4153594E435F54435028225B412D5443505D20726561644279746573206C656E6774683A2025645C6E222C206C656E677468293B0D0A202020205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A202020205F6362446F6E65203D20646F6E653B0D0A202020205F7278526561644279746573507472203D202875696E74385F74202A29206275666665723B0D0A202020205F727853697A65203D206C656E6774683B0D0A202020205F52586D6F6465203D204154425F52585F4D4F44455F524541445F42595445533B0D0A7D0D0A0D0A766F6964204173796E635443506275666665723A3A7265616442797465732875696E74385F74202A6275666665722C2073697A655F74206C656E6774682C204173796E63544350627566666572446F6E65436220646F6E6529207B0D0A20202020726561644279746573282863686172202A29206275666665722C206C656E6774682C20646F6E65293B0D0A7D0D0A0D0A766F6964204173796E635443506275666665723A3A6F6E44617461284173796E6354435062756666657244617461436220636229207B0D0A202020206966285F636C69656E74203D3D204E554C4C29207B0D0A202020202020202072657475726E3B0D0A202020207D0D0A2020202044454255475F4153594E435F54435028225B412D5443505D206F6E446174615C6E22293B0D0A202020205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A202020205F6362446F6E65203D204E554C4C3B0D0A202020205F63625258203D2063623B0D0A202020205F52586D6F6465203D204154425F52585F4D4F44455F465245453B0D0A7D0D0A0D0A766F6964204173796E635443506275666665723A3A6F6E446973636F6E6E656374284173796E63544350627566666572446973636F6E6E656374436220636229207B0D0A202020205F6362446973636F6E6E656374203D2063623B0D0A7D0D0A0D0A495041646472657373204173796E635443506275666665723A3A72656D6F746549502829207B0D0A20202020696628215F636C69656E7429207B0D0A202020202020202072657475726E20495041646472657373283055293B0D0A202020207D0D0A2020202072657475726E205F636C69656E742D3E72656D6F7465495028293B0D0A7D0D0A0D0A75696E7431365F74204173796E635443506275666665723A3A72656D6F7465506F72742829207B0D0A20202020696628215F636C69656E7429207B0D0A202020202020202072657475726E20303B0D0A202020207D0D0A2020202072657475726E205F636C69656E742D3E72656D6F7465506F727428293B0D0A7D0D0A0D0A626F6F6C204173796E635443506275666665723A3A636F6E6E65637465642829207B0D0A20202020696628215F636C69656E7429207B0D0A202020202020202072657475726E2066616C73653B0D0A202020207D0D0A2020202072657475726E205F636C69656E742D3E636F6E6E656374656428293B0D0A7D0D0A0D0A766F6964204173796E635443506275666665723A3A73746F702829207B0D0A0D0A20202020696628215F636C69656E7429207B0D0A202020202020202072657475726E3B0D0A202020207D0D0A202020205F636C69656E742D3E73746F7028293B0D0A202020205F636C69656E74203D204E554C4C3B0D0A0D0A202020206966285F6362446F6E6529207B0D0A2020202020202020737769746368285F52586D6F646529207B0D0A20202020202020202020202063617365204154425F52585F4D4F44455F524541445F42595445533A0D0A20202020202020202020202063617365204154425F52585F4D4F44455F5445524D494E41544F523A0D0A20202020202020202020202063617365204154425F52585F4D4F44455F5445524D494E41544F525F535452494E473A0D0A202020202020202020202020202020205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A202020202020202020202020202020205F6362446F6E652866616C73652C204E554C4C293B0D0A20202020202020202020202020202020627265616B3B0D0A20202020202020202020202064656661756C743A0D0A2020202020202020202020202020627265616B3B0D0A20202020202020207D0D0A202020207D0D0A202020205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A7D0D0A0D0A766F6964204173796E635443506275666665723A3A636C6F73652829207B0D0A2020202073746F7028293B0D0A7D0D0A0D0A0D0A2F2F2F2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0A0D0A2F2A2A0D0A202A2061747461636843616C6C6261636B7320746F204173796E63436C69656E7420636C6173730D0A202A2F0D0A766F6964204173796E635443506275666665723A3A5F61747461636843616C6C6261636B732829207B0D0A20202020696628215F636C69656E7429207B0D0A202020202020202072657475726E3B0D0A202020207D0D0A2020202044454255475F4153594E435F54435028225B412D5443505D2061747461636843616C6C6261636B735C6E22293B0D0A0D0A202020205F636C69656E742D3E6F6E506F6C6C285B5D28766F6964202A6F626A2C204173796E63436C69656E742A206329207B0D0A20202020202020204173796E635443506275666665722A2062203D2028284173796E635443506275666665722A29286F626A29293B0D0A202020202020202069662828622D3E5F54586275666665725265616420213D204E554C4C292026262021622D3E5F5458627566666572526561642D3E656D707479282929207B0D0A202020202020202020202020622D3E5F73656E6442756666657228293B0D0A20202020202020207D0D0A20202020202020202F2F2020202069662821622D3E5F52586275666665722D3E656D707479282929207B0D0A20202020202020202F2F20202020202020622D3E5F68616E646C655278427566666572284E554C4C2C2030293B0D0A20202020202020202F2F2020207D0D0A202020207D2C2074686973293B0D0A0D0A202020205F636C69656E742D3E6F6E41636B285B5D28766F6964202A6F626A2C204173796E63436C69656E742A20632C2073697A655F74206C656E2C2075696E7433325F742074696D6529207B0D0A202020202020202044454255475F4153594E435F54435028225B412D5443505D206F6E41636B5C6E22293B0D0A202020202020202028284173796E635443506275666665722A29286F626A29292D3E5F73656E6442756666657228293B0D0A202020207D2C2074686973293B0D0A0D0A202020205F636C69656E742D3E6F6E446973636F6E6E656374285B5D28766F6964202A6F626A2C204173796E63436C69656E742A206329207B0D0A202020202020202044454255475F4153594E435F54435028225B412D5443505D206F6E446973636F6E6E6563745C6E22293B0D0A20202020202020204173796E635443506275666665722A2062203D2028284173796E635443506275666665722A29286F626A29293B0D0A2020202020202020622D3E5F636C69656E74203D204E554C4C3B0D0A2020202020202020626F6F6C2064656C203D20747275653B0D0A2020202020202020696628622D3E5F6362446973636F6E6E65637429207B0D0A20202020202020202020202064656C203D20622D3E5F6362446973636F6E6E6563742862293B0D0A20202020202020207D0D0A202020202020202064656C65746520633B0D0A202020202020202069662864656C29207B0D0A20202020202020202020202064656C65746520623B0D0A20202020202020207D0D0A202020207D2C2074686973293B0D0A0D0A202020205F636C69656E742D3E6F6E44617461285B5D28766F6964202A6F626A2C204173796E63436C69656E742A20632C20766F6964202A6275662C2073697A655F74206C656E29207B0D0A20202020202020204173796E635443506275666665722A2062203D2028284173796E635443506275666665722A29286F626A29293B0D0A2020202020202020622D3E5F727844617461282875696E74385F74202A296275662C206C656E293B0D0A202020207D2C2074686973293B0D0A0D0A202020205F636C69656E742D3E6F6E54696D656F7574285B5D28766F6964202A6F626A2C204173796E63436C69656E742A20632C2075696E7433325F742074696D65297B0D0A202020202020202044454255475F4153594E435F54435028225B412D5443505D206F6E54696D656F75745C6E22293B0D0A2020202020202020632D3E636C6F736528293B0D0A202020207D2C2074686973293B0D0A0D0A2020202044454255475F4153594E435F54435028225B412D5443505D2061747461636843616C6C6261636B7320446F6E652E5C6E22293B0D0A7D0D0A0D0A2F2A2A0D0A202A2073656E642054582062756666657220696620706F737369626C650D0A202A2F0D0A766F6964204173796E635443506275666665723A3A5F73656E644275666665722829207B0D0A202020202F2F44454255475F4153594E435F54435028225B412D5443505D205F73656E644275666665722E2E2E5C6E22293B0D0A2020202073697A655F7420617661696C61626C65203D205F5458627566666572526561642D3E617661696C61626C6528293B0D0A20202020696628617661696C61626C65203D3D2030207C7C205F636C69656E74203D3D204E554C4C207C7C20215F636C69656E742D3E636F6E6E65637465642829207C7C20215F636C69656E742D3E63616E53656E64282929207B0D0A202020202020202072657475726E3B0D0A202020207D0D0A0D0A202020207768696C6528285F636C69656E742D3E73706163652829203E20302920262620285F5458627566666572526561642D3E617661696C61626C652829203E203029202626205F636C69656E742D3E63616E53656E64282929207B0D0A0D0A2020202020202020617661696C61626C65203D205F5458627566666572526561642D3E617661696C61626C6528293B0D0A0D0A2020202020202020696628617661696C61626C65203E205F636C69656E742D3E7370616365282929207B0D0A202020202020202020202020617661696C61626C65203D205F636C69656E742D3E737061636528293B0D0A20202020202020207D0D0A0D0A202020202020202063686172202A6F7574203D206E657720636861725B617661696C61626C655D3B0D0A20202020202020206966286F7574203D3D204E554C4C29207B0D0A20202020202020202020202044454255475F4153594E435F54435028225B412D5443505D20746F206C65737320686561702C20747279206C617465722E5C6E22293B0D0A20202020202020202020202072657475726E3B0D0A20202020202020207D0D0A0D0A20202020202020202F2F207265616420646174612066726F6D206275666665720D0A20202020202020205F5458627566666572526561642D3E7065656B286F75742C20617661696C61626C65293B0D0A0D0A20202020202020202F2F2073656E6420646174610D0A202020202020202073697A655F742073656E64203D205F636C69656E742D3E77726974652828636F6E737420636861722A29206F75742C20617661696C61626C65293B0D0A202020202020202069662873656E6420213D20617661696C61626C6529207B0D0A20202020202020202020202044454255475F4153594E435F54435028225B412D5443505D207772697465206661696C65642073656E643A20256420617661696C61626C653A202564205C6E222C2073656E642C20617661696C61626C65293B0D0A20202020202020207D0D0A0D0A20202020202020202F2F2072656D6F7665207265616C6C792073656E6420646174612066726F6D206275666665720D0A20202020202020205F5458627566666572526561642D3E72656D6F76652873656E64293B0D0A0D0A20202020202020202F2F2069662062756666657220697320656D70747920616E642074686572652069732061206F746865722062756666657220696E20636861696E2064656C6574652074686520656D707479206F6E650D0A20202020202020206966285F5458627566666572526561642D3E617661696C61626C652829203D3D2030202626205F5458627566666572526561642D3E6E65787420213D204E554C4C29207B0D0A20202020202020202020202063627566202A206F6C64203D205F5458627566666572526561643B0D0A2020202020202020202020205F545862756666657252656164203D205F5458627566666572526561642D3E6E6578743B0D0A20202020202020202020202064656C657465206F6C643B0D0A20202020202020202020202044454255475F4153594E435F54435028225B412D5443505D2064656C65746520636275665C6E22293B0D0A20202020202020207D0D0A0D0A202020202020202064656C657465206F75743B0D0A202020207D0D0A0D0A7D0D0A0D0A2F2A2A0D0A202A2063616C6C6564206F6E20696E636F6D696E6720646174610D0A202A2040706172616D206275660D0A202A2040706172616D206C656E0D0A202A2F0D0A766F6964204173796E635443506275666665723A3A5F7278446174612875696E74385F74202A6275662C2073697A655F74206C656E29207B0D0A20202020696628215F636C69656E74207C7C20215F636C69656E742D3E636F6E6E6563746564282929207B0D0A202020202020202044454255475F4153594E435F54435028225B412D5443505D206E6F7420636F6E6E6563746564215C6E22293B0D0A202020202020202072657475726E3B0D0A202020207D0D0A20202020696628215F525862756666657229207B0D0A202020202020202044454255475F4153594E435F54435028225B412D5443505D205F727844617461206E6F205F5258627566666572215C6E22293B0D0A202020202020202072657475726E3B0D0A202020207D0D0A2020202044454255475F4153594E435F54435028225B412D5443505D205F727844617461206C656E3A2025642052586D6F64653A2025645C6E222C206C656E2C205F52586D6F6465293B0D0A0D0A2020202073697A655F742068616E646C6564203D20303B0D0A0D0A202020206966285F52586D6F646520213D204154425F52585F4D4F44455F4E4F4E4529207B0D0A202020202020202068616E646C6564203D205F68616E646C655278427566666572282875696E74385F74202A29206275662C206C656E293B0D0A2020202020202020627566202B3D2068616E646C65643B0D0A20202020202020206C656E202D3D2068616E646C65643B0D0A0D0A20202020202020202F2F2068616E646C65206173206D75636820617320706F737369626C65206265666F7265207573696E6720746865206275666665720D0A20202020202020206966285F52586275666665722D3E656D707479282929207B0D0A2020202020202020202020207768696C65285F52586D6F646520213D204154425F52585F4D4F44455F4E4F4E452026262068616E646C656420213D2030202626206C656E203E203029207B0D0A2020202020202020202020202020202068616E646C6564203D205F68616E646C655278427566666572286275662C206C656E293B0D0A20202020202020202020202020202020627566202B3D2068616E646C65643B0D0A202020202020202020202020202020206C656E202D3D2068616E646C65643B0D0A2020202020202020202020207D0D0A20202020202020207D0D0A202020207D0D0A0D0A202020206966286C656E203E203029207B0D0A0D0A20202020202020206966285F52586275666665722D3E726F6F6D2829203C206C656E29207B0D0A2020202020202020202020202F2F20746F206C6573732073706163650D0A20202020202020202020202044454255475F4153594E435F54435028225B412D5443505D205F727844617461206275666665722066756C6C2074727920726573697A655C6E22293B0D0A2020202020202020202020205F52586275666665722D3E726573697A6541646428286C656E202B205F52586275666665722D3E726F6F6D282929293B0D0A0D0A2020202020202020202020206966285F52586275666665722D3E726F6F6D2829203C206C656E29207B0D0A2020202020202020202020202020202044454255475F4153594E435F54435028225B412D5443505D205F7278446174612062756666657220746F2066756C6C2063616E206F6E6C792068616E646C652025642121215C6E222C205F52586275666665722D3E726F6F6D2829293B0D0A2020202020202020202020207D0D0A20202020202020207D0D0A0D0A20202020202020205F52586275666665722D3E77726974652828636F6E73742063686172202A292028627566292C206C656E293B0D0A202020207D0D0A0D0A20202020696628215F52586275666665722D3E656D7074792829202626205F52586D6F646520213D204154425F52585F4D4F44455F4E4F4E4529207B0D0A20202020202020202F2F2068616E646C65206173206D75636820617320706F737369626C65206461746120696E206275666665720D0A202020202020202068616E646C6564203D205F68616E646C655278427566666572284E554C4C2C2030293B0D0A20202020202020207768696C65285F52586D6F646520213D204154425F52585F4D4F44455F4E4F4E452026262068616E646C656420213D203029207B0D0A20202020202020202020202068616E646C6564203D205F68616E646C655278427566666572284E554C4C2C2030293B0D0A20202020202020207D0D0A202020207D0D0A0D0A202020202F2F20636C65616E2075702072616D0D0A202020206966285F52586275666665722D3E656D7074792829202626205F52586275666665722D3E726F6F6D282920213D2031303029207B0D0A20202020202020205F52586275666665722D3E726573697A6528313030293B0D0A202020207D0D0A0D0A7D0D0A0D0A2F2A2A0D0A202A0D0A202A2F0D0A73697A655F74204173796E635443506275666665723A3A5F68616E646C6552784275666665722875696E74385F74202A6275662C2073697A655F74206C656E29207B0D0A20202020696628215F636C69656E74207C7C20215F636C69656E742D3E636F6E6E65637465642829207C7C205F5258627566666572203D3D204E554C4C29207B0D0A202020202020202072657475726E20303B0D0A202020207D0D0A0D0A2020202044454255475F4153594E435F54435028225B412D5443505D205F68616E646C655278427566666572206C656E3A2025642052586D6F64653A2025645C6E222C206C656E2C205F52586D6F6465293B0D0A0D0A2020202073697A655F7420427566666572417661696C61626C65203D205F52586275666665722D3E617661696C61626C6528293B0D0A2020202073697A655F742072203D20303B0D0A0D0A202020206966285F52586D6F6465203D3D204154425F52585F4D4F44455F4E4F4E4529207B0D0A202020202020202072657475726E20303B0D0A202020207D20656C7365206966285F52586D6F6465203D3D204154425F52585F4D4F44455F4652454529207B0D0A20202020202020206966285F63625258203D3D204E554C4C29207B0D0A20202020202020202020202072657475726E20303B0D0A20202020202020207D0D0A0D0A2020202020202020696628427566666572417661696C61626C65203E203029207B0D0A20202020202020202020202075696E74385F74202A2062203D206E65772075696E74385F745B427566666572417661696C61626C655D3B0D0A2020202020202020202020205F52586275666665722D3E7065656B282863686172202A2920622C20427566666572417661696C61626C65293B0D0A20202020202020202020202072203D205F6362525828622C20427566666572417661696C61626C65293B0D0A2020202020202020202020205F52586275666665722D3E72656D6F76652872293B0D0A20202020202020207D0D0A0D0A202020202020202069662872203D3D20427566666572417661696C61626C652026262062756620262620286C656E203E20302929207B0D0A20202020202020202020202072657475726E205F63625258286275662C206C656E293B0D0A20202020202020207D20656C7365207B0D0A20202020202020202020202072657475726E20303B0D0A20202020202020207D0D0A0D0A202020207D20656C7365206966285F52586D6F6465203D3D204154425F52585F4D4F44455F524541445F425954455329207B0D0A20202020202020206966285F7278526561644279746573507472203D3D204E554C4C207C7C205F6362446F6E65203D3D204E554C4C29207B0D0A20202020202020202020202072657475726E20303B0D0A20202020202020207D0D0A0D0A202020202020202073697A655F74206E657752656164436F756E74203D20303B0D0A0D0A2020202020202020696628427566666572417661696C61626C6529207B0D0A20202020202020202020202072203D205F52586275666665722D3E72656164282863686172202A29205F72785265616442797465735074722C205F727853697A65293B0D0A2020202020202020202020205F727853697A65202D3D20723B0D0A2020202020202020202020205F7278526561644279746573507472202B3D20723B0D0A20202020202020207D0D0A0D0A20202020202020206966285F52586275666665722D3E656D707479282920262620286C656E203E2030292026262062756629207B0D0A20202020202020202020202072203D206C656E3B0D0A20202020202020202020202069662872203E205F727853697A6529207B0D0A2020202020202020202020202020202072203D205F727853697A653B0D0A2020202020202020202020207D0D0A2020202020202020202020206D656D637079285F72785265616442797465735074722C206275662C2072293B0D0A2020202020202020202020205F7278526561644279746573507472202B3D20723B0D0A2020202020202020202020205F727853697A65202D3D20723B0D0A2020202020202020202020206E657752656164436F756E74202B3D20723B0D0A20202020202020207D0D0A0D0A20202020202020206966285F727853697A65203D3D203029207B0D0A2020202020202020202020205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A2020202020202020202020205F6362446F6E6528747275652C204E554C4C293B0D0A20202020202020207D0D0A0D0A20202020202020202F2F20616464206C656674206F76657220627974657320746F204275666665720D0A202020202020202072657475726E206E657752656164436F756E743B0D0A0D0A202020207D20656C7365206966285F52586D6F6465203D3D204154425F52585F4D4F44455F5445524D494E41544F5229207B0D0A20202020202020202F2F20544F444F20696D706C656D656E742072656164207465726D696E61746F72206E6F6E20737472696E670D0A0D0A202020207D20656C7365206966285F52586D6F6465203D3D204154425F52585F4D4F44455F5445524D494E41544F525F535452494E4729207B0D0A20202020202020206966285F727852656164537472696E67507472203D3D204E554C4C207C7C205F6362446F6E65203D3D204E554C4C29207B0D0A20202020202020202020202072657475726E20303B0D0A20202020202020207D0D0A0D0A20202020202020202F2F2068616E646C65204275666665720D0A2020202020202020696628427566666572417661696C61626C65203E203029207B0D0A2020202020202020202020207768696C6528215F52586275666665722D3E656D707479282929207B0D0A20202020202020202020202020202020636861722063203D205F52586275666665722D3E7265616428293B0D0A2020202020202020202020202020202069662863203D3D205F72785465726D696E61746F72207C7C2063203D3D203078303029207B0D0A20202020202020202020202020202020202020205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A20202020202020202020202020202020202020205F6362446F6E6528747275652C205F727852656164537472696E67507472293B0D0A202020202020202020202020202020202020202072657475726E20303B0D0A202020202020202020202020202020207D20656C7365207B0D0A2020202020202020202020202020202020202020282A5F727852656164537472696E6750747229202B3D20633B0D0A202020202020202020202020202020207D0D0A2020202020202020202020207D0D0A20202020202020207D0D0A0D0A20202020202020206966285F52586275666665722D3E656D707479282920262620286C656E203E2030292026262062756629207B0D0A20202020202020202020202073697A655F74206E657752656164436F756E74203D20303B0D0A2020202020202020202020207768696C65286E657752656164436F756E74203C206C656E29207B0D0A20202020202020202020202020202020636861722063203D20286368617229202A6275663B0D0A202020202020202020202020202020206275662B2B3B0D0A202020202020202020202020202020206E657752656164436F756E742B2B3B0D0A2020202020202020202020202020202069662863203D3D205F72785465726D696E61746F72207C7C2063203D3D203078303029207B0D0A20202020202020202020202020202020202020205F52586D6F6465203D204154425F52585F4D4F44455F4E4F4E453B0D0A20202020202020202020202020202020202020205F6362446F6E6528747275652C205F727852656164537472696E67507472293B0D0A202020202020202020202020202020202020202072657475726E206E657752656164436F756E743B0D0A202020202020202020202020202020207D20656C7365207B0D0A2020202020202020202020202020202020202020282A5F727852656164537472696E6750747229202B3D20633B0D0A202020202020202020202020202020207D0D0A2020202020202020202020207D0D0A20202020202020202020202072657475726E206E657752656164436F756E743B0D0A20202020202020207D0D0A202020207D0D0A0D0A2020202072657475726E20303B0D0A7D0D0A .cpp ESPAsyncTCPbuffer 2F2A2A0D0A202A204066696C65204553504173796E635443506275666665722E680D0A202A204064617465202032322E30312E323031360D0A202A2040617574686F72204D61726B757320536174746C65720D0A202A0D0A202A20436F70797269676874202863292032303135204D61726B757320536174746C65722E20416C6C207269676874732072657365727665642E0D0A202A20546869732066696C652069732070617274206F6620746865204173796E762054435020666F72204553502E0D0A202A0D0A202A2054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720D0A202A206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630D0A202A204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720D0A202A2076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0D0A202A0D0A202A2054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0D0A202A2062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660D0A202A204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550D0A202A204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0D0A202A0D0A202A20596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630D0A202A204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650D0A202A20466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410D0A202A0D0A202A2F0D0A0D0A2369666E646566204553504153594E435443504255464645525F485F0D0A23646566696E65204553504153594E435443504255464645525F485F0D0A0D0A2F2F23646566696E652044454255475F4153594E435F544350282E2E2E2920207768696C65282828553053203E3E20555354584329202620307837462920213D2030783030293B206F735F7072696E746628205F5F56415F415247535F5F20293B207768696C65282828553053203E3E20555354584329202620307837462920213D2030783030290D0A0D0A2369666E6465662044454255475F4153594E435F5443500D0A23646566696E652044454255475F4153594E435F544350282E2E2E290D0A23656E6469660D0A0D0A23696E636C756465203C41726475696E6F2E683E0D0A23696E636C756465203C636275662E683E0D0A0D0A23696E636C75646520224553504173796E635443502E68220D0A0D0A0D0A0D0A7479706564656620656E756D207B0D0A202020204154425F52585F4D4F44455F4E4F4E452C0D0A202020204154425F52585F4D4F44455F465245452C0D0A202020204154425F52585F4D4F44455F524541445F42595445532C0D0A202020204154425F52585F4D4F44455F5445524D494E41544F522C0D0A202020204154425F52585F4D4F44455F5445524D494E41544F525F535452494E470D0A7D2061746252784D6F64655F743B0D0A0D0A636C617373204173796E635443506275666665723A207075626C6963205072696E74207B0D0A0D0A202020207075626C69633A0D0A0D0A202020202020202074797065646566207374643A3A66756E6374696F6E3C73697A655F742875696E74385F74202A207061796C6F61642C2073697A655F74206C656E677468293E204173796E635443506275666665724461746143623B0D0A202020202020202074797065646566207374643A3A66756E6374696F6E3C766F696428626F6F6C206F6B2C20766F6964202A20726574293E204173796E63544350627566666572446F6E6543623B0D0A202020202020202074797065646566207374643A3A66756E6374696F6E3C626F6F6C284173796E63544350627566666572202A206F626A293E204173796E63544350627566666572446973636F6E6E65637443623B0D0A0D0A20202020202020204173796E63544350627566666572284173796E63436C69656E742A2063293B0D0A20202020202020207669727475616C207E4173796E6354435062756666657228293B0D0A0D0A202020202020202073697A655F7420777269746528537472696E6720262064617461293B0D0A202020202020202073697A655F742077726974652875696E74385F742064617461293B0D0A202020202020202073697A655F7420777269746528636F6E737420636861722A2064617461293B0D0A202020202020202073697A655F7420777269746528636F6E73742063686172202A646174612C2073697A655F74206C656E293B0D0A202020202020202073697A655F7420777269746528636F6E73742075696E74385F74202A646174612C2073697A655F74206C656E293B0D0A0D0A2020202020202020766F696420666C75736828293B0D0A0D0A2020202020202020766F6964206E6F43616C6C6261636B28293B0D0A0D0A2020202020202020766F69642072656164537472696E67556E74696C2863686172207465726D696E61746F722C20537472696E67202A207374722C204173796E63544350627566666572446F6E65436220646F6E65293B0D0A0D0A20202020202020202F2F20544F444F20696D706C656D656E742072656164207465726D696E61746F72206E6F6E20737472696E670D0A20202020202020202F2F766F696420726561644279746573556E74696C2863686172207465726D696E61746F722C2063686172202A6275666665722C2073697A655F74206C656E6774682C204173796E63544350627566666572446F6E65436220646F6E65293B0D0A20202020202020202F2F766F696420726561644279746573556E74696C2863686172207465726D696E61746F722C2075696E74385F74202A6275666665722C2073697A655F74206C656E6774682C204173796E63544350627566666572446F6E65436220646F6E65293B0D0A0D0A2020202020202020766F6964207265616442797465732863686172202A6275666665722C2073697A655F74206C656E6774682C204173796E63544350627566666572446F6E65436220646F6E65293B0D0A2020202020202020766F6964207265616442797465732875696E74385F74202A6275666665722C2073697A655F74206C656E6774682C204173796E63544350627566666572446F6E65436220646F6E65293B0D0A0D0A20202020202020202F2F20544F444F20696D706C656D656E740D0A20202020202020202F2F20766F69642073657454696D656F75742873697A655F742074696D656F7574293B0D0A0D0A2020202020202020766F6964206F6E44617461284173796E63544350627566666572446174614362206362293B0D0A2020202020202020766F6964206F6E446973636F6E6E656374284173796E63544350627566666572446973636F6E6E6563744362206362293B0D0A0D0A20202020202020204950416464726573732072656D6F7465495028293B0D0A202020202020202075696E7431365F74202072656D6F7465506F727428293B0D0A2020202020202020495041646472657373206C6F63616C495028293B0D0A202020202020202075696E7431365F7420206C6F63616C506F727428293B0D0A0D0A2020202020202020626F6F6C20636F6E6E656374656428293B0D0A0D0A2020202020202020766F69642073746F7028293B0D0A2020202020202020766F696420636C6F736528293B0D0A0D0A2020202070726F7465637465643A0D0A20202020202020204173796E63436C69656E742A205F636C69656E743B0D0A202020202020202063627566202A205F5458627566666572526561643B0D0A202020202020202063627566202A205F545862756666657257726974653B0D0A202020202020202063627566202A205F52586275666665723B0D0A202020202020202061746252784D6F64655F74205F52586D6F64653B0D0A202020202020202073697A655F74205F727853697A653B0D0A202020202020202063686172205F72785465726D696E61746F723B0D0A202020202020202075696E74385F74202A205F72785265616442797465735074723B0D0A2020202020202020537472696E67202A205F727852656164537472696E675074723B0D0A0D0A20202020202020204173796E63544350627566666572446174614362205F636252583B0D0A20202020202020204173796E63544350627566666572446F6E654362205F6362446F6E653B0D0A20202020202020204173796E63544350627566666572446973636F6E6E6563744362205F6362446973636F6E6E6563743B0D0A0D0A2020202020202020766F6964205F61747461636843616C6C6261636B7328293B0D0A2020202020202020766F6964205F73656E6442756666657228293B0D0A2020202020202020766F6964205F6F6E5F636C6F736528293B0D0A2020202020202020766F6964205F7278446174612875696E74385F74202A6275662C2073697A655F74206C656E293B0D0A202020202020202073697A655F74205F68616E646C6552784275666665722875696E74385F74202A6275662C2073697A655F74206C656E293B0D0A0D0A7D3B0D0A0D0A23656E646966202F2A204553504153594E435443504255464645525F485F202A2F0D0A .h SyncClient 2F2A0A20204173796E6368726F6E6F757320544350206C69627261727920666F7220457370726573736966204D4355730A0A2020436F707972696768742028632920323031362048726973746F20476F63686B6F762E20416C6C207269676874732072657365727665642E0A2020546869732066696C652069732070617274206F6620746865206573703832363620636F726520666F722041726475696E6F20656E7669726F6E6D656E742E0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A23696E636C756465202253796E63436C69656E742E68220A23696E636C756465202241726475696E6F2E68220A23696E636C75646520224553504173796E635443502E68220A23696E636C7564652022636275662E68220A0A0A53796E63436C69656E743A3A53796E63436C69656E742873697A655F742074784275664C656E290A20203A205F636C69656E74284E554C4C290A20202C205F74785F627566666572284E554C4C290A20202C205F74785F6275666665725F73697A652874784275664C656E290A20202C205F72785F627566666572284E554C4C290A7B7D0A0A53796E63436C69656E743A3A53796E63436C69656E74284173796E63436C69656E74202A636C69656E742C2073697A655F742074784275664C656E290A20203A205F636C69656E7428636C69656E74290A20202C205F74785F627566666572286E657720636275662874784275664C656E29290A20202C205F74785F6275666665725F73697A652874784275664C656E290A20202C205F72785F627566666572284E554C4C290A7B0A20205F61747461636843616C6C6261636B7328293B0A7D0A0A53796E63436C69656E743A3A7E53796E63436C69656E7428297B0A20206966285F74785F62756666657220213D204E554C4C297B0A2020202063627566202A62203D205F74785F6275666665723B0A202020205F74785F627566666572203D204E554C4C3B0A2020202064656C65746520623B0A20207D0A20207768696C65285F72785F62756666657220213D204E554C4C297B0A2020202063627566202A62203D205F72785F6275666665723B0A202020205F72785F627566666572203D205F72785F6275666665722D3E6E6578743B0A2020202064656C65746520623B0A20207D0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A696E742053796E63436C69656E743A3A636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F72742C20626F6F6C20736563757265297B0A23656C73650A696E742053796E63436C69656E743A3A636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F7274297B0A23656E6469660A20206966285F636C69656E7420213D204E554C4C20262620636F6E6E65637465642829290A2020202072657475726E20303B0A20205F636C69656E74203D206E6577204173796E63436C69656E7428293B0A20205F636C69656E742D3E6F6E436F6E6E656374285B5D28766F6964202A6F626A2C204173796E63436C69656E74202A63297B20282853796E63436C69656E742A29286F626A29292D3E5F6F6E436F6E6E6563742863293B207D2C2074686973293B0A20205F61747461636843616C6C6261636B735F446973636F6E6E65637428293B0A236966204153594E435F5443505F53534C5F454E41424C45440A20206966285F636C69656E742D3E636F6E6E6563742869702C20706F72742C2073656375726529297B0A23656C73650A20206966285F636C69656E742D3E636F6E6E6563742869702C20706F727429297B0A23656E6469660A202020207768696C65285F636C69656E7420213D204E554C4C20262620215F636C69656E742D3E636F6E6E6563746564282920262620215F636C69656E742D3E646973636F6E6E656374696E672829290A20202020202064656C61792831293B0A2020202072657475726E20636F6E6E656374656428293B0A20207D0A202072657475726E20303B0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A696E742053796E63436C69656E743A3A636F6E6E65637428636F6E73742063686172202A686F73742C2075696E7431365F7420706F72742C20626F6F6C20736563757265297B0A23656C73650A696E742053796E63436C69656E743A3A636F6E6E65637428636F6E73742063686172202A686F73742C2075696E7431365F7420706F7274297B0A23656E6469660A20206966285F636C69656E7420213D204E554C4C20262620636F6E6E65637465642829297B0A2020202072657475726E20303B0A20207D0A20205F636C69656E74203D206E6577204173796E63436C69656E7428293B0A20205F636C69656E742D3E6F6E436F6E6E656374285B5D28766F6964202A6F626A2C204173796E63436C69656E74202A63297B20282853796E63436C69656E742A29286F626A29292D3E5F6F6E436F6E6E6563742863293B207D2C2074686973293B0A20205F61747461636843616C6C6261636B735F446973636F6E6E65637428293B0A236966204153594E435F5443505F53534C5F454E41424C45440A20206966285F636C69656E742D3E636F6E6E65637428686F73742C20706F72742C2073656375726529297B0A23656C73650A20206966285F636C69656E742D3E636F6E6E65637428686F73742C20706F727429297B0A23656E6469660A202020207768696C65285F636C69656E7420213D204E554C4C20262620215F636C69656E742D3E636F6E6E6563746564282920262620215F636C69656E742D3E646973636F6E6E656374696E672829290A20202020202064656C61792831293B0A2020202072657475726E20636F6E6E656374656428293B0A20207D0A202072657475726E20303B0A7D0A0A53796E63436C69656E7420262053796E63436C69656E743A3A6F70657261746F723D28636F6E73742053796E63436C69656E7420266F74686572297B0A20206966285F636C69656E7420213D204E554C4C297B0A202020205F636C69656E742D3E61626F727428293B0A202020205F636C69656E742D3E6672656528293B0A202020205F636C69656E74203D204E554C4C3B0A20207D0A20205F74785F6275666665725F73697A65203D206F746865722E5F74785F6275666665725F73697A653B0A20206966285F74785F62756666657220213D204E554C4C297B0A2020202063627566202A62203D205F74785F6275666665723B0A202020205F74785F627566666572203D204E554C4C3B0A2020202064656C65746520623B0A20207D0A20207768696C65285F72785F62756666657220213D204E554C4C297B0A2020202063627566202A62203D205F72785F6275666665723B0A202020205F72785F627566666572203D20622D3E6E6578743B0A2020202064656C65746520623B0A20207D0A20205F74785F627566666572203D206E65772063627566286F746865722E5F74785F6275666665725F73697A65293B0A20205F636C69656E74203D206F746865722E5F636C69656E743B0A20205F61747461636843616C6C6261636B7328293B0A202072657475726E202A746869733B0A7D0A0A766F69642053796E63436C69656E743A3A73657454696D656F75742875696E7433325F74207365636F6E6473297B0A20206966285F636C69656E7420213D204E554C4C290A202020205F636C69656E742D3E736574527854696D656F7574287365636F6E6473293B0A7D0A0A75696E74385F742053796E63436C69656E743A3A73746174757328297B0A20206966285F636C69656E74203D3D204E554C4C290A2020202072657475726E20303B0A202072657475726E205F636C69656E742D3E737461746528293B0A7D0A0A75696E74385F742053796E63436C69656E743A3A636F6E6E656374656428297B0A202072657475726E20285F636C69656E7420213D204E554C4C202626205F636C69656E742D3E636F6E6E65637465642829293B0A7D0A0A766F69642053796E63436C69656E743A3A73746F7028297B0A20206966285F636C69656E7420213D204E554C4C290A202020205F636C69656E742D3E636C6F73652874727565293B0A7D0A0A73697A655F742053796E63436C69656E743A3A5F73656E6442756666657228297B0A202073697A655F7420617661696C61626C65203D205F74785F6275666665722D3E617661696C61626C6528293B0A202069662821636F6E6E65637465642829207C7C20215F636C69656E742D3E63616E53656E642829207C7C20617661696C61626C65203D3D2030290A2020202072657475726E20303B0A202073697A655F742073656E6461626C65203D205F636C69656E742D3E737061636528293B0A202069662873656E6461626C65203C20617661696C61626C65290A20202020617661696C61626C653D2073656E6461626C653B0A202063686172202A6F7574203D206E657720636861725B617661696C61626C655D3B0A20205F74785F6275666665722D3E72656164286F75742C20617661696C61626C65293B0A202073697A655F742073656E74203D205F636C69656E742D3E7772697465286F75742C20617661696C61626C65293B0A202064656C6574655B5D206F75743B0A202072657475726E2073656E743B0A7D0A0A766F69642053796E63436C69656E743A3A5F6F6E4461746128766F6964202A646174612C2073697A655F74206C656E297B0A20205F636C69656E742D3E61636B4C6174657228293B0A202063627566202A62203D206E65772063627566286C656E2B31293B0A20206966286220213D204E554C4C297B0A20202020622D3E77726974652828636F6E73742063686172202A29646174612C206C656E293B0A202020206966285F72785F627566666572203D3D204E554C4C290A2020202020205F72785F627566666572203D20623B0A20202020656C7365207B0A20202020202063627566202A70203D205F72785F6275666665723B0A2020202020207768696C6528702D3E6E65787420213D204E554C4C290A202020202020202070203D20702D3E6E6578743B0A202020202020702D3E6E657874203D20623B0A202020207D0A20207D0A7D0A0A766F69642053796E63436C69656E743A3A5F6F6E446973636F6E6E65637428297B0A20206966285F636C69656E7420213D204E554C4C297B0A202020205F636C69656E74203D204E554C4C3B0A20207D0A20206966285F74785F62756666657220213D204E554C4C297B0A2020202063627566202A62203D205F74785F6275666665723B0A202020205F74785F627566666572203D204E554C4C3B0A2020202064656C65746520623B0A20207D0A7D0A0A766F69642053796E63436C69656E743A3A5F6F6E436F6E6E656374284173796E63436C69656E74202A63297B0A20205F636C69656E74203D20633B0A20206966285F74785F62756666657220213D204E554C4C297B0A2020202063627566202A62203D205F74785F6275666665723B0A202020205F74785F627566666572203D204E554C4C3B0A2020202064656C65746520623B0A20207D0A20205F74785F627566666572203D206E65772063627566285F74785F6275666665725F73697A65293B0A20205F61747461636843616C6C6261636B735F4166746572436F6E6E656374656428293B0A7D0A0A766F69642053796E63436C69656E743A3A5F61747461636843616C6C6261636B7328297B0A20205F61747461636843616C6C6261636B735F446973636F6E6E65637428293B0A20205F61747461636843616C6C6261636B735F4166746572436F6E6E656374656428293B0A7D0A0A766F69642053796E63436C69656E743A3A5F61747461636843616C6C6261636B735F4166746572436F6E6E656374656428297B0A20205F636C69656E742D3E6F6E41636B285B5D28766F6964202A6F626A2C204173796E63436C69656E742A20632C2073697A655F74206C656E2C2075696E7433325F742074696D65297B20282853796E63436C69656E742A29286F626A29292D3E5F73656E6442756666657228293B207D2C2074686973293B0A20205F636C69656E742D3E6F6E44617461285B5D28766F6964202A6F626A2C204173796E63436C69656E742A20632C20766F6964202A646174612C2073697A655F74206C656E297B20282853796E63436C69656E742A29286F626A29292D3E5F6F6E4461746128646174612C206C656E293B207D2C2074686973293B0A20205F636C69656E742D3E6F6E54696D656F7574285B5D28766F6964202A6F626A2C204173796E63436C69656E742A20632C2075696E7433325F742074696D65297B20632D3E636C6F736528293B207D2C2074686973293B0A7D0A0A766F69642053796E63436C69656E743A3A5F61747461636843616C6C6261636B735F446973636F6E6E65637428297B0A20205F636C69656E742D3E6F6E446973636F6E6E656374285B5D28766F6964202A6F626A2C204173796E63436C69656E742A2063297B20282853796E63436C69656E742A29286F626A29292D3E5F6F6E446973636F6E6E65637428293B2064656C65746520633B207D2C2074686973293B0A7D0A0A73697A655F742053796E63436C69656E743A3A77726974652875696E74385F742064617461297B0A202072657475726E2077726974652826646174612C2031293B0A7D0A0A73697A655F742053796E63436C69656E743A3A777269746528636F6E73742075696E74385F74202A646174612C2073697A655F74206C656E297B0A20206966285F74785F627566666572203D3D204E554C4C207C7C2021636F6E6E65637465642829297B0A2020202072657475726E20303B0A20207D0A202073697A655F7420746F5772697465203D20303B0A202073697A655F7420746F53656E64203D206C656E3B0A20207768696C65285F74785F6275666665722D3E726F6F6D2829203C20746F53656E64297B0A20202020746F5772697465203D205F74785F6275666665722D3E726F6F6D28293B0A202020205F74785F6275666665722D3E77726974652828636F6E737420636861722A29646174612C20746F5772697465293B0A202020207768696C6528215F636C69656E742D3E63616E53656E64282920262620636F6E6E65637465642829290A20202020202064656C61792830293B0A202020205F73656E6442756666657228293B0A20202020746F53656E64202D3D20746F57726974653B0A20207D0A20205F74785F6275666665722D3E77726974652828636F6E737420636861722A2928646174612B286C656E202D20746F53656E6429292C20746F53656E64293B0A20206966285F636C69656E742D3E63616E53656E64282920262620636F6E6E65637465642829290A202020205F73656E6442756666657228293B0A202072657475726E206C656E3B0A7D0A0A696E742053796E63436C69656E743A3A617661696C61626C6528297B0A20206966285F72785F627566666572203D3D204E554C4C292072657475726E20303B0A202073697A655F742061203D20303B0A202063627566202A62203D205F72785F6275666665723B0A20207768696C65286220213D204E554C4C297B0A2020202061202B3D20622D3E617661696C61626C6528293B0A2020202062203D20622D3E6E6578743B0A20207D0A202072657475726E20613B0A7D0A0A696E742053796E63436C69656E743A3A7065656B28297B0A20206966285F72785F627566666572203D3D204E554C4C292072657475726E202D313B0A202072657475726E205F72785F6275666665722D3E7065656B28293B0A7D0A0A696E742053796E63436C69656E743A3A726561642875696E74385F74202A646174612C2073697A655F74206C656E297B0A20206966285F72785F627566666572203D3D204E554C4C292072657475726E202D313B0A0A202073697A655F742072656164536F466172203D20303B0A20207768696C65285F72785F62756666657220213D204E554C4C20262620286C656E202D2072656164536F46617229203E3D205F72785F6275666665722D3E617661696C61626C652829297B0A2020202063627566202A62203D205F72785F6275666665723B0A202020205F72785F627566666572203D205F72785F6275666665722D3E6E6578743B0A2020202073697A655F7420746F52656164203D20622D3E617661696C61626C6528293B0A2020202072656164536F466172202B3D20622D3E726561642828636861722A2928646174612B72656164536F466172292C20746F52656164293B0A20202020696628636F6E6E65637465642829297B0A20202020202020205F636C69656E742D3E61636B28622D3E73697A652829202D2031293B0A202020207D0A2020202064656C65746520623B0A20207D0A20206966285F72785F62756666657220213D204E554C4C2026262072656164536F466172203C206C656E297B0A2020202072656164536F466172202B3D205F72785F6275666665722D3E726561642828636861722A2928646174612B72656164536F466172292C20286C656E202D2072656164536F46617229293B0A20207D0A202072657475726E2072656164536F4661723B0A7D0A0A696E742053796E63436C69656E743A3A7265616428297B0A202075696E74385F7420726573203D20303B0A20206966287265616428267265732C20312920213D2031290A2020202072657475726E202D313B0A202072657475726E207265733B0A7D0A0A766F69642053796E63436C69656E743A3A666C75736828297B0A20206966285F74785F627566666572203D3D204E554C4C207C7C2021636F6E6E65637465642829290A2020202072657475726E3B0A20206966285F74785F6275666665722D3E617661696C61626C652829297B0A202020207768696C6528215F636C69656E742D3E63616E53656E64282920262620636F6E6E65637465642829290A20202020202064656C61792830293B0A202020205F73656E6442756666657228293B0A20207D0A7D0A .cpp SyncClient 2F2A0A20204173796E6368726F6E6F757320544350206C69627261727920666F7220457370726573736966204D4355730A0A2020436F707972696768742028632920323031362048726973746F20476F63686B6F762E20416C6C207269676874732072657365727665642E0A2020546869732066696C652069732070617274206F6620746865206573703832363620636F726520666F722041726475696E6F20656E7669726F6E6D656E742E0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A0A2369666E6465662053594E43434C49454E545F485F0A23646566696E652053594E43434C49454E545F485F0A0A23696E636C7564652022436C69656E742E68220A23696E636C756465203C6173796E635F636F6E6669672E683E0A636C61737320636275663B0A636C617373204173796E63436C69656E743B0A0A636C6173732053796E63436C69656E743A207075626C696320436C69656E74207B0A2020707269766174653A0A202020204173796E63436C69656E74202A5F636C69656E743B0A2020202063627566202A5F74785F6275666665723B0A2020202073697A655F74205F74785F6275666665725F73697A653B0A2020202063627566202A5F72785F6275666665723B0A0A2020202073697A655F74205F73656E6442756666657228293B0A20202020766F6964205F6F6E4461746128766F6964202A646174612C2073697A655F74206C656E293B0A20202020766F6964205F6F6E436F6E6E656374284173796E63436C69656E74202A63293B0A20202020766F6964205F6F6E446973636F6E6E65637428293B0A20202020766F6964205F61747461636843616C6C6261636B7328293B0A20202020766F6964205F61747461636843616C6C6261636B735F446973636F6E6E65637428293B0A20202020766F6964205F61747461636843616C6C6261636B735F4166746572436F6E6E656374656428293B0A0A20207075626C69633A0A2020202053796E63436C69656E742873697A655F742074784275664C656E203D2031343630293B0A2020202053796E63436C69656E74284173796E63436C69656E74202A636C69656E742C2073697A655F742074784275664C656E203D2031343630293B0A202020207669727475616C207E53796E63436C69656E7428293B0A0A202020206F70657261746F7220626F6F6C28297B2072657475726E20636F6E6E656374656428293B207D0A2020202053796E63436C69656E742026206F70657261746F723D28636F6E73742053796E63436C69656E7420266F74686572293B0A0A236966204153594E435F5443505F53534C5F454E41424C45440A20202020696E7420636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F72742C20626F6F6C20736563757265293B0A20202020696E7420636F6E6E65637428636F6E73742063686172202A686F73742C2075696E7431365F7420706F72742C20626F6F6C20736563757265293B0A20202020696E7420636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F7274297B0A20202020202072657475726E20636F6E6E6563742869702C20706F72742C2066616C7365293B0A202020207D0A20202020696E7420636F6E6E65637428636F6E73742063686172202A686F73742C2075696E7431365F7420706F7274297B0A20202020202072657475726E20636F6E6E65637428686F73742C20706F72742C2066616C7365293B0A202020207D0A23656C73650A20202020696E7420636F6E6E656374284950416464726573732069702C2075696E7431365F7420706F7274293B0A20202020696E7420636F6E6E65637428636F6E73742063686172202A686F73742C2075696E7431365F7420706F7274293B0A23656E6469660A20202020766F69642073657454696D656F75742875696E7433325F74207365636F6E6473293B0A0A2020202075696E74385F742073746174757328293B0A2020202075696E74385F7420636F6E6E656374656428293B0A20202020766F69642073746F7028293B0A0A2020202073697A655F742077726974652875696E74385F742064617461293B0A2020202073697A655F7420777269746528636F6E73742075696E74385F74202A646174612C2073697A655F74206C656E293B0A0A20202020696E7420617661696C61626C6528293B0A20202020696E74207065656B28293B0A20202020696E74207265616428293B0A20202020696E7420726561642875696E74385F74202A646174612C2073697A655F74206C656E293B0A20202020766F696420666C75736828293B0A7D3B0A0A23656E646966202F2A2053594E43434C49454E545F485F202A2F0A .h tcp_axtls 2F2A0A20204173796E6368726F6E6F757320544350206C69627261727920666F7220457370726573736966204D4355730A0A2020436F707972696768742028632920323031362048726973746F20476F63686B6F762E20416C6C207269676874732072657365727665642E0A2020546869732066696C652069732070617274206F6620746865206573703832363620636F726520666F722041726475696E6F20656E7669726F6E6D656E742E0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A2F2A0A202A20436F6D7061746962696C69747920666F72204178544C532077697468204C5749502072617720746370206D6F64652028687474703A2F2F6C7769702E77696B69612E636F6D2F77696B692F5261772F544350290A202A204F726967696E616C20436F646520616E6420496E737069726174696F6E3A20536C61766579204B617261647A686F760A202A2F0A23696E636C756465203C6173796E635F636F6E6669672E683E0A236966204153594E435F5443505F53534C5F454E41424C45440A0A23696E636C75646520226C7769702F6F70742E68220A23696E636C75646520226C7769702F7463702E68220A23696E636C75646520226C7769702F696E65742E68220A23696E636C756465203C7374646C69622E683E0A23696E636C756465203C737464696E742E683E0A23696E636C756465203C7374646172672E683E0A23696E636C756465203C7463705F6178746C732E683E0A0A75696E74385F74202A2064656661756C745F707269766174655F6B6579203D204E554C4C3B0A75696E7431365F742064656661756C745F707269766174655F6B65795F6C656E203D20303B0A0A75696E74385F74202A2064656661756C745F6365727469666963617465203D204E554C4C3B0A75696E7431365F742064656661756C745F63657274696669636174655F6C656E203D20303B0A0A7374617469632075696E74385F74205F7463705F73736C5F6861735F636C69656E74203D20303B0A0A53534C5F435458202A207463705F73736C5F6E65775F7365727665725F63747828636F6E73742063686172202A636572742C20636F6E73742063686172202A707269766174655F6B65795F66696C652C20636F6E73742063686172202A70617373776F7264297B0A202075696E7433325F74206F7074696F6E73203D2053534C5F434F4E4E4543545F494E5F50415254533B0A202053534C5F435458202A73736C5F6374783B0A0A2020696628707269766174655F6B65795F66696C65297B0A202020206F7074696F6E73207C3D2053534C5F4E4F5F44454641554C545F4B45593B0A20207D0A0A2020696620282873736C5F637478203D2073736C5F6374785F6E6577286F7074696F6E732C2053534C5F44454641554C545F5356525F534553532929203D3D204E554C4C297B0A202020205443505F53534C5F444542554728227463705F73736C5F6E65775F7365727665725F6374783A206661696C656420746F20616C6C6F6361746520636F6E746578745C6E22293B0A2020202072657475726E204E554C4C3B0A20207D0A0A202069662028707269766174655F6B65795F66696C65297B0A20202020696E74206F626A5F74797065203D2053534C5F4F424A5F5253415F4B45593B0A202020206966202873747273747228707269766174655F6B65795F66696C652C20222E70382229290A2020202020206F626A5F74797065203D2053534C5F4F424A5F504B4353383B0A20202020656C7365206966202873747273747228707269766174655F6B65795F66696C652C20222E7031322229290A2020202020206F626A5F74797065203D2053534C5F4F424A5F504B435331323B0A0A202020206966202873736C5F6F626A5F6C6F61642873736C5F6374782C206F626A5F747970652C20707269766174655F6B65795F66696C652C2070617373776F726429297B0A2020202020205443505F53534C5F444542554728227463705F73736C5F6E65775F7365727665725F6374783A206C6F61642070726976617465206B65792027257327206661696C65645C6E222C20707269766174655F6B65795F66696C65293B0A20202020202072657475726E204E554C4C3B0A202020207D0A20207D0A0A20206966202863657274297B0A202020206966202873736C5F6F626A5F6C6F61642873736C5F6374782C2053534C5F4F424A5F583530395F434552542C20636572742C204E554C4C29297B0A2020202020205443505F53534C5F444542554728227463705F73736C5F6E65775F7365727665725F6374783A206C6F61642063657274696669636174652027257327206661696C65645C6E222C2063657274293B0A20202020202072657475726E204E554C4C3B0A202020207D0A20207D0A202072657475726E2073736C5F6374783B0A7D0A0A737472756374207463705F73736C5F706362207B0A2020737472756374207463705F706362202A7463703B0A2020696E742066643B0A202053534C5F4354582A2073736C5F6374783B0A202053534C202A73736C3B0A202075696E74385F7420747970653B0A2020696E742068616E647368616B653B0A2020766F6964202A206172673B0A20207463705F73736C5F646174615F63625F74206F6E5F646174613B0A20207463705F73736C5F68616E647368616B655F63625F74206F6E5F68616E647368616B653B0A20207463705F73736C5F6572726F725F63625F74206F6E5F6572726F723B0A2020696E74206C6173745F77723B0A20207374727563742070627566202A7463705F706275663B0A2020696E7420706275665F6F66667365743B0A2020737472756374207463705F73736C5F706362202A206E6578743B0A7D3B0A0A7479706564656620737472756374207463705F73736C5F706362207463705F73736C5F743B0A0A737461746963207463705F73736C5F74202A207463705F73736C5F6172726179203D204E554C4C3B0A73746174696320696E74207463705F73736C5F6E6578745F6664203D20303B0A0A75696E74385F74207463705F73736C5F6861735F636C69656E7428297B0A202072657475726E205F7463705F73736C5F6861735F636C69656E743B0A7D0A0A7463705F73736C5F74202A207463705F73736C5F6E657728737472756374207463705F706362202A74637029207B0A0A20206966287463705F73736C5F6E6578745F6664203C2030297B0A202020207463705F73736C5F6E6578745F6664203D20303B2F2F6F766572666C6F770A20207D0A0A20207463705F73736C5F74202A206E65775F6974656D203D20287463705F73736C5F742A296D616C6C6F632873697A656F66287463705F73736C5F7429293B0A2020696628216E65775F6974656D297B0A202020205443505F53534C5F444542554728227463705F73736C5F6E65773A206661696C656420746F20616C6C6F63617465207463705F73736C5C6E22293B0A2020202072657475726E204E554C4C3B0A20207D0A0A20206E65775F6974656D2D3E746370203D207463703B0A20206E65775F6974656D2D3E68616E647368616B65203D2053534C5F4E4F545F4F4B3B0A20206E65775F6974656D2D3E617267203D204E554C4C3B0A20206E65775F6974656D2D3E6F6E5F64617461203D204E554C4C3B0A20206E65775F6974656D2D3E6F6E5F68616E647368616B65203D204E554C4C3B0A20206E65775F6974656D2D3E6F6E5F6572726F72203D204E554C4C3B0A20206E65775F6974656D2D3E7463705F70627566203D204E554C4C3B0A20206E65775F6974656D2D3E706275665F6F6666736574203D20303B0A20206E65775F6974656D2D3E6E657874203D204E554C4C3B0A20206E65775F6974656D2D3E73736C5F637478203D204E554C4C3B0A20206E65775F6974656D2D3E73736C203D204E554C4C3B0A20206E65775F6974656D2D3E74797065203D205443505F53534C5F545950455F434C49454E543B0A20206E65775F6974656D2D3E6664203D207463705F73736C5F6E6578745F66642B2B3B0A0A20206966287463705F73736C5F6172726179203D3D204E554C4C297B0A202020207463705F73736C5F6172726179203D206E65775F6974656D3B0A20207D20656C7365207B0A202020207463705F73736C5F74202A206974656D203D207463705F73736C5F61727261793B0A202020207768696C65286974656D2D3E6E65787420213D204E554C4C290A2020202020206974656D203D206974656D2D3E6E6578743B0A202020206974656D2D3E6E657874203D206E65775F6974656D3B0A20207D0A0A20205443505F53534C5F444542554728227463705F73736C5F6E65773A2025645C6E222C206E65775F6974656D2D3E6664293B0A202072657475726E206E65775F6974656D3B0A7D0A0A7463705F73736C5F742A207463705F73736C5F67657428737472756374207463705F706362202A74637029207B0A2020696628746370203D3D204E554C4C29207B0A2020202072657475726E204E554C4C3B0A20207D0A20207463705F73736C5F74202A206974656D203D207463705F73736C5F61727261793B0A20207768696C65286974656D202626206974656D2D3E74637020213D20746370297B0A202020206974656D203D206974656D2D3E6E6578743B0A20207D0A202072657475726E206974656D3B0A7D0A0A696E74207463705F73736C5F6E65775F636C69656E7428737472756374207463705F706362202A746370297B0A202053534C5F4354582A2073736C5F6374783B0A20207463705F73736C5F74202A207463705F73736C3B0A0A2020696628746370203D3D204E554C4C29207B0A2020202072657475726E202D313B0A20207D0A0A20206966287463705F73736C5F676574287463702920213D204E554C4C297B0A202020205443505F53534C5F444542554728227463705F73736C5F6E65775F636C69656E743A207463705F73736C20616C7265616479206578697374735C6E22293B0A2020202072657475726E202D313B0A20207D0A0A202073736C5F637478203D2073736C5F6374785F6E65772853534C5F434F4E4E4543545F494E5F5041525453207C2053534C5F5345525645525F5645524946595F4C415445522C2031293B0A202069662873736C5F637478203D3D204E554C4C297B0A202020205443505F53534C5F444542554728227463705F73736C5F6E65775F636C69656E743A206661696C656420746F20616C6C6F636174652073736C20636F6E746578745C6E22293B0A2020202072657475726E202D313B0A20207D0A0A20207463705F73736C203D207463705F73736C5F6E657728746370293B0A20206966287463705F73736C203D3D204E554C4C297B0A2020202073736C5F6374785F667265652873736C5F637478293B0A2020202072657475726E202D313B0A20207D0A0A20207463705F73736C2D3E73736C5F637478203D2073736C5F6374783B0A0A20207463705F73736C2D3E73736C203D2073736C5F636C69656E745F6E65772873736C5F6374782C207463705F73736C2D3E66642C204E554C4C2C20302C204E554C4C293B0A20206966287463705F73736C2D3E73736C203D3D204E554C4C297B0A202020205443505F53534C5F444542554728227463705F73736C5F6E65775F636C69656E743A206661696C656420746F20616C6C6F636174652073736C5C6E22293B0A202020207463705F73736C5F6672656528746370293B0A2020202072657475726E202D313B0A20207D0A0A202072657475726E207463705F73736C2D3E66643B0A7D0A0A696E74207463705F73736C5F6E65775F73657276657228737472756374207463705F706362202A7463702C2053534C5F4354582A2073736C5F637478297B0A20207463705F73736C5F74202A207463705F73736C3B0A0A2020696628746370203D3D204E554C4C29207B0A2020202072657475726E202D313B0A20207D0A0A202069662873736C5F637478203D3D204E554C4C297B0A2020202072657475726E202D313B0A20207D0A0A20206966287463705F73736C5F676574287463702920213D204E554C4C297B0A202020205443505F53534C5F444542554728227463705F73736C5F6E65775F7365727665723A207463705F73736C20616C7265616479206578697374735C6E22293B0A2020202072657475726E202D313B0A20207D0A0A20207463705F73736C203D207463705F73736C5F6E657728746370293B0A20206966287463705F73736C203D3D204E554C4C297B0A2020202072657475726E202D313B0A20207D0A0A20207463705F73736C2D3E74797065203D205443505F53534C5F545950455F5345525645523B0A20207463705F73736C2D3E73736C5F637478203D2073736C5F6374783B0A0A20205F7463705F73736C5F6861735F636C69656E74203D20313B0A20207463705F73736C2D3E73736C203D2073736C5F7365727665725F6E65772873736C5F6374782C207463705F73736C2D3E6664293B0A20206966287463705F73736C2D3E73736C203D3D204E554C4C297B0A202020205443505F53534C5F444542554728227463705F73736C5F6E65775F7365727665723A206661696C656420746F20616C6C6F636174652073736C5C6E22293B0A202020207463705F73736C5F6672656528746370293B0A2020202072657475726E202D313B0A20207D0A0A202072657475726E207463705F73736C2D3E66643B0A7D0A0A696E74207463705F73736C5F6672656528737472756374207463705F706362202A74637029207B0A0A2020696628746370203D3D204E554C4C29207B0A2020202072657475726E202D313B0A20207D0A0A20207463705F73736C5F74202A206974656D203D207463705F73736C5F61727261793B0A0A20206966286974656D2D3E746370203D3D20746370297B0A202020207463705F73736C5F6172726179203D207463705F73736C5F61727261792D3E6E6578743B0A202020206966286974656D2D3E7463705F7062756620213D204E554C4C297B0A202020202020706275665F66726565286974656D2D3E7463705F70627566293B0A202020207D0A202020205443505F53534C5F444542554728227463705F73736C5F667265653A2025645C6E222C206974656D2D3E6664293B0A202020206966286974656D2D3E73736C290A20202020202073736C5F66726565286974656D2D3E73736C293B0A202020206966286974656D2D3E74797065203D3D205443505F53534C5F545950455F434C49454E54202626206974656D2D3E73736C5F637478290A20202020202073736C5F6374785F66726565286974656D2D3E73736C5F637478293B0A202020206966286974656D2D3E74797065203D3D205443505F53534C5F545950455F534552564552290A2020202020205F7463705F73736C5F6861735F636C69656E74203D20303B0A2020202066726565286974656D293B0A2020202072657475726E20303B0A20207D0A0A20207768696C65286974656D2D3E6E657874202626206974656D2D3E6E6578742D3E74637020213D20746370290A202020206974656D203D206974656D2D3E6E6578743B0A0A20206966286974656D2D3E6E657874203D3D204E554C4C297B0A2020202072657475726E204552525F5443505F53534C5F494E56414C49445F434C49454E5446445F444154413B2F2F6974656D206E6F7420666F756E640A20207D0A0A20207463705F73736C5F74202A2069203D206974656D2D3E6E6578743B0A20206974656D2D3E6E657874203D20692D3E6E6578743B0A2020696628692D3E7463705F7062756620213D204E554C4C297B0A20202020706275665F6672656528692D3E7463705F70627566293B0A20207D0A20205443505F53534C5F444542554728227463705F73736C5F667265653A2025645C6E222C20692D3E6664293B0A2020696628692D3E73736C290A2020202073736C5F6672656528692D3E73736C293B0A2020696628692D3E74797065203D3D205443505F53534C5F545950455F434C49454E5420262620692D3E73736C5F637478290A2020202073736C5F6374785F6672656528692D3E73736C5F637478293B0A2020696628692D3E74797065203D3D205443505F53534C5F545950455F534552564552290A202020205F7463705F73736C5F6861735F636C69656E74203D20303B0A2020667265652869293B0A202072657475726E20303B0A7D0A0A236966646566204158544C535F325F305F305F534E444255460A696E74207463705F73736C5F736E6462756628737472756374207463705F706362202A746370297B0A2020696E742065787065637465643B0A2020696E7420617661696C61626C653B0A2020696E7420726573756C74203D202D313B0A0A2020696628746370203D3D204E554C4C29207B0A2020202072657475726E20726573756C743B0A20207D0A20207463705F73736C5F74202A207463705F73736C203D207463705F73736C5F67657428746370293B0A2020696628217463705F73736C297B0A202020205443505F53534C5F444542554728227463705F73736C5F736E646275663A207463705F73736C206973204E554C4C5C6E22293B0A2020202072657475726E20726573756C743B0A20207D0A2020617661696C61626C65203D207463705F736E6462756628746370293B0A202069662821617661696C61626C65297B0A202020205443505F53534C5F444542554728227463705F73736C5F736E646275663A207463705F736E64627566206973207A65726F5C6E22293B0A2020202072657475726E20303B0A20207D0A2020726573756C74203D20617661696C61626C653B0A20207768696C6528286578706563746564203D2073736C5F63616C63756C6174655F77726974655F6C656E677468287463705F73736C2D3E73736C2C20726573756C742929203E20617661696C61626C65297B0A20202020726573756C74202D3D20286578706563746564202D20617661696C61626C6529202B20343B0A20207D0A0A20206966286578706563746564203E2030297B0A202020202F2F5443505F53534C5F444542554728227463705F73736C5F736E646275663A207463705F736E646275662069732025642066726F6D2025645C6E222C20726573756C742C20617661696C61626C65293B0A2020202072657475726E20726573756C743B0A20207D0A0A202072657475726E20303B0A7D0A23656E6469660A0A696E74207463705F73736C5F777269746528737472756374207463705F706362202A7463702C2075696E74385F74202A646174612C2073697A655F74206C656E29207B0A2020696628746370203D3D204E554C4C29207B0A2020202072657475726E202D313B0A20207D0A20207463705F73736C5F74202A207463705F73736C203D207463705F73736C5F67657428746370293B0A2020696628217463705F73736C297B0A202020205443505F53534C5F444542554728227463705F73736C5F77726974653A207463705F73736C206973204E554C4C5C6E22293B0A2020202072657475726E20303B0A20207D0A20207463705F73736C2D3E6C6173745F7772203D20303B0A0A236966646566204158544C535F325F305F305F534E444255460A2020696E742065787065637465645F6C656E203D2073736C5F63616C63756C6174655F77726974655F6C656E677468287463705F73736C2D3E73736C2C206C656E293B0A2020696E7420617661696C61626C655F6C656E203D207463705F736E6462756628746370293B0A202069662865787065637465645F6C656E203C2030207C7C2065787065637465645F6C656E203E20617661696C61626C655F6C656E297B0A202020205443505F53534C5F444542554728227463705F73736C5F77726974653A20646174612077696C6C206E6F742066697421202575203C202564282575295C725C6E222C20617661696C61626C655F6C656E2C2065787065637465645F6C656E2C206C656E293B0A2020202072657475726E202D313B0A20207D0A23656E6469660A0A2020696E74207263203D2073736C5F7772697465287463705F73736C2D3E73736C2C20646174612C206C656E293B0A0A20202F2F5443505F53534C5F444542554728227463705F73736C5F77726974653A202575202D3E20256420282564295C725C6E222C206C656E2C207463705F73736C2D3E6C6173745F77722C207263293B0A0A2020696620287263203C2030297B0A20202020696628726320213D2053534C5F434C4F53455F4E4F5449465929207B0A2020202020205443505F53534C5F444542554728227463705F73736C5F7772697465206572726F723A2025645C725C6E222C207263293B0A202020207D0A2020202072657475726E2072633B0A20207D0A0A202072657475726E207463705F73736C2D3E6C6173745F77723B0A7D0A0A2F2A2A0A202A20526561647320646174612066726F6D207468652053534C206F766572205443502073747265616D2E2052657475726E732064656372797074656420646174612E0A202A2040706172616D207463705F706362202A746370202D20706F696E74657220746F207468652072617720746370206F626A6563740A202A2040706172616D2070627566202A70202D20706F696E74657220746F207468652062756666657220776974682074686520544350207061636B657420646174610A202A0A202A204072657475726E20696E740A202A20202020202030202D207768656E2065766572797468696E672069732066696E652062757420746865726520617265206E6F2073796D626F6C7320746F2070726F63657373207965740A202A2020202020203C2030202D207768656E20746865726520697320616E206572726F720A202A2020202020203E2030202D20746865206C656E677468206F662074686520636C656172207465787420636861726163746572732074686174207765726520726561640A202A2F0A696E74207463705F73736C5F7265616428737472756374207463705F706362202A7463702C207374727563742070627566202A7029207B0A2020696628746370203D3D204E554C4C29207B0A2020202072657475726E202D313B0A20207D0A20207463705F73736C5F742A2066645F64617461203D204E554C4C3B0A0A2020696E7420726561645F6279746573203D20303B0A2020696E7420746F74616C5F6279746573203D20303B0A202075696E74385F74202A726561645F6275663B0A0A202066645F64617461203D207463705F73736C5F67657428746370293B0A202069662866645F64617461203D3D204E554C4C29207B0A202020205443505F53534C5F444542554728227463705F73736C5F726561643A207463705F73736C206973204E554C4C5C6E22293B0A2020202072657475726E204552525F5443505F53534C5F494E56414C49445F434C49454E5446445F444154413B0A20207D0A0A202069662870203D3D204E554C4C29207B0A202020205443505F53534C5F444542554728227463705F73736C5F726561643A70203D3D204E554C4C5C6E22293B0A2020202072657475726E204552525F5443505F53534C5F494E56414C49445F444154413B0A20207D0A0A20202F2F5443505F53534C5F44454255472822524541445920544F205245414420534F4D4520444154415C6E22293B0A0A202066645F646174612D3E7463705F70627566203D20703B0A202066645F646174612D3E706275665F6F6666736574203D20303B0A0A2020646F207B0A20202020726561645F6279746573203D2073736C5F726561642866645F646174612D3E73736C2C2026726561645F627566293B0A202020202F2F5443505F53534C5F444542554728227463705F73736C5F73736C5F726561643A2025645C6E222C20726561645F6279746573293B0A20202020696628726561645F6279746573203C2053534C5F4F4B29207B0A202020202020696628726561645F627974657320213D2053534C5F434C4F53455F4E4F5449465929207B0A20202020202020205443505F53534C5F444542554728227463705F73736C5F726561643A2072656164206572726F723A2025645C6E222C20726561645F6279746573293B0A2020202020207D0A202020202020746F74616C5F6279746573203D20726561645F62797465733B0A202020202020627265616B3B0A202020207D20656C736520696628726561645F6279746573203E2030297B0A20202020202069662866645F646174612D3E6F6E5F64617461297B0A202020202020202066645F646174612D3E6F6E5F646174612866645F646174612D3E6172672C207463702C20726561645F6275662C20726561645F6279746573293B0A2020202020207D0A202020202020746F74616C5F62797465732B3D20726561645F62797465733B0A202020207D20656C7365207B0A20202020202069662866645F646174612D3E68616E647368616B6520213D2053534C5F4F4B29207B0A202020202020202066645F646174612D3E68616E647368616B65203D2073736C5F68616E647368616B655F7374617475732866645F646174612D3E73736C293B0A202020202020202069662866645F646174612D3E68616E647368616B65203D3D2053534C5F4F4B297B0A202020202020202020202F2F5443505F53534C5F444542554728227463705F73736C5F726561643A2068616E647368616B65204F4B5C6E22293B0A2020202020202020202069662866645F646174612D3E6F6E5F68616E647368616B65290A20202020202020202020202066645F646174612D3E6F6E5F68616E647368616B652866645F646174612D3E6172672C2066645F646174612D3E7463702C2066645F646174612D3E73736C293B0A20202020202020207D20656C73652069662866645F646174612D3E68616E647368616B6520213D2053534C5F4E4F545F4F4B297B0A202020202020202020205443505F53534C5F444542554728227463705F73736C5F726561643A2068616E647368616B65206572726F723A2025645C6E222C2066645F646174612D3E68616E647368616B65293B0A2020202020202020202069662866645F646174612D3E6F6E5F6572726F72290A20202020202020202020202066645F646174612D3E6F6E5F6572726F722866645F646174612D3E6172672C2066645F646174612D3E7463702C2066645F646174612D3E68616E647368616B65293B0A2020202020202020202072657475726E2066645F646174612D3E68616E647368616B653B0A20202020202020207D0A2020202020207D0A202020207D0A20207D207768696C652028702D3E746F745F6C656E202D2066645F646174612D3E706275665F6F6666736574203E2030293B0A0A20207463705F726563766564287463702C20702D3E746F745F6C656E293B0A202066645F646174612D3E7463705F70627566203D204E554C4C3B0A2020706275665F667265652870293B0A0A202072657475726E20746F74616C5F62797465733B0A7D0A0A53534C202A207463705F73736C5F6765745F73736C28737472756374207463705F706362202A746370297B0A20207463705F73736C5F74202A207463705F73736C203D207463705F73736C5F67657428746370293B0A20206966287463705F73736C297B0A2020202072657475726E207463705F73736C2D3E73736C3B0A20207D0A202072657475726E204E554C4C3B0A7D0A0A626F6F6C207463705F73736C5F68617328737472756374207463705F706362202A746370297B0A202072657475726E207463705F73736C5F676574287463702920213D204E554C4C3B0A7D0A0A696E74207463705F73736C5F69735F73657276657228737472756374207463705F706362202A746370297B0A20207463705F73736C5F74202A207463705F73736C203D207463705F73736C5F67657428746370293B0A20206966287463705F73736C297B0A2020202072657475726E207463705F73736C2D3E747970653B0A20207D0A202072657475726E202D313B0A7D0A0A766F6964207463705F73736C5F61726728737472756374207463705F706362202A7463702C20766F6964202A20617267297B0A20207463705F73736C5F74202A206974656D203D207463705F73736C5F67657428746370293B0A20206966286974656D29207B0A202020206974656D2D3E617267203D206172673B0A20207D0A7D0A0A766F6964207463705F73736C5F6461746128737472756374207463705F706362202A7463702C207463705F73736C5F646174615F63625F7420617267297B0A20207463705F73736C5F74202A206974656D203D207463705F73736C5F67657428746370293B0A20206966286974656D29207B0A202020206974656D2D3E6F6E5F64617461203D206172673B0A20207D0A7D0A0A766F6964207463705F73736C5F68616E647368616B6528737472756374207463705F706362202A7463702C207463705F73736C5F68616E647368616B655F63625F7420617267297B0A20207463705F73736C5F74202A206974656D203D207463705F73736C5F67657428746370293B0A20206966286974656D29207B0A202020206974656D2D3E6F6E5F68616E647368616B65203D206172673B0A20207D0A7D0A0A766F6964207463705F73736C5F65727228737472756374207463705F706362202A7463702C207463705F73736C5F6572726F725F63625F7420617267297B0A20207463705F73736C5F74202A206974656D203D207463705F73736C5F67657428746370293B0A20206966286974656D29207B0A202020206974656D2D3E6F6E5F6572726F72203D206172673B0A20207D0A7D0A0A737461746963207463705F73736C5F66696C655F63625F74205F7463705F73736C5F66696C655F6362203D204E554C4C3B0A73746174696320766F6964202A205F7463705F73736C5F66696C655F617267203D204E554C4C3B0A0A766F6964207463705F73736C5F66696C65287463705F73736C5F66696C655F63625F742063622C20766F6964202A20617267297B0A20205F7463705F73736C5F66696C655F6362203D2063623B0A20205F7463705F73736C5F66696C655F617267203D206172673B0A7D0A0A696E742061785F6765745F66696C6528636F6E73742063686172202A66696C656E616D652C2075696E74385F74202A2A62756629207B0A202020202F2F5443505F53534C5F4445425547282261785F6765745F66696C653A2025735C6E222C2066696C656E616D65293B0A202020206966285F7463705F73736C5F66696C655F6362297B0A20202020202072657475726E205F7463705F73736C5F66696C655F6362285F7463705F73736C5F66696C655F6172672C2066696C656E616D652C20627566293B0A202020207D0A202020202A627566203D20303B0A2020202072657475726E20303B0A7D0A0A7463705F73736C5F742A207463705F73736C5F6765745F62795F666428696E7420666429207B0A20207463705F73736C5F74202A206974656D203D207463705F73736C5F61727261793B0A20207768696C65286974656D202626206974656D2D3E666420213D206664297B0A202020206974656D203D206974656D2D3E6E6578743B0A20207D0A202072657475726E206974656D3B0A7D0A2F2A0A202A20546865204C57495020746370207261772076657273696F6E206F662074686520534F434B45545F575249544528412C20422C2043290A202A2F0A696E742061785F706F72745F777269746528696E742066642C2075696E74385F74202A646174612C2075696E7431365F74206C656E29207B0A20207463705F73736C5F74202A66645F64617461203D204E554C4C3B0A2020696E74207463705F6C656E203D20303B0A20206572725F7420657272203D204552525F4F4B3B0A0A20202F2F5443505F53534C5F4445425547282261785F706F72745F77726974653A2025642C2025645C6E222C2066642C206C656E293B0A0A202066645F64617461203D207463705F73736C5F6765745F62795F6664286664293B0A202069662866645F64617461203D3D204E554C4C29207B0A202020202F2F5443505F53534C5F4445425547282261785F706F72745F77726974653A207463705F73736C5B25645D206973204E554C4C5C6E222C206664293B0A2020202072657475726E204552525F4D454D3B0A20207D0A0A20206966202864617461203D3D204E554C4C207C7C206C656E203D3D203029207B0A2020202072657475726E20303B0A20207D0A0A2020696620287463705F736E646275662866645F646174612D3E74637029203C206C656E29207B0A202020207463705F6C656E203D207463705F736E646275662866645F646174612D3E746370293B0A202020206966287463705F6C656E203D3D203029207B0A2020202020205443505F53534C5F4445425547282261785F706F72745F77726974653A207463705F736E64627566206973207A65726F3A2025645C6E222C206C656E293B0A20202020202072657475726E204552525F4D454D3B0A202020207D0A20207D20656C7365207B0A202020207463705F6C656E203D206C656E3B0A20207D0A0A2020696620287463705F6C656E203E2032202A2066645F646174612D3E7463702D3E6D737329207B0A202020207463705F6C656E203D2032202A2066645F646174612D3E7463702D3E6D73733B0A20207D0A0A2020657272203D207463705F77726974652866645F646174612D3E7463702C20646174612C207463705F6C656E2C205443505F57524954455F464C41475F434F5059293B0A2020696628657272203C204552525F4F4B29207B0A2020202069662028657272203D3D204552525F4D454D29207B0A2020202020205443505F53534C5F4445425547282261785F706F72745F77726974653A204E6F206D656D6F727920256420282564295C6E222C207463705F6C656E2C206C656E293B0A20202020202072657475726E206572723B0A202020207D0A202020205443505F53534C5F4445425547282261785F706F72745F77726974653A207463705F7772697465206572726F723A2025645C6E222C20657272293B0A2020202072657475726E206572723B0A20207D20656C73652069662028657272203D3D204552525F4F4B29207B0A202020202F2F5443505F53534C5F4445425547282261785F706F72745F77726974653A207463705F6F75747075743A202564202F2025645C6E222C207463705F6C656E2C206C656E293B0A20202020657272203D207463705F6F75747075742866645F646174612D3E746370293B0A2020202069662865727220213D204552525F4F4B29207B0A2020202020205443505F53534C5F4445425547282261785F706F72745F77726974653A207463705F6F7574707574206572723A2025645C6E222C20657272293B0A20202020202072657475726E206572723B0A202020207D0A20207D0A0A202066645F646174612D3E6C6173745F7772202B3D207463705F6C656E3B0A0A202072657475726E207463705F6C656E3B0A7D0A0A2F2A0A202A20546865204C57495020746370207261772076657273696F6E206F662074686520534F434B45545F5245414428412C20422C2043290A202A2F0A696E742061785F706F72745F7265616428696E742066642C2075696E74385F74202A646174612C20696E74206C656E29207B0A20207463705F73736C5F74202A66645F64617461203D204E554C4C3B0A202075696E74385F74202A726561645F627566203D204E554C4C3B0A202075696E74385F74202A70726561645F627566203D204E554C4C3B0A20207531365F7420726563765F6C656E203D20303B0A0A20202F2F5443505F53534C5F4445425547282261785F706F72745F726561643A2025642C2025645C6E222C2066642C206C656E293B0A0A202066645F64617461203D207463705F73736C5F6765745F62795F6664286664293B0A20206966202866645F64617461203D3D204E554C4C29207B0A202020205443505F53534C5F4445425547282261785F706F72745F726561643A207463705F73736C5B25645D206973204E554C4C5C6E222C206664293B0A2020202072657475726E204552525F5443505F53534C5F494E56414C49445F434C49454E5446445F444154413B0A20207D0A0A202069662866645F646174612D3E7463705F70627566203D3D204E554C4C207C7C2066645F646174612D3E7463705F706275662D3E746F745F6C656E203D3D203029207B0A2020202072657475726E20303B0A20207D0A0A2020726561645F627566203D2875696E74385F742A2963616C6C6F632866645F646174612D3E7463705F706275662D3E6C656E202B20312C2073697A656F662875696E74385F7429293B0A202070726561645F627566203D20726561645F6275663B0A20206966202870726561645F62756620213D204E554C4C297B0A20202020726563765F6C656E203D20706275665F636F70795F7061727469616C2866645F646174612D3E7463705F706275662C20726561645F6275662C206C656E2C2066645F646174612D3E706275665F6F6666736574293B0A2020202066645F646174612D3E706275665F6F6666736574202B3D20726563765F6C656E3B0A20207D0A0A202069662028726563765F6C656E20213D203029207B0A202020206D656D63707928646174612C20726561645F6275662C20726563765F6C656E293B0A20207D0A0A20206966286C656E203C20726563765F6C656E29207B0A202020205443505F53534C5F4445425547282261785F706F72745F726561643A20676F74202564206279746573206D6F7265207468616E2065787065637465645C6E222C20726563765F6C656E202D206C656E293B0A20207D0A0A2020667265652870726561645F627566293B0A202070726561645F627566203D204E554C4C3B0A0A202072657475726E20726563765F6C656E3B0A7D0A0A766F69642061785F7764745F666565642829207B7D0A0A23656E6469660A .c tcp_axtls 2F2A0A20204173796E6368726F6E6F757320544350206C69627261727920666F7220457370726573736966204D4355730A0A2020436F707972696768742028632920323031362048726973746F20476F63686B6F762E20416C6C207269676874732072657365727665642E0A2020546869732066696C652069732070617274206F6620746865206573703832363620636F726520666F722041726475696E6F20656E7669726F6E6D656E742E0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A2F2A0A202A20436F6D7061746962696C69747920666F72204178544C532077697468204C5749502072617720746370206D6F64652028687474703A2F2F6C7769702E77696B69612E636F6D2F77696B692F5261772F544350290A202A204F726967696E616C20436F646520616E6420496E737069726174696F6E3A20536C61766579204B617261647A686F760A202A2F0A0A2369666E646566204C574950525F434F4D5041545F480A23646566696E65204C574950525F434F4D5041545F480A0A23696E636C756465203C6173796E635F636F6E6669672E683E0A0A236966204153594E435F5443505F53534C5F454E41424C45440A0A23696E636C75646520226C7769706F7074732E68220A2F2A0A202A20416C6C2074686F73652066756E6374696F6E732077696C6C2072756E206F6E6C79206966204C5749502074637020726177206D6F646520697320757365640A202A2F0A236966204C5749505F5241573D3D310A0A236966646566205F5F63706C7573706C75730A65787465726E20224322207B0A23656E6469660A0A23696E636C756465203C737464626F6F6C2E683E0A23696E636C7564652022696E636C7564652F73736C2E68220A0A23646566696E65204552525F5443505F53534C5F494E56414C49445F53534C20202020202020202020202D3130310A23646566696E65204552525F5443505F53534C5F494E56414C49445F54435020202020202020202020202D3130320A23646566696E65204552525F5443505F53534C5F494E56414C49445F434C49454E5446442020202020202D3130330A23646566696E65204552525F5443505F53534C5F494E56414C49445F434C49454E5446445F44415441202D3130340A23646566696E65204552525F5443505F53534C5F494E56414C49445F44415441202020202020202020202D3130350A0A23646566696E65205443505F53534C5F545950455F434C49454E5420300A23646566696E65205443505F53534C5F545950455F53455256455220310A0A23646566696E65207463705F73736C5F73736C5F777269746528412C20422C204329207463705F73736C5F777269746528412C20422C2043290A23646566696E65207463705F73736C5F73736C5F7265616428412C204229207463705F73736C5F7265616428412C2042290A0A7479706564656620766F696420282A207463705F73736C5F646174615F63625F742928766F6964202A6172672C20737472756374207463705F706362202A7463702C2075696E74385F74202A20646174612C2073697A655F74206C656E293B0A7479706564656620766F696420282A207463705F73736C5F68616E647368616B655F63625F742928766F6964202A6172672C20737472756374207463705F706362202A7463702C2053534C202A73736C293B0A7479706564656620766F696420282A207463705F73736C5F6572726F725F63625F742928766F6964202A6172672C20737472756374207463705F706362202A7463702C20696E74385F74206572726F72293B0A7479706564656620696E7420282A207463705F73736C5F66696C655F63625F742928766F6964202A6172672C20636F6E73742063686172202A66696C656E616D652C2075696E74385F74202A2A627566293B0A0A75696E74385F74207463705F73736C5F6861735F636C69656E7428293B0A0A696E74207463705F73736C5F6E65775F636C69656E7428737472756374207463705F706362202A746370293B0A0A53534C5F435458202A207463705F73736C5F6E65775F7365727665725F63747828636F6E73742063686172202A636572742C20636F6E73742063686172202A707269766174655F6B65795F66696C652C20636F6E73742063686172202A70617373776F7264293B0A696E74207463705F73736C5F6E65775F73657276657228737472756374207463705F706362202A7463702C2053534C5F4354582A2073736C5F637478293B0A696E74207463705F73736C5F69735F73657276657228737472756374207463705F706362202A746370293B0A0A696E74207463705F73736C5F6672656528737472756374207463705F706362202A746370293B0A696E74207463705F73736C5F7265616428737472756374207463705F706362202A7463702C207374727563742070627566202A70293B0A0A236966646566204158544C535F325F305F305F534E444255460A696E74207463705F73736C5F736E6462756628737472756374207463705F706362202A746370293B0A23656E6469660A0A696E74207463705F73736C5F777269746528737472756374207463705F706362202A7463702C2075696E74385F74202A646174612C2073697A655F74206C656E293B0A0A766F6964207463705F73736C5F66696C65287463705F73736C5F66696C655F63625F742063622C20766F6964202A20617267293B0A0A766F6964207463705F73736C5F61726728737472756374207463705F706362202A7463702C20766F6964202A20617267293B0A766F6964207463705F73736C5F6461746128737472756374207463705F706362202A7463702C207463705F73736C5F646174615F63625F7420617267293B0A766F6964207463705F73736C5F68616E647368616B6528737472756374207463705F706362202A7463702C207463705F73736C5F68616E647368616B655F63625F7420617267293B0A766F6964207463705F73736C5F65727228737472756374207463705F706362202A7463702C207463705F73736C5F6572726F725F63625F7420617267293B0A0A53534C202A207463705F73736C5F6765745F73736C28737472756374207463705F706362202A746370293B0A626F6F6C207463705F73736C5F68617328737472756374207463705F706362202A746370293B0A0A236966646566205F5F63706C7573706C75730A7D0A23656E6469660A0A23656E646966202F2A204C5749505F5241573D3D31202A2F0A0A23656E646966202F2A204153594E435F5443505F53534C5F454E41424C4544202A2F0A0A23656E646966202F2A204C574950525F434F4D5041545F48202A2F0A .h ssl gen_server_cert 23212F62696E2F626173680A0A636174203E2063615F636572742E636F6E66203C3C20454F4620200A5B20726571205D0A64697374696E677569736865645F6E616D6520202020203D207265715F64697374696E677569736865645F6E616D650A70726F6D707420202020202020202020202020202020203D206E6F0A0A5B207265715F64697374696E677569736865645F6E616D65205D0A204F202020202020202020202020202020202020202020203D204573707265737369662053797374656D730A454F460A0A6F70656E73736C2067656E727361202D6F7574206178544C532E63615F6B65792E70656D20323034380A6F70656E73736C20726571202D6E6577202D636F6E666967202E2F63615F636572742E636F6E66202D6B6579206178544C532E63615F6B65792E70656D202D6F7574206178544C532E63615F783530392E7265710A6F70656E73736C2078353039202D726571202D73686131202D646179732035303030202D7369676E6B6579206178544C532E63615F6B65792E70656D202D43416B6579206178544C532E63615F6B65792E70656D202D696E206178544C532E63615F783530392E726571202D6F7574206178544C532E63615F783530392E70656D0A0A636174203E2063657274732E636F6E66203C3C20454F4620200A5B20726571205D0A64697374696E677569736865645F6E616D6520202020203D207265715F64697374696E677569736865645F6E616D650A70726F6D707420202020202020202020202020202020203D206E6F0A0A5B207265715F64697374696E677569736865645F6E616D65205D0A204F202020202020202020202020202020202020202020203D206178544C53206F6E20455350383236360A20434E2020202020202020202020202020202020202020203D20657370383236362E6C6F63616C0A454F460A0A6F70656E73736C2067656E727361202D6F7574206178544C532E6B65795F313032342E70656D20313032340A6F70656E73736C20726571202D6E6577202D636F6E666967202E2F63657274732E636F6E66202D6B6579206178544C532E6B65795F313032342E70656D202D6F7574206178544C532E783530395F313032342E7265710A6F70656E73736C2078353039202D726571202D73686131202D434163726561746573657269616C202D646179732035303030202D4341206178544C532E63615F783530392E70656D202D43416B6579206178544C532E63615F6B65792E70656D202D696E206178544C532E783530395F313032342E726571202D6F7574206178544C532E783530395F313032342E70656D0A0A6F70656E73736C20727361202D6F7574666F726D20444552202D696E206178544C532E6B65795F313032342E70656D202D6F7574206178544C532E6B65795F313032340A6F70656E73736C2078353039202D6F7574666F726D20444552202D696E206178544C532E783530395F313032342E70656D202D6F7574206178544C532E783530395F313032342E6365720A0A636174206178544C532E6B65795F31303234203E207365727665722E6B65790A636174206178544C532E783530395F313032342E636572203E207365727665722E6365720A0A726D206178544C532E2A2063615F636572742E636F6E662063657274732E636F6E660A .sh server 308202473082012F0209009302A1B198BA7643300D06092A864886F70D0101050500301C311A3018060355040A0C114573707265737369662053797374656D73301E170D3136303832343231343733385A170D3330303530333231343733385A303331193017060355040A0C106178544C53206F6E20455350383236363116301406035504030C0D657370383236362E6C6F63616C30819F300D06092A864886F70D010101050003818D0030818902818100B48E39ECC31E89A6CEA640C85E6777F66EBF694FFC76ABBB76C09E8B056F3830E0CAD91314F0E453D2A53353B969C9715553B9B43F092F8C07DFD318FDBE5E4DCFC842358F2B893EEC1FB78109BA79606AB0C465DB4560E8FEEB6504EB5714769165432F55DBD45062BC791D2189A2C3AEC7897B01C2C58FF6CCD7E4685A37210203010001300D06092A864886F70D01010505000382010100027E9836196AEADFF2FA3A5F7D822BB56C01D9382B7EB6C86A9D039E133D3FD4843F201BD03F4FF53319FE5FFA8767137E63CABB1873144A9B8A17297E70CD2ED5BCD1C6D902A6D07B970A04C8074F8C2E9112FE62ABF9452DC37B778441FA882DC1D98BC29B0014E8A6CC2DC106AD02117BCDE094E99CA787F7AC60244EE2E9C86E6A4CF9ED862C71D2A3ECD7DCDB9B615D7A880373FBF34FFA07EAE462989089ED7D6145D9D2C85F016CA5F2AADBAFA5F304456DE4DFFA466FDCF4C6FE7F3A9B06A9BF30DF04B6FE0B4A1461C18068065B5AE44F01B173A1559BDE444B4DF70EDD8C886771686F7807130445E3C38034301195741FFE60C0289B9A43BDC5A8 .cer server 3082025F02010002818100B48E39ECC31E89A6CEA640C85E6777F66EBF694FFC76ABBB76C09E8B056F3830E0CAD91314F0E453D2A53353B969C9715553B9B43F092F8C07DFD318FDBE5E4DCFC842358F2B893EEC1FB78109BA79606AB0C465DB4560E8FEEB6504EB5714769165432F55DBD45062BC791D2189A2C3AEC7897B01C2C58FF6CCD7E4685A37210203010001028181008D0C7289D81FBA0EFA6E7C3B4B2C6F55AF4C8EBBB2910E35635EB43C0C61C736BFD5176145C1ADCD21C87661587E20A50DB05B6948B92750B0321519F7D7C89896555185D66AE6DB9E44A2555FEB0AC299AD2546A938B67EAACC5F027393C52DE6628C122028F3E34CBCC7138CAC787034EB63EA1302B669DCEF0A4DCDDE2901024100E403FFE9E8D6753F3C888612C6E5A67C41B264E50C6E83F22A3AFD9A479369E511A03703749D286562B9E23D6DB246C30293CC1A3C20D593C6B31D700EBC78F1024100CAB7157B6AF714CBD50D312690CB38476B342BE41F0D5906490694799F65E0835ED5E6B8897593148B5A5726020406C4ED686F0566EB07942003D9D275B02131024100BBC12360ABEEB3FB0F5067FE5C334C44F31FFF7EB01EEC9D62F2D252D0EF6CFA47EA4282A0EAAC11D81AB255DCD738F7694EE47911DC03A23CB2CEE1AFF0B831024100ACB89275360E90899C5E4122BAFC6C576DE0660558EFE68A946E26D3FA1CB3CF3B5EC5D7364817A9C9928FEEB288FBBB8F0D0C8B6DC5940F81B7C640AC460601024100A37D8A620E8DE700EA218661B913C3C2CF968879FFAA946F5AB8E47084E83EE020D915CAF50CF3A1D3CAF99FA99A8C798455BACA4CE5B2965A8C82E7F84B1D50 .key travis common 23212F62696E2F626173680A0A66756E6374696F6E206275696C645F736B65746368657328290A7B0A202020206C6F63616C2061726475696E6F3D24310A202020206C6F63616C20737263706174683D24320A202020206C6F63616C20706C6174666F726D3D24330A202020206C6F63616C20736B6574636865733D242866696E64202473726370617468202D6E616D65202A2E696E6F290A20202020666F7220736B6574636820696E2024736B6574636865733B20646F0A20202020202020206C6F63616C20736B657463686469723D24286469726E616D652024736B65746368290A20202020202020206966205B5B202D66202224736B657463686469722F2E24706C6174666F726D2E736B697022205D5D3B207468656E0A2020202020202020202020206563686F202D6520225C6E5C6E202D2D2D2D2D2D2D2D2D2D2D2D20536B697070696E672024736B65746368202D2D2D2D2D2D2D2D2D2D2D2D205C6E5C6E223B0A202020202020202020202020636F6E74696E75650A202020202020202066690A20202020202020206563686F202D6520225C6E5C6E202D2D2D2D2D2D2D2D2D2D2D2D204275696C64696E672024736B65746368202D2D2D2D2D2D2D2D2D2D2D2D205C6E5C6E223B0A20202020202020202461726475696E6F202D2D7665726966792024736B657463683B0A20202020202020206C6F63616C20726573756C743D243F0A20202020202020206966205B2024726573756C74202D6E652030205D3B207468656E0A2020202020202020202020206563686F20224275696C64206661696C65642028243129220A20202020202020202020202072657475726E2024726573756C740A202020202020202066690A20202020646F6E650A7D0A .sh async-mqtt-client .editorconfig 726F6F74203D20747275650A0A5B2A5D0A656E645F6F665F6C696E65203D206C660A696E736572745F66696E616C5F6E65776C696E65203D20747275650A63686172736574203D207574662D380A696E64656E745F7374796C65203D2073706163650A696E64656E745F73697A65203D20320A7472696D5F747261696C696E675F77686974657370616365203D20747275650A0A5B6B6579776F7264732E7478745D0A696E64656E745F7374796C65203D207461620A .gitignore 2F636F6E6669672E6A736F6E0D0A .travis 6C616E67756167653A20707974686F6E0D0A707974686F6E3A0D0A20202D2022322E37220D0A0D0A63616368653A0D0A20206469726563746F726965733A0D0A202020202D20227E2F2E706C6174666F726D696F220D0A0D0A656E763A0D0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F46756C6C7946656174757265642D4553503832363620504C4154464F524D494F5F43495F45585452415F415247533D222D2D626F6172643D6573703031202D2D626F6172643D6E6F64656D63757632220D0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F46756C6C7946656174757265642D455350333220504C4154464F524D494F5F43495F45585452415F415247533D222D2D626F6172643D6C6F6C696E3332220D0A20202D204350504C494E543D747275650D0A0D0A696E7374616C6C3A0D0A20202D2070697020696E7374616C6C202D552068747470733A2F2F6769746875622E636F6D2F706C6174666F726D696F2F706C6174666F726D696F2D636F72652F617263686976652F646576656C6F702E7A69700D0A20202D2070697020696E7374616C6C202D55206370706C696E740D0A20202D20706C6174666F726D696F206C6962202D6720696E7374616C6C2066696C653A2F2F2E0D0A0D0A7363726970743A0D0A20202D206966205B5B2022244350504C494E5422205D5D3B207468656E206D616B65206370706C696E743B20656C736520706C6174666F726D696F2063692024504C4154464F524D494F5F43495F45585452415F415247533B2066690D0A .yml async-mqtt-client 3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E0D0A3C70726F6A6563742076657273696F6E3D2231223E0D0A202020203C696E636C7564656469723E0D0A20202020202020203C646972206E616D653D227372632F222F3E0D0A202020203C2F696E636C7564656469723E0D0A3C2F70726F6A6563743E0D0A .cppcheck docs 1.-Getting-started 232047657474696E6720737461727465640A0A546F20757365204173796E634D717474436C69656E742C20796F75206E6565643A0A0A2A20416E20455350383236360A2A205468652041726475696E6F2049444520666F722045535038323636202876657273696F6E20322E322E30206D696E696D756D290A2A204261736963206B6E6F776C65646765206F66207468652041726475696E6F20656E7669726F6E6D656E74202875706C6F6164206120736B657463682C20696D706F7274206C69627261726965732C202E2E2E290A0A232320496E7374616C6C696E67204173796E634D717474436C69656E740A0A5468657265206172652074776F207761797320746F20696E7374616C6C204173796E634D717474436C69656E742E0A0A2323232031612E20466F72207468652041726475696E6F204944450A0A312E20446F776E6C6F616420746865205B636F72726573706F6E64696E672072656C656173655D2868747470733A2F2F6769746875622E636F6D2F6D617276696E726F6765722F6173796E632D6D7174742D636C69656E742F72656C65617365732F6C6174657374290A322E204C6F61642074686520602E7A6970602077697468202A2A536B6574636820E2869220496E636C756465204C69627261727920E2869220416464202E5A4950204C6962726172792A2A0A0A4173796E634D717474436C69656E7420686173203120646570656E64656E63793A205B4553504173796E635443505D2868747470733A2F2F6769746875622E636F6D2F6D652D6E6F2D6465762F4553504173796E63544350292E20446F776E6C6F616420746865205B2E7A69705D2868747470733A2F2F6769746875622E636F6D2F6D652D6E6F2D6465762F4553504173796E635443502F617263686976652F6D61737465722E7A69702920616E6420696E7374616C6C2069742077697468207468652073616D65206D6574686F642061732061626F76652E0A0A23232046756C6C792D666561747572656420736B657463680A0A536565205B6578616D706C65732F46756C6C7946656174757265642E696E6F5D282E2E2F6578616D706C65732F46756C6C7946656174757265642F46756C6C7946656174757265642E696E6F290A0A2A2A3C753E5665727920696D706F7274616E743A3C2F753E20417320612072756C65206F66207468756D622C206E657665722075736520626C6F636B696E672066756E6374696F6E7320696E207468652063616C6C6261636B732028646F6E277420757365206064656C6179282960206F7220607969656C64282960292E2A2A204F74686572776973652C20796F75206D617920766572792070726F6261626C7920657870657269656E636520756E6578706563746564206265686176696F72732E0A0A596F752063616E20676F20746F20746865205B415049207265666572656E63655D28322E2D4150492D7265666572656E63652E6D64292E0A .md 2.-API-reference 2320415049207265666572656E63650A0A23232323204173796E634D717474436C69656E7428290A0A496E7374616E74696174652061206E6577204173796E634D717474436C69656E74206F626A6563742E0A0A23232320436F6E66696775726174696F6E0A0A23232323204173796E634D717474436C69656E7426207365744B656570416C6976652875696E7431365F7420606B656570416C69766560290A0A53657420746865206B65657020616C6976652E2044656661756C747320746F203135207365636F6E64732E0A0A2A202A2A606B656570416C697665602A2A3A204B65657020616C69766520696E207365636F6E64730A0A23232323204173796E634D717474436C69656E742620736574436C69656E74496428636F6E737420636861725C2A2060636C69656E74496460290A0A5365742074686520636C69656E742049442E2044656661756C747320746F2060657370383236363C63686970204944206F6E203620686578206361726163746572733E602E0A0A2A202A2A60636C69656E744964602A2A3A20436C69656E742049440A0A23232323204173796E634D717474436C69656E742620736574436C65616E53657373696F6E28626F6F6C2060636C65616E53657373696F6E60290A0A57686574686572206F72206E6F7420746F207365742074686520436C65616E53657373696F6E20666C61672E2044656661756C747320746F206074727565602E0A0A2A202A2A60636C65616E53657373696F6E602A2A3A20636C65616E2073657373696F6E2077616E746564206F72206E6F740A0A23232323204173796E634D717474436C69656E7426207365744D6178546F7069634C656E6774682875696E7431365F7420606D6178546F7069634C656E67746860290A0A53657420746865206D6178696D756D20616C6C6F77656420746F706963206C656E67746820746F20726563656976652E20496620616E204D515454207061636B65742069732072656365697665640A77697468206120746F706963206C6F6E676572207468616E2074686973206D6178696D756D2C20746865207061636B65742077696C6C2062652069676E6F7265642E2044656661756C747320746F2060313238602E0A0A2A202A2A606D6178546F7069634C656E677468602A2A3A204D6178696D756D20616C6C6F77656420746F706963206C656E67746820746F20726563656976650A0A23232323204173796E634D717474436C69656E74262073657443726564656E7469616C7328636F6E737420636861725C2A2060757365726E616D65602C20636F6E737420636861725C2A206070617373776F726460203D206E756C6C707472290A0A5365742074686520757365726E616D652F70617373776F72642E2044656661756C747320746F206E6F6E2D617574682E0A0A2A202A2A60757365726E616D65602A2A3A20557365726E616D650A2A202A2A6070617373776F7264602A2A3A2050617373776F72640A0A23232323204173796E634D717474436C69656E74262073657457696C6C28636F6E737420636861725C2A2060746F706963602C2075696E74385F742060716F73602C20626F6F6C206072657461696E602C20636F6E737420636861725C2A20607061796C6F616460203D206E756C6C7074722C2073697A655F7420606C656E67746860203D2030290A0A53657420746865204C6173742057696C6C2054657374616D656E742E2044656661756C747320746F206E6F6E652E0A0A2A202A2A60746F706963602A2A3A20546F706963206F6620746865204C57540A2A202A2A60716F73602A2A3A20516F53206F6620746865204C57540A2A202A2A6072657461696E602A2A3A2052657461696E20666C6167206F6620746865204C57540A2A202A2A607061796C6F6164602A2A3A205061796C6F6164206F6620746865204C57542E20496620756E7365742C20746865207061796C6F61642077696C6C20626520656D7074790A2A202A2A606C656E677468602A2A3A205061796C6F6164206C656E6774682E20496620756E736574206F722073657420746F20302C20746865207061796C6F61642077696C6C20626520636F6E73696465726564206173206120737472696E6720616E64206974732073697A652077696C6C2062652063616C63756C61746564207573696E6720607374726C656E287061796C6F616429600A0A23232323204173796E634D717474436C69656E7426207365745365727665722849504164647265737320606970602C2075696E7431365F742060706F727460290A0A53657420746865207365727665722E0A0A2A202A2A606970602A2A3A204950206F6620746865207365727665720A2A202A2A60706F7274602A2A3A20506F7274206F6620746865207365727665720A0A23232323204173796E634D717474436C69656E74262073657453657276657228636F6E737420636861725C2A2060686F7374602C2075696E7431365F742060706F727460290A0A53657420746865207365727665722E0A0A2A202A2A60686F7374602A2A3A20486F7374206F6620746865207365727665720A2A202A2A60706F7274602A2A3A20506F7274206F6620746865207365727665720A0A23232323204173796E634D717474436C69656E74262073657453656375726528626F6F6C206073656375726560290A0A57686574686572206F72206E6F7420746F207573652053534C2E2044656661756C747320746F206066616C7365602E0A0A2A202A2A60736563757265602A2A3A2053534C2077616E746564206F72206E6F742E0A0A23232323204173796E634D717474436C69656E74262061646453657276657246696E6765727072696E7428636F6E73742075696E74385F745C2A206066696E6765727072696E7460290A0A4164647320616E2061636365707461626C65207365727665722066696E6765727072696E74202853484131292E2054686973206D61792062652063616C6C6564206D756C7469706C652074696D657320746F207065726D697420616E79206F6E65206F6620746865207370656369666965642066696E6765727072696E74732E2042792064656661756C742C206966206E6F2066696E6765727072696E742069732061646465642C20616E792066696E6765727072696E742069732061636365707465642E0A0A2A202A2A6066696E6765727072696E74602A2A3A2046696E6765727072696E7420746F206164640A0A232323204576656E74732068616E646C6572730A0A23232323204173796E634D717474436C69656E7426206F6E436F6E6E656374284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E436F6E6E6563745573657243616C6C6261636B206063616C6C6261636B60290A0A416464206120636F6E6E656374206576656E742068616E646C65722E0A0A2A202A2A6063616C6C6261636B602A2A3A2046756E6374696F6E20746F2063616C6C0A0A23232323204173796E634D717474436C69656E7426206F6E446973636F6E6E656374284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E446973636F6E6E6563745573657243616C6C6261636B206063616C6C6261636B60290A0A416464206120646973636F6E6E656374206576656E742068616E646C65722E0A0A2A202A2A6063616C6C6261636B602A2A3A2046756E6374696F6E20746F2063616C6C0A0A23232323204173796E634D717474436C69656E7426206F6E537562736372696265284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E5375627363726962655573657243616C6C6261636B206063616C6C6261636B60290A0A4164642061207375627363726962652061636B6E6F776C6564676564206576656E742068616E646C65722E0A0A2A202A2A6063616C6C6261636B602A2A3A2046756E6374696F6E20746F2063616C6C0A0A23232323204173796E634D717474436C69656E7426206F6E556E737562736372696265284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E556E7375627363726962655573657243616C6C6261636B206063616C6C6261636B60290A0A41646420616E20756E7375627363726962652061636B6E6F776C6564676564206576656E742068616E646C65722E0A0A2A202A2A6063616C6C6261636B602A2A3A2046756E6374696F6E20746F2063616C6C0A0A23232323204173796E634D717474436C69656E7426206F6E4D657373616765284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E4D6573736167655573657243616C6C6261636B206063616C6C6261636B60290A0A4164642061207075626C697368207265636569766564206576656E742068616E646C65722E0A0A2A202A2A6063616C6C6261636B602A2A3A2046756E6374696F6E20746F2063616C6C0A0A23232323204173796E634D717474436C69656E7426206F6E5075626C697368284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E5075626C6973685573657243616C6C6261636B206063616C6C6261636B60290A0A4164642061207075626C6973682061636B6E6F776C6564676564206576656E742068616E646C65722E0A0A2A202A2A6063616C6C6261636B602A2A3A2046756E6374696F6E20746F2063616C6C0A0A232323204F7065726174696F6E2066756E6374696F6E730A0A2323232320626F6F6C20636F6E6E656374656428290A0A52657475726E2069662074686520636C69656E742069732063757272656E746C7920636F6E6E656374656420746F207468652062726F6B6572206F72206E6F742E0A0A2323232320766F696420636F6E6E65637428290A0A436F6E6E65637420746F20746865207365727665722E0A0A2323232320766F696420646973636F6E6E65637428626F6F6C2060666F72636560203D2066616C7365290A0A446973636F6E6E6563742066726F6D20746865207365727665722E0A0A2A202A2A60666F726365602A2A3A205768657468657220746F20666F7263652074686520646973636F6E6E656374696F6E2E2044656661756C747320746F206066616C7365602028636C65616E20646973636F6E6E656374696F6E292E0A0A232323232075696E7431365F742073756273637269626528636F6E737420636861725C2A2060746F706963602C2075696E74385F742060716F7360290A0A53756273637269626520746F2074686520676976656E20746F7069632061742074686520676976656E20516F532E0A0A52657475726E20746865207061636B6574204944206F722030206966206661696C65642E0A0A2A202A2A60746F706963602A2A3A20546F7069630A2A202A2A60716F73602A2A3A20516F530A0A232323232075696E7431365F7420756E73756273637269626528636F6E737420636861725C2A2060746F70696360290A0A556E7375627363726962652066726F6D2074686520676976656E20746F7069632E0A0A52657475726E20746865207061636B6574204944206F722030206966206661696C65642E0A0A2A202A2A60746F706963602A2A3A20546F7069630A0A232323232075696E7431365F74207075626C69736828636F6E737420636861725C2A2060746F706963602C2075696E74385F742060716F73602C20626F6F6C206072657461696E602C20636F6E737420636861725C2A20607061796C6F616460203D206E756C6C7074722C2073697A655F7420606C656E67746860203D20302C20626F6F6C20647570203D2066616C73652C2075696E7431365F74206D6573736167655F6964203D2030290A0A5075626C6973682061207061636B65742E0A0A52657475726E20746865207061636B657420494420286F72203120696620516F53203029206F722030206966206661696C65642E0A0A2A202A2A60746F706963602A2A3A20546F7069630A2A202A2A60716F73602A2A3A20516F530A2A202A2A6072657461696E602A2A3A2052657461696E20666C61670A2A202A2A607061796C6F6164602A2A3A205061796C6F61642E20496620756E7365742C20746865207061796C6F61642077696C6C20626520656D7074790A2A202A2A606C656E677468602A2A3A205061796C6F6164206C656E6774682E20496620756E736574206F722073657420746F20302C20746865207061796C6F61642077696C6C20626520636F6E73696465726564206173206120737472696E6720616E64206974732073697A652077696C6C2062652063616C63756C61746564207573696E6720607374726C656E287061796C6F616429600A2A202A2A60647570602A2A3A204475706C696361746520666C61672E20496620736574206F722073657420746F20312C20746865207061796C6F61642077696C6C20626520666C61676765642061732061206475706C69636174650A2A202A2A606D6573736167655F6964602A2A3A20546865206D6573736167652049442E20496620756E736574206F722073657420746F20302C20746865206D6573736167652049442077696C6C206265206175746F6D74616963616C6C792061737369676E65642E2055736520746869732077697468207468652044555020666C616720746F206964656E74696679207768696368206D657373616765206973206265696E67206475706C6963617465640A .md 3.-Memory-management 23204D656D6F7279206D616E6167656D656E740A0A4173796E634D717474436C69656E7420646F6573206E6F742075736520616E20696E7465726E616C206275666665722C2069742075736573207468652072617720544350206275666665722E0A0A546865206D617820726563656976652073697A652069732061626F75742031343630206279746573207065722063616C6C20746F20796F7572206F6E4D6573736167652063616C6C6261636B2E204275742074686520616D6F756E74206F66206461746120796F752063616E207265636569766520697320756E6C696D697465642C20617320696620796F7520726563656976652C207361792C2061203330306B42207061796C6F616420287375636820617320616E204F5441207061796C6F6164292C207468656E20796F757220606F6E4D657373616765602063616C6C6261636B2077696C6C2062652063616C6C65642061626F7574203230302074696D65732C207769746820746865206163636F7264696E67206C656E2C20696E64657820616E6420746F74616C20706172616D65746572732E204B65657020696E206D696E6420746865206C6962726172792077696C6C2063616C6C20796F757220606F6E4D657373616765602063616C6C6261636B732077697468207468652073616D6520746F706963206275666665722C20736F20696620796F75206368616E67652074686520627566666572206F6E206F6E652063616C6C2C20746865206275666665722077696C6C2072656D61696E206368616E676564206F6E2073756273657175656E742063616C6C732E0A0A596F752063616E2073656E642064617461206173206C6F6E6720617320796F7520737461792062656C6F772074686520617661696C61626C65205443502077696E646F77202877686963682069732061626F757420332D346B42206F6E207468652045535038323636292E20546865206461746120697320696E646565642068656C6420696E206D656D6F727920627920746865206173796E632054435020636F646520756E74696C2041434B2069732072656365697665642E20496620746865205443502077696E646F77207761732073756666696369656E7420746F2073656E6420796F7572207061636B65742C2074686520607075626C69736860206D6574686F642077696C6C2072657475726E2061207061636B657420494420696E6469636174696E6720746865207061636B6574207761732073656E742E204F74686572776973652C2061206030602077696C6C2062652072657475726E65642C20616E64206974277320796F757220726573706F6E736162696C69747920746F20726573656E6420746865207061636B6574207769746820607075626C697368602E0A .md 4.-Limitations-and-known-issues 23204C696D69746174696F6E7320616E64206B6E6F776E206973737565730A0A2A205768656E2074686520436C65616E53657373696F6E2069732073657420746F206066616C7365602C2074686520696D706C656D656E746174696F6E206973206E6F74207370656320636F6D706C69616E742E2054686520666F6C6C6F77696E67206973206E6F7420686F6E6F7265643A0A0A3E204D757374206265206B65707420696E206D656D6F72793A0A2A20416C6C206D6573736167657320696E206120516F532031206F72203220666C6F772C20776869636820617265206E6F7420636F6E6669726D6564206279207468652062726F6B65720A2A20416C6C20726563656976656420516F532032206D657373616765732C20776869636820617265206E6F742079657420636F6E6669726D656420746F207468652062726F6B65720A0A54686973206D65616E732072657472616E736D697373696F6E206973206E6F7420686F6E6F72656420696E2063617365206F662061206661696C7572652E0A0A2A20596F752063616E6E6F742073656E64207061796C6F6164206C6172676572207468617420776861742063616E20666974206F6E2052414D2E0A0A23232053534C206C696D69746174696F6E730A0A2A2053534C20726571756972657320757365206F6620657370383236362F41726475696E6F20322E342E302C207768696368206973206E6F74207965742072656C65617365642028706C6174666F726D203D20657370726573736966383236365F737461676520696E20506C6174666F726D494F292E0A2A2053534C20726571756972657320746865206275696C6420666C6167202D444153594E435F5443505F53534C5F454E41424C45443D310A2A2053534C206F6E6C7920737570706F7274732066696E6765727072696E747320666F72207365727665722076616C69646174696F6E2E0A2A20496620796F7520646F206E6F742073706563696679206F6E65206F72206D6F72652061636365707461626C65207365727665722066696E6765727072696E74732C207468652053534C20636F6E6E656374696F6E2077696C6C2062652076756C6E657261626C6520746F206D616E2D696E2D7468652D6D6964646C652061747461636B732E0A2A20536F6D6520736572766572206365727469666963617465207369676E617475726520616C676F726974686D7320646F206E6F7420776F726B2E20534841312C205348413232342C205348413235362C20616E64204D44352061726520776F726B696E672E205348413338342C20616E64205348413531322077696C6C20636175736520612063726173682E200A .md 5.-Troubleshooting 232054726F75626C6573686F6F74696E670A0A546F20626520636F6D706C65746564207768656E206973737565732061726973652E0A .md index 57656C636F6D6520746F20746865204173796E634D717474436C69656E7420666F72204553503832363620646F63732E0D0A0D0A2A2A3C7020616C69676E3D2263656E746572223E5468697320646F63756D656E746174696F6E206973206F6E6C792076616C696420666F7220746865204173796E634D717474436C69656E742076657273696F6E20696E2074686973207265706F2F6469726563746F72793C2F703E2A2A0A0D0A2D2D2D2D2D0D0A0D0A2323232320312E205B47657474696E6720737461727465645D28312E2D47657474696E672D737461727465642E6D64290D0A2323232320322E205B415049207265666572656E63655D28322E2D4150492D7265666572656E63652E6D64290A2323232320332E205B4D656D6F7279206D616E6167656D656E745D28332E2D4D656D6F72792D6D616E6167656D656E742E6D64290A2323232320342E205B4C696D69746174696F6E7320616E64206B6E6F776E206973737565735D28342E2D4C696D69746174696F6E732D616E642D6B6E6F776E2D6973737565732E6D64290A2323232320352E205B54726F75626C6573686F6F74696E675D28352E2D54726F75626C6573686F6F74696E672E6D64290A .md README 4173796E634D717474436C69656E7420646F63756D656E746174696F6E0D0A3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0D0A0D0A536565205B696E6465782E6D645D28696E6465782E6D642920746F2076696577206974206C6F63616C6C792C206F7220687474703A2F2F6D617276696E726F6765722E76696577646F63732E696F2F6173796E632D6D7174742D636C69656E742F20746F2076696577206974206F6E6C696E652E0D0A .md examples FullyFeatured-ESP32 FullyFeatured-ESP32 2F2A0A54686973206578616D706C652075736573204672656552544F5320736F66747761726574696D657273206173207468657265206973206E6F206275696C742D696E205469636B6572206C6962726172790A2A2F0A0A0A23696E636C756465203C576946692E683E0A65787465726E20224322207B0A0923696E636C75646520226672656572746F732F4672656552544F532E68220A0923696E636C75646520226672656572746F732F74696D6572732E68220A7D0A23696E636C756465203C4173796E634D717474436C69656E742E683E0A0A23646566696E6520574946495F535349442022796F757253534944220A23646566696E6520574946495F50415353574F52442022796F757270617373220A0A23646566696E65204D5154545F484F535420495041646472657373283139322C203136382C20312C203130290A23646566696E65204D5154545F504F525420313838330A0A4173796E634D717474436C69656E74206D717474436C69656E743B0A54696D657248616E646C655F74206D7174745265636F6E6E65637454696D65723B0A54696D657248616E646C655F7420776966695265636F6E6E65637454696D65723B0A0A766F696420636F6E6E656374546F576966692829207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374696E6720746F2057692D46692E2E2E22293B0A2020576946692E626567696E28574946495F535349442C20574946495F50415353574F5244293B0A7D0A0A766F696420636F6E6E656374546F4D7174742829207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374696E6720746F204D5154542E2E2E22293B0A20206D717474436C69656E742E636F6E6E65637428293B0A7D0A0A766F696420576946694576656E7428576946694576656E745F74206576656E7429207B0A2020202053657269616C2E7072696E746628225B576946692D6576656E745D206576656E743A2025645C6E222C206576656E74293B0A20202020737769746368286576656E7429207B0A20202020636173652053595354454D5F4556454E545F5354415F474F545F49503A0A202020202020202053657269616C2E7072696E746C6E28225769466920636F6E6E656374656422293B0A202020202020202053657269616C2E7072696E746C6E2822495020616464726573733A2022293B0A202020202020202053657269616C2E7072696E746C6E28576946692E6C6F63616C49502829293B0A2020202020202020636F6E6E656374546F4D71747428293B0A2020202020202020627265616B3B0A20202020636173652053595354454D5F4556454E545F5354415F444953434F4E4E45435445443A0A202020202020202053657269616C2E7072696E746C6E282257694669206C6F737420636F6E6E656374696F6E22293B0A20202020202020207854696D657253746F70286D7174745265636F6E6E65637454696D65722C2030293B202F2F20656E7375726520776520646F6E2774207265636F6E6E65637420746F204D515454207768696C65207265636F6E6E656374696E6720746F2057692D46690A09097854696D6572537461727428776966695265636F6E6E65637454696D65722C2030293B0A2020202020202020627265616B3B0A202020207D0A7D0A0A766F6964206F6E4D717474436F6E6E65637428626F6F6C2073657373696F6E50726573656E7429207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374656420746F204D5154542E22293B0A202053657269616C2E7072696E74282253657373696F6E2070726573656E743A2022293B0A202053657269616C2E7072696E746C6E2873657373696F6E50726573656E74293B0A202075696E7431365F74207061636B65744964537562203D206D717474436C69656E742E7375627363726962652822746573742F6C6F6C222C2032293B0A202053657269616C2E7072696E7428225375627363726962696E6720617420516F5320322C207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964537562293B0A20206D717474436C69656E742E7075626C6973682822746573742F6C6F6C222C20302C20747275652C202274657374203122293B0A202053657269616C2E7072696E746C6E28225075626C697368696E6720617420516F53203022293B0A202075696E7431365F74207061636B6574496450756231203D206D717474436C69656E742E7075626C6973682822746573742F6C6F6C222C20312C20747275652C202274657374203222293B0A202053657269616C2E7072696E7428225075626C697368696E6720617420516F5320312C207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B6574496450756231293B0A202075696E7431365F74207061636B6574496450756232203D206D717474436C69656E742E7075626C6973682822746573742F6C6F6C222C20322C20747275652C202274657374203322293B0A202053657269616C2E7072696E7428225075626C697368696E6720617420516F5320322C207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B6574496450756232293B0A7D0A0A766F6964206F6E4D717474446973636F6E6E656374284173796E634D717474436C69656E74446973636F6E6E656374526561736F6E20726561736F6E29207B0A202053657269616C2E7072696E746C6E2822446973636F6E6E65637465642066726F6D204D5154542E22293B0A0A202069662028576946692E6973436F6E6E6563746564282929207B0A202020207854696D65725374617274286D7174745265636F6E6E65637454696D65722C2030293B0A20207D0A7D0A0A766F6964206F6E4D7174745375627363726962652875696E7431365F74207061636B657449642C2075696E74385F7420716F7329207B0A202053657269616C2E7072696E746C6E28225375627363726962652061636B6E6F776C65646765642E22293B0A202053657269616C2E7072696E74282220207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964293B0A202053657269616C2E7072696E7428222020716F733A2022293B0A202053657269616C2E7072696E746C6E28716F73293B0A7D0A0A766F6964206F6E4D717474556E7375627363726962652875696E7431365F74207061636B6574496429207B0A202053657269616C2E7072696E746C6E2822556E7375627363726962652061636B6E6F776C65646765642E22293B0A202053657269616C2E7072696E74282220207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964293B0A7D0A0A766F6964206F6E4D7174744D65737361676528636861722A20746F7069632C20636861722A207061796C6F61642C204173796E634D717474436C69656E744D65737361676550726F706572746965732070726F706572746965732C2073697A655F74206C656E2C2073697A655F7420696E6465782C2073697A655F7420746F74616C29207B0A202053657269616C2E7072696E746C6E28225075626C6973682072656365697665642E22293B0A202053657269616C2E7072696E7428222020746F7069633A2022293B0A202053657269616C2E7072696E746C6E28746F706963293B0A202053657269616C2E7072696E7428222020716F733A2022293B0A202053657269616C2E7072696E746C6E2870726F706572746965732E716F73293B0A202053657269616C2E7072696E74282220206475703A2022293B0A202053657269616C2E7072696E746C6E2870726F706572746965732E647570293B0A202053657269616C2E7072696E742822202072657461696E3A2022293B0A202053657269616C2E7072696E746C6E2870726F706572746965732E72657461696E293B0A202053657269616C2E7072696E74282220206C656E3A2022293B0A202053657269616C2E7072696E746C6E286C656E293B0A202053657269616C2E7072696E7428222020696E6465783A2022293B0A202053657269616C2E7072696E746C6E28696E646578293B0A202053657269616C2E7072696E7428222020746F74616C3A2022293B0A202053657269616C2E7072696E746C6E28746F74616C293B0A7D0A0A766F6964206F6E4D7174745075626C6973682875696E7431365F74207061636B6574496429207B0A202053657269616C2E7072696E746C6E28225075626C6973682061636B6E6F776C65646765642E22293B0A202053657269616C2E7072696E74282220207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964293B0A7D0A0A766F69642073657475702829207B0A202053657269616C2E626567696E28313135323030293B0A202053657269616C2E7072696E746C6E28293B0A202053657269616C2E7072696E746C6E28293B0A0A20206D7174745265636F6E6E65637454696D6572203D207854696D657243726561746528226D71747454696D6572222C2070644D535F544F5F5449434B532832303030292C20706446414C53452C2028766F69642A29302C207265696E746572707265745F636173743C54696D657243616C6C6261636B46756E6374696F6E5F743E28636F6E6E656374546F4D71747429293B0A2020776966695265636F6E6E65637454696D6572203D207854696D657243726561746528227769666954696D6572222C2070644D535F544F5F5449434B532832303030292C20706446414C53452C2028766F69642A29302C207265696E746572707265745F636173743C54696D657243616C6C6261636B46756E6374696F6E5F743E28636F6E6E656374546F5769666929293B0A0A2020576946692E6F6E4576656E7428576946694576656E74293B0A0A20206D717474436C69656E742E6F6E436F6E6E656374286F6E4D717474436F6E6E656374293B0A20206D717474436C69656E742E6F6E446973636F6E6E656374286F6E4D717474446973636F6E6E656374293B0A20206D717474436C69656E742E6F6E537562736372696265286F6E4D717474537562736372696265293B0A20206D717474436C69656E742E6F6E556E737562736372696265286F6E4D717474556E737562736372696265293B0A20206D717474436C69656E742E6F6E4D657373616765286F6E4D7174744D657373616765293B0A20206D717474436C69656E742E6F6E5075626C697368286F6E4D7174745075626C697368293B0A20206D717474436C69656E742E736574536572766572284D5154545F484F53542C204D5154545F504F5254293B0A0A2020636F6E6E656374546F5769666928293B0A7D0A0A766F6964206C6F6F702829207B0A7D0A .ino FullyFeatured-ESP8266 FullyFeatured-ESP8266 23696E636C756465203C45535038323636576946692E683E0A23696E636C756465203C5469636B65722E683E0A23696E636C756465203C4173796E634D717474436C69656E742E683E0A0A23646566696E6520574946495F5353494420224D795F57692D4669220A23646566696E6520574946495F50415353574F524420226D792D617765736F6D652D70617373776F7264220A0A23646566696E65204D5154545F484F535420495041646472657373283139322C203136382C20312C203130290A23646566696E65204D5154545F504F525420313838330A0A4173796E634D717474436C69656E74206D717474436C69656E743B0A5469636B6572206D7174745265636F6E6E65637454696D65723B0A0A576946694576656E7448616E646C65722077696669436F6E6E65637448616E646C65723B0A576946694576656E7448616E646C65722077696669446973636F6E6E65637448616E646C65723B0A5469636B657220776966695265636F6E6E65637454696D65723B0A0A766F696420636F6E6E656374546F576966692829207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374696E6720746F2057692D46692E2E2E22293B0A2020576946692E626567696E28574946495F535349442C20574946495F50415353574F5244293B0A7D0A0A766F6964206F6E57696669436F6E6E65637428636F6E737420576946694576656E7453746174696F6E4D6F6465476F74495026206576656E7429207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374656420746F2057692D46692E22293B0A2020636F6E6E656374546F4D71747428293B0A7D0A0A766F6964206F6E57696669446973636F6E6E65637428636F6E737420576946694576656E7453746174696F6E4D6F6465446973636F6E6E656374656426206576656E7429207B0A202053657269616C2E7072696E746C6E2822446973636F6E6E65637465642066726F6D2057692D46692E22293B0A20206D7174745265636F6E6E65637454696D65722E64657461636828293B202F2F20656E7375726520776520646F6E2774207265636F6E6E65637420746F204D515454207768696C65207265636F6E6E656374696E6720746F2057692D46690A2020776966695265636F6E6E65637454696D65722E6F6E636528322C20636F6E6E656374546F57696669293B0A7D0A0A766F696420636F6E6E656374546F4D7174742829207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374696E6720746F204D5154542E2E2E22293B0A20206D717474436C69656E742E636F6E6E65637428293B0A7D0A0A766F6964206F6E4D717474436F6E6E65637428626F6F6C2073657373696F6E50726573656E7429207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374656420746F204D5154542E22293B0A202053657269616C2E7072696E74282253657373696F6E2070726573656E743A2022293B0A202053657269616C2E7072696E746C6E2873657373696F6E50726573656E74293B0A202075696E7431365F74207061636B65744964537562203D206D717474436C69656E742E7375627363726962652822746573742F6C6F6C222C2032293B0A202053657269616C2E7072696E7428225375627363726962696E6720617420516F5320322C207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964537562293B0A20206D717474436C69656E742E7075626C6973682822746573742F6C6F6C222C20302C20747275652C202274657374203122293B0A202053657269616C2E7072696E746C6E28225075626C697368696E6720617420516F53203022293B0A202075696E7431365F74207061636B6574496450756231203D206D717474436C69656E742E7075626C6973682822746573742F6C6F6C222C20312C20747275652C202274657374203222293B0A202053657269616C2E7072696E7428225075626C697368696E6720617420516F5320312C207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B6574496450756231293B0A202075696E7431365F74207061636B6574496450756232203D206D717474436C69656E742E7075626C6973682822746573742F6C6F6C222C20322C20747275652C202274657374203322293B0A202053657269616C2E7072696E7428225075626C697368696E6720617420516F5320322C207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B6574496450756232293B0A7D0A0A766F6964206F6E4D717474446973636F6E6E656374284173796E634D717474436C69656E74446973636F6E6E656374526561736F6E20726561736F6E29207B0A202053657269616C2E7072696E746C6E2822446973636F6E6E65637465642066726F6D204D5154542E22293B0A0A202069662028576946692E6973436F6E6E6563746564282929207B0A202020206D7174745265636F6E6E65637454696D65722E6F6E636528322C20636F6E6E656374546F4D717474293B0A20207D0A7D0A0A766F6964206F6E4D7174745375627363726962652875696E7431365F74207061636B657449642C2075696E74385F7420716F7329207B0A202053657269616C2E7072696E746C6E28225375627363726962652061636B6E6F776C65646765642E22293B0A202053657269616C2E7072696E74282220207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964293B0A202053657269616C2E7072696E7428222020716F733A2022293B0A202053657269616C2E7072696E746C6E28716F73293B0A7D0A0A766F6964206F6E4D717474556E7375627363726962652875696E7431365F74207061636B6574496429207B0A202053657269616C2E7072696E746C6E2822556E7375627363726962652061636B6E6F776C65646765642E22293B0A202053657269616C2E7072696E74282220207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964293B0A7D0A0A766F6964206F6E4D7174744D65737361676528636861722A20746F7069632C20636861722A207061796C6F61642C204173796E634D717474436C69656E744D65737361676550726F706572746965732070726F706572746965732C2073697A655F74206C656E2C2073697A655F7420696E6465782C2073697A655F7420746F74616C29207B0A202053657269616C2E7072696E746C6E28225075626C6973682072656365697665642E22293B0A202053657269616C2E7072696E7428222020746F7069633A2022293B0A202053657269616C2E7072696E746C6E28746F706963293B0A202053657269616C2E7072696E7428222020716F733A2022293B0A202053657269616C2E7072696E746C6E2870726F706572746965732E716F73293B0A202053657269616C2E7072696E74282220206475703A2022293B0A202053657269616C2E7072696E746C6E2870726F706572746965732E647570293B0A202053657269616C2E7072696E742822202072657461696E3A2022293B0A202053657269616C2E7072696E746C6E2870726F706572746965732E72657461696E293B0A202053657269616C2E7072696E74282220206C656E3A2022293B0A202053657269616C2E7072696E746C6E286C656E293B0A202053657269616C2E7072696E7428222020696E6465783A2022293B0A202053657269616C2E7072696E746C6E28696E646578293B0A202053657269616C2E7072696E7428222020746F74616C3A2022293B0A202053657269616C2E7072696E746C6E28746F74616C293B0A7D0A0A766F6964206F6E4D7174745075626C6973682875696E7431365F74207061636B6574496429207B0A202053657269616C2E7072696E746C6E28225075626C6973682061636B6E6F776C65646765642E22293B0A202053657269616C2E7072696E74282220207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964293B0A7D0A0A766F69642073657475702829207B0A202053657269616C2E626567696E28313135323030293B0A202053657269616C2E7072696E746C6E28293B0A202053657269616C2E7072696E746C6E28293B0A0A202077696669436F6E6E65637448616E646C6572203D20576946692E6F6E53746174696F6E4D6F6465476F744950286F6E57696669436F6E6E656374293B0A202077696669446973636F6E6E65637448616E646C6572203D20576946692E6F6E53746174696F6E4D6F6465446973636F6E6E6563746564286F6E57696669446973636F6E6E656374293B0A0A20206D717474436C69656E742E6F6E436F6E6E656374286F6E4D717474436F6E6E656374293B0A20206D717474436C69656E742E6F6E446973636F6E6E656374286F6E4D717474446973636F6E6E656374293B0A20206D717474436C69656E742E6F6E537562736372696265286F6E4D717474537562736372696265293B0A20206D717474436C69656E742E6F6E556E737562736372696265286F6E4D717474556E737562736372696265293B0A20206D717474436C69656E742E6F6E4D657373616765286F6E4D7174744D657373616765293B0A20206D717474436C69656E742E6F6E5075626C697368286F6E4D7174745075626C697368293B0A20206D717474436C69656E742E736574536572766572284D5154545F484F53542C204D5154545F504F5254293B0A0A2020636F6E6E656374546F5769666928293B0A7D0A0A766F6964206C6F6F702829207B0A7D0A .ino FullyFeaturedSSL platformio 230A23204578616D706C6520506C6174666F726D494F20636F6E66696775726174696F6E2066696C6520666F722053534C20616E64206E6F6E2D53534C206275696C64732E0A230A23204265666F726520796F752077696C6C2062652061626C6520746F206275696C64207468652053534C2076657273696F6E206F6620746869732070726F6A6563742C20796F752077696C6C0A23206E65656420746F206578706C696369746C7920696E7374616C6C2074686520657370726573736966383236365F737461676520706C6174666F726D2E0A230A2320546F20706572666F726D207468697320696E7374616C6C6174696F6E2C20726566657220746F20737465702031206F663A0A2320687474703A2F2F646F63732E706C6174666F726D696F2E6F72672F656E2F6C61746573742F706C6174666F726D732F657370726573736966383236362E68746D6C237573696E672D61726475696E6F2D6672616D65776F726B2D776974682D73746167696E672D76657273696F6E0A0A5B706C6174666F726D696F5D0A656E765F64656661756C74203D2073736C0A0A5B656E763A73736C5D0A706C6174666F726D203D20657370726573736966383236365F73746167650A6672616D65776F726B203D2061726475696E6F0A626F617264203D2065737030315F316D0A6275696C645F666C616773203D202D444153594E435F5443505F53534C5F454E41424C45443D310A6C69625F64657073203D204173796E634D717474436C69656E740A0A5B656E763A6E6F73736C5D0A706C6174666F726D203D20657370726573736966383236360A6672616D65776F726B203D2061726475696E6F0A626F617264203D2065737030315F316D0A6C69625F64657073203D204173796E634D717474436C69656E740A .ini src main 0A2F2F204578616D706C652070726F6A6563742077686963682063616E206265206275696C7420776974682053534C20656E61626C6564206F722064697361626C65642E0A2F2F2054686520657370726573736966383236365F737461676520706C6174666F726D206D75737420626520696E7374616C6C65642E0A2F2F20526566657220746F20706C6174666F726D696F2E696E6920666F7220746865206275696C6420636F6E66696775726174696F6E20616E6420706C6174666F726D20696E7374616C6C6174696F6E2E0A0A23696E636C756465203C41726475696E6F2E683E0A23696E636C756465203C45535038323636576946692E683E0A23696E636C756465203C5469636B65722E683E0A23696E636C756465203C4173796E634D717474436C69656E742E683E0A0A23646566696E6520574946495F5353494420224D795F57692D4669220A23646566696E6520574946495F50415353574F524420226D792D617765736F6D652D70617373776F7264220A0A23646566696E65204D5154545F484F535420495041646472657373283139322C203136382C20312C203130290A0A236966204153594E435F5443505F53534C5F454E41424C45440A23646566696E65204D5154545F53454355524520747275650A23646566696E65204D5154545F5345525645525F46494E4745525052494E54207B307837652C20307833362C20307832322C20307830312C20307866392C20307837652C20307839392C20307832662C20307863352C20307864622C20307833642C20307862652C20307861632C20307834382C20307836372C20307835622C20307835642C20307834372C20307839342C20307864327D0A23646566696E65204D5154545F504F525420383838330A23656C73650A23646566696E65204D5154545F504F525420313838330A23656E6469660A0A4173796E634D717474436C69656E74206D717474436C69656E743B0A5469636B6572206D7174745265636F6E6E65637454696D65723B0A0A576946694576656E7448616E646C65722077696669436F6E6E65637448616E646C65723B0A576946694576656E7448616E646C65722077696669446973636F6E6E65637448616E646C65723B0A5469636B657220776966695265636F6E6E65637454696D65723B0A0A766F696420636F6E6E656374546F576966692829207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374696E6720746F2057692D46692E2E2E22293B0A2020576946692E626567696E28574946495F535349442C20574946495F50415353574F5244293B0A7D0A0A766F696420636F6E6E656374546F4D7174742829207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374696E6720746F204D5154542E2E2E22293B0A20206D717474436C69656E742E636F6E6E65637428293B0A7D0A0A766F6964206F6E57696669436F6E6E65637428636F6E737420576946694576656E7453746174696F6E4D6F6465476F74495026206576656E7429207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374656420746F2057692D46692E22293B0A2020636F6E6E656374546F4D71747428293B0A7D0A0A766F6964206F6E57696669446973636F6E6E65637428636F6E737420576946694576656E7453746174696F6E4D6F6465446973636F6E6E656374656426206576656E7429207B0A202053657269616C2E7072696E746C6E2822446973636F6E6E65637465642066726F6D2057692D46692E22293B0A20206D7174745265636F6E6E65637454696D65722E64657461636828293B202F2F20656E7375726520776520646F6E2774207265636F6E6E65637420746F204D515454207768696C65207265636F6E6E656374696E6720746F2057692D46690A2020776966695265636F6E6E65637454696D65722E6F6E636528322C20636F6E6E656374546F57696669293B0A7D0A0A766F6964206F6E4D717474436F6E6E65637428626F6F6C2073657373696F6E50726573656E7429207B0A202053657269616C2E7072696E746C6E2822436F6E6E656374656420746F204D5154542E22293B0A202053657269616C2E7072696E74282253657373696F6E2070726573656E743A2022293B0A202053657269616C2E7072696E746C6E2873657373696F6E50726573656E74293B0A202075696E7431365F74207061636B65744964537562203D206D717474436C69656E742E7375627363726962652822746573742F6C6F6C222C2032293B0A202053657269616C2E7072696E7428225375627363726962696E6720617420516F5320322C207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964537562293B0A20206D717474436C69656E742E7075626C6973682822746573742F6C6F6C222C20302C20747275652C202274657374203122293B0A202053657269616C2E7072696E746C6E28225075626C697368696E6720617420516F53203022293B0A202075696E7431365F74207061636B6574496450756231203D206D717474436C69656E742E7075626C6973682822746573742F6C6F6C222C20312C20747275652C202274657374203222293B0A202053657269616C2E7072696E7428225075626C697368696E6720617420516F5320312C207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B6574496450756231293B0A202075696E7431365F74207061636B6574496450756232203D206D717474436C69656E742E7075626C6973682822746573742F6C6F6C222C20322C20747275652C202274657374203322293B0A202053657269616C2E7072696E7428225075626C697368696E6720617420516F5320322C207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B6574496450756232293B0A7D0A0A766F6964206F6E4D717474446973636F6E6E656374284173796E634D717474436C69656E74446973636F6E6E656374526561736F6E20726561736F6E29207B0A202053657269616C2E7072696E746C6E2822446973636F6E6E65637465642066726F6D204D5154542E22293B0A0A202069662028726561736F6E203D3D204173796E634D717474436C69656E74446973636F6E6E656374526561736F6E3A3A544C535F4241445F46494E4745525052494E5429207B0A2020202053657269616C2E7072696E746C6E2822426164207365727665722066696E6765727072696E742E22293B0A20207D0A0A202069662028576946692E6973436F6E6E6563746564282929207B0A202020206D7174745265636F6E6E65637454696D65722E6F6E636528322C20636F6E6E656374546F4D717474293B0A20207D0A7D0A0A766F6964206F6E4D7174745375627363726962652875696E7431365F74207061636B657449642C2075696E74385F7420716F7329207B0A202053657269616C2E7072696E746C6E28225375627363726962652061636B6E6F776C65646765642E22293B0A202053657269616C2E7072696E74282220207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964293B0A202053657269616C2E7072696E7428222020716F733A2022293B0A202053657269616C2E7072696E746C6E28716F73293B0A7D0A0A766F6964206F6E4D717474556E7375627363726962652875696E7431365F74207061636B6574496429207B0A202053657269616C2E7072696E746C6E2822556E7375627363726962652061636B6E6F776C65646765642E22293B0A202053657269616C2E7072696E74282220207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964293B0A7D0A0A766F6964206F6E4D7174744D65737361676528636861722A20746F7069632C20636861722A207061796C6F61642C204173796E634D717474436C69656E744D65737361676550726F706572746965732070726F706572746965732C2073697A655F74206C656E2C2073697A655F7420696E6465782C2073697A655F7420746F74616C29207B0A202053657269616C2E7072696E746C6E28225075626C6973682072656365697665642E22293B0A202053657269616C2E7072696E7428222020746F7069633A2022293B0A202053657269616C2E7072696E746C6E28746F706963293B0A202053657269616C2E7072696E7428222020716F733A2022293B0A202053657269616C2E7072696E746C6E2870726F706572746965732E716F73293B0A202053657269616C2E7072696E74282220206475703A2022293B0A202053657269616C2E7072696E746C6E2870726F706572746965732E647570293B0A202053657269616C2E7072696E742822202072657461696E3A2022293B0A202053657269616C2E7072696E746C6E2870726F706572746965732E72657461696E293B0A202053657269616C2E7072696E74282220206C656E3A2022293B0A202053657269616C2E7072696E746C6E286C656E293B0A202053657269616C2E7072696E7428222020696E6465783A2022293B0A202053657269616C2E7072696E746C6E28696E646578293B0A202053657269616C2E7072696E7428222020746F74616C3A2022293B0A202053657269616C2E7072696E746C6E28746F74616C293B0A7D0A0A766F6964206F6E4D7174745075626C6973682875696E7431365F74207061636B6574496429207B0A202053657269616C2E7072696E746C6E28225075626C6973682061636B6E6F776C65646765642E22293B0A202053657269616C2E7072696E74282220207061636B657449643A2022293B0A202053657269616C2E7072696E746C6E287061636B65744964293B0A7D0A0A766F69642073657475702829207B0A202053657269616C2E626567696E28313135323030293B0A202053657269616C2E7072696E746C6E28293B0A202053657269616C2E7072696E746C6E28293B0A0A202077696669436F6E6E65637448616E646C6572203D20576946692E6F6E53746174696F6E4D6F6465476F744950286F6E57696669436F6E6E656374293B0A202077696669446973636F6E6E65637448616E646C6572203D20576946692E6F6E53746174696F6E4D6F6465446973636F6E6E6563746564286F6E57696669446973636F6E6E656374293B0A0A20206D717474436C69656E742E6F6E436F6E6E656374286F6E4D717474436F6E6E656374293B0A20206D717474436C69656E742E6F6E446973636F6E6E656374286F6E4D717474446973636F6E6E656374293B0A20206D717474436C69656E742E6F6E537562736372696265286F6E4D717474537562736372696265293B0A20206D717474436C69656E742E6F6E556E737562736372696265286F6E4D717474556E737562736372696265293B0A20206D717474436C69656E742E6F6E4D657373616765286F6E4D7174744D657373616765293B0A20206D717474436C69656E742E6F6E5075626C697368286F6E4D7174745075626C697368293B0A20206D717474436C69656E742E736574536572766572284D5154545F484F53542C204D5154545F504F5254293B0A236966204153594E435F5443505F53534C5F454E41424C45440A20206D717474436C69656E742E736574536563757265284D5154545F534543555245293B0A2020696620284D5154545F53454355524529207B0A202020206D717474436C69656E742E61646453657276657246696E6765727072696E742828636F6E73742075696E74385F745B5D294D5154545F5345525645525F46494E4745525052494E54293B0A20207D0A23656E6469660A0A2020636F6E6E656374546F5769666928293B0A7D0A0A766F6964206C6F6F702829207B0A7D0A .cpp keywords 2323232323232323232323232323232323232323232323232323232323232323232323232323230D0A232044617461747970657320284B4559574F524431290D0A2323232323232323232323232323232323232323232323232323232323232323232323232323230D0A0D0A4173796E634D717474436C69656E74094B4559574F5244310D0A4173796E634D717474436C69656E74446973636F6E6E656374526561736F6E094B4559574F5244310D0A4173796E634D717474436C69656E744D65737361676550726F70657274696573094B4559574F5244310D0A0D0A2323232323232323232323232323232323232323232323232323232323232323232323232323230D0A23204D6574686F647320616E642046756E6374696F6E7320284B4559574F524432290D0A2323232323232323232323232323232323232323232323232323232323232323232323232323230D0A0D0A7365744B656570416C697665094B4559574F5244320D0A736574436C69656E744964094B4559574F5244320D0A736574436C65616E53657373696F6E094B4559574F5244320D0A7365744D6178546F7069634C656E677468094B4559574F5244320D0A73657443726564656E7469616C73094B4559574F5244320D0A73657457696C6C094B4559574F5244320D0A736574536572766572094B4559574F5244320D0A736574536563757265094B4559574F5244320D0A61646453657276657246696E6765727072696E74094B4559574F5244320D0A0D0A6F6E436F6E6E656374094B4559574F5244320D0A6F6E446973636F6E6E656374094B4559574F5244320D0A6F6E537562736372696265094B4559574F5244320D0A6F6E556E737562736372696265094B4559574F5244320D0A6F6E4D657373616765094B4559574F5244320D0A6F6E5075626C697368094B4559574F5244320D0A0D0A636F6E6E6563746564094B4559574F5244320D0A636F6E6E656374094B4559574F5244320D0A646973636F6E6E656374094B4559574F5244320D0A737562736372696265094B4559574F5244320D0A756E737562736372696265094B4559574F5244320D0A7075626C697368094B4559574F5244320D0A0D0A2323232323232323232323232323232323232323232323232323232323232323232323232323230D0A2320436F6E7374616E747320284C49544552414C31290D0A2323232323232323232323232323232323232323232323232323232323232323232323232323230D0A0D0A5443505F444953434F4E4E4543544544094C49544552414C310D0A0D0A4D5154545F554E41434345505441424C455F50524F544F434F4C5F56455253494F4E094C49544552414C310D0A4D5154545F4944454E5449464945525F52454A4543544544094C49544552414C310D0A4D5154545F5345525645525F554E415641494C41424C45094C49544552414C310D0A4D5154545F4D414C464F524D45445F43524544454E5449414C53094C49544552414C310D0A4D5154545F4E4F545F415554484F52495A4544094C49544552414C310D0A .txt library 7B0A2020226E616D65223A20224173796E634D717474436C69656E74222C0A2020226B6579776F726473223A2022696F742C20686F6D652C206175746F6D6174696F6E2C206173796E632C206D7174742C20636C69656E742C2065737038323636222C0A2020226465736372697074696F6E223A2022416E2041726475696E6F20666F722045535038323636202F204553503332206173796E6368726F6E6F7573204D51545420636C69656E7420696D706C656D656E746174696F6E222C0A202022617574686F7273223A0A20207B0A20202020226E616D65223A20224D617276696E20524F474552222C0A202020202275726C223A202268747470733A2F2F7777772E6D617276696E726F6765722E6672220A20207D2C0A2020227265706F7369746F7279223A0A20207B0A202020202274797065223A2022676974222C0A202020202275726C223A202268747470733A2F2F6769746875622E636F6D2F6D617276696E726F6765722F6173796E632D6D7174742D636C69656E742E676974220A20207D2C0A20202276657273696F6E223A2022302E382E32222C0A2020226672616D65776F726B73223A202261726475696E6F222C0A202022706C6174666F726D73223A205B2265737072657373696638323636222C20226573707265737369663332225D2C0A202022646570656E64656E63696573223A205B0A202020207B0A202020202020226E616D65223A20224553504173796E63544350222C0A2020202020202276657273696F6E223A20225E312E312E30222C0A20202020202022706C6174666F726D73223A202265737072657373696638323636220A202020207D2C0A202020207B0A202020202020226E616D65223A20224173796E63544350222C0A2020202020202276657273696F6E223A20225E312E302E30222C0A20202020202022706C6174666F726D73223A20226573707265737369663332220A202020207D0A20205D0A7D0A .json library 6E616D653D4173796E634D717474436C69656E740A76657273696F6E3D302E382E320A617574686F723D4D617276696E20524F4745520A6D61696E7461696E65723D4D617276696E20524F4745520A73656E74656E63653D416E2041726475696E6F20666F72204553503832363620616E64204553503332206173796E6368726F6E6F7573204D51545420636C69656E7420696D706C656D656E746174696F6E0A7061726167726170683D4C696B6520746869732070726F6A6563743F20506C656173652073746172206974206F6E20476974487562210A63617465676F72793D436F6D6D756E69636174696F6E0A75726C3D68747470733A2F2F6769746875622E636F6D2F6D617276696E726F6765722F6173796E632D6D7174742D636C69656E740A617263686974656374757265733D657370383236362C65737033320A .properties LICENSE 546865204D4954204C6963656E736520284D4954290A0A436F70797269676874202863292032303135204D617276696E20526F6765720A0A5065726D697373696F6E20697320686572656279206772616E7465642C2066726565206F66206368617267652C20746F20616E7920706572736F6E206F627461696E696E67206120636F70790A6F66207468697320736F66747761726520616E64206173736F63696174656420646F63756D656E746174696F6E2066696C657320287468652022536F66747761726522292C20746F206465616C0A696E2074686520536F66747761726520776974686F7574207265737472696374696F6E2C20696E636C7564696E6720776974686F7574206C696D69746174696F6E20746865207269676874730A746F207573652C20636F70792C206D6F646966792C206D657267652C207075626C6973682C20646973747269627574652C207375626C6963656E73652C20616E642F6F722073656C6C0A636F70696573206F662074686520536F6674776172652C20616E6420746F207065726D697420706572736F6E7320746F2077686F6D2074686520536F6674776172652069730A6675726E697368656420746F20646F20736F2C207375626A65637420746F2074686520666F6C6C6F77696E6720636F6E646974696F6E733A0A0A5468652061626F766520636F70797269676874206E6F7469636520616E642074686973207065726D697373696F6E206E6F74696365207368616C6C20626520696E636C7564656420696E20616C6C0A636F70696573206F72207375627374616E7469616C20706F7274696F6E73206F662074686520536F6674776172652E0A0A54484520534F4654574152452049532050524F564944454420224153204953222C20574954484F55542057415252414E5459204F4620414E59204B494E442C2045585052455353204F520A494D504C4945442C20494E434C5544494E4720425554204E4F54204C494D4954454420544F205448452057415252414E54494553204F46204D45524348414E544142494C4954592C0A4649544E45535320464F52204120504152544943554C415220505552504F534520414E44204E4F4E494E4652494E47454D454E542E20494E204E4F204556454E54205348414C4C205448450A415554484F5253204F5220434F5059524947485420484F4C44455253204245204C4941424C4520464F5220414E5920434C41494D2C2044414D41474553204F52204F544845520A4C494142494C4954592C205748455448455220494E20414E20414354494F4E204F4620434F4E54524143542C20544F5254204F52204F54484552574953452C2041524953494E472046524F4D2C0A4F5554204F46204F5220494E20434F4E4E454354494F4E20574954482054484520534F465457415245204F522054484520555345204F52204F54484552204445414C494E475320494E205448450A534F4654574152452E0A Makefile 6370706C696E743A0D0A096370706C696E74202D2D7265706F7369746F72793D2E202D2D726563757273697665202D2D66696C7465723D2D776869746573706163652F6C696E655F6C656E6774682C2D6C6567616C2F636F707972696768742C2D72756E74696D652F7072696E74662C2D6275696C642F696E636C7564652C2D6275696C642F6E616D657370616365202E2F7372630D0A2E50484F4E593A206370706C696E740D0A README 4173796E63204D51545420636C69656E7420666F72204553503832363620616E642045535033320A3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A0A5B215B4275696C64205374617475735D2868747470733A2F2F696D672E736869656C64732E696F2F7472617669732F6D617276696E726F6765722F6173796E632D6D7174742D636C69656E742F6D61737465722E7376673F7374796C653D666C61742D737175617265295D2868747470733A2F2F7472617669732D63692E6F72672F6D617276696E726F6765722F6173796E632D6D7174742D636C69656E74290A0A416E2041726475696E6F20666F72204553503832363620616E64204553503332206173796E6368726F6E6F7573205B4D5154545D28687474703A2F2F6D7174742E6F72672F2920636C69656E7420696D706C656D656E746174696F6E2C206275696C74206F6E205B6D652D6E6F2D6465762F4553504173796E63544350202845535038323636295D2868747470733A2F2F6769746875622E636F6D2F6D652D6E6F2D6465762F4553504173796E6354435029207C205B6D652D6E6F2D6465762F4173796E6354435020284553503332295D2868747470733A2F2F6769746875622E636F6D2F6D652D6E6F2D6465762F4173796E6354435029202E0A23232046656174757265730A0A2A20436F6D706C69616E7420776974682074686520332E312E312076657273696F6E206F66207468652070726F746F636F6C0A2A2046756C6C79206173796E6368726F6E6F75730A2A2053756273637269626520617420516F5320302C203120616E6420320A2A205075626C69736820617420516F5320302C203120616E6420320A2A2053534C2F544C5320737570706F72740A2A20417661696C61626C6520696E20746865205B506C6174666F726D494F2072656769737472795D28687474703A2F2F706C6174666F726D696F2E6F72672F6C69622F73686F772F3334362F4173796E634D717474436C69656E74290A0A232320526571756972656D656E74732C20696E7374616C6C6174696F6E20616E642075736167650A0A5468652070726F6A65637420697320646F63756D656E74656420696E20746865205B2F646F637320666F6C6465725D28646F6373292E0A .md scripts get-fingerprint get-fingerprint 23212F7573722F62696E2F656E7620707974686F6E0A0A696D706F72742061726770617273650A696D706F72742073736C0A696D706F727420686173686C69620A0A706172736572203D2061726770617273652E417267756D656E74506172736572286465736372697074696F6E3D27436F6D707574652053534C2F544C532066696E6765727072696E74732E27290A7061727365722E6164645F617267756D656E7428272D2D686F7374272C2072657175697265643D54727565290A7061727365722E6164645F617267756D656E7428272D2D706F7274272C2064656661756C743D38383833290A0A61726773203D207061727365722E70617273655F6172677328290A7072696E7428617267732E686F7374290A0A636572745F70656D203D2073736C2E6765745F7365727665725F63657274696669636174652828617267732E686F73742C20617267732E706F727429290A636572745F646572203D2073736C2E50454D5F636572745F746F5F4445525F6365727428636572745F70656D290A0A6D6435203D20686173686C69622E6D643528636572745F646572292E68657864696765737428290A73686131203D20686173686C69622E7368613128636572745F646572292E68657864696765737428290A736861323536203D20686173686C69622E73686132353628636572745F646572292E68657864696765737428290A7072696E7428224D44353A2022202B206D6435290A7072696E742822534841313A2022202B2073686131290A7072696E7428225348413235363A2022202B20736861323536290A0A7072696E7428225C6E5348413120617320617272617920696E697469616C697A65723A22290A7072696E742822636F6E73742075696E74385F742066696E6765727072696E745B5D203D207B307822202B20222C203078222E6A6F696E285B736861315B693A692B325D20666F72206920696E2072616E676528302C206C656E2873686131292C2032295D29202B20227D3B22290A0A7072696E7428225C6E534841312061732066756E6374696F6E2063616C6C3A22290A7072696E7428226D717474436C69656E742E61646453657276657246696E6765727072696E742828636F6E73742075696E74385F745B5D297B307822202B20222C203078222E6A6F696E285B736861315B693A692B325D20666F72206920696E2072616E676528302C206C656E2873686131292C2032295D29202B20227D293B22290A .py src AsyncMqttClient Callbacks 23707261676D61206F6E63650D0A0D0A23696E636C756465203C66756E6374696F6E616C3E0D0A0D0A23696E636C7564652022446973636F6E6E656374526561736F6E732E687070220D0A23696E636C75646520224D65737361676550726F706572746965732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A2F2F20757365722063616C6C6261636B730D0A74797065646566207374643A3A66756E6374696F6E3C766F696428626F6F6C2073657373696F6E50726573656E74293E204F6E436F6E6E6563745573657243616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F6964284173796E634D717474436C69656E74446973636F6E6E656374526561736F6E20726561736F6E293E204F6E446973636F6E6E6563745573657243616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B657449642C2075696E74385F7420716F73293E204F6E5375627363726962655573657243616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B65744964293E204F6E556E7375627363726962655573657243616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F696428636861722A20746F7069632C20636861722A207061796C6F61642C204173796E634D717474436C69656E744D65737361676550726F706572746965732070726F706572746965732C2073697A655F74206C656E2C2073697A655F7420696E6465782C2073697A655F7420746F74616C293E204F6E4D6573736167655573657243616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B65744964293E204F6E5075626C6973685573657243616C6C6261636B3B0D0A0D0A2F2F20696E7465726E616C2063616C6C6261636B730D0A74797065646566207374643A3A66756E6374696F6E3C766F696428626F6F6C2073657373696F6E50726573656E742C2075696E74385F7420636F6E6E65637452657475726E436F6465293E204F6E436F6E6E41636B496E7465726E616C43616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F696428293E204F6E50696E6752657370496E7465726E616C43616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B657449642C206368617220737461747573293E204F6E53756241636B496E7465726E616C43616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B65744964293E204F6E556E73756241636B496E7465726E616C43616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F696428636861722A20746F7069632C20636861722A207061796C6F61642C2075696E74385F7420716F732C20626F6F6C206475702C20626F6F6C2072657461696E2C2073697A655F74206C656E2C2073697A655F7420696E6465782C2073697A655F7420746F74616C2C2075696E7431365F74207061636B65744964293E204F6E4D657373616765496E7465726E616C43616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B657449642C2075696E74385F7420716F73293E204F6E5075626C697368496E7465726E616C43616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B65744964293E204F6E50756252656C496E7465726E616C43616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B65744964293E204F6E50756241636B496E7465726E616C43616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B65744964293E204F6E507562526563496E7465726E616C43616C6C6261636B3B0D0A74797065646566207374643A3A66756E6374696F6E3C766F69642875696E7431365F74207061636B65744964293E204F6E507562436F6D70496E7465726E616C43616C6C6261636B3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp DisconnectReasons 23707261676D61206F6E63650A0A656E756D20636C617373204173796E634D717474436C69656E74446973636F6E6E656374526561736F6E203A20696E74385F74207B0A20205443505F444953434F4E4E4543544544203D20302C0A0A20204D5154545F554E41434345505441424C455F50524F544F434F4C5F56455253494F4E203D20312C0A20204D5154545F4944454E5449464945525F52454A4543544544203D20322C0A20204D5154545F5345525645525F554E415641494C41424C45203D20332C0A20204D5154545F4D414C464F524D45445F43524544454E5449414C53203D20342C0A20204D5154545F4E4F545F415554484F52495A4544203D20352C0A0A2020455350383236365F4E4F545F454E4F5547485F5350414345203D20362C0A0A2020544C535F4241445F46494E4745525052494E54203D20370A7D3B0A .hpp Flags 23707261676D61206F6E63650A0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0A636F6E73746578707220737472756374207B0A2020636F6E73742075696E74385F74205245534552564544202020203D20303B0A2020636F6E73742075696E74385F7420434F4E4E45435420202020203D20313B0A2020636F6E73742075696E74385F7420434F4E4E41434B20202020203D20323B0A2020636F6E73742075696E74385F74205055424C49534820202020203D20333B0A2020636F6E73742075696E74385F742050554241434B2020202020203D20343B0A2020636F6E73742075696E74385F74205055425245432020202020203D20353B0A2020636F6E73742075696E74385F742050554252454C2020202020203D20363B0A2020636F6E73742075696E74385F7420505542434F4D5020202020203D20373B0A2020636F6E73742075696E74385F74205355425343524942452020203D20383B0A2020636F6E73742075696E74385F742053554241434B2020202020203D20393B0A2020636F6E73742075696E74385F7420554E535542534352494245203D2031303B0A2020636F6E73742075696E74385F7420554E53554241434B202020203D2031313B0A2020636F6E73742075696E74385F742050494E4752455120202020203D2031323B0A2020636F6E73742075696E74385F742050494E4752455350202020203D2031333B0A2020636F6E73742075696E74385F7420444953434F4E4E45435420203D2031343B0A2020636F6E73742075696E74385F74205245534552564544322020203D20313B0A7D205061636B6574547970653B0A0A636F6E73746578707220737472756374207B0A2020636F6E73742075696E74385F7420434F4E4E4543545F524553455256454420202020203D20307830303B0A2020636F6E73742075696E74385F7420434F4E4E41434B5F524553455256454420202020203D20307830303B0A2020636F6E73742075696E74385F74205055424C4953485F445550202020202020202020203D20307830383B0A2020636F6E73742075696E74385F74205055424C4953485F514F53302020202020202020203D20307830303B0A2020636F6E73742075696E74385F74205055424C4953485F514F53312020202020202020203D20307830323B0A2020636F6E73742075696E74385F74205055424C4953485F514F53322020202020202020203D20307830343B0A2020636F6E73742075696E74385F74205055424C4953485F514F53524553455256454420203D20307830363B0A2020636F6E73742075696E74385F74205055424C4953485F52455441494E202020202020203D20307830313B0A2020636F6E73742075696E74385F742050554241434B5F52455345525645442020202020203D20307830303B0A2020636F6E73742075696E74385F74205055425245435F52455345525645442020202020203D20307830303B0A2020636F6E73742075696E74385F742050554252454C5F52455345525645442020202020203D20307830323B0A2020636F6E73742075696E74385F7420505542434F4D505F524553455256454420202020203D20307830303B0A2020636F6E73742075696E74385F74205355425343524942455F52455345525645442020203D20307830323B0A2020636F6E73742075696E74385F742053554241434B5F52455345525645442020202020203D20307830303B0A2020636F6E73742075696E74385F7420554E5355425343524942455F5245534552564544203D20307830323B0A2020636F6E73742075696E74385F7420554E53554241434B5F5245534552564544202020203D20307830303B0A2020636F6E73742075696E74385F742050494E475245515F524553455256454420202020203D20307830303B0A2020636F6E73742075696E74385F742050494E47524553505F5245534552564544202020203D20307830303B0A2020636F6E73742075696E74385F7420444953434F4E4E4543545F524553455256454420203D20307830303B0A2020636F6E73742075696E74385F74205245534552564544325F52455345525645442020203D20307830303B0A7D20486561646572466C61673B0A0A636F6E73746578707220737472756374207B0A2020636F6E73742075696E74385F7420555345524E414D452020202020203D20307838303B0A2020636F6E73742075696E74385F742050415353574F52442020202020203D20307834303B0A2020636F6E73742075696E74385F742057494C4C5F52455441494E2020203D20307832303B0A2020636F6E73742075696E74385F742057494C4C5F514F533020202020203D20307830303B0A2020636F6E73742075696E74385F742057494C4C5F514F533120202020203D20307830383B0A2020636F6E73742075696E74385F742057494C4C5F514F533220202020203D20307831303B0A2020636F6E73742075696E74385F742057494C4C202020202020202020203D20307830343B0A2020636F6E73742075696E74385F7420434C45414E5F53455353494F4E203D20307830323B0A2020636F6E73742075696E74385F742052455345525645442020202020203D20307830303B0A7D20436F6E6E656374466C61673B0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730A .hpp Helpers 23707261676D61206F6E63650D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C6173732048656C70657273207B0D0A207075626C69633A0D0A20207374617469632075696E7433325F74206465636F646552656D61696E696E674C656E67746828636861722A20627974657329207B0D0A2020202075696E7433325F74206D756C7469706C696572203D20313B0D0A2020202075696E7433325F742076616C7565203D20303B0D0A2020202075696E74385F742063757272656E7442797465203D20303B0D0A2020202075696E74385F7420656E636F646564427974653B0D0A20202020646F207B0D0A202020202020656E636F64656442797465203D2062797465735B63757272656E74427974652B2B5D3B0D0A20202020202076616C7565202B3D2028656E636F6465644279746520262031323729202A206D756C7469706C6965723B0D0A2020202020206D756C7469706C696572202A3D203132383B0D0A202020207D207768696C65202828656E636F646564427974652026203132382920213D2030293B0D0A0D0A2020202072657475726E2076616C75653B0D0A20207D0D0A0D0A20207374617469632075696E74385F7420656E636F646552656D61696E696E674C656E6774682875696E7433325F742072656D61696E696E674C656E6774682C20636861722A2064657374696E6174696F6E29207B0D0A2020202075696E74385F742063757272656E7442797465203D20303B0D0A2020202075696E74385F742062797465734E6565646564203D20303B0D0A0D0A20202020646F207B0D0A20202020202075696E74385F7420656E636F64656442797465203D2072656D61696E696E674C656E6774682025203132383B0D0A20202020202072656D61696E696E674C656E677468202F3D203132383B0D0A2020202020206966202872656D61696E696E674C656E677468203E203029207B0D0A2020202020202020656E636F64656442797465203D20656E636F64656442797465207C203132383B0D0A2020202020207D0D0A0D0A20202020202064657374696E6174696F6E5B63757272656E74427974652B2B5D203D20656E636F646564427974653B0D0A20202020202062797465734E65656465642B2B3B0D0A202020207D207768696C65202872656D61696E696E674C656E677468203E2030293B0D0A0D0A2020202072657475726E2062797465734E65656465643B0D0A20207D0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp MessageProperties 23707261676D61206F6E63650A0A737472756374204173796E634D717474436C69656E744D65737361676550726F70657274696573207B0A202075696E74385F7420716F733B0A2020626F6F6C206475703B0A2020626F6F6C2072657461696E3B0A7D3B0A .hpp Packets ConnAckPacket 23696E636C7564652022436F6E6E41636B5061636B65742E687070220D0A0D0A7573696E67204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E41636B5061636B65743B0D0A0D0A436F6E6E41636B5061636B65743A3A436F6E6E41636B5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E436F6E6E41636B496E7465726E616C43616C6C6261636B2063616C6C6261636B290D0A3A205F70617273696E67496E666F726D6174696F6E2870617273696E67496E666F726D6174696F6E290D0A2C205F63616C6C6261636B2863616C6C6261636B290D0A2C205F62797465506F736974696F6E2830290D0A2C205F73657373696F6E50726573656E742866616C7365290D0A2C205F636F6E6E65637452657475726E436F6465283029207B0D0A7D0D0A0D0A436F6E6E41636B5061636B65743A3A7E436F6E6E41636B5061636B65742829207B0D0A7D0D0A0D0A766F696420436F6E6E41636B5061636B65743A3A70617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A2020636861722063757272656E7442797465203D20646174615B282A63757272656E7442797465506F736974696F6E292B2B5D3B0D0A2020696620285F62797465506F736974696F6E2B2B203D3D203029207B0D0A202020205F73657373696F6E50726573656E74203D202863757272656E7442797465203C3C203729203E3E20373B0D0A20207D20656C7365207B0D0A202020205F636F6E6E65637452657475726E436F6465203D2063757272656E74427974653B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A4E4F4E453B0D0A202020205F63616C6C6261636B285F73657373696F6E50726573656E742C205F636F6E6E65637452657475726E436F6465293B0D0A20207D0D0A7D0D0A0D0A766F696420436F6E6E41636B5061636B65743A3A70617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A202028766F696429646174613B0D0A202028766F69642963757272656E7442797465506F736974696F6E3B0D0A7D0D0A .cpp ConnAckPacket 23707261676D61206F6E63650D0A0D0A23696E636C756465202241726475696E6F2E68220D0A23696E636C75646520225061636B65742E687070220D0A23696E636C75646520222E2E2F50617273696E67496E666F726D6174696F6E2E687070220D0A23696E636C75646520222E2E2F43616C6C6261636B732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C61737320436F6E6E41636B5061636B6574203A207075626C6963205061636B6574207B0D0A207075626C69633A0D0A20206578706C6963697420436F6E6E41636B5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E436F6E6E41636B496E7465726E616C43616C6C6261636B2063616C6C6261636B293B0D0A20207E436F6E6E41636B5061636B657428293B0D0A0D0A2020766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A2020766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A0D0A20707269766174653A0D0A202050617273696E67496E666F726D6174696F6E2A205F70617273696E67496E666F726D6174696F6E3B0D0A20204F6E436F6E6E41636B496E7465726E616C43616C6C6261636B205F63616C6C6261636B3B0D0A0D0A202075696E74385F74205F62797465506F736974696F6E3B0D0A2020626F6F6C205F73657373696F6E50726573656E743B0D0A202075696E74385F74205F636F6E6E65637452657475726E436F64653B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp Packet 23707261676D61206F6E63650D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C617373205061636B6574207B0D0A207075626C69633A0D0A20207669727475616C207E5061636B65742829207B7D0D0A0D0A20207669727475616C20766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29203D20303B0D0A20207669727475616C20766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29203D20303B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp PingRespPacket 23696E636C756465202250696E67526573705061636B65742E687070220D0A0D0A7573696E67204173796E634D717474436C69656E74496E7465726E616C733A3A50696E67526573705061636B65743B0D0A0D0A50696E67526573705061636B65743A3A50696E67526573705061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E50696E6752657370496E7465726E616C43616C6C6261636B2063616C6C6261636B290D0A3A205F70617273696E67496E666F726D6174696F6E2870617273696E67496E666F726D6174696F6E290D0A2C205F63616C6C6261636B2863616C6C6261636B29207B0D0A7D0D0A0D0A50696E67526573705061636B65743A3A7E50696E67526573705061636B65742829207B0D0A7D0D0A0D0A766F69642050696E67526573705061636B65743A3A70617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A202028766F696429646174613B0D0A202028766F69642963757272656E7442797465506F736974696F6E3B0D0A7D0D0A0D0A766F69642050696E67526573705061636B65743A3A70617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A202028766F696429646174613B0D0A202028766F69642963757272656E7442797465506F736974696F6E3B0D0A7D0D0A .cpp PingRespPacket 23707261676D61206F6E63650D0A0D0A23696E636C756465202241726475696E6F2E68220D0A23696E636C75646520225061636B65742E687070220D0A23696E636C75646520222E2E2F50617273696E67496E666F726D6174696F6E2E687070220D0A23696E636C75646520222E2E2F43616C6C6261636B732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C6173732050696E67526573705061636B6574203A207075626C6963205061636B6574207B0D0A207075626C69633A0D0A20206578706C696369742050696E67526573705061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E50696E6752657370496E7465726E616C43616C6C6261636B2063616C6C6261636B293B0D0A20207E50696E67526573705061636B657428293B0D0A0D0A2020766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A2020766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A0D0A20707269766174653A0D0A202050617273696E67496E666F726D6174696F6E2A205F70617273696E67496E666F726D6174696F6E3B0D0A20204F6E50696E6752657370496E7465726E616C43616C6C6261636B205F63616C6C6261636B3B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp PubAckPacket 23696E636C756465202250756241636B5061636B65742E687070220D0A0D0A7573696E67204173796E634D717474436C69656E74496E7465726E616C733A3A50756241636B5061636B65743B0D0A0D0A50756241636B5061636B65743A3A50756241636B5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E50756241636B496E7465726E616C43616C6C6261636B2063616C6C6261636B290D0A3A205F70617273696E67496E666F726D6174696F6E2870617273696E67496E666F726D6174696F6E290D0A2C205F63616C6C6261636B2863616C6C6261636B290D0A2C205F62797465506F736974696F6E2830290D0A2C205F7061636B657449644D73622830290D0A2C205F7061636B65744964283029207B0D0A7D0D0A0D0A50756241636B5061636B65743A3A7E50756241636B5061636B65742829207B0D0A7D0D0A0D0A766F69642050756241636B5061636B65743A3A70617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A2020636861722063757272656E7442797465203D20646174615B282A63757272656E7442797465506F736974696F6E292B2B5D3B0D0A2020696620285F62797465506F736974696F6E2B2B203D3D203029207B0D0A202020205F7061636B657449644D7362203D2063757272656E74427974653B0D0A20207D20656C7365207B0D0A202020205F7061636B65744964203D2063757272656E7442797465207C205F7061636B657449644D7362203C3C20383B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A4E4F4E453B0D0A202020205F63616C6C6261636B285F7061636B65744964293B0D0A20207D0D0A7D0D0A0D0A766F69642050756241636B5061636B65743A3A70617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A202028766F696429646174613B0D0A202028766F69642963757272656E7442797465506F736974696F6E3B0D0A7D0D0A .cpp PubAckPacket 23707261676D61206F6E63650D0A0D0A23696E636C756465202241726475696E6F2E68220D0A23696E636C75646520225061636B65742E687070220D0A23696E636C75646520222E2E2F50617273696E67496E666F726D6174696F6E2E687070220D0A23696E636C75646520222E2E2F43616C6C6261636B732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C6173732050756241636B5061636B6574203A207075626C6963205061636B6574207B0D0A207075626C69633A0D0A20206578706C696369742050756241636B5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E50756241636B496E7465726E616C43616C6C6261636B2063616C6C6261636B293B0D0A20207E50756241636B5061636B657428293B0D0A0D0A2020766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A2020766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A0D0A20707269766174653A0D0A202050617273696E67496E666F726D6174696F6E2A205F70617273696E67496E666F726D6174696F6E3B0D0A20204F6E50756241636B496E7465726E616C43616C6C6261636B205F63616C6C6261636B3B0D0A0D0A202075696E74385F74205F62797465506F736974696F6E3B0D0A202063686172205F7061636B657449644D73623B0D0A202075696E7431365F74205F7061636B657449643B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp PubCompPacket 23696E636C7564652022507562436F6D705061636B65742E687070220D0A0D0A7573696E67204173796E634D717474436C69656E74496E7465726E616C733A3A507562436F6D705061636B65743B0D0A0D0A507562436F6D705061636B65743A3A507562436F6D705061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E507562436F6D70496E7465726E616C43616C6C6261636B2063616C6C6261636B290D0A3A205F70617273696E67496E666F726D6174696F6E2870617273696E67496E666F726D6174696F6E290D0A2C205F63616C6C6261636B2863616C6C6261636B290D0A2C205F62797465506F736974696F6E2830290D0A2C205F7061636B657449644D73622830290D0A2C205F7061636B65744964283029207B0D0A7D0D0A0D0A507562436F6D705061636B65743A3A7E507562436F6D705061636B65742829207B0D0A7D0D0A0D0A766F696420507562436F6D705061636B65743A3A70617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A2020636861722063757272656E7442797465203D20646174615B282A63757272656E7442797465506F736974696F6E292B2B5D3B0D0A2020696620285F62797465506F736974696F6E2B2B203D3D203029207B0D0A202020205F7061636B657449644D7362203D2063757272656E74427974653B0D0A20207D20656C7365207B0D0A202020205F7061636B65744964203D2063757272656E7442797465207C205F7061636B657449644D7362203C3C20383B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A4E4F4E453B0D0A202020205F63616C6C6261636B285F7061636B65744964293B0D0A20207D0D0A7D0D0A0D0A766F696420507562436F6D705061636B65743A3A70617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A202028766F696429646174613B0D0A202028766F69642963757272656E7442797465506F736974696F6E3B0D0A7D0D0A .cpp PubCompPacket 23707261676D61206F6E63650D0A0D0A23696E636C756465202241726475696E6F2E68220D0A23696E636C75646520225061636B65742E687070220D0A23696E636C75646520222E2E2F50617273696E67496E666F726D6174696F6E2E687070220D0A23696E636C75646520222E2E2F43616C6C6261636B732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C61737320507562436F6D705061636B6574203A207075626C6963205061636B6574207B0D0A207075626C69633A0D0A20206578706C6963697420507562436F6D705061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E507562436F6D70496E7465726E616C43616C6C6261636B2063616C6C6261636B293B0D0A20207E507562436F6D705061636B657428293B0D0A0D0A2020766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A2020766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A0D0A20707269766174653A0D0A202050617273696E67496E666F726D6174696F6E2A205F70617273696E67496E666F726D6174696F6E3B0D0A20204F6E507562436F6D70496E7465726E616C43616C6C6261636B205F63616C6C6261636B3B0D0A0D0A202075696E74385F74205F62797465506F736974696F6E3B0D0A202063686172205F7061636B657449644D73623B0D0A202075696E7431365F74205F7061636B657449643B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp PublishPacket 23696E636C75646520225075626C6973685061636B65742E687070220D0A0D0A7573696E67204173796E634D717474436C69656E74496E7465726E616C733A3A5075626C6973685061636B65743B0D0A0D0A5075626C6973685061636B65743A3A5075626C6973685061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E4D657373616765496E7465726E616C43616C6C6261636B206461746143616C6C6261636B2C204F6E5075626C697368496E7465726E616C43616C6C6261636B20636F6D706C65746543616C6C6261636B290D0A3A205F70617273696E67496E666F726D6174696F6E2870617273696E67496E666F726D6174696F6E290D0A2C205F6461746143616C6C6261636B286461746143616C6C6261636B290D0A2C205F636F6D706C65746543616C6C6261636B28636F6D706C65746543616C6C6261636B290D0A2C205F6475702866616C7365290D0A2C205F716F732830290D0A2C205F72657461696E2830290D0A2C205F62797465506F736974696F6E2830290D0A2C205F746F7069634C656E6774684D73622830290D0A2C205F746F7069634C656E6774682830290D0A2C205F69676E6F72652866616C7365290D0A2C205F7061636B657449644D73622830290D0A2C205F7061636B657449642830290D0A2C205F7061796C6F61644C656E6774682830290D0A2C205F7061796C6F6164427974657352656164283029207B0D0A202020205F647570203D205F70617273696E67496E666F726D6174696F6E2D3E7061636B6574466C616773202620486561646572466C61672E5055424C4953485F4455503B0D0A202020205F72657461696E203D205F70617273696E67496E666F726D6174696F6E2D3E7061636B6574466C616773202620486561646572466C61672E5055424C4953485F52455441494E3B0D0A202020206368617220716F734D61736B6564203D205F70617273696E67496E666F726D6174696F6E2D3E7061636B6574466C616773202620307830363B0D0A202020207377697463682028716F734D61736B656429207B0D0A2020202020206361736520486561646572466C61672E5055424C4953485F514F53303A0D0A20202020202020205F716F73203D20303B0D0A2020202020202020627265616B3B0D0A2020202020206361736520486561646572466C61672E5055424C4953485F514F53313A0D0A20202020202020205F716F73203D20313B0D0A2020202020202020627265616B3B0D0A2020202020206361736520486561646572466C61672E5055424C4953485F514F53323A0D0A20202020202020205F716F73203D20323B0D0A2020202020202020627265616B3B0D0A202020207D0D0A7D0D0A0D0A5075626C6973685061636B65743A3A7E5075626C6973685061636B65742829207B0D0A7D0D0A0D0A766F6964205075626C6973685061636B65743A3A70617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A2020636861722063757272656E7442797465203D20646174615B282A63757272656E7442797465506F736974696F6E292B2B5D3B0D0A2020696620285F62797465506F736974696F6E203D3D203029207B0D0A202020205F746F7069634C656E6774684D7362203D2063757272656E74427974653B0D0A20207D20656C736520696620285F62797465506F736974696F6E203D3D203129207B0D0A202020205F746F7069634C656E677468203D2063757272656E7442797465207C205F746F7069634C656E6774684D7362203C3C20383B0D0A20202020696620285F746F7069634C656E677468203E205F70617273696E67496E666F726D6174696F6E2D3E6D6178546F7069634C656E67746829207B0D0A2020202020205F69676E6F7265203D20747275653B0D0A202020207D20656C7365207B0D0A2020202020205F70617273696E67496E666F726D6174696F6E2D3E746F7069634275666665725B5F746F7069634C656E6774685D203D20275C30273B0D0A202020207D0D0A20207D20656C736520696620285F62797465506F736974696F6E203E3D2032202626205F62797465506F736974696F6E203C2032202B205F746F7069634C656E67746829207B0D0A202020202F2F205374617274696E672066726F6D20686572652C205F69676E6F7265206D6967687420626520747275650D0A2020202069662028215F69676E6F726529205F70617273696E67496E666F726D6174696F6E2D3E746F7069634275666665725B5F62797465506F736974696F6E202D20325D203D2063757272656E74427974653B0D0A20202020696620285F62797465506F736974696F6E203D3D2032202B205F746F7069634C656E677468202D2031202626205F716F73203D3D203029207B0D0A2020202020205F707265706172655061796C6F616448616E646C696E67285F70617273696E67496E666F726D6174696F6E2D3E72656D61696E696E674C656E677468202D20285F62797465506F736974696F6E202B203129293B0D0A20202020202072657475726E3B0D0A202020207D0D0A20207D20656C736520696620285F62797465506F736974696F6E203D3D2032202B205F746F7069634C656E67746829207B0D0A202020205F7061636B657449644D7362203D2063757272656E74427974653B0D0A20207D20656C7365207B0D0A202020205F7061636B65744964203D2063757272656E7442797465207C205F7061636B657449644D7362203C3C20383B0D0A202020205F707265706172655061796C6F616448616E646C696E67285F70617273696E67496E666F726D6174696F6E2D3E72656D61696E696E674C656E677468202D20285F62797465506F736974696F6E202B203129293B0D0A20207D0D0A20205F62797465506F736974696F6E2B2B3B0D0A7D0D0A0D0A766F6964205075626C6973685061636B65743A3A5F707265706172655061796C6F616448616E646C696E672875696E7433325F74207061796C6F61644C656E67746829207B0D0A20205F7061796C6F61644C656E677468203D207061796C6F61644C656E6774683B0D0A2020696620287061796C6F61644C656E677468203D3D203029207B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A4E4F4E453B0D0A2020202069662028215F69676E6F726529207B0D0A2020202020205F6461746143616C6C6261636B285F70617273696E67496E666F726D6174696F6E2D3E746F7069634275666665722C206E756C6C7074722C205F716F732C205F6475702C205F72657461696E2C20302C20302C20302C205F7061636B65744964293B0D0A2020202020205F636F6D706C65746543616C6C6261636B285F7061636B657449642C205F716F73293B0D0A202020207D0D0A20207D20656C7365207B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A5041594C4F41443B0D0A20207D0D0A7D0D0A0D0A766F6964205075626C6973685061636B65743A3A70617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A202073697A655F742072656D61696E546F52656164203D206C656E202D20282A63757272656E7442797465506F736974696F6E293B0D0A2020696620285F7061796C6F6164427974657352656164202B2072656D61696E546F52656164203E205F7061796C6F61644C656E677468292072656D61696E546F52656164203D205F7061796C6F61644C656E677468202D205F7061796C6F61644279746573526561643B0D0A0D0A202069662028215F69676E6F726529205F6461746143616C6C6261636B285F70617273696E67496E666F726D6174696F6E2D3E746F7069634275666665722C2064617461202B20282A63757272656E7442797465506F736974696F6E292C205F716F732C205F6475702C205F72657461696E2C2072656D61696E546F526561642C205F7061796C6F61644279746573526561642C205F7061796C6F61644C656E6774682C205F7061636B65744964293B0D0A20205F7061796C6F6164427974657352656164202B3D2072656D61696E546F526561643B0D0A2020282A63757272656E7442797465506F736974696F6E29202B3D2072656D61696E546F526561643B0D0A0D0A2020696620285F7061796C6F6164427974657352656164203D3D205F7061796C6F61644C656E67746829207B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A4E4F4E453B0D0A2020202069662028215F69676E6F726529205F636F6D706C65746543616C6C6261636B285F7061636B657449642C205F716F73293B0D0A20207D0D0A7D0D0A .cpp PublishPacket 23707261676D61206F6E63650D0A0D0A23696E636C756465202241726475696E6F2E68220D0A23696E636C75646520225061636B65742E687070220D0A23696E636C75646520222E2E2F466C6167732E687070220D0A23696E636C75646520222E2E2F50617273696E67496E666F726D6174696F6E2E687070220D0A23696E636C75646520222E2E2F43616C6C6261636B732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C617373205075626C6973685061636B6574203A207075626C6963205061636B6574207B0D0A207075626C69633A0D0A20206578706C69636974205075626C6973685061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E4D657373616765496E7465726E616C43616C6C6261636B206461746143616C6C6261636B2C204F6E5075626C697368496E7465726E616C43616C6C6261636B20636F6D706C65746543616C6C6261636B293B0D0A20207E5075626C6973685061636B657428293B0D0A0D0A2020766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A2020766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A0D0A20707269766174653A0D0A202050617273696E67496E666F726D6174696F6E2A205F70617273696E67496E666F726D6174696F6E3B0D0A20204F6E4D657373616765496E7465726E616C43616C6C6261636B205F6461746143616C6C6261636B3B0D0A20204F6E5075626C697368496E7465726E616C43616C6C6261636B205F636F6D706C65746543616C6C6261636B3B0D0A0D0A2020766F6964205F707265706172655061796C6F616448616E646C696E672875696E7433325F74207061796C6F61644C656E677468293B0D0A0D0A2020626F6F6C205F6475703B0D0A202075696E74385F74205F716F733B0D0A2020626F6F6C205F72657461696E3B0D0A0D0A202075696E74385F74205F62797465506F736974696F6E3B0D0A202063686172205F746F7069634C656E6774684D73623B0D0A202075696E7431365F74205F746F7069634C656E6774683B0D0A2020626F6F6C205F69676E6F72653B0D0A202063686172205F7061636B657449644D73623B0D0A202075696E7431365F74205F7061636B657449643B0D0A202075696E7433325F74205F7061796C6F61644C656E6774683B0D0A202075696E7433325F74205F7061796C6F61644279746573526561643B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp PubRecPacket 23696E636C75646520225075625265635061636B65742E687070220D0A0D0A7573696E67204173796E634D717474436C69656E74496E7465726E616C733A3A5075625265635061636B65743B0D0A0D0A5075625265635061636B65743A3A5075625265635061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E507562526563496E7465726E616C43616C6C6261636B2063616C6C6261636B290D0A3A205F70617273696E67496E666F726D6174696F6E2870617273696E67496E666F726D6174696F6E290D0A2C205F63616C6C6261636B2863616C6C6261636B290D0A2C205F62797465506F736974696F6E2830290D0A2C205F7061636B657449644D73622830290D0A2C205F7061636B65744964283029207B0D0A7D0D0A0D0A5075625265635061636B65743A3A7E5075625265635061636B65742829207B0D0A7D0D0A0D0A766F6964205075625265635061636B65743A3A70617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A2020636861722063757272656E7442797465203D20646174615B282A63757272656E7442797465506F736974696F6E292B2B5D3B0D0A2020696620285F62797465506F736974696F6E2B2B203D3D203029207B0D0A202020205F7061636B657449644D7362203D2063757272656E74427974653B0D0A20207D20656C7365207B0D0A202020205F7061636B65744964203D2063757272656E7442797465207C205F7061636B657449644D7362203C3C20383B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A4E4F4E453B0D0A202020205F63616C6C6261636B285F7061636B65744964293B0D0A20207D0D0A7D0D0A0D0A766F6964205075625265635061636B65743A3A70617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A202028766F696429646174613B0D0A202028766F69642963757272656E7442797465506F736974696F6E3B0D0A7D0D0A .cpp PubRecPacket 23707261676D61206F6E63650D0A0D0A23696E636C756465202241726475696E6F2E68220D0A23696E636C75646520225061636B65742E687070220D0A23696E636C75646520222E2E2F50617273696E67496E666F726D6174696F6E2E687070220D0A23696E636C75646520222E2E2F43616C6C6261636B732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C617373205075625265635061636B6574203A207075626C6963205061636B6574207B0D0A207075626C69633A0D0A20206578706C69636974205075625265635061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E507562526563496E7465726E616C43616C6C6261636B2063616C6C6261636B293B0D0A20207E5075625265635061636B657428293B0D0A0D0A2020766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A2020766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A0D0A20707269766174653A0D0A202050617273696E67496E666F726D6174696F6E2A205F70617273696E67496E666F726D6174696F6E3B0D0A20204F6E507562526563496E7465726E616C43616C6C6261636B205F63616C6C6261636B3B0D0A0D0A202075696E74385F74205F62797465506F736974696F6E3B0D0A202063686172205F7061636B657449644D73623B0D0A202075696E7431365F74205F7061636B657449643B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp PubRelPacket 23696E636C756465202250756252656C5061636B65742E687070220D0A0D0A7573696E67204173796E634D717474436C69656E74496E7465726E616C733A3A50756252656C5061636B65743B0D0A0D0A50756252656C5061636B65743A3A50756252656C5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E50756252656C496E7465726E616C43616C6C6261636B2063616C6C6261636B290D0A3A205F70617273696E67496E666F726D6174696F6E2870617273696E67496E666F726D6174696F6E290D0A2C205F63616C6C6261636B2863616C6C6261636B290D0A2C205F62797465506F736974696F6E2830290D0A2C205F7061636B657449644D73622830290D0A2C205F7061636B65744964283029207B0D0A7D0D0A0D0A50756252656C5061636B65743A3A7E50756252656C5061636B65742829207B0D0A7D0D0A0D0A766F69642050756252656C5061636B65743A3A70617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A2020636861722063757272656E7442797465203D20646174615B282A63757272656E7442797465506F736974696F6E292B2B5D3B0D0A2020696620285F62797465506F736974696F6E2B2B203D3D203029207B0D0A202020205F7061636B657449644D7362203D2063757272656E74427974653B0D0A20207D20656C7365207B0D0A202020205F7061636B65744964203D2063757272656E7442797465207C205F7061636B657449644D7362203C3C20383B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A4E4F4E453B0D0A202020205F63616C6C6261636B285F7061636B65744964293B0D0A20207D0D0A7D0D0A0D0A766F69642050756252656C5061636B65743A3A70617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A202028766F696429646174613B0D0A202028766F69642963757272656E7442797465506F736974696F6E3B0D0A7D0D0A .cpp PubRelPacket 23707261676D61206F6E63650D0A0D0A23696E636C756465202241726475696E6F2E68220D0A23696E636C75646520225061636B65742E687070220D0A23696E636C75646520222E2E2F50617273696E67496E666F726D6174696F6E2E687070220D0A23696E636C75646520222E2E2F43616C6C6261636B732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C6173732050756252656C5061636B6574203A207075626C6963205061636B6574207B0D0A207075626C69633A0D0A20206578706C696369742050756252656C5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E50756252656C496E7465726E616C43616C6C6261636B2063616C6C6261636B293B0D0A20207E50756252656C5061636B657428293B0D0A0D0A2020766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A2020766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A0D0A20707269766174653A0D0A202050617273696E67496E666F726D6174696F6E2A205F70617273696E67496E666F726D6174696F6E3B0D0A20204F6E50756252656C496E7465726E616C43616C6C6261636B205F63616C6C6261636B3B0D0A0D0A202075696E74385F74205F62797465506F736974696F6E3B0D0A202063686172205F7061636B657449644D73623B0D0A202075696E7431365F74205F7061636B657449643B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp SubAckPacket 23696E636C756465202253756241636B5061636B65742E687070220D0A0D0A7573696E67204173796E634D717474436C69656E74496E7465726E616C733A3A53756241636B5061636B65743B0D0A0D0A53756241636B5061636B65743A3A53756241636B5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E53756241636B496E7465726E616C43616C6C6261636B2063616C6C6261636B290D0A3A205F70617273696E67496E666F726D6174696F6E2870617273696E67496E666F726D6174696F6E290D0A2C205F63616C6C6261636B2863616C6C6261636B290D0A2C205F62797465506F736974696F6E2830290D0A2C205F7061636B657449644D73622830290D0A2C205F7061636B65744964283029207B0D0A7D0D0A0D0A53756241636B5061636B65743A3A7E53756241636B5061636B65742829207B0D0A7D0D0A0D0A766F69642053756241636B5061636B65743A3A70617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A2020636861722063757272656E7442797465203D20646174615B282A63757272656E7442797465506F736974696F6E292B2B5D3B0D0A2020696620285F62797465506F736974696F6E2B2B203D3D203029207B0D0A202020205F7061636B657449644D7362203D2063757272656E74427974653B0D0A20207D20656C7365207B0D0A202020205F7061636B65744964203D2063757272656E7442797465207C205F7061636B657449644D7362203C3C20383B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A5041594C4F41443B0D0A20207D0D0A7D0D0A0D0A766F69642053756241636B5061636B65743A3A70617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A20206368617220737461747573203D20646174615B282A63757272656E7442797465506F736974696F6E292B2B5D3B0D0A0D0A20202F2A20737769746368202873746174757329207B0D0A202020206361736520303A0D0A20202020202053657269616C2E7072696E746C6E28225375636365737320516F53203022293B0D0A202020202020627265616B3B0D0A202020206361736520313A0D0A20202020202053657269616C2E7072696E746C6E28225375636365737320516F53203122293B0D0A202020202020627265616B3B0D0A202020206361736520323A0D0A20202020202053657269616C2E7072696E746C6E28225375636365737320516F53203222293B0D0A202020202020627265616B3B0D0A202020206361736520307838303A0D0A20202020202053657269616C2E7072696E746C6E28224661696C75726522293B0D0A202020202020627265616B3B0D0A20207D202A2F0D0A0D0A20205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A4E4F4E453B0D0A20205F63616C6C6261636B285F7061636B657449642C20737461747573293B0D0A7D0D0A .cpp SubAckPacket 23707261676D61206F6E63650D0A0D0A23696E636C756465202241726475696E6F2E68220D0A23696E636C75646520225061636B65742E687070220D0A23696E636C75646520222E2E2F50617273696E67496E666F726D6174696F6E2E687070220D0A23696E636C75646520222E2E2F43616C6C6261636B732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C6173732053756241636B5061636B6574203A207075626C6963205061636B6574207B0D0A207075626C69633A0D0A20206578706C696369742053756241636B5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E53756241636B496E7465726E616C43616C6C6261636B2063616C6C6261636B293B0D0A20207E53756241636B5061636B657428293B0D0A0D0A2020766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A2020766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A0D0A20707269766174653A0D0A202050617273696E67496E666F726D6174696F6E2A205F70617273696E67496E666F726D6174696F6E3B0D0A20204F6E53756241636B496E7465726E616C43616C6C6261636B205F63616C6C6261636B3B0D0A0D0A202075696E74385F74205F62797465506F736974696F6E3B0D0A202063686172205F7061636B657449644D73623B0D0A202075696E7431365F74205F7061636B657449643B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp UnsubAckPacket 23696E636C7564652022556E73756241636B5061636B65742E687070220D0A0D0A7573696E67204173796E634D717474436C69656E74496E7465726E616C733A3A556E73756241636B5061636B65743B0D0A0D0A556E73756241636B5061636B65743A3A556E73756241636B5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E556E73756241636B496E7465726E616C43616C6C6261636B2063616C6C6261636B290D0A3A205F70617273696E67496E666F726D6174696F6E2870617273696E67496E666F726D6174696F6E290D0A2C205F63616C6C6261636B2863616C6C6261636B290D0A2C205F62797465506F736974696F6E2830290D0A2C205F7061636B657449644D73622830290D0A2C205F7061636B65744964283029207B0D0A7D0D0A0D0A556E73756241636B5061636B65743A3A7E556E73756241636B5061636B65742829207B0D0A7D0D0A0D0A766F696420556E73756241636B5061636B65743A3A70617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A2020636861722063757272656E7442797465203D20646174615B282A63757272656E7442797465506F736974696F6E292B2B5D3B0D0A2020696620285F62797465506F736974696F6E2B2B203D3D203029207B0D0A202020205F7061636B657449644D7362203D2063757272656E74427974653B0D0A20207D20656C7365207B0D0A202020205F7061636B65744964203D2063757272656E7442797465207C205F7061636B657449644D7362203C3C20383B0D0A202020205F70617273696E67496E666F726D6174696F6E2D3E6275666665725374617465203D2042756666657253746174653A3A4E4F4E453B0D0A202020205F63616C6C6261636B285F7061636B65744964293B0D0A20207D0D0A7D0D0A0D0A766F696420556E73756241636B5061636B65743A3A70617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E29207B0D0A202028766F696429646174613B0D0A202028766F69642963757272656E7442797465506F736974696F6E3B0D0A7D0D0A .cpp UnsubAckPacket 23707261676D61206F6E63650D0A0D0A23696E636C756465202241726475696E6F2E68220D0A23696E636C75646520225061636B65742E687070220D0A23696E636C75646520222E2E2F50617273696E67496E666F726D6174696F6E2E687070220D0A23696E636C75646520222E2E2F43616C6C6261636B732E687070220D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A636C61737320556E73756241636B5061636B6574203A207075626C6963205061636B6574207B0D0A207075626C69633A0D0A20206578706C6963697420556E73756241636B5061636B65742850617273696E67496E666F726D6174696F6E2A2070617273696E67496E666F726D6174696F6E2C204F6E556E73756241636B496E7465726E616C43616C6C6261636B2063616C6C6261636B293B0D0A20207E556E73756241636B5061636B657428293B0D0A0D0A2020766F69642070617273655661726961626C6548656164657228636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A2020766F69642070617273655061796C6F616428636861722A20646174612C2073697A655F74206C656E2C2073697A655F742A2063757272656E7442797465506F736974696F6E293B0D0A0D0A20707269766174653A0D0A202050617273696E67496E666F726D6174696F6E2A205F70617273696E67496E666F726D6174696F6E3B0D0A20204F6E556E73756241636B496E7465726E616C43616C6C6261636B205F63616C6C6261636B3B0D0A0D0A202075696E74385F74205F62797465506F736974696F6E3B0D0A202063686172205F7061636B657449644D73623B0D0A202075696E7431365F74205F7061636B657449643B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp ParsingInformation 23707261676D61206F6E63650D0A0D0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0D0A656E756D20636C617373204275666665725374617465203A2075696E74385F74207B0D0A20204E4F4E45203D20302C0D0A202052454D41494E494E475F4C454E475448203D20322C0D0A20205641524941424C455F484541444552203D20332C0D0A20205041594C4F4144203D20340D0A7D3B0D0A0D0A7374727563742050617273696E67496E666F726D6174696F6E207B0D0A202042756666657253746174652062756666657253746174653B0D0A0D0A202075696E7431365F74206D6178546F7069634C656E6774683B0D0A2020636861722A20746F7069634275666665723B0D0A0D0A202075696E74385F74207061636B6574547970653B0D0A202075696E7431365F74207061636B6574466C6167733B0D0A202075696E7433325F742072656D61696E696E674C656E6774683B0D0A7D3B0D0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730D0A .hpp Storage 23707261676D61206F6E63650A0A6E616D657370616365204173796E634D717474436C69656E74496E7465726E616C73207B0A7374727563742050656E64696E6750756252656C207B0A202075696E7431365F74207061636B657449643B0A7D3B0A0A7374727563742050656E64696E6741636B207B0A202075696E74385F74207061636B6574547970653B0A202075696E74385F7420686561646572466C61673B0A202075696E7431365F74207061636B657449643B0A7D3B0A7D20202F2F206E616D657370616365204173796E634D717474436C69656E74496E7465726E616C730A .hpp AsyncMqttClient 23696E636C75646520224173796E634D717474436C69656E742E687070220A0A4173796E634D717474436C69656E743A3A4173796E634D717474436C69656E7428290A3A205F636F6E6E65637465642866616C7365290A2C205F636F6E6E6563745061636B65744E6F74456E6F75676853706163652866616C7365290A2C205F646973636F6E6E656374466C61676765642866616C7365290A2C205F746C7342616446696E6765727072696E742866616C7365290A2C205F6C617374436C69656E7441637469766974792830290A2C205F6C61737453657276657241637469766974792830290A2C205F6C61737450696E675265717565737454696D652830290A2C205F686F7374286E756C6C707472290A2C205F75736549702866616C7365290A236966204153594E435F5443505F53534C5F454E41424C45440A2C205F7365637572652866616C7365290A23656E6469660A2C205F706F72742830290A2C205F6B656570416C697665283135290A2C205F636C65616E53657373696F6E2874727565290A2C205F636C69656E744964286E756C6C707472290A2C205F757365726E616D65286E756C6C707472290A2C205F70617373776F7264286E756C6C707472290A2C205F77696C6C546F706963286E756C6C707472290A2C205F77696C6C5061796C6F6164286E756C6C707472290A2C205F77696C6C5061796C6F61644C656E6774682830290A2C205F77696C6C516F732830290A2C205F77696C6C52657461696E2866616C7365290A2C205F70617273696E67496E666F726D6174696F6E207B202E6275666665725374617465203D204173796E634D717474436C69656E74496E7465726E616C733A3A42756666657253746174653A3A4E4F4E45207D0A2C205F63757272656E745061727365645061636B6574286E756C6C707472290A2C205F72656D61696E696E674C656E677468427566666572506F736974696F6E2830290A2C205F6E6578745061636B65744964283129207B0A20205F636C69656E742E6F6E436F6E6E656374285B5D28766F69642A206F626A2C204173796E63436C69656E742A206329207B20287374617469635F636173743C4173796E634D717474436C69656E742A3E286F626A29292D3E5F6F6E436F6E6E6563742863293B207D2C2074686973293B0A20205F636C69656E742E6F6E446973636F6E6E656374285B5D28766F69642A206F626A2C204173796E63436C69656E742A206329207B20287374617469635F636173743C4173796E634D717474436C69656E742A3E286F626A29292D3E5F6F6E446973636F6E6E6563742863293B207D2C2074686973293B0A20205F636C69656E742E6F6E4572726F72285B5D28766F69642A206F626A2C204173796E63436C69656E742A20632C20696E74385F74206572726F7229207B20287374617469635F636173743C4173796E634D717474436C69656E742A3E286F626A29292D3E5F6F6E4572726F7228632C206572726F72293B207D2C2074686973293B0A20205F636C69656E742E6F6E54696D656F7574285B5D28766F69642A206F626A2C204173796E63436C69656E742A20632C2075696E7433325F742074696D6529207B20287374617469635F636173743C4173796E634D717474436C69656E742A3E286F626A29292D3E5F6F6E54696D656F757428632C2074696D65293B207D2C2074686973293B0A20205F636C69656E742E6F6E41636B285B5D28766F69642A206F626A2C204173796E63436C69656E742A20632C2073697A655F74206C656E2C2075696E7433325F742074696D6529207B20287374617469635F636173743C4173796E634D717474436C69656E742A3E286F626A29292D3E5F6F6E41636B28632C206C656E2C2074696D65293B207D2C2074686973293B0A20205F636C69656E742E6F6E44617461285B5D28766F69642A206F626A2C204173796E63436C69656E742A20632C20766F69642A20646174612C2073697A655F74206C656E29207B20287374617469635F636173743C4173796E634D717474436C69656E742A3E286F626A29292D3E5F6F6E4461746128632C207374617469635F636173743C636861722A3E2864617461292C206C656E293B207D2C2074686973293B0A20205F636C69656E742E6F6E506F6C6C285B5D28766F69642A206F626A2C204173796E63436C69656E742A206329207B20287374617469635F636173743C4173796E634D717474436C69656E742A3E286F626A29292D3E5F6F6E506F6C6C2863293B207D2C2074686973293B0A0A2369666465662045535033320A2020737072696E7466285F67656E657261746564436C69656E7449642C2022657370333225303678222C204553502E67657445667573654D61632829293B0A23656C696620646566696E65642845535038323636290A2020737072696E7466285F67656E657261746564436C69656E7449642C20226573703832363625303678222C204553502E6765744368697049642829293B0A23656E6469660A20205F636C69656E744964203D205F67656E657261746564436C69656E7449643B0A0A20207365744D6178546F7069634C656E67746828313238293B0A7D0A0A4173796E634D717474436C69656E743A3A7E4173796E634D717474436C69656E742829207B0A202064656C657465205F63757272656E745061727365645061636B65743B0A202064656C6574655B5D205F70617273696E67496E666F726D6174696F6E2E746F7069634275666665723B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A7365744B656570416C6976652875696E7431365F74206B656570416C69766529207B0A20205F6B656570416C697665203D206B656570416C6976653B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A736574436C69656E74496428636F6E737420636861722A20636C69656E74496429207B0A20205F636C69656E744964203D20636C69656E7449643B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A736574436C65616E53657373696F6E28626F6F6C20636C65616E53657373696F6E29207B0A20205F636C65616E53657373696F6E203D20636C65616E53657373696F6E3B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A7365744D6178546F7069634C656E6774682875696E7431365F74206D6178546F7069634C656E67746829207B0A20205F70617273696E67496E666F726D6174696F6E2E6D6178546F7069634C656E677468203D206D6178546F7069634C656E6774683B0A202064656C6574655B5D205F70617273696E67496E666F726D6174696F6E2E746F7069634275666665723B0A20205F70617273696E67496E666F726D6174696F6E2E746F706963427566666572203D206E657720636861725B6D6178546F7069634C656E677468202B20315D3B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A73657443726564656E7469616C7328636F6E737420636861722A20757365726E616D652C20636F6E737420636861722A2070617373776F726429207B0A20205F757365726E616D65203D20757365726E616D653B0A20205F70617373776F7264203D2070617373776F72643B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A73657457696C6C28636F6E737420636861722A20746F7069632C2075696E74385F7420716F732C20626F6F6C2072657461696E2C20636F6E737420636861722A207061796C6F61642C2073697A655F74206C656E67746829207B0A20205F77696C6C546F706963203D20746F7069633B0A20205F77696C6C516F73203D20716F733B0A20205F77696C6C52657461696E203D2072657461696E3B0A20205F77696C6C5061796C6F6164203D207061796C6F61643B0A20205F77696C6C5061796C6F61644C656E677468203D206C656E6774683B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A736574536572766572284950416464726573732069702C2075696E7431365F7420706F727429207B0A20205F7573654970203D20747275653B0A20205F6970203D2069703B0A20205F706F7274203D20706F72743B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A73657453657276657228636F6E737420636861722A20686F73742C2075696E7431365F7420706F727429207B0A20205F7573654970203D2066616C73653B0A20205F686F7374203D20686F73743B0A20205F706F7274203D20706F72743B0A202072657475726E202A746869733B0A7D0A0A236966204153594E435F5443505F53534C5F454E41424C45440A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A73657453656375726528626F6F6C2073656375726529207B0A20205F736563757265203D207365637572653B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A61646453657276657246696E6765727072696E7428636F6E73742075696E74385F742A2066696E6765727072696E7429207B0A20207374643A3A61727261793C75696E74385F742C20534841315F53495A453E206E657746696E6765727072696E743B0A20206D656D637079286E657746696E6765727072696E742E6461746128292C2066696E6765727072696E742C20534841315F53495A45293B0A20205F73656375726553657276657246696E6765727072696E74732E707573685F6261636B286E657746696E6765727072696E74293B0A202072657475726E202A746869733B0A7D0A23656E6469660A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A6F6E436F6E6E656374284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E436F6E6E6563745573657243616C6C6261636B2063616C6C6261636B29207B0A20205F6F6E436F6E6E6563745573657243616C6C6261636B732E707573685F6261636B2863616C6C6261636B293B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A6F6E446973636F6E6E656374284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E446973636F6E6E6563745573657243616C6C6261636B2063616C6C6261636B29207B0A20205F6F6E446973636F6E6E6563745573657243616C6C6261636B732E707573685F6261636B2863616C6C6261636B293B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A6F6E537562736372696265284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E5375627363726962655573657243616C6C6261636B2063616C6C6261636B29207B0A20205F6F6E5375627363726962655573657243616C6C6261636B732E707573685F6261636B2863616C6C6261636B293B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A6F6E556E737562736372696265284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E556E7375627363726962655573657243616C6C6261636B2063616C6C6261636B29207B0A20205F6F6E556E7375627363726962655573657243616C6C6261636B732E707573685F6261636B2863616C6C6261636B293B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A6F6E4D657373616765284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E4D6573736167655573657243616C6C6261636B2063616C6C6261636B29207B0A20205F6F6E4D6573736167655573657243616C6C6261636B732E707573685F6261636B2863616C6C6261636B293B0A202072657475726E202A746869733B0A7D0A0A4173796E634D717474436C69656E7426204173796E634D717474436C69656E743A3A6F6E5075626C697368284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E5075626C6973685573657243616C6C6261636B2063616C6C6261636B29207B0A20205F6F6E5075626C6973685573657243616C6C6261636B732E707573685F6261636B2863616C6C6261636B293B0A202072657475726E202A746869733B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6672656543757272656E745061727365645061636B65742829207B0A202064656C657465205F63757272656E745061727365645061636B65743B0A20205F63757272656E745061727365645061636B6574203D206E756C6C7074723B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F636C6561722829207B0A20205F6C61737450696E675265717565737454696D65203D20303B0A20205F636F6E6E6563746564203D2066616C73653B0A20205F646973636F6E6E656374466C6167676564203D2066616C73653B0A20205F636F6E6E6563745061636B65744E6F74456E6F7567685370616365203D2066616C73653B0A20205F746C7342616446696E6765727072696E74203D2066616C73653B0A20205F6672656543757272656E745061727365645061636B657428293B0A0A20205F70656E64696E6750756252656C732E636C65617228293B0A20205F70656E64696E6750756252656C732E736872696E6B5F746F5F66697428293B0A0A20205F746F53656E6441636B732E636C65617228293B0A20205F746F53656E6441636B732E736872696E6B5F746F5F66697428293B0A0A20205F6E6578745061636B65744964203D20313B0A20205F70617273696E67496E666F726D6174696F6E2E6275666665725374617465203D204173796E634D717474436C69656E74496E7465726E616C733A3A42756666657253746174653A3A4E4F4E453B0A7D0A0A2F2A20544350202A2F0A766F6964204173796E634D717474436C69656E743A3A5F6F6E436F6E6E656374284173796E63436C69656E742A20636C69656E7429207B0A202028766F696429636C69656E743B0A0A236966204153594E435F5443505F53534C5F454E41424C45440A2020696620285F736563757265202626205F73656375726553657276657246696E6765727072696E74732E73697A652829203E203029207B0A2020202053534C2A20636C69656E7453736C203D205F636C69656E742E67657453534C28293B0A0A20202020626F6F6C2073736C466F756E6446696E6765727072696E74203D2066616C73653B0A20202020666F7220287374643A3A61727261793C75696E74385F742C20534841315F53495A453E2066696E6765727072696E74203A205F73656375726553657276657246696E6765727072696E747329207B0A2020202020206966202873736C5F6D617463685F66696E6765727072696E7428636C69656E7453736C2C2066696E6765727072696E742E64617461282929203D3D2053534C5F4F4B29207B0A202020202020202073736C466F756E6446696E6765727072696E74203D20747275653B0A2020202020202020627265616B3B0A2020202020207D0A202020207D0A0A20202020696620282173736C466F756E6446696E6765727072696E7429207B0A2020202020205F746C7342616446696E6765727072696E74203D20747275653B0A2020202020205F636C69656E742E636C6F73652874727565293B0A20202020202072657475726E3B0A202020207D0A20207D0A23656E6469660A0A2020636861722066697865644865616465725B355D3B0A202066697865644865616465725B305D203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E434F4E4E4543543B0A202066697865644865616465725B305D203D2066697865644865616465725B305D203C3C20343B0A202066697865644865616465725B305D203D2066697865644865616465725B305D207C204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E434F4E4E4543545F52455345525645443B0A0A202075696E7431365F742070726F746F636F6C4E616D654C656E677468203D20343B0A2020636861722070726F746F636F6C4E616D654C656E67746842797465735B325D3B0A202070726F746F636F6C4E616D654C656E67746842797465735B305D203D2070726F746F636F6C4E616D654C656E677468203E3E20383B0A202070726F746F636F6C4E616D654C656E67746842797465735B315D203D2070726F746F636F6C4E616D654C656E677468202620307846463B0A0A2020636861722070726F746F636F6C4C6576656C5B315D3B0A202070726F746F636F6C4C6576656C5B305D203D20307830343B0A0A20206368617220636F6E6E656374466C6167735B315D3B0A2020636F6E6E656374466C6167735B305D203D20303B0A2020696620285F636C65616E53657373696F6E2920636F6E6E656374466C6167735B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E656374466C61672E434C45414E5F53455353494F4E3B0A2020696620285F757365726E616D6520213D206E756C6C7074722920636F6E6E656374466C6167735B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E656374466C61672E555345524E414D453B0A2020696620285F70617373776F726420213D206E756C6C7074722920636F6E6E656374466C6167735B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E656374466C61672E50415353574F52443B0A2020696620285F77696C6C546F70696320213D206E756C6C70747229207B0A20202020636F6E6E656374466C6167735B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E656374466C61672E57494C4C3B0A20202020696620285F77696C6C52657461696E2920636F6E6E656374466C6167735B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E656374466C61672E57494C4C5F52455441494E3B0A2020202073776974636820285F77696C6C516F7329207B0A2020202020206361736520303A0A2020202020202020636F6E6E656374466C6167735B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E656374466C61672E57494C4C5F514F53303B0A2020202020202020627265616B3B0A2020202020206361736520313A0A2020202020202020636F6E6E656374466C6167735B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E656374466C61672E57494C4C5F514F53313B0A2020202020202020627265616B3B0A2020202020206361736520323A0A2020202020202020636F6E6E656374466C6167735B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E656374466C61672E57494C4C5F514F53323B0A2020202020202020627265616B3B0A202020207D0A20207D0A0A202063686172206B656570416C69766542797465735B325D3B0A20206B656570416C69766542797465735B305D203D205F6B656570416C697665203E3E20383B0A20206B656570416C69766542797465735B315D203D205F6B656570416C697665202620307846463B0A0A202075696E7431365F7420636C69656E7449644C656E677468203D207374726C656E285F636C69656E744964293B0A20206368617220636C69656E7449644C656E67746842797465735B325D3B0A2020636C69656E7449644C656E67746842797465735B305D203D20636C69656E7449644C656E677468203E3E20383B0A2020636C69656E7449644C656E67746842797465735B315D203D20636C69656E7449644C656E677468202620307846463B0A0A20202F2F204F7074696F6E616C206669656C64730A202075696E7431365F742077696C6C546F7069634C656E677468203D20303B0A2020636861722077696C6C546F7069634C656E67746842797465735B325D3B0A202075696E7431365F742077696C6C5061796C6F61644C656E677468203D205F77696C6C5061796C6F61644C656E6774683B0A2020636861722077696C6C5061796C6F61644C656E67746842797465735B325D3B0A2020696620285F77696C6C546F70696320213D206E756C6C70747229207B0A2020202077696C6C546F7069634C656E677468203D207374726C656E285F77696C6C546F706963293B0A2020202077696C6C546F7069634C656E67746842797465735B305D203D2077696C6C546F7069634C656E677468203E3E20383B0A2020202077696C6C546F7069634C656E67746842797465735B315D203D2077696C6C546F7069634C656E677468202620307846463B0A0A20202020696620285F77696C6C5061796C6F616420213D206E756C6C7074722026262077696C6C5061796C6F61644C656E677468203D3D2030292077696C6C5061796C6F61644C656E677468203D207374726C656E285F77696C6C5061796C6F6164293B0A0A2020202077696C6C5061796C6F61644C656E67746842797465735B305D203D2077696C6C5061796C6F61644C656E677468203E3E20383B0A2020202077696C6C5061796C6F61644C656E67746842797465735B315D203D2077696C6C5061796C6F61644C656E677468202620307846463B0A20207D0A0A202075696E7431365F7420757365726E616D654C656E677468203D20303B0A20206368617220757365726E616D654C656E67746842797465735B325D3B0A2020696620285F757365726E616D6520213D206E756C6C70747229207B0A20202020757365726E616D654C656E677468203D207374726C656E285F757365726E616D65293B0A20202020757365726E616D654C656E67746842797465735B305D203D20757365726E616D654C656E677468203E3E20383B0A20202020757365726E616D654C656E67746842797465735B315D203D20757365726E616D654C656E677468202620307846463B0A20207D0A0A202075696E7431365F742070617373776F72644C656E677468203D20303B0A2020636861722070617373776F72644C656E67746842797465735B325D3B0A2020696620285F70617373776F726420213D206E756C6C70747229207B0A2020202070617373776F72644C656E677468203D207374726C656E285F70617373776F7264293B0A2020202070617373776F72644C656E67746842797465735B305D203D2070617373776F72644C656E677468203E3E20383B0A2020202070617373776F72644C656E67746842797465735B315D203D2070617373776F72644C656E677468202620307846463B0A20207D0A0A202075696E7433325F742072656D61696E696E674C656E677468203D2032202B2070726F746F636F6C4E616D654C656E677468202B2031202B2031202B2032202B2032202B20636C69656E7449644C656E6774683B20202F2F20616C776179732070726573656E740A2020696620285F77696C6C546F70696320213D206E756C6C707472292072656D61696E696E674C656E677468202B3D2032202B2077696C6C546F7069634C656E677468202B2032202B2077696C6C5061796C6F61644C656E6774683B0A2020696620285F757365726E616D6520213D206E756C6C707472292072656D61696E696E674C656E677468202B3D2032202B20757365726E616D654C656E6774683B0A2020696620285F70617373776F726420213D206E756C6C707472292072656D61696E696E674C656E677468202B3D2032202B2070617373776F72644C656E6774683B0A202075696E74385F742072656D61696E696E674C656E6774684C656E677468203D204173796E634D717474436C69656E74496E7465726E616C733A3A48656C706572733A3A656E636F646552656D61696E696E674C656E6774682872656D61696E696E674C656E6774682C206669786564486561646572202B2031293B0A0A202075696E7433325F74206E65656465645370616365203D2031202B2072656D61696E696E674C656E6774684C656E6774683B0A20206E65656465645370616365202B3D20323B0A20206E65656465645370616365202B3D2070726F746F636F6C4E616D654C656E6774683B0A20206E65656465645370616365202B3D20313B0A20206E65656465645370616365202B3D20313B0A20206E65656465645370616365202B3D20323B0A20206E65656465645370616365202B3D20323B0A20206E65656465645370616365202B3D20636C69656E7449644C656E6774683B0A2020696620285F77696C6C546F70696320213D206E756C6C70747229207B0A202020206E65656465645370616365202B3D20323B0A202020206E65656465645370616365202B3D2077696C6C546F7069634C656E6774683B0A0A202020206E65656465645370616365202B3D20323B0A20202020696620285F77696C6C5061796C6F616420213D206E756C6C70747229206E65656465645370616365202B3D2077696C6C5061796C6F61644C656E6774683B0A20207D0A2020696620285F757365726E616D6520213D206E756C6C70747229207B0A202020206E65656465645370616365202B3D20323B0A202020206E65656465645370616365202B3D20757365726E616D654C656E6774683B0A20207D0A2020696620285F70617373776F726420213D206E756C6C70747229207B0A202020206E65656465645370616365202B3D20323B0A202020206E65656465645370616365202B3D2070617373776F72644C656E6774683B0A20207D0A0A2020696620285F636C69656E742E73706163652829203C206E6565646564537061636529207B0A202020205F636F6E6E6563745061636B65744E6F74456E6F7567685370616365203D20747275653B0A202020205F636C69656E742E636C6F73652874727565293B0A2020202072657475726E3B0A20207D0A0A20205F636C69656E742E6164642866697865644865616465722C2031202B2072656D61696E696E674C656E6774684C656E677468293B0A20205F636C69656E742E6164642870726F746F636F6C4E616D654C656E67746842797465732C2032293B0A20205F636C69656E742E61646428224D515454222C2070726F746F636F6C4E616D654C656E677468293B0A20205F636C69656E742E6164642870726F746F636F6C4C6576656C2C2031293B0A20205F636C69656E742E61646428636F6E6E656374466C6167732C2031293B0A20205F636C69656E742E616464286B656570416C69766542797465732C2032293B0A20205F636C69656E742E61646428636C69656E7449644C656E67746842797465732C2032293B0A20205F636C69656E742E616464285F636C69656E7449642C20636C69656E7449644C656E677468293B0A2020696620285F77696C6C546F70696320213D206E756C6C70747229207B0A202020205F636C69656E742E6164642877696C6C546F7069634C656E67746842797465732C2032293B0A202020205F636C69656E742E616464285F77696C6C546F7069632C2077696C6C546F7069634C656E677468293B0A0A202020205F636C69656E742E6164642877696C6C5061796C6F61644C656E67746842797465732C2032293B0A20202020696620285F77696C6C5061796C6F616420213D206E756C6C70747229205F636C69656E742E616464285F77696C6C5061796C6F61642C2077696C6C5061796C6F61644C656E677468293B0A20207D0A2020696620285F757365726E616D6520213D206E756C6C70747229207B0A202020205F636C69656E742E61646428757365726E616D654C656E67746842797465732C2032293B0A202020205F636C69656E742E616464285F757365726E616D652C20757365726E616D654C656E677468293B0A20207D0A2020696620285F70617373776F726420213D206E756C6C70747229207B0A202020205F636C69656E742E6164642870617373776F72644C656E67746842797465732C2032293B0A202020205F636C69656E742E616464285F70617373776F72642C2070617373776F72644C656E677468293B0A20207D0A20205F636C69656E742E73656E6428293B0A20205F6C617374436C69656E744163746976697479203D206D696C6C697328293B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E446973636F6E6E656374284173796E63436C69656E742A20636C69656E7429207B0A202028766F696429636C69656E743B0A20204173796E634D717474436C69656E74446973636F6E6E656374526561736F6E20726561736F6E3B0A0A2020696620285F636F6E6E6563745061636B65744E6F74456E6F756768537061636529207B0A20202020726561736F6E203D204173796E634D717474436C69656E74446973636F6E6E656374526561736F6E3A3A455350383236365F4E4F545F454E4F5547485F53504143453B0A20207D20656C736520696620285F746C7342616446696E6765727072696E7429207B0A20202020726561736F6E203D204173796E634D717474436C69656E74446973636F6E6E656374526561736F6E3A3A544C535F4241445F46494E4745525052494E543B0A20207D20656C7365207B0A20202020726561736F6E203D204173796E634D717474436C69656E74446973636F6E6E656374526561736F6E3A3A5443505F444953434F4E4E45435445443B0A20207D0A0A20205F636C65617228293B0A0A2020666F7220286175746F2063616C6C6261636B203A205F6F6E446973636F6E6E6563745573657243616C6C6261636B73292063616C6C6261636B28726561736F6E293B0A0A20205F636F6E6E6563745061636B65744E6F74456E6F7567685370616365203D2066616C73653B0A20205F746C7342616446696E6765727072696E74203D2066616C73653B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E4572726F72284173796E63436C69656E742A20636C69656E742C20696E74385F74206572726F7229207B0A202028766F696429636C69656E743B0A202028766F6964296572726F723B0A20202F2F205F6F6E446973636F6E6E6563742063616C6C656420616E797761790A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E54696D656F7574284173796E63436C69656E742A20636C69656E742C2075696E7433325F742074696D6529207B0A202028766F696429636C69656E743B0A202028766F69642974696D653B0A20202F2F20646973636F6E6E656374696F6E2077696C6C2062652068616E646C65642062792070696E672F706F6E67206D616E6167656D656E740A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E41636B284173796E63436C69656E742A20636C69656E742C2073697A655F74206C656E2C2075696E7433325F742074696D6529207B0A202028766F696429636C69656E743B0A202028766F6964296C656E3B0A202028766F69642974696D653B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E44617461284173796E63436C69656E742A20636C69656E742C20636861722A20646174612C2073697A655F74206C656E29207B0A202028766F696429636C69656E743B0A202073697A655F742063757272656E7442797465506F736974696F6E203D20303B0A2020636861722063757272656E74427974653B0A2020646F207B0A2020202073776974636820285F70617273696E67496E666F726D6174696F6E2E627566666572537461746529207B0A20202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A42756666657253746174653A3A4E4F4E453A0A202020202020202063757272656E7442797465203D20646174615B63757272656E7442797465506F736974696F6E2B2B5D3B0A20202020202020205F70617273696E67496E666F726D6174696F6E2E7061636B657454797065203D2063757272656E7442797465203E3E20343B0A20202020202020205F70617273696E67496E666F726D6174696F6E2E7061636B6574466C616773203D202863757272656E7442797465203C3C203429203E3E20343B0A20202020202020205F70617273696E67496E666F726D6174696F6E2E6275666665725374617465203D204173796E634D717474436C69656E74496E7465726E616C733A3A42756666657253746174653A3A52454D41494E494E475F4C454E4754483B0A20202020202020205F6C6173745365727665724163746976697479203D206D696C6C697328293B0A202020202020202073776974636820285F70617273696E67496E666F726D6174696F6E2E7061636B65745479706529207B0A2020202020202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E434F4E4E41434B3A0A2020202020202020202020205F63757272656E745061727365645061636B6574203D206E6577204173796E634D717474436C69656E74496E7465726E616C733A3A436F6E6E41636B5061636B657428265F70617273696E67496E666F726D6174696F6E2C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E436F6E6E41636B2C20746869732C207374643A3A706C616365686F6C646572733A3A5F312C207374643A3A706C616365686F6C646572733A3A5F3229293B0A202020202020202020202020627265616B3B0A2020202020202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E50494E47524553503A0A2020202020202020202020205F63757272656E745061727365645061636B6574203D206E6577204173796E634D717474436C69656E74496E7465726E616C733A3A50696E67526573705061636B657428265F70617273696E67496E666F726D6174696F6E2C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E50696E67526573702C207468697329293B0A202020202020202020202020627265616B3B0A2020202020202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E53554241434B3A0A2020202020202020202020205F63757272656E745061727365645061636B6574203D206E6577204173796E634D717474436C69656E74496E7465726E616C733A3A53756241636B5061636B657428265F70617273696E67496E666F726D6174696F6E2C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E53756241636B2C20746869732C207374643A3A706C616365686F6C646572733A3A5F312C207374643A3A706C616365686F6C646572733A3A5F3229293B0A202020202020202020202020627265616B3B0A2020202020202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E554E53554241434B3A0A2020202020202020202020205F63757272656E745061727365645061636B6574203D206E6577204173796E634D717474436C69656E74496E7465726E616C733A3A556E73756241636B5061636B657428265F70617273696E67496E666F726D6174696F6E2C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E556E73756241636B2C20746869732C207374643A3A706C616365686F6C646572733A3A5F3129293B0A202020202020202020202020627265616B3B0A2020202020202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E5055424C4953483A0A2020202020202020202020205F63757272656E745061727365645061636B6574203D206E6577204173796E634D717474436C69656E74496E7465726E616C733A3A5075626C6973685061636B657428265F70617273696E67496E666F726D6174696F6E2C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E4D6573736167652C20746869732C207374643A3A706C616365686F6C646572733A3A5F312C207374643A3A706C616365686F6C646572733A3A5F322C207374643A3A706C616365686F6C646572733A3A5F332C207374643A3A706C616365686F6C646572733A3A5F342C207374643A3A706C616365686F6C646572733A3A5F352C207374643A3A706C616365686F6C646572733A3A5F362C207374643A3A706C616365686F6C646572733A3A5F372C207374643A3A706C616365686F6C646572733A3A5F382C207374643A3A706C616365686F6C646572733A3A5F39292C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E5075626C6973682C20746869732C207374643A3A706C616365686F6C646572733A3A5F312C207374643A3A706C616365686F6C646572733A3A5F3229293B0A202020202020202020202020627265616B3B0A2020202020202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E50554252454C3A0A2020202020202020202020205F63757272656E745061727365645061636B6574203D206E6577204173796E634D717474436C69656E74496E7465726E616C733A3A50756252656C5061636B657428265F70617273696E67496E666F726D6174696F6E2C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E50756252656C2C20746869732C207374643A3A706C616365686F6C646572733A3A5F3129293B0A202020202020202020202020627265616B3B0A2020202020202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E50554241434B3A0A2020202020202020202020205F63757272656E745061727365645061636B6574203D206E6577204173796E634D717474436C69656E74496E7465726E616C733A3A50756241636B5061636B657428265F70617273696E67496E666F726D6174696F6E2C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E50756241636B2C20746869732C207374643A3A706C616365686F6C646572733A3A5F3129293B0A202020202020202020202020627265616B3B0A2020202020202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E5055425245433A0A2020202020202020202020205F63757272656E745061727365645061636B6574203D206E6577204173796E634D717474436C69656E74496E7465726E616C733A3A5075625265635061636B657428265F70617273696E67496E666F726D6174696F6E2C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E5075625265632C20746869732C207374643A3A706C616365686F6C646572733A3A5F3129293B0A202020202020202020202020627265616B3B0A2020202020202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E505542434F4D503A0A2020202020202020202020205F63757272656E745061727365645061636B6574203D206E6577204173796E634D717474436C69656E74496E7465726E616C733A3A507562436F6D705061636B657428265F70617273696E67496E666F726D6174696F6E2C207374643A3A62696E6428264173796E634D717474436C69656E743A3A5F6F6E507562436F6D702C20746869732C207374643A3A706C616365686F6C646572733A3A5F3129293B0A202020202020202020202020627265616B3B0A2020202020202020202064656661756C743A0A202020202020202020202020627265616B3B0A20202020202020207D0A2020202020202020627265616B3B0A20202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A42756666657253746174653A3A52454D41494E494E475F4C454E4754483A0A202020202020202063757272656E7442797465203D20646174615B63757272656E7442797465506F736974696F6E2B2B5D3B0A20202020202020205F72656D61696E696E674C656E6774684275666665725B5F72656D61696E696E674C656E677468427566666572506F736974696F6E2B2B5D203D2063757272656E74427974653B0A20202020202020206966202863757272656E7442797465203E3E2037203D3D203029207B0A202020202020202020205F70617273696E67496E666F726D6174696F6E2E72656D61696E696E674C656E677468203D204173796E634D717474436C69656E74496E7465726E616C733A3A48656C706572733A3A6465636F646552656D61696E696E674C656E677468285F72656D61696E696E674C656E677468427566666572293B0A202020202020202020205F72656D61696E696E674C656E677468427566666572506F736974696F6E203D20303B0A20202020202020202020696620285F70617273696E67496E666F726D6174696F6E2E72656D61696E696E674C656E677468203E203029207B0A2020202020202020202020205F70617273696E67496E666F726D6174696F6E2E6275666665725374617465203D204173796E634D717474436C69656E74496E7465726E616C733A3A42756666657253746174653A3A5641524941424C455F4845414445523B0A202020202020202020207D20656C7365207B0A2020202020202020202020202F2F2050494E47524553502069732061207370656369616C206361736520776865726520697420686173206E6F207661726961626C65206865616465722C20736F20746865207061636B657420656E647320726967687420686572650A2020202020202020202020205F70617273696E67496E666F726D6174696F6E2E6275666665725374617465203D204173796E634D717474436C69656E74496E7465726E616C733A3A42756666657253746174653A3A4E4F4E453B0A2020202020202020202020205F6F6E50696E675265737028293B0A202020202020202020207D0A20202020202020207D0A2020202020202020627265616B3B0A20202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A42756666657253746174653A3A5641524941424C455F4845414445523A0A20202020202020205F63757272656E745061727365645061636B65742D3E70617273655661726961626C6548656164657228646174612C206C656E2C202663757272656E7442797465506F736974696F6E293B0A2020202020202020627265616B3B0A20202020202063617365204173796E634D717474436C69656E74496E7465726E616C733A3A42756666657253746174653A3A5041594C4F41443A0A20202020202020205F63757272656E745061727365645061636B65742D3E70617273655061796C6F616428646174612C206C656E2C202663757272656E7442797465506F736974696F6E293B0A2020202020202020627265616B3B0A20202020202064656661756C743A0A202020202020202063757272656E7442797465506F736974696F6E203D206C656E3B0A202020207D0A20207D207768696C65202863757272656E7442797465506F736974696F6E20213D206C656E293B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E506F6C6C284173796E63436C69656E742A20636C69656E7429207B0A202069662028215F636F6E6E6563746564292072657475726E3B0A0A20202F2F20696620746865726520697320746F6F206D7563682074696D652074686520636C69656E74206861732073656E7420612070696E67207265717565737420776974686F7574206120726573706F6E73652C20646973636F6E6E65637420636C69656E7420746F2061766F69642068616C66206F70656E20636F6E6E656374696F6E730A2020696620285F6C61737450696E675265717565737454696D6520213D203020262620286D696C6C69732829202D205F6C61737450696E675265717565737454696D6529203E3D20285F6B656570416C697665202A2031303030202A20322929207B0A20202020646973636F6E6E65637428293B0A2020202072657475726E3B0A20202F2F2073656E642070696E6720746F20656E7375726520746865207365727665722077696C6C2072656365697665206174206C65617374206F6E65206D65737361676520696E73696465206B656570616C6976652077696E646F770A20207D20656C736520696620285F6C61737450696E675265717565737454696D65203D3D203020262620286D696C6C69732829202D205F6C617374436C69656E74416374697669747929203E3D20285F6B656570416C697665202A2031303030202A20302E372929207B0A202020205F73656E6450696E6728293B0A0A20202F2F2073656E642070696E6720746F207665726966792069662074686520736572766572206973207374696C6C2074686572652028656E737572652074686973206973206E6F7420612068616C6620636F6E6E656374696F6E290A20207D20656C736520696620285F636F6E6E6563746564202626205F6C61737450696E675265717565737454696D65203D3D203020262620286D696C6C69732829202D205F6C617374536572766572416374697669747929203E3D20285F6B656570416C697665202A2031303030202A20302E372929207B0A202020205F73656E6450696E6728293B0A20207D0A0A20202F2F2068616E646C6520746F2073656E642061636B207061636B6574730A0A20205F73656E6441636B7328293B0A0A20202F2F2068616E646C6520646973636F6E6E6563740A0A2020696620285F646973636F6E6E656374466C616767656429207B0A202020205F73656E64446973636F6E6E65637428293B0A20207D0A7D0A0A2F2A204D515454202A2F0A766F6964204173796E634D717474436C69656E743A3A5F6F6E50696E67526573702829207B0A20205F6672656543757272656E745061727365645061636B657428293B0A20205F6C61737450696E675265717565737454696D65203D20303B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E436F6E6E41636B28626F6F6C2073657373696F6E50726573656E742C2075696E74385F7420636F6E6E65637452657475726E436F646529207B0A202028766F69642973657373696F6E50726573656E743B0A20205F6672656543757272656E745061727365645061636B657428293B0A0A202069662028636F6E6E65637452657475726E436F6465203D3D203029207B0A202020205F636F6E6E6563746564203D20747275653B0A20202020666F7220286175746F2063616C6C6261636B203A205F6F6E436F6E6E6563745573657243616C6C6261636B73292063616C6C6261636B2873657373696F6E50726573656E74293B0A20207D20656C7365207B0A202020205F636C65617228293B0A20202020666F7220286175746F2063616C6C6261636B203A205F6F6E446973636F6E6E6563745573657243616C6C6261636B73292063616C6C6261636B287374617469635F636173743C4173796E634D717474436C69656E74446973636F6E6E656374526561736F6E3E28636F6E6E65637452657475726E436F646529293B0A20207D0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E53756241636B2875696E7431365F74207061636B657449642C20636861722073746174757329207B0A20205F6672656543757272656E745061727365645061636B657428293B0A0A2020666F7220286175746F2063616C6C6261636B203A205F6F6E5375627363726962655573657243616C6C6261636B73292063616C6C6261636B287061636B657449642C20737461747573293B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E556E73756241636B2875696E7431365F74207061636B6574496429207B0A20205F6672656543757272656E745061727365645061636B657428293B0A0A2020666F7220286175746F2063616C6C6261636B203A205F6F6E556E7375627363726962655573657243616C6C6261636B73292063616C6C6261636B287061636B65744964293B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E4D65737361676528636861722A20746F7069632C20636861722A207061796C6F61642C2075696E74385F7420716F732C20626F6F6C206475702C20626F6F6C2072657461696E2C2073697A655F74206C656E2C2073697A655F7420696E6465782C2073697A655F7420746F74616C2C2075696E7431365F74207061636B6574496429207B0A2020626F6F6C206E6F746966795075626C697368203D20747275653B0A0A202069662028716F73203D3D203229207B0A20202020666F7220284173796E634D717474436C69656E74496E7465726E616C733A3A50656E64696E6750756252656C2070656E64696E6750756252656C203A205F70656E64696E6750756252656C7329207B0A2020202020206966202870656E64696E6750756252656C2E7061636B65744964203D3D207061636B6574496429207B0A20202020202020206E6F746966795075626C697368203D2066616C73653B0A2020202020202020627265616B3B0A2020202020207D0A202020207D0A20207D0A0A2020696620286E6F746966795075626C69736829207B0A202020204173796E634D717474436C69656E744D65737361676550726F706572746965732070726F706572746965733B0A2020202070726F706572746965732E716F73203D20716F733B0A2020202070726F706572746965732E647570203D206475703B0A2020202070726F706572746965732E72657461696E203D2072657461696E3B0A0A20202020666F7220286175746F2063616C6C6261636B203A205F6F6E4D6573736167655573657243616C6C6261636B73292063616C6C6261636B28746F7069632C207061796C6F61642C2070726F706572746965732C206C656E2C20696E6465782C20746F74616C293B0A20207D0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E5075626C6973682875696E7431365F74207061636B657449642C2075696E74385F7420716F7329207B0A20204173796E634D717474436C69656E74496E7465726E616C733A3A50656E64696E6741636B2070656E64696E6741636B3B0A0A202069662028716F73203D3D203129207B0A2020202070656E64696E6741636B2E7061636B657454797065203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E50554241434B3B0A2020202070656E64696E6741636B2E686561646572466C6167203D204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E50554241434B5F52455345525645443B0A2020202070656E64696E6741636B2E7061636B65744964203D207061636B657449643B0A202020205F746F53656E6441636B732E707573685F6261636B2870656E64696E6741636B293B0A20207D20656C73652069662028716F73203D3D203229207B0A2020202070656E64696E6741636B2E7061636B657454797065203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E5055425245433B0A2020202070656E64696E6741636B2E686561646572466C6167203D204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E5055425245435F52455345525645443B0A2020202070656E64696E6741636B2E7061636B65744964203D207061636B657449643B0A202020205F746F53656E6441636B732E707573685F6261636B2870656E64696E6741636B293B0A0A20202020626F6F6C2070756252656C4177616974696E67203D2066616C73653B0A20202020666F7220284173796E634D717474436C69656E74496E7465726E616C733A3A50656E64696E6750756252656C2070656E64696E6750756252656C203A205F70656E64696E6750756252656C7329207B0A2020202020206966202870656E64696E6750756252656C2E7061636B65744964203D3D207061636B6574496429207B0A202020202020202070756252656C4177616974696E67203D20747275653B0A2020202020202020627265616B3B0A2020202020207D0A202020207D0A0A20202020696620282170756252656C4177616974696E6729207B0A2020202020204173796E634D717474436C69656E74496E7465726E616C733A3A50656E64696E6750756252656C2070656E64696E6750756252656C3B0A20202020202070656E64696E6750756252656C2E7061636B65744964203D207061636B657449643B0A2020202020205F70656E64696E6750756252656C732E707573685F6261636B2870656E64696E6750756252656C293B0A202020207D0A0A202020205F73656E6441636B7328293B0A20207D0A0A20205F6672656543757272656E745061727365645061636B657428293B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E50756252656C2875696E7431365F74207061636B6574496429207B0A20205F6672656543757272656E745061727365645061636B657428293B0A0A20204173796E634D717474436C69656E74496E7465726E616C733A3A50656E64696E6741636B2070656E64696E6741636B3B0A202070656E64696E6741636B2E7061636B657454797065203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E505542434F4D503B0A202070656E64696E6741636B2E686561646572466C6167203D204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E505542434F4D505F52455345525645443B0A202070656E64696E6741636B2E7061636B65744964203D207061636B657449643B0A20205F746F53656E6441636B732E707573685F6261636B2870656E64696E6741636B293B0A0A2020666F72202873697A655F742069203D20303B2069203C205F70656E64696E6750756252656C732E73697A6528293B20692B2B29207B0A20202020696620285F70656E64696E6750756252656C735B695D2E7061636B65744964203D3D207061636B6574496429207B0A2020202020205F70656E64696E6750756252656C732E6572617365285F70656E64696E6750756252656C732E626567696E2829202B2069293B0A2020202020205F70656E64696E6750756252656C732E736872696E6B5F746F5F66697428293B0A202020207D0A20207D0A0A20205F73656E6441636B7328293B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E50756241636B2875696E7431365F74207061636B6574496429207B0A20205F6672656543757272656E745061727365645061636B657428293B0A0A2020666F7220286175746F2063616C6C6261636B203A205F6F6E5075626C6973685573657243616C6C6261636B73292063616C6C6261636B287061636B65744964293B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E5075625265632875696E7431365F74207061636B6574496429207B0A20205F6672656543757272656E745061727365645061636B657428293B0A0A20204173796E634D717474436C69656E74496E7465726E616C733A3A50656E64696E6741636B2070656E64696E6741636B3B0A202070656E64696E6741636B2E7061636B657454797065203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E50554252454C3B0A202070656E64696E6741636B2E686561646572466C6167203D204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E50554252454C5F52455345525645443B0A202070656E64696E6741636B2E7061636B65744964203D207061636B657449643B0A20205F746F53656E6441636B732E707573685F6261636B2870656E64696E6741636B293B0A0A20205F73656E6441636B7328293B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F6F6E507562436F6D702875696E7431365F74207061636B6574496429207B0A20205F6672656543757272656E745061727365645061636B657428293B0A0A2020666F7220286175746F2063616C6C6261636B203A205F6F6E5075626C6973685573657243616C6C6261636B73292063616C6C6261636B287061636B65744964293B0A7D0A0A626F6F6C204173796E634D717474436C69656E743A3A5F73656E6450696E672829207B0A2020636861722066697865644865616465725B325D3B0A202066697865644865616465725B305D203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E50494E475245513B0A202066697865644865616465725B305D203D2066697865644865616465725B305D203C3C20343B0A202066697865644865616465725B305D203D2066697865644865616465725B305D207C204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E50494E475245515F52455345525645443B0A202066697865644865616465725B315D203D20303B0A0A202073697A655F74206E65656465645370616365203D20323B0A0A2020696620285F636C69656E742E73706163652829203C206E65656465645370616365292072657475726E2066616C73653B0A0A20205F636C69656E742E6164642866697865644865616465722C2032293B0A20205F636C69656E742E73656E6428293B0A20205F6C617374436C69656E744163746976697479203D206D696C6C697328293B0A20205F6C61737450696E675265717565737454696D65203D206D696C6C697328293B0A0A202072657475726E20747275653B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A5F73656E6441636B732829207B0A202075696E74385F74206E656564656441636B5370616365203D2032202B20323B0A0A2020666F72202873697A655F742069203D20303B2069203C205F746F53656E6441636B732E73697A6528293B20692B2B29207B0A20202020696620285F636C69656E742E73706163652829203C206E656564656441636B53706163652920627265616B3B0A0A202020204173796E634D717474436C69656E74496E7465726E616C733A3A50656E64696E6741636B2070656E64696E6741636B203D205F746F53656E6441636B735B695D3B0A0A20202020636861722066697865644865616465725B325D3B0A2020202066697865644865616465725B305D203D2070656E64696E6741636B2E7061636B6574547970653B0A2020202066697865644865616465725B305D203D2066697865644865616465725B305D203C3C20343B0A2020202066697865644865616465725B305D203D2066697865644865616465725B305D207C2070656E64696E6741636B2E686561646572466C61673B0A2020202066697865644865616465725B315D203D20323B0A0A2020202063686172207061636B6574496442797465735B325D3B0A202020207061636B6574496442797465735B305D203D2070656E64696E6741636B2E7061636B65744964203E3E20383B0A202020207061636B6574496442797465735B315D203D2070656E64696E6741636B2E7061636B65744964202620307846463B0A0A202020205F636C69656E742E6164642866697865644865616465722C2032293B0A202020205F636C69656E742E616464287061636B6574496442797465732C2032293B0A202020205F636C69656E742E73656E6428293B0A0A202020205F746F53656E6441636B732E6572617365285F746F53656E6441636B732E626567696E2829202B2069293B0A202020205F746F53656E6441636B732E736872696E6B5F746F5F66697428293B0A0A202020205F6C617374436C69656E744163746976697479203D206D696C6C697328293B0A20207D0A7D0A0A626F6F6C204173796E634D717474436C69656E743A3A5F73656E64446973636F6E6E6563742829207B0A2020636F6E73742075696E74385F74206E65656465645370616365203D20323B0A0A2020696620285F636C69656E742E73706163652829203C206E65656465645370616365292072657475726E2066616C73653B0A0A2020636861722066697865644865616465725B325D3B0A202066697865644865616465725B305D203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E444953434F4E4E4543543B0A202066697865644865616465725B305D203D2066697865644865616465725B305D203C3C20343B0A202066697865644865616465725B305D203D2066697865644865616465725B305D207C204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E444953434F4E4E4543545F52455345525645443B0A202066697865644865616465725B315D203D20303B0A0A20205F636C69656E742E6164642866697865644865616465722C2032293B0A20205F636C69656E742E73656E6428293B0A20205F636C69656E742E636C6F73652874727565293B0A0A20205F646973636F6E6E656374466C6167676564203D2066616C73653B0A0A202072657475726E20747275653B0A7D0A0A75696E7431365F74204173796E634D717474436C69656E743A3A5F6765744E6578745061636B657449642829207B0A202075696E7431365F74206E6578745061636B65744964203D205F6E6578745061636B657449643B0A0A2020696620285F6E6578745061636B65744964203D3D20363535333529205F6E6578745061636B65744964203D20303B20202F2F203020697320666F7262696464656E0A20205F6E6578745061636B657449642B2B3B0A0A202072657475726E206E6578745061636B657449643B0A7D0A0A626F6F6C204173796E634D717474436C69656E743A3A636F6E6E6563746564282920636F6E7374207B0A202072657475726E205F636F6E6E65637465643B0A7D0A0A766F6964204173796E634D717474436C69656E743A3A636F6E6E6563742829207B0A2020696620285F636F6E6E6563746564292072657475726E3B0A0A236966204153594E435F5443505F53534C5F454E41424C45440A2020696620285F757365497029207B0A202020205F636C69656E742E636F6E6E656374285F69702C205F706F72742C205F736563757265293B0A20207D20656C7365207B0A202020205F636C69656E742E636F6E6E656374285F686F73742C205F706F72742C205F736563757265293B0A20207D0A23656C73650A2020696620285F757365497029207B0A202020205F636C69656E742E636F6E6E656374285F69702C205F706F7274293B0A20207D20656C7365207B0A202020205F636C69656E742E636F6E6E656374285F686F73742C205F706F7274293B0A20207D0A23656E6469660A7D0A0A766F6964204173796E634D717474436C69656E743A3A646973636F6E6E65637428626F6F6C20666F72636529207B0A202069662028215F636F6E6E6563746564292072657475726E3B0A0A202069662028666F72636529207B0A202020205F636C69656E742E636C6F73652874727565293B0A20207D20656C7365207B0A202020205F646973636F6E6E656374466C6167676564203D20747275653B0A202020205F73656E64446973636F6E6E65637428293B0A202020205F636C69656E742E73656E6428293B0A20207D0A7D0A0A75696E7431365F74204173796E634D717474436C69656E743A3A73756273637269626528636F6E737420636861722A20746F7069632C2075696E74385F7420716F7329207B0A202069662028215F636F6E6E6563746564292072657475726E20303B0A0A2020636861722066697865644865616465725B355D3B0A202066697865644865616465725B305D203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E5355425343524942453B0A202066697865644865616465725B305D203D2066697865644865616465725B305D203C3C20343B0A202066697865644865616465725B305D203D2066697865644865616465725B305D207C204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E5355425343524942455F52455345525645443B0A0A202075696E7431365F7420746F7069634C656E677468203D207374726C656E28746F706963293B0A20206368617220746F7069634C656E67746842797465735B325D3B0A2020746F7069634C656E67746842797465735B305D203D20746F7069634C656E677468203E3E20383B0A2020746F7069634C656E67746842797465735B315D203D20746F7069634C656E677468202620307846463B0A0A20206368617220716F73427974655B315D3B0A2020716F73427974655B305D203D20716F733B0A0A202075696E74385F742072656D61696E696E674C656E6774684C656E677468203D204173796E634D717474436C69656E74496E7465726E616C733A3A48656C706572733A3A656E636F646552656D61696E696E674C656E6774682832202B2032202B20746F7069634C656E677468202B20312C206669786564486561646572202B2031293B0A0A202073697A655F74206E65656465645370616365203D20303B0A20206E65656465645370616365202B3D2031202B2072656D61696E696E674C656E6774684C656E6774683B0A20206E65656465645370616365202B3D20323B0A20206E65656465645370616365202B3D20323B0A20206E65656465645370616365202B3D20746F7069634C656E6774683B0A20206E65656465645370616365202B3D20313B0A2020696620285F636C69656E742E73706163652829203C206E65656465645370616365292072657475726E20303B0A0A202075696E7431365F74207061636B65744964203D205F6765744E6578745061636B6574496428293B0A202063686172207061636B6574496442797465735B325D3B0A20207061636B6574496442797465735B305D203D207061636B65744964203E3E20383B0A20207061636B6574496442797465735B315D203D207061636B65744964202620307846463B0A0A20205F636C69656E742E6164642866697865644865616465722C2031202B2072656D61696E696E674C656E6774684C656E677468293B0A20205F636C69656E742E616464287061636B6574496442797465732C2032293B0A20205F636C69656E742E61646428746F7069634C656E67746842797465732C2032293B0A20205F636C69656E742E61646428746F7069632C20746F7069634C656E677468293B0A20205F636C69656E742E61646428716F73427974652C2031293B0A20205F636C69656E742E73656E6428293B0A20205F6C617374436C69656E744163746976697479203D206D696C6C697328293B0A0A202072657475726E207061636B657449643B0A7D0A0A75696E7431365F74204173796E634D717474436C69656E743A3A756E73756273637269626528636F6E737420636861722A20746F70696329207B0A202069662028215F636F6E6E6563746564292072657475726E20303B0A0A2020636861722066697865644865616465725B355D3B0A202066697865644865616465725B305D203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E554E5355425343524942453B0A202066697865644865616465725B305D203D2066697865644865616465725B305D203C3C20343B0A202066697865644865616465725B305D203D2066697865644865616465725B305D207C204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E554E5355425343524942455F52455345525645443B0A0A202075696E7431365F7420746F7069634C656E677468203D207374726C656E28746F706963293B0A20206368617220746F7069634C656E67746842797465735B325D3B0A2020746F7069634C656E67746842797465735B305D203D20746F7069634C656E677468203E3E20383B0A2020746F7069634C656E67746842797465735B315D203D20746F7069634C656E677468202620307846463B0A0A202075696E74385F742072656D61696E696E674C656E6774684C656E677468203D204173796E634D717474436C69656E74496E7465726E616C733A3A48656C706572733A3A656E636F646552656D61696E696E674C656E6774682832202B2032202B20746F7069634C656E6774682C206669786564486561646572202B2031293B0A0A202073697A655F74206E65656465645370616365203D20303B0A20206E65656465645370616365202B3D2031202B2072656D61696E696E674C656E6774684C656E6774683B0A20206E65656465645370616365202B3D20323B0A20206E65656465645370616365202B3D20323B0A20206E65656465645370616365202B3D20746F7069634C656E6774683B0A2020696620285F636C69656E742E73706163652829203C206E65656465645370616365292072657475726E20303B0A0A202075696E7431365F74207061636B65744964203D205F6765744E6578745061636B6574496428293B0A202063686172207061636B6574496442797465735B325D3B0A20207061636B6574496442797465735B305D203D207061636B65744964203E3E20383B0A20207061636B6574496442797465735B315D203D207061636B65744964202620307846463B0A0A20205F636C69656E742E6164642866697865644865616465722C2031202B2072656D61696E696E674C656E6774684C656E677468293B0A20205F636C69656E742E616464287061636B6574496442797465732C2032293B0A20205F636C69656E742E61646428746F7069634C656E67746842797465732C2032293B0A20205F636C69656E742E61646428746F7069632C20746F7069634C656E677468293B0A20205F636C69656E742E73656E6428293B0A20205F6C617374436C69656E744163746976697479203D206D696C6C697328293B0A0A202072657475726E207061636B657449643B0A7D0A0A75696E7431365F74204173796E634D717474436C69656E743A3A7075626C69736828636F6E737420636861722A20746F7069632C2075696E74385F7420716F732C20626F6F6C2072657461696E2C20636F6E737420636861722A207061796C6F61642C2073697A655F74206C656E6774682C20626F6F6C206475702C2075696E7431365F74206D6573736167655F696429207B0A202069662028215F636F6E6E6563746564292072657475726E20303B0A0A2020636861722066697865644865616465725B355D3B0A202066697865644865616465725B305D203D204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B6574547970652E5055424C4953483B0A202066697865644865616465725B305D203D2066697865644865616465725B305D203C3C20343B0A202069662028647570292066697865644865616465725B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E5055424C4953485F4455503B0A20206966202872657461696E292066697865644865616465725B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E5055424C4953485F52455441494E3B0A20207377697463682028716F7329207B0A202020206361736520303A0A20202020202066697865644865616465725B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E5055424C4953485F514F53303B0A202020202020627265616B3B0A202020206361736520313A0A20202020202066697865644865616465725B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E5055424C4953485F514F53313B0A202020202020627265616B3B0A202020206361736520323A0A20202020202066697865644865616465725B305D207C3D204173796E634D717474436C69656E74496E7465726E616C733A3A486561646572466C61672E5055424C4953485F514F53323B0A202020202020627265616B3B0A20207D0A0A202075696E7431365F7420746F7069634C656E677468203D207374726C656E28746F706963293B0A20206368617220746F7069634C656E67746842797465735B325D3B0A2020746F7069634C656E67746842797465735B305D203D20746F7069634C656E677468203E3E20383B0A2020746F7069634C656E67746842797465735B315D203D20746F7069634C656E677468202620307846463B0A0A202075696E7433325F74207061796C6F61644C656E677468203D206C656E6774683B0A2020696620287061796C6F616420213D206E756C6C707472202626207061796C6F61644C656E677468203D3D203029207061796C6F61644C656E677468203D207374726C656E287061796C6F6164293B0A0A202075696E7433325F742072656D61696E696E674C656E677468203D2032202B20746F7069634C656E677468202B207061796C6F61644C656E6774683B0A202069662028716F7320213D2030292072656D61696E696E674C656E677468202B3D20323B0A202075696E74385F742072656D61696E696E674C656E6774684C656E677468203D204173796E634D717474436C69656E74496E7465726E616C733A3A48656C706572733A3A656E636F646552656D61696E696E674C656E6774682872656D61696E696E674C656E6774682C206669786564486561646572202B2031293B0A0A202073697A655F74206E65656465645370616365203D20303B0A20206E65656465645370616365202B3D2031202B2072656D61696E696E674C656E6774684C656E6774683B0A20206E65656465645370616365202B3D20323B0A20206E65656465645370616365202B3D20746F7069634C656E6774683B0A202069662028716F7320213D203029206E65656465645370616365202B3D20323B0A2020696620287061796C6F616420213D206E756C6C70747229206E65656465645370616365202B3D207061796C6F61644C656E6774683B0A2020696620285F636C69656E742E73706163652829203C206E65656465645370616365292072657475726E20303B0A0A202075696E7431365F74207061636B65744964203D20303B0A202063686172207061636B6574496442797465735B325D3B0A202069662028716F7320213D203029207B0A2020202069662028647570202626206D6573736167655F6964203E203029207B0A2020202020207061636B65744964203D206D6573736167655F69643B0A202020207D20656C7365207B0A2020202020207061636B65744964203D205F6765744E6578745061636B6574496428293B0A202020207D0A0A202020207061636B6574496442797465735B305D203D207061636B65744964203E3E20383B0A202020207061636B6574496442797465735B315D203D207061636B65744964202620307846463B0A20207D0A0A20205F636C69656E742E6164642866697865644865616465722C2031202B2072656D61696E696E674C656E6774684C656E677468293B0A20205F636C69656E742E61646428746F7069634C656E67746842797465732C2032293B0A20205F636C69656E742E61646428746F7069632C20746F7069634C656E677468293B0A202069662028716F7320213D203029205F636C69656E742E616464287061636B6574496442797465732C2032293B0A2020696620287061796C6F616420213D206E756C6C70747229205F636C69656E742E616464287061796C6F61642C207061796C6F61644C656E677468293B0A20205F636C69656E742E73656E6428293B0A20205F6C617374436C69656E744163746976697479203D206D696C6C697328293B0A0A202069662028716F7320213D203029207B0A2020202072657475726E207061636B657449643B0A20207D20656C7365207B0A2020202072657475726E20313B0A20207D0A7D0A .cpp AsyncMqttClient 2369666E646566205352435F4153594E434D515454434C49454E545F485F0A23646566696E65205352435F4153594E434D515454434C49454E545F485F0A0A23696E636C75646520224173796E634D717474436C69656E742E687070220A0A23656E64696620202F2F205352435F4153594E434D515454434C49454E545F485F0A .h AsyncMqttClient 23707261676D61206F6E63650A0A23696E636C756465203C66756E6374696F6E616C3E0A23696E636C756465203C766563746F723E0A0A23696E636C756465202241726475696E6F2E68220A0A2369666465662045535033320A23696E636C756465203C4173796E635443502E683E0A23656C696620646566696E65642845535038323636290A23696E636C756465203C4553504173796E635443502E683E0A23656C73650A236572726F7220506C6174666F726D206E6F7420737570706F727465640A23656E6469660A0A236966204153594E435F5443505F53534C5F454E41424C45440A23696E636C756465203C7463705F6178746C732E683E0A23646566696E6520534841315F53495A452032300A23656E6469660A0A23696E636C75646520224173796E634D717474436C69656E742F466C6167732E687070220A23696E636C75646520224173796E634D717474436C69656E742F50617273696E67496E666F726D6174696F6E2E687070220A23696E636C75646520224173796E634D717474436C69656E742F4D65737361676550726F706572746965732E687070220A23696E636C75646520224173796E634D717474436C69656E742F48656C706572732E687070220A23696E636C75646520224173796E634D717474436C69656E742F43616C6C6261636B732E687070220A23696E636C75646520224173796E634D717474436C69656E742F446973636F6E6E656374526561736F6E732E687070220A23696E636C75646520224173796E634D717474436C69656E742F53746F726167652E687070220A0A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F5061636B65742E687070220A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F436F6E6E41636B5061636B65742E687070220A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F50696E67526573705061636B65742E687070220A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F53756241636B5061636B65742E687070220A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F556E73756241636B5061636B65742E687070220A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F5075626C6973685061636B65742E687070220A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F50756252656C5061636B65742E687070220A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F50756241636B5061636B65742E687070220A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F5075625265635061636B65742E687070220A23696E636C75646520224173796E634D717474436C69656E742F5061636B6574732F507562436F6D705061636B65742E687070220A0A636C617373204173796E634D717474436C69656E74207B0A207075626C69633A0A20204173796E634D717474436C69656E7428293B0A20207E4173796E634D717474436C69656E7428293B0A0A20204173796E634D717474436C69656E7426207365744B656570416C6976652875696E7431365F74206B656570416C697665293B0A20204173796E634D717474436C69656E742620736574436C69656E74496428636F6E737420636861722A20636C69656E744964293B0A20204173796E634D717474436C69656E742620736574436C65616E53657373696F6E28626F6F6C20636C65616E53657373696F6E293B0A20204173796E634D717474436C69656E7426207365744D6178546F7069634C656E6774682875696E7431365F74206D6178546F7069634C656E677468293B0A20204173796E634D717474436C69656E74262073657443726564656E7469616C7328636F6E737420636861722A20757365726E616D652C20636F6E737420636861722A2070617373776F7264203D206E756C6C707472293B0A20204173796E634D717474436C69656E74262073657457696C6C28636F6E737420636861722A20746F7069632C2075696E74385F7420716F732C20626F6F6C2072657461696E2C20636F6E737420636861722A207061796C6F6164203D206E756C6C7074722C2073697A655F74206C656E677468203D2030293B0A20204173796E634D717474436C69656E742620736574536572766572284950416464726573732069702C2075696E7431365F7420706F7274293B0A20204173796E634D717474436C69656E74262073657453657276657228636F6E737420636861722A20686F73742C2075696E7431365F7420706F7274293B0A236966204153594E435F5443505F53534C5F454E41424C45440A20204173796E634D717474436C69656E74262073657453656375726528626F6F6C20736563757265293B0A20204173796E634D717474436C69656E74262061646453657276657246696E6765727072696E7428636F6E73742075696E74385F742A2066696E6765727072696E74293B0A23656E6469660A0A20204173796E634D717474436C69656E7426206F6E436F6E6E656374284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E436F6E6E6563745573657243616C6C6261636B2063616C6C6261636B293B0A20204173796E634D717474436C69656E7426206F6E446973636F6E6E656374284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E446973636F6E6E6563745573657243616C6C6261636B2063616C6C6261636B293B0A20204173796E634D717474436C69656E7426206F6E537562736372696265284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E5375627363726962655573657243616C6C6261636B2063616C6C6261636B293B0A20204173796E634D717474436C69656E7426206F6E556E737562736372696265284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E556E7375627363726962655573657243616C6C6261636B2063616C6C6261636B293B0A20204173796E634D717474436C69656E7426206F6E4D657373616765284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E4D6573736167655573657243616C6C6261636B2063616C6C6261636B293B0A20204173796E634D717474436C69656E7426206F6E5075626C697368284173796E634D717474436C69656E74496E7465726E616C733A3A4F6E5075626C6973685573657243616C6C6261636B2063616C6C6261636B293B0A0A2020626F6F6C20636F6E6E6563746564282920636F6E73743B0A2020766F696420636F6E6E65637428293B0A2020766F696420646973636F6E6E65637428626F6F6C20666F726365203D2066616C7365293B0A202075696E7431365F742073756273637269626528636F6E737420636861722A20746F7069632C2075696E74385F7420716F73293B0A202075696E7431365F7420756E73756273637269626528636F6E737420636861722A20746F706963293B0A202075696E7431365F74207075626C69736828636F6E737420636861722A20746F7069632C2075696E74385F7420716F732C20626F6F6C2072657461696E2C20636F6E737420636861722A207061796C6F6164203D206E756C6C7074722C2073697A655F74206C656E677468203D20302C20626F6F6C20647570203D2066616C73652C2075696E7431365F74206D6573736167655F6964203D2030293B0A0A20707269766174653A0A20204173796E63436C69656E74205F636C69656E743B0A0A2020626F6F6C205F636F6E6E65637465643B0A2020626F6F6C205F636F6E6E6563745061636B65744E6F74456E6F75676853706163653B0A2020626F6F6C205F646973636F6E6E656374466C61676765643B0A2020626F6F6C205F746C7342616446696E6765727072696E743B0A202075696E7433325F74205F6C617374436C69656E7441637469766974793B0A202075696E7433325F74205F6C61737453657276657241637469766974793B0A202075696E7433325F74205F6C61737450696E675265717565737454696D653B0A0A202063686172205F67656E657261746564436C69656E7449645B3133202B20315D3B20202F2F20657370383236366162633132330A2020495041646472657373205F69703B0A2020636F6E737420636861722A205F686F73743B0A2020626F6F6C205F75736549703B0A236966204153594E435F5443505F53534C5F454E41424C45440A2020626F6F6C205F7365637572653B0A23656E6469660A202075696E7431365F74205F706F72743B0A202075696E7431365F74205F6B656570416C6976653B0A2020626F6F6C205F636C65616E53657373696F6E3B0A2020636F6E737420636861722A205F636C69656E7449643B0A2020636F6E737420636861722A205F757365726E616D653B0A2020636F6E737420636861722A205F70617373776F72643B0A2020636F6E737420636861722A205F77696C6C546F7069633B0A2020636F6E737420636861722A205F77696C6C5061796C6F61643B0A202075696E7431365F74205F77696C6C5061796C6F61644C656E6774683B0A202075696E74385F74205F77696C6C516F733B0A2020626F6F6C205F77696C6C52657461696E3B0A0A236966204153594E435F5443505F53534C5F454E41424C45440A20207374643A3A766563746F723C7374643A3A61727261793C75696E74385F742C20534841315F53495A453E3E205F73656375726553657276657246696E6765727072696E74733B0A23656E6469660A0A20207374643A3A766563746F723C4173796E634D717474436C69656E74496E7465726E616C733A3A4F6E436F6E6E6563745573657243616C6C6261636B3E205F6F6E436F6E6E6563745573657243616C6C6261636B733B0A20207374643A3A766563746F723C4173796E634D717474436C69656E74496E7465726E616C733A3A4F6E446973636F6E6E6563745573657243616C6C6261636B3E205F6F6E446973636F6E6E6563745573657243616C6C6261636B733B0A20207374643A3A766563746F723C4173796E634D717474436C69656E74496E7465726E616C733A3A4F6E5375627363726962655573657243616C6C6261636B3E205F6F6E5375627363726962655573657243616C6C6261636B733B0A20207374643A3A766563746F723C4173796E634D717474436C69656E74496E7465726E616C733A3A4F6E556E7375627363726962655573657243616C6C6261636B3E205F6F6E556E7375627363726962655573657243616C6C6261636B733B0A20207374643A3A766563746F723C4173796E634D717474436C69656E74496E7465726E616C733A3A4F6E4D6573736167655573657243616C6C6261636B3E205F6F6E4D6573736167655573657243616C6C6261636B733B0A20207374643A3A766563746F723C4173796E634D717474436C69656E74496E7465726E616C733A3A4F6E5075626C6973685573657243616C6C6261636B3E205F6F6E5075626C6973685573657243616C6C6261636B733B0A0A20204173796E634D717474436C69656E74496E7465726E616C733A3A50617273696E67496E666F726D6174696F6E205F70617273696E67496E666F726D6174696F6E3B0A20204173796E634D717474436C69656E74496E7465726E616C733A3A5061636B65742A205F63757272656E745061727365645061636B65743B0A202075696E74385F74205F72656D61696E696E674C656E677468427566666572506F736974696F6E3B0A202063686172205F72656D61696E696E674C656E6774684275666665725B345D3B0A0A202075696E7431365F74205F6E6578745061636B657449643B0A0A20207374643A3A766563746F723C4173796E634D717474436C69656E74496E7465726E616C733A3A50656E64696E6750756252656C3E205F70656E64696E6750756252656C733B0A0A20207374643A3A766563746F723C4173796E634D717474436C69656E74496E7465726E616C733A3A50656E64696E6741636B3E205F746F53656E6441636B733B0A0A2020766F6964205F636C65617228293B0A2020766F6964205F6672656543757272656E745061727365645061636B657428293B0A0A20202F2F205443500A2020766F6964205F6F6E436F6E6E656374284173796E63436C69656E742A20636C69656E74293B0A2020766F6964205F6F6E446973636F6E6E656374284173796E63436C69656E742A20636C69656E74293B0A202073746174696320766F6964205F6F6E4572726F72284173796E63436C69656E742A20636C69656E742C20696E74385F74206572726F72293B0A2020766F6964205F6F6E54696D656F7574284173796E63436C69656E742A20636C69656E742C2075696E7433325F742074696D65293B0A202073746174696320766F6964205F6F6E41636B284173796E63436C69656E742A20636C69656E742C2073697A655F74206C656E2C2075696E7433325F742074696D65293B0A2020766F6964205F6F6E44617461284173796E63436C69656E742A20636C69656E742C20636861722A20646174612C2073697A655F74206C656E293B0A2020766F6964205F6F6E506F6C6C284173796E63436C69656E742A20636C69656E74293B0A0A20202F2F204D5154540A2020766F6964205F6F6E50696E675265737028293B0A2020766F6964205F6F6E436F6E6E41636B28626F6F6C2073657373696F6E50726573656E742C2075696E74385F7420636F6E6E65637452657475726E436F6465293B0A2020766F6964205F6F6E53756241636B2875696E7431365F74207061636B657449642C206368617220737461747573293B0A2020766F6964205F6F6E556E73756241636B2875696E7431365F74207061636B65744964293B0A2020766F6964205F6F6E4D65737361676528636861722A20746F7069632C20636861722A207061796C6F61642C2075696E74385F7420716F732C20626F6F6C206475702C20626F6F6C2072657461696E2C2073697A655F74206C656E2C2073697A655F7420696E6465782C2073697A655F7420746F74616C2C2075696E7431365F74207061636B65744964293B0A2020766F6964205F6F6E5075626C6973682875696E7431365F74207061636B657449642C2075696E74385F7420716F73293B0A2020766F6964205F6F6E50756252656C2875696E7431365F74207061636B65744964293B0A2020766F6964205F6F6E50756241636B2875696E7431365F74207061636B65744964293B0A2020766F6964205F6F6E5075625265632875696E7431365F74207061636B65744964293B0A2020766F6964205F6F6E507562436F6D702875696E7431365F74207061636B65744964293B0A0A2020626F6F6C205F73656E6450696E6728293B0A2020766F6964205F73656E6441636B7328293B0A2020626F6F6C205F73656E64446973636F6E6E65637428293B0A0A202075696E7431365F74205F6765744E6578745061636B6574496428293B0A7D3B0A .hpp 496.0d@20 corner: 516.0d@40 MQTT ESP Main v6.5 68757e4a-6523-4263-989e-bb393e34bc33 MQTT_ESP_Main_6_5 - Данный блок должен находиться выше остальных блоков. - На выходе mqttConnected будет единица, если esp подключена к брокеру. - LWT сообщение - сообщение, которое будет отправлено в указанный топик, после отключения клиента от брокера. Пример: мы указали в настройках: willMessageOnline: 1; willMessageOffline: 0; willTopic: client1/status; После старта esp и подключению к брокеру, в топик client1/status будет отправлено сообщение 1, а при отключении esp от брокера в топик client1/status будет отправлено сообщение 0. Тема на форуме: https://forum.flprog.ru/viewtopic.php?t=4276 583 mqttServer Домен или ip сервера 192.168.1.106 mqttPort Порт mqttUser Имя пользователя, можно использовать один логин и пароль на всех esp 1 mqttPassword Пароль 1 mqttClientId Уникальное название на английском, нужно для идентификации на брокере. Для всех esp должно быть разное IspTesti keepAlive 15 Через сколько секунд брокер разорвет соединение с esp, если esp станет недоступна 12db8ac8-c14f-4872-9820-b600fc727ad6 19b8e04c-3b65-4976-aa05-e396f0edc436 cleanSession b094b028-a5dc-44c0-bf4d-25d3a3db2909 135c0851-bc62-4e36-b95e-c6bcc91602c1 willTopic client1/status LWT топик a9c6647e-68a8-4c6b-86ab-2070c4037400 d7befd79-1503-46db-8e1c-2fd0afce63f0 willMessageOnline 1 LWT сообщение при подключении esp к брокеру e655ca2f-9aef-4c43-848e-a85165f1d7f3 35bf451e-9614-4ebc-bc5a-36b10070a85a willMessageOffline 0 LWT сообщение при отключении esp от брокера e12eaeeb-27f6-4858-8d8a-8c2e4e1be040 3774823c-d771-42c7-8bce-a563652c61f2 willRetain 0 LWT Retain c53a2d76-f94f-4b24-af6d-15a8df33f288 39ffd1f5-9825-467f-9323-59a7fe223cc5 willQos LWT QoS 5b6ad7f4-8b02-4914-a18b-e0c05346a9b4 bdd21db4-592c-4048-96cc-5fed6a2cb989 wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect); wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect); mqttClient.onMessage(messageReceived); mqttClient.onConnect(onMqttConnect); mqttClient.onDisconnect(onMqttDisconnect); mqttClient.onPublish(onMqttPublish); mqttClient.setWill(willTopic, willQos, willRetain, willMessageOffline); mqttClient.setKeepAlive(keepAlive); mqttClient.setClientId(mqttClientId); mqttClient.setServer(mqttServer, mqttPort); mqttClient.setCredentials(mqttUser, mqttPassword); mqttClient.setCleanSession(cleanSession); 575 #include <Ticker.h> #include <AsyncMqttClient.h> mqttInputTopic ; String mqttInputMessage ; String mqttClient ; AsyncMqttClient mqttReconnectTimer ; Ticker wifiConnectHandler ; WiFiEventHandler wifiDisconnectHandler ; WiFiEventHandler pubPacketId ; uint16_t mqttInputTopic = topic; mqttInputMessage = ""; for (size_t i=0;i<len;i++) { mqttInputMessage += payload[i]; } 109 void messageReceived char* topic char* payload AsyncMqttClientMessageProperties properties size_t len size_t index size_t total connectToMqtt(); 16 void onWifiConnect const WiFiEventStationModeGotIP& event mqttReconnectTimer.detach(); 28 void onWifiDisconnect const WiFiEventStationModeDisconnected& event mqttClient.connect(); 21 void connectToMqtt mqttConnected = false; if (WiFi.isConnected()) { mqttReconnectTimer.once(2, connectToMqtt); } 100 void onMqttDisconnect AsyncMqttClientDisconnectReason reason mqttClient.publish(willTopic, willQos, willRetain, willMessageOnline); mqttConnected = true; 92 void onMqttConnect bool sessionPresent pubPacketId = packetId; 23 void onMqttPublish uint16_t packetId 116.0d 340@100 360@100 corner: 474.0d@220 340@100 corner: 494.0d@220 366.5d@114.0d 3 120@100 140@100 corner: 200@140 120@100 corner: 220@140 156.0d@113.5d EN 120@130 140@130 100.0d@133.5d 120@120 corner: 140@140 200@120 corner: 220@140 120@130 220@130 simetricMulti 5000 Q 9.0d 200@130 220@130 corner: 220@130 Send 340@130 360@130 MQTT_ESP_Pub_2_1 En e6a2f06b-1edf-47ea-9c35-676c3e2915e7 00819f1c-cc4d-4dde-b87d-a0eb0c313cc4 msg bb5fa827-986b-4013-b0ec-73b9edf88ca5 c07c8f0d-ee73-432d-90eb-7b99b6ff6e8e outTopic 30ddac93-d8e7-4f7d-8409-4ead14e60f92 26ea233c-840c-41ae-90f3-03f014937e6b 8c590bc8-de58-414c-af1e-1b1b12a9e4ab MQTT_ESP_Pub_2_1 if (En == 1) { client.publish(outTopic, (char*) msg.c_str()); } 64 340@120 corner: 360@140 Topic TopikISP 340@150 360@150 296.0d@154.5d 340@140 corner: 360@160 Message 10 340@170 360@170 327.0d@173.5d 340@160 corner: 360@180 QoS 340@190 360@190 MQTT ESP Pub v4.0 MQTT_ESP_Pub_2_2 retain 3ea820f0-fd1a-4a73-8e03-2b7e56f5c181 be3db11c-0277-4e8c-ab61-4b68ef50376e f5726015-c59a-4020-a725-0167430a6314 MQTT_ESP_Pub_2_2 if (En == 1) { client.publish((char*) outTopic.c_str(), (char*) msg.c_str(), retain); } 88 Retain 53168118-8a86-4b25-836b-88aa5b8134a3 e4e0bb9b-c92e-406b-b32f-0d85b245e5f0 e466b9d9-46d1-46fb-8230-e957f0e8faa2 MQTT_ESP_Pub_4_0 Send - при поступлении на данный вход единицы, будет отправлено сообщение по переднему фронту. (будет отправлено один раз) Message - сообщение, которое будет отправлено на брокер. Topic - топик, куда будет отправлено сообщение. (Пример: topic1/message1) Retain - если true, последнее отправленное сообщение сохраняется на mqtt брокере. Это сообщение будет получать подписчик при подключении к брокеру. 401 if (Send && mqttConnected) { if (sendTrigTwo) { sendTrigOne = 0; } else { sendTrigOne = 1; sendTrigTwo = 1; } } else { sendTrigOne = 0; sendTrigTwo = 0; } if (sendTrigOne) { client.publish(MQTT::Publish(Topic, Messsage) .set_retain(Retain) .set_qos(QoS) ); } 310 sendTrigOne ; bool sendTrigTwo ; bool 340@180 corner: 360@200 340@210 360@210 340@200 corner: 360@220 qosDelivered 62.0d 474.0d@210 494.0d@210 MQTT ESP Pub v6.1 Delivered 62388cfa-5ab5-49c1-b207-b3455c39f5fd 22567c1b-3529-4bd6-a9c6-087e7eac7dc7 d15fd623-a6e6-45cc-9579-3b6ca552fe46 MQTT_ESP_Pub_6_1 - Send - при поступлении на данный вход единицы, будет отправлено сообщение один раз. Данный вход имеет встроенный Rtrig, не используйте внешний. - Topic - топик, куда будет отправлено сообщение. (Пример: topic1/message1) - Message - сообщение, которое будет отправлено на брокер. - QoS - можно указать 0, 1 или 2. Если не указывать ничего, то сообщение отправляется с QoS 0. Esp не сохраняет у себя неотправленные сообщения, вы должны сами проконтролировать, чтобы сообщение дошло до брокера с QoS 1 и 2. После чего брокер возьмет на себя ответственность по доставке сообщений с QoS 1 и 2. Подсказка: Используйте выход mqttConnected на блоке main, чтобы отправить сообщение только когда esp будет подключена к брокеру. Для более надежной проверки можно подписаться на топик в который вы отправляете данные, и если данные дошли, вы их увидите на выходе Message блока sub. QoS 0 - На этом уровне клиент один раз отправляет сообщение брокеру и не ждет подтверждения от него, то есть отправил и забыл. QoS 1 - Этот уровень гарантирует, что сообщение точно будет доставлено брокеру, но есть вероятность дублирования сообщений от клиента. После получения дубликата сообщения, брокер снова рассылает это сообщение подписчикам, а клиенту снова отправляет подтверждение о получении сообщения. QoS 2 - На этом уровне гарантируется доставка сообщений подписчику и исключается возможное дублирование отправленных сообщений. - Retain - если true, последнее отправленное сообщение сохраняется на mqtt брокере. Это сообщение будет получать подписчик при подключении к брокеру. Тема на форуме: https://forum.flprog.ru/viewtopic.php?t=4276 1625 if (Send) { if (sendTrigTwo) { sendTrigOne = 0; } else { sendTrigOne = 1; sendTrigTwo = 1; } } else { sendTrigOne = 0; sendTrigTwo = 0; } if (sendTrigOne) { pubPacketId = mqttClient.publish((char*) Topic.c_str(), QoS, Retain, (char*) Message.c_str()); } Delivered = 0; if (pubPacketId == packId) { Delivered = 1; } 341 sendTrigOne ; bool sendTrigTwo ; bool pubPacketId ; unsigned int 474.0d@200 corner: 494.0d@220 340@150 340@170 MQTT ESP Pub v6.5 f8840e16-f4fd-43d4-82ea-e346e3ad55e0 MQTT_ESP_Pub_6_5 - Send - при поступлении на данный вход единицы, будет отправлено сообщение один раз. Данный вход имеет встроенный Rtrig, не используйте внешний. - Topic - топик, куда будет отправлено сообщение. (Пример: topic1/message1) - Message - сообщение, которое будет отправлено на брокер. - QoS - можно указать 0, 1 или 2. Если не указывать ничего, то сообщение отправляется с QoS 0. Esp не сохраняет у себя неотправленные сообщения, вы должны сами проконтролировать, чтобы сообщение дошло до брокера с QoS 1 и 2. После чего брокер возьмет на себя ответственность по доставке сообщений с QoS 1 и 2. Подсказка: Используйте выход mqttConnected на блоке main, чтобы отправить сообщение только когда esp будет подключена к брокеру. Для более надежной проверки можно подписаться на топик в который вы отправляете данные, и если данные дошли, вы их увидите на выходе Message блока sub. QoS 0 - На этом уровне клиент один раз отправляет сообщение брокеру и не ждет подтверждения от него, то есть отправил и забыл. QoS 1 - Этот уровень гарантирует, что сообщение точно будет доставлено брокеру, но есть вероятность дублирования сообщений от клиента. После получения дубликата сообщения, брокер снова рассылает это сообщение подписчикам, а клиенту снова отправляет подтверждение о получении сообщения. QoS 2 - На этом уровне гарантируется доставка сообщений подписчику и исключается возможное дублирование отправленных сообщений. - Retain - если true, последнее отправленное сообщение сохраняется на mqtt брокере. Это сообщение будет получать подписчик при подключении к брокеру. - Выход qosDelivered - нужен для контроля доставки сообщений с QoS 1 и 2 до брокера. При подаче и удерживании единицы на входе Send, на выходе qosDelivered будет единица, если сообщение доставлено на брокер. Единица будет держаться на данном выходе пока на входе Send не пропадет единица. Тема на форуме: https://forum.flprog.ru/viewtopic.php?t=4276 1914 if (Send) { if (sendTrigTwo) { sendTrigOne = 0; } else { sendTrigOne = 1; sendTrigTwo = 1; } } else { sendTrigOne = 0; sendTrigTwo = 0; qosDelivered = 0; } if (sendTrigOne) { packetId = mqttClient.publish(Topic.c_str(), QoS, Retain, Message.c_str()); } if (packetId > 1 && packetId == pubPacketId) { qosDelivered = 1; packetId = 0; } 353 sendTrigOne ; bool sendTrigTwo ; bool packetId ; uint16_t 114.0d (0 to: 310) 9600 arduinoIDE 106 4096 145303580 sampl2007 HooliganS workStatus client mac 20 ssid password ip subnet gateway dns isDHCP connectStatus ESP8266 NodeMcu v3 202922315