60c06040526001600560146101000a81548160ff0219169083151502179055505f600560156101000a81548160ff0219169083151502179055505f600560166101000a81548160ff0219169083151502179055503480156200005f575f80fd5b506040518060400160405280600f81526020017f4368726973746d617320456c76657300000000000000000000000000000000008152506040518060400160405280600381526020017f454c4600000000000000000000000000000000000000000000000000000000008152508160039081620000dd919062000c88565b508060049081620000ef919062000c88565b5050506200011262000106620004fc60201b60201c565b6200050360201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90506200013d816001620005c660201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e1919062000dd1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026d919062000dd1565b6040518363ffffffff1660e01b81526004016200028c92919062000e12565b6020604051808303815f875af1158015620002a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000dd1565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200031760a0516001620005c660201b60201c565b6200032c60a0516001620006ad60201b60201c565b5f6b033a5a7a8401b34f47000000905060646001826200034d919062000e6a565b62000359919062000ee1565b600681905550606460018262000370919062000e6a565b6200037c919062000ee1565b60088190555061271060018262000394919062000e6a565b620003a0919062000ee1565b600781905550620003c8620003ba6200074b60201b60201c565b60016200077360201b60201c565b620003db3060016200077360201b60201c565b620003f061dead60016200077360201b60201c565b62000412620004046200074b60201b60201c565b6001620005c660201b60201c565b62000425306001620005c660201b60201c565b6200043a61dead6001620005c660201b60201c565b73b8e69aa0dcddaee8647a1faae94d0600c0b92a0860135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507338c6f383d4fe94d694e7d3a32c05fd58627c80fa60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004f43382620008aa60201b60201c565b5050620010a1565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005d6620004fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005fc6200074b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064c9062000f76565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000783620004fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007a96200074b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000802576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f99062000f76565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200089e919062000fb2565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200091b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000912906200101b565b60405180910390fd5b6200092e5f838362000a1a60201b60201c565b8060025f8282546200094191906200103b565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200099591906200103b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009fb919062001086565b60405180910390a362000a165f838362000a1f60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000aa057607f821691505b60208210810362000ab65762000ab562000a5b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000add565b62000b26868362000add565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b7062000b6a62000b648462000b3e565b62000b47565b62000b3e565b9050919050565b5f819050919050565b62000b8b8362000b50565b62000ba362000b9a8262000b77565b84845462000ae9565b825550505050565b5f90565b62000bb962000bab565b62000bc681848462000b80565b505050565b5b8181101562000bed5762000be15f8262000baf565b60018101905062000bcc565b5050565b601f82111562000c3c5762000c068162000abc565b62000c118462000ace565b8101602085101562000c21578190505b62000c3962000c308562000ace565b83018262000bcb565b50505b505050565b5f82821c905092915050565b5f62000c5e5f198460080262000c41565b1980831691505092915050565b5f62000c78838362000c4d565b9150826002028217905092915050565b62000c938262000a24565b67ffffffffffffffff81111562000caf5762000cae62000a2e565b5b62000cbb825462000a88565b62000cc882828562000bf1565b5f60209050601f83116001811462000cfe575f841562000ce9578287015190505b62000cf5858262000c6b565b86555062000d64565b601f19841662000d0e8662000abc565b5f5b8281101562000d375784890151825560018201915060208501945060208101905062000d10565b8683101562000d57578489015162000d53601f89168262000c4d565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000d9b8262000d70565b9050919050565b62000dad8162000d8f565b811462000db8575f80fd5b50565b5f8151905062000dcb8162000da2565b92915050565b5f6020828403121562000de95762000de862000d6c565b5b5f62000df88482850162000dbb565b91505092915050565b62000e0c8162000d8f565b82525050565b5f60408201905062000e275f83018562000e01565b62000e36602083018462000e01565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000e768262000b3e565b915062000e838362000b3e565b925082820262000e938162000b3e565b9150828204841483151762000ead5762000eac62000e3d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000eed8262000b3e565b915062000efa8362000b3e565b92508262000f0d5762000f0c62000eb4565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000f5e60208362000f18565b915062000f6b8262000f28565b602082019050919050565b5f6020820190508181035f83015262000f8f8162000f50565b9050919050565b5f8115159050919050565b62000fac8162000f96565b82525050565b5f60208201905062000fc75f83018462000fa1565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001003601f8362000f18565b9150620010108262000fcd565b602082019050919050565b5f6020820190508181035f830152620010348162000ff5565b9050919050565b5f620010478262000b3e565b9150620010548362000b3e565b92508282019050808211156200106f576200106e62000e3d565b5b92915050565b620010808162000b3e565b82525050565b5f6020820190506200109b5f83018462001075565b92915050565b60805160a051614194620010df5f395f8181610d2101526114b101525f8181610a3e01528181612907015281816129e60152612a0d01526141945ff3fe608060405260043610610249575f3560e01c80637571336a11610138578063b62496f5116100b5578063d257b34f11610079578063d257b34f14610854578063d85ba06314610890578063dd62ed3e146108ba578063e2f45605146108f6578063f2fde38b14610920578063f8b45b051461094857610250565b8063b62496f514610774578063bbc0c742146107b0578063c0246668146107da578063c18bc19514610802578063c8c8ebe41461082a57610250565b8063924de9b7116100fc578063924de9b71461068257806395d89b41146106aa5780639a7a23d6146106d4578063a457c2d7146106fc578063a9059cbb1461073857610250565b80637571336a146105c8578063881dce60146105f05780638a8c523c146106185780638da5cb5b1461062e578063921369131461065857610250565b806349bd5a5e116101c657806370a082311161018a57806370a08231146104fc578063715018a61461053857806372b0d6751461054e578063746e73a614610576578063751039fc1461059e57610250565b806349bd5a5e1461043e5780634a62bb65146104685780636a486a8e146104925780636ddd1713146104bc5780636fc3eaec146104e657610250565b8063203e727e1161020d578063203e727e1461034a57806323b872dd1461037257806327c8f835146103ae578063313ce567146103d8578063395093511461040257610250565b806306fdde0314610254578063095ea7b31461027e57806310d5de53146102ba5780631694505e146102f657806318160ddd1461032057610250565b3661025057005b5f80fd5b34801561025f575f80fd5b50610268610972565b6040516102759190612fe4565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190613095565b610a02565b6040516102b191906130ed565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db9190613106565b610a1f565b6040516102ed91906130ed565b60405180910390f35b348015610301575f80fd5b5061030a610a3c565b604051610317919061318c565b60405180910390f35b34801561032b575f80fd5b50610334610a60565b60405161034191906131b4565b60405180910390f35b348015610355575f80fd5b50610370600480360381019061036b91906131cd565b610a69565b005b34801561037d575f80fd5b50610398600480360381019061039391906131f8565b610b78565b6040516103a591906130ed565b60405180910390f35b3480156103b9575f80fd5b506103c2610c6a565b6040516103cf9190613257565b60405180910390f35b3480156103e3575f80fd5b506103ec610c70565b6040516103f9919061328b565b60405180910390f35b34801561040d575f80fd5b5061042860048036038101906104239190613095565b610c78565b60405161043591906130ed565b60405180910390f35b348015610449575f80fd5b50610452610d1f565b60405161045f9190613257565b60405180910390f35b348015610473575f80fd5b5061047c610d43565b60405161048991906130ed565b60405180910390f35b34801561049d575f80fd5b506104a6610d56565b6040516104b391906131b4565b60405180910390f35b3480156104c7575f80fd5b506104d0610d5c565b6040516104dd91906130ed565b60405180910390f35b3480156104f1575f80fd5b506104fa610d6f565b005b348015610507575f80fd5b50610522600480360381019061051d9190613106565b610dfd565b60405161052f91906131b4565b60405180910390f35b348015610543575f80fd5b5061054c610e42565b005b348015610559575f80fd5b50610574600480360381019061056f91906131cd565b610ec9565b005b348015610581575f80fd5b5061059c600480360381019061059791906131cd565b610f58565b005b3480156105a9575f80fd5b506105b2610fe7565b6040516105bf91906130ed565b60405180910390f35b3480156105d3575f80fd5b506105ee60048036038101906105e991906132ce565b611085565b005b3480156105fb575f80fd5b50610616600480360381019061061191906131cd565b611159565b005b348015610623575f80fd5b5061062c61121a565b005b348015610639575f80fd5b506106426112dc565b60405161064f9190613257565b60405180910390f35b348015610663575f80fd5b5061066c611304565b60405161067991906131b4565b60405180910390f35b34801561068d575f80fd5b506106a860048036038101906106a3919061330c565b61130a565b005b3480156106b5575f80fd5b506106be6113a3565b6040516106cb9190612fe4565b60405180910390f35b3480156106df575f80fd5b506106fa60048036038101906106f591906132ce565b611433565b005b348015610707575f80fd5b50610722600480360381019061071d9190613095565b61154b565b60405161072f91906130ed565b60405180910390f35b348015610743575f80fd5b5061075e60048036038101906107599190613095565b611631565b60405161076b91906130ed565b60405180910390f35b34801561077f575f80fd5b5061079a60048036038101906107959190613106565b61164e565b6040516107a791906130ed565b60405180910390f35b3480156107bb575f80fd5b506107c461166b565b6040516107d191906130ed565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb91906132ce565b61167e565b005b34801561080d575f80fd5b50610828600480360381019061082391906131cd565b6117a0565b005b348015610835575f80fd5b5061083e6118af565b60405161084b91906131b4565b60405180910390f35b34801561085f575f80fd5b5061087a600480360381019061087591906131cd565b6118b5565b60405161088791906130ed565b60405180910390f35b34801561089b575f80fd5b506108a4611a09565b6040516108b191906131b4565b60405180910390f35b3480156108c5575f80fd5b506108e060048036038101906108db9190613337565b611a0f565b6040516108ed91906131b4565b60405180910390f35b348015610901575f80fd5b5061090a611a91565b60405161091791906131b4565b60405180910390f35b34801561092b575f80fd5b5061094660048036038101906109419190613106565b611a97565b005b348015610953575f80fd5b5061095c611b8d565b60405161096991906131b4565b60405180910390f35b606060038054610981906133a2565b80601f01602080910402602001604051908101604052809291908181526020018280546109ad906133a2565b80156109f85780601f106109cf576101008083540402835291602001916109f8565b820191905f5260205f20905b8154815290600101906020018083116109db57829003601f168201915b5050505050905090565b5f610a15610a0e611b93565b8484611b9a565b6001905092915050565b600d602052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610a71611b93565b73ffffffffffffffffffffffffffffffffffffffff16610a8f6112dc565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc9061341c565b60405180910390fd5b670de0b6b3a76400006103e86001610afb610a60565b610b059190613467565b610b0f91906134d5565b610b1991906134d5565b811015610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5290613575565b60405180910390fd5b670de0b6b3a764000081610b6f9190613467565b60068190555050565b5f610b84848484611d5d565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610bcb611b93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190613603565b60405180910390fd5b610c5e85610c56611b93565b858403611b9a565b60019150509392505050565b61dead81565b5f6012905090565b5f610d15610c84611b93565b848460015f610c91611b93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d109190613621565b611b9a565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600560149054906101000a900460ff1681565b60115481565b600560169054906101000a900460ff1681565b5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610db590613681565b5f6040518083038185875af1925050503d805f8114610def576040519150601f19603f3d011682016040523d82523d5f602084013e610df4565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e4a611b93565b73ffffffffffffffffffffffffffffffffffffffff16610e686112dc565b73ffffffffffffffffffffffffffffffffffffffff1614610ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb59061341c565b60405180910390fd5b610ec75f6127a7565b565b610ed1611b93565b73ffffffffffffffffffffffffffffffffffffffff16610eef6112dc565b73ffffffffffffffffffffffffffffffffffffffff1614610f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3c9061341c565b60405180910390fd5b80601081905550601054600f8190555050565b610f60611b93565b73ffffffffffffffffffffffffffffffffffffffff16610f7e6112dc565b73ffffffffffffffffffffffffffffffffffffffff1614610fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcb9061341c565b60405180910390fd5b8060128190555060125460118190555050565b5f610ff0611b93565b73ffffffffffffffffffffffffffffffffffffffff1661100e6112dc565b73ffffffffffffffffffffffffffffffffffffffff1614611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b9061341c565b60405180910390fd5b5f600560146101000a81548160ff0219169083151502179055506001905090565b61108d611b93565b73ffffffffffffffffffffffffffffffffffffffff166110ab6112dc565b73ffffffffffffffffffffffffffffffffffffffff1614611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f89061341c565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611199611b93565b73ffffffffffffffffffffffffffffffffffffffff16146111b8575f80fd5b6111c130610dfd565b81111580156111cf57505f81115b61120e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611205906136df565b60405180910390fd5b6112178161286a565b50565b611222611b93565b73ffffffffffffffffffffffffffffffffffffffff166112406112dc565b73ffffffffffffffffffffffffffffffffffffffff1614611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d9061341c565b60405180910390fd5b6001600560156101000a81548160ff0219169083151502179055506001600560166101000a81548160ff0219169083151502179055504360098190555042600a81905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b611312611b93565b73ffffffffffffffffffffffffffffffffffffffff166113306112dc565b73ffffffffffffffffffffffffffffffffffffffff1614611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d9061341c565b60405180910390fd5b80600560166101000a81548160ff02191690831515021790555050565b6060600480546113b2906133a2565b80601f01602080910402602001604051908101604052809291908181526020018280546113de906133a2565b80156114295780601f1061140057610100808354040283529160200191611429565b820191905f5260205f20905b81548152906001019060200180831161140c57829003601f168201915b5050505050905090565b61143b611b93565b73ffffffffffffffffffffffffffffffffffffffff166114596112dc565b73ffffffffffffffffffffffffffffffffffffffff16146114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a69061341c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361153d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115349061376d565b60405180910390fd5b6115478282612a9d565b5050565b5f8060015f611558611b93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611612576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611609906137fb565b60405180910390fd5b61162661161d611b93565b85858403611b9a565b600191505092915050565b5f61164461163d611b93565b8484611d5d565b6001905092915050565b600e602052805f5260405f205f915054906101000a900460ff1681565b600560159054906101000a900460ff1681565b611686611b93565b73ffffffffffffffffffffffffffffffffffffffff166116a46112dc565b73ffffffffffffffffffffffffffffffffffffffff16146116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f19061341c565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161179491906130ed565b60405180910390a25050565b6117a8611b93565b73ffffffffffffffffffffffffffffffffffffffff166117c66112dc565b73ffffffffffffffffffffffffffffffffffffffff161461181c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118139061341c565b60405180910390fd5b670de0b6b3a76400006103e86005611832610a60565b61183c9190613467565b61184691906134d5565b61185091906134d5565b811015611892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188990613889565b60405180910390fd5b670de0b6b3a7640000816118a69190613467565b60088190555050565b60065481565b5f6118be611b93565b73ffffffffffffffffffffffffffffffffffffffff166118dc6112dc565b73ffffffffffffffffffffffffffffffffffffffff1614611932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119299061341c565b60405180910390fd5b620186a06001611940610a60565b61194a9190613467565b61195491906134d5565b821015611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d90613917565b60405180910390fd5b6103e8600a6119a3610a60565b6119ad9190613467565b6119b791906134d5565b8211156119f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f0906139a5565b60405180910390fd5b8160078190555060019050919050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b611a9f611b93565b73ffffffffffffffffffffffffffffffffffffffff16611abd6112dc565b73ffffffffffffffffffffffffffffffffffffffff1614611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a9061341c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7890613a33565b60405180910390fd5b611b8a816127a7565b50565b60085481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff90613ac1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613b4f565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d5091906131b4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc290613bdd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3090613c6b565b60405180910390fd5b5f8103611e5057611e4b83835f612b3b565b6127a2565b5f439050600560149054906101000a900460ff16156123d857611e716112dc565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611edf5750611eaf6112dc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f1757505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f51575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f6a5750600560179054906101000a900460ff16155b156123d7578060095410611f9f576019601081905550601054600f81905550602360128190555060125460118190555061200e565b60095481118015611fbe5750601e600954611fba9190613621565b8111155b15611fea57600f601081905550601054600f81905550601960128190555060125460118190555061200d565b6002601081905550601054600f8190555060026012819055506012546011819055505b5b600560159054906101000a900460ff166120fd57600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806120bd5750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390613cd3565b60405180910390fd5b5b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561219a5750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612241576006548211156121e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121db90613d61565b60405180910390fd5b6008546121f084610dfd565b836121fb9190613621565b111561223c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223390613dc9565b60405180910390fd5b6123d6565b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156122de5750600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561232d57600654821115612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231f90613e57565b60405180910390fd5b6123d5565b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166123d45760085461238784610dfd565b836123929190613621565b11156123d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ca90613dc9565b60405180910390fd5b5b5b5b5b5b5f6123e230610dfd565b90505f60075482101590508080156124065750600560169054906101000a900460ff165b801561241f5750600560179054906101000a900460ff16155b801561243c57506002600c5f8581526020019081526020015f2054105b801561248f5750600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156124e25750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125355750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561259c576001600560176101000a81548160ff02191690831515021790555061255d612db0565b600c5f8481526020019081526020015f205f815461257a90613e75565b919050819055505f600560176101000a81548160ff0219169083151502179055505b5f600560179054906101000a900460ff16159050600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061264b5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612654575f90505b5f811561279157600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156126b257505f601154115b156126e6576126df60646126d160115489612f2690919063ffffffff16565b612f3b90919063ffffffff16565b905061276e565b600e5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561273d57505f600f54115b1561276d5761276a606461275c600f5489612f2690919063ffffffff16565b612f3b90919063ffffffff16565b90505b5b5f81111561278257612781883083612b3b565b5b808661278e9190613ebc565b95505b61279c888888612b3b565b50505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561288657612885613eef565b5b6040519080825280602002602001820160405280156128b45781602001602082028036833780820191505090505b50905030815f815181106128cb576128ca613f1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561296e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129929190613f5d565b816001815181106129a6576129a5613f1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a0b307f000000000000000000000000000000000000000000000000000000000000000084611b9a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612a6c959493929190614078565b5f604051808303815f87803b158015612a83575f80fd5b505af1158015612a95573d5f803e3d5ffd5b505050505050565b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba090613bdd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0e90613c6b565b60405180910390fd5b612c22838383612f50565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9c90614140565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612d339190613621565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d9791906131b4565b60405180910390a3612daa848484612f55565b50505050565b5f612dba30610dfd565b90505f808203612dcb575050612f24565b6014600754612dda9190613467565b821115612df3576014600754612df09190613467565b91505b5f829050612e008161286a565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600247612e4591906134d5565b604051612e5190613681565b5f6040518083038185875af1925050503d805f8114612e8b576040519150601f19603f3d011682016040523d82523d5f602084013e612e90565b606091505b50508092505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612edb90613681565b5f6040518083038185875af1925050503d805f8114612f15576040519150601f19603f3d011682016040523d82523d5f602084013e612f1a565b606091505b5050809250505050505b565b5f8183612f339190613467565b905092915050565b5f8183612f4891906134d5565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612f91578082015181840152602081019050612f76565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612fb682612f5a565b612fc08185612f64565b9350612fd0818560208601612f74565b612fd981612f9c565b840191505092915050565b5f6020820190508181035f830152612ffc8184612fac565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61303182613008565b9050919050565b61304181613027565b811461304b575f80fd5b50565b5f8135905061305c81613038565b92915050565b5f819050919050565b61307481613062565b811461307e575f80fd5b50565b5f8135905061308f8161306b565b92915050565b5f80604083850312156130ab576130aa613004565b5b5f6130b88582860161304e565b92505060206130c985828601613081565b9150509250929050565b5f8115159050919050565b6130e7816130d3565b82525050565b5f6020820190506131005f8301846130de565b92915050565b5f6020828403121561311b5761311a613004565b5b5f6131288482850161304e565b91505092915050565b5f819050919050565b5f61315461314f61314a84613008565b613131565b613008565b9050919050565b5f6131658261313a565b9050919050565b5f6131768261315b565b9050919050565b6131868161316c565b82525050565b5f60208201905061319f5f83018461317d565b92915050565b6131ae81613062565b82525050565b5f6020820190506131c75f8301846131a5565b92915050565b5f602082840312156131e2576131e1613004565b5b5f6131ef84828501613081565b91505092915050565b5f805f6060848603121561320f5761320e613004565b5b5f61321c8682870161304e565b935050602061322d8682870161304e565b925050604061323e86828701613081565b9150509250925092565b61325181613027565b82525050565b5f60208201905061326a5f830184613248565b92915050565b5f60ff82169050919050565b61328581613270565b82525050565b5f60208201905061329e5f83018461327c565b92915050565b6132ad816130d3565b81146132b7575f80fd5b50565b5f813590506132c8816132a4565b92915050565b5f80604083850312156132e4576132e3613004565b5b5f6132f18582860161304e565b9250506020613302858286016132ba565b9150509250929050565b5f6020828403121561332157613320613004565b5b5f61332e848285016132ba565b91505092915050565b5f806040838503121561334d5761334c613004565b5b5f61335a8582860161304e565b925050602061336b8582860161304e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806133b957607f821691505b6020821081036133cc576133cb613375565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613406602083612f64565b9150613411826133d2565b602082019050919050565b5f6020820190508181035f830152613433816133fa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61347182613062565b915061347c83613062565b925082820261348a81613062565b915082820484148315176134a1576134a061343a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134df82613062565b91506134ea83613062565b9250826134fa576134f96134a8565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f61355f602f83612f64565b915061356a82613505565b604082019050919050565b5f6020820190508181035f83015261358c81613553565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6135ed602883612f64565b91506135f882613593565b604082019050919050565b5f6020820190508181035f83015261361a816135e1565b9050919050565b5f61362b82613062565b915061363683613062565b925082820190508082111561364e5761364d61343a565b5b92915050565b5f81905092915050565b50565b5f61366c5f83613654565b91506136778261365e565b5f82019050919050565b5f61368b82613661565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f6136c9600c83612f64565b91506136d482613695565b602082019050919050565b5f6020820190508181035f8301526136f6816136bd565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613757603983612f64565b9150613762826136fd565b604082019050919050565b5f6020820190508181035f8301526137848161374b565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6137e5602583612f64565b91506137f08261378b565b604082019050919050565b5f6020820190508181035f830152613812816137d9565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613873602483612f64565b915061387e82613819565b604082019050919050565b5f6020820190508181035f8301526138a081613867565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f613901603583612f64565b915061390c826138a7565b604082019050919050565b5f6020820190508181035f83015261392e816138f5565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20312520746f74616c20737570706c792e0000000000000000000000000000602082015250565b5f61398f603283612f64565b915061399a82613935565b604082019050919050565b5f6020820190508181035f8301526139bc81613983565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613a1d602683612f64565b9150613a28826139c3565b604082019050919050565b5f6020820190508181035f830152613a4a81613a11565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613aab602483612f64565b9150613ab682613a51565b604082019050919050565b5f6020820190508181035f830152613ad881613a9f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b39602283612f64565b9150613b4482613adf565b604082019050919050565b5f6020820190508181035f830152613b6681613b2d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613bc7602583612f64565b9150613bd282613b6d565b604082019050919050565b5f6020820190508181035f830152613bf481613bbb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c55602383612f64565b9150613c6082613bfb565b604082019050919050565b5f6020820190508181035f830152613c8281613c49565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613cbd601683612f64565b9150613cc882613c89565b602082019050919050565b5f6020820190508181035f830152613cea81613cb1565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613d4b603583612f64565b9150613d5682613cf1565b604082019050919050565b5f6020820190508181035f830152613d7881613d3f565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613db3601383612f64565b9150613dbe82613d7f565b602082019050919050565b5f6020820190508181035f830152613de081613da7565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613e41603683612f64565b9150613e4c82613de7565b604082019050919050565b5f6020820190508181035f830152613e6e81613e35565b9050919050565b5f613e7f82613062565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613eb157613eb061343a565b5b600182019050919050565b5f613ec682613062565b9150613ed183613062565b9250828203905081811115613ee957613ee861343a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613f5781613038565b92915050565b5f60208284031215613f7257613f71613004565b5b5f613f7f84828501613f49565b91505092915050565b5f819050919050565b5f613fab613fa6613fa184613f88565b613131565b613062565b9050919050565b613fbb81613f91565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ff381613027565b82525050565b5f6140048383613fea565b60208301905092915050565b5f602082019050919050565b5f61402682613fc1565b6140308185613fcb565b935061403b83613fdb565b805f5b8381101561406b5781516140528882613ff9565b975061405d83614010565b92505060018101905061403e565b5085935050505092915050565b5f60a08201905061408b5f8301886131a5565b6140986020830187613fb2565b81810360408301526140aa818661401c565b90506140b96060830185613248565b6140c660808301846131a5565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61412a602683612f64565b9150614135826140d0565b604082019050919050565b5f6020820190508181035f8301526141578161411e565b905091905056fea264697066735822122047ae7b2a6d2265646af220d43a7967ae50225994045c307bab1b7b997c02563464736f6c63430008150033