0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b85780639686d3221161007c5780639686d32214610340578063a457c2d71461035c578063a9059cbb1461038c578063dd62ed3e146103bc578063f2fde38b146103ec578063f6887cd31461040857610137565b8063715018a6146102ae57806377a59f00146102b857806380f68310146102e85780638da5cb5b1461030457806395d89b411461032257610137565b806323b872dd116100ff57806323b872dd146101e2578063313ce56714610212578063395093511461023057806341f20b681461026057806370a082311461027e57610137565b806306fdde031461013c578063095ea7b31461015a57806313c72aed1461018a57806318160ddd146101a65780631868aadf146101c4575b600080fd5b610144610438565b604051610151919061150b565b60405180910390f35b610174600480360381019061016f91906115c6565b6104ca565b6040516101819190611621565b60405180910390f35b6101a4600480360381019061019f919061163c565b6104ed565b005b6101ae610573565b6040516101bb9190611678565b60405180910390f35b6101cc61057d565b6040516101d99190611678565b60405180910390f35b6101fc60048036038101906101f79190611693565b610583565b6040516102099190611621565b60405180910390f35b61021a6105b2565b6040516102279190611702565b60405180910390f35b61024a600480360381019061024591906115c6565b6105bb565b6040516102579190611621565b60405180910390f35b610268610665565b6040516102759190611621565b60405180910390f35b6102986004803603810190610293919061171d565b610678565b6040516102a59190611678565b60405180910390f35b6102b66106c1565b005b6102d260048036038101906102cd919061171d565b610749565b6040516102df9190611678565b60405180910390f35b61030260048036038101906102fd9190611776565b610761565b005b61030c6107fa565b60405161031991906117b2565b60405180910390f35b61032a610823565b604051610337919061150b565b60405180910390f35b61035a600480360381019061035591906117cd565b6108b5565b005b610376600480360381019061037191906115c6565b61098c565b6040516103839190611621565b60405180910390f35b6103a660048036038101906103a191906115c6565b610a76565b6040516103b39190611621565b60405180910390f35b6103d660048036038101906103d1919061180d565b610a99565b6040516103e39190611678565b60405180910390f35b6104066004803603810190610401919061171d565b610b20565b005b610422600480360381019061041d919061171d565b610c17565b60405161042f9190611621565b60405180910390f35b6060600480546104479061187c565b80601f01602080910402602001604051908101604052809291908181526020018280546104739061187c565b80156104c05780601f10610495576101008083540402835291602001916104c0565b820191906000526020600020905b8154815290600101906020018083116104a357829003601f168201915b5050505050905090565b6000806104d5610c37565b90506104e2818585610c3f565b600191505092915050565b6104f5610c37565b73ffffffffffffffffffffffffffffffffffffffff166105136107fa565b73ffffffffffffffffffffffffffffffffffffffff1614610569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610560906118f9565b60405180910390fd5b8060098190555050565b6000600354905090565b60095481565b60008061058e610c37565b905061059b858285610e08565b6105a6858585610e94565b60019150509392505050565b60006012905090565b6000806105c6610c37565b905061065a818585600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106559190611948565b610c3f565b600191505092915050565b600760009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106c9610c37565b73ffffffffffffffffffffffffffffffffffffffff166106e76107fa565b73ffffffffffffffffffffffffffffffffffffffff161461073d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610734906118f9565b60405180910390fd5b6107476000611232565b565b60066020528060005260406000206000915090505481565b610769610c37565b73ffffffffffffffffffffffffffffffffffffffff166107876107fa565b73ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906118f9565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108329061187c565b80601f016020809104026020016040519081016040528092919081815260200182805461085e9061187c565b80156108ab5780601f10610880576101008083540402835291602001916108ab565b820191906000526020600020905b81548152906001019060200180831161088e57829003601f168201915b5050505050905090565b6108bd610c37565b73ffffffffffffffffffffffffffffffffffffffff166108db6107fa565b73ffffffffffffffffffffffffffffffffffffffff1614610931576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610928906118f9565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080610997610c37565b90506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a54906119ee565b60405180910390fd5b610a6a8286868403610c3f565b60019250505092915050565b600080610a81610c37565b9050610a8e818585610e94565b600191505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b28610c37565b73ffffffffffffffffffffffffffffffffffffffff16610b466107fa565b73ffffffffffffffffffffffffffffffffffffffff1614610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b93906118f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0290611a80565b60405180910390fd5b610c1481611232565b50565b60086020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca590611b12565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490611ba4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dfb9190611678565b60405180910390a3505050565b6000610e148484610a99565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e8e5781811015610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7790611c10565b60405180910390fd5b610e8d8484848403610c3f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa90611ca2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990611d34565b60405180910390fd5b610f7d8383836112f6565b600760009054906101000a900460ff161561109957600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156110365750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561109857600061104784846112fb565b905061105281611377565b43600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111790611dc6565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b59190611948565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112199190611678565b60405180910390a361122c848484611463565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600061130683611468565b1580611318575061131682611468565b155b611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90611e32565b60405180910390fd5b61136083611468565b1561136d57819050611371565b8290505b92915050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061141d57506001436113ce9190611948565b600954600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141b9190611948565b105b90508061145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690611e9e565b60405180910390fd5b5050565b505050565b600080823b905060008111915050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156114b557808201518184015260208101905061149a565b60008484015250505050565b6000601f19601f8301169050919050565b60006114dd8261147b565b6114e78185611486565b93506114f7818560208601611497565b611500816114c1565b840191505092915050565b6000602082019050818103600083015261152581846114d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061155d82611532565b9050919050565b61156d81611552565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000819050919050565b6115a381611590565b81146115ae57600080fd5b50565b6000813590506115c08161159a565b92915050565b600080604083850312156115dd576115dc61152d565b5b60006115eb8582860161157b565b92505060206115fc858286016115b1565b9150509250929050565b60008115159050919050565b61161b81611606565b82525050565b60006020820190506116366000830184611612565b92915050565b6000602082840312156116525761165161152d565b5b6000611660848285016115b1565b91505092915050565b61167281611590565b82525050565b600060208201905061168d6000830184611669565b92915050565b6000806000606084860312156116ac576116ab61152d565b5b60006116ba8682870161157b565b93505060206116cb8682870161157b565b92505060406116dc868287016115b1565b9150509250925092565b600060ff82169050919050565b6116fc816116e6565b82525050565b600060208201905061171760008301846116f3565b92915050565b6000602082840312156117335761173261152d565b5b60006117418482850161157b565b91505092915050565b61175381611606565b811461175e57600080fd5b50565b6000813590506117708161174a565b92915050565b60006020828403121561178c5761178b61152d565b5b600061179a84828501611761565b91505092915050565b6117ac81611552565b82525050565b60006020820190506117c760008301846117a3565b92915050565b600080604083850312156117e4576117e361152d565b5b60006117f28582860161157b565b925050602061180385828601611761565b9150509250929050565b600080604083850312156118245761182361152d565b5b60006118328582860161157b565b92505060206118438582860161157b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061189457607f821691505b6020821081036118a7576118a661184d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006118e3602083611486565b91506118ee826118ad565b602082019050919050565b60006020820190508181036000830152611912816118d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061195382611590565b915061195e83611590565b925082820190508082111561197657611975611919565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119d8602583611486565b91506119e38261197c565b604082019050919050565b60006020820190508181036000830152611a07816119cb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611a6a602683611486565b9150611a7582611a0e565b604082019050919050565b60006020820190508181036000830152611a9981611a5d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611afc602483611486565b9150611b0782611aa0565b604082019050919050565b60006020820190508181036000830152611b2b81611aef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b8e602283611486565b9150611b9982611b32565b604082019050919050565b60006020820190508181036000830152611bbd81611b81565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611bfa601d83611486565b9150611c0582611bc4565b602082019050919050565b60006020820190508181036000830152611c2981611bed565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611c8c602583611486565b9150611c9782611c30565b604082019050919050565b60006020820190508181036000830152611cbb81611c7f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611d1e602383611486565b9150611d2982611cc2565b604082019050919050565b60006020820190508181036000830152611d4d81611d11565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611db0602683611486565b9150611dbb82611d54565b604082019050919050565b60006020820190508181036000830152611ddf81611da3565b9050919050565b7f4e6f20626f74732061726520616c6c6f77656421000000000000000000000000600082015250565b6000611e1c601483611486565b9150611e2782611de6565b602082019050919050565b60006020820190508181036000830152611e4b81611e0f565b9050919050565b7f4d6178207478206672657175656e637920657863656564656421000000000000600082015250565b6000611e88601a83611486565b9150611e9382611e52565b602082019050919050565b60006020820190508181036000830152611eb781611e7b565b905091905056fea2646970667358221220812009150cf506f2b7ec67774729f83195dbc08d03d01f5c6e823c10ac31cdf864736f6c63430008110033
0x60806040526000600760006101000a81548160ff02191690831515021790555060016009553480156200003157600080fd5b5062000052620000466200016260201b60201c565b6200016a60201b60201c565b6040518060400160405280600a81526020017f4a697a7a20536869626100000000000000000000000000000000000000000000815250600490816200009891906200062b565b506040518060400160405280600581526020017f4a4953484900000000000000000000000000000000000000000000000000000081525060059081620000df91906200062b565b5060006bdef376571332906a8800000090506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200015b33826200022e60201b60201c565b506200082d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002979062000773565b60405180910390fd5b620002b460008383620003a760201b60201c565b8060036000828254620002c89190620007c4565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003209190620007c4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000387919062000810565b60405180910390a3620003a360008383620003ac60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200043357607f821691505b602082108103620004495762000448620003eb565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000474565b620004bf868362000474565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200050c620005066200050084620004d7565b620004e1565b620004d7565b9050919050565b6000819050919050565b6200052883620004eb565b62000540620005378262000513565b84845462000481565b825550505050565b600090565b6200055762000548565b620005648184846200051d565b505050565b5b818110156200058c57620005806000826200054d565b6001810190506200056a565b5050565b601f821115620005db57620005a5816200044f565b620005b08462000464565b81016020851015620005c0578190505b620005d8620005cf8562000464565b83018262000569565b50505b505050565b600082821c905092915050565b60006200060060001984600802620005e0565b1980831691505092915050565b60006200061b8383620005ed565b9150826002028217905092915050565b6200063682620003b1565b67ffffffffffffffff811115620006525762000651620003bc565b5b6200065e82546200041a565b6200066b82828562000590565b600060209050601f831160018114620006a357600084156200068e578287015190505b6200069a85826200060d565b8655506200070a565b601f198416620006b3866200044f565b60005b82811015620006dd57848901518255600182019150602085019450602081019050620006b6565b86831015620006fd5784890151620006f9601f891682620005ed565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200075b601f8362000712565b9150620007688262000723565b602082019050919050565b600060208201905081810360008301526200078e816200074c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007d182620004d7565b9150620007de83620004d7565b9250828201905080821115620007f957620007f862000795565b5b92915050565b6200080a81620004d7565b82525050565b6000602082019050620008276000830184620007ff565b92915050565b611ef4806200083d6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b85780639686d3221161007c5780639686d32214610340578063a457c2d71461035c578063a9059cbb1461038c578063dd62ed3e146103bc578063f2fde38b146103ec578063f6887cd31461040857610137565b8063715018a6146102ae57806377a59f00146102b857806380f68310146102e85780638da5cb5b1461030457806395d89b411461032257610137565b806323b872dd116100ff57806323b872dd146101e2578063313ce56714610212578063395093511461023057806341f20b681461026057806370a082311461027e57610137565b806306fdde031461013c578063095ea7b31461015a57806313c72aed1461018a57806318160ddd146101a65780631868aadf146101c4575b600080fd5b610144610438565b604051610151919061150b565b60405180910390f35b610174600480360381019061016f91906115c6565b6104ca565b6040516101819190611621565b60405180910390f35b6101a4600480360381019061019f919061163c565b6104ed565b005b6101ae610573565b6040516101bb9190611678565b60405180910390f35b6101cc61057d565b6040516101d99190611678565b60405180910390f35b6101fc60048036038101906101f79190611693565b610583565b6040516102099190611621565b60405180910390f35b61021a6105b2565b6040516102279190611702565b60405180910390f35b61024a600480360381019061024591906115c6565b6105bb565b6040516102579190611621565b60405180910390f35b610268610665565b6040516102759190611621565b60405180910390f35b6102986004803603810190610293919061171d565b610678565b6040516102a59190611678565b60405180910390f35b6102b66106c1565b005b6102d260048036038101906102cd919061171d565b610749565b6040516102df9190611678565b60405180910390f35b61030260048036038101906102fd9190611776565b610761565b005b61030c6107fa565b60405161031991906117b2565b60405180910390f35b61032a610823565b604051610337919061150b565b60405180910390f35b61035a600480360381019061035591906117cd565b6108b5565b005b610376600480360381019061037191906115c6565b61098c565b6040516103839190611621565b60405180910390f35b6103a660048036038101906103a191906115c6565b610a76565b6040516103b39190611621565b60405180910390f35b6103d660048036038101906103d1919061180d565b610a99565b6040516103e39190611678565b60405180910390f35b6104066004803603810190610401919061171d565b610b20565b005b610422600480360381019061041d919061171d565b610c17565b60405161042f9190611621565b60405180910390f35b6060600480546104479061187c565b80601f01602080910402602001604051908101604052809291908181526020018280546104739061187c565b80156104c05780601f10610495576101008083540402835291602001916104c0565b820191906000526020600020905b8154815290600101906020018083116104a357829003601f168201915b5050505050905090565b6000806104d5610c37565b90506104e2818585610c3f565b600191505092915050565b6104f5610c37565b73ffffffffffffffffffffffffffffffffffffffff166105136107fa565b73ffffffffffffffffffffffffffffffffffffffff1614610569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610560906118f9565b60405180910390fd5b8060098190555050565b6000600354905090565b60095481565b60008061058e610c37565b905061059b858285610e08565b6105a6858585610e94565b60019150509392505050565b60006012905090565b6000806105c6610c37565b905061065a818585600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106559190611948565b610c3f565b600191505092915050565b600760009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106c9610c37565b73ffffffffffffffffffffffffffffffffffffffff166106e76107fa565b73ffffffffffffffffffffffffffffffffffffffff161461073d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610734906118f9565b60405180910390fd5b6107476000611232565b565b60066020528060005260406000206000915090505481565b610769610c37565b73ffffffffffffffffffffffffffffffffffffffff166107876107fa565b73ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906118f9565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108329061187c565b80601f016020809104026020016040519081016040528092919081815260200182805461085e9061187c565b80156108ab5780601f10610880576101008083540402835291602001916108ab565b820191906000526020600020905b81548152906001019060200180831161088e57829003601f168201915b5050505050905090565b6108bd610c37565b73ffffffffffffffffffffffffffffffffffffffff166108db6107fa565b73ffffffffffffffffffffffffffffffffffffffff1614610931576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610928906118f9565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080610997610c37565b90506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a54906119ee565b60405180910390fd5b610a6a8286868403610c3f565b60019250505092915050565b600080610a81610c37565b9050610a8e818585610e94565b600191505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b28610c37565b73ffffffffffffffffffffffffffffffffffffffff16610b466107fa565b73ffffffffffffffffffffffffffffffffffffffff1614610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b93906118f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0290611a80565b60405180910390fd5b610c1481611232565b50565b60086020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca590611b12565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490611ba4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dfb9190611678565b60405180910390a3505050565b6000610e148484610a99565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e8e5781811015610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7790611c10565b60405180910390fd5b610e8d8484848403610c3f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa90611ca2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6990611d34565b60405180910390fd5b610f7d8383836112f6565b600760009054906101000a900460ff161561109957600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156110365750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561109857600061104784846112fb565b905061105281611377565b43600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111790611dc6565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b59190611948565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112199190611678565b60405180910390a361122c848484611463565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600061130683611468565b1580611318575061131682611468565b155b611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90611e32565b60405180910390fd5b61136083611468565b1561136d57819050611371565b8290505b92915050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061141d57506001436113ce9190611948565b600954600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141b9190611948565b105b90508061145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690611e9e565b60405180910390fd5b5050565b505050565b600080823b905060008111915050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156114b557808201518184015260208101905061149a565b60008484015250505050565b6000601f19601f8301169050919050565b60006114dd8261147b565b6114e78185611486565b93506114f7818560208601611497565b611500816114c1565b840191505092915050565b6000602082019050818103600083015261152581846114d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061155d82611532565b9050919050565b61156d81611552565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000819050919050565b6115a381611590565b81146115ae57600080fd5b50565b6000813590506115c08161159a565b92915050565b600080604083850312156115dd576115dc61152d565b5b60006115eb8582860161157b565b92505060206115fc858286016115b1565b9150509250929050565b60008115159050919050565b61161b81611606565b82525050565b60006020820190506116366000830184611612565b92915050565b6000602082840312156116525761165161152d565b5b6000611660848285016115b1565b91505092915050565b61167281611590565b82525050565b600060208201905061168d6000830184611669565b92915050565b6000806000606084860312156116ac576116ab61152d565b5b60006116ba8682870161157b565b93505060206116cb8682870161157b565b92505060406116dc868287016115b1565b9150509250925092565b600060ff82169050919050565b6116fc816116e6565b82525050565b600060208201905061171760008301846116f3565b92915050565b6000602082840312156117335761173261152d565b5b60006117418482850161157b565b91505092915050565b61175381611606565b811461175e57600080fd5b50565b6000813590506117708161174a565b92915050565b60006020828403121561178c5761178b61152d565b5b600061179a84828501611761565b91505092915050565b6117ac81611552565b82525050565b60006020820190506117c760008301846117a3565b92915050565b600080604083850312156117e4576117e361152d565b5b60006117f28582860161157b565b925050602061180385828601611761565b9150509250929050565b600080604083850312156118245761182361152d565b5b60006118328582860161157b565b92505060206118438582860161157b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061189457607f821691505b6020821081036118a7576118a661184d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006118e3602083611486565b91506118ee826118ad565b602082019050919050565b60006020820190508181036000830152611912816118d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061195382611590565b915061195e83611590565b925082820190508082111561197657611975611919565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006119d8602583611486565b91506119e38261197c565b604082019050919050565b60006020820190508181036000830152611a07816119cb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611a6a602683611486565b9150611a7582611a0e565b604082019050919050565b60006020820190508181036000830152611a9981611a5d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611afc602483611486565b9150611b0782611aa0565b604082019050919050565b60006020820190508181036000830152611b2b81611aef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611b8e602283611486565b9150611b9982611b32565b604082019050919050565b60006020820190508181036000830152611bbd81611b81565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611bfa601d83611486565b9150611c0582611bc4565b602082019050919050565b60006020820190508181036000830152611c2981611bed565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611c8c602583611486565b9150611c9782611c30565b604082019050919050565b60006020820190508181036000830152611cbb81611c7f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611d1e602383611486565b9150611d2982611cc2565b604082019050919050565b60006020820190508181036000830152611d4d81611d11565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611db0602683611486565b9150611dbb82611d54565b604082019050919050565b60006020820190508181036000830152611ddf81611da3565b9050919050565b7f4e6f20626f74732061726520616c6c6f77656421000000000000000000000000600082015250565b6000611e1c601483611486565b9150611e2782611de6565b602082019050919050565b60006020820190508181036000830152611e4b81611e0f565b9050919050565b7f4d6178207478206672657175656e637920657863656564656421000000000000600082015250565b6000611e88601a83611486565b9150611e9382611e52565b602082019050919050565b60006020820190508181036000830152611eb781611e7b565b905091905056fea2646970667358221220812009150cf506f2b7ec67774729f83195dbc08d03d01f5c6e823c10ac31cdf864736f6c63430008110033