[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "Tier", "outputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "basePrice", "type": "uint256" }, { "internalType": "uint256", "name": "appRate", "type": "uint256" }, { "internalType": "uint256", "name": "boostingRate", "type": "uint256" }, { "internalType": "uint256", "name": "appMax", "type": "uint256" }, { "internalType": "uint256", "name": "totalSold", "type": "uint256" }, { "internalType": "uint256", "name": "tax", "type": "uint256" }, { "internalType": "uint256", "name": "buffer", "type": "uint256" }, { "internalType": "uint256", "name": "txLimit", "type": "uint256" }, { "internalType": "uint256", "name": "volume", "type": "uint256" }, { "internalType": "uint256", "name": "holders", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "owners", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "balances", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "_tier", "type": "uint256" }, { "internalType": "uint256", "name": "_tAmount", "type": "uint256" }, { "internalType": "bytes32", "name": "hash", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "buy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tier", "type": "uint256" }, { "internalType": "uint256", "name": "_tAmount", "type": "uint256" } ], "name": "buyEstimate", "outputs": [ { "internalType": "uint256", "name": "cPrice", "type": "uint256" }, { "internalType": "uint256", "name": "tPrice", "type": "uint256" }, { "internalType": "uint256", "name": "taxAmount", "type": "uint256" }, { "internalType": "uint256", "name": "bufertax", "type": "uint256" }, { "internalType": "uint256", "name": "_total", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "holder", "outputs": [ { "internalType": "bool", "name": "isHolder", "type": "bool" }, { "internalType": "uint256", "name": "holderByIndex", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "holders", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_user", "type": "string" }, { "internalType": "address", "name": "_dappWallet", "type": "address" }, { "internalType": "address", "name": "_ref", "type": "address" }, { "internalType": "address", "name": "_initer", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256[]", "name": "_tiers1", "type": "uint256[]" } ], "name": "initialize", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "hash", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "isValidSignature", "outputs": [ { "internalType": "bytes4", "name": "magicValue", "type": "bytes4" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tier", "type": "uint256" } ], "name": "liquid", "outputs": [ { "internalType": "uint256", "name": "liqValue", "type": "uint256" }, { "internalType": "uint256", "name": "ratio", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "manager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "receivedTokenId", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ref", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "reserve", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tier", "type": "uint256" }, { "internalType": "uint256", "name": "_tAmount", "type": "uint256" }, { "internalType": "bytes32", "name": "hash", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "sell", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tier", "type": "uint256" }, { "internalType": "uint256", "name": "_tAmount", "type": "uint256" } ], "name": "sellEstimate", "outputs": [ { "internalType": "uint256", "name": "cPrice", "type": "uint256" }, { "internalType": "uint256", "name": "tPrice", "type": "uint256" }, { "internalType": "uint256", "name": "taxAmount", "type": "uint256" }, { "internalType": "uint256", "name": "bufertax", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_period", "type": "uint256" }, { "internalType": "bool", "name": "withdraw", "type": "bool" }, { "internalType": "bytes32", "name": "hash", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "subscribe", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "subscriber", "outputs": [ { "internalType": "uint256", "name": "startingAt", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "claimed", "type": "uint256" }, { "internalType": "uint256", "name": "timeline", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_update", "type": "uint256[]" }, { "internalType": "uint256", "name": "_tier", "type": "uint256" } ], "name": "updateTier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60c0604052600560809081526418db1bdd5d60da1b60a05260019062000026908262000130565b50600480546001600160a01b03199081167381d2dcfbd9e8fe607290cb1da761ed35c9478043179091556008805490911673d00ae08403b9bbb9124bb305c09058e32c39a48c179055633b9aca006009553480156200008457600080fd5b50620001fc565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000b657607f821691505b602082108103620000d757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012b57600081815260208120601f850160051c81016020861015620001065750805b601f850160051c820191505b81811015620001275782815560010162000112565b5050505b505050565b81516001600160401b038111156200014c576200014c6200008b565b62000164816200015d8454620000a1565b84620000dd565b602080601f8311600181146200019c5760008415620001835750858301515b600019600386901b1c1916600185901b17855562000127565b600085815260208120601f198616915b82811015620001cd57888601518255948401946001909101908401620001ac565b5085821015620001ec5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61598b806200020c6000396000f3fe6080604052600436106101f85760003560e01c80634e1273f41161010d578063ab3587cd116100a0578063e985e9c51161006f578063e985e9c514610767578063f23a6e61146107a2578063f242432a146107ce578063fc0c546a146107ee578063fc2d65a61461082657600080fd5b8063ab3587cd146106db578063aed6176e146106fb578063aee9adc71461071b578063bc197c811461073b57600080fd5b80638457a0df116100dc5780638457a0df146106715780638da5cb5b1461069157806395d89b41146106a6578063a22cb465146106bb57600080fd5b80634e1273f41461058b5780634e71d92d146105b85780635511ead0146105cd5780635ae33a401461062957600080fd5b8063150b7a0211610190578063268903881161015f578063268903881461045b5780632e69110e146104705780632eb2c2d6146105385780633fa512cc14610558578063481c6a751461056b57600080fd5b8063150b7a02146103ad5780631609eadb146103e65780631626ba7e1461041b57806321a78f681461043b57600080fd5b806303db7a80116101cc57806303db7a80146102e857806306fdde03146103085780630b12323f1461032a5780630e89341c1461038c57600080fd5b8062fdd58e146101fd57806301ffc9a71461024857806302d05d3f1461027857806303339bcb146102b0575b600080fd5b34801561020957600080fd5b506102356102183660046148a5565b600260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561025457600080fd5b506102686102633660046148e7565b610839565b604051901515815260200161023f565b34801561028457600080fd5b50600554610298906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b3480156102bc57600080fd5b506102356102cb366004614904565b600b60209081526000928352604080842090915290825290205481565b3480156102f457600080fd5b50600654610298906001600160a01b031681565b34801561031457600080fd5b5061031d6108dc565b60405161023f9190614984565b34801561033657600080fd5b5061036c610345366004614997565b600f6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161023f565b34801561039857600080fd5b5061031d6103a73660046149b4565b50606090565b3480156103b957600080fd5b506103cd6103c8366004614a82565b61096a565b6040516001600160e01b0319909116815260200161023f565b3480156103f257600080fd5b506104066104013660046149b4565b610987565b6040805192835260208301919091520161023f565b34801561042757600080fd5b506103cd610436366004614aed565b6109e2565b34801561044757600080fd5b50600754610298906001600160a01b031681565b61046e610469366004614b33565b610a19565b005b34801561047c57600080fd5b506104e561048b3660046149b4565b600d60205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a015490508b565b604080519b8c5260208c019a909a52988a01979097526060890195909552608088019390935260a087019190915260c086015260e08501526101008401526101208301526101408201526101600161023f565b34801561054457600080fd5b5061046e610553366004614c2b565b610abd565b61046e610566366004614cf7565b610dd8565b34801561057757600080fd5b50600454610298906001600160a01b031681565b34801561059757600080fd5b506105ab6105a6366004614d1f565b6116b6565b60405161023f9190614d8a565b3480156105c457600080fd5b5061046e6117f9565b3480156105d957600080fd5b506106126105e8366004614904565b600c6020908152600092835260408084209091529082529020805460019091015460ff9091169082565b60408051921515835260208301919091520161023f565b34801561063557600080fd5b50610649610644366004614dce565b611c5b565b604080519586526020860194909452928401919091526060830152608082015260a00161023f565b34801561067d57600080fd5b5061046e61068c366004614df0565b611eec565b34801561069d57600080fd5b50610298612205565b3480156106b257600080fd5b5061031d61229b565b3480156106c757600080fd5b5061046e6106d6366004614e31565b6122a8565b3480156106e757600080fd5b5061036c6106f6366004614dce565b612314565b34801561070757600080fd5b50610298610716366004614dce565b61255a565b34801561072757600080fd5b5061046e610736366004614e5f565b612592565b34801561074757600080fd5b506103cd610756366004614f38565b63bc197c8160e01b95945050505050565b34801561077357600080fd5b50610268610782366004614fd8565b600360209081526000928352604080842090915290825290205460ff1681565b3480156107ae57600080fd5b506103cd6107bd366004615006565b63f23a6e6160e01b95945050505050565b3480156107da57600080fd5b5061046e6107e9366004615062565b61277b565b3480156107fa57600080fd5b5061080361298b565b604080519384526001600160a01b0390921660208401529082015260600161023f565b61046e6108343660046150dd565b6129a3565b60006001600160e01b031982166352e5f9ad60e01b148061086a57506001600160e01b03198216630271189760e51b145b8061088557506001600160e01b03198216630a85bd0160e11b145b806108a057506001600160e01b031982166301ffc9a760e01b145b806108bb57506001600160e01b03198216636cdb3d1360e11b145b806108d657506303a24d0760e21b6001600160e01b03198316145b92915050565b600080546108e99061517f565b80601f01602080910402602001604051908101604052809291908181526020018280546109159061517f565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b505050505081565b60006109763384612af2565b50630a85bd0160e11b949350505050565b600a54600090819060ff16156109b85760405162461bcd60e51b81526004016109af906151b9565b60405180910390fd5b600a805460ff191660011790556109ce83612d5b565b600a805460ff191690559094909350915050565b6000806109f76109f0612205565b858561300a565b90508015610a0f5750630b135d3f60e11b90506108d6565b5060009392505050565b600a5460ff1615610a3c5760405162461bcd60e51b81526004016109af906151b9565b600a805460ff1916600117905560405182908290601090610a5e9083906151e1565b9081526040519081900360200190205460ff16158015610a835750610a83828261306c565b610a9f5760405162461bcd60e51b81526004016109af906151fd565b610aaa878787613142565b5050600a805460ff191690555050505050565b336001600160a01b0389161480610af757506001600160a01b038816600090815260036020908152604080832033845290915290205460ff165b610b325760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b60448201526064016109af565b6001600160a01b038716610b585760405162461bcd60e51b81526004016109af90615222565b848314610ba75760405162461bcd60e51b815260206004820152601b60248201527f696473206c656e67746820213d2076616c756573206c656e677468000000000060448201526064016109af565b60005b85811015610cbc57848482818110610bc457610bc461524a565b90506020020135600260008b6001600160a01b03166001600160a01b031681526020019081526020016000206000898985818110610c0457610c0461524a565b9050602002013581526020019081526020016000206000828254610c289190615276565b909155508590508482818110610c4057610c4061524a565b90506020020135600260008a6001600160a01b03166001600160a01b031681526020019081526020016000206000898985818110610c8057610c8061524a565b9050602002013581526020019081526020016000206000828254610ca49190615289565b90915550819050610cb48161529c565b915050610baa565b50866001600160a01b0316886001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb89898989604051610d1094939291906152e7565b60405180910390a46001600160a01b0387163b15610dce5760405163bc197c8160e01b808252906001600160a01b0389169063bc197c8190610d649033908d908c908c908c908c908c908c90600401615342565b6020604051808303816000875af1158015610d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da791906153a6565b6001600160e01b03191614610dce5760405162461bcd60e51b81526004016109af906153c3565b5050505050505050565b600a5460ff1615610dfb5760405162461bcd60e51b81526004016109af906151b9565b600a805460ff1916600117905560405182908290601090610e1d9083906151e1565b9081526040519081900360200190205460ff16158015610e425750610e42828261306c565b610e5e5760405162461bcd60e51b81526004016109af906151fd565b841515600003611372576000610e768761012c6153ec565b60046000908152600d6020526000805160206158f68339815191525491925090610ea090896133ec565b60095460046000908152600d6020527fafafe8948a4ed9d478b1e9a5780b119b5edd00ea7d07bc35bef7c814824eb9515492935091610eeb9190610ee59085906133ec565b90613475565b90506000610ef983836134d0565b905034811115610f375760405162461bcd60e51b81526020600482015260096024820152681a5b9ccb88199d5b9960ba1b60448201526064016109af565b34811015610f5257610f5233610f4d348461352f565b61358b565b50336000908152600f602052604081206003015490811580610f745750428211155b1561106757610f8342866134d0565b336000908152600f6020526040902060038101919091554290819055610fab9061012c615289565b336000908152600f6020908152604082206002019290925560049052600d90526000805160206158f683398151915254610fe690859061352f565b336000908152600080516020615916833981519152602052604081208054909190611012908490615289565b90915550506005546004600052600d6020526000805160206158f683398151915254611047916001600160a01b03169061358b565b506004600052600d6020526000805160206158f68339815191525461121e565b336000908152600f602052604090206002015442111561117857336000908152600f60205260408120600201546110a79061012c90610ee590429061352f565b6110b2906001615289565b336000908152600f6020526040812060010154919250906110d49083906133ec565b3360009081526000805160206159168339815191526020526040902054909150811161117557336000908152600080516020615916833981519152602052604081208054839290611126908490615276565b9091555050600554611141906001600160a01b03168261358b565b61114d8261012c6133ec565b336000908152600f60205260408120600201805490919061116f908490615289565b90915550505b50505b336000908152600f60205260408120600301805487929061119a908490615289565b90915550503360009081526000805160206159168339815191526020526040812080548692906111cb908490615289565b9091555050336000908152600f60205260409020600281015460039091015461121b916111f8919061352f565b336000908152600080516020615916833981519152602052604090205490613475565b90505b336000908152600f602090815260408083206001018490556000805160206158d683398151915290915281205460ff16151590036112d7573360008181526000805160206158d6833981519152602090815260408220805460ff1916600190811782556000805160206159368339815191528054928201839055600e9093528101825591527fe089e86205f11ee5fe3bb1b54c970fa879600bbdbf04ff75b3572a27988477cc0180546001600160a01b03191690911790555b600860009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561132757600080fd5b505af115801561133b573d6000803e3d6000fd5b505060085461136893508692506001600160a01b031690503360018f6113618a866134d0565b6003613659565b50505050506116a4565b3360009081526000805160206158d6833981519152602052604090205460ff16151560011480156113b45750336000908152600f602052604090206003015442105b80156113de5750336000908152600f602052604090206003015461012c906113dc904261352f565b115b6113e757600080fd5b336000908152600f602052604081206003015461140c9061012c90610ee5904261352f565b3360009081526000805160206158d6833981519152602081815260408320805460ff1916815560019081015460048552600e909252600080516020615936833981519152805495965091949293926114649190615276565b815481106114745761147461524a565b60009182526020808320909101546001600160a01b03168352828101939093526040909101812060019081019390935560049052600e9052600080516020615936833981519152805490916114c891615276565b815481106114d8576114d861524a565b60009182526020808320909101543383526000805160206158d683398151915290915260409091206001015460008051602061593683398151915280546001600160a01b039093169290919081106115325761153261524a565b600091825260208083209190910180546001600160a01b0319166001600160a01b03949094169390931790925560049052600e905260008051602061593683398151915280548061158557611585615403565b60008281526020808220830160001990810180546001600160a01b0319169055909201909255338252600f90526040812060038101829055600101546115cb90836153ec565b336000908152600080516020615916833981519152602052604090205490915081101561162e5733600090815260008051602061591683398151915260205260408120805483929061161e908490615276565b9091555061162e9050338261358b565b3360009081526000805160206159168339815191526020526040902054156116a1576005543360009081526000805160206159168339815191526020526040902054611683916001600160a01b03169061358b565b33600090815260008051602061591683398151915260205260408120555b50505b5050600a805460ff1916905550505050565b60608382146117075760405162461bcd60e51b815260206004820152601b60248201527f6f776e657273206c656e67746820213d20696473206c656e677468000000000060448201526064016109af565b836001600160401b0381111561171f5761171f6149cd565b604051908082528060200260200182016040528015611748578160200160208202803683370190505b50905060005b848110156117f0576002600087878481811061176c5761176c61524a565b90506020020160208101906117819190614997565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008585848181106117b5576117b561524a565b905060200201358152602001908152602001600020548282815181106117dd576117dd61524a565b602090810291909101015260010161174e565b50949350505050565b600a5460ff161561181c5760405162461bcd60e51b81526004016109af906151b9565b600a805460ff1916600117905560005b6004600052600e60205260008051602061593683398151915254811015611c4e5760046000908152600e60205260008051602061593683398151915280548390811061187a5761187a61524a565b60009182526020808320909101546001600160a01b0316808352600080516020615916833981519152909152604082205490925015611a54576001600160a01b0382166000908152600f6020526040812060030154421080156118f857506001600160a01b0383166000908152600f60205260409020600201544210155b156119d2576001600160a01b0383166000908152600f602052604081206002015461192c9061012c90610ee590429061352f565b611937906001615289565b6001600160a01b0385166000908152600f60205260409020600101549091506119619082906133ec565b915061196f8161012c6153ec565b6001600160a01b0385166000908152600f60205260408120600201805490919061199a908490615289565b90915550506001600160a01b0384166000908152600f602052604090206003810154600290910154036119cc57600192505b506119fe565b50506001600160a01b038116600090815260008051602061591683398151915260205260409020546001905b6001600160a01b0383166000908152600080516020615916833981519152602052604081208054839290611a33908490615276565b9091555050600554611a4e906001600160a01b03168261358b565b50611a8a565b6001600160a01b03821660009081526000805160206158d6833981519152602052604090205460ff161515600103611a8a575060015b8015611c39573360009081526000805160206158d6833981519152602081815260408320805460ff1916815560019081015460048552600e90925260008051602061593683398151915280549294929091611ae491615276565b81548110611af457611af461524a565b60009182526020808320909101546001600160a01b03168352828101939093526040909101812060019081019390935560049052600e905260008051602061593683398151915280549091611b4891615276565b81548110611b5857611b5861524a565b60009182526020808320909101543383526000805160206158d683398151915290915260409091206001015460008051602061593683398151915280546001600160a01b03909316929091908110611bb257611bb261524a565b600091825260208083209190910180546001600160a01b0319166001600160a01b039490941693909317909255338152600f82526040812060030181905560049052600e9052600080516020615936833981519152805480611c1657611c16615403565b600082815260209020810160001990810180546001600160a01b03191690550190555b50508080611c469061529c565b91505061182c565b50600a805460ff19169055565b6000828152600d6020526040812080546005909101549091829181908190815b87811015611d12576000898152600d60205260408120600401548311611cb25760008a8152600d6020526040902060030154611cc5565b60008a8152600d60205260409020600201545b600954909150611ce390610ee5611cdc8483615289565b8b906133ec565b9750611cef8888615289565b9650611cfc600184615289565b9250508080611d0a9061529c565b915050611c7b565b50611d1d8686615276565b94506000600460009054906101000a90046001600160a01b03166001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d989190615419565b6008549091506001600160a01b03808316911614611e35576008546004805460405163e4b643e360e01b81526001600160a01b0385811693820193909352611e32938316928592169063e4b643e3906024015b602060405180830381865afa158015611e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2c9190615419565b89613710565b95505b60095460008a8152600d6020526040902060060154611e5a9190610ee59089906133ec565b60008a8152600d602052604090206005015490955015611ec45760095460008a8152600d6020526040902060050154611ebf91611e9791906133ec565b60008b8152600d6020526040902060070154610ee590611eb8908c906133ec565b89906133ec565b611ec7565b60005b935083611ed48688615289565b611ede9190615289565b925050509295509295909350565b600a5460ff1615611f0f5760405162461bcd60e51b81526004016109af906151b9565b600a805460ff1916600117905560405182908290601090611f319083906151e1565b9081526040519081900360200190205460ff16158015611f565750611f56828261306c565b611f725760405162461bcd60e51b81526004016109af906151fd565b3360009081526002602090815260408083208984529091529020548511801590611fad57506000868152600d60205260409020600801548511155b611fe45760405162461bcd60e51b81526020600482015260086024820152672a34b2b91032b93960c11b60448201526064016109af565b6000806000611ff38989612314565b509250925092506000600460009054906101000a90046001600160a01b03166001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561204f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120739190615419565b60008b8152600b602090815260408083206001600160a01b0385168452909152902054909150838110156120bc5760006120ad858361352f565b90506120ba838d8361382e565b505b60008b8152600b602090815260408083206001600160a01b038616845290915290205484116121ee573360009081526002602081815260408084208f8552825280842080548f900390553084529181528183208e8452815281832080548e019055600b81528183206001600160a01b03861684528152818320805488900390558d8352600d905281206009018054869290612158908490615289565b909155505060008b8152600d6020526040812086815560050180548c9290612181908490615276565b90915550503360009081526002602090815260408083208e845290915281205490036121c9576121b38b336000613ab3565b6121c483833360008e896002613659565b6121da565b6121da83833360018e896002613659565b6121ee82336121e9878761352f565b613cf3565b5050600a805460ff19169055505050505050505050565b60008060008061221361298b565b92509250925046831461222a576000935050505090565b6040516331a9108f60e11b8152600481018290526001600160a01b03831690636352211e90602401602060405180830381865afa15801561226f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122939190615419565b935050505090565b600180546108e99061517f565b3360008181526003602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600080600080600061232587612d5b565b506000888152600d6020526040812080546005909101549097509192505b8781101561240e576000898152600d602052604081206004015483101561237b5760008a8152600d602052604090206003015461238e565b60008a8152600d60205260409020600201545b9050826001146123b1576009546123ac90610ee5611cdc828561352f565b6123c4565b60008a8152600d60205260409020600101545b975060006123d28585613475565b90506123de8189615289565b97506123eb600185615276565b93506123f78186615276565b9450505080806124069061529c565b915050612343565b506000600460009054906101000a90046001600160a01b03166001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124889190615419565b6008549091506001600160a01b038083169116146124e2576008546004805460405163e4b643e360e01b81526001600160a01b03858116938201939093526124df938316928592169063e4b643e390602401611deb565b95505b60095460008a8152600d60205260409020600601546125079190610ee59089906133ec565b60008a8152600d6020526040902060050154909550156125495760095460008a8152600d602052604090206005015461254491611e9791906133ec565b61254c565b60005b935050505092959194509250565b600e602052816000526040600020818154811061257657600080fd5b6000918252602090912001546001600160a01b03169150829050565b6004546001600160a01b031633146125db5760405162461bcd60e51b815260206004820152600c60248201526b6f6e6c7920666163746f727960a01b60448201526064016109af565b828260008181106125ee576125ee61524a565b6000848152600d6020908152604090912091029290920135909155508282600181811061261d5761261d61524a565b90506020020135600d600083815260200190815260200160002060010181905550828260028181106126515761265161524a565b90506020020135600d600083815260200190815260200160002060020181905550828260038181106126855761268561524a565b90506020020135600d600083815260200190815260200160002060030181905550828260048181106126b9576126b961524a565b90506020020135600d600083815260200190815260200160002060040181905550828260058181106126ed576126ed61524a565b90506020020135600d600083815260200190815260200160002060080181905550828260068181106127215761272161524a565b90506020020135600d600083815260200190815260200160002060060181905550828260078181106127555761275561524a565b90506020020135600d600083815260200190815260200160002060070181905550505050565b336001600160a01b03871614806127b557506001600160a01b038616600090815260036020908152604080832033845290915290205460ff165b6127f05760405162461bcd60e51b815260206004820152600c60248201526b1b9bdd08185c1c1c9bdd995960a21b60448201526064016109af565b6001600160a01b0385166128165760405162461bcd60e51b81526004016109af90615222565b6001600160a01b038616600090815260026020908152604080832087845290915281208054859290612849908490615276565b90915550506001600160a01b038516600090815260026020908152604080832087845290915281208054859290612881908490615289565b909155505060408051858152602081018590526001600160a01b03808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0385163b156129835760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e61906129199033908b908a908a908a908a90600401615436565b6020604051808303816000875af1158015612938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295c91906153a6565b6001600160e01b031916146129835760405162461bcd60e51b81526004016109af906153c3565b505050505050565b6000806000612998613e07565b925092509250909192565b6004546001600160a01b031633146129fd5760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c79206d616e6167657220636f6e74726163742063616e2063616c6c000060448201526064016109af565b600580546001600160a01b038089166001600160a01b031992831617909255600780548884169083161790556006805492871692909116919091179055604080516020810190915260008152612a5d903090600190633b9aca0090613e5a565b6004600052600d6020526000805160206158f683398151915283905581816006818110612a8c57612a8c61524a565b6004600052600d60209081520291909101357fafafe8948a4ed9d478b1e9a5780b119b5edd00ea7d07bc35bef7c814824eb9515550612acd82826001612592565b612ad78888613fb8565b6001600160a01b03841615610dce57610dce84600180613142565b6000806000612aff61298b565b9250925092504683141580612b265750816001600160a01b0316856001600160a01b031614155b80612b315750808414155b612b735760405162461bcd60e51b815260206004820152601360248201527221b0b73737ba1037bbb7103cb7bab939b2b63360691b60448201526064016109af565b6000612b7d612205565b9050306001600160a01b03821603612ba75760405162461bcd60e51b81526004016109af9061547d565b60005b6001600160a01b0382163b15612d5257816001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401606060405180830381865afa925050508015612c14575060408051601f3d908101601f19168201909252612c11918101906154b4565b60015b15612d52574683141580612c3a5750896001600160a01b0316826001600160a01b031614155b80612c455750888114155b612c615760405162461bcd60e51b81526004016109af9061547d565b6040516331a9108f60e11b8152600481018290526001600160a01b03831690636352211e90602401602060405180830381865afa158015612ca6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cca9190615419565b9450306001600160a01b03861603612cf45760405162461bcd60e51b81526004016109af9061547d565b50505080600101905080600503612d4d5760405162461bcd60e51b815260206004820152601860248201527f4f776e65727368697020636861696e20746f6f2064656570000000000000000060448201526064016109af565b612baa565b50505050505050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b03166389e105fa6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612db3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ddb91908101906154ed565b805190915015612e0d576000848152600b602090815260408083206008546001600160a01b0316845290915290205492505b60005b8151811015612fe4576000858152600b60205260408120835160649290859085908110612e3f57612e3f61524a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054118015612ea7575060085482516001600160a01b0390911690839083908110612e9357612e9361524a565b60200260200101516001600160a01b031614155b15612fd257612fc5828281518110612ec157612ec161524a565b602090810291909101015160085460045485516001600160a01b03928316929091169063e4b643e390879087908110612efc57612efc61524a565b60200260200101516040518263ffffffff1660e01b8152600401612f2f91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f709190615419565b600b60008a81526020019081526020016000206000878781518110612f9757612f9761524a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613710565b612fcf9085615289565b93505b80612fdc8161529c565b915050612e10565b506000848152600d6020526040902060050154613002908490613475565b915050915091565b60008060006130198585613fc5565b50909250905060008160038111156130335761303361557b565b1480156130515750856001600160a01b0316826001600160a01b0316145b806130625750613062868686614012565b9695505050505050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663078c51b76040518163ffffffff1660e01b81526004016040805180830381865afa1580156130c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e79190615591565b915091508015613135576130fc82868661300a565b9250600160108560405161311091906151e1565b908152604051908190036020019020805491151560ff1990921691909117905561313a565b600192505b505092915050565b6000806000806131528686611c5b565b3060009081526002602090815260408083208e845290915290205494985092965090945090925050851180159061319a57506000868152600d60205260409020600801548511155b6131d15760405162461bcd60e51b81526020600482015260086024820152672a34b2b91022b93960c11b60448201526064016109af565b3060009081526002602081815260408084208a8552825280842080548a900390556001600160a01b038b1684529181528183208984528152818320805489019055600d90528120858155600501805487929061322e908490615289565b90915550506000868152600d602052604081206009018054859290613254908490615289565b90915550613266905086886001613ab3565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132df9190615419565b6000888152600b602090815260408083206001600160a01b0385168452909152812080549293508692909190613316908490615289565b90915550506008546001600160a01b03908116908216036133cf578134101561333e57600080fd5b600860009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561338e57600080fd5b505af11580156133a2573d6000803e3d6000fd5b5050505050813411156133ca576008546133ca906001600160a01b0316336121e9348661352f565b6133db565b6133db813330856140ed565b610dce83828a60018a876001613659565b6000826000036133fe575060006108d6565b600061340a83856153ec565b90508261341785836155c0565b1461346e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109af565b9392505050565b60008082116134c65760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f00000000000060448201526064016109af565b61346e82846155c0565b6000806134dd8385615289565b90508381101561346e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109af565b6000828211156135815760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f77000060448201526064016109af565b61346e8284615276565b604080516000808252602082019092526001600160a01b0384169083906040516135b591906151e1565b60006040518083038185875af1925050503d80600081146135f2576040519150601f19603f3d011682016040523d82523d6000602084013e6135f7565b606091505b50509050806136545760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b60648201526084016109af565b505050565b60008060006136688a8a614215565b6004805460405163a2da7e1d60e01b81526001600160a01b038e811693820193909352602481018c905260448101849052606481018590526084810186905260a481018a90528c151560c482015260e481018b9052949750929550909350169063a2da7e1d9061010401600060405180830381600087803b1580156136ec57600080fd5b505af1158015613700573d6000803e3d6000fd5b5050505050505050505050505050565b6040805160028082526060820183526000928392919060208301908036833701905050905085816000815181106137495761374961524a565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018151811061377d5761377d61524a565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b815285916000919083169063d06ca61f906137bf9088908790600401615626565b600060405180830381865afa1580156137dc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138049190810190615647565b9050806001815181106138195761381961524a565b60200260200101519350505050949350505050565b6000600460009054906101000a90046001600160a01b03166001600160a01b03166389e105fa6040518163ffffffff1660e01b8152600401600060405180830381865afa158015613883573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138ab91908101906154ed565b905060005b8151811015613aac576000848152600b60205260408120835182908590859081106138dd576138dd61524a565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020549050856001600160a01b03168383815181106139245761392461524a565b60200260200101516001600160a01b0316141580156139435750600081115b801561394f5750600084115b15613a99576000858152600b60205260408120845182908690869081106139785761397861524a565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000613a758484815181106139bb576139bb61524a565b60200260200101518884600460009054906101000a90046001600160a01b03166001600160a01b031663e4b643e38989815181106139fb576139fb61524a565b60200260200101516040518263ffffffff1660e01b8152600401613a2e91906001600160a01b0391909116815260200190565b602060405180830381865afa158015613a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a6f9190615419565b8a61438b565b905084811015613a9057613a898186615276565b9450613a97565b5050613aac565b505b5080613aa48161529c565b9150506138b0565b5050505050565b808015613ae357506000838152600c602090815260408083206001600160a01b038616845290915290205460ff16155b15613b4c576000838152600c602090815260408083206001600160a01b038616808552908352818420805460ff191660019081178255888652600e8552928520805491840182905592810183559184529190922090910180546001600160a01b03191690911790555b80158015613b7c57506000838152600c602090815260408083206001600160a01b038616845290915290205460ff165b15613654576000838152600c602090815260408083206001600160a01b0386168452808352818420805460ff19168155600190810154888652600e90945291842080549394919391929091613bd19190615276565b81548110613be157613be161524a565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120600190810194909455868152600e909252902080549091613c2891615276565b81548110613c3857613c3861524a565b6000918252602080832090910154858352600e82526040808420600c84528185206001600160a01b038881168752945293206001015483549290911692918110613c8457613c8461524a565b600091825260208083209190910180546001600160a01b0319166001600160a01b039490941693909317909255848152600e90915260409020805480613ccc57613ccc615403565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691613d4f91906151e1565b6000604051808303816000865af19150503d8060008114613d8c576040519150601f19603f3d011682016040523d82523d6000602084013e613d91565b606091505b5091509150818015613dbb575080511580613dbb575080806020019051810190613dbb91906156cc565b613aac5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016109af565b60408051606080825260808201909252600091829182918291906020820181803683370190505090506060604d60208301303c80806020019051810190613e4e91906154b4565b93509350935050909192565b6001600160a01b038416613e805760405162461bcd60e51b81526004016109af90615222565b6001600160a01b038416600090815260026020908152604080832086845290915281208054849290613eb3908490615289565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b15613fb25760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190613f489033906000908990899089906004016156e9565b6020604051808303816000875af1158015613f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f8b91906153a6565b6001600160e01b03191614613fb25760405162461bcd60e51b81526004016109af906153c3565b50505050565b6000613654828483615769565b60008060008351604103613fff5760208401516040850151606086015160001a613ff1888285856146aa565b95509550955050505061400b565b50508151600091506002905b9250925092565b6000806000856001600160a01b03168585604051602401614034929190615828565b60408051601f198184030181529181526020820180516001600160e01b0316630b135d3f60e11b1790525161406991906151e1565b600060405180830381855afa9150503d80600081146140a4576040519150601f19603f3d011682016040523d82523d6000602084013e6140a9565b606091505b50915091508180156140bd57506020815110155b801561306257508051630b135d3f60e11b906140e29083016020908101908401615841565b149695505050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161415191906151e1565b6000604051808303816000865af19150503d806000811461418e576040519150601f19603f3d011682016040523d82523d6000602084013e614193565b606091505b50915091508180156141bd5750805115806141bd5750808060200190518101906141bd91906156cc565b6129835760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b60648201526084016109af565b6000806000806000806000600460009054906101000a90046001600160a01b03166001600160a01b0316632c46b2056040518163ffffffff1660e01b8152600401608060405180830381865afa158015614273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614297919061585a565b93509350935093506142b8600954610ee5848c6133ec90919063ffffffff16565b965086156142d8576007546142d89089906001600160a01b031689613cf3565b6009546142e990610ee58b846133ec565b94508415614309576005546143099089906001600160a01b031687613cf3565b6006546001600160a01b03161561434b5760095461432b90610ee58b866133ec565b9550851561434b5760065461434b9089906001600160a01b031688613cf3565b600061436c8661435b8a8a615289565b6143659190615289565b8b9061352f565b9050801561437f5761437f898683613cf3565b50505050509250925092565b6008546000906060906001600160a01b038881169116148015906143bd57506008546001600160a01b03878116911614155b156144815760408051600380825260808201909252906020820160608036833701905050905086816000815181106143f7576143f761524a565b6001600160a01b0392831660209182029290920101526008548251911690829060019081106144285761442861524a565b60200260200101906001600160a01b031690816001600160a01b031681525050858160028151811061445c5761445c61524a565b60200260200101906001600160a01b031690816001600160a01b03168152505061450a565b604080516002808252606082018352909160208301908036833701905050905086816000815181106144b5576144b561524a565b60200260200101906001600160a01b031690816001600160a01b03168152505085816001815181106144e9576144e961524a565b60200260200101906001600160a01b031690816001600160a01b0316815250505b614515878587614779565b6040516370a0823160e01b81523060048201526000906001600160a01b038816906370a0823190602401602060405180830381865afa15801561455c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145809190615841565b6040516338ed173960e01b81529091506001600160a01b038616906338ed1739906145b8908990600090879030904290600401615899565b600060405180830381600087803b1580156145d257600080fd5b505af11580156145e6573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015260009250614661915083906001600160a01b038b16906370a0823190602401602060405180830381865afa158015614637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061465b9190615841565b9061352f565b6000868152600b602090815260408083206001600160a01b038d168452909152812080549293508392909190614698908490615289565b90915550909998505050505050505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156146e5575060009150600390508261476f565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015614739573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166147655750600092506001915082905061476f565b9250600091508190505b9450945094915050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916147d591906151e1565b6000604051808303816000865af19150503d8060008114614812576040519150601f19603f3d011682016040523d82523d6000602084013e614817565b606091505b509150915081801561484157508051158061484157508080602001905181019061484191906156cc565b613aac5760405162461bcd60e51b815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c4544000060448201526064016109af565b6001600160a01b03811681146148a257600080fd5b50565b600080604083850312156148b857600080fd5b82356148c38161488d565b946020939093013593505050565b6001600160e01b0319811681146148a257600080fd5b6000602082840312156148f957600080fd5b813561346e816148d1565b6000806040838503121561491757600080fd5b8235915060208301356149298161488d565b809150509250929050565b60005b8381101561494f578181015183820152602001614937565b50506000910152565b60008151808452614970816020860160208601614934565b601f01601f19169290920160200192915050565b60208152600061346e6020830184614958565b6000602082840312156149a957600080fd5b813561346e8161488d565b6000602082840312156149c657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614a0b57614a0b6149cd565b604052919050565b600082601f830112614a2457600080fd5b81356001600160401b03811115614a3d57614a3d6149cd565b614a50601f8201601f19166020016149e3565b818152846020838601011115614a6557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215614a9857600080fd5b8435614aa38161488d565b93506020850135614ab38161488d565b92506040850135915060608501356001600160401b03811115614ad557600080fd5b614ae187828801614a13565b91505092959194509250565b60008060408385031215614b0057600080fd5b8235915060208301356001600160401b03811115614b1d57600080fd5b614b2985828601614a13565b9150509250929050565b600080600080600060a08688031215614b4b57600080fd5b8535614b568161488d565b945060208601359350604086013592506060860135915060808601356001600160401b03811115614b8657600080fd5b614b9288828901614a13565b9150509295509295909350565b60008083601f840112614bb157600080fd5b5081356001600160401b03811115614bc857600080fd5b6020830191508360208260051b8501011115614be357600080fd5b9250929050565b60008083601f840112614bfc57600080fd5b5081356001600160401b03811115614c1357600080fd5b602083019150836020828501011115614be357600080fd5b60008060008060008060008060a0898b031215614c4757600080fd5b8835614c528161488d565b97506020890135614c628161488d565b965060408901356001600160401b0380821115614c7e57600080fd5b614c8a8c838d01614b9f565b909850965060608b0135915080821115614ca357600080fd5b614caf8c838d01614b9f565b909650945060808b0135915080821115614cc857600080fd5b50614cd58b828c01614bea565b999c989b5096995094979396929594505050565b80151581146148a257600080fd5b60008060008060808587031215614d0d57600080fd5b843593506020850135614ab381614ce9565b60008060008060408587031215614d3557600080fd5b84356001600160401b0380821115614d4c57600080fd5b614d5888838901614b9f565b90965094506020870135915080821115614d7157600080fd5b50614d7e87828801614b9f565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015614dc257835183529284019291840191600101614da6565b50909695505050505050565b60008060408385031215614de157600080fd5b50508035926020909101359150565b60008060008060808587031215614e0657600080fd5b84359350602085013592506040850135915060608501356001600160401b03811115614ad557600080fd5b60008060408385031215614e4457600080fd5b8235614e4f8161488d565b9150602083013561492981614ce9565b600080600060408486031215614e7457600080fd5b83356001600160401b03811115614e8a57600080fd5b614e9686828701614b9f565b909790965060209590950135949350505050565b60006001600160401b03821115614ec357614ec36149cd565b5060051b60200190565b600082601f830112614ede57600080fd5b81356020614ef3614eee83614eaa565b6149e3565b82815260059290921b84018101918181019086841115614f1257600080fd5b8286015b84811015614f2d5780358352918301918301614f16565b509695505050505050565b600080600080600060a08688031215614f5057600080fd5b8535614f5b8161488d565b94506020860135614f6b8161488d565b935060408601356001600160401b0380821115614f8757600080fd5b614f9389838a01614ecd565b94506060880135915080821115614fa957600080fd5b614fb589838a01614ecd565b93506080880135915080821115614fcb57600080fd5b50614b9288828901614a13565b60008060408385031215614feb57600080fd5b8235614ff68161488d565b915060208301356149298161488d565b600080600080600060a0868803121561501e57600080fd5b85356150298161488d565b945060208601356150398161488d565b9350604086013592506060860135915060808601356001600160401b03811115614b8657600080fd5b60008060008060008060a0878903121561507b57600080fd5b86356150868161488d565b955060208701356150968161488d565b9450604087013593506060870135925060808701356001600160401b038111156150bf57600080fd5b6150cb89828a01614bea565b979a9699509497509295939492505050565b60008060008060008060008060c0898b0312156150f957600080fd5b88356001600160401b038082111561511057600080fd5b61511c8c838d01614bea565b909a50985060208b013591506151318261488d565b90965060408a0135906151438261488d565b90955060608a0135906151558261488d565b90945060808a0135935060a08a0135908082111561517257600080fd5b50614cd58b828c01614b9f565b600181811c9082168061519357607f821691505b6020821081036151b357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600e908201526d2932b2b73a3930b731bc9022b93960911b604082015260600190565b600082516151f3818460208701614934565b9190910192915050565b6020808252600b908201526a496e76616c69642073696760a81b604082015260600190565b6020808252600e908201526d746f203d2030206164647265737360901b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156108d6576108d6615260565b808201808211156108d6576108d6615260565b6000600182016152ae576152ae615260565b5060010190565b81835260006001600160fb1b038311156152ce57600080fd5b8260051b80836020870137939093016020019392505050565b6040815260006152fb6040830186886152b5565b828103602084015261530e8185876152b5565b979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a06040820181905260009061536f908301888a6152b5565b82810360608401526153828187896152b5565b90508281036080840152615397818587615319565b9b9a5050505050505050505050565b6000602082840312156153b857600080fd5b815161346e816148d1565b6020808252600f908201526e3ab739b0b332903a3930b739b332b960891b604082015260600190565b80820281158282048414176108d6576108d6615260565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561542b57600080fd5b815161346e8161488d565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906154719083018486615319565b98975050505050505050565b60208082526018908201527f546f6b656e20696e206f776e65727368697020636861696e0000000000000000604082015260600190565b6000806000606084860312156154c957600080fd5b8351925060208401516154db8161488d565b80925050604084015190509250925092565b6000602080838503121561550057600080fd5b82516001600160401b0381111561551657600080fd5b8301601f8101851361552757600080fd5b8051615535614eee82614eaa565b81815260059190911b8201830190838101908783111561555457600080fd5b928401925b8284101561530e57835161556c8161488d565b82529284019290840190615559565b634e487b7160e01b600052602160045260246000fd5b600080604083850312156155a457600080fd5b82516155af8161488d565b602084015190925061492981614ce9565b6000826155dd57634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b8381101561561b5781516001600160a01b0316875295820195908201906001016155f6565b509495945050505050565b82815260406020820152600061563f60408301846155e2565b949350505050565b6000602080838503121561565a57600080fd5b82516001600160401b0381111561567057600080fd5b8301601f8101851361568157600080fd5b805161568f614eee82614eaa565b81815260059190911b820183019083810190878311156156ae57600080fd5b928401925b8284101561530e578351825292840192908401906156b3565b6000602082840312156156de57600080fd5b815161346e81614ce9565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061530e90830184614958565b601f82111561365457600081815260208120601f850160051c8101602086101561574a5750805b601f850160051c820191505b8181101561298357828155600101615756565b6001600160401b03831115615780576157806149cd565b6157948361578e835461517f565b83615723565b6000601f8411600181146157c857600085156157b05750838201355b600019600387901b1c1916600186901b178355613aac565b600083815260209020601f19861690835b828110156157f957868501358255602094850194600190920191016157d9565b50868210156158165760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b82815260406020820152600061563f6040830184614958565b60006020828403121561585357600080fd5b5051919050565b6000806000806080858703121561587057600080fd5b845161587b8161488d565b60208601516040870151606090970151919890975090945092505050565b85815284602082015260a0604082015260006158b860a08301866155e2565b6001600160a01b039490941660608301525060800152939250505056fe5b84bb9e0f5aa9cc45a8bb66468db5d4816d1e75ff86b5e1f1dd8d144dab8097afafe8948a4ed9d478b1e9a5780b119b5edd00ea7d07bc35bef7c814824eb94b12d0c11577e2f0950f57c455c117796550b79f444811db8ba2f69c57b646c784a1d6913cd9e08c872be3e7525cca82e4fc0fc298a783f19022be725b19be685aa26469706673582212201317764e5362e3aaf9a7d9515e111f719f824464c4c93975c09b41a16f0b97a964736f6c634300081100330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a86900000000000000000000000081d2dcfbd9e8fe607290cb1da761ed35c94780430000000000000000000000000000000000000000000000000000000000000005