60806040526c0c9f2c9cd04674edea4000000060001962000021919062000728565b6000196200003091906200078f565b600655600060085560006009556000600a556028600b55600a54600c55600b54600d55600c54600e55600d54600f55730959a40f532c999981f212de29e0b48ee7690600601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730959a40f532c999981f212de29e0b48ee7690600601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506b0813f3978f894098440000006017556b409f9cbc7c4a04c2200000006018556b0813f3978f894098440000006019553480156200017b57600080fd5b5060006200018e620006be60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000243620006be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000327573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034d919062000834565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003db919062000834565b6040518363ffffffff1660e01b8152600401620003fa92919062000877565b6020604051808303816000875af11580156200041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000440919062000834565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000496620006c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000643620006be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c0c9f2c9cd04674edea40000000604051620006af9190620008b5565b60405180910390a350620008d2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073582620006ef565b91506200074283620006ef565b925082620007555762000754620006f9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079c82620006ef565b9150620007a983620006ef565b925082821015620007bf57620007be62000760565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007fc82620007cf565b9050919050565b6200080e81620007ef565b81146200081a57600080fd5b50565b6000815190506200082e8162000803565b92915050565b6000602082840312156200084d576200084c620007ca565b5b60006200085d848285016200081d565b91505092915050565b6200087181620007ef565b82525050565b60006040820190506200088e600083018562000866565b6200089d602083018462000866565b9392505050565b620008af81620006ef565b82525050565b6000602082019050620008cc6000830184620008a4565b92915050565b61410580620008e26000396000f3fe6080604052600436106101e75760003560e01c8063735a495311610102578063a9059cbb11610095578063c492f04611610064578063c492f046146106c5578063d3171a68146106ee578063dd62ed3e14610717578063f2fde38b14610754576101ee565b8063a9059cbb146105f9578063b792507e14610636578063bfd792841461065f578063c17a14231461069c576101ee565b80638da5cb5b116100d15780638da5cb5b1461054f5780638f9a55c01461057a57806395d89b41146105a5578063a7667791146105d0576101ee565b8063735a4953146104955780637d1db4a5146104be5780637f2feddc146104e95780638c17cc6e14610526576101ee565b80632fd689e31161017a57806349bd5a5e1161014957806349bd5a5e146103ed57806352516f021461041857806370a0823114610441578063715018a61461047e576101ee565b80632fd689e314610369578063313ce5671461039457806339e570e8146103bf57806341c124fe146103d6576101ee565b806318160ddd116101b657806318160ddd146102af5780631ffe1e3b146102da57806323b872dd14610303578063265d57c614610340576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630f12d2c81461025b5780631694505e14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861077d565b6040516102159190612f13565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612fdd565b6107ba565b6040516102529190613038565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d919061307f565b6107d8565b005b34801561029057600080fd5b5061029961088a565b6040516102a6919061310b565b60405180910390f35b3480156102bb57600080fd5b506102c46108b0565b6040516102d19190613135565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190613298565b6108c5565b005b34801561030f57600080fd5b5061032a600480360381019061032591906132e1565b6109ef565b6040516103379190613038565b60405180910390f35b34801561034c57600080fd5b506103676004803603810190610362919061338f565b610ac8565b005b34801561037557600080fd5b5061037e610bf9565b60405161038b9190613135565b60405180910390f35b3480156103a057600080fd5b506103a9610bff565b6040516103b691906133f8565b60405180910390f35b3480156103cb57600080fd5b506103d4610c08565b005b3480156103e257600080fd5b506103eb610cd9565b005b3480156103f957600080fd5b50610402610db2565b60405161040f9190613422565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a919061307f565b610dd8565b005b34801561044d57600080fd5b506104686004803603810190610463919061343d565b610e89565b6040516104759190613135565b60405180910390f35b34801561048a57600080fd5b50610493610eda565b005b3480156104a157600080fd5b506104bc60048036038101906104b7919061346a565b61102d565b005b3480156104ca57600080fd5b506104d36110cc565b6040516104e09190613135565b60405180910390f35b3480156104f557600080fd5b50610510600480360381019061050b919061343d565b6110d2565b60405161051d9190613135565b60405180910390f35b34801561053257600080fd5b5061054d6004803603810190610548919061346a565b6110ea565b005b34801561055b57600080fd5b50610564611189565b6040516105719190613422565b60405180910390f35b34801561058657600080fd5b5061058f6111b2565b60405161059c9190613135565b60405180910390f35b3480156105b157600080fd5b506105ba6111b8565b6040516105c79190612f13565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f2919061346a565b6111f5565b005b34801561060557600080fd5b50610620600480360381019061061b9190612fdd565b611294565b60405161062d9190613038565b60405180910390f35b34801561064257600080fd5b5061065d6004803603810190610658919061343d565b6112b2565b005b34801561066b57600080fd5b506106866004803603810190610681919061343d565b6113a2565b6040516106939190613038565b60405180910390f35b3480156106a857600080fd5b506106c360048036038101906106be919061338f565b6113c2565b005b3480156106d157600080fd5b506106ec60048036038101906106e79190613497565b6114fc565b005b3480156106fa57600080fd5b50610715600480360381019061071091906134f7565b611636565b005b34801561072357600080fd5b5061073e6004803603810190610739919061355e565b6116ed565b60405161074b9190613135565b60405180910390f35b34801561076057600080fd5b5061077b6004803603810190610776919061343d565b611774565b005b60606040518060400160405280600681526020017f24506f6e7a690000000000000000000000000000000000000000000000000000815250905090565b60006107ce6107c7611935565b848461193d565b6001905092915050565b6107e0611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610864906135ea565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006c0c9f2c9cd04674edea40000000905090565b6108cd611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610951906135ea565b60405180910390fd5b60005b81518110156109eb5760016010600084848151811061097f5761097e61360a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109e390613668565b91505061095d565b5050565b60006109fc848484611b06565b610abd84610a08611935565b610ab8856040518060600160405280602881526020016140a860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a6e611935565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123949092919063ffffffff16565b61193d565b600190509392505050565b610ad0611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b54906135ea565b60405180910390fd5b60005b82829050811015610bf45760126000848484818110610b8257610b8161360a565b5b9050602002016020810190610b97919061343d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080610bec90613668565b915050610b60565b505050565b60195481565b60006012905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c49611935565b73ffffffffffffffffffffffffffffffffffffffff161480610cbf5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ca7611935565b73ffffffffffffffffffffffffffffffffffffffff16145b610cc857600080fd5b6000479050610cd6816123f8565b50565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1a611935565b73ffffffffffffffffffffffffffffffffffffffff161480610d905750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d78611935565b73ffffffffffffffffffffffffffffffffffffffff16145b610d9957600080fd5b6000610da430610e89565b9050610daf81612464565b50565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610de0611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e64906135ea565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b6000610ed3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126dd565b9050919050565b610ee2611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906135ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611035611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b9906135ea565b60405180910390fd5b8060178190555050565b60175481565b60116020528060005260406000206000915090505481565b6110f2611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611176906135ea565b60405180910390fd5b8060188190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600681526020017f24506f6e7a690000000000000000000000000000000000000000000000000000815250905090565b6111fd611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611281906135ea565b60405180910390fd5b8060198190555050565b60006112a86112a1611935565b8484611b06565b6001905092915050565b6112ba611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e906135ea565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b6113ca611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e906135ea565b60405180910390fd5b60005b828290508110156114f75760016012600085858581811061147e5761147d61360a565b5b9050602002016020810190611493919061343d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114ef90613668565b91505061145a565b505050565b611504611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611588906135ea565b60405180910390fd5b60005b838390508110156116305781600560008686858181106115b7576115b661360a565b5b90506020020160208101906115cc919061343d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061162890613668565b915050611594565b50505050565b61163e611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c2906135ea565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61177c611935565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906135ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90613722565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a3906137b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1290613846565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611af99190613135565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c906138d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdb9061396a565b60405180910390fd5b60008111611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e906139fc565b60405180910390fd5b6000611c31611189565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c9f5750611c6f611189565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cf55750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d4b5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fd857601660149054906101000a900460ff1680611db45750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611dc25760019050611dfd565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df490613a8e565b60405180910390fd5b601754821115611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3990613afa565b60405180910390fd5b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ee65750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c90613b8c565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611fd35760185482611f8785610e89565b611f919190613bac565b1115611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc990613c74565b60405180910390fd5b5b61208b565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612086576018548261203a85610e89565b6120449190613bac565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613c74565b60405180910390fd5b5b600190505b801561238e57600060019050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121385750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121eb5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156121ea5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b156121f95760009050612380565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156122a45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122bc57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123675750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561237f57600a54600c81905550600b54600d819055505b5b61238c8585858461274b565b505b50505050565b60008383111582906123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d39190612f13565b60405180910390fd5b50600083856123eb9190613c94565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612460573d6000803e3d6000fd5b5050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561249c5761249b613155565b5b6040519080825280602002602001820160405280156124ca5781602001602082028036833780820191505090505b50905030816000815181106124e2576124e161360a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ad9190613cdd565b816001815181106125c1576125c061360a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061262830601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461193d565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161268c959493929190613e03565b600060405180830381600087803b1580156126a657600080fd5b505af11580156126ba573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b6000600654821115612724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271b90613ecf565b60405180910390fd5b600061272e612778565b905061274381846127a390919063ffffffff16565b915050919050565b80612759576127586127ed565b5b61276484848461282a565b80612772576127716129f5565b5b50505050565b6000806000612785612a09565b9150915061279c81836127a390919063ffffffff16565b9250505090565b60006127e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a77565b905092915050565b6000600c5414801561280157506000600d54145b61282857600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061283c87612ada565b95509550955095509550955061289a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b4290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297b81612bea565b6129858483612ca7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129e29190613135565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006c0c9f2c9cd04674edea400000009050612a476c0c9f2c9cd04674edea400000006006546127a390919063ffffffff16565b821015612a6a576006546c0c9f2c9cd04674edea40000000935093505050612a73565b81819350935050505b9091565b60008083118290612abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab59190612f13565b60405180910390fd5b5060008385612acd9190613f1e565b9050809150509392505050565b6000806000806000806000806000612af78a600c54600d54612ce1565b9250925092506000612b07612778565b90506000806000612b1a8e878787612d77565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612394565b905092915050565b6000808284612b9b9190613bac565b905083811015612be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd790613f9b565b60405180910390fd5b8091505092915050565b6000612bf4612778565b90506000612c0b8284612e0090919063ffffffff16565b9050612c5f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612cbc82600654612b4290919063ffffffff16565b600681905550612cd781600754612b8c90919063ffffffff16565b6007819055505050565b600080600080612d0d6064612cff888a612e0090919063ffffffff16565b6127a390919063ffffffff16565b90506000612d376064612d29888b612e0090919063ffffffff16565b6127a390919063ffffffff16565b90506000612d6082612d52858c612b4290919063ffffffff16565b612b4290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d908589612e0090919063ffffffff16565b90506000612da78689612e0090919063ffffffff16565b90506000612dbe8789612e0090919063ffffffff16565b90506000612de782612dd98587612b4290919063ffffffff16565b612b4290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612e125760009050612e74565b60008284612e209190613fbb565b9050828482612e2f9190613f1e565b14612e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6690614087565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612eb4578082015181840152602081019050612e99565b83811115612ec3576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ee582612e7a565b612eef8185612e85565b9350612eff818560208601612e96565b612f0881612ec9565b840191505092915050565b60006020820190508181036000830152612f2d8184612eda565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f7482612f49565b9050919050565b612f8481612f69565b8114612f8f57600080fd5b50565b600081359050612fa181612f7b565b92915050565b6000819050919050565b612fba81612fa7565b8114612fc557600080fd5b50565b600081359050612fd781612fb1565b92915050565b60008060408385031215612ff457612ff3612f3f565b5b600061300285828601612f92565b925050602061301385828601612fc8565b9150509250929050565b60008115159050919050565b6130328161301d565b82525050565b600060208201905061304d6000830184613029565b92915050565b61305c8161301d565b811461306757600080fd5b50565b60008135905061307981613053565b92915050565b60006020828403121561309557613094612f3f565b5b60006130a38482850161306a565b91505092915050565b6000819050919050565b60006130d16130cc6130c784612f49565b6130ac565b612f49565b9050919050565b60006130e3826130b6565b9050919050565b60006130f5826130d8565b9050919050565b613105816130ea565b82525050565b600060208201905061312060008301846130fc565b92915050565b61312f81612fa7565b82525050565b600060208201905061314a6000830184613126565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61318d82612ec9565b810181811067ffffffffffffffff821117156131ac576131ab613155565b5b80604052505050565b60006131bf612f35565b90506131cb8282613184565b919050565b600067ffffffffffffffff8211156131eb576131ea613155565b5b602082029050602081019050919050565b600080fd5b600061321461320f846131d0565b6131b5565b90508083825260208201905060208402830185811115613237576132366131fc565b5b835b81811015613260578061324c8882612f92565b845260208401935050602081019050613239565b5050509392505050565b600082601f83011261327f5761327e613150565b5b813561328f848260208601613201565b91505092915050565b6000602082840312156132ae576132ad612f3f565b5b600082013567ffffffffffffffff8111156132cc576132cb612f44565b5b6132d88482850161326a565b91505092915050565b6000806000606084860312156132fa576132f9612f3f565b5b600061330886828701612f92565b935050602061331986828701612f92565b925050604061332a86828701612fc8565b9150509250925092565b600080fd5b60008083601f84011261334f5761334e613150565b5b8235905067ffffffffffffffff81111561336c5761336b613334565b5b602083019150836020820283011115613388576133876131fc565b5b9250929050565b600080602083850312156133a6576133a5612f3f565b5b600083013567ffffffffffffffff8111156133c4576133c3612f44565b5b6133d085828601613339565b92509250509250929050565b600060ff82169050919050565b6133f2816133dc565b82525050565b600060208201905061340d60008301846133e9565b92915050565b61341c81612f69565b82525050565b60006020820190506134376000830184613413565b92915050565b60006020828403121561345357613452612f3f565b5b600061346184828501612f92565b91505092915050565b6000602082840312156134805761347f612f3f565b5b600061348e84828501612fc8565b91505092915050565b6000806000604084860312156134b0576134af612f3f565b5b600084013567ffffffffffffffff8111156134ce576134cd612f44565b5b6134da86828701613339565b935093505060206134ed8682870161306a565b9150509250925092565b6000806000806080858703121561351157613510612f3f565b5b600061351f87828801612fc8565b945050602061353087828801612fc8565b935050604061354187828801612fc8565b925050606061355287828801612fc8565b91505092959194509250565b6000806040838503121561357557613574612f3f565b5b600061358385828601612f92565b925050602061359485828601612f92565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135d4602083612e85565b91506135df8261359e565b602082019050919050565b60006020820190508181036000830152613603816135c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061367382612fa7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136a5576136a4613639565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061370c602683612e85565b9150613717826136b0565b604082019050919050565b6000602082019050818103600083015261373b816136ff565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061379e602483612e85565b91506137a982613742565b604082019050919050565b600060208201905081810360008301526137cd81613791565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613830602283612e85565b915061383b826137d4565b604082019050919050565b6000602082019050818103600083015261385f81613823565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138c2602583612e85565b91506138cd82613866565b604082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613954602383612e85565b915061395f826138f8565b604082019050919050565b6000602082019050818103600083015261398381613947565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006139e6602983612e85565b91506139f18261398a565b604082019050919050565b60006020820190508181036000830152613a15816139d9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613a78603f83612e85565b9150613a8382613a1c565b604082019050919050565b60006020820190508181036000830152613aa781613a6b565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613ae4601c83612e85565b9150613aef82613aae565b602082019050919050565b60006020820190508181036000830152613b1381613ad7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613b76602383612e85565b9150613b8182613b1a565b604082019050919050565b60006020820190508181036000830152613ba581613b69565b9050919050565b6000613bb782612fa7565b9150613bc283612fa7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bf757613bf6613639565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5e602383612e85565b9150613c6982613c02565b604082019050919050565b60006020820190508181036000830152613c8d81613c51565b9050919050565b6000613c9f82612fa7565b9150613caa83612fa7565b925082821015613cbd57613cbc613639565b5b828203905092915050565b600081519050613cd781612f7b565b92915050565b600060208284031215613cf357613cf2612f3f565b5b6000613d0184828501613cc8565b91505092915050565b6000819050919050565b6000613d2f613d2a613d2584613d0a565b6130ac565b612fa7565b9050919050565b613d3f81613d14565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d7a81612f69565b82525050565b6000613d8c8383613d71565b60208301905092915050565b6000602082019050919050565b6000613db082613d45565b613dba8185613d50565b9350613dc583613d61565b8060005b83811015613df6578151613ddd8882613d80565b9750613de883613d98565b925050600181019050613dc9565b5085935050505092915050565b600060a082019050613e186000830188613126565b613e256020830187613d36565b8181036040830152613e378186613da5565b9050613e466060830185613413565b613e536080830184613126565b9695505050505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613eb9602a83612e85565b9150613ec482613e5d565b604082019050919050565b60006020820190508181036000830152613ee881613eac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f2982612fa7565b9150613f3483612fa7565b925082613f4457613f43613eef565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f85601b83612e85565b9150613f9082613f4f565b602082019050919050565b60006020820190508181036000830152613fb481613f78565b9050919050565b6000613fc682612fa7565b9150613fd183612fa7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561400a57614009613639565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614071602183612e85565b915061407c82614015565b604082019050919050565b600060208201905081810360008301526140a081614064565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208732c4b6377ed5c9201e78982aa690425fabc7f3728031ff20ea0e0fff26daa164736f6c634300080e0033