60806040526934f086f3b33b684000006006556b033b2e3c9fd0803ce80000006007553480156200002f57600080fd5b506040518060400160405280600d81526020017f426173652d4d656e742044414f000000000000000000000000000000000000008152506040518060400160405280600481526020017f4244414f00000000000000000000000000000000000000000000000000000000815250620000bc620000b06200010a60201b60201c565b6200011260201b60201c565b8160049080519060200190620000d49291906200035a565b508060059080519060200190620000ed9291906200035a565b5050506200010433600754620001d660201b60201c565b620005a8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000240906200045d565b60405180910390fd5b6200025d600083836200035060201b60201c565b8060036000828254620002719190620004ad565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002c99190620004ad565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200033091906200047f565b60405180910390a36200034c600083836200035560201b60201c565b5050565b505050565b505050565b828054620003689062000514565b90600052602060002090601f0160209004810192826200038c5760008555620003d8565b82601f10620003a757805160ff1916838001178555620003d8565b82800160010185558215620003d8579182015b82811115620003d7578251825591602001919060010190620003ba565b5b509050620003e79190620003eb565b5090565b5b8082111562000406576000816000905550600101620003ec565b5090565b600062000419601f836200049c565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b62000457816200050a565b82525050565b6000602082019050818103600083015262000478816200040a565b9050919050565b60006020820190506200049660008301846200044c565b92915050565b600082825260208201905092915050565b6000620004ba826200050a565b9150620004c7836200050a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004ff57620004fe6200054a565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200052d57607f821691505b6020821081141562000544576200054362000579565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b611b0580620005b86000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb1461028a578063dd62ed3e146102ba578063f0dda65c146102ea578063f2fde38b14610306576100f5565b8063715018a6146102145780638da5cb5b1461021e57806395d89b411461023c578063a457c2d71461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610322565b60405161010f91906116d4565b60405180910390f35b610132600480360381019061012d91906111bd565b6103b4565b60405161013f91906116b9565b60405180910390f35b6101506103d2565b60405161015d9190611876565b60405180910390f35b610180600480360381019061017b919061116e565b6103dc565b60405161018d91906116b9565b60405180910390f35b61019e6104d4565b6040516101ab9190611891565b60405180910390f35b6101ce60048036038101906101c991906111bd565b6104dd565b6040516101db91906116b9565b60405180910390f35b6101fe60048036038101906101f99190611109565b610589565b60405161020b9190611876565b60405180910390f35b61021c6105d2565b005b61022661065a565b604051610233919061169e565b60405180910390f35b610244610683565b60405161025191906116d4565b60405180910390f35b610274600480360381019061026f91906111bd565b610715565b60405161028191906116b9565b60405180910390f35b6102a4600480360381019061029f91906111bd565b610800565b6040516102b191906116b9565b60405180910390f35b6102d460048036038101906102cf9190611132565b61081e565b6040516102e19190611876565b60405180910390f35b61030460048036038101906102ff91906111bd565b6108a5565b005b610320600480360381019061031b9190611109565b610961565b005b60606004805461033190611a00565b80601f016020809104026020016040519081016040528092919081815260200182805461035d90611a00565b80156103aa5780601f1061037f576101008083540402835291602001916103aa565b820191906000526020600020905b81548152906001019060200180831161038d57829003601f168201915b5050505050905090565b60006103c86103c1610a59565b8484610a61565b6001905092915050565b6000600354905090565b60006103e9848484610c2c565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610434610a59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ab90611796565b60405180910390fd5b6104c8856104c0610a59565b858403610a61565b60019150509392505050565b60006012905090565b600061057f6104ea610a59565b8484600260006104f8610a59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461057a91906118c8565b610a61565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105da610a59565b73ffffffffffffffffffffffffffffffffffffffff166105f861065a565b73ffffffffffffffffffffffffffffffffffffffff161461064e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610645906117b6565b60405180910390fd5b6106586000610eb0565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461069290611a00565b80601f01602080910402602001604051908101604052809291908181526020018280546106be90611a00565b801561070b5780601f106106e05761010080835404028352916020019161070b565b820191906000526020600020905b8154815290600101906020018083116106ee57829003601f168201915b5050505050905090565b60008060026000610724610a59565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d890611836565b60405180910390fd5b6107f56107ec610a59565b85858403610a61565b600191505092915050565b600061081461080d610a59565b8484610c2c565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600081116108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df90611756565b60405180910390fd5b600654816108f584610589565b6108ff91906118c8565b1115610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093790611816565b60405180910390fd5b61095d82670de0b6b3a764000083610958919061191e565b610f74565b5050565b610969610a59565b73ffffffffffffffffffffffffffffffffffffffff1661098761065a565b73ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d4906117b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4490611716565b60405180910390fd5b610a5681610eb0565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac8906117f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3890611736565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c1f9190611876565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c93906117d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d03906116f6565b60405180910390fd5b610d178383836110d5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590611776565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e3391906118c8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e979190611876565b60405180910390a3610eaa8484846110da565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb90611856565b60405180910390fd5b610ff0600083836110d5565b806003600082825461100291906118c8565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461105891906118c8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110bd9190611876565b60405180910390a36110d1600083836110da565b5050565b505050565b505050565b6000813590506110ee81611aa1565b92915050565b60008135905061110381611ab8565b92915050565b60006020828403121561111b57600080fd5b6000611129848285016110df565b91505092915050565b6000806040838503121561114557600080fd5b6000611153858286016110df565b9250506020611164858286016110df565b9150509250929050565b60008060006060848603121561118357600080fd5b6000611191868287016110df565b93505060206111a2868287016110df565b92505060406111b3868287016110f4565b9150509250925092565b600080604083850312156111d057600080fd5b60006111de858286016110df565b92505060206111ef858286016110f4565b9150509250929050565b61120281611978565b82525050565b6112118161198a565b82525050565b6000611222826118ac565b61122c81856118b7565b935061123c8185602086016119cd565b61124581611a90565b840191505092915050565b600061125d6023836118b7565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006112c36026836118b7565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113296022836118b7565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061138f601d836118b7565b91507f416d6f756e74206d7573742062652067726561746572207468616e20300000006000830152602082019050919050565b60006113cf6026836118b7565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114356028836118b7565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b600061149b6020836118b7565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006114db6025836118b7565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115416024836118b7565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115a7601a836118b7565b91507f45786365656473206d61782077616c6c65742062616c616e63650000000000006000830152602082019050919050565b60006115e76025836118b7565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061164d601f836118b7565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b611689816119b6565b82525050565b611698816119c0565b82525050565b60006020820190506116b360008301846111f9565b92915050565b60006020820190506116ce6000830184611208565b92915050565b600060208201905081810360008301526116ee8184611217565b905092915050565b6000602082019050818103600083015261170f81611250565b9050919050565b6000602082019050818103600083015261172f816112b6565b9050919050565b6000602082019050818103600083015261174f8161131c565b9050919050565b6000602082019050818103600083015261176f81611382565b9050919050565b6000602082019050818103600083015261178f816113c2565b9050919050565b600060208201905081810360008301526117af81611428565b9050919050565b600060208201905081810360008301526117cf8161148e565b9050919050565b600060208201905081810360008301526117ef816114ce565b9050919050565b6000602082019050818103600083015261180f81611534565b9050919050565b6000602082019050818103600083015261182f8161159a565b9050919050565b6000602082019050818103600083015261184f816115da565b9050919050565b6000602082019050818103600083015261186f81611640565b9050919050565b600060208201905061188b6000830184611680565b92915050565b60006020820190506118a6600083018461168f565b92915050565b600081519050919050565b600082825260208201905092915050565b60006118d3826119b6565b91506118de836119b6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561191357611912611a32565b5b828201905092915050565b6000611929826119b6565b9150611934836119b6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561196d5761196c611a32565b5b828202905092915050565b600061198382611996565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156119eb5780820151818401526020810190506119d0565b838111156119fa576000848401525b50505050565b60006002820490506001821680611a1857607f821691505b60208210811415611a2c57611a2b611a61565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611aaa81611978565b8114611ab557600080fd5b50565b611ac1816119b6565b8114611acc57600080fd5b5056fea2646970667358221220ef794f221fd109055093218e6597871ee4c78595f36ff8751df222c73066299f64736f6c63430008000033