6080604052610abe600c5560006010556011805460ff191690553480156200002657600080fd5b5060405162002be838038062002be8833981016040819052620000499162000263565b825183908390620000629060009060208501906200010a565b508051620000789060019060208401906200010a565b505050620000956200008f620000b460201b60201c565b620000b8565b8051620000aa9060149060208401906200010a565b5050505062000343565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200011890620002f0565b90600052602060002090601f0160209004810192826200013c576000855562000187565b82601f106200015757805160ff191683800117855562000187565b8280016001018555821562000187579182015b82811115620001875782518255916020019190600101906200016a565b506200019592915062000199565b5090565b5b808211156200019557600081556001016200019a565b600082601f830112620001c1578081fd5b81516001600160401b0380821115620001de57620001de6200032d565b604051601f8301601f19908116603f011681019082821181831017156200020957620002096200032d565b8160405283815260209250868385880101111562000225578485fd5b8491505b8382101562000248578582018301518183018401529082019062000229565b838211156200025957848385830101525b9695505050505050565b60008060006060848603121562000278578283fd5b83516001600160401b03808211156200028f578485fd5b6200029d87838801620001b0565b94506020860151915080821115620002b3578384fd5b620002c187838801620001b0565b93506040860151915080821115620002d7578283fd5b50620002e686828701620001b0565b9150509250925092565b6002810460018216806200030557607f821691505b602082108114156200032757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61289580620003536000396000f3fe6080604052600436106101e75760003560e01c8063715018a611610102578063b88d4fde11610095578063e02a2bc111610064578063e02a2bc11461053f578063e985e9c51461055f578063f2fde38b1461057f578063f3fe12c91461059f576101ee565b8063b88d4fde146104ca578063bd106885146104ea578063c87b56dd1461050a578063c94364e31461052a576101ee565b8063a0bcfc7f116100d1578063a0bcfc7f1461044a578063a22cb4651461046a578063accc1d5e1461048a578063ad5f2210146104aa576101ee565b8063715018a6146103eb5780637e4bfd70146104005780638da5cb5b1461042057806395d89b4114610435576101ee565b80633ccfd60b1161017a5780634f6ccce7116101495780634f6ccce7146103765780636352211e146103965780636dc7a627146103b657806370a08231146103cb576101ee565b80633ccfd60b146103175780633f879faf1461032c57806342842e0e146103415780634f02c42014610361576101ee565b8063095ea7b3116101b6578063095ea7b31461029557806318160ddd146102b557806323b872dd146102d75780632f745c59146102f7576101ee565b806301ffc9a7146101f057806306d254da1461022657806306fdde0314610246578063081812fc14610268576101ee565b366101ee57005b005b3480156101fc57600080fd5b5061021061020b366004611f46565b6105bf565b60405161021d91906120ce565b60405180910390f35b34801561023257600080fd5b506101ee610241366004611cd4565b6105d2565b34801561025257600080fd5b5061025b61063c565b60405161021d91906120d9565b34801561027457600080fd5b50610288610283366004611fb1565b6106cf565b60405161021d919061207d565b3480156102a157600080fd5b506101ee6102b0366004611dfd565b610712565b3480156102c157600080fd5b506102ca6107aa565b60405161021d91906126f4565b3480156102e357600080fd5b506101ee6102f2366004611d20565b6107b0565b34801561030357600080fd5b506102ca610312366004611dfd565b6107e8565b34801561032357600080fd5b506101ee61083a565b34801561033857600080fd5b506102ca6108e7565b34801561034d57600080fd5b506101ee61035c366004611d20565b6108ed565b34801561036d57600080fd5b506102ca610908565b34801561038257600080fd5b506102ca610391366004611fb1565b61090e565b3480156103a257600080fd5b506102886103b1366004611fb1565b610969565b3480156103c257600080fd5b5061021061099e565b3480156103d757600080fd5b506102ca6103e6366004611cd4565b6109a7565b3480156103f757600080fd5b506101ee6109eb565b34801561040c57600080fd5b506101ee61041b366004611f7e565b610a36565b34801561042c57600080fd5b50610288610aaa565b34801561044157600080fd5b5061025b610ab9565b34801561045657600080fd5b506101ee610465366004611f7e565b610ac8565b34801561047657600080fd5b506101ee610485366004611dd4565b610b1e565b34801561049657600080fd5b506101ee6104a5366004611e26565b610b30565b3480156104b657600080fd5b506102106104c5366004611cd4565b610bef565b3480156104d657600080fd5b506101ee6104e5366004611d5b565b610c4f565b3480156104f657600080fd5b50610210610505366004611f7e565b610c8e565b34801561051657600080fd5b5061025b610525366004611fb1565b610cbc565b34801561053657600080fd5b506101ee610d4e565b34801561054b57600080fd5b506101ee61055a366004611e95565b610da1565b34801561056b57600080fd5b5061021061057a366004611cee565b610e56565b34801561058b57600080fd5b506101ee61059a366004611cd4565b610e84565b3480156105ab57600080fd5b506101ee6105ba366004611f7e565b610ef2565b60006105ca8261100f565b90505b919050565b6105da611034565b6001600160a01b03166105eb610aaa565b6001600160a01b03161461061a5760405162461bcd60e51b81526004016106119061255b565b60405180910390fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b60606000805461064b9061279d565b80601f01602080910402602001604051908101604052809291908181526020018280546106779061279d565b80156106c45780601f10610699576101008083540402835291602001916106c4565b820191906000526020600020905b8154815290600101906020018083116106a757829003601f168201915b505050505090505b90565b60006106da82611038565b6106f65760405162461bcd60e51b81526004016106119061250f565b506000908152600460205260409020546001600160a01b031690565b600061071d82610969565b9050806001600160a01b0316836001600160a01b031614156107515760405162461bcd60e51b8152600401610611906125df565b806001600160a01b0316610763611034565b6001600160a01b0316148061077f575061077f8161057a611034565b61079b5760405162461bcd60e51b8152600401610611906123ea565b6107a58383611055565b505050565b60085490565b6107c16107bb611034565b826110c3565b6107dd5760405162461bcd60e51b815260040161061190612620565b6107a5838383611140565b60006107f3836109a7565b82106108115760405162461bcd60e51b815260040161061190612194565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60126000610846611034565b6001600160a01b0316815260208101919091526040016000205460ff1615156001146108845760405162461bcd60e51b8152600401610611906123ba565b600047116108a45760405162461bcd60e51b815260040161061190612167565b6108ac611034565b6001600160a01b03166108fc479081150290604051600060405180830381858888f193505050501580156108e4573d6000803e3d6000fd5b50565b610abe81565b6107a583838360405180602001604052806000815250610c4f565b60105481565b60006109186107aa565b82106109365760405162461bcd60e51b8152600401610611906126a8565b6008828154811061095757634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806105ca5760405162461bcd60e51b815260040161061190612491565b60115460ff1681565b60006001600160a01b0382166109cf5760405162461bcd60e51b815260040161061190612447565b506001600160a01b031660009081526003602052604090205490565b6109f3611034565b6001600160a01b0316610a04610aaa565b6001600160a01b031614610a2a5760405162461bcd60e51b81526004016106119061255b565b610a346000611273565b565b610a3e611034565b6001600160a01b0316610a4f610aaa565b6001600160a01b031614610a755760405162461bcd60e51b81526004016106119061255b565b6000600f82604051610a879190611ff5565b908152604051908190036020019020805491151560ff1990921691909117905550565b600a546001600160a01b031690565b60606001805461064b9061279d565b610ad0611034565b6001600160a01b0316610ae1610aaa565b6001600160a01b031614610b075760405162461bcd60e51b81526004016106119061255b565b8051610b1a906014906020840190611b96565b5050565b610b1a610b29611034565b83836112c5565b610b38611034565b6001600160a01b0316610b49610aaa565b6001600160a01b031614610b6f5760405162461bcd60e51b81526004016106119061255b565b60005b818110156107a557600160126000858585818110610ba057634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610bb59190611cd4565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610be7816127d8565b915050610b72565b6000610bf9611034565b6001600160a01b0316610c0a610aaa565b6001600160a01b031614610c305760405162461bcd60e51b81526004016106119061255b565b506001600160a01b031660009081526012602052604090205460ff1690565b610c60610c5a611034565b836110c3565b610c7c5760405162461bcd60e51b815260040161061190612620565b610c8884848484611368565b50505050565b600080600f83604051610ca19190611ff5565b9081526040519081900360200190205460ff16915050919050565b6060610cc782611038565b610ce35760405162461bcd60e51b815260040161061190612590565b6000610ced61139b565b6000848152600d6020526040902054815191925090610d1b5760405180602001604052806000815250610d46565b81610d25826113aa565b604051602001610d36929190612011565b6040516020818303038152906040525b949350505050565b610d56611034565b6001600160a01b0316610d67610aaa565b6001600160a01b031614610d8d5760405162461bcd60e51b81526004016106119061255b565b6011805460ff19811660ff90911615179055565b610da9611034565b6001600160a01b0316610dba610aaa565b6001600160a01b031614610de05760405162461bcd60e51b81526004016106119061255b565b60005b82518110156107a55781600f848381518110610e0f57634e487b7160e01b600052603260045260246000fd5b6020026020010151604051610e249190611ff5565b908152604051908190036020019020805491151560ff1990921691909117905580610e4e816127d8565b915050610de3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b610e8c611034565b6001600160a01b0316610e9d610aaa565b6001600160a01b031614610ec35760405162461bcd60e51b81526004016106119061255b565b6001600160a01b038116610ee95760405162461bcd60e51b815260040161061190612231565b6108e481611273565b60115460ff16610f145760405162461bcd60e51b815260040161061190612123565b610abe6010546001610f26919061272e565b1115610f445760405162461bcd60e51b8152600401610611906120ec565b600f81604051610f549190611ff5565b9081526040519081900360200190205460ff16610f835760405162461bcd60e51b815260040161061190612671565b6000600f82604051610f959190611ff5565b908152604051908190036020019020805491151560ff19909216919091179055610fc8610fc0611034565b6010546114c5565b600160106000828254610fdb919061272e565b90915550506010546040517f7bb2b3c10797baccb6f8c4791f1edd6ca2f0d028ee0eda64b01a9a57e3a653f790600090a250565b60006001600160e01b0319821663780e9d6360e01b14806105ca57506105ca82611535565b3390565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061108a82610969565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006110ce82611038565b6110ea5760405162461bcd60e51b81526004016106119061236e565b60006110f583610969565b9050806001600160a01b0316846001600160a01b031614806111305750836001600160a01b0316611125846106cf565b6001600160a01b0316145b80610d465750610d468185610e56565b826001600160a01b031661115382610969565b6001600160a01b0316146111795760405162461bcd60e51b815260040161061190612277565b6001600160a01b03821661119f5760405162461bcd60e51b8152600401610611906122f3565b6111aa838383611575565b6111b5600082611055565b6001600160a01b03831660009081526003602052604081208054600192906111de90849061275a565b90915550506001600160a01b038216600090815260036020526040812080546001929061120c90849061272e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a46107a58383836107a5565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031614156112f75760405162461bcd60e51b815260040161061190612337565b6001600160a01b0383811660008181526005602090815260408083209487168084529490915290819020805460ff1916851515179055517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319061135b9085906120ce565b60405180910390a3505050565b611373848484611140565b61137f84848484611580565b610c885760405162461bcd60e51b8152600401610611906121df565b60606014805461064b9061279d565b6060816113cf57506040805180820190915260018152600360fc1b60208201526105cd565b8160005b81156113f957806113e3816127d8565b91506113f29050600a83612746565b91506113d3565b60008167ffffffffffffffff81111561142257634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561144c576020820181803683370190505b5090505b8415610d465761146160018361275a565b915061146e600a866127f3565b61147990603061272e565b60f81b81838151811061149c57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506114be600a86612746565b9450611450565b60006114cf61169b565b905060006114dc826116fc565b6000818152600e60205260409020549091501561150957634e487b7160e01b600052600160045260246000fd5b6000818152600e6020908152604080832060019055858352600d9091529020819055610c8884846117b3565b60006001600160e01b031982166380ac58cd60e01b148061156657506001600160e01b03198216635b5e139f60e01b145b806105ca57506105ca826117cd565b6107a58383836117e6565b6000611594846001600160a01b031661186f565b1561169057836001600160a01b031663150b7a026115b0611034565b8786866040518563ffffffff1660e01b81526004016115d29493929190612091565b602060405180830381600087803b1580156115ec57600080fd5b505af192505050801561161c575060408051601f3d908101601f1916820190925261161991810190611f62565b60015b611676573d80801561164a576040519150601f19603f3d011682016040523d82523d6000602084013e61164f565b606091505b50805161166e5760405162461bcd60e51b8152600401610611906121df565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610d46565b506001949350505050565b6000601054610abe6116ad919061275a565b6116b9575060006106cc565b600c5444423343406040516020016116d49493929190612050565b6040516020818303038152906040528051906020012060001c6116f791906127f3565b905090565b6000818152600b6020526040812054806117135750815b600b60006001600c54611726919061275a565b81526020019081526020016000205460001415611760576001600c5461174c919061275a565b6000848152600b6020526040902055611794565b600b60006001600c54611773919061275a565b81526020808201929092526040908101600090812054868252600b90935220555b6001600c60008282546117a7919061275a565b90915550909392505050565b610b1a82826040518060200160405280600081525061187e565b6001600160e01b031981166301ffc9a760e01b14919050565b6117f18383836107a5565b6001600160a01b03831661180d57611808816118b1565b611830565b816001600160a01b0316836001600160a01b0316146118305761183083826118f5565b6001600160a01b03821661184c5761184781611992565b6107a5565b826001600160a01b0316826001600160a01b0316146107a5576107a58282611a6b565b6001600160a01b03163b151590565b6118888383611aaf565b6118956000848484611580565b6107a55760405162461bcd60e51b8152600401610611906121df565b600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b60006001611902846109a7565b61190c919061275a565b60008381526007602052604090205490915080821461195f576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906119a49060019061275a565b600083815260096020526040812054600880549394509092849081106119da57634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060088381548110611a0957634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611a4f57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611a76836109a7565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216611ad55760405162461bcd60e51b8152600401610611906124da565b611ade81611038565b15611afb5760405162461bcd60e51b8152600401610611906122bc565b611b0760008383611575565b6001600160a01b0382166000908152600360205260408120805460019290611b3090849061272e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610b1a600083836107a5565b828054611ba29061279d565b90600052602060002090601f016020900481019282611bc45760008555611c0a565b82601f10611bdd57805160ff1916838001178555611c0a565b82800160010185558215611c0a579182015b82811115611c0a578251825591602001919060010190611bef565b50611c16929150611c1a565b5090565b5b80821115611c165760008155600101611c1b565b600067ffffffffffffffff831115611c4957611c49612833565b611c5c601f8401601f19166020016126fd565b9050828152838383011115611c7057600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b03811681146105cd57600080fd5b803580151581146105cd57600080fd5b600082601f830112611cbe578081fd5b611ccd83833560208501611c2f565b9392505050565b600060208284031215611ce5578081fd5b611ccd82611c87565b60008060408385031215611d00578081fd5b611d0983611c87565b9150611d1760208401611c87565b90509250929050565b600080600060608486031215611d34578081fd5b611d3d84611c87565b9250611d4b60208501611c87565b9150604084013590509250925092565b60008060008060808587031215611d70578081fd5b611d7985611c87565b9350611d8760208601611c87565b925060408501359150606085013567ffffffffffffffff811115611da9578182fd5b8501601f81018713611db9578182fd5b611dc887823560208401611c2f565b91505092959194509250565b60008060408385031215611de6578182fd5b611def83611c87565b9150611d1760208401611c9e565b60008060408385031215611e0f578182fd5b611e1883611c87565b946020939093013593505050565b60008060208385031215611e38578182fd5b823567ffffffffffffffff80821115611e4f578384fd5b818501915085601f830112611e62578384fd5b813581811115611e70578485fd5b8660208083028501011115611e83578485fd5b60209290920196919550909350505050565b60008060408385031215611ea7578182fd5b823567ffffffffffffffff80821115611ebe578384fd5b818501915085601f830112611ed1578384fd5b8135602082821115611ee557611ee5612833565b611ef281828402016126fd565b8281528181019350848201875b84811015611f2857611f168b8584358a0101611cae565b86529483019490830190600101611eff565b505080965050611f39818801611c9e565b9450505050509250929050565b600060208284031215611f57578081fd5b8135611ccd81612849565b600060208284031215611f73578081fd5b8151611ccd81612849565b600060208284031215611f8f578081fd5b813567ffffffffffffffff811115611fa5578182fd5b610d4684828501611cae565b600060208284031215611fc2578081fd5b5035919050565b60008151808452611fe1816020860160208601612771565b601f01601f19169290920160200192915050565b60008251612007818460208701612771565b9190910192915050565b60008351612023818460208801612771565b835190830190612037818360208801612771565b64173539b7b760d91b9101908152600501949350505050565b938452602084019290925260601b6bffffffffffffffffffffffff19166040830152605482015260740190565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906120c490830184611fc9565b9695505050505050565b901515815260200190565b600060208252611ccd6020830184611fc9565b60208082526018908201527f4e6f7420656e6f756768206c65667420746f206d696e742e0000000000000000604082015260600190565b60208082526024908201527f49742773206e6f7420706f737369626c6520746f20636c61696d206a757374206040820152633cb2ba1760e11b606082015260800190565b6020808252601390820152724e6f7468696e6720746f20776974686472617760681b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252601690820152752cb7bab91030b932903737ba103a34329037bbb732b960511b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601f908201527f50617373776f72642068617320616c7265616479206265656e20757365642e00604082015260600190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b90815260200190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561272657612726612833565b604052919050565b6000821982111561274157612741612807565b500190565b6000826127555761275561281d565b500490565b60008282101561276c5761276c612807565b500390565b60005b8381101561278c578181015183820152602001612774565b83811115610c885750506000910152565b6002810460018216806127b157607f821691505b602082108114156127d257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156127ec576127ec612807565b5060010190565b6000826128025761280261281d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146108e457600080fdfea2646970667358221220c74f9a1053a0b51026b3c05eaf95bcfb9d5ac2b61a52777a6b2412a1bc827a0764736f6c63430008010033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000065374727563740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000653545255435400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d51514d75543343687139613741714c53374452726a62536d36444a757a686b686f77704648616b4b5564766a2f00000000000000000000