0x608060405234801561001057600080fd5b506004361061012b5760003560e01c80634215d573116100ad578063a9059cbb11610071578063a9059cbb1461036c578063c92fb9471461039c578063cdab73b5146103ba578063dd62ed3e146103d8578063f363217e146104085761012b565b80634215d573146102a057806342966c68146102be57806370a08231146102ee57806395d89b411461031e578063a457c2d71461033c5761012b565b806323b872dd116100f457806323b872dd146101d6578063313ce5671461020657806339509351146102245780633fa2c5751461025457806340c10f19146102705761012b565b8062435da51461013057806306fdde031461014e578063095ea7b31461016c57806315211d631461019c57806318160ddd146101b8575b600080fd5b610138610424565b604051610145919061180f565b60405180910390f35b61015661044a565b60405161016391906118c3565b60405180910390f35b6101866004803603810190610181919061194c565b6104dc565b60405161019391906119a7565b60405180910390f35b6101b660048036038101906101b191906119c2565b6104ff565b005b6101c0610574565b6040516101cd91906119fe565b60405180910390f35b6101f060048036038101906101eb9190611a19565b61057e565b6040516101fd91906119a7565b60405180910390f35b61020e6105ad565b60405161021b9190611a88565b60405180910390f35b61023e6004803603810190610239919061194c565b6105b6565b60405161024b91906119a7565b60405180910390f35b61026e600480360381019061026991906119c2565b6105ed565b005b61028a6004803603810190610285919061194c565b610662565b60405161029791906119a7565b60405180910390f35b6102a86106f7565b6040516102b5919061180f565b60405180910390f35b6102d860048036038101906102d39190611aa3565b61071d565b6040516102e591906119a7565b60405180910390f35b610308600480360381019061030391906119c2565b610739565b60405161031591906119fe565b60405180910390f35b610326610781565b60405161033391906118c3565b60405180910390f35b6103566004803603810190610351919061194c565b610813565b60405161036391906119a7565b60405180910390f35b6103866004803603810190610381919061194c565b61088a565b60405161039391906119a7565b60405180910390f35b6103a46108ad565b6040516103b19190611ae9565b60405180910390f35b6103c26108d1565b6040516103cf919061180f565b60405180910390f35b6103f260048036038101906103ed9190611b04565b6108f7565b6040516103ff91906119fe565b60405180910390f35b610422600480360381019061041d91906119c2565b61097e565b005b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606003805461045990611b73565b80601f016020809104026020016040519081016040528092919081815260200182805461048590611b73565b80156104d25780601f106104a7576101008083540402835291602001916104d2565b820191906000526020600020905b8154815290600101906020018083116104b557829003601f168201915b5050505050905090565b6000806104e7610a16565b90506104f4818585610a1e565b600191505092915050565b6105297f506c6179546f6b656e536574746572000000000000000000000000000000000033610be9565b610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055f90611bf1565b60405180910390fd5b61057181610c40565b50565b6000600254905090565b600080610589610a16565b9050610596858285610d1f565b6105a1858585610dab565b60019150509392505050565b60006012905090565b6000806105c1610a16565b90506105e28185856105d385896108f7565b6105dd9190611c40565b610a1e565b600191505092915050565b6106177f506c6179546f6b656e536574746572000000000000000000000000000000000033610be9565b610656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064d90611bf1565b60405180910390fd5b61065f81610e51565b50565b60006106a461066f610781565b60405160200161067f9190611d1e565b60405160208183030381529060405261069790611d7d565b61069f610a16565b610be9565b6106e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106da90611e30565b60405180910390fd5b6106ed8383610f2c565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061073061072a610a16565b83611083565b60019050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461079090611b73565b80601f01602080910402602001604051908101604052809291908181526020018280546107bc90611b73565b80156108095780601f106107de57610100808354040283529160200191610809565b820191906000526020600020905b8154815290600101906020018083116107ec57829003601f168201915b5050505050905090565b60008061081e610a16565b9050600061082c82866108f7565b905083811015610871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086890611ec2565b60405180910390fd5b61087e8286868403610a1e565b60019250505092915050565b600080610895610a16565b90506108a2818585610dab565b600191505092915050565b7f506c6179546f6b656e536574746572000000000000000000000000000000000081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109a87f506c6179546f6b656e536574746572000000000000000000000000000000000033610be9565b6109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90611bf1565b60405180910390fd5b6109f081611251565b50565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8590611f54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590611fe6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bdc91906119fe565b60405180910390a3505050565b6000610c388383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132c9092919063ffffffff16565b905092915050565b6000819050610c648173ffffffffffffffffffffffffffffffffffffffff166109f3565b610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a90612052565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f02a39e9533105de4d1b435f8c88df78499a7d43d8531efbacc79b0b0eb68d04081604051610d13919061180f565b60405180910390a15050565b6000610d2b84846108f7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610da55781811015610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e906120be565b60405180910390fd5b610da48484848403610a1e565b5b50505050565b82610db581611411565b15610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec9061212a565b60405180910390fd5b82610dff81611411565b15610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e369061212a565b60405180910390fd5b610e4a858585611467565b5050505050565b610e708173ffffffffffffffffffffffffffffffffffffffff166109f3565b610eb157806040517fbd94b436000000000000000000000000000000000000000000000000000000008152600401610ea89190612170565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f75a17ea4667bcf0458bae3f130ddc1958d212a8239cf7f78181e8dadb2f036d681604051610f21919061180f565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f93906121e3565b60405180910390fd5b610fa8600083836116df565b8060026000828254610fba9190611c40565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161106b91906119fe565b60405180910390a361107f600083836116e4565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90612275565b60405180910390fd5b6110ff826000836116df565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90612307565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161123891906119fe565b60405180910390a361124c836000846116e4565b505050565b6112708173ffffffffffffffffffffffffffffffffffffffff166109f3565b6112b157806040517fbd94b4360000000000000000000000000000000000000000000000000000000081526004016112a8919061234d565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc1af5622742cba495bc672727cd888bf9126ea99146d650f7f8319575155879081604051611321919061180f565b60405180910390a150565b600061134d8473ffffffffffffffffffffffffffffffffffffffff166109f3565b61138c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611383906123e6565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166391d1485484846040518363ffffffff1660e01b81526004016113c7929190612406565b602060405180830381865afa1580156113e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611408919061245b565b90509392505050565b60006114603083600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116e99092919063ffffffff16565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce906124fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e9061258c565b60405180910390fd5b6115528383836116df565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf9061261e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116c691906119fe565b60405180910390a36116d98484846116e4565b50505050565b505050565b505050565b600061170a8473ffffffffffffffffffffffffffffffffffffffff166109f3565b611749576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611740906123e6565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166373cf013c84846040518363ffffffff1660e01b815260040161178492919061263e565b602060405180830381865afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c5919061245b565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117f9826117ce565b9050919050565b611809816117ee565b82525050565b60006020820190506118246000830184611800565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611864578082015181840152602081019050611849565b83811115611873576000848401525b50505050565b6000601f19601f8301169050919050565b60006118958261182a565b61189f8185611835565b93506118af818560208601611846565b6118b881611879565b840191505092915050565b600060208201905081810360008301526118dd818461188a565b905092915050565b600080fd5b6118f3816117ee565b81146118fe57600080fd5b50565b600081359050611910816118ea565b92915050565b6000819050919050565b61192981611916565b811461193457600080fd5b50565b60008135905061194681611920565b92915050565b60008060408385031215611963576119626118e5565b5b600061197185828601611901565b925050602061198285828601611937565b9150509250929050565b60008115159050919050565b6119a18161198c565b82525050565b60006020820190506119bc6000830184611998565b92915050565b6000602082840312156119d8576119d76118e5565b5b60006119e684828501611901565b91505092915050565b6119f881611916565b82525050565b6000602082019050611a1360008301846119ef565b92915050565b600080600060608486031215611a3257611a316118e5565b5b6000611a4086828701611901565b9350506020611a5186828701611901565b9250506040611a6286828701611937565b9150509250925092565b600060ff82169050919050565b611a8281611a6c565b82525050565b6000602082019050611a9d6000830184611a79565b92915050565b600060208284031215611ab957611ab86118e5565b5b6000611ac784828501611937565b91505092915050565b6000819050919050565b611ae381611ad0565b82525050565b6000602082019050611afe6000830184611ada565b92915050565b60008060408385031215611b1b57611b1a6118e5565b5b6000611b2985828601611901565b9250506020611b3a85828601611901565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b8b57607f821691505b60208210811415611b9f57611b9e611b44565b5b50919050565b7f54493a2073656e646572206973206e6f74207365747465720000000000000000600082015250565b6000611bdb601883611835565b9150611be682611ba5565b602082019050919050565b60006020820190508181036000830152611c0a81611bce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c4b82611916565b9150611c5683611916565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c8b57611c8a611c11565b5b828201905092915050565b600081905092915050565b6000611cac8261182a565b611cb68185611c96565b9350611cc6818560208601611846565b80840191505092915050565b7f4d696e7465720000000000000000000000000000000000000000000000000000600082015250565b6000611d08600683611c96565b9150611d1382611cd2565b600682019050919050565b6000611d2a8284611ca1565b9150611d3582611cfb565b915081905092915050565b600081519050919050565b6000819050602082019050919050565b6000611d678251611ad0565b80915050919050565b600082821b905092915050565b6000611d8882611d40565b82611d9284611d4b565b9050611d9d81611d5b565b92506020821015611ddd57611dd87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802611d70565b831692505b5050919050565b7f506c6179546f6b656e3a206d73672073656e6465722063616e2774206d696e74600082015250565b6000611e1a602083611835565b9150611e2582611de4565b602082019050919050565b60006020820190508181036000830152611e4981611e0d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611eac602583611835565b9150611eb782611e50565b604082019050919050565b60006020820190508181036000830152611edb81611e9f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611f3e602483611835565b9150611f4982611ee2565b604082019050919050565b60006020820190508181036000830152611f6d81611f31565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611fd0602283611835565b9150611fdb82611f74565b604082019050919050565b60006020820190508181036000830152611fff81611fc3565b9050919050565b7f54493a20696e76616c6964206e6176696761746f720000000000000000000000600082015250565b600061203c601583611835565b915061204782612006565b602082019050919050565b6000602082019050818103600083015261206b8161202f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006120a8601d83611835565b91506120b382612072565b602082019050919050565b600060208201905081810360008301526120d78161209b565b9050919050565b7f54493a206163636f756e7420697320626c61636b4c6973740000000000000000600082015250565b6000612114601883611835565b915061211f826120de565b602082019050919050565b6000602082019050818103600083015261214381612107565b9050919050565b7f626c61636b4c6973740000000000000000000000000000000000000000000000815250565b60006040820190506121846000830161214a565b6121916020830184611800565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006121cd601f83611835565b91506121d882612197565b602082019050919050565b600060208201905081810360008301526121fc816121c0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061225f602183611835565b915061226a82612203565b604082019050919050565b6000602082019050818103600083015261228e81612252565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006122f1602283611835565b91506122fc82612295565b604082019050919050565b60006020820190508181036000830152612320816122e4565b9050919050565b7f726f6c654d616e61676572000000000000000000000000000000000000000000815250565b600060408201905061236160008301612327565b61236e6020830184611800565b92915050565b7f496e697469616c697a6174696f6e4c69623a20696e76616c696420726f6c654d60008201527f616e616765720000000000000000000000000000000000000000000000000000602082015250565b60006123d0602683611835565b91506123db82612374565b604082019050919050565b600060208201905081810360008301526123ff816123c3565b9050919050565b600060408201905061241b6000830185611ada565b6124286020830184611800565b9392505050565b6124388161198c565b811461244357600080fd5b50565b6000815190506124558161242f565b92915050565b600060208284031215612471576124706118e5565b5b600061247f84828501612446565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006124e4602583611835565b91506124ef82612488565b604082019050919050565b60006020820190508181036000830152612513816124d7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612576602383611835565b91506125818261251a565b604082019050919050565b600060208201905081810360008301526125a581612569565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612608602683611835565b9150612613826125ac565b604082019050919050565b60006020820190508181036000830152612637816125fb565b9050919050565b60006040820190506126536000830185611800565b6126606020830184611800565b939250505056fea2646970667358221220a57595e341ba79f03e1d28975cc36aa2e9e61c1c6fd07a8142e4fe222e77f46064736f6c634300080a0033
ipfs://a57595e341ba79f03e1d28975cc36aa2e9e61c1c6fd07a8142e4fe222e77f460