0x6080604052600436106101e9575f3560e01c8063893d20e811610108578063d0d41fe11161009d578063eba4c3331161006d578063eba4c333146105bf578063f2fde38b146105de578063f515a55c146105fd578063f7de4dfd1461061c578063feae65e71461063a575f80fd5b8063d0d41fe11461051e578063d8a0663c1461053d578063dd62ed3e1461055c578063e852f261146105a0575f80fd5b8063a14aee61116100d8578063a14aee6114610479578063a9059cbb14610498578063c683630d146104b7578063c6da3051146104ee575f80fd5b8063893d20e8146104445780638da5cb5b14610444578063925542871461046057806395d89b4114610230575f80fd5b80635342acb41161017e57806370a082311161014e57806370a08231146103be578063715018a6146103f257806371fc46881461040657806385438bc014610425575f80fd5b80635342acb41461032857806353d6fd591461035f5780635899825e146103805780636612e66f1461039f575f80fd5b806318160ddd116101b957806318160ddd146102b157806323b872dd146102cf578063313ce567146102ee57806349bd5a5e14610309575f80fd5b806301e51ae8146101f457806306fdde0314610230578063095ea7b3146102635780631694505e14610292575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50600654610213906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023b575f80fd5b50604080518082018252600581526410d050905360da1b60208201529051610227919061194c565b34801561026e575f80fd5b5061028261027d3660046119ab565b610672565b6040519015158152602001610227565b34801561029d575f80fd5b50600954610213906001600160a01b031681565b3480156102bc575f80fd5b506001545b604051908152602001610227565b3480156102da575f80fd5b506102826102e93660046119d5565b610688565b3480156102f9575f80fd5b5060405160098152602001610227565b348015610314575f80fd5b50600a54610213906001600160a01b031681565b348015610333575f80fd5b50610282610342366004611a13565b6001600160a01b03165f9081526007602052604090205460ff1690565b34801561036a575f80fd5b5061037e610379366004611a42565b6106d6565b005b34801561038b575f80fd5b50600e805462ffff00191662010100179055005b3480156103aa575f80fd5b5061037e6103b9366004611a42565b610732565b3480156103c9575f80fd5b506102c16103d8366004611a13565b6001600160a01b03165f908152600c602052604090205490565b3480156103fd575f80fd5b5061037e610785565b348015610411575f80fd5b5061037e610420366004611a75565b6107b9565b348015610430575f80fd5b50600e546102829062010000900460ff1681565b34801561044f575f80fd5b505f546001600160a01b0316610213565b34801561046b575f80fd5b50600e546102829060ff1681565b348015610484575f80fd5b5061037e610493366004611a8c565b6107ec565b3480156104a3575f80fd5b506102826104b23660046119ab565b610828565b3480156104c2575f80fd5b506102826104d1366004611a13565b6001600160a01b03165f9081526008602052604090205460ff1690565b3480156104f9575f80fd5b5060125460135460045460408051938452602084019290925290820152606001610227565b348015610529575f80fd5b5061037e610538366004611a13565b610923565b348015610548575f80fd5b5061037e610557366004611a75565b6109cd565b348015610567575f80fd5b506102c1610576366004611aa5565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b3480156105ab575f80fd5b5061037e6105ba366004611adc565b610a97565b3480156105ca575f80fd5b5061037e6105d9366004611a75565b610b10565b3480156105e9575f80fd5b5061037e6105f8366004611a13565b610b43565b348015610608575f80fd5b5061037e610617366004611a75565b610bdd565b348015610627575f80fd5b50600e5461028290610100900460ff1681565b348015610645575f80fd5b50601054601154600254600354604080519485526020850193909352918301526060820152608001610227565b5f61067e338484610c0b565b5060015b92915050565b6001600160a01b0383165f908152600d602090815260408083203380855292528220546106c19186916106bc908690611b19565b610c0b565b6106cc848484610d2e565b5060019392505050565b5f546001600160a01b031633146107085760405162461bcd60e51b81526004016106ff90611b2c565b60405180910390fd5b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461075b5760405162461bcd60e51b81526004016106ff90611b2c565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146107ae5760405162461bcd60e51b81526004016106ff90611b2c565b6107b75f61158c565b565b5f546001600160a01b031633146107e25760405162461bcd60e51b81526004016106ff90611b2c565b6010819055601155565b5f546001600160a01b031633146108155760405162461bcd60e51b81526004016106ff90611b2c565b600e805460ff1916911515919091179055565b600a545f906001600160a01b0384811691161480159061085557505f546001600160a01b03848116911614155b801561087957506001600160a01b0383165f9081526007602052604090205460ff16155b15610918576002546001600160a01b0384165f908152600c60205260409020546108a4908490611b70565b11156109185760405162461bcd60e51b815260206004820152603960248201527f5448554d423a20726563697069656e742077616c6c65742062616c616e63652060448201527f6578636565647320746865206d6178696d756d206c696d69740000000000000060648201526084016106ff565b61067e338484610d2e565b5f546001600160a01b0316331461094c5760405162461bcd60e51b81526004016106ff90611b2c565b6001600160a01b0381166109945760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106ff565b600680546001600160a01b039092166001600160a01b0319909216821790555f908152600760205260409020805460ff19166001179055565b5f546001600160a01b031633146109f65760405162461bcd60e51b81526004016106ff90611b2c565b6064610a0160015490565b610a0c906001611b83565b610a169190611b9a565b811115610a7b5760405162461bcd60e51b815260206004820152602d60248201527f496e76616c69642076616c75653a2065786365656473203125206f662074686560448201526c20746f74616c20737570706c7960981b60648201526084016106ff565b610a876009600a611c99565b610a919082611b83565b60055550565b5f546001600160a01b03163314610ac05760405162461bcd60e51b81526004016106ff90611b2c565b610acc6009600a611c99565b610ad69084611b83565b600255610ae56009600a611c99565b610aef9083611b83565b600355610afe6009600a611c99565b610b089082611b83565b600455505050565b5f546001600160a01b03163314610b395760405162461bcd60e51b81526004016106ff90611b2c565b6012819055601355565b5f546001600160a01b03163314610b6c5760405162461bcd60e51b81526004016106ff90611b2c565b6001600160a01b038116610bd15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ff565b610bda8161158c565b50565b5f546001600160a01b03163314610c065760405162461bcd60e51b81526004016106ff90611b2c565b600f55565b6001600160a01b038316610c6d5760405162461bcd60e51b8152602060048201526024808201527f5448554d423a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ff565b6001600160a01b038216610cce5760405162461bcd60e51b815260206004820152602260248201527f5448554d423a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ff565b6001600160a01b038381165f818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d925760405162461bcd60e51b815260206004820152602560248201527f5448554d423a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ff565b6001600160a01b038216610df45760405162461bcd60e51b815260206004820152602360248201527f5448554d423a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ff565b5f8111610e5c5760405162461bcd60e51b815260206004820152603060248201527f5448554d423a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016106ff565b600e54610100900460ff16610f2c576001600160a01b0383165f9081526007602052604090205460ff1680610ea857506001600160a01b0382165f9081526007602052604090205460ff165b80610eca57506001600160a01b0383165f9081526008602052604090205460ff165b80610eec57506001600160a01b0382165f9081526008602052604090205460ff165b610f2c5760405162461bcd60e51b81526020600482015260116024820152701dd9481b9bdd081b185d5b98da081e595d607a1b60448201526064016106ff565b600e54610100900460ff16158015610f525750600a546001600160a01b03838116911614155b8015610f6c5750600a546001600160a01b03848116911614155b15610fc957600e5462010000900460ff16610fc95760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657273206172652063757272656e746c792064697361626c656460448201526064016106ff565b600a546001906001600160a01b038481169116148015610ff557505f546001600160a01b038581169116145b15611094576001600160a01b0384165f908152600c602052604081208054849290611021908490611b19565b90915550506001600160a01b0383165f908152600c60205260408120805484929061104d908490611b70565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611d468339815191528460405161108691815260200190565b60405180910390a350505050565b600a546001600160a01b0384811691161480156110c957506001600160a01b0384165f9081526007602052604090205460ff16155b80156110e257505f546001600160a01b03858116911614155b1561117e576004548211156111395760405162461bcd60e51b815260206004820152601d60248201527f53656c6c20616d6f756e742065786365656473206d6178206c696d697400000060448201526064016106ff565b600e805465ff0000000000198116650100000000001790915560ff1680156111715750600554305f908152600c602052604090205410155b1561117e5761117e6115db565b600a546001600160a01b0385811691161480156111b357506001600160a01b0383165f9081526007602052604090205460ff16155b80156111cc57505f546001600160a01b03848116911614155b15611223576003548211156112235760405162461bcd60e51b815260206004820152601c60248201527f42757920616d6f756e742065786365656473206d6178206c696d69740000000060448201526064016106ff565b6001600160a01b0384165f9081526007602052604090205460ff168061126057506001600160a01b0383165f9081526007602052604090205460ff165b1561126857505f5b600a546001600160a01b038481169116148015906112945750600a546001600160a01b03858116911614155b1561129c57505f5b80156114f657600e5465010000000000900460ff166113ce575f6064601154846112c69190611b83565b6112d09190611b9a565b90505f6112dd8285611b19565b305f908152600c60205260409020549091506112f9908361171e565b305f908152600c6020526040808220929092556001600160a01b038816815220546113249085611783565b6001600160a01b038088165f908152600c60205260408082209390935590871681522054611352908261171e565b6001600160a01b038087165f818152600c602052604090819020939093559151908816905f80516020611d46833981519152906113929085815260200190565b60405180910390a360405182815230906001600160a01b038816905f80516020611d468339815191529060200160405180910390a35050611586565b5f6064601354846113df9190611b83565b6113e99190611b9a565b90505f6113f68285611b19565b305f908152600c6020526040902054909150611412908361171e565b305f908152600c6020526040808220929092556001600160a01b0388168152205461143d9085611783565b6001600160a01b038088165f908152600c6020526040808220939093559087168152205461146b908261171e565b6001600160a01b038087165f818152600c602052604090819020939093559151908816905f80516020611d46833981519152906114ab9085815260200190565b60405180910390a360405182815230906001600160a01b038816905f80516020611d468339815191529060200160405180910390a35050600e805465ff000000000019169055611586565b6001600160a01b0384165f908152600c60205260409020546115189083611783565b6001600160a01b038086165f908152600c60205260408082209390935590851681522054611546908361171e565b6001600160a01b038085165f818152600c602052604090819020939093559151908616905f80516020611d46833981519152906110869086815260200190565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b305f908152600c602052604090205480156116d657600e546301000000900460ff1615610bda57801561168457600f54305f908152600c602052604081205490916064916116299190611b83565b6116339190611b9a565b90508061163f816117c4565b478015611586576006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561167d573d5f803e3d5ffd5b5050505050565b60405162461bcd60e51b815260206004820152602160248201527f4e6f205448554d4220746f6b656e7320617661696c61626c6520746f207377616044820152600760fc1b60648201526084016106ff565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f2062616c616e636520617661696c61626c6520746f20737761700000000060448201526064016106ff565b5f8061172a8385611b70565b90508381101561177c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106ff565b9392505050565b5f61177c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611914565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106117f7576117f7611ca7565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561184e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118729190611cbb565b8160018151811061188557611885611ca7565b6001600160a01b0392831660209182029290920101526009546118ab9130911684610c0b565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906118e39085905f90869030904290600401611cd6565b5f604051808303815f87803b1580156118fa575f80fd5b505af115801561190c573d5f803e3d5ffd5b505050505050565b5f81848411156119375760405162461bcd60e51b81526004016106ff919061194c565b505f6119438486611b19565b95945050505050565b5f6020808352835180828501525f5b818110156119775785810183015185820160400152820161195b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bda575f80fd5b5f80604083850312156119bc575f80fd5b82356119c781611997565b946020939093013593505050565b5f805f606084860312156119e7575f80fd5b83356119f281611997565b92506020840135611a0281611997565b929592945050506040919091013590565b5f60208284031215611a23575f80fd5b813561177c81611997565b80358015158114611a3d575f80fd5b919050565b5f8060408385031215611a53575f80fd5b8235611a5e81611997565b9150611a6c60208401611a2e565b90509250929050565b5f60208284031215611a85575f80fd5b5035919050565b5f60208284031215611a9c575f80fd5b61177c82611a2e565b5f8060408385031215611ab6575f80fd5b8235611ac181611997565b91506020830135611ad181611997565b809150509250929050565b5f805f60608486031215611aee575f80fd5b505081359360208301359350604090920135919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561068257610682611b05565b60208082526024908201527f4f776e61626c653a207468652063616c6c6572206973206e6f7420746865206f6040820152633bb732b960e11b606082015260800190565b8082018082111561068257610682611b05565b808202811582820484141761068257610682611b05565b5f82611bb457634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b80851115611bf357815f1904821115611bd957611bd9611b05565b80851615611be657918102915b93841c9390800290611bbe565b509250929050565b5f82611c0957506001610682565b81611c1557505f610682565b8160018114611c2b5760028114611c3557611c51565b6001915050610682565b60ff841115611c4657611c46611b05565b50506001821b610682565b5060208310610133831016604e8410600b8410161715611c74575081810a610682565b611c7e8383611bb9565b805f1904821115611c9157611c91611b05565b029392505050565b5f61177c60ff841683611bfb565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611ccb575f80fd5b815161177c81611997565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611d245784516001600160a01b031683529383019391830191600101611cff565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122076bdfcb45b5fd4aae3648bf8c7075c4f1ce92e2b816dbe06201f55397c79582064736f6c63430008140033
0x6080604052620000126009600a6200049c565b62000022906305f5e100620004b3565b600155620000336009600a6200049c565b6200004290620f4240620004b3565b600255620000536009600a6200049c565b62000062906207a120620004b3565b600355620000736009600a6200049c565b6200008290620f4240620004b3565b600455620000936009600a6200049c565b620000a290620f4240620004b3565b600555600680546001600160a01b031916739ed78bc70f77af4ffbad80fa27c89d39a999a49b179055600e805465ffffffffffff19166401010000011790556064600f90815560108190556011556037601281905560135534801562000106575f80fd5b5062000112336200033e565b600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000176573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019c9190620004cd565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020e9190620004cd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000259573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027f9190620004cd565b600a80546001600160a01b03199081166001600160a01b0393841617909155600b805433921682178155600180545f848152600c6020818152604080842085815596548916845260078252808420805460ff199081168817909155308552818520805482168817905560065490991684528084208054909916909517909755858252865292549151918252937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620004f5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003e157815f1904821115620003c557620003c56200038d565b80851615620003d357918102915b93841c9390800290620003a6565b509250929050565b5f82620003f95750600162000496565b816200040757505f62000496565b81600181146200042057600281146200042b576200044b565b600191505062000496565b60ff8411156200043f576200043f6200038d565b50506001821b62000496565b5060208310610133831016604e8410600b841016171562000470575081810a62000496565b6200047c8383620003a1565b805f19048211156200049257620004926200038d565b0290505b92915050565b5f620004ac60ff841683620003e9565b9392505050565b80820281158282048414176200049657620004966200038d565b5f60208284031215620004de575f80fd5b81516001600160a01b0381168114620004ac575f80fd5b611d9b80620005035f395ff3fe6080604052600436106101e9575f3560e01c8063893d20e811610108578063d0d41fe11161009d578063eba4c3331161006d578063eba4c333146105bf578063f2fde38b146105de578063f515a55c146105fd578063f7de4dfd1461061c578063feae65e71461063a575f80fd5b8063d0d41fe11461051e578063d8a0663c1461053d578063dd62ed3e1461055c578063e852f261146105a0575f80fd5b8063a14aee61116100d8578063a14aee6114610479578063a9059cbb14610498578063c683630d146104b7578063c6da3051146104ee575f80fd5b8063893d20e8146104445780638da5cb5b14610444578063925542871461046057806395d89b4114610230575f80fd5b80635342acb41161017e57806370a082311161014e57806370a08231146103be578063715018a6146103f257806371fc46881461040657806385438bc014610425575f80fd5b80635342acb41461032857806353d6fd591461035f5780635899825e146103805780636612e66f1461039f575f80fd5b806318160ddd116101b957806318160ddd146102b157806323b872dd146102cf578063313ce567146102ee57806349bd5a5e14610309575f80fd5b806301e51ae8146101f457806306fdde0314610230578063095ea7b3146102635780631694505e14610292575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50600654610213906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023b575f80fd5b50604080518082018252600581526410d050905360da1b60208201529051610227919061194c565b34801561026e575f80fd5b5061028261027d3660046119ab565b610672565b6040519015158152602001610227565b34801561029d575f80fd5b50600954610213906001600160a01b031681565b3480156102bc575f80fd5b506001545b604051908152602001610227565b3480156102da575f80fd5b506102826102e93660046119d5565b610688565b3480156102f9575f80fd5b5060405160098152602001610227565b348015610314575f80fd5b50600a54610213906001600160a01b031681565b348015610333575f80fd5b50610282610342366004611a13565b6001600160a01b03165f9081526007602052604090205460ff1690565b34801561036a575f80fd5b5061037e610379366004611a42565b6106d6565b005b34801561038b575f80fd5b50600e805462ffff00191662010100179055005b3480156103aa575f80fd5b5061037e6103b9366004611a42565b610732565b3480156103c9575f80fd5b506102c16103d8366004611a13565b6001600160a01b03165f908152600c602052604090205490565b3480156103fd575f80fd5b5061037e610785565b348015610411575f80fd5b5061037e610420366004611a75565b6107b9565b348015610430575f80fd5b50600e546102829062010000900460ff1681565b34801561044f575f80fd5b505f546001600160a01b0316610213565b34801561046b575f80fd5b50600e546102829060ff1681565b348015610484575f80fd5b5061037e610493366004611a8c565b6107ec565b3480156104a3575f80fd5b506102826104b23660046119ab565b610828565b3480156104c2575f80fd5b506102826104d1366004611a13565b6001600160a01b03165f9081526008602052604090205460ff1690565b3480156104f9575f80fd5b5060125460135460045460408051938452602084019290925290820152606001610227565b348015610529575f80fd5b5061037e610538366004611a13565b610923565b348015610548575f80fd5b5061037e610557366004611a75565b6109cd565b348015610567575f80fd5b506102c1610576366004611aa5565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b3480156105ab575f80fd5b5061037e6105ba366004611adc565b610a97565b3480156105ca575f80fd5b5061037e6105d9366004611a75565b610b10565b3480156105e9575f80fd5b5061037e6105f8366004611a13565b610b43565b348015610608575f80fd5b5061037e610617366004611a75565b610bdd565b348015610627575f80fd5b50600e5461028290610100900460ff1681565b348015610645575f80fd5b50601054601154600254600354604080519485526020850193909352918301526060820152608001610227565b5f61067e338484610c0b565b5060015b92915050565b6001600160a01b0383165f908152600d602090815260408083203380855292528220546106c19186916106bc908690611b19565b610c0b565b6106cc848484610d2e565b5060019392505050565b5f546001600160a01b031633146107085760405162461bcd60e51b81526004016106ff90611b2c565b60405180910390fd5b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461075b5760405162461bcd60e51b81526004016106ff90611b2c565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146107ae5760405162461bcd60e51b81526004016106ff90611b2c565b6107b75f61158c565b565b5f546001600160a01b031633146107e25760405162461bcd60e51b81526004016106ff90611b2c565b6010819055601155565b5f546001600160a01b031633146108155760405162461bcd60e51b81526004016106ff90611b2c565b600e805460ff1916911515919091179055565b600a545f906001600160a01b0384811691161480159061085557505f546001600160a01b03848116911614155b801561087957506001600160a01b0383165f9081526007602052604090205460ff16155b15610918576002546001600160a01b0384165f908152600c60205260409020546108a4908490611b70565b11156109185760405162461bcd60e51b815260206004820152603960248201527f5448554d423a20726563697069656e742077616c6c65742062616c616e63652060448201527f6578636565647320746865206d6178696d756d206c696d69740000000000000060648201526084016106ff565b61067e338484610d2e565b5f546001600160a01b0316331461094c5760405162461bcd60e51b81526004016106ff90611b2c565b6001600160a01b0381166109945760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106ff565b600680546001600160a01b039092166001600160a01b0319909216821790555f908152600760205260409020805460ff19166001179055565b5f546001600160a01b031633146109f65760405162461bcd60e51b81526004016106ff90611b2c565b6064610a0160015490565b610a0c906001611b83565b610a169190611b9a565b811115610a7b5760405162461bcd60e51b815260206004820152602d60248201527f496e76616c69642076616c75653a2065786365656473203125206f662074686560448201526c20746f74616c20737570706c7960981b60648201526084016106ff565b610a876009600a611c99565b610a919082611b83565b60055550565b5f546001600160a01b03163314610ac05760405162461bcd60e51b81526004016106ff90611b2c565b610acc6009600a611c99565b610ad69084611b83565b600255610ae56009600a611c99565b610aef9083611b83565b600355610afe6009600a611c99565b610b089082611b83565b600455505050565b5f546001600160a01b03163314610b395760405162461bcd60e51b81526004016106ff90611b2c565b6012819055601355565b5f546001600160a01b03163314610b6c5760405162461bcd60e51b81526004016106ff90611b2c565b6001600160a01b038116610bd15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ff565b610bda8161158c565b50565b5f546001600160a01b03163314610c065760405162461bcd60e51b81526004016106ff90611b2c565b600f55565b6001600160a01b038316610c6d5760405162461bcd60e51b8152602060048201526024808201527f5448554d423a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ff565b6001600160a01b038216610cce5760405162461bcd60e51b815260206004820152602260248201527f5448554d423a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ff565b6001600160a01b038381165f818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d925760405162461bcd60e51b815260206004820152602560248201527f5448554d423a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ff565b6001600160a01b038216610df45760405162461bcd60e51b815260206004820152602360248201527f5448554d423a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ff565b5f8111610e5c5760405162461bcd60e51b815260206004820152603060248201527f5448554d423a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016106ff565b600e54610100900460ff16610f2c576001600160a01b0383165f9081526007602052604090205460ff1680610ea857506001600160a01b0382165f9081526007602052604090205460ff165b80610eca57506001600160a01b0383165f9081526008602052604090205460ff165b80610eec57506001600160a01b0382165f9081526008602052604090205460ff165b610f2c5760405162461bcd60e51b81526020600482015260116024820152701dd9481b9bdd081b185d5b98da081e595d607a1b60448201526064016106ff565b600e54610100900460ff16158015610f525750600a546001600160a01b03838116911614155b8015610f6c5750600a546001600160a01b03848116911614155b15610fc957600e5462010000900460ff16610fc95760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657273206172652063757272656e746c792064697361626c656460448201526064016106ff565b600a546001906001600160a01b038481169116148015610ff557505f546001600160a01b038581169116145b15611094576001600160a01b0384165f908152600c602052604081208054849290611021908490611b19565b90915550506001600160a01b0383165f908152600c60205260408120805484929061104d908490611b70565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611d468339815191528460405161108691815260200190565b60405180910390a350505050565b600a546001600160a01b0384811691161480156110c957506001600160a01b0384165f9081526007602052604090205460ff16155b80156110e257505f546001600160a01b03858116911614155b1561117e576004548211156111395760405162461bcd60e51b815260206004820152601d60248201527f53656c6c20616d6f756e742065786365656473206d6178206c696d697400000060448201526064016106ff565b600e805465ff0000000000198116650100000000001790915560ff1680156111715750600554305f908152600c602052604090205410155b1561117e5761117e6115db565b600a546001600160a01b0385811691161480156111b357506001600160a01b0383165f9081526007602052604090205460ff16155b80156111cc57505f546001600160a01b03848116911614155b15611223576003548211156112235760405162461bcd60e51b815260206004820152601c60248201527f42757920616d6f756e742065786365656473206d6178206c696d69740000000060448201526064016106ff565b6001600160a01b0384165f9081526007602052604090205460ff168061126057506001600160a01b0383165f9081526007602052604090205460ff165b1561126857505f5b600a546001600160a01b038481169116148015906112945750600a546001600160a01b03858116911614155b1561129c57505f5b80156114f657600e5465010000000000900460ff166113ce575f6064601154846112c69190611b83565b6112d09190611b9a565b90505f6112dd8285611b19565b305f908152600c60205260409020549091506112f9908361171e565b305f908152600c6020526040808220929092556001600160a01b038816815220546113249085611783565b6001600160a01b038088165f908152600c60205260408082209390935590871681522054611352908261171e565b6001600160a01b038087165f818152600c602052604090819020939093559151908816905f80516020611d46833981519152906113929085815260200190565b60405180910390a360405182815230906001600160a01b038816905f80516020611d468339815191529060200160405180910390a35050611586565b5f6064601354846113df9190611b83565b6113e99190611b9a565b90505f6113f68285611b19565b305f908152600c6020526040902054909150611412908361171e565b305f908152600c6020526040808220929092556001600160a01b0388168152205461143d9085611783565b6001600160a01b038088165f908152600c6020526040808220939093559087168152205461146b908261171e565b6001600160a01b038087165f818152600c602052604090819020939093559151908816905f80516020611d46833981519152906114ab9085815260200190565b60405180910390a360405182815230906001600160a01b038816905f80516020611d468339815191529060200160405180910390a35050600e805465ff000000000019169055611586565b6001600160a01b0384165f908152600c60205260409020546115189083611783565b6001600160a01b038086165f908152600c60205260408082209390935590851681522054611546908361171e565b6001600160a01b038085165f818152600c602052604090819020939093559151908616905f80516020611d46833981519152906110869086815260200190565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b305f908152600c602052604090205480156116d657600e546301000000900460ff1615610bda57801561168457600f54305f908152600c602052604081205490916064916116299190611b83565b6116339190611b9a565b90508061163f816117c4565b478015611586576006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561167d573d5f803e3d5ffd5b5050505050565b60405162461bcd60e51b815260206004820152602160248201527f4e6f205448554d4220746f6b656e7320617661696c61626c6520746f207377616044820152600760fc1b60648201526084016106ff565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f2062616c616e636520617661696c61626c6520746f20737761700000000060448201526064016106ff565b5f8061172a8385611b70565b90508381101561177c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106ff565b9392505050565b5f61177c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611914565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106117f7576117f7611ca7565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561184e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118729190611cbb565b8160018151811061188557611885611ca7565b6001600160a01b0392831660209182029290920101526009546118ab9130911684610c0b565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906118e39085905f90869030904290600401611cd6565b5f604051808303815f87803b1580156118fa575f80fd5b505af115801561190c573d5f803e3d5ffd5b505050505050565b5f81848411156119375760405162461bcd60e51b81526004016106ff919061194c565b505f6119438486611b19565b95945050505050565b5f6020808352835180828501525f5b818110156119775785810183015185820160400152820161195b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bda575f80fd5b5f80604083850312156119bc575f80fd5b82356119c781611997565b946020939093013593505050565b5f805f606084860312156119e7575f80fd5b83356119f281611997565b92506020840135611a0281611997565b929592945050506040919091013590565b5f60208284031215611a23575f80fd5b813561177c81611997565b80358015158114611a3d575f80fd5b919050565b5f8060408385031215611a53575f80fd5b8235611a5e81611997565b9150611a6c60208401611a2e565b90509250929050565b5f60208284031215611a85575f80fd5b5035919050565b5f60208284031215611a9c575f80fd5b61177c82611a2e565b5f8060408385031215611ab6575f80fd5b8235611ac181611997565b91506020830135611ad181611997565b809150509250929050565b5f805f60608486031215611aee575f80fd5b505081359360208301359350604090920135919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561068257610682611b05565b60208082526024908201527f4f776e61626c653a207468652063616c6c6572206973206e6f7420746865206f6040820152633bb732b960e11b606082015260800190565b8082018082111561068257610682611b05565b808202811582820484141761068257610682611b05565b5f82611bb457634e487b7160e01b5f52601260045260245ffd5b500490565b600181815b80851115611bf357815f1904821115611bd957611bd9611b05565b80851615611be657918102915b93841c9390800290611bbe565b509250929050565b5f82611c0957506001610682565b81611c1557505f610682565b8160018114611c2b5760028114611c3557611c51565b6001915050610682565b60ff841115611c4657611c46611b05565b50506001821b610682565b5060208310610133831016604e8410600b8410161715611c74575081810a610682565b611c7e8383611bb9565b805f1904821115611c9157611c91611b05565b029392505050565b5f61177c60ff841683611bfb565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611ccb575f80fd5b815161177c81611997565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611d245784516001600160a01b031683529383019391830191600101611cff565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122076bdfcb45b5fd4aae3648bf8c7075c4f1ce92e2b816dbe06201f55397c79582064736f6c63430008140033