remote _ui100159003 f41f824a-33e9-49c6-a81e-ab9eb64812f9 54a5a48c-6775-4a26-9dc9-38446ebbd8f2 22190055-ab49-4771-867e-f86370688f10 remote switch Приемник подключен пин 2 24 if (mySwitch.available()) { output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol()); mySwitch.resetAvailable(); } 231 Serial.begin(9600); mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2 93 #include <RCSwitch.h> mySwitch = RCSwitch(); RCSwitch rc_switch .gitignore 23204D61632073747566660A2E44535F53746F72650A0A2320436F6D70696C6564204F626A6563742066696C65730A2A2E736C6F0A2A2E6C6F0A2A2E6F0A0A2320436F6D70696C65642044796E616D6963206C69627261726965730A2A2E736F0A2A2E64796C69620A0A2320436F6D70696C656420537461746963206C69627261726965730A2A2E6C61690A2A2E6C610A2A2E610A0A .travis 6C616E67756167653A20707974686F6E0A707974686F6E3A0A20202D2022322E37220A0A2320436163686520506C6174666F726D494F207061636B61676573207573696E672054726176697320434920636F6E7461696E65722D626173656420696E6672617374727563747572650A7375646F3A2066616C73650A63616368653A0A20206469726563746F726965733A0A2020202020202D20227E2F2E706C6174666F726D696F220A0A656E763A0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F5765627365727665722F0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F5265636569766544656D6F5F53696D706C652F0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F54797065435F496E746572746563686E6F2F0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F54797065445F5245562F0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F54797065415F5769746844495053776974636865732F0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F54797065415F5769746844495053776974636865735F4C696768747765696768742F0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F54797065425F57697468526F746172794F72536C6964696E6753776974636865732F0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F53656E6444656D6F2F0A20202D20504C4154464F524D494F5F43495F5352433D6578616D706C65732F5265636569766544656D6F5F416476616E6365642F0A0A696E7374616C6C3A0A20202D2070697020696E7374616C6C202D5520706C6174666F726D696F0A0A7363726970743A0A20202D20706C6174666F726D696F206369202D2D6C69623D222E22202D2D626F6172643D64696563696D696C6161746D6567613332380A .yml examples ReceiveDemo_Advanced helperfunctions 7374617469632063686172202A206465633262696E577A65726F66696C6C28756E7369676E6564206C6F6E67204465632C20756E7369676E656420696E74206269744C656E677468297B0A202073746174696320636861722062696E5B36345D3B200A2020756E7369676E656420696E7420693D303B0A0A20207768696C652028446563203E203029207B0A2020202062696E5B33322B692B2B5D203D202844656320262031203E203029203F20273127203A202730273B0A20202020446563203D20446563203E3E20313B0A20207D0A0A2020666F722028756E7369676E656420696E74206A203D20303B206A3C206269744C656E6774683B206A2B2B29207B0A20202020696620286A203E3D206269744C656E677468202D206929207B0A20202020202062696E5B6A5D203D2062696E5B203331202B2069202D20286A202D20286269744C656E677468202D20692929205D3B0A202020207D656C7365207B0A20202020202062696E5B6A5D203D202730273B0A202020207D0A20207D0A202062696E5B6269744C656E6774685D203D20275C30273B0A20200A202072657475726E2062696E3B0A7D0A .ino output 766F6964206F757470757428756E7369676E6564206C6F6E6720646563696D616C2C20756E7369676E656420696E74206C656E6774682C20756E7369676E656420696E742064656C61792C20756E7369676E656420696E742A207261772C20756E7369676E656420696E742070726F746F636F6C29207B0A0A202069662028646563696D616C203D3D203029207B0A2020202053657269616C2E7072696E742822556E6B6E6F776E20656E636F64696E672E22293B0A20207D20656C7365207B0A20202020636861722A2062203D206465633262696E577A65726F66696C6C28646563696D616C2C206C656E677468293B0A2020202053657269616C2E7072696E742822446563696D616C3A2022293B0A2020202053657269616C2E7072696E7428646563696D616C293B0A2020202053657269616C2E7072696E742822202822293B0A2020202053657269616C2E7072696E7428206C656E67746820293B0A2020202053657269616C2E7072696E742822426974292042696E6172793A2022293B0A2020202053657269616C2E7072696E7428206220293B0A2020202053657269616C2E7072696E742822205472692D53746174653A2022293B0A2020202053657269616C2E7072696E74282062696E3274726973746174652820622920293B0A2020202053657269616C2E7072696E7428222050756C73654C656E6774683A2022293B0A2020202053657269616C2E7072696E742864656C6179293B0A2020202053657269616C2E7072696E742822206D6963726F7365636F6E647322293B0A2020202053657269616C2E7072696E7428222050726F746F636F6C3A2022293B0A2020202053657269616C2E7072696E746C6E2870726F746F636F6C293B0A20207D0A20200A202053657269616C2E7072696E74282252617720646174613A2022293B0A2020666F722028696E7420693D303B20693C3D206C656E6774682A323B20692B2B29207B0A2020202053657269616C2E7072696E74287261775B695D293B0A2020202053657269616C2E7072696E7428222C22293B0A20207D0A202053657269616C2E7072696E746C6E28293B0A202053657269616C2E7072696E746C6E28293B0A7D0A0A0A73746174696320636861722A2062696E32747269737461746528636861722A2062696E29207B0A2020636861722072657475726E56616C75655B35305D3B0A2020696E7420706F73203D20303B0A2020696E7420706F7332203D20303B0A20207768696C65202862696E5B706F735D213D275C30272026262062696E5B706F732B315D213D275C302729207B0A202020206966202862696E5B706F735D3D3D2730272026262062696E5B706F732B315D3D3D27302729207B0A20202020202072657475726E56616C75655B706F73325D203D202730273B0A202020207D20656C7365206966202862696E5B706F735D3D3D2731272026262062696E5B706F732B315D3D3D27312729207B0A20202020202072657475726E56616C75655B706F73325D203D202731273B0A202020207D20656C7365206966202862696E5B706F735D3D3D2730272026262062696E5B706F732B315D3D3D27312729207B0A20202020202072657475726E56616C75655B706F73325D203D202746273B0A202020207D20656C7365207B0A20202020202072657475726E20226E6F74206170706C696361626C65223B0A202020207D0A20202020706F73203D20706F732B323B0A20202020706F73322B2B3B0A20207D0A202072657475726E56616C75655B706F73325D203D20275C30273B0A202072657475726E2072657475726E56616C75653B0A7D0A0A .ino ReceiveDemo_Advanced 2F2A0A20204578616D706C6520666F7220726563656976696E670A20200A202068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A20200A2020496620796F752077616E7420746F2076697375616C697A6520612074656C656772616D20636F70792074686520726177206461746120616E64200A2020706173746520697420696E746F20687474703A2F2F746573742E7375692E6C692F6F737A692F0A2A2F0A0A23696E636C756465203C52435377697463682E683E0A0A5243537769746368206D79537769746368203D20524353776974636828293B0A0A766F69642073657475702829207B0A202053657269616C2E626567696E2839363030293B0A20206D795377697463682E656E61626C65526563656976652830293B20202F2F205265636569766572206F6E20696E746572727570742030203D3E20746861742069732070696E2023320A7D0A0A766F6964206C6F6F702829207B0A2020696620286D795377697463682E617661696C61626C65282929207B0A202020206F7574707574286D795377697463682E676574526563656976656456616C756528292C206D795377697463682E67657452656365697665644269746C656E67746828292C206D795377697463682E676574526563656976656444656C617928292C206D795377697463682E67657452656365697665645261776461746128292C6D795377697463682E676574526563656976656450726F746F636F6C2829293B0A202020206D795377697463682E7265736574417661696C61626C6528293B0A20207D0A7D0A .pde ReceiveDemo_Simple ReceiveDemo_Simple 2F2A0A202053696D706C65206578616D706C6520666F7220726563656976696E670A20200A202068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A2A2F0A0A23696E636C756465203C52435377697463682E683E0A0A5243537769746368206D79537769746368203D20524353776974636828293B0A0A766F69642073657475702829207B0A202053657269616C2E626567696E2839363030293B0A20206D795377697463682E656E61626C65526563656976652830293B20202F2F205265636569766572206F6E20696E746572727570742030203D3E20746861742069732070696E2023320A7D0A0A766F6964206C6F6F702829207B0A2020696620286D795377697463682E617661696C61626C65282929207B0A202020200A20202020696E742076616C7565203D206D795377697463682E676574526563656976656456616C756528293B0A202020200A202020206966202876616C7565203D3D203029207B0A20202020202053657269616C2E7072696E742822556E6B6E6F776E20656E636F64696E6722293B0A202020207D20656C7365207B0A20202020202053657269616C2E7072696E74282252656365697665642022293B0A20202020202053657269616C2E7072696E7428206D795377697463682E676574526563656976656456616C7565282920293B0A20202020202053657269616C2E7072696E742822202F2022293B0A20202020202053657269616C2E7072696E7428206D795377697463682E67657452656365697665644269746C656E677468282920293B0A20202020202053657269616C2E7072696E7428226269742022293B0A20202020202053657269616C2E7072696E74282250726F746F636F6C3A2022293B0A20202020202053657269616C2E7072696E746C6E28206D795377697463682E676574526563656976656450726F746F636F6C282920293B0A202020207D0A0A202020206D795377697463682E7265736574417661696C61626C6528293B0A20207D0A7D0A .pde SendDemo SendDemo 2F2A0A20204578616D706C6520666F7220646966666572656E742073656E64696E67206D6574686F64730A20200A202068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A20200A2A2F0A0A23696E636C756465203C52435377697463682E683E0A0A5243537769746368206D79537769746368203D20524353776974636828293B0A0A766F69642073657475702829207B0A0A202053657269616C2E626567696E2839363030293B0A20200A20202F2F205472616E736D697474657220697320636F6E6E656374656420746F2041726475696E6F2050696E2023313020200A20206D795377697463682E656E61626C655472616E736D6974283130293B0A0A20202F2F204F7074696F6E616C207365742070756C7365206C656E6774682E0A20202F2F206D795377697463682E73657450756C73654C656E67746828333230293B0A20200A20202F2F204F7074696F6E616C207365742070726F746F636F6C202864656661756C7420697320312C2077696C6C20776F726B20666F72206D6F7374206F75746C657473290A20202F2F206D795377697463682E73657450726F746F636F6C2832293B0A20200A20202F2F204F7074696F6E616C20736574206E756D626572206F66207472616E736D697373696F6E2072657065746974696F6E732E0A20202F2F206D795377697463682E7365745265706561745472616E736D6974283135293B0A20200A7D0A0A766F6964206C6F6F702829207B0A0A20202F2A20536565204578616D706C653A2054797065415F576974684449505377697463686573202A2F0A20206D795377697463682E7377697463684F6E28223131313131222C2022303030313022293B0A202064656C61792831303030293B0A20206D795377697463682E7377697463684F6E28223131313131222C2022303030313022293B0A202064656C61792831303030293B0A0A20202F2A2053616D65207377697463682061732061626F76652C20627574207573696E6720646563696D616C20636F6465202A2F0A20206D795377697463682E73656E6428353339332C203234293B0A202064656C61792831303030293B20200A20206D795377697463682E73656E6428353339362C203234293B0A202064656C61792831303030293B20200A0A20202F2A2053616D65207377697463682061732061626F76652C20627574207573696E672062696E61727920636F6465202A2F0A20206D795377697463682E73656E64282230303030303030303030303130313031303030313030303122293B0A202064656C61792831303030293B20200A20206D795377697463682E73656E64282230303030303030303030303130313031303030313031303022293B0A202064656C61792831303030293B0A0A20202F2A2053616D65207377697463682061732061626F76652C20627574207472692D737461746520636F6465202A2F200A20206D795377697463682E73656E645472695374617465282230303030304646463046304622293B0A202064656C61792831303030293B20200A20206D795377697463682E73656E645472695374617465282230303030304646463046463022293B0A202064656C61792831303030293B0A0A202064656C6179283230303030293B0A7D0A .pde TypeA_WithDIPSwitches TypeA_WithDIPSwitches 2F2A0A20204578616D706C6520666F72206F75746C6574732077686963682061726520636F6E666967757265642077697468206120313020706F6C6520444950207377697463682E0A20200A202068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A2A2F0A0A23696E636C756465203C52435377697463682E683E0A0A5243537769746368206D79537769746368203D20524353776974636828293B0A0A766F69642073657475702829207B0A0A20202F2F205472616E736D697474657220697320636F6E6E656374656420746F2041726475696E6F2050696E2023313020200A20206D795377697463682E656E61626C655472616E736D6974283130293B0A0A20202F2F204F7074696F6E616C207365742070756C7365206C656E6774682E0A20202F2F206D795377697463682E73657450756C73654C656E67746828333230293B0A20200A7D0A0A766F6964206C6F6F702829207B0A0A20202F2F20537769746368206F6E3A0A20202F2F2054686520666972737420706172616D6574657220726570726573656E7473207468652073657474696E67206F66207468652066697273742035204449502073776974636865732E200A20202F2F20496E2074686973206578616D706C652069742773204F4E2D4F4E2D4F46462D4F46462D4F4E2E0A20202F2F200A20202F2F20546865207365636F6E6420706172616D6574657220726570726573656E7473207468652073657474696E67206F6620746865206C6173742035204449502073776974636865732E200A20202F2F20496E2074686973206578616D706C6520746865206C61737420352044495020737769746368657320617265204F46462D4F4E2D4F46462D4F4E2D4F46462E20200A20206D795377697463682E7377697463684F6E28223131303031222C2022303130313022293B0A0A20202F2F20576169742061207365636F6E640A202064656C61792831303030293B0A20200A20202F2F20537769746368206F66660A20206D795377697463682E7377697463684F666628223131303031222C2022303130313022293B0A20200A20202F2F205761697420616E6F74686572207365636F6E640A202064656C61792831303030293B0A20200A7D0A .pde TypeA_WithDIPSwitches_Lightweight TypeA_WithDIPSwitches_Lightweight 2F2A0A2020546869732069732061206D696E696D616C20736B6574636820776974686F7574207573696E6720746865206C69627261727920617420616C6C20627574206F6E6C7920776F726B7320666F720A202074686520313020706F6C65206469702073776974636820736F636B6574732E2049742073617665732061206C6F74206F66206D656D6F727920616E642074687573206D69676874206265200A2020766572792075736566756C20746F20757365207769746820415454696E7973203A290A20200A202068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A2A2F0A0A696E742052434C70696E203D20373B0A0A766F69642073657475702829207B0A2020202070696E4D6F64652852434C70696E2C204F5554505554293B0A7D0A0A766F6964206C6F6F702829207B0A2020202052434C737769746368283062303130303031303030303031293B20202F2F204449507320616E20537465636B646F73653A203031303030313030303020416E3A30310A2020202064656C61792832303030293B0A0A2020202052434C737769746368283062303130303031303030303130293B20202F2F204449507320616E20537465636B646F73653A2030313030303130303030204175733A31300A2020202064656C61792832303030293B202020200A7D0A0A766F69642052434C7377697463682875696E7431365F7420636F646529207B0A20202020666F722028696E74206E5265706561743D303B206E5265706561743C363B206E5265706561742B2B29207B0A2020202020202020666F722028696E7420693D343B20693C31363B20692B2B29207B0A20202020202020202020202052434C7472616E736D697428312C33293B0A202020202020202020202020696620282828636F6465203C3C2028692D3429292026203230343829203E203029207B0A2020202020202020202020202020202052434C7472616E736D697428312C33293B0A2020202020202020202020207D20656C7365207B0A2020202020202020202020202020202052434C7472616E736D697428332C31293B0A2020202020202020202020207D0A20202020202020207D0A202020202020202052434C7472616E736D697428312C3331293B202020200A202020207D0A7D0A0A766F69642052434C7472616E736D697428696E74206E4869676850756C7365732C20696E74206E4C6F7750756C73657329207B0A202020206469676974616C57726974652852434C70696E2C2048494748293B0A2020202064656C61794D6963726F7365636F6E64732820333530202A206E4869676850756C736573293B0A202020206469676974616C57726974652852434C70696E2C204C4F57293B0A2020202064656C61794D6963726F7365636F6E64732820333530202A206E4C6F7750756C736573293B0A7D0A0A .ino TypeB_WithRotaryOrSlidingSwitches TypeB_WithRotaryOrSlidingSwitches 2F2A0A20204578616D706C6520666F72206F75746C6574732077686963682061726520636F6E6669677572656420776974682074776F20726F746172792F736C6964696E672073776974636865732E0A20200A202068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A2A2F0A0A23696E636C756465203C52435377697463682E683E0A0A5243537769746368206D79537769746368203D20524353776974636828293B0A0A766F69642073657475702829207B0A0A20202F2F205472616E736D697474657220697320636F6E6E656374656420746F2041726475696E6F2050696E2023313020200A20206D795377697463682E656E61626C655472616E736D6974283130293B0A20200A20202F2F204F7074696F6E616C207365742070756C7365206C656E6774682E0A20202F2F206D795377697463682E73657450756C73654C656E67746828333230293B0A20200A7D0A0A766F6964206C6F6F702829207B0A0A20202F2F20537769746368206F6E3A0A20202F2F2054686520666972737420706172616D6574657220726570726573656E7473207468652073657474696E67206F662074686520666972737420726F74617279207377697463682E200A20202F2F20496E2074686973206578616D706C65206974277320737769746368656420746F20223122206F7220224122206F72202249222E200A20202F2F200A20202F2F20546865207365636F6E6420706172616D6574657220726570726573656E7473207468652073657474696E67206F6620746865207365636F6E6420726F74617279207377697463682E200A20202F2F20496E2074686973206578616D706C65206974277320737769746368656420746F20223422206F7220224422206F7220224956222E200A20206D795377697463682E7377697463684F6E28312C2034293B0A0A20202F2F20576169742061207365636F6E640A202064656C61792831303030293B0A20200A20202F2F20537769746368206F66660A20206D795377697463682E7377697463684F666628312C2034293B0A20200A20202F2F205761697420616E6F74686572207365636F6E640A202064656C61792831303030293B0A20200A7D0A .pde TypeC_Intertechno TypeC_Intertechno 2F2A0A20204578616D706C6520666F7220496E746572746563686E6F206F75746C6574730A20200A202068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A2A2F0A0A23696E636C756465203C52435377697463682E683E0A0A5243537769746368206D79537769746368203D20524353776974636828293B0A0A766F69642073657475702829207B0A0A20202F2F205472616E736D697474657220697320636F6E6E656374656420746F2041726475696E6F2050696E2023313020200A20206D795377697463682E656E61626C655472616E736D6974283130293B0A20200A20202F2F204F7074696F6E616C207365742070756C7365206C656E6774682E0A20202F2F206D795377697463682E73657450756C73654C656E67746828333230293B0A20200A7D0A0A766F6964206C6F6F702829207B0A0A20202F2F20537769746368206F6E3A0A20202F2F2054686520666972737420706172616D6574657220726570726573656E7473207468652066616D696C79636F64652028612C20622C20632C202E2E2E2066290A20202F2F20546865207365636F6E6420706172616D6574657220726570726573656E7473207468652067726F7570206E756D6265720A20202F2F2054686520746869726420706172616D6574657220726570726573656E74732074686520646576696365206E756D6265720A20202F2F200A20202F2F20496E2074686973206578616D706C6520697427732066616D696C79202762272C2067726F75702023332C20646576696365202332200A20206D795377697463682E7377697463684F6E282762272C20332C2032293B0A0A20202F2F20576169742061207365636F6E640A202064656C61792831303030293B0A20200A20202F2F20537769746368206F66660A20206D795377697463682E7377697463684F6666282762272C20332C2032293B0A20200A20202F2F205761697420616E6F74686572207365636F6E640A202064656C61792831303030293B0A20200A7D .pde TypeD_REV TypeD_REV 2F2A0A20204578616D706C6520666F7220524556206F75746C6574732028652E672E20383334324C290A20200A202068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A20200A20204E6565642068656C703F20687474703A2F2F666F72756D2E617264756D6F74652E636F6D0A2A2F0A0A23696E636C756465203C52435377697463682E683E0A0A5243537769746368206D79537769746368203D20524353776974636828293B0A0A766F69642073657475702829207B0A0A20202F2F205472616E736D697474657220697320636F6E6E656374656420746F2041726475696E6F2050696E2023313020200A20206D795377697463682E656E61626C655472616E736D6974283130293B0A20200A20202F2F207365742070756C7365206C656E6774682E0A20206D795377697463682E73657450756C73654C656E67746828333630293B0A20200A7D0A0A766F6964206C6F6F702829207B0A0A20202F2F20537769746368206F6E3A0A20202F2F2054686520666972737420706172616D6574657220726570726573656E747320746865206368616E6E656C2028612C20622C20632C2064290A20202F2F20546865207365636F6E6420706172616D6574657220726570726573656E74732074686520646576696365206E756D6265720A20202F2F200A20202F2F20496E2074686973206578616D706C6520697427732066616D696C79202764272C20646576696365202332200A20206D795377697463682E7377697463684F6E282764272C2032293B0A0A20202F2F20576169742061207365636F6E640A202064656C61792831303030293B0A20200A20202F2F20537769746368206F66660A20206D795377697463682E7377697463684F6666282764272C2032293B0A20200A20202F2F205761697420616E6F74686572207365636F6E640A202064656C61792831303030293B0A20200A7D0A .ino Webserver Webserver 2F2A0A2020412073696D706C652052435377697463682F45746865726E65742F5765627365727665722064656D6F0A20200A202068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A2A2F0A0A23696E636C756465203C5350492E683E0A23696E636C756465203C45746865726E65742E683E0A23696E636C756465203C52435377697463682E683E0A0A2F2F2045746865726E657420636F6E66696775726174696F6E0A62797465206D61635B5D203D207B20307844452C20307841442C20307842452C20307845462C20307846452C2030784544207D3B202F2F204D414320416464726573730A627974652069705B5D203D207B203139322C3136382C302C2032207D3B2020202020202020202020202020202020202020202020202F2F20495020416464726573730A45746865726E657453657276657220736572766572283830293B2020202020202020202020202020202020202020202020202020202F2F2053657276657220506F72742038300A0A2F2F20524353776974636820636F6E66696775726174696F6E0A5243537769746368206D79537769746368203D20524353776974636828293B0A696E742052435472616E736D697373696F6E50696E203D20373B0A0A2F2F204D6F726520746F20646F2E2E2E0A2F2F20596F752073686F756C6420616C736F206D6F64696679207468652070726F63657373436F6D6D616E64282920616E64200A2F2F2068747470526573706F6E7365486F6D6528292066756E6374696F6E7320746F2066697420796F7572206E656564732E0A0A0A0A2F2A2A0A202A2053657475700A202A2F0A766F69642073657475702829207B0A202045746865726E65742E626567696E286D61632C206970293B0A20207365727665722E626567696E28293B0A20206D795377697463682E656E61626C655472616E736D6974282052435472616E736D697373696F6E50696E20293B0A7D0A0A2F2A2A0A202A204C6F6F700A202A2F0A766F6964206C6F6F702829207B0A2020636861722A20636F6D6D616E64203D206874747053657276657228293B0A7D0A0A2F2A2A0A202A20436F6D6D616E6420646973706174636865720A202A2F0A766F69642070726F63657373436F6D6D616E6428636861722A20636F6D6D616E6429207B0A20206966202020202020202028737472636D7028636F6D6D616E642C2022312D6F6E2229203D3D203029207B0A202020206D795377697463682E7377697463684F6E28312C31293B0A20207D20656C73652069662028737472636D7028636F6D6D616E642C2022312D6F66662229203D3D203029207B0A202020206D795377697463682E7377697463684F666628312C31293B0A20207D20656C73652069662028737472636D7028636F6D6D616E642C2022322D6F6E2229203D3D203029207B0A202020206D795377697463682E7377697463684F6E28312C32293B0A20207D20656C73652069662028737472636D7028636F6D6D616E642C2022322D6F66662229203D3D203029207B0A202020206D795377697463682E7377697463684F666628312C32293B0A20207D0A7D0A0A2F2A2A0A202A204854545020526573706F6E7365207769746820686F6D65706167650A202A2F0A766F69642068747470526573706F6E7365486F6D652845746865726E6574436C69656E74206329207B0A2020632E7072696E746C6E2822485454502F312E3120323030204F4B22293B0A2020632E7072696E746C6E2822436F6E74656E742D547970653A20746578742F68746D6C22293B0A2020632E7072696E746C6E28293B0A2020632E7072696E746C6E28223C68746D6C3E22293B0A2020632E7072696E746C6E28223C686561643E22293B0A2020632E7072696E746C6E2820202020223C7469746C653E5243537769746368205765627365727665722044656D6F3C2F7469746C653E22293B0A2020632E7072696E746C6E2820202020223C7374796C653E22293B0A2020632E7072696E746C6E28202020202020202022626F6479207B20666F6E742D66616D696C793A20417269616C2C2073616E732D73657269663B20666F6E742D73697A653A313270783B207D22293B0A2020632E7072696E746C6E2820202020223C2F7374796C653E22293B0A2020632E7072696E746C6E28223C2F686561643E22293B0A2020632E7072696E746C6E28223C626F64793E22293B0A2020632E7072696E746C6E2820202020223C68313E5243537769746368205765627365727665722044656D6F3C2F68313E22293B0A2020632E7072696E746C6E2820202020223C756C3E22293B0A2020632E7072696E746C6E282020202020202020223C6C693E3C6120687265663D5C222E2F3F312D6F6E5C223E537769746368202331206F6E3C2F613E3C2F6C693E22293B0A2020632E7072696E746C6E282020202020202020223C6C693E3C6120687265663D5C222E2F3F312D6F66665C223E537769746368202331206F66663C2F613E3C2F6C693E22293B0A2020632E7072696E746C6E2820202020223C2F756C3E22293B0A2020632E7072696E746C6E2820202020223C756C3E22293B0A2020632E7072696E746C6E282020202020202020223C6C693E3C6120687265663D5C222E2F3F322D6F6E5C223E537769746368202332206F6E3C2F613E3C2F6C693E22293B0A2020632E7072696E746C6E282020202020202020223C6C693E3C6120687265663D5C222E2F3F322D6F66665C223E537769746368202332206F66663C2F613E3C2F6C693E22293B0A2020632E7072696E746C6E2820202020223C2F756C3E22293B0A2020632E7072696E746C6E2820202020223C68723E22293B0A2020632E7072696E746C6E2820202020223C6120687265663D5C2268747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F5C223E68747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F3C2F613E22293B0A2020632E7072696E746C6E28223C2F626F64793E22293B0A2020632E7072696E746C6E28223C2F68746D6C3E22293B0A7D0A0A2F2A2A0A202A204854545020526564697265637420746F20686F6D65706167650A202A2F0A766F69642068747470526573706F6E736552656469726563742845746865726E6574436C69656E74206329207B0A2020632E7072696E746C6E2822485454502F312E312033303120466F756E6422293B0A2020632E7072696E746C6E28224C6F636174696F6E3A202F22293B0A2020632E7072696E746C6E28293B0A7D0A0A2F2A2A0A202A204854545020526573706F6E736520343134206572726F720A202A20436F6D6D616E64206D757374206E6F74206265206C6F6E676572207468616E20333020636861726163746572730A202A2A2F0A766F69642068747470526573706F6E73653431342845746865726E6574436C69656E74206329207B0A2020632E7072696E746C6E2822485454502F312E312034313420526571756573742055524920746F6F206C6F6E6722293B0A2020632E7072696E746C6E2822436F6E74656E742D547970653A20746578742F706C61696E22293B0A2020632E7072696E746C6E28293B0A2020632E7072696E746C6E282234313420526571756573742055524920746F6F206C6F6E6722293B0A7D0A0A2F2A2A0A202A2050726F6365737320485454502072657175657374732C207061727365206669727374207265717565737420686561646572206C696E6520616E64200A202A2063616C6C2070726F63657373436F6D6D616E6420776974682047455420717565727920737472696E67202865766572797468696E672061667465720A202A20746865203F207175657374696F6E206D61726B20696E207468652055524C292E0A202A2F0A636861722A2020687474705365727665722829207B0A202045746865726E6574436C69656E7420636C69656E74203D207365727665722E617661696C61626C6528293B0A202069662028636C69656E7429207B0A2020202063686172207352657475726E436F6D6D616E645B33325D3B0A20202020696E74206E436F6D6D616E64506F733D2D313B0A202020207352657475726E436F6D6D616E645B305D203D20275C30273B0A202020207768696C652028636C69656E742E636F6E6E6563746564282929207B0A20202020202069662028636C69656E742E617661696C61626C65282929207B0A2020202020202020636861722063203D20636C69656E742E7265616428293B0A2020202020202020696620282863203D3D20275C6E2729207C7C202863203D3D20272027202626206E436F6D6D616E64506F733E2D312929207B0A202020202020202020207352657475726E436F6D6D616E645B6E436F6D6D616E64506F735D203D20275C30273B0A2020202020202020202069662028737472636D70287352657475726E436F6D6D616E642C20225C302229203D3D203029207B0A20202020202020202020202068747470526573706F6E7365486F6D6528636C69656E74293B0A202020202020202020207D20656C7365207B0A20202020202020202020202070726F63657373436F6D6D616E64287352657475726E436F6D6D616E64293B0A20202020202020202020202068747470526573706F6E7365526564697265637428636C69656E74293B0A202020202020202020207D0A20202020202020202020627265616B3B0A20202020202020207D0A2020202020202020696620286E436F6D6D616E64506F733E2D3129207B0A202020202020202020207352657475726E436F6D6D616E645B6E436F6D6D616E64506F732B2B5D203D20633B0A20202020202020207D0A20202020202020206966202863203D3D20273F27202626206E436F6D6D616E64506F73203D3D202D3129207B0A202020202020202020206E436F6D6D616E64506F73203D20303B0A20202020202020207D0A2020202020207D0A202020202020696620286E436F6D6D616E64506F73203E20333029207B0A202020202020202068747470526573706F6E736534313428636C69656E74293B0A20202020202020207352657475726E436F6D6D616E645B305D203D20275C30273B0A2020202020202020627265616B3B0A2020202020207D0A202020207D0A20202020696620286E436F6D6D616E64506F73213D2D3129207B0A2020202020207352657475726E436F6D6D616E645B6E436F6D6D616E64506F735D203D20275C30273B0A202020207D0A202020202F2F206769766520746865207765622062726F777365722074696D6520746F20726563656976652074686520646174610A2020202064656C61792831293B0A20202020636C69656E742E73746F7028293B0A202020200A2020202072657475726E207352657475726E436F6D6D616E643B0A20207D0A202072657475726E20275C30273B0A7D .pde keywords 2323232323232323232323232323232323232323232323232323232323232323232323232323230A232053796E74617820436F6C6F72696E67204D617020466F722052435377697463680A2323232323232323232323232323232323232323232323232323232323232323232323232323230A0A2323232323232323232323232323232323232323232323232323232323232323232323232323230A232044617461747970657320284B4559574F524431290A2323232323232323232323232323232323232323232323232323232323232323232323232323230A0A5243537769746368094B4559574F5244310A0A2323232323232323232323232323232323232323232323232323232323232323232323232323230A23204D6574686F647320616E642046756E6374696F6E7320284B4559574F524432290A2323232323232323232323232323232323232323232323232323232323232323232323232323230A0A232323232323232323230A2353454E445320426567696E0A232323232323232323230A7377697463684F6E09094B4559574F5244320A7377697463684F666609094B4559574F5244320A73656E64547269537461746509094B4559574F5244320A73656E640909094B4559574F5244320A232323232323232323230A2353454E445320456E640A232323232323232323230A0A232323232323232323230A235245434549564520426567696E0A232323232323232323230A656E61626C655265636569766509094B4559574F5244320A64697361626C655265636569766509094B4559574F5244320A617661696C61626C6509094B4559574F524432090A7265736574417661696C61626C6509094B4559574F5244320A73657452656365697665546F6C6572616E6365094B4559574F5244320A676574526563656976656456616C7565094B4559574F5244320A67657452656365697665644269746C656E677468094B4559574F5244320A676574526563656976656444656C6179094B4559574F5244320A676574526563656976656450726F746F636F6C094B4559574F5244320A676574526563656976656452617764617461094B4559574F5244320A232323232323232323230A235245434549564520456E640A232323232323232323230A0A232323232323232323230A234F544845525320426567696E0A232323232323232323230A656E61626C655472616E736D697409094B4559574F5244320A64697361626C655472616E736D697409094B4559574F5244320A73657450756C73654C656E67746809094B4559574F5244320A73657450726F746F636F6C09094B4559574F5244320A7365745265706561745472616E736D6974094B4559574F5244320A232323232323232323230A234F544845525320456E640A232323232323232323230A0A2323232323232323232323232323232323232323232323232323232323232323232323232323230A2320436F6E7374616E747320284C49544552414C31290A2323232323232323232323232323232323232323232323232323232323232323232323232323230A .txt RCSwitch 2F2A0A20205243537769746368202D2041726475696E6F206C696261727920666F722072656D6F746520636F6E74726F6C206F75746C65742073776974636865730A2020436F70797269676874202863292032303131205375617420C3967A67C3BC722E2020416C6C2072696768742072657365727665642E0A20200A2020436F6E7472696275746F72733A0A20202D20416E647265204B6F65686C6572202F20696E666F28617429746F6D6174652D6F6E6C696E6528646F742964650A20202D20476F726465657620416E6472657920566C6164696D69726F76696368202F20676F7264656576286174296F70656E7079726F28646F7429636F6D0A20202D20536B696E656666656374202F20687474703A2F2F666F72756D2E617264756D6F74652E636F6D2F76696577746F7069632E7068703F663D3226743D34360A20202D20446F6D696E696B2046697363686572202F20646F6D5F666973636865722861742977656228646F742964650A20202D204672616E6B204F6C746D616E6E73202F203C6669727374206E616D653E2E3C6C617374206E616D653E28617429676D61696C28646F7429636F6D0A20202D20416E647265617320537465696E656C202F20412E3C6C6173746E616D653E28617429676D61696C28646F7429636F6D0A20202D204D617820486F726E202F206D6178286174297175656E646928646F742964650A20202D20526F6265727420746572205665686E202F203C6669727374206E616D653E2E3C6C617374206E616D653E28617429676D61696C28646F7429636F6D0A20202D204A6F68616E6E2052696368617264202F203C6669727374206E616D653E2E3C6C617374206E616D653E28617429676D61696C28646F7429636F6D0A20200A202050726F6A65637420686F6D653A2068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A0A23696E636C756465202252435377697463682E68220A0A2F2A20466F726D617420666F722070726F746F636F6C20646566696E6974696F6E733A0A202A207B70756C73656C656E6774682C2053796E63206269742C20223022206269742C20223122206269747D0A202A200A202A2070756C73656C656E6774683A2070756C7365206C656E67746820696E206D6963726F7365636F6E64732C20652E672E203335300A202A2053796E63206269743A207B312C2033317D206D65616E73203120686967682070756C736520616E64203331206C6F772070756C7365730A202A20202020202870657263656976656420617320612033312A70756C73656C656E677468206C6F6E672070756C73652C20746F74616C206C656E677468206F662073796E63206269742069730A202A202020202033322A70756C73656C656E677468206D6963726F7365636F6E6473292C20692E653A0A202A2020202020205F0A202A20202020207C207C5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F2028646F6E277420636F756E742074686520766572746963616C2062617273290A202A20223022206269743A2077617665666F726D20666F722061206461746120626974206F662076616C7565202230222C207B312C20337D206D65616E73203120686967682070756C73650A202A2020202020616E642033206C6F772070756C7365732C20746F74616C206C656E6774682028312B33292A70756C73656C656E6774682C20692E653A0A202A2020202020205F0A202A20202020207C207C5F5F5F0A202A20223122206269743A2077617665666F726D20666F722061206461746120626974206F662076616C7565202231222C20652E672E207B332C317D3A0A202A2020202020205F5F5F0A202A20202020207C2020207C5F0A202A0A202A2054686573652061726520636F6D62696E656420746F20666F726D205472692D53746174652062697473207768656E2073656E64696E67206F7220726563656976696E6720636F6465732E0A202A2F0A73746174696320636F6E73742052435377697463683A3A50726F746F636F6C2050524F474D454D2070726F746F5B5D203D207B0A202020207B203335302C207B2020312C203331207D2C207B2020312C202033207D2C207B2020332C202031207D207D2C202020202F2F2070726F746F636F6C20310A202020207B203635302C207B2020312C203130207D2C207B2020312C202032207D2C207B2020322C202031207D207D2C202020202F2F2070726F746F636F6C20320A202020207B203130302C207B2033302C203731207D2C207B2020342C203131207D2C207B2020392C202036207D207D2C202020202F2F2070726F746F636F6C20330A202020207B203338302C207B2020312C202036207D2C207B2020312C202033207D2C207B2020332C202031207D207D2C202020202F2F2070726F746F636F6C20340A202020207B203530302C207B2020362C203134207D2C207B2020312C202032207D2C207B2020322C202031207D207D2C202020202F2F2070726F746F636F6C20350A7D3B0A0A73746174696320636F6E737420696E74206E756D50726F746F203D2073697A656F662870726F746F29202F2073697A656F662870726F746F5B305D293B0A0A236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A756E7369676E6564206C6F6E672052435377697463683A3A6E526563656976656456616C7565203D20303B0A756E7369676E656420696E742052435377697463683A3A6E52656365697665644269746C656E677468203D20303B0A756E7369676E656420696E742052435377697463683A3A6E526563656976656444656C6179203D20303B0A756E7369676E656420696E742052435377697463683A3A6E526563656976656450726F746F636F6C203D20303B0A696E742052435377697463683A3A6E52656365697665546F6C6572616E6365203D2036303B0A636F6E737420756E7369676E656420696E742052435377697463683A3A6E53657061726174696F6E4C696D6974203D20343630303B0A2F2F2073657061726174696F6E4C696D69743A206D696E696D756D206D6963726F7365636F6E6473206265747765656E20726563656976656420636F6465732C20636C6F73657220636F646573206172652069676E6F7265642E0A2F2F206163636F7264696E6720746F2064697363757373696F6E206F6E20697373756520233134206974206D69676874206265206D6F7265207375697461626C6520746F20736574207468652073657061726174696F6E0A2F2F206C696D697420746F207468652073616D652074696D652061732074686520276C6F77272070617274206F66207468652073796E63207369676E616C20666F72207468652063757272656E742070726F746F636F6C2E0A756E7369676E656420696E742052435377697463683A3A74696D696E67735B52435357495443485F4D41585F4348414E4745535D3B0A23656E6469660A0A52435377697463683A3A52435377697463682829207B0A2020746869732D3E6E5472616E736D697474657250696E203D202D313B0A2020746869732D3E7365745265706561745472616E736D6974283130293B0A2020746869732D3E73657450726F746F636F6C2831293B0A2020236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A2020746869732D3E6E5265636569766572496E74657272757074203D202D313B0A2020746869732D3E73657452656365697665546F6C6572616E6365283630293B0A202052435377697463683A3A6E526563656976656456616C7565203D20303B0A202023656E6469660A7D0A0A2F2A2A0A20202A2053657473207468652070726F746F636F6C20746F2073656E642E0A20202A2F0A766F69642052435377697463683A3A73657450726F746F636F6C2850726F746F636F6C2070726F746F636F6C29207B0A2020746869732D3E70726F746F636F6C203D2070726F746F636F6C3B0A7D0A0A2F2A2A0A20202A2053657473207468652070726F746F636F6C20746F2073656E642C2066726F6D2061206C697374206F6620707265646566696E65642070726F746F636F6C730A20202A2F0A766F69642052435377697463683A3A73657450726F746F636F6C28696E74206E50726F746F636F6C29207B0A2020696620286E50726F746F636F6C203C2031207C7C206E50726F746F636F6C203E206E756D50726F746F29207B0A202020206E50726F746F636F6C203D20313B20202F2F20544F444F3A207472696767657220616E206572726F722C20652E672E20226261642070726F746F636F6C22203F3F3F0A20207D0A20206D656D6370795F502826746869732D3E70726F746F636F6C2C202670726F746F5B6E50726F746F636F6C2D315D2C2073697A656F662850726F746F636F6C29293B0A7D0A0A2F2A2A0A20202A2053657473207468652070726F746F636F6C20746F2073656E6420776974682070756C7365206C656E67746820696E206D6963726F7365636F6E64732E0A20202A2F0A766F69642052435377697463683A3A73657450726F746F636F6C28696E74206E50726F746F636F6C2C20696E74206E50756C73654C656E67746829207B0A202073657450726F746F636F6C286E50726F746F636F6C293B0A2020746869732D3E73657450756C73654C656E677468286E50756C73654C656E677468293B0A7D0A0A0A2F2A2A0A20202A20536574732070756C7365206C656E67746820696E206D6963726F7365636F6E64730A20202A2F0A766F69642052435377697463683A3A73657450756C73654C656E67746828696E74206E50756C73654C656E67746829207B0A2020746869732D3E70726F746F636F6C2E70756C73654C656E677468203D206E50756C73654C656E6774683B0A7D0A0A2F2A2A0A202A205365747320526570656174205472616E736D6974730A202A2F0A766F69642052435377697463683A3A7365745265706561745472616E736D697428696E74206E5265706561745472616E736D697429207B0A2020746869732D3E6E5265706561745472616E736D6974203D206E5265706561745472616E736D69743B0A7D0A0A2F2A2A0A202A2053657420526563656976696E6720546F6C6572616E63650A202A2F0A236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A766F69642052435377697463683A3A73657452656365697665546F6C6572616E636528696E74206E50657263656E7429207B0A202052435377697463683A3A6E52656365697665546F6C6572616E6365203D206E50657263656E743B0A7D0A23656E6469660A20200A0A2F2A2A0A202A20456E61626C65207472616E736D697373696F6E730A202A0A202A2040706172616D206E5472616E736D697474657250696E2020202041726475696E6F2050696E20746F207768696368207468652073656E64657220697320636F6E6E656374656420746F0A202A2F0A766F69642052435377697463683A3A656E61626C655472616E736D697428696E74206E5472616E736D697474657250696E29207B0A2020746869732D3E6E5472616E736D697474657250696E203D206E5472616E736D697474657250696E3B0A202070696E4D6F646528746869732D3E6E5472616E736D697474657250696E2C204F5554505554293B0A7D0A0A2F2A2A0A20202A2044697361626C65207472616E736D697373696F6E730A20202A2F0A766F69642052435377697463683A3A64697361626C655472616E736D69742829207B0A2020746869732D3E6E5472616E736D697474657250696E203D202D313B0A7D0A0A2F2A2A0A202A2053776974636820612072656D6F746520737769746368206F6E202854797065204420524556290A202A0A202A2040706172616D207347726F75702020202020202020436F6465206F6620746865207377697463682067726F75702028412C422C432C44290A202A2040706172616D206E446576696365202020202020204E756D626572206F66207468652073776974636820697473656C662028312E2E33290A202A2F0A766F69642052435377697463683A3A7377697463684F6E2863686172207347726F75702C20696E74206E44657669636529207B0A2020746869732D3E73656E6454726953746174652820746869732D3E676574436F6465576F726444287347726F75702C206E4465766963652C20747275652920293B0A7D0A0A2F2A2A0A202A2053776974636820612072656D6F746520737769746368206F6666202854797065204420524556290A202A0A202A2040706172616D207347726F75702020202020202020436F6465206F6620746865207377697463682067726F75702028412C422C432C44290A202A2040706172616D206E446576696365202020202020204E756D626572206F66207468652073776974636820697473656C662028312E2E33290A202A2F0A766F69642052435377697463683A3A7377697463684F66662863686172207347726F75702C20696E74206E44657669636529207B0A2020746869732D3E73656E6454726953746174652820746869732D3E676574436F6465576F726444287347726F75702C206E4465766963652C2066616C73652920293B0A7D0A0A2F2A2A0A202A2053776974636820612072656D6F746520737769746368206F6E202854797065204320496E746572746563686E6F290A202A0A202A2040706172616D207346616D696C79202046616D696C79636F64652028612E2E66290A202A2040706172616D206E47726F75702020204E756D626572206F662067726F75702028312E2E34290A202A2040706172616D206E44657669636520204E756D626572206F66206465766963652028312E2E34290A20202A2F0A766F69642052435377697463683A3A7377697463684F6E2863686172207346616D696C792C20696E74206E47726F75702C20696E74206E44657669636529207B0A2020746869732D3E73656E6454726953746174652820746869732D3E676574436F6465576F726443287346616D696C792C206E47726F75702C206E4465766963652C20747275652920293B0A7D0A0A2F2A2A0A202A2053776974636820612072656D6F746520737769746368206F6666202854797065204320496E746572746563686E6F290A202A0A202A2040706172616D207346616D696C79202046616D696C79636F64652028612E2E66290A202A2040706172616D206E47726F75702020204E756D626572206F662067726F75702028312E2E34290A202A2040706172616D206E44657669636520204E756D626572206F66206465766963652028312E2E34290A202A2F0A766F69642052435377697463683A3A7377697463684F66662863686172207346616D696C792C20696E74206E47726F75702C20696E74206E44657669636529207B0A2020746869732D3E73656E6454726953746174652820746869732D3E676574436F6465576F726443287346616D696C792C206E47726F75702C206E4465766963652C2066616C73652920293B0A7D0A0A2F2A2A0A202A2053776974636820612072656D6F746520737769746368206F6E202854797065204220776974682074776F20726F746172792F736C6964696E67207377697463686573290A202A0A202A2040706172616D206E41646472657373436F646520204E756D626572206F6620746865207377697463682067726F75702028312E2E34290A202A2040706172616D206E4368616E6E656C436F646520204E756D626572206F66207468652073776974636820697473656C662028312E2E34290A202A2F0A766F69642052435377697463683A3A7377697463684F6E28696E74206E41646472657373436F64652C20696E74206E4368616E6E656C436F646529207B0A2020746869732D3E73656E6454726953746174652820746869732D3E676574436F6465576F726442286E41646472657373436F64652C206E4368616E6E656C436F64652C20747275652920293B0A7D0A0A2F2A2A0A202A2053776974636820612072656D6F746520737769746368206F6666202854797065204220776974682074776F20726F746172792F736C6964696E67207377697463686573290A202A0A202A2040706172616D206E41646472657373436F646520204E756D626572206F6620746865207377697463682067726F75702028312E2E34290A202A2040706172616D206E4368616E6E656C436F646520204E756D626572206F66207468652073776974636820697473656C662028312E2E34290A202A2F0A766F69642052435377697463683A3A7377697463684F666628696E74206E41646472657373436F64652C20696E74206E4368616E6E656C436F646529207B0A2020746869732D3E73656E6454726953746174652820746869732D3E676574436F6465576F726442286E41646472657373436F64652C206E4368616E6E656C436F64652C2066616C73652920293B0A7D0A0A2F2A2A0A202A20446570726563617465642C20757365207377697463684F6E28636F6E737420636861722A207347726F75702C20636F6E737420636861722A20734465766963652920696E7374656164210A202A2053776974636820612072656D6F746520737769746368206F6E2028547970652041207769746820313020706F6C6520444950207377697463686573290A202A0A202A2040706172616D207347726F75702020202020202020436F6465206F6620746865207377697463682067726F7570202872656665727320746F2044495020737769746368657320312E2E3520776865726520223122203D206F6E20616E6420223022203D206F66662C20696620616C6C2044495020737769746368657320617265206F6E20697427732022313131313122290A202A2040706172616D206E4368616E6E656C436F646520204E756D626572206F66207468652073776974636820697473656C662028312E2E35290A202A2F0A766F69642052435377697463683A3A7377697463684F6E28636F6E737420636861722A207347726F75702C20696E74206E4368616E6E656C29207B0A2020636F6E737420636861722A20636F64655B365D203D207B20223030303030222C20223130303030222C20223031303030222C20223030313030222C20223030303130222C2022303030303122207D3B0A2020746869732D3E7377697463684F6E287347726F75702C20636F64655B6E4368616E6E656C5D293B0A7D0A0A2F2A2A0A202A20446570726563617465642C20757365207377697463684F666628636F6E737420636861722A207347726F75702C20636F6E737420636861722A20734465766963652920696E7374656164210A202A2053776974636820612072656D6F746520737769746368206F66662028547970652041207769746820313020706F6C6520444950207377697463686573290A202A0A202A2040706172616D207347726F75702020202020202020436F6465206F6620746865207377697463682067726F7570202872656665727320746F2044495020737769746368657320312E2E3520776865726520223122203D206F6E20616E6420223022203D206F66662C20696620616C6C2044495020737769746368657320617265206F6E20697427732022313131313122290A202A2040706172616D206E4368616E6E656C436F646520204E756D626572206F66207468652073776974636820697473656C662028312E2E35290A202A2F0A766F69642052435377697463683A3A7377697463684F666628636F6E737420636861722A207347726F75702C20696E74206E4368616E6E656C29207B0A2020636F6E737420636861722A20636F64655B365D203D207B20223030303030222C20223130303030222C20223031303030222C20223030313030222C20223030303130222C2022303030303122207D3B0A2020746869732D3E7377697463684F6666287347726F75702C20636F64655B6E4368616E6E656C5D293B0A7D0A0A2F2A2A0A202A2053776974636820612072656D6F746520737769746368206F6E2028547970652041207769746820313020706F6C6520444950207377697463686573290A202A0A202A2040706172616D207347726F75702020202020202020436F6465206F6620746865207377697463682067726F7570202872656665727320746F2044495020737769746368657320312E2E3520776865726520223122203D206F6E20616E6420223022203D206F66662C20696620616C6C2044495020737769746368657320617265206F6E20697427732022313131313122290A202A2040706172616D207344657669636520202020202020436F6465206F66207468652073776974636820646576696365202872656665727320746F2044495020737769746368657320362E2E31302028412E2E452920776865726520223122203D206F6E20616E6420223022203D206F66662C20696620616C6C2044495020737769746368657320617265206F6E20697427732022313131313122290A202A2F0A766F69642052435377697463683A3A7377697463684F6E28636F6E737420636861722A207347726F75702C20636F6E737420636861722A207344657669636529207B0A20202020746869732D3E73656E6454726953746174652820746869732D3E676574436F6465576F726441287347726F75702C20734465766963652C20747275652920293B0A7D0A0A2F2A2A0A202A2053776974636820612072656D6F746520737769746368206F66662028547970652041207769746820313020706F6C6520444950207377697463686573290A202A0A202A2040706172616D207347726F75702020202020202020436F6465206F6620746865207377697463682067726F7570202872656665727320746F2044495020737769746368657320312E2E3520776865726520223122203D206F6E20616E6420223022203D206F66662C20696620616C6C2044495020737769746368657320617265206F6E20697427732022313131313122290A202A2040706172616D207344657669636520202020202020436F6465206F66207468652073776974636820646576696365202872656665727320746F2044495020737769746368657320362E2E31302028412E2E452920776865726520223122203D206F6E20616E6420223022203D206F66662C20696620616C6C2044495020737769746368657320617265206F6E20697427732022313131313122290A202A2F0A766F69642052435377697463683A3A7377697463684F666628636F6E737420636861722A207347726F75702C20636F6E737420636861722A207344657669636529207B0A20202020746869732D3E73656E6454726953746174652820746869732D3E676574436F6465576F726441287347726F75702C20734465766963652C2066616C73652920293B0A7D0A0A2F2A2A0A202A2052657475726E73206120636861725B31335D2C20726570726573656E74696E672074686520636F646520776F726420746F2062652073656E742E0A202A204120636F646520776F726420636F6E7369737473206F662039206164647265737320626974732C20332064617461206269747320616E64206F6E652073796E6320626974206275740A202A20696E206F75722063617365206F6E6C792074686520666972737420382061646472657373206269747320616E6420746865206C617374203220646174612062697473207765726520757365642E0A202A204120636F6465206269742063616E2068617665203420646966666572656E74207374617465733A202246222028666C6F6174696E67292C2022302220286C6F77292C20223122202868696768292C20225322202873796E6320626974290A202A0A202A202B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2B0A202A207C20342062697473206164647265737320202020202020202020202020207C20342062697473206164647265737320202020202020202020202020207C203120626974202020207C203120626974202020207C20322062697473202020202020207C203120626974202020207C0A202A207C207377697463682067726F7570202020202020202020202020202020207C20737769746368206E756D6265722020202020202020202020202020207C206E6F742075736564207C206E6F742075736564207C206F6E202F206F666620202020207C2073796E6320626974207C0A202A207C20313D3046464620323D4630464620333D4646304620343D46464630207C20313D3046464620323D4630464620333D4646304620343D46464630207C204620202020202020207C204620202020202020207C206F6E3D4646206F66663D4630207C205320202020202020207C0A202A202B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2B0A202A0A202A2040706172616D206E41646472657373436F646520204E756D626572206F6620746865207377697463682067726F75702028312E2E34290A202A2040706172616D206E4368616E6E656C436F646520204E756D626572206F66207468652073776974636820697473656C662028312E2E34290A202A2040706172616D2062537461747573202020202020205768657468657220746F20737769746368206F6E20287472756529206F72206F6666202866616C7365290A202A0A202A204072657475726E20636861725B31335D0A202A2F0A636861722A2052435377697463683A3A676574436F6465576F72644228696E74206E41646472657373436F64652C20696E74206E4368616E6E656C436F64652C20626F6F6C65616E206253746174757329207B0A202020696E74206E52657475726E506F73203D20303B0A2020207374617469632063686172207352657475726E5B31335D3B0A2020200A202020636F6E737420636861722A20636F64655B355D203D207B202246464646222C202230464646222C202246304646222C202246463046222C20224646463022207D3B0A202020696620286E41646472657373436F6465203C2031207C7C206E41646472657373436F6465203E2034207C7C206E4368616E6E656C436F6465203C2031207C7C206E4368616E6E656C436F6465203E203429207B0A2020202072657475726E20275C30273B0A2020207D0A202020666F722028696E742069203D20303B20693C343B20692B2B29207B0A20202020207352657475726E5B6E52657475726E506F732B2B5D203D20636F64655B6E41646472657373436F64655D5B695D3B0A2020207D0A0A202020666F722028696E742069203D20303B20693C343B20692B2B29207B0A20202020207352657475726E5B6E52657475726E506F732B2B5D203D20636F64655B6E4368616E6E656C436F64655D5B695D3B0A2020207D0A2020200A2020207352657475726E5B6E52657475726E506F732B2B5D203D202746273B0A2020207352657475726E5B6E52657475726E506F732B2B5D203D202746273B0A2020207352657475726E5B6E52657475726E506F732B2B5D203D202746273B0A2020200A202020696620286253746174757329207B0A2020202020207352657475726E5B6E52657475726E506F732B2B5D203D202746273B0A2020207D20656C7365207B0A2020202020207352657475726E5B6E52657475726E506F732B2B5D203D202730273B0A2020207D0A2020200A2020207352657475726E5B6E52657475726E506F735D203D20275C30273B0A2020200A20202072657475726E207352657475726E3B0A7D0A0A2F2A2A0A202A2052657475726E73206120636861725B31335D2C20726570726573656E74696E672074686520636F646520776F726420746F2062652073656E642E0A202A0A202A2F0A636861722A2052435377697463683A3A676574436F6465576F72644128636F6E737420636861722A207347726F75702C20636F6E737420636861722A20734465766963652C20626F6F6C65616E20624F6E29207B0A202020207374617469632063686172207344697053776974636865735B31335D3B0A20202020696E742069203D20303B0A20202020696E74206A203D20303B0A202020200A20202020666F72202869203D20303B2069203C20353B20692B2B29207B0A20202020202020207344697053776974636865735B6A2B2B5D203D20287347726F75705B695D203D3D2027302729203F20274627203A202730273B0A202020207D0A0A20202020666F72202869203D20303B2069203C20353B20692B2B29207B0A20202020202020207344697053776974636865735B6A2B2B5D203D2028734465766963655B695D203D3D2027302729203F20274627203A202730273B0A202020207D0A0A2020202069662028624F6E29207B0A20202020202020207344697053776974636865735B6A2B2B5D203D202730273B0A20202020202020207344697053776974636865735B6A2B2B5D203D202746273B0A202020207D20656C7365207B0A20202020202020207344697053776974636865735B6A2B2B5D203D202746273B0A20202020202020207344697053776974636865735B6A2B2B5D203D202730273B0A202020207D0A0A202020207344697053776974636865735B6A5D203D20275C30273B0A0A2020202072657475726E207344697053776974636865733B0A7D0A0A2F2A2A0A202A204C696B6520676574436F6465576F72642028547970652043203D20496E746572746563686E6F290A202A2F0A636861722A2052435377697463683A3A676574436F6465576F7264432863686172207346616D696C792C20696E74206E47726F75702C20696E74206E4465766963652C20626F6F6C65616E206253746174757329207B0A20207374617469632063686172207352657475726E5B31335D3B0A2020696E74206E52657475726E506F73203D20303B0A20200A202069662028202862797465297346616D696C79203C203937207C7C202862797465297346616D696C79203E20313132207C7C206E47726F7570203C2031207C7C206E47726F7570203E2034207C7C206E446576696365203C2031207C7C206E446576696365203E203429207B0A2020202072657475726E20275C30273B0A20207D0A20200A2020636F6E737420636861722A207344657669636547726F7570436F6465203D20206465633262696E576368617266696C6C282020286E4465766963652D3129202B20286E47726F75702D31292A342C20342C202730272020293B0A2020636F6E737420636861722066616D696C79636F64655B31365D5B355D203D207B0A2020202020202230303030222C202246303030222C202230463030222C202246463030222C0A2020202020202230304630222C202246304630222C202230464630222C202246464630222C0A2020202020202230303046222C202246303046222C202230463046222C202246463046222C0A2020202020202230304646222C202246304646222C202230464646222C202246464646220A2020202020207D3B0A2020666F722028696E742069203D20303B20693C343B20692B2B29207B0A202020207352657475726E5B6E52657475726E506F732B2B5D203D2066616D696C79636F64655B2028696E74297346616D696C79202D203937205D5B695D3B0A20207D0A2020666F722028696E742069203D20303B20693C343B20692B2B29207B0A202020207352657475726E5B6E52657475726E506F732B2B5D203D20287344657669636547726F7570436F64655B332D695D203D3D20273127203F20274627203A20273027293B0A20207D0A20207352657475726E5B6E52657475726E506F732B2B5D203D202730273B0A20207352657475726E5B6E52657475726E506F732B2B5D203D202746273B0A20207352657475726E5B6E52657475726E506F732B2B5D203D202746273B0A2020696620286253746174757329207B0A202020207352657475726E5B6E52657475726E506F732B2B5D203D202746273B0A20207D20656C7365207B0A202020207352657475726E5B6E52657475726E506F732B2B5D203D202730273B0A20207D0A20207352657475726E5B6E52657475726E506F735D203D20275C30273B0A202072657475726E207352657475726E3B0A7D0A0A2F2A2A0A202A204465636F64696E6720666F7220746865205245562053776974636820547970650A202A0A202A2052657475726E73206120636861725B31335D2C20726570726573656E74696E672074686520547269737461746520746F2062652073656E642E0A202A204120436F646520576F726420636F6E7369737473206F6620372061646472657373206269747320616E64203520636F6D6D616E64206461746120626974732E0A202A204120436F6465204269742063616E2068617665203320646966666572656E74207374617465733A202246222028666C6F6174696E67292C2022302220286C6F77292C20223122202868696768290A202A0A202A202B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B0A202A207C20342062697473206164647265737320287377697463682067726F757029207C2033206269747320616464726573732028646576696365206E756D62657229207C203520626974732028636F6D6D616E64206461746129207C0A202A207C20413D3146464620423D4631464620433D4646314620443D464646312020207C20313D3046464620323D4630464620333D4646304620343D46464630202020207C206F6E3D3030303130206F66663D3030303031202020207C0A202A202B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2B0A202A0A202A20536F757263653A20687474703A2F2F7777772E7468652D696E7472756465722E6E65742F66756E6B737465636B646F73656E2D766F6E2D7265762D756265722D61726475696E6F2D616E7374657565726E2F0A202A0A202A2040706172616D207347726F757020202020202020204E616D65206F6620746865207377697463682067726F75702028412E2E442C20726573702E20612E2E6429200A202A2040706172616D206E446576696365202020202020204E756D626572206F66207468652073776974636820697473656C662028312E2E33290A202A2040706172616D2062537461747573202020202020205768657468657220746F20737769746368206F6E20287472756529206F72206F6666202866616C7365290A202A0A202A204072657475726E20636861725B31335D0A202A2F0A0A636861722A2052435377697463683A3A676574436F6465576F7264442863686172207347726F75702C20696E74206E4465766963652C20626F6F6C65616E2062537461747573297B0A202020207374617469632063686172207352657475726E5B31335D3B0A20202020696E74206E52657475726E506F73203D20303B0A0A202020202F2F204275696C64696E672034206269747320616464726573730A202020202F2F2028506F74656E7469616C2070726F626C656D206966206465633262696E576368617266696C6C206E6F742072657475726E696E6720636F727265637420737472696E67290A2020202063686172202A7347726F7570436F64653B0A20202020737769746368287347726F7570297B0A202020202020202063617365202761273A0A202020202020202063617365202741273A0A2020202020202020202020207347726F7570436F6465203D206465633262696E576368617266696C6C28382C20342C20274627293B20627265616B3B0A202020202020202063617365202762273A0A202020202020202063617365202742273A0A2020202020202020202020207347726F7570436F6465203D206465633262696E576368617266696C6C28342C20342C20274627293B20627265616B3B0A202020202020202063617365202763273A0A202020202020202063617365202743273A0A2020202020202020202020207347726F7570436F6465203D206465633262696E576368617266696C6C28322C20342C20274627293B20627265616B3B0A202020202020202063617365202764273A0A202020202020202063617365202744273A0A2020202020202020202020207347726F7570436F6465203D206465633262696E576368617266696C6C28312C20342C20274627293B20627265616B3B0A202020202020202064656661756C743A0A20202020202020202020202072657475726E20275C30273B0A202020207D0A202020200A20202020666F722028696E742069203D20303B20693C343B20692B2B29207B0A20202020202020207352657475726E5B6E52657475726E506F732B2B5D203D207347726F7570436F64655B695D3B0A202020207D0A0A0A202020202F2F204275696C64696E672033206269747320616464726573730A202020202F2F2028506F74656E7469616C2070726F626C656D206966206465633262696E576368617266696C6C206E6F742072657475726E696E6720636F727265637420737472696E67290A2020202063686172202A734465766963653B0A20202020737769746368286E44657669636529207B0A20202020202020206361736520313A0A20202020202020202020202073446576696365203D206465633262696E576368617266696C6C28342C20332C20274627293B20627265616B3B0A20202020202020206361736520323A0A20202020202020202020202073446576696365203D206465633262696E576368617266696C6C28322C20332C20274627293B20627265616B3B0A20202020202020206361736520333A0A20202020202020202020202073446576696365203D206465633262696E576368617266696C6C28312C20332C20274627293B20627265616B3B0A202020202020202064656661756C743A0A20202020202020202020202072657475726E20275C30273B0A202020207D0A0A20202020666F722028696E742069203D20303B20693C333B20692B2B290A20202020202020207352657475726E5B6E52657475726E506F732B2B5D203D20734465766963655B695D3B0A0A202020202F2F2066696C6C20757020726573742077697468207A65726F730A20202020666F722028696E742069203D20303B20693C353B20692B2B290A20202020202020207352657475726E5B6E52657475726E506F732B2B5D203D202730273B0A0A202020202F2F20656E636F6465206F6E206F72206F66660A202020206966202862537461747573290A20202020202020207352657475726E5B31305D203D202731273B0A20202020656C73650A20202020202020207352657475726E5B31315D203D202731273B0A0A202020202F2F206C61737420706F736974696F6E207465726D696E61746520737472696E670A202020207352657475726E5B31325D203D20275C30273B0A2020202072657475726E207352657475726E3B0A0A7D0A0A2F2A2A0A202A2040706172616D2073436F6465576F72642020202F5E5B313046535D2A242F20202D3E2073656520676574436F6465576F72640A202A2F0A766F69642052435377697463683A3A73656E64547269537461746528636F6E737420636861722A2073436F6465576F726429207B0A2020666F722028696E74206E5265706561743D303B206E5265706561743C6E5265706561745472616E736D69743B206E5265706561742B2B29207B0A20202020696E742069203D20303B0A202020207768696C65202873436F6465576F72645B695D20213D20275C302729207B0A2020202020207377697463682873436F6465576F72645B695D29207B0A202020202020202063617365202730273A0A20202020202020202020746869732D3E73656E64543028293B0A2020202020202020627265616B3B0A202020202020202063617365202746273A0A20202020202020202020746869732D3E73656E64544628293B0A2020202020202020627265616B3B0A202020202020202063617365202731273A0A20202020202020202020746869732D3E73656E64543128293B0A2020202020202020627265616B3B0A2020202020207D0A202020202020692B2B3B0A202020207D0A20202020746869732D3E73656E6453796E6328293B202020200A20207D0A7D0A0A766F69642052435377697463683A3A73656E6428756E7369676E6564206C6F6E6720636F64652C20756E7369676E656420696E74206C656E67746829207B0A2020746869732D3E73656E642820746869732D3E6465633262696E576368617266696C6C28636F64652C206C656E6774682C202730272920293B0A7D0A0A766F69642052435377697463683A3A73656E6428636F6E737420636861722A2073436F6465576F726429207B0A2020666F722028696E74206E5265706561743D303B206E5265706561743C6E5265706561745472616E736D69743B206E5265706561742B2B29207B0A20202020696E742069203D20303B0A202020207768696C65202873436F6465576F72645B695D20213D20275C302729207B0A2020202020207377697463682873436F6465576F72645B695D29207B0A202020202020202063617365202730273A0A20202020202020202020746869732D3E73656E643028293B0A2020202020202020627265616B3B0A202020202020202063617365202731273A0A20202020202020202020746869732D3E73656E643128293B0A2020202020202020627265616B3B0A2020202020207D0A202020202020692B2B3B0A202020207D0A20202020746869732D3E73656E6453796E6328293B0A20207D0A7D0A0A766F69642052435377697463683A3A7472616E736D697428696E74206E4869676850756C7365732C20696E74206E4C6F7750756C73657329207B0A2020202069662028746869732D3E6E5472616E736D697474657250696E20213D202D3129207B0A2020202020202020236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A2020202020202020696E74206E5265636569766572496E746572727570745F6261636B7570203D206E5265636569766572496E746572727570743B0A2020202020202020696620286E5265636569766572496E746572727570745F6261636B757020213D202D3129207B0A202020202020202020202020746869732D3E64697361626C655265636569766528293B0A20202020202020207D0A202020202020202023656E6469660A20202020202020206469676974616C577269746528746869732D3E6E5472616E736D697474657250696E2C2048494748293B0A202020202020202064656C61794D6963726F7365636F6E64732820746869732D3E70726F746F636F6C2E70756C73654C656E677468202A206E4869676850756C736573293B0A20202020202020206469676974616C577269746528746869732D3E6E5472616E736D697474657250696E2C204C4F57293B0A202020202020202064656C61794D6963726F7365636F6E64732820746869732D3E70726F746F636F6C2E70756C73654C656E677468202A206E4C6F7750756C736573293B0A20202020202020200A2020202020202020236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A2020202020202020696620286E5265636569766572496E746572727570745F6261636B757020213D202D3129207B0A202020202020202020202020746869732D3E656E61626C6552656365697665286E5265636569766572496E746572727570745F6261636B7570293B0A20202020202020207D0A202020202020202023656E6469660A202020207D0A7D0A0A766F69642052435377697463683A3A7472616E736D697428486967684C6F772070756C73657329207B0A202020207472616E736D69742870756C7365732E686967682C2070756C7365732E6C6F77293B0A7D0A0A2F2A2A0A202A2053656E6473206120223022204269740A202A20202020202020202020202020202020202020202020205F202020200A202A2057617665666F726D2050726F746F636F6C20313A207C207C5F5F5F0A202A20202020202020202020202020202020202020202020205F20200A202A2057617665666F726D2050726F746F636F6C20323A207C207C5F5F0A202A2F0A766F69642052435377697463683A3A73656E64302829207B0A20202020746869732D3E7472616E736D69742870726F746F636F6C2E7A65726F293B0A7D0A0A2F2A2A0A202A2053656E6473206120223122204269740A202A20202020202020202020202020202020202020202020205F5F5F20200A202A2057617665666F726D2050726F746F636F6C20313A207C2020207C5F0A202A20202020202020202020202020202020202020202020205F5F20200A202A2057617665666F726D2050726F746F636F6C20323A207C20207C5F0A202A2F0A766F69642052435377697463683A3A73656E64312829207B0A20202020746869732D3E7472616E736D69742870726F746F636F6C2E6F6E65293B0A7D0A0A0A2F2A2A0A202A2053656E64732061205472692D537461746520223022204269740A202A2020202020202020202020205F20202020205F0A202A2057617665666F726D3A207C207C5F5F5F7C207C5F5F5F0A202A2F0A766F69642052435377697463683A3A73656E6454302829207B0A2020746869732D3E73656E643028293B0A2020746869732D3E73656E643028293B0A7D0A0A2F2A2A0A202A2053656E64732061205472692D537461746520223122204269740A202A2020202020202020202020205F5F5F2020205F5F5F0A202A2057617665666F726D3A207C2020207C5F7C2020207C5F0A202A2F0A766F69642052435377697463683A3A73656E6454312829207B0A2020746869732D3E73656E643128293B0A2020746869732D3E73656E643128293B0A7D0A0A2F2A2A0A202A2053656E64732061205472692D537461746520224622204269740A202A2020202020202020202020205F20202020205F5F5F0A202A2057617665666F726D3A207C207C5F5F5F7C2020207C5F0A202A2F0A766F69642052435377697463683A3A73656E6454462829207B0A2020746869732D3E73656E643028293B0A2020746869732D3E73656E643128293B0A7D0A0A2F2A2A0A202A2053656E64732061202253796E6322204269740A202A20202020202020202020202020202020202020202020205F0A202A2057617665666F726D2050726F746F636F6C20313A207C207C5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F0A202A20202020202020202020202020202020202020202020205F0A202A2057617665666F726D2050726F746F636F6C20323A207C207C5F5F5F5F5F5F5F5F5F5F0A202A2F0A766F69642052435377697463683A3A73656E6453796E632829207B0A20202020746869732D3E7472616E736D69742870726F746F636F6C2E73796E63466163746F72293B0A7D0A0A236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A2F2A2A0A202A20456E61626C6520726563656976696E6720646174610A202A2F0A766F69642052435377697463683A3A656E61626C655265636569766528696E7420696E7465727275707429207B0A2020746869732D3E6E5265636569766572496E74657272757074203D20696E746572727570743B0A2020746869732D3E656E61626C655265636569766528293B0A7D0A0A766F69642052435377697463683A3A656E61626C65526563656976652829207B0A202069662028746869732D3E6E5265636569766572496E7465727275707420213D202D3129207B0A2020202052435377697463683A3A6E526563656976656456616C7565203D20303B0A2020202052435377697463683A3A6E52656365697665644269746C656E677468203D20303B0A23696620646566696E656428526173706265727279506929202F2F205261737062657272792050690A20202020776972696E67506949535228746869732D3E6E5265636569766572496E746572727570742C20494E545F454447455F424F54482C202668616E646C65496E74657272757074293B0A23656C7365202F2F2041726475696E6F0A20202020617474616368496E7465727275707428746869732D3E6E5265636569766572496E746572727570742C2068616E646C65496E746572727570742C204348414E4745293B0A23656E6469660A20207D0A7D0A0A2F2A2A0A202A2044697361626C6520726563656976696E6720646174610A202A2F0A766F69642052435377697463683A3A64697361626C65526563656976652829207B0A236966206E6F7420646566696E656428526173706265727279506929202F2F2041726475696E6F0A2020646574616368496E7465727275707428746869732D3E6E5265636569766572496E74657272757074293B0A23656E646966202F2F20466F72205261737062657272792050692028776972696E6750692920796F752063616E277420756E726567697374657220746865204953520A2020746869732D3E6E5265636569766572496E74657272757074203D202D313B0A7D0A0A626F6F6C2052435377697463683A3A617661696C61626C652829207B0A202072657475726E2052435377697463683A3A6E526563656976656456616C756520213D20303B0A7D0A0A766F69642052435377697463683A3A7265736574417661696C61626C652829207B0A202052435377697463683A3A6E526563656976656456616C7565203D20303B0A7D0A0A756E7369676E6564206C6F6E672052435377697463683A3A676574526563656976656456616C75652829207B0A2020202072657475726E2052435377697463683A3A6E526563656976656456616C75653B0A7D0A0A756E7369676E656420696E742052435377697463683A3A67657452656365697665644269746C656E6774682829207B0A202072657475726E2052435377697463683A3A6E52656365697665644269746C656E6774683B0A7D0A0A756E7369676E656420696E742052435377697463683A3A676574526563656976656444656C61792829207B0A202072657475726E2052435377697463683A3A6E526563656976656444656C61793B0A7D0A0A756E7369676E656420696E742052435377697463683A3A676574526563656976656450726F746F636F6C2829207B0A202072657475726E2052435377697463683A3A6E526563656976656450726F746F636F6C3B0A7D0A0A756E7369676E656420696E742A2052435377697463683A3A6765745265636569766564526177646174612829207B0A2020202072657475726E2052435377697463683A3A74696D696E67733B0A7D0A0A2F2A2068656C7065722066756E6374696F6E20666F722074686520766172696F7573207265636569766550726F746F636F6C206D6574686F6473202A2F0A73746174696320696E6C696E6520756E7369676E656420696E74206469666628696E7420412C20696E74204229207B0A2020202072657475726E206162732841202D2042293B0A7D0A0A2F2A2A0A202A0A202A2F0A626F6F6C2052435377697463683A3A7265636569766550726F746F636F6C28636F6E737420696E7420702C20756E7369676E656420696E74206368616E6765436F756E7429207B0A0A2020202050726F746F636F6C2070726F3B0A202020206D656D6370795F50282670726F2C202670726F746F5B702D315D2C2073697A656F662850726F746F636F6C29293B0A0A20202020756E7369676E6564206C6F6E6720636F6465203D20303B0A20202020636F6E737420756E7369676E656420696E742064656C6179203D2052435377697463683A3A74696D696E67735B305D202F2070726F2E73796E63466163746F722E6C6F773B0A20202020636F6E737420756E7369676E656420696E742064656C6179546F6C6572616E6365203D2064656C6179202A2052435377697463683A3A6E52656365697665546F6C6572616E6365202F203130303B0A0A20202020666F722028756E7369676E656420696E742069203D20313B2069203C206368616E6765436F756E743B2069202B3D203229207B0A2020202020202020636F6465203C3C3D20313B0A202020202020202069662028646966662852435377697463683A3A74696D696E67735B695D2C2064656C6179202A2070726F2E7A65726F2E6869676829203C2064656C6179546F6C6572616E63652026260A202020202020202020202020646966662852435377697463683A3A74696D696E67735B69202B20315D2C2064656C6179202A2070726F2E7A65726F2E6C6F7729203C2064656C6179546F6C6572616E636529207B0A2020202020202020202020202F2F207A65726F0A20202020202020207D20656C73652069662028646966662852435377697463683A3A74696D696E67735B695D2C2064656C6179202A2070726F2E6F6E652E6869676829203C2064656C6179546F6C6572616E63652026260A20202020202020202020202020202020202020646966662852435377697463683A3A74696D696E67735B69202B20315D2C2064656C6179202A2070726F2E6F6E652E6C6F7729203C2064656C6179546F6C6572616E636529207B0A2020202020202020202020202F2F206F6E650A202020202020202020202020636F6465207C3D20313B0A20202020202020207D20656C7365207B0A2020202020202020202020202F2F204661696C65640A20202020202020202020202072657475726E2066616C73653B0A20202020202020207D0A202020207D0A0A20202020696620286368616E6765436F756E74203E203629207B202020202F2F2069676E6F7265203C20346269742076616C75657320617320746865726520617265206E6F20646576696365732073656E64696E6720346269742076616C756573203D3E206E6F6973650A202020202020202052435377697463683A3A6E526563656976656456616C7565203D20636F64653B0A202020202020202052435377697463683A3A6E52656365697665644269746C656E677468203D206368616E6765436F756E74202F20323B0A202020202020202052435377697463683A3A6E526563656976656444656C6179203D2064656C61793B0A202020202020202052435377697463683A3A6E526563656976656450726F746F636F6C203D20703B0A202020207D0A0A2020202072657475726E20747275653B0A7D0A0A766F69642052435377697463683A3A68616E646C65496E746572727570742829207B0A0A202073746174696320756E7369676E656420696E74206475726174696F6E3B0A202073746174696320756E7369676E656420696E74206368616E6765436F756E743B0A202073746174696320756E7369676E6564206C6F6E67206C61737454696D653B0A202073746174696320756E7369676E656420696E7420726570656174436F756E743B0A20200A0A20206C6F6E672074696D65203D206D6963726F7328293B0A20206475726174696F6E203D2074696D65202D206C61737454696D653B0A200A2020696620286475726174696F6E203E2052435377697463683A3A6E53657061726174696F6E4C696D69742026262064696666286475726174696F6E2C2052435377697463683A3A74696D696E67735B305D29203C2032303029207B0A20202020726570656174436F756E742B2B3B0A202020206368616E6765436F756E742D2D3B0A2020202069662028726570656174436F756E74203D3D203229207B0A09666F7228756E7369676E656420696E742069203D20313B2069203C206E756D50726F746F3B20692B2B2029207B0A0909696620287265636569766550726F746F636F6C28692C206368616E6765436F756E7429290A090909657869743B0A097D0A202020202020726570656174436F756E74203D20303B0A202020207D0A202020206368616E6765436F756E74203D20303B0A20207D20656C736520696620286475726174696F6E203E2052435377697463683A3A6E53657061726174696F6E4C696D697429207B0A202020206368616E6765436F756E74203D20303B0A20207D0A200A2020696620286368616E6765436F756E74203E3D2052435357495443485F4D41585F4348414E47455329207B0A202020206368616E6765436F756E74203D20303B0A20202020726570656174436F756E74203D20303B0A20207D0A202052435377697463683A3A74696D696E67735B6368616E6765436F756E742B2B5D203D206475726174696F6E3B0A20206C61737454696D65203D2074696D653B20200A7D0A23656E6469660A0A2F2A2A0A20202A205475726E73206120646563696D616C2076616C756520746F206974732062696E61727920726570726573656E746174696F6E0A20202A2F0A636861722A2052435377697463683A3A6465633262696E576368617266696C6C28756E7369676E6564206C6F6E67206465632C20756E7369676E656420696E74206269744C656E6774682C20636861722066696C6C29207B0A202073746174696320636861722062696E5B33325D3B0A0A202062696E5B6269744C656E6774685D203D20275C30273B0A20207768696C6520286269744C656E677468203E203029207B0A202020206269744C656E6774682D2D3B0A2020202062696E5B6269744C656E6774685D203D20286465632026203129203F20273127203A2066696C6C3B0A20202020646563203E3E3D20313B0A20207D0A0A202072657475726E2062696E3B0A7D0A .cpp RCSwitch 2F2A0A20205243537769746368202D2041726475696E6F206C696261727920666F722072656D6F746520636F6E74726F6C206F75746C65742073776974636865730A2020436F70797269676874202863292032303131205375617420C3967A67C3BC722E2020416C6C2072696768742072657365727665642E0A0A2020436F6E7472696275746F72733A0A20202D20416E647265204B6F65686C6572202F20696E666F28617429746F6D6174652D6F6E6C696E6528646F742964650A20202D20476F726465657620416E6472657920566C6164696D69726F76696368202F20676F7264656576286174296F70656E7079726F28646F7429636F6D0A20202D20536B696E656666656374202F20687474703A2F2F666F72756D2E617264756D6F74652E636F6D2F76696577746F7069632E7068703F663D3226743D34360A20202D20446F6D696E696B2046697363686572202F20646F6D5F666973636865722861742977656228646F742964650A20202D204672616E6B204F6C746D616E6E73202F203C6669727374206E616D653E2E3C6C617374206E616D653E28617429676D61696C28646F7429636F6D0A20202D204D617820486F726E202F206D6178286174297175656E646928646F742964650A20202D20526F6265727420746572205665686E202F203C6669727374206E616D653E2E3C6C617374206E616D653E28617429676D61696C28646F7429636F6D0A20200A202050726F6A65637420686F6D653A2068747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F0A0A202054686973206C696272617279206973206672656520736F6674776172653B20796F752063616E2072656469737472696275746520697420616E642F6F720A20206D6F6469667920697420756E64657220746865207465726D73206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E7365206173207075626C697368656420627920746865204672656520536F66747761726520466F756E646174696F6E3B206569746865720A202076657273696F6E20322E31206F6620746865204C6963656E73652C206F722028617420796F7572206F7074696F6E2920616E79206C617465722076657273696F6E2E0A0A202054686973206C69627261727920697320646973747269627574656420696E2074686520686F706520746861742069742077696C6C2062652075736566756C2C0A202062757420574954484F555420414E592057415252414E54593B20776974686F7574206576656E2074686520696D706C6965642077617272616E7479206F660A20204D45524348414E544142494C495459206F72204649544E45535320464F52204120504152544943554C415220505552504F53452E20205365652074686520474E550A20204C65737365722047656E6572616C205075626C6963204C6963656E736520666F72206D6F72652064657461696C732E0A0A2020596F752073686F756C642068617665207265636569766564206120636F7079206F662074686520474E55204C65737365722047656E6572616C205075626C69630A20204C6963656E736520616C6F6E6720776974682074686973206C6962726172793B206966206E6F742C20777269746520746F20746865204672656520536F6674776172650A2020466F756E646174696F6E2C20496E632E2C203531204672616E6B6C696E2053742C20466966746820466C6F6F722C20426F73746F6E2C204D41202030323131302D3133303120205553410A2A2F0A2369666E646566205F52435377697463685F680A23646566696E65205F52435377697463685F680A0A23696620646566696E65642841524455494E4F292026262041524455494E4F203E3D203130300A2020202023696E636C756465202241726475696E6F2E68220A23656C696620646566696E656428454E455247494129202F2F204C61756E63685061642C20467261756E636850616420616E64205374656C6C61725061642073706563696669630A2020202023696E636C7564652022456E65726769612E68220A23656C696620646566696E65642852504929202F2F205261737062657272792050690A2020202023646566696E652052617370626572727950690A202020202F2F2050524F474D454D206F6368205F502066756E6374696F6E732061726520666F7220415652206261736564206D6963726F70726F636573736F72732C0A202020202F2F20736F207765206D757374206E6F726D616C697A6520746865736520666F72207468652041524D2070726F636573736F723A0A2020202023646566696E652050524F474D454D0A2020202023646566696E65206D656D6370795F5028646573742C207372632C206E756D29206D656D637079282864657374292C2028737263292C20286E756D29290A202020202F2F20496E636C756465206C696272617269657320666F72205250693A0A2020202023696E636C756465203C737472696E672E683E202F2A206D656D637079202A2F0A2020202023696E636C756465203C7374646C69622E683E202F2A20616273202A2F0A2020202023696E636C756465203C7374646465662E683E202F2A204E554C4C202A2F0A2020202023696E636C756465203C776972696E6750692E683E0A2020202023696E636C756465203C737464696E742E683E0A2020202023646566696E65204348414E474520310A202020202F2F2054686520666F6C6C6F77696E6720747970656465667320617265206E656564656420746F2062652061626C6520746F20636F6D70696C652052435377697463682E6370700A202020202F2F2077697468207468652052506920432B2B20636F6D70696C65722028672B2B290A20202020236966646566205F5F63706C7573706C75730A202020202020202065787465726E202243227B0A2020202023656E6469660A2020202020202020747970656465662075696E74385F7420626F6F6C65616E3B0A2020202020202020747970656465662075696E74385F7420627974653B0A20202020236966646566205F5F63706C7573706C75730A202020207D0A2020202023656E6469660A202020202F2F204C617374206C696E652077697468696E2052617370626572727920506920626C6F636B0A23656C73650A2020202023696E636C75646520225750726F6772616D2E68220A23656E6469660A0A0A2F2F204174206C6561737420666F722074686520415454696E792058342F58352C20726563656976696E672068617320746F2062652064697361626C65642064756520746F0A2F2F206D697373696E67206C69626D20646570656E636965732028756469766D6F64686934290A23696620646566696E656428205F5F4156525F415474696E7958355F5F2029206F7220646566696E65642028205F5F4156525F415474696E7958345F5F20290A23646566696E6520524353776974636844697361626C65526563656976696E670A23656E6469660A0A2F2F204E756D626572206F66206D6178696D756D20486967682F4C6F77206368616E67657320706572207061636B65742E0A2F2F2057652063616E2068616E646C6520757020746F2028756E7369676E6564206C6F6E6729203D3E20333220626974202A203220482F4C206368616E6765732070657220626974202B203220666F722073796E630A23646566696E652052435357495443485F4D41585F4348414E4745532036370A0A636C617373205243537769746368207B0A0A20207075626C69633A0A20202020524353776974636828293B0A202020200A20202020766F6964207377697463684F6E28696E74206E47726F75704E756D6265722C20696E74206E5377697463684E756D626572293B0A20202020766F6964207377697463684F666628696E74206E47726F75704E756D6265722C20696E74206E5377697463684E756D626572293B0A20202020766F6964207377697463684F6E28636F6E737420636861722A207347726F75702C20696E74206E5377697463684E756D626572293B0A20202020766F6964207377697463684F666628636F6E737420636861722A207347726F75702C20696E74206E5377697463684E756D626572293B0A20202020766F6964207377697463684F6E2863686172207346616D696C792C20696E74206E47726F75702C20696E74206E446576696365293B0A20202020766F6964207377697463684F66662863686172207346616D696C792C20696E74206E47726F75702C20696E74206E446576696365293B0A20202020766F6964207377697463684F6E28636F6E737420636861722A207347726F75702C20636F6E737420636861722A2073446576696365293B0A20202020766F6964207377697463684F666628636F6E737420636861722A207347726F75702C20636F6E737420636861722A2073446576696365293B0A20202020766F6964207377697463684F6E2863686172207347726F75702C20696E74206E446576696365293B0A20202020766F6964207377697463684F66662863686172207347726F75702C20696E74206E446576696365293B0A0A20202020766F69642073656E64547269537461746528636F6E737420636861722A20436F6465293B0A20202020766F69642073656E6428756E7369676E6564206C6F6E6720436F64652C20756E7369676E656420696E74206C656E677468293B0A20202020766F69642073656E6428636F6E737420636861722A20436F6465293B0A202020200A20202020236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A20202020766F696420656E61626C655265636569766528696E7420696E74657272757074293B0A20202020766F696420656E61626C655265636569766528293B0A20202020766F69642064697361626C655265636569766528293B0A20202020626F6F6C20617661696C61626C6528293B0A20202020766F6964207265736574417661696C61626C6528293B0A0A20202020756E7369676E6564206C6F6E6720676574526563656976656456616C756528293B0A20202020756E7369676E656420696E742067657452656365697665644269746C656E67746828293B0A20202020756E7369676E656420696E7420676574526563656976656444656C617928293B0A20202020756E7369676E656420696E7420676574526563656976656450726F746F636F6C28293B0A20202020756E7369676E656420696E742A2067657452656365697665645261776461746128293B0A2020202023656E6469660A20200A20202020766F696420656E61626C655472616E736D697428696E74206E5472616E736D697474657250696E293B0A20202020766F69642064697361626C655472616E736D697428293B0A20202020766F69642073657450756C73654C656E67746828696E74206E50756C73654C656E677468293B0A20202020766F6964207365745265706561745472616E736D697428696E74206E5265706561745472616E736D6974293B0A20202020236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A20202020766F69642073657452656365697665546F6C6572616E636528696E74206E50657263656E74293B0A2020202023656E6469660A0A2020202073747275637420486967684C6F77207B0A20202020202020206279746520686967683B0A202020202020202062797465206C6F773B0A202020207D3B0A0A202020207374727563742050726F746F636F6C207B0A2020202020202020696E742070756C73654C656E6774683B0A2020202020202020486967684C6F772073796E63466163746F723B0A2020202020202020486967684C6F77207A65726F3B0A2020202020202020486967684C6F77206F6E653B0A202020207D3B0A0A20202020766F69642073657450726F746F636F6C2850726F746F636F6C2070726F746F636F6C293B0A20202020766F69642073657450726F746F636F6C28696E74206E50726F746F636F6C293B0A20202020766F69642073657450726F746F636F6C28696E74206E50726F746F636F6C2C20696E74206E50756C73654C656E677468293B0A0A2020707269766174653A0A20202020636861722A20676574436F6465576F72644228696E74206E47726F75704E756D6265722C20696E74206E5377697463684E756D6265722C20626F6F6C65616E2062537461747573293B0A20202020636861722A20676574436F6465576F72644128636F6E737420636861722A207347726F75702C20696E74206E5377697463684E756D6265722C20626F6F6C65616E2062537461747573293B0A20202020636861722A20676574436F6465576F72644128636F6E737420636861722A207347726F75702C20636F6E737420636861722A20734465766963652C20626F6F6C65616E2062537461747573293B0A20202020636861722A20676574436F6465576F7264432863686172207346616D696C792C20696E74206E47726F75702C20696E74206E4465766963652C20626F6F6C65616E2062537461747573293B0A20202020636861722A20676574436F6465576F72644428636861722067726F75702C20696E74206E4465766963652C20626F6F6C65616E2062537461747573293B0A20202020766F69642073656E64543028293B0A20202020766F69642073656E64543128293B0A20202020766F69642073656E64544628293B0A20202020766F69642073656E643028293B0A20202020766F69642073656E643128293B0A20202020766F69642073656E6453796E6328293B0A20202020766F6964207472616E736D697428696E74206E4869676850756C7365732C20696E74206E4C6F7750756C736573293B0A20202020766F6964207472616E736D697428486967684C6F772070756C736573293B0A0A2020202073746174696320636861722A206465633262696E576368617266696C6C28756E7369676E6564206C6F6E67206465632C20756E7369676E656420696E74206C656E6774682C20636861722066696C6C293B0A202020200A20202020236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A2020202073746174696320766F69642068616E646C65496E7465727275707428293B0A2020202073746174696320626F6F6C207265636569766550726F746F636F6C28636F6E737420696E7420702C20756E7369676E656420696E74206368616E6765436F756E74293B0A20202020696E74206E5265636569766572496E746572727570743B0A2020202023656E6469660A20202020696E74206E5472616E736D697474657250696E3B0A20202020696E74206E5265706561745472616E736D69743B0A202020200A2020202050726F746F636F6C2070726F746F636F6C3B0A0A20202020236966206E6F7420646566696E65642820524353776974636844697361626C65526563656976696E6720290A2020202073746174696320696E74206E52656365697665546F6C6572616E63653B0A2020202073746174696320756E7369676E6564206C6F6E67206E526563656976656456616C75653B0A2020202073746174696320756E7369676E656420696E74206E52656365697665644269746C656E6774683B0A2020202073746174696320756E7369676E656420696E74206E526563656976656444656C61793B0A2020202073746174696320756E7369676E656420696E74206E526563656976656450726F746F636F6C3B0A20202020636F6E73742073746174696320756E7369676E656420696E74206E53657061726174696F6E4C696D69743B0A202020202F2A200A20202020202A2074696D696E67735B305D20636F6E7461696E732073796E632074696D696E672C20666F6C6C6F7765642062792061206E756D626572206F6620626974730A20202020202A2F0A2020202073746174696320756E7369676E656420696E742074696D696E67735B52435357495443485F4D41585F4348414E4745535D3B0A2020202023656E6469660A0A202020200A7D3B0A0A23656E6469660A .h README 232072632D7377697463680A5B215B4275696C64205374617475735D2868747470733A2F2F7472617669732D63692E6F72672F73756937372F72632D7377697463682E7376673F6272616E63683D6D6173746572295D2868747470733A2F2F7472617669732D63692E6F72672F73756937372F72632D737769746368290A0A55736520796F75722041726475696E6F206F722052617370626572727920506920746F206F7065726174652072656D6F746520726164696F20636F6E74726F6C6C656420646576696365730A0A232320446F776E6C6F61640A68747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F72656C65617365732F6C61746573740A0A23232057696B690A68747470733A2F2F6769746875622E636F6D2F73756937372F72632D7377697463682F77696B690A0A232320496E666F0A2323232053656E6420524320636F6465730A0A55736520796F75722041726475696E6F206F722052617370626572727920506920746F206F7065726174652072656D6F746520726164696F20636F6E74726F6C6C656420646576696365732E0A546869732077696C6C206D6F7374206C696B656C7920776F726B207769746820616C6C20706F70756C6172206C6F7720636F737420706F776572206F75746C657420736F636B6574732E2049660A796F75727320646F65736E277420776F726B2C20796F75206D69676874206E65656420746F2061646A757374207468652070756C7365206C656E6774682E0A0A416C6C20796F75206E65656420697320612041726475696E6F206F72205261737062657272792050692C2061203331352F3433334D487A20414D207472616E736D697474657220616E64206F6E650A6F72206D6F726520646576696365732077697468206F6E65206F662074686520737570706F727465642063686970736574733A0A0A202D20534335323632202F205343353237320A202D20485832323632202F204858323237320A202D20505432323632202F205054323237320A202D20455631353237202F20525431353237202F20465031353237202F20485331353237200A202D20496E746572746563686E6F206F75746C6574730A0A232323205265636569766520616E64206465636F646520524320636F6465730A0A46696E64206F7574207768617420636F64657320796F75722072656D6F74652069732073656E64696E672E2055736520796F75722072656D6F746520746F20636F6E74726F6C20796F75720A41726475696E6F2E0A0A416C6C20796F75206E65656420697320616E2041726475696E6F2C2061203331352F3433334D487A20414D2072656365697665722028616C746F756768207468657265206973206E6F0A696E737472756374696F6E207965742C2079657320697420697320706F737369626C6520746F206861636B20616E206578697374696E67206465766963652920616E6420612072656D6F74650A68616E64207365742E0A0A466F7220746865205261737062657272792050692C20636C6F6E65207468652068747470733A2F2F6769746875622E636F6D2F6E696E6A61626C6F636B732F3433335574696C732070726F6A65637420746F0A636F6D70696C65206120736E696666657220746F6F6C20616E64207472616E736D697373696F6E20636F6D6D616E64732E0A .md 57dcb0ee-335b-49b0-bc0e-249441c89916 db2d00fe-dcb1-4f54-9928-853b7d3b5504 if (mySwitch.available()) { output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol()); mySwitch.resetAvailable(); } 228 mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2 74 {static char bin[64]; unsigned int i=0; while (Dec > 0) { bin[32+i++] = (Dec & 1 > 0) ? '1' : '0'; Dec = Dec >> 1; } for (unsigned int j = 0; j< bitLength; j++) { if (j >= bitLength - i) { bin[j] = bin[ 31 + i - (j - (bitLength - i)) ]; }else { bin[j] = '0'; } } bin[bitLength] = '\0'; return bin; } 351 static char * dec2binWzerofill unsigned long Dec unsigned int bitLength { if (decimal == 0) { Serial.print("Unknown encoding."); } else { char* b = dec2binWzerofill(decimal, length); Serial.print("Decimal: "); Serial.print(decimal); Serial.print(" ("); Serial.print( length ); Serial.print("Bit) Binary: "); Serial.print( b ); Serial.print(" Tri-State: "); Serial.print( bin2tristate( b) ); Serial.print(" PulseLength: "); Serial.print(delay); Serial.print(" microseconds"); Serial.print(" Protocol: "); Serial.println(protocol); } Serial.print("Raw data: "); for (int i=0; i<= length*2; i++) { Serial.print(raw[i]); Serial.print(","); } Serial.println(); Serial.println(); } 691 void output unsigned long decimal unsigned int length unsigned int delay unsigned int* raw unsigned int protocol { char returnValue[50]; int pos = 0; int pos2 = 0; while (bin[pos]!='\0' && bin[pos+1]!='\0') { if (bin[pos]=='0' && bin[pos+1]=='0') { returnValue[pos2] = '0'; } else if (bin[pos]=='1' && bin[pos+1]=='1') { returnValue[pos2] = '1'; } else if (bin[pos]=='0' && bin[pos+1]=='1') { returnValue[pos2] = 'F'; } else { return "not applicable"; } pos = pos+2; pos2++; } returnValue[pos2] = '\0'; return returnValue; } 478 static char* bin2tristate char* bin