0x60806040526004361061021e5760003560e01c80635d0044ca116101235780639a540abf116100ab578063b3f006741161006f578063b3f0067414610629578063d944392314610649578063e71dc3f51461066a578063e7cb9f2d14610680578063f275f64b1461069657600080fd5b80639a540abf146105aa578063a4c82a00146105bd578063a9059cbb146105d3578063adb873bd146105f3578063ae19139e1461060957600080fd5b8063715018a6116100f2578063715018a61461052a578063730c18881461053f57806382247ec01461055f5780638da5cb5b1461057557806395d89b411461059557600080fd5b80635d0044ca1461049f5780636299f081146104bf57806367b9a286146104df57806370a08231146104f457600080fd5b806327de2e85116101a6578063313ce56711610175578063313ce567146103f557806338752caf14610411578063470624021461043157806352f7c988146104475780635b8bec551461046757600080fd5b806327de2e851461038f5780632b14ca56146103af5780632c3e486c146103c55780632e82f1a0146103db57600080fd5b806311106ee2116101ed57806311106ee2146102e457806312a54b62146103125780631693e8d41461034357806318160ddd14610364578063199ffc721461037957600080fd5b806304c0c4761461023257806306fdde03146102695780630902f1ac1461028b5780630b504da3146102c457600080fd5b3661022d5761022b6106b6565b005b600080fd5b34801561023e57600080fd5b5060055461024f9063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b34801561027557600080fd5b5061027e6108bf565b6040516102609190611715565b34801561029757600080fd5b506102af306000908152602081905260409020544791565b60408051928352602083019190915201610260565b3480156102d057600080fd5b5061022b6102df366004611763565b610951565b3480156102f057600080fd5b506103046102ff36600461179a565b610986565b604051908152602001610260565b34801561031e57600080fd5b5060095461033390600160b01b900460ff1681565b6040519015158152602001610260565b34801561034f57600080fd5b5060095461033390600160a01b900460ff1681565b34801561037057600080fd5b50600354610304565b34801561038557600080fd5b5061030460135481565b34801561039b57600080fd5b5061022b6103aa3660046117c6565b6109ed565b3480156103bb57600080fd5b50610304600d5481565b3480156103d157600080fd5b5061030460115481565b3480156103e757600080fd5b506010546103339060ff1681565b34801561040157600080fd5b5060405160128152602001610260565b34801561041d57600080fd5b5061022b61042c3660046117f3565b610a8d565b34801561043d57600080fd5b50610304600c5481565b34801561045357600080fd5b5061022b610462366004611763565b610af8565b34801561047357600080fd5b50600954610487906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b3480156104ab57600080fd5b5061022b6104ba3660046117f3565b610b2d565b3480156104cb57600080fd5b5061022b6104da3660046117f3565b610b5c565b3480156104eb57600080fd5b5061022b610c08565b34801561050057600080fd5b5061030461050f366004611823565b6001600160a01b031660009081526020819052604090205490565b34801561053657600080fd5b5061022b610ceb565b34801561054b57600080fd5b5061022b61055a36600461183e565b610d27565b34801561056b57600080fd5b5061030460045481565b34801561058157600080fd5b50600854610487906001600160a01b031681565b3480156105a157600080fd5b5061027e610dfa565b61022b6105b83660046117c6565b610e09565b3480156105c957600080fd5b5061030460125481565b3480156105df57600080fd5b506103336105ee366004611873565b610f93565b3480156105ff57600080fd5b50610304600f5481565b34801561061557600080fd5b5061022b61062436600461189d565b610fc7565b34801561063557600080fd5b50600a54610487906001600160a01b031681565b34801561065557600080fd5b5060095461033390600160a81b900460ff1681565b34801561067657600080fd5b50610304600e5481565b34801561068c57600080fd5b50610304600b5481565b3480156106a257600080fd5b5061022b6106b136600461189d565b61100f565b600954600160a01b900460ff166107095760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b600c5434906000906127109061071f90846118ce565b61072991906118e5565b905060006107378284611907565b9050811561077b57600a546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015610779573d6000803e3d6000fd5b505b30600090815260208190526040812054479061079790846118ce565b6107a191906118e5565b600954909150600160b01b900460ff161561081757600454336000908152602081905260409020546107d3908361191a565b11156108175760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610700565b6000612710600e5461271061082c9190611907565b61083690846118ce565b61084091906118e5565b9050600061084e8284611907565b905061085b303384611057565b801561086d5761086d30600083611057565b604080518581526000602082018190528183015260608101849052905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a2505050505050565b6060600680546108ce9061192d565b80601f01602080910402602001604051908101604052809291908181526020018280546108fa9061192d565b80156109475780601f1061091c57610100808354040283529160200191610947565b820191906000526020600020905b81548152906001019060200180831161092a57829003601f168201915b5050505050905090565b6008546001600160a01b0316331461097b5760405162461bcd60e51b815260040161070090611967565b600e91909155600f55565b60008060006109a2306000908152602081905260409020544791565b9150915083156109d3576109b6858361191a565b6109c082876118ce565b6109ca91906118e5565b925050506109e7565b6109dd858261191a565b6109c083876118ce565b92915050565b6009546001600160a01b03163314610a175760405162461bcd60e51b81526004016107009061199c565b60055463ffffffff808316911610610a715760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e0000000000006044820152606401610700565b6005805463ffffffff191663ffffffff92909216919091179055565b6008546001600160a01b03163314610ab75760405162461bcd60e51b815260040161070090611967565b603c811115610af35760405162461bcd60e51b8152602060048201526008602482015267746f6f206c6f6e6760c01b6044820152606401610700565b600b55565b6008546001600160a01b03163314610b225760405162461bcd60e51b815260040161070090611967565b600c91909155600d55565b6008546001600160a01b03163314610b575760405162461bcd60e51b815260040161070090611967565b600455565b6008546001600160a01b03163314610b865760405162461bcd60e51b815260040161070090611967565b600954600160a81b900460ff1615610bc85760405162461bcd60e51b8152602060048201526005602482015264185919195960da1b6044820152606401610700565b3060009081526020819052604090205481811115610bf957610bf43033610bef8585611907565b61129f565b505050565b610bf43330610bef8486611907565b6009546001600160a01b03163314610c325760405162461bcd60e51b81526004016107009061199c565b60055463ffffffff164311610c7c5760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b6044820152606401610700565b6009805460ff60a01b1916905560405133904780156108fc02916000818181858888f19350505050158015610cb5573d6000803e3d6000fd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b6008546001600160a01b03163314610d155760405162461bcd60e51b815260040161070090611967565b600880546001600160a01b0319169055565b6008546001600160a01b03163314610d515760405162461bcd60e51b815260040161070090611967565b6101f4821115610d965760405162461bcd60e51b815260206004820152601060248201526f0e0cae4c6cadce840e8dede40d0d2ced60831b6044820152606401610700565b6103e8831015610dde5760405162461bcd60e51b8152602060048201526013602482015272199c995c5d595b98de481d1bdbc81cda1c9bdd606a1b6044820152606401610700565b6011929092556013556010805460ff1916911515919091179055565b6060600780546108ce9061192d565b6008546001600160a01b03163314610e335760405162461bcd60e51b815260040161070090611967565b600954600160a81b900460ff1615610e8d5760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c72656164792061646465640000000000000000006044820152606401610700565b6009805460ff60a81b1916600160a81b17905534610edb5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610700565b8063ffffffff164310610f275760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b6044820152606401610700565b6005805463ffffffff831663ffffffff199091168117909155600980546001600160a81b0319163317600160a01b179055604080519182523460208301527f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175910160405180910390a150565b6000306001600160a01b03841603610fb357610fae82611354565b610fbe565b610fbe338484611057565b50600192915050565b6008546001600160a01b03163314610ff15760405162461bcd60e51b815260040161070090611967565b60098054911515600160b01b0260ff60b01b19909216919091179055565b6008546001600160a01b031633146110395760405162461bcd60e51b815260040161070090611967565b60098054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b0382161561118357336000908152600260205260409020544363ffffffff909116036110e65760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b6064820152608401610700565b336000908152600260209081526040808320805463ffffffff19164363ffffffff16179055600b54600190925290912054611121919061191a565b4210156111705760405162461bcd60e51b815260206004820152601d60248201527f53656e646572206d757374207761697420666f7220636f6f6c646f776e0000006044820152606401610700565b3360009081526001602052604090204290555b6001600160a01b0383166000908152602081905260409020548111156111fa5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610700565b6001600160a01b03808416600090815260208190526040902080548390039055821661122e5760038054829003905561124d565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161129291815260200190565b60405180910390a3505050565b6001600160a01b0383166000908152602081905260408120805483919083906112c9908490611907565b90915550506001600160a01b038316600090815260208190526040812080548492906112f690849061191a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161134291815260200190565b60405180910390a35060019392505050565b600954600160a01b900460ff166113a25760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b6044820152606401610700565b6000612710600f546127106113b79190611907565b6113c190846118ce565b6113cb91906118e5565b905060006113d98284611907565b30600090815260208190526040812054919250906113f890849061191a565b61140247856118ce565b61140c91906118e5565b9050600081116114545760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610700565b804710156114a45760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610700565b6114af333085611057565b81156114c1576114c133600084611057565b6000612710600d54836114d491906118ce565b6114de91906118e5565b9050801561152257600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611520573d6000803e3d6000fd5b505b336108fc6115308385611907565b6040518115909202916000818181858888f19350505050158015611558573d6000803e3d6000fd5b5060105460ff16801561157a5750601154601254611576919061191a565b4210155b15611589576115876115e4565b505b337f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb7376000876115b88587611907565b604080519384526020840192909252908201526000606082015260800160405180910390a25050505050565b426012553060009081526020819052604081205460006127106013548361160b91906118ce565b61161591906118e5565b90503061dead82156116cb576001600160a01b03821660009081526020819052604081208054859290611649908490611907565b90915550506001600160a01b0381166000908152602081905260408120805485929061167690849061191a565b92505081905550806001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116c291815260200190565b60405180910390a35b6040805185815260208101859052428183015290517f9cb560eb3a76b2c70f0528d86a83cc0464d10dd0ccc94ba95bd11b93eac93da69181900360600190a1600194505050505090565b600060208083528351808285015260005b8181101561174257858101830151858201604001528201611726565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561177657600080fd5b50508035926020909101359150565b8035801515811461179557600080fd5b919050565b600080604083850312156117ad57600080fd5b823591506117bd60208401611785565b90509250929050565b6000602082840312156117d857600080fd5b813563ffffffff811681146117ec57600080fd5b9392505050565b60006020828403121561180557600080fd5b5035919050565b80356001600160a01b038116811461179557600080fd5b60006020828403121561183557600080fd5b6117ec8261180c565b60008060006060848603121561185357600080fd5b833592506020840135915061186a60408501611785565b90509250925092565b6000806040838503121561188657600080fd5b61188f8361180c565b946020939093013593505050565b6000602082840312156118af57600080fd5b6117ec82611785565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176109e7576109e76118b8565b60008261190257634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109e7576109e76118b8565b808201808211156109e7576109e76118b8565b600181811c9082168061194157607f821691505b60208210810361196157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b60608201526080019056fea264697066735822122048acffddbe8143b0bcd421fbfa2928f516878fc1abf787f34a276c4e8039ebfd64736f6c63430008130033
0x6080604052603c600b556000600c819055600d819055600e819055600f556010805460ff19169055610e1060115560326013553480156200003f57600080fd5b50604080518082018252600480825263160ccc4d60e21b6020808401829052845180860190955291845290830152906c0c9f2c9cd04674edea4000000060066200008a84826200020e565b5060076200009983826200020e565b5060038190556064620000ad8282620002f0565b620000b9919062000310565b600455600a80546001600160a01b031990811673cbddd62ba79657f1258dcdf4122f8448e5074b0290811790925560088054909116821790556009805462ff00ff60a01b1916600160b01b1790553060009081526020819052604090206c0792b45e1690ac8ebfc00000009081905562000134818462000333565b6001600160a01b0390921660009081526020819052604090209190915550506009805460ff60a81b1916905550620003499050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200019457607f821691505b602082108103620001b557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200020957600081815260208120601f850160051c81016020861015620001e45750805b601f850160051c820191505b818110156200020557828155600101620001f0565b5050505b505050565b81516001600160401b038111156200022a576200022a62000169565b62000242816200023b84546200017f565b84620001bb565b602080601f8311600181146200027a5760008415620002615750858301515b600019600386901b1c1916600185901b17855562000205565b600085815260208120601f198616915b82811015620002ab578886015182559484019460019091019084016200028a565b5085821015620002ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200030a576200030a620002da565b92915050565b6000826200032e57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156200030a576200030a620002da565b611a1480620003596000396000f3fe60806040526004361061021e5760003560e01c80635d0044ca116101235780639a540abf116100ab578063b3f006741161006f578063b3f0067414610629578063d944392314610649578063e71dc3f51461066a578063e7cb9f2d14610680578063f275f64b1461069657600080fd5b80639a540abf146105aa578063a4c82a00146105bd578063a9059cbb146105d3578063adb873bd146105f3578063ae19139e1461060957600080fd5b8063715018a6116100f2578063715018a61461052a578063730c18881461053f57806382247ec01461055f5780638da5cb5b1461057557806395d89b411461059557600080fd5b80635d0044ca1461049f5780636299f081146104bf57806367b9a286146104df57806370a08231146104f457600080fd5b806327de2e85116101a6578063313ce56711610175578063313ce567146103f557806338752caf14610411578063470624021461043157806352f7c988146104475780635b8bec551461046757600080fd5b806327de2e851461038f5780632b14ca56146103af5780632c3e486c146103c55780632e82f1a0146103db57600080fd5b806311106ee2116101ed57806311106ee2146102e457806312a54b62146103125780631693e8d41461034357806318160ddd14610364578063199ffc721461037957600080fd5b806304c0c4761461023257806306fdde03146102695780630902f1ac1461028b5780630b504da3146102c457600080fd5b3661022d5761022b6106b6565b005b600080fd5b34801561023e57600080fd5b5060055461024f9063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b34801561027557600080fd5b5061027e6108bf565b6040516102609190611715565b34801561029757600080fd5b506102af306000908152602081905260409020544791565b60408051928352602083019190915201610260565b3480156102d057600080fd5b5061022b6102df366004611763565b610951565b3480156102f057600080fd5b506103046102ff36600461179a565b610986565b604051908152602001610260565b34801561031e57600080fd5b5060095461033390600160b01b900460ff1681565b6040519015158152602001610260565b34801561034f57600080fd5b5060095461033390600160a01b900460ff1681565b34801561037057600080fd5b50600354610304565b34801561038557600080fd5b5061030460135481565b34801561039b57600080fd5b5061022b6103aa3660046117c6565b6109ed565b3480156103bb57600080fd5b50610304600d5481565b3480156103d157600080fd5b5061030460115481565b3480156103e757600080fd5b506010546103339060ff1681565b34801561040157600080fd5b5060405160128152602001610260565b34801561041d57600080fd5b5061022b61042c3660046117f3565b610a8d565b34801561043d57600080fd5b50610304600c5481565b34801561045357600080fd5b5061022b610462366004611763565b610af8565b34801561047357600080fd5b50600954610487906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b3480156104ab57600080fd5b5061022b6104ba3660046117f3565b610b2d565b3480156104cb57600080fd5b5061022b6104da3660046117f3565b610b5c565b3480156104eb57600080fd5b5061022b610c08565b34801561050057600080fd5b5061030461050f366004611823565b6001600160a01b031660009081526020819052604090205490565b34801561053657600080fd5b5061022b610ceb565b34801561054b57600080fd5b5061022b61055a36600461183e565b610d27565b34801561056b57600080fd5b5061030460045481565b34801561058157600080fd5b50600854610487906001600160a01b031681565b3480156105a157600080fd5b5061027e610dfa565b61022b6105b83660046117c6565b610e09565b3480156105c957600080fd5b5061030460125481565b3480156105df57600080fd5b506103336105ee366004611873565b610f93565b3480156105ff57600080fd5b50610304600f5481565b34801561061557600080fd5b5061022b61062436600461189d565b610fc7565b34801561063557600080fd5b50600a54610487906001600160a01b031681565b34801561065557600080fd5b5060095461033390600160a81b900460ff1681565b34801561067657600080fd5b50610304600e5481565b34801561068c57600080fd5b50610304600b5481565b3480156106a257600080fd5b5061022b6106b136600461189d565b61100f565b600954600160a01b900460ff166107095760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b600c5434906000906127109061071f90846118ce565b61072991906118e5565b905060006107378284611907565b9050811561077b57600a546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015610779573d6000803e3d6000fd5b505b30600090815260208190526040812054479061079790846118ce565b6107a191906118e5565b600954909150600160b01b900460ff161561081757600454336000908152602081905260409020546107d3908361191a565b11156108175760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610700565b6000612710600e5461271061082c9190611907565b61083690846118ce565b61084091906118e5565b9050600061084e8284611907565b905061085b303384611057565b801561086d5761086d30600083611057565b604080518581526000602082018190528183015260608101849052905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a2505050505050565b6060600680546108ce9061192d565b80601f01602080910402602001604051908101604052809291908181526020018280546108fa9061192d565b80156109475780601f1061091c57610100808354040283529160200191610947565b820191906000526020600020905b81548152906001019060200180831161092a57829003601f168201915b5050505050905090565b6008546001600160a01b0316331461097b5760405162461bcd60e51b815260040161070090611967565b600e91909155600f55565b60008060006109a2306000908152602081905260409020544791565b9150915083156109d3576109b6858361191a565b6109c082876118ce565b6109ca91906118e5565b925050506109e7565b6109dd858261191a565b6109c083876118ce565b92915050565b6009546001600160a01b03163314610a175760405162461bcd60e51b81526004016107009061199c565b60055463ffffffff808316911610610a715760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e0000000000006044820152606401610700565b6005805463ffffffff191663ffffffff92909216919091179055565b6008546001600160a01b03163314610ab75760405162461bcd60e51b815260040161070090611967565b603c811115610af35760405162461bcd60e51b8152602060048201526008602482015267746f6f206c6f6e6760c01b6044820152606401610700565b600b55565b6008546001600160a01b03163314610b225760405162461bcd60e51b815260040161070090611967565b600c91909155600d55565b6008546001600160a01b03163314610b575760405162461bcd60e51b815260040161070090611967565b600455565b6008546001600160a01b03163314610b865760405162461bcd60e51b815260040161070090611967565b600954600160a81b900460ff1615610bc85760405162461bcd60e51b8152602060048201526005602482015264185919195960da1b6044820152606401610700565b3060009081526020819052604090205481811115610bf957610bf43033610bef8585611907565b61129f565b505050565b610bf43330610bef8486611907565b6009546001600160a01b03163314610c325760405162461bcd60e51b81526004016107009061199c565b60055463ffffffff164311610c7c5760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b6044820152606401610700565b6009805460ff60a01b1916905560405133904780156108fc02916000818181858888f19350505050158015610cb5573d6000803e3d6000fd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b6008546001600160a01b03163314610d155760405162461bcd60e51b815260040161070090611967565b600880546001600160a01b0319169055565b6008546001600160a01b03163314610d515760405162461bcd60e51b815260040161070090611967565b6101f4821115610d965760405162461bcd60e51b815260206004820152601060248201526f0e0cae4c6cadce840e8dede40d0d2ced60831b6044820152606401610700565b6103e8831015610dde5760405162461bcd60e51b8152602060048201526013602482015272199c995c5d595b98de481d1bdbc81cda1c9bdd606a1b6044820152606401610700565b6011929092556013556010805460ff1916911515919091179055565b6060600780546108ce9061192d565b6008546001600160a01b03163314610e335760405162461bcd60e51b815260040161070090611967565b600954600160a81b900460ff1615610e8d5760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c72656164792061646465640000000000000000006044820152606401610700565b6009805460ff60a81b1916600160a81b17905534610edb5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610700565b8063ffffffff164310610f275760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b6044820152606401610700565b6005805463ffffffff831663ffffffff199091168117909155600980546001600160a81b0319163317600160a01b179055604080519182523460208301527f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175910160405180910390a150565b6000306001600160a01b03841603610fb357610fae82611354565b610fbe565b610fbe338484611057565b50600192915050565b6008546001600160a01b03163314610ff15760405162461bcd60e51b815260040161070090611967565b60098054911515600160b01b0260ff60b01b19909216919091179055565b6008546001600160a01b031633146110395760405162461bcd60e51b815260040161070090611967565b60098054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b0382161561118357336000908152600260205260409020544363ffffffff909116036110e65760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b6064820152608401610700565b336000908152600260209081526040808320805463ffffffff19164363ffffffff16179055600b54600190925290912054611121919061191a565b4210156111705760405162461bcd60e51b815260206004820152601d60248201527f53656e646572206d757374207761697420666f7220636f6f6c646f776e0000006044820152606401610700565b3360009081526001602052604090204290555b6001600160a01b0383166000908152602081905260409020548111156111fa5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610700565b6001600160a01b03808416600090815260208190526040902080548390039055821661122e5760038054829003905561124d565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161129291815260200190565b60405180910390a3505050565b6001600160a01b0383166000908152602081905260408120805483919083906112c9908490611907565b90915550506001600160a01b038316600090815260208190526040812080548492906112f690849061191a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161134291815260200190565b60405180910390a35060019392505050565b600954600160a01b900460ff166113a25760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b6044820152606401610700565b6000612710600f546127106113b79190611907565b6113c190846118ce565b6113cb91906118e5565b905060006113d98284611907565b30600090815260208190526040812054919250906113f890849061191a565b61140247856118ce565b61140c91906118e5565b9050600081116114545760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610700565b804710156114a45760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610700565b6114af333085611057565b81156114c1576114c133600084611057565b6000612710600d54836114d491906118ce565b6114de91906118e5565b9050801561152257600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611520573d6000803e3d6000fd5b505b336108fc6115308385611907565b6040518115909202916000818181858888f19350505050158015611558573d6000803e3d6000fd5b5060105460ff16801561157a5750601154601254611576919061191a565b4210155b15611589576115876115e4565b505b337f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb7376000876115b88587611907565b604080519384526020840192909252908201526000606082015260800160405180910390a25050505050565b426012553060009081526020819052604081205460006127106013548361160b91906118ce565b61161591906118e5565b90503061dead82156116cb576001600160a01b03821660009081526020819052604081208054859290611649908490611907565b90915550506001600160a01b0381166000908152602081905260408120805485929061167690849061191a565b92505081905550806001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116c291815260200190565b60405180910390a35b6040805185815260208101859052428183015290517f9cb560eb3a76b2c70f0528d86a83cc0464d10dd0ccc94ba95bd11b93eac93da69181900360600190a1600194505050505090565b600060208083528351808285015260005b8181101561174257858101830151858201604001528201611726565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561177657600080fd5b50508035926020909101359150565b8035801515811461179557600080fd5b919050565b600080604083850312156117ad57600080fd5b823591506117bd60208401611785565b90509250929050565b6000602082840312156117d857600080fd5b813563ffffffff811681146117ec57600080fd5b9392505050565b60006020828403121561180557600080fd5b5035919050565b80356001600160a01b038116811461179557600080fd5b60006020828403121561183557600080fd5b6117ec8261180c565b60008060006060848603121561185357600080fd5b833592506020840135915061186a60408501611785565b90509250925092565b6000806040838503121561188657600080fd5b61188f8361180c565b946020939093013593505050565b6000602082840312156118af57600080fd5b6117ec82611785565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176109e7576109e76118b8565b60008261190257634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109e7576109e76118b8565b808201808211156109e7576109e76118b8565b600181811c9082168061194157607f821691505b60208210810361196157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b60608201526080019056fea264697066735822122048acffddbe8143b0bcd421fbfa2928f516878fc1abf787f34a276c4e8039ebfd64736f6c63430008130033