0x60806040523480156200001157600080fd5b506040516200170638038062001706833981016040819052620000349162000282565b818160006200004483826200037d565b5060016200005382826200037d565b505060068054620000789250339160006200006e8362000449565b9091555062000080565b5050620004a8565b6001600160a01b038216620000dc5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064015b60405180910390fd5b620000e7816200019d565b15620001075760405162461bcd60e51b8152600401620000d39062000471565b62000112816200019d565b15620001325760405162461bcd60e51b8152600401620000d39062000471565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000908152600260205260409020546001600160a01b0316151590565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001e257600080fd5b81516001600160401b0380821115620001ff57620001ff620001ba565b604051601f8301601f19908116603f011681019082821181831017156200022a576200022a620001ba565b81604052838152602092508660208588010111156200024857600080fd5b600091505b838210156200026c57858201830151818301840152908201906200024d565b6000602085830101528094505050505092915050565b600080604083850312156200029657600080fd5b82516001600160401b0380821115620002ae57600080fd5b620002bc86838701620001d0565b93506020850151915080821115620002d357600080fd5b50620002e285828601620001d0565b9150509250929050565b600181811c908216806200030157607f821691505b6020821081036200032257634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000378576000816000526020600020601f850160051c81016020861015620003535750805b601f850160051c820191505b8181101562000374578281556001016200035f565b5050505b505050565b81516001600160401b03811115620003995762000399620001ba565b620003b181620003aa8454620002ec565b8462000328565b602080601f831160018114620003e95760008415620003d05750858301515b600019600386901b1c1916600185901b17855562000374565b600085815260208120601f198616915b828110156200041a57888601518255948401946001909101908401620003f9565b5085821015620004395787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000600182016200046a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b61124e80620004b86000396000f3fe608060405234801561001057600080fd5b50600436106100ba5760003560e01c806301ffc9a7146100bf57806306fdde03146100e7578063081812fc146100fc578063095ea7b3146101275780631249c58b1461013c57806323b872dd1461014457806342842e0e146101575780636352211e1461016a57806370a082311461017d57806395d89b411461019e578063a22cb465146101a6578063b88d4fde146101b9578063c87b56dd146101cc578063e985e9c5146101df575b600080fd5b6100d26100cd366004610d2c565b6101f2565b60405190151581526020015b60405180910390f35b6100ef610244565b6040516100de9190610d99565b61010f61010a366004610dac565b6102d6565b6040516001600160a01b0390911681526020016100de565b61013a610135366004610de1565b6102fd565b005b61013a610417565b61013a610152366004610e0b565b610438565b61013a610165366004610e0b565b610469565b61010f610178366004610dac565b610484565b61019061018b366004610e47565b6104b8565b6040519081526020016100de565b6100ef61053e565b61013a6101b4366004610e62565b61054d565b61013a6101c7366004610eb4565b61055c565b6100ef6101da366004610dac565b610594565b6100d26101ed366004610f8f565b610608565b60006001600160e01b031982166380ac58cd60e01b148061022357506001600160e01b03198216635b5e139f60e01b145b8061023e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461025390610fc2565b80601f016020809104026020016040519081016040528092919081815260200182805461027f90610fc2565b80156102cc5780601f106102a1576101008083540402835291602001916102cc565b820191906000526020600020905b8154815290600101906020018083116102af57829003601f168201915b5050505050905090565b60006102e182610636565b506000908152600460205260409020546001600160a01b031690565b600061030882610484565b9050806001600160a01b0316836001600160a01b03160361037a5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061039657506103968133610608565b6104085760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610371565b610412838361065e565b505050565b6006805461043691339190600061042d83610ffc565b919050556106cc565b565b61044233826107c7565b61045e5760405162461bcd60e51b815260040161037190611023565b610412838383610826565b6104128383836040518060200160405280600081525061055c565b60008061049083610978565b90506001600160a01b03811661023e5760405162461bcd60e51b815260040161037190611070565b60006001600160a01b0382166105225760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610371565b506001600160a01b031660009081526003602052604090205490565b60606001805461025390610fc2565b610558338383610993565b5050565b61056633836107c7565b6105825760405162461bcd60e51b815260040161037190611023565b61058e84848484610a5d565b50505050565b606061059f82610636565b60006105b660408051602081019091526000815290565b905060008151116105d65760405180602001604052806000815250610601565b806105e084610a90565b6040516020016105f19291906110a2565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61063f81610b22565b61065b5760405162461bcd60e51b815260040161037190611070565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061069382610484565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6001600160a01b0382166107225760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610371565b61072b81610b22565b156107485760405162461bcd60e51b8152600401610371906110d1565b61075181610b22565b1561076e5760405162461bcd60e51b8152600401610371906110d1565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291906000805160206111f9833981519152908290a45050565b6000806107d383610484565b9050806001600160a01b0316846001600160a01b031614806107fa57506107fa8185610608565b8061081e5750836001600160a01b0316610813846102d6565b6001600160a01b0316145b949350505050565b826001600160a01b031661083982610484565b6001600160a01b03161461085f5760405162461bcd60e51b815260040161037190611107565b6001600160a01b0382166108c15760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610371565b826001600160a01b03166108d482610484565b6001600160a01b0316146108fa5760405162461bcd60e51b815260040161037190611107565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184936000805160206111f983398151915291a4505050565b6000908152600260205260409020546001600160a01b031690565b816001600160a01b0316836001600160a01b0316036109f05760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610371565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a68848484610826565b610a7484848484610b3f565b61058e5760405162461bcd60e51b81526004016103719061114c565b60606000610a9d83610c40565b60010190506000816001600160401b03811115610abc57610abc610e9e565b6040519080825280601f01601f191660200182016040528015610ae6576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610af057509392505050565b600080610b2e83610978565b6001600160a01b0316141592915050565b60006001600160a01b0384163b15610c3557604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b8390339089908890889060040161119e565b6020604051808303816000875af1925050508015610bbe575060408051601f3d908101601f19168201909252610bbb918101906111db565b60015b610c1b573d808015610bec576040519150601f19603f3d011682016040523d82523d6000602084013e610bf1565b606091505b508051600003610c135760405162461bcd60e51b81526004016103719061114c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061081e565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c7f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310610ca9576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310610cc757662386f26fc10000830492506010015b6305f5e1008310610cdf576305f5e100830492506008015b6127108310610cf357612710830492506004015b60648310610d05576064830492506002015b600a831061023e5760010192915050565b6001600160e01b03198116811461065b57600080fd5b600060208284031215610d3e57600080fd5b813561060181610d16565b60005b83811015610d64578181015183820152602001610d4c565b50506000910152565b60008151808452610d85816020860160208601610d49565b601f01601f19169290920160200192915050565b6020815260006106016020830184610d6d565b600060208284031215610dbe57600080fd5b5035919050565b80356001600160a01b0381168114610ddc57600080fd5b919050565b60008060408385031215610df457600080fd5b610dfd83610dc5565b946020939093013593505050565b600080600060608486031215610e2057600080fd5b610e2984610dc5565b9250610e3760208501610dc5565b9150604084013590509250925092565b600060208284031215610e5957600080fd5b61060182610dc5565b60008060408385031215610e7557600080fd5b610e7e83610dc5565b915060208301358015158114610e9357600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610eca57600080fd5b610ed385610dc5565b9350610ee160208601610dc5565b92506040850135915060608501356001600160401b0380821115610f0457600080fd5b818701915087601f830112610f1857600080fd5b813581811115610f2a57610f2a610e9e565b604051601f8201601f19908116603f01168101908382118183101715610f5257610f52610e9e565b816040528281528a6020848701011115610f6b57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610fa257600080fd5b610fab83610dc5565b9150610fb960208401610dc5565b90509250929050565b600181811c90821680610fd657607f821691505b602082108103610ff657634e487b7160e01b600052602260045260246000fd5b50919050565b60006001820161101c57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b600083516110b4818460208801610d49565b8351908301906110c8818360208801610d49565b01949350505050565b6020808252601c908201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b604082015260600190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906111d190830184610d6d565b9695505050505050565b6000602082840312156111ed57600080fd5b815161060181610d1656feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122036cbb07bb197afd18fbf957710a254fd97a7c2e57197327ad63f5e9a567939a564736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000d45787472612046696e616e63650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054558545241000000000000000000000000000000000000000000000000000000