60806040523480156200001157600080fd5b506040518060400160405280600781526020017f52656d6e616e74000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f52454d4e0000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000ca3565b508060049080519060200190620000af92919062000ca3565b505050620000d2620000c6620002d060201b60201c565b620002d860201b60201c565b620001117388e50b87f39e5abb4ef94ec3794314f74f31c63a670de0b6b3a7640000639502f90062000105919062000fa5565b6200039e60201b60201c565b620001507344e13ed3aae3bbb4f3cde8acaaf4d25036cc270a670de0b6b3a7640000639502f90062000144919062000fa5565b6200039e60201b60201c565b6200018f73c5522c9f6f3c9cd87bf74ede5424dcf3a4b8b29d670de0b6b3a76400006359682f0062000183919062000fa5565b6200039e60201b60201c565b620001ce7373b4eff6af5c7ea220403b009fff0c0da2d19c67670de0b6b3a7640000633b9aca00620001c2919062000fa5565b6200039e60201b60201c565b6200020d7365b903979cd209233a481b29cdd1f030612de605670de0b6b3a76400006332a9f88062000201919062000fa5565b6200039e60201b60201c565b6200024c73abe19e6fd481c424b00d3a8af70c77d7ae55e70d670de0b6b3a76400006329b9270062000240919062000fa5565b6200039e60201b60201c565b6200028b734a8cd013879c4d48c96eaa50de9af2969e297586670de0b6b3a7640000631dcd65006200027f919062000fa5565b6200039e60201b60201c565b620002ca737496e1d91f7dcad9a4889a9a023736850300fe97670de0b6b3a7640000631ad27480620002be919062000fa5565b6200039e60201b60201c565b620011e6565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000411576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004089062000ef8565b60405180910390fd5b62000425600083836200051760201b60201c565b806002600082825462000439919062000f48565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000490919062000f48565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004f7919062000f1a565b60405180910390a3620005136000838362000c6f60201b60201c565b5050565b600a60009054906101000a900460ff161562000c5257600a60029054906101000a900460ff161580156200058657506200055662000c7460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1562000c5157600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620006315750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b62000673576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200066a9062000e70565b60405180910390fd5b600a60179054906101000a900460ff1615620007c657600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614620007c557600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156200078c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15620007c4576040517fa5baf15100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b6007543a11156200080e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008059062000e92565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16600a60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562000a3157600854811115620008ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a49062000e4e565b60405180910390fd5b600654600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541062000933576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200092a9062000ed6565b60405180910390fd5b600a60019054906101000a900460ff16620009d2576001600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506040517ff387f38d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a24919062000f48565b9250508190555062000c50565b8173ffffffffffffffffffffffffffffffffffffffff16600a60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562000c4f5760095481111562000ad0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ac79062000eb4565b60405180910390fd5b600654600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541062000b56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b4d9062000ed6565b60405180910390fd5b600a60019054906101000a900460ff1662000bf5576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506040517ff387f38d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000c47919062000f48565b925050819055505b5b5b5b62000c6a83838362000c9e60201b62001aa31760201c565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b82805462000cb19062001010565b90600052602060002090601f01602090048101928262000cd5576000855562000d21565b82601f1062000cf057805160ff191683800117855562000d21565b8280016001018555821562000d21579182015b8281111562000d2057825182559160200191906001019062000d03565b5b50905062000d30919062000d34565b5090565b5b8082111562000d4f57600081600090555060010162000d35565b5090565b600062000d62601d8362000f37565b915062000d6f82620010a4565b602082019050919050565b600062000d89601a8362000f37565b915062000d9682620010cd565b602082019050919050565b600062000db060258362000f37565b915062000dbd82620010f6565b604082019050919050565b600062000dd760168362000f37565b915062000de48262001145565b602082019050919050565b600062000dfe602b8362000f37565b915062000e0b826200116e565b604082019050919050565b600062000e25601f8362000f37565b915062000e3282620011bd565b602082019050919050565b62000e488162001006565b82525050565b6000602082019050818103600083015262000e698162000d53565b9050919050565b6000602082019050818103600083015262000e8b8162000d7a565b9050919050565b6000602082019050818103600083015262000ead8162000da1565b9050919050565b6000602082019050818103600083015262000ecf8162000dc8565b9050919050565b6000602082019050818103600083015262000ef18162000def565b9050919050565b6000602082019050818103600083015262000f138162000e16565b9050919050565b600060208201905062000f31600083018462000e3d565b92915050565b600082825260208201905092915050565b600062000f558262001006565b915062000f628362001006565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f9a5762000f9962001046565b5b828201905092915050565b600062000fb28262001006565b915062000fbf8362001006565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ffb5762000ffa62001046565b5b828202905092915050565b6000819050919050565b600060028204905060018216806200102957607f821691505b6020821081141562001040576200103f62001075565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f42503a20427579206578636565647320616c6c6f776564206c696d6974000000600082015250565b7f42503a204163636f756e7420697320626c61636b6c6973746564000000000000600082015250565b7f42503a204761732073657474696e67206578636565647320616c6c6f7765642060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b7f42503a2053656c6c2065786365656473206c696d697400000000000000000000600082015250565b7f42503a204578636565646564206e756d626572206f6620616c6c6f776564207460008201527f72616e73616374696f6e73000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6133c780620011f66000396000f3fe608060405234801561001057600080fd5b50600436106103835760003560e01c806385ac8e96116101de578063ae6a6cb81161010f578063dd62ed3e116100ad578063ead0c49d1161007c578063ead0c49d146109ea578063f2e3b64014610a08578063f2fde38b14610a26578063f5fa8b8214610a4257610383565b8063dd62ed3e14610960578063dd67eca514610990578063dd7538a5146109ae578063dd7585b1146109cc57610383565b8063bd97067e116100e9578063bd97067e14610900578063bf115e441461091c578063c7844c4814610926578063d5c5617d1461095657610383565b8063ae6a6cb8146108a8578063b1a0820b146108c6578063b30c084f146108e257610383565b80639ce9aa081161017c578063a822245211610156578063a822245214610820578063a82ef4df1461083c578063a9059cbb1461085a578063a9b7fa411461088a57610383565b80639ce9aa08146107b8578063a457c2d7146107d4578063a53b4a441461080457610383565b80638da5cb5b116101b85780638da5cb5b14610742578063928a1b9c1461076057806395d89b411461077c57806399fe92c51461079a57610383565b806385ac8e96146106e85780638612bbbc146107065780638b284dd61461072457610383565b806332c9c3b5116102b8578063529b231511610256578063662264c511610230578063662264c51461068657806369e4662e146106a457806370a08231146106ae578063715018a6146106de57610383565b8063529b23151461064257806355c91f831461065e57806362e3a4ea1461067c57610383565b8063395670221161029257806339567022146105cc5780633b279f96146105ea578063475f61801461060857806351526fb41461062657610383565b806332c9c3b51461054e57806333e4847e1461056c578063395093511461059c57610383565b80631502bb621161032557806323b872dd116102ff57806323b872dd146104c457806326898da9146104f45780632817cd8514610512578063313ce5671461053057610383565b80631502bb621461046a5780631623a26e1461048857806318160ddd146104a657610383565b806306fdde031161036157806306fdde03146103e2578063095ea7b3146104005780630c4c2f6f146104305780631236edec1461044e57610383565b8063022c478e1461038857806303702f0d146103a657806303bfe948146103c4575b600080fd5b610390610a60565b60405161039d9190612b67565b60405180910390f35b6103ae610a73565b6040516103bb9190612d84565b60405180910390f35b6103cc610a79565b6040516103d99190612b4c565b60405180910390f35b6103ea610a9f565b6040516103f79190612b82565b60405180910390f35b61041a6004803603810190610415919061285d565b610b31565b6040516104279190612b67565b60405180910390f35b610438610b54565b6040516104459190612b4c565b60405180910390f35b6104686004803603810190610463919061279d565b610b6c565b005b610472610c43565b60405161047f9190612d84565b60405180910390f35b610490610c4b565b60405161049d9190612d84565b60405180910390f35b6104ae610c53565b6040516104bb9190612d84565b60405180910390f35b6104de60048036038101906104d9919061280a565b610c5d565b6040516104eb9190612b67565b60405180910390f35b6104fc610c8c565b6040516105099190612b67565b60405180910390f35b61051a610c9f565b6040516105279190612b4c565b60405180910390f35b610538610cc5565b6040516105459190612d9f565b60405180910390f35b610556610cce565b6040516105639190612d84565b60405180910390f35b6105866004803603810190610581919061279d565b610cd6565b6040516105939190612d84565b60405180910390f35b6105b660048036038101906105b1919061285d565b610cee565b6040516105c39190612b67565b60405180910390f35b6105d4610d25565b6040516105e19190612d84565b60405180910390f35b6105f2610d2d565b6040516105ff9190612d84565b60405180910390f35b610610610d33565b60405161061d9190612d84565b60405180910390f35b610640600480360381019061063b919061289d565b610d3b565b005b61065c6004803603810190610657919061279d565b610dc1565b005b610666610e81565b6040516106739190612d84565b60405180910390f35b610684610e89565b005b61068e610f81565b60405161069b9190612b4c565b60405180910390f35b6106ac610f99565b005b6106c860048036038101906106c3919061279d565b611041565b6040516106d59190612d84565b60405180910390f35b6106e6611089565b005b6106f0611111565b6040516106fd9190612d84565b60405180910390f35b61070e611117565b60405161071b9190612b4c565b60405180910390f35b61072c61112f565b6040516107399190612b67565b60405180910390f35b61074a611142565b6040516107579190612b4c565b60405180910390f35b61077a6004803603810190610775919061289d565b61116c565b005b6107846111f2565b6040516107919190612b82565b60405180910390f35b6107a2611284565b6040516107af9190612b67565b60405180910390f35b6107d260048036038101906107cd919061279d565b611297565b005b6107ee60048036038101906107e9919061285d565b61136e565b6040516107fb9190612b67565b60405180910390f35b61081e6004803603810190610819919061289d565b6113e5565b005b61083a6004803603810190610835919061279d565b61146b565b005b61084461152b565b6040516108519190612d84565b60405180910390f35b610874600480360381019061086f919061285d565b611533565b6040516108819190612b67565b60405180910390f35b610892611556565b60405161089f9190612b4c565b60405180910390f35b6108b061156e565b6040516108bd9190612b4c565b60405180910390f35b6108e060048036038101906108db919061279d565b611594565b005b6108ea611654565b6040516108f79190612b4c565b60405180910390f35b61091a6004803603810190610915919061279d565b61166c565b005b61092461172c565b005b610940600480360381019061093b919061279d565b6117e0565b60405161094d9190612b67565b60405180910390f35b61095e611800565b005b61097a600480360381019061097591906127ca565b6118a8565b6040516109879190612d84565b60405180910390f35b61099861192f565b6040516109a59190612b4c565b60405180910390f35b6109b6611947565b6040516109c39190612b4c565b60405180910390f35b6109d461196d565b6040516109e19190612b4c565b60405180910390f35b6109f2611985565b6040516109ff9190612d84565b60405180910390f35b610a1061198d565b604051610a1d9190612d84565b60405180910390f35b610a406004803603810190610a3b919061279d565b611993565b005b610a4a611a8b565b604051610a579190612b4c565b60405180910390f35b600a60029054906101000a900460ff1681565b60075481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060038054610aae90612eb4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ada90612eb4565b8015610b275780601f10610afc57610100808354040283529160200191610b27565b820191906000526020600020905b815481529060010190602001808311610b0a57829003601f168201915b5050505050905090565b600080610b3c611aa8565b9050610b49818585611ab0565b600191505092915050565b737496e1d91f7dcad9a4889a9a023736850300fe9781565b610b74611aa8565b73ffffffffffffffffffffffffffffffffffffffff16610b92611142565b73ffffffffffffffffffffffffffffffffffffffff1614610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90612cc4565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b631ad2748081565b631dcd650081565b6000600254905090565b600080610c68611aa8565b9050610c75858285611c7b565b610c80858585611d07565b60019150509392505050565b600a60009054906101000a900460ff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b6332a9f88081565b600e6020528060005260406000206000915090505481565b600080610cf9611aa8565b9050610d1a818585610d0b85896118a8565b610d159190612dd6565b611ab0565b600191505092915050565b6329b9270081565b60085481565b633b9aca0081565b610d43611aa8565b73ffffffffffffffffffffffffffffffffffffffff16610d61611142565b73ffffffffffffffffffffffffffffffffffffffff1614610db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dae90612cc4565b60405180910390fd5b8060088190555050565b610dc9611aa8565b73ffffffffffffffffffffffffffffffffffffffff16610de7611142565b73ffffffffffffffffffffffffffffffffffffffff1614610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490612cc4565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b639502f90081565b610e91611aa8565b73ffffffffffffffffffffffffffffffffffffffff16610eaf611142565b73ffffffffffffffffffffffffffffffffffffffff1614610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc90612cc4565b60405180910390fd5b600a60029054906101000a900460ff1615610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612c84565b60405180910390fd5b600a60019054906101000a900460ff1615600a60016101000a81548160ff021916908315150217905550565b734a8cd013879c4d48c96eaa50de9af2969e29758681565b610fa1611aa8565b73ffffffffffffffffffffffffffffffffffffffff16610fbf611142565b73ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90612cc4565b60405180910390fd5b600a60179054906101000a900460ff1615600a60176101000a81548160ff021916908315150217905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611091611aa8565b73ffffffffffffffffffffffffffffffffffffffff166110af611142565b73ffffffffffffffffffffffffffffffffffffffff1614611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc90612cc4565b60405180910390fd5b61110f6000611f88565b565b60065481565b7373b4eff6af5c7ea220403b009fff0c0da2d19c6781565b600a60179054906101000a900460ff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611174611aa8565b73ffffffffffffffffffffffffffffffffffffffff16611192611142565b73ffffffffffffffffffffffffffffffffffffffff16146111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df90612cc4565b60405180910390fd5b8060098190555050565b60606004805461120190612eb4565b80601f016020809104026020016040519081016040528092919081815260200182805461122d90612eb4565b801561127a5780601f1061124f5761010080835404028352916020019161127a565b820191906000526020600020905b81548152906001019060200180831161125d57829003601f168201915b5050505050905090565b600a60019054906101000a900460ff1681565b61129f611aa8565b73ffffffffffffffffffffffffffffffffffffffff166112bd611142565b73ffffffffffffffffffffffffffffffffffffffff1614611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90612cc4565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080611379611aa8565b9050600061138782866118a8565b9050838110156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612d64565b60405180910390fd5b6113d98286868403611ab0565b60019250505092915050565b6113ed611aa8565b73ffffffffffffffffffffffffffffffffffffffff1661140b611142565b73ffffffffffffffffffffffffffffffffffffffff1614611461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145890612cc4565b60405180910390fd5b8060078190555050565b611473611aa8565b73ffffffffffffffffffffffffffffffffffffffff16611491611142565b73ffffffffffffffffffffffffffffffffffffffff16146114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de90612cc4565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b639502f90081565b60008061153e611aa8565b905061154b818585611d07565b600191505092915050565b7365b903979cd209233a481b29cdd1f030612de60581565b600a60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61159c611aa8565b73ffffffffffffffffffffffffffffffffffffffff166115ba611142565b73ffffffffffffffffffffffffffffffffffffffff1614611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790612cc4565b60405180910390fd5b80600a60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7344e13ed3aae3bbb4f3cde8acaaf4d25036cc270a81565b611674611aa8565b73ffffffffffffffffffffffffffffffffffffffff16611692611142565b73ffffffffffffffffffffffffffffffffffffffff16146116e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116df90612cc4565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611734611aa8565b73ffffffffffffffffffffffffffffffffffffffff16611752611142565b73ffffffffffffffffffffffffffffffffffffffff16146117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90612cc4565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff021916908315150217905550565b600f6020528060005260406000206000915054906101000a900460ff1681565b611808611aa8565b73ffffffffffffffffffffffffffffffffffffffff16611826611142565b73ffffffffffffffffffffffffffffffffffffffff161461187c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187390612cc4565b60405180910390fd5b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73c5522c9f6f3c9cd87bf74ede5424dcf3a4b8b29d81565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7388e50b87f39e5abb4ef94ec3794314f74f31c63a81565b6359682f0081565b60095481565b61199b611aa8565b73ffffffffffffffffffffffffffffffffffffffff166119b9611142565b73ffffffffffffffffffffffffffffffffffffffff1614611a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0690612cc4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7690612bc4565b60405180910390fd5b611a8881611f88565b50565b73abe19e6fd481c424b00d3a8af70c77d7ae55e70d81565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1790612d24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8790612be4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c6e9190612d84565b60405180910390a3505050565b6000611c8784846118a8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611d015781811015611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea90612c24565b60405180910390fd5b611d008484848403611ab0565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6e90612d04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dde90612ba4565b60405180910390fd5b611df283838361204e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6f90612c44565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f0b9190612dd6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f6f9190612d84565b60405180910390a3611f8284848461276e565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a60009054906101000a900460ff161561275e57600a60029054906101000a900460ff161580156120b35750612083611142565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561275d57600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561215c5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61219b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219290612c64565b60405180910390fd5b600a60179054906101000a900460ff16156122ea57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122e957600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122b15750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156122e8576040517fa5baf15100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b6007543a111561232f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232690612ca4565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16600a60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612547576008548111156123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c190612c04565b60405180910390fd5b600654600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490612d44565b60405180910390fd5b600a60019054906101000a900460ff166124eb576001600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506040517ff387f38d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461253b9190612dd6565b9250508190555061275c565b8173ffffffffffffffffffffffffffffffffffffffff16600a60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561275b576009548111156125e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d990612ce4565b60405180910390fd5b600654600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265c90612d44565b60405180910390fd5b600a60019054906101000a900460ff16612703576001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506040517ff387f38d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127539190612dd6565b925050819055505b5b5b5b612769838383611aa3565b505050565b505050565b60008135905061278281613363565b92915050565b6000813590506127978161337a565b92915050565b6000602082840312156127b3576127b2612f44565b5b60006127c184828501612773565b91505092915050565b600080604083850312156127e1576127e0612f44565b5b60006127ef85828601612773565b925050602061280085828601612773565b9150509250929050565b60008060006060848603121561282357612822612f44565b5b600061283186828701612773565b935050602061284286828701612773565b925050604061285386828701612788565b9150509250925092565b6000806040838503121561287457612873612f44565b5b600061288285828601612773565b925050602061289385828601612788565b9150509250929050565b6000602082840312156128b3576128b2612f44565b5b60006128c184828501612788565b91505092915050565b6128d381612e2c565b82525050565b6128e281612e3e565b82525050565b60006128f382612dba565b6128fd8185612dc5565b935061290d818560208601612e81565b61291681612f49565b840191505092915050565b600061292e602383612dc5565b915061293982612f5a565b604082019050919050565b6000612951602683612dc5565b915061295c82612fa9565b604082019050919050565b6000612974602283612dc5565b915061297f82612ff8565b604082019050919050565b6000612997601d83612dc5565b91506129a282613047565b602082019050919050565b60006129ba601d83612dc5565b91506129c582613070565b602082019050919050565b60006129dd602683612dc5565b91506129e882613099565b604082019050919050565b6000612a00601a83612dc5565b9150612a0b826130e8565b602082019050919050565b6000612a23604183612dc5565b9150612a2e82613111565b606082019050919050565b6000612a46602583612dc5565b9150612a5182613186565b604082019050919050565b6000612a69602083612dc5565b9150612a74826131d5565b602082019050919050565b6000612a8c601683612dc5565b9150612a97826131fe565b602082019050919050565b6000612aaf602583612dc5565b9150612aba82613227565b604082019050919050565b6000612ad2602483612dc5565b9150612add82613276565b604082019050919050565b6000612af5602b83612dc5565b9150612b00826132c5565b604082019050919050565b6000612b18602583612dc5565b9150612b2382613314565b604082019050919050565b612b3781612e6a565b82525050565b612b4681612e74565b82525050565b6000602082019050612b6160008301846128ca565b92915050565b6000602082019050612b7c60008301846128d9565b92915050565b60006020820190508181036000830152612b9c81846128e8565b905092915050565b60006020820190508181036000830152612bbd81612921565b9050919050565b60006020820190508181036000830152612bdd81612944565b9050919050565b60006020820190508181036000830152612bfd81612967565b9050919050565b60006020820190508181036000830152612c1d8161298a565b9050919050565b60006020820190508181036000830152612c3d816129ad565b9050919050565b60006020820190508181036000830152612c5d816129d0565b9050919050565b60006020820190508181036000830152612c7d816129f3565b9050919050565b60006020820190508181036000830152612c9d81612a16565b9050919050565b60006020820190508181036000830152612cbd81612a39565b9050919050565b60006020820190508181036000830152612cdd81612a5c565b9050919050565b60006020820190508181036000830152612cfd81612a7f565b9050919050565b60006020820190508181036000830152612d1d81612aa2565b9050919050565b60006020820190508181036000830152612d3d81612ac5565b9050919050565b60006020820190508181036000830152612d5d81612ae8565b9050919050565b60006020820190508181036000830152612d7d81612b0b565b9050919050565b6000602082019050612d996000830184612b2e565b92915050565b6000602082019050612db46000830184612b3d565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612de182612e6a565b9150612dec83612e6a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e2157612e20612ee6565b5b828201905092915050565b6000612e3782612e4a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612e9f578082015181840152602081019050612e84565b83811115612eae576000848401525b50505050565b60006002820490506001821680612ecc57607f821691505b60208210811415612ee057612edf612f15565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f42503a20427579206578636565647320616c6c6f776564206c696d6974000000600082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f42503a204163636f756e7420697320626c61636b6c6973746564000000000000600082015250565b7f43616e6e6f7420746f67676c65207768656e20626f742070726f74656374696f60008201527f6e20697320616c72656164792064697361626c6564207065726d616e656e746c60208201527f7900000000000000000000000000000000000000000000000000000000000000604082015250565b7f42503a204761732073657474696e67206578636565647320616c6c6f7765642060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42503a2053656c6c2065786365656473206c696d697400000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f42503a204578636565646564206e756d626572206f6620616c6c6f776564207460008201527f72616e73616374696f6e73000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61336c81612e2c565b811461337757600080fd5b50565b61338381612e6a565b811461338e57600080fd5b5056fea2646970667358221220d8f9ae699de9429e4127b837974141fc5ce00f062c7a2cca6e11d91677cf91fe64736f6c63430008070033