0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063aac5d69f11610071578063aac5d69f14610323578063dd62ed3e1461033f578063df161c1f1461036f578063ef38543414610379578063f4cb7a57146103835761012c565b8063715018a61461027d5780638da5cb5b1461028757806395d89b41146102a5578063a457c2d7146102c3578063a9059cbb146102f35761012c565b8063313ce567116100f4578063313ce567146101d757806339509351146101f5578063463f903b14610225578063538567051461024357806370a082311461024d5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f578063235a9d7e1461019d57806323b872dd146101a7575b600080fd5b61013961038d565b60405161014691906111ad565b60405180910390f35b61016960048036038101906101649190611268565b61041f565b60405161017691906112c3565b60405180910390f35b610187610436565b60405161019491906112ed565b60405180910390f35b6101a5610440565b005b6101c160048036038101906101bc9190611308565b610442565b6040516101ce91906112c3565b60405180910390f35b6101df610535565b6040516101ec9190611377565b60405180910390f35b61020f600480360381019061020a9190611268565b61054c565b60405161021c91906112c3565b60405180910390f35b61022d6105f1565b60405161023a91906112ed565b60405180910390f35b61024b6105f9565b005b61026760048036038101906102629190611392565b6106ab565b60405161027491906112ed565b60405180910390f35b6102856106f4565b005b61028f610847565b60405161029c91906113ce565b60405180910390f35b6102ad610870565b6040516102ba91906111ad565b60405180910390f35b6102dd60048036038101906102d89190611268565b610902565b6040516102ea91906112c3565b60405180910390f35b61030d60048036038101906103089190611268565b6109a7565b60405161031a91906112c3565b60405180910390f35b61033d600480360381019061033891906113e9565b610a00565b005b61035960048036038101906103549190611416565b610ae2565b60405161036691906112ed565b60405180910390f35b610377610b69565b005b610381610b6b565b005b61038b610b6d565b005b60606001805461039c90611485565b80601f01602080910402602001604051908101604052809291908181526020018280546103c890611485565b80156104155780601f106103ea57610100808354040283529160200191610415565b820191906000526020600020905b8154815290600101906020018083116103f857829003601f168201915b5050505050905090565b600061042c338484610c1f565b6001905092915050565b6000600454905090565b565b6000808211610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90611502565b60405180910390fd5b610491848484610d0a565b61052a843361052585600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f8090919063ffffffff16565b610c1f565b600190509392505050565b6000600360009054906101000a900460ff16905090565b60006105e733846105e285600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fdf90919063ffffffff16565b610c1f565b6001905092915050565b600042905090565b61060161103d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106859061156e565b60405180910390fd5b6001600860006101000a81548160ff021916908315150217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106fc61103d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107809061156e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461087f90611485565b80601f01602080910402602001604051908101604052809291908181526020018280546108ab90611485565b80156108f85780601f106108cd576101008083540402835291602001916108f8565b820191906000526020600020905b8154815290600101906020018083116108db57829003601f168201915b5050505050905090565b600061099d338461099885600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f8090919063ffffffff16565b610c1f565b6001905092915050565b60008082116109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e290611502565b60405180910390fd5b6109f6338484610d0a565b6001905092915050565b610a0861103d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c9061156e565b60405180910390fd5b60008111610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf906115da565b60405180910390fd5b8060078190555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b565b565b610b7561103d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf99061156e565b60405180910390fd5b6000600860006101000a81548160ff021916908315150217905550565b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cfd91906112ed565b60405180910390a3505050565b8281600860009054906101000a900460ff161580610d67575060075481111580610d665750610d37610847565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90611646565b60405180910390fd5b6000610dcf6064610dc160008761104590919063ffffffff16565b6110bf90919063ffffffff16565b90506000610de68286610f8090919063ffffffff16565b9050610e3a85600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f8090919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ecf81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fdf90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f6f91906112ed565b60405180910390a350505050505050565b600082821115610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc906116b2565b60405180910390fd5b60008284610fd39190611701565b90508091505092915050565b6000808284610fee9190611735565b905083811015611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102a906117b5565b60405180910390fd5b8091505092915050565b600033905090565b600080830361105757600090506110b9565b6000828461106591906117d5565b90508284826110749190611846565b146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906118e9565b60405180910390fd5b809150505b92915050565b6000808211611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa90611955565b60405180910390fd5b600082846111119190611846565b90508091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561115757808201518184015260208101905061113c565b60008484015250505050565b6000601f19601f8301169050919050565b600061117f8261111d565b6111898185611128565b9350611199818560208601611139565b6111a281611163565b840191505092915050565b600060208201905081810360008301526111c78184611174565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111ff826111d4565b9050919050565b61120f816111f4565b811461121a57600080fd5b50565b60008135905061122c81611206565b92915050565b6000819050919050565b61124581611232565b811461125057600080fd5b50565b6000813590506112628161123c565b92915050565b6000806040838503121561127f5761127e6111cf565b5b600061128d8582860161121d565b925050602061129e85828601611253565b9150509250929050565b60008115159050919050565b6112bd816112a8565b82525050565b60006020820190506112d860008301846112b4565b92915050565b6112e781611232565b82525050565b600060208201905061130260008301846112de565b92915050565b600080600060608486031215611321576113206111cf565b5b600061132f8682870161121d565b93505060206113408682870161121d565b925050604061135186828701611253565b9150509250925092565b600060ff82169050919050565b6113718161135b565b82525050565b600060208201905061138c6000830184611368565b92915050565b6000602082840312156113a8576113a76111cf565b5b60006113b68482850161121d565b91505092915050565b6113c8816111f4565b82525050565b60006020820190506113e360008301846113bf565b92915050565b6000602082840312156113ff576113fe6111cf565b5b600061140d84828501611253565b91505092915050565b6000806040838503121561142d5761142c6111cf565b5b600061143b8582860161121d565b925050602061144c8582860161121d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061149d57607f821691505b6020821081036114b0576114af611456565b5b50919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b60006114ec602083611128565b91506114f7826114b6565b602082019050919050565b6000602082019050818103600083015261151b816114df565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611558602083611128565b915061156382611522565b602082019050919050565b600060208201905081810360008301526115878161154b565b9050919050565b7f4c696d6974206d7573742062652067726561746572207468616e207a65726f00600082015250565b60006115c4601f83611128565b91506115cf8261158e565b602082019050919050565b600060208201905081810360008301526115f3816115b7565b9050919050565b7f427579206c696d69742065786365656465640000000000000000000000000000600082015250565b6000611630601283611128565b915061163b826115fa565b602082019050919050565b6000602082019050818103600083015261165f81611623565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b600061169c601e83611128565b91506116a782611666565b602082019050919050565b600060208201905081810360008301526116cb8161168f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061170c82611232565b915061171783611232565b925082820390508181111561172f5761172e6116d2565b5b92915050565b600061174082611232565b915061174b83611232565b9250828201905080821115611763576117626116d2565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061179f601b83611128565b91506117aa82611769565b602082019050919050565b600060208201905081810360008301526117ce81611792565b9050919050565b60006117e082611232565b91506117eb83611232565b92508282026117f981611232565b915082820484148315176118105761180f6116d2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061185182611232565b915061185c83611232565b92508261186c5761186b611817565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006118d3602183611128565b91506118de82611877565b604082019050919050565b60006020820190508181036000830152611902816118c6565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b600061193f601a83611128565b915061194a82611909565b602082019050919050565b6000602082019050818103600083015261196e81611932565b905091905056fea2646970667358221220d75a301a0a75f9f3130f7ba3f42c57540550b3b7ce1724596bf5ad190ecb93c464736f6c63430008130033
0x60806040526040518060400160405280600981526020017f646f677769666861740000000000000000000000000000000000000000000000815250600190816200004a9190620005b4565b506040518060400160405280600381526020017f574946000000000000000000000000000000000000000000000000000000000081525060029081620000919190620005b4565b506009600360006101000a81548160ff021916908360ff160217905550600360009054906101000a900460ff1660ff166001620000cf91906200081e565b670de0b6b3a7640000620000e491906200086f565b600455664a9b63844880006007556001600860006101000a81548160ff0219169083151502179055503480156200011a57600080fd5b5060006200012d6200033260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000620001dd6200033260201b60201c565b905080600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600454600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620003239190620008cb565b60405180910390a350620008e8565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003bc57607f821691505b602082108103620003d257620003d162000374565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200043c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003fd565b620004488683620003fd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004956200048f620004898462000460565b6200046a565b62000460565b9050919050565b6000819050919050565b620004b18362000474565b620004c9620004c0826200049c565b8484546200040a565b825550505050565b600090565b620004e0620004d1565b620004ed818484620004a6565b505050565b5b81811015620005155762000509600082620004d6565b600181019050620004f3565b5050565b601f82111562000564576200052e81620003d8565b6200053984620003ed565b8101602085101562000549578190505b620005616200055885620003ed565b830182620004f2565b50505b505050565b600082821c905092915050565b6000620005896000198460080262000569565b1980831691505092915050565b6000620005a4838362000576565b9150826002028217905092915050565b620005bf826200033a565b67ffffffffffffffff811115620005db57620005da62000345565b5b620005e78254620003a3565b620005f482828562000519565b600060209050601f8311600181146200062c576000841562000617578287015190505b62000623858262000596565b86555062000693565b601f1984166200063c86620003d8565b60005b8281101562000666578489015182556001820191506020850194506020810190506200063f565b8683101562000686578489015162000682601f89168262000576565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000729578086048111156200070157620007006200069b565b5b6001851615620007115780820291505b80810290506200072185620006ca565b9450620006e1565b94509492505050565b60008262000744576001905062000817565b8162000754576000905062000817565b81600181146200076d57600281146200077857620007ae565b600191505062000817565b60ff8411156200078d576200078c6200069b565b5b8360020a915084821115620007a757620007a66200069b565b5b5062000817565b5060208310610133831016604e8410600b8410161715620007e85782820a905083811115620007e257620007e16200069b565b5b62000817565b620007f78484846001620006d7565b925090508184048111156200081157620008106200069b565b5b81810290505b9392505050565b60006200082b8262000460565b9150620008388362000460565b9250620008677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000732565b905092915050565b60006200087c8262000460565b9150620008898362000460565b9250828202620008998162000460565b91508282048414831517620008b357620008b26200069b565b5b5092915050565b620008c58162000460565b82525050565b6000602082019050620008e26000830184620008ba565b92915050565b6119ab80620008f86000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063aac5d69f11610071578063aac5d69f14610323578063dd62ed3e1461033f578063df161c1f1461036f578063ef38543414610379578063f4cb7a57146103835761012c565b8063715018a61461027d5780638da5cb5b1461028757806395d89b41146102a5578063a457c2d7146102c3578063a9059cbb146102f35761012c565b8063313ce567116100f4578063313ce567146101d757806339509351146101f5578063463f903b14610225578063538567051461024357806370a082311461024d5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f578063235a9d7e1461019d57806323b872dd146101a7575b600080fd5b61013961038d565b60405161014691906111ad565b60405180910390f35b61016960048036038101906101649190611268565b61041f565b60405161017691906112c3565b60405180910390f35b610187610436565b60405161019491906112ed565b60405180910390f35b6101a5610440565b005b6101c160048036038101906101bc9190611308565b610442565b6040516101ce91906112c3565b60405180910390f35b6101df610535565b6040516101ec9190611377565b60405180910390f35b61020f600480360381019061020a9190611268565b61054c565b60405161021c91906112c3565b60405180910390f35b61022d6105f1565b60405161023a91906112ed565b60405180910390f35b61024b6105f9565b005b61026760048036038101906102629190611392565b6106ab565b60405161027491906112ed565b60405180910390f35b6102856106f4565b005b61028f610847565b60405161029c91906113ce565b60405180910390f35b6102ad610870565b6040516102ba91906111ad565b60405180910390f35b6102dd60048036038101906102d89190611268565b610902565b6040516102ea91906112c3565b60405180910390f35b61030d60048036038101906103089190611268565b6109a7565b60405161031a91906112c3565b60405180910390f35b61033d600480360381019061033891906113e9565b610a00565b005b61035960048036038101906103549190611416565b610ae2565b60405161036691906112ed565b60405180910390f35b610377610b69565b005b610381610b6b565b005b61038b610b6d565b005b60606001805461039c90611485565b80601f01602080910402602001604051908101604052809291908181526020018280546103c890611485565b80156104155780601f106103ea57610100808354040283529160200191610415565b820191906000526020600020905b8154815290600101906020018083116103f857829003601f168201915b5050505050905090565b600061042c338484610c1f565b6001905092915050565b6000600454905090565b565b6000808211610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90611502565b60405180910390fd5b610491848484610d0a565b61052a843361052585600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f8090919063ffffffff16565b610c1f565b600190509392505050565b6000600360009054906101000a900460ff16905090565b60006105e733846105e285600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fdf90919063ffffffff16565b610c1f565b6001905092915050565b600042905090565b61060161103d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106859061156e565b60405180910390fd5b6001600860006101000a81548160ff021916908315150217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106fc61103d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107809061156e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461087f90611485565b80601f01602080910402602001604051908101604052809291908181526020018280546108ab90611485565b80156108f85780601f106108cd576101008083540402835291602001916108f8565b820191906000526020600020905b8154815290600101906020018083116108db57829003601f168201915b5050505050905090565b600061099d338461099885600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f8090919063ffffffff16565b610c1f565b6001905092915050565b60008082116109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e290611502565b60405180910390fd5b6109f6338484610d0a565b6001905092915050565b610a0861103d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c9061156e565b60405180910390fd5b60008111610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf906115da565b60405180910390fd5b8060078190555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b565b565b610b7561103d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf99061156e565b60405180910390fd5b6000600860006101000a81548160ff021916908315150217905550565b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cfd91906112ed565b60405180910390a3505050565b8281600860009054906101000a900460ff161580610d67575060075481111580610d665750610d37610847565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90611646565b60405180910390fd5b6000610dcf6064610dc160008761104590919063ffffffff16565b6110bf90919063ffffffff16565b90506000610de68286610f8090919063ffffffff16565b9050610e3a85600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f8090919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ecf81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fdf90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f6f91906112ed565b60405180910390a350505050505050565b600082821115610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc906116b2565b60405180910390fd5b60008284610fd39190611701565b90508091505092915050565b6000808284610fee9190611735565b905083811015611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102a906117b5565b60405180910390fd5b8091505092915050565b600033905090565b600080830361105757600090506110b9565b6000828461106591906117d5565b90508284826110749190611846565b146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906118e9565b60405180910390fd5b809150505b92915050565b6000808211611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa90611955565b60405180910390fd5b600082846111119190611846565b90508091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561115757808201518184015260208101905061113c565b60008484015250505050565b6000601f19601f8301169050919050565b600061117f8261111d565b6111898185611128565b9350611199818560208601611139565b6111a281611163565b840191505092915050565b600060208201905081810360008301526111c78184611174565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111ff826111d4565b9050919050565b61120f816111f4565b811461121a57600080fd5b50565b60008135905061122c81611206565b92915050565b6000819050919050565b61124581611232565b811461125057600080fd5b50565b6000813590506112628161123c565b92915050565b6000806040838503121561127f5761127e6111cf565b5b600061128d8582860161121d565b925050602061129e85828601611253565b9150509250929050565b60008115159050919050565b6112bd816112a8565b82525050565b60006020820190506112d860008301846112b4565b92915050565b6112e781611232565b82525050565b600060208201905061130260008301846112de565b92915050565b600080600060608486031215611321576113206111cf565b5b600061132f8682870161121d565b93505060206113408682870161121d565b925050604061135186828701611253565b9150509250925092565b600060ff82169050919050565b6113718161135b565b82525050565b600060208201905061138c6000830184611368565b92915050565b6000602082840312156113a8576113a76111cf565b5b60006113b68482850161121d565b91505092915050565b6113c8816111f4565b82525050565b60006020820190506113e360008301846113bf565b92915050565b6000602082840312156113ff576113fe6111cf565b5b600061140d84828501611253565b91505092915050565b6000806040838503121561142d5761142c6111cf565b5b600061143b8582860161121d565b925050602061144c8582860161121d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061149d57607f821691505b6020821081036114b0576114af611456565b5b50919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b60006114ec602083611128565b91506114f7826114b6565b602082019050919050565b6000602082019050818103600083015261151b816114df565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611558602083611128565b915061156382611522565b602082019050919050565b600060208201905081810360008301526115878161154b565b9050919050565b7f4c696d6974206d7573742062652067726561746572207468616e207a65726f00600082015250565b60006115c4601f83611128565b91506115cf8261158e565b602082019050919050565b600060208201905081810360008301526115f3816115b7565b9050919050565b7f427579206c696d69742065786365656465640000000000000000000000000000600082015250565b6000611630601283611128565b915061163b826115fa565b602082019050919050565b6000602082019050818103600083015261165f81611623565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b600061169c601e83611128565b91506116a782611666565b602082019050919050565b600060208201905081810360008301526116cb8161168f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061170c82611232565b915061171783611232565b925082820390508181111561172f5761172e6116d2565b5b92915050565b600061174082611232565b915061174b83611232565b9250828201905080821115611763576117626116d2565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061179f601b83611128565b91506117aa82611769565b602082019050919050565b600060208201905081810360008301526117ce81611792565b9050919050565b60006117e082611232565b91506117eb83611232565b92508282026117f981611232565b915082820484148315176118105761180f6116d2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061185182611232565b915061185c83611232565b92508261186c5761186b611817565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006118d3602183611128565b91506118de82611877565b604082019050919050565b60006020820190508181036000830152611902816118c6565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b600061193f601a83611128565b915061194a82611909565b602082019050919050565b6000602082019050818103600083015261196e81611932565b905091905056fea2646970667358221220d75a301a0a75f9f3130f7ba3f42c57540550b3b7ce1724596bf5ad190ecb93c464736f6c63430008130033