0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e1565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100df576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161202061011860003960008181610e3801528181610e7801528181610f1701528181610f570152610fea01526120206000f3fe6080604052600436106101095760003560e01c8063715018a6116100955780638da5cb5b116100645780638da5cb5b146102fe578063c1f1388014610330578063c51891a21461036f578063e30c3978146103ae578063f2fde38b146103cc57600080fd5b8063715018a61461029f57806379ba5097146102b45780637dc9e79b146102c95780638129fc1c146102e957600080fd5b80634ec5c834116100dc5780634ec5c834146101a55780634f1ef286146102325780634f4133e81461024557806352d1902d1461026a578063641915201461027f57600080fd5b806301ffc9a71461010e5780630a6a32e7146101435780630c70d37d146101655780633659cfe614610185575b600080fd5b34801561011a57600080fd5b5061012e610129366004611997565b6103ec565b60405190151581526020015b60405180910390f35b34801561014f57600080fd5b5061016361015e3660046119c1565b610423565b005b34801561017157600080fd5b506101636101803660046119da565b6106d5565b34801561019157600080fd5b506101636101a0366004611a12565b610e2e565b3480156101b157600080fd5b5061021e6101c03660046119c1565b6101306020526000908152604090208054600182015460028301546003909301549192909160ff8083169261010081048216926001600160a01b036201000090920482169291811691600160a01b8204811691600160a81b90041688565b60405161013a989796959493929190611a6e565b610163610240366004611ae3565b610f0d565b34801561025157600080fd5b5061025c61012d5481565b60405190815260200161013a565b34801561027657600080fd5b5061025c610fdd565b34801561028b57600080fd5b5061016361029a3660046119c1565b611090565b3480156102ab57600080fd5b50610163611186565b3480156102c057600080fd5b5061016361119a565b3480156102d557600080fd5b506101636102e43660046119c1565b611211565b3480156102f557600080fd5b506101636112f5565b34801561030a57600080fd5b506097546001600160a01b03165b6040516001600160a01b03909116815260200161013a565b34801561033c57600080fd5b5061025c61034b366004611bad565b61012e60209081526000938452604080852082529284528284209052825290205481565b34801561037b57600080fd5b5061025c61038a366004611bad565b61012f60209081526000938452604080852082529284528284209052825290205481565b3480156103ba57600080fd5b5060c9546001600160a01b0316610318565b3480156103d857600080fd5b506101636103e7366004611a12565b61140d565b60006001600160e01b0319821663510fdb1560e01b148061041d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b61042b61147e565b8061012d5410156104575760405162461bcd60e51b815260040161044e90611be2565b60405180910390fd5b60008181526101306020908152604080832081516101008101835281548152600182015493810193909352600280820154919284019160ff16908111156104a0576104a0611a2d565b60028111156104b1576104b1611a2d565b81526020016002820160019054906101000a900460ff1660028111156104d9576104d9611a2d565b60028111156104ea576104ea611a2d565b815260028201546001600160a01b036201000090910481166020830152600390920154918216604082015260ff600160a01b8304811615156060830152600160a81b9092049091161515608090910152905060008160600151600281111561055457610554611a2d565b148015610577575060008160400151600281111561057457610574611a2d565b14155b156105b657602080820151600090815261012f8252604080822084518352835280822060808501516001600160a01b0316835290925290812055610670565b6000816060015160028111156105ce576105ce611a2d565b141580156105f157506000816040015160028111156105ef576105ef611a2d565b145b15610630578051600090815261012e60209081526040808320828501518452825280832060a08501516001600160a01b03168452909152812055610670565b60405162461bcd60e51b815260206004820152601560248201527413585c1c195c8e88125b9d985b1a59081b585c1259605a1b604482015260640161044e565b60008281526101306020526040808220828155600181018390556002810180546001600160b01b03199081169091556003909101805490911690555183917f5ab65888a44d68989e7b15cc88f8da5c6c628c180b5f67fde968c34035a01ac291a25050565b6106dd61147e565b6106ed60a0820160808301611a12565b6001600160a01b0381166107135760405162461bcd60e51b815260040161044e90611c38565b61072360c0830160a08401611a12565b6001600160a01b0381166107495760405162461bcd60e51b815260040161044e90611c38565b61012d6000815461075990611c7e565b90915550600061076f6080850160608601611cb2565b600281111561078057610780611a2d565b1480156107ae5750600061079a6060850160408601611cb2565b60028111156107ab576107ab611a2d565b14155b156109a0574683351461081a5760405162461bcd60e51b815260206004820152602e60248201527f4d61707065723a20436861696e4964206d75737420626520657175616c20746f60448201526d081bdc9a59da5b90da185a5b925960921b606482015260840161044e565b61082b610100840160e08501611cdf565b156108b25760016108426060850160408601611cb2565b600281111561085357610853611a2d565b146108b25760405162461bcd60e51b815260206004820152602960248201527f4d61707065723a204465706f73697454797065206d75737420626520657175616044820152686c20746f204c6f636b60b81b606482015260840161044e565b602080840135600090815261012f8252604080822086358352909252908120816108e260a0870160808801611a12565b6001600160a01b031681526020810191909152604001600020549050801561094c5760405162461bcd60e51b815260206004820181905260248201527f4d61707065723a204d61704964206d75737420626520657175616c20746f2030604482015260640161044e565b61012d54602080860135600090815261012f82526040808220883583529092529081209061098060a0880160808901611a12565b6001600160a01b0316815260208101919091526040016000205550610c11565b60006109b26080850160608601611cb2565b60028111156109c3576109c3611a2d565b141580156109f1575060006109de6060850160408601611cb2565b60028111156109ef576109ef611a2d565b145b15610bc95782602001354614610a605760405162461bcd60e51b815260206004820152602e60248201527f4d61707065723a20436861696e4964206d75737420626520657175616c20746f60448201526d081d185c99d95d10da185a5b925960921b606482015260840161044e565b610a71610100840160e08501611cdf565b15610afb576001610a886080850160608601611cb2565b6002811115610a9957610a99611a2d565b14610afb5760405162461bcd60e51b815260206004820152602c60248201527f4d61707065723a20576974686472617754797065206d7573742062652065717560448201526b616c20746f20556e6c6f636b60a01b606482015260840161044e565b8235600090815261012e60209081526040808320828701358452909152812081610b2b60c0870160a08801611a12565b6001600160a01b0316815260208101919091526040016000205490508015610b955760405162461bcd60e51b815260206004820181905260248201527f4d61707065723a204d61704964206d75737420626520657175616c20746f2030604482015260640161044e565b61012d548435600090815261012e6020908152604080832082890135845290915281209061098060c0880160a08901611a12565b60405162461bcd60e51b815260206004820152601960248201527f4d61707065723a20496e76616c6964206d617020747970657300000000000000604482015260640161044e565b6040518061010001604052808460000135815260200184602001358152602001846040016020810190610c449190611cb2565b6002811115610c5557610c55611a2d565b8152602001610c6a6080860160608701611cb2565b6002811115610c7b57610c7b611a2d565b8152602001610c9060a0860160808701611a12565b6001600160a01b03168152602001610cae60c0860160a08701611a12565b6001600160a01b03168152602001610ccc60e0860160c08701611cdf565b15158152602001610ce4610100860160e08701611cdf565b1515815250610130600061012d548152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690836002811115610d3e57610d3e611a2d565b021790555060608201518160020160016101000a81548160ff02191690836002811115610d6d57610d6d611a2d565b0217905550608082015160028201805462010000600160b01b031916620100006001600160a01b039384160217905560a08301516003909201805460c085015160e090950151939092166001600160a81b031990921691909117600160a01b931515939093029290921760ff60a81b1916600160a81b9115159190910217905561012d546040517ffa9b4c62b2cb334832be6e6c4047da14ddb87a2ec078dc1b3a8abca055813d3790610e21908690611cfa565b60405180910390a2505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e765760405162461bcd60e51b815260040161044e90611da8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ebf600080516020611fa4833981519152546001600160a01b031690565b6001600160a01b031614610ee55760405162461bcd60e51b815260040161044e90611df4565b610eee816114d8565b60408051600080825260208201909252610f0a918391906114e0565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f555760405162461bcd60e51b815260040161044e90611da8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f9e600080516020611fa4833981519152546001600160a01b031690565b6001600160a01b031614610fc45760405162461bcd60e51b815260040161044e90611df4565b610fcd826114d8565b610fd9828260016114e0565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461107d5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161044e565b50600080516020611fa483398151915290565b61109861147e565b8061012d5410156110bb5760405162461bcd60e51b815260040161044e90611be2565b60008181526101306020526040902060030154600160a01b900460ff16156111255760405162461bcd60e51b815260206004820152601f60248201527f4d61707065723a204973416c6c6f776564206d7573742062652066616c736500604482015260640161044e565b600081815261013060205260409081902060038101805460ff60a01b1916600160a01b179055905182917f237a2c0a30f8fbdbb3c03f78f343b59b4ad02cdb02719d43a86e549eb9ff6e269161117b9190611e40565b60405180910390a250565b61118e61147e565b6111986000611650565b565b60c95433906001600160a01b031681146112085760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161044e565b610f0a81611650565b61121961147e565b8061012d54101561123c5760405162461bcd60e51b815260040161044e90611be2565b60008181526101306020526040902060030154600160a01b900460ff166112a55760405162461bcd60e51b815260206004820152601e60248201527f4d61707065723a204973416c6c6f776564206d75737420626520747275650000604482015260640161044e565b600081815261013060205260409081902060038101805460ff60a01b19169055905182917f9e8d9d52108c7328a39dbc5fe9fff3e732c077e56490a9e8d531402af26149cb9161117b9190611e40565b600054610100900460ff16158080156113155750600054600160ff909116105b8061132f5750303b15801561132f575060005460ff166001145b6113925760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161044e565b6000805460ff1916600117905580156113b5576000805461ff0019166101001790555b6113bd611669565b6113c5611690565b8015610f0a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b61141561147e565b60c980546001600160a01b0383166001600160a01b031990911681179091556114466097546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6097546001600160a01b031633146111985760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161044e565b610f0a61147e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561151857611513836116bf565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611572575060408051601f3d908101601f1916820190925261156f91810190611ecc565b60015b6115d55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161044e565b600080516020611fa483398151915281146116445760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161044e565b5061151383838361175b565b60c980546001600160a01b0319169055610f0a81611786565b600054610100900460ff166111985760405162461bcd60e51b815260040161044e90611ee5565b600054610100900460ff166116b75760405162461bcd60e51b815260040161044e90611ee5565b6111986117d8565b6001600160a01b0381163b61172c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161044e565b600080516020611fa483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61176483611808565b6000825111806117715750805b15611513576117808383611848565b50505050565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166117ff5760405162461bcd60e51b815260040161044e90611ee5565b61119833611650565b611811816116bf565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061186d8383604051806060016040528060278152602001611fc460279139611874565b9392505050565b6060600080856001600160a01b0316856040516118919190611f54565b600060405180830381855af49150503d80600081146118cc576040519150601f19603f3d011682016040523d82523d6000602084013e6118d1565b606091505b50915091506118e2868383876118ec565b9695505050505050565b6060831561195b578251600003611954576001600160a01b0385163b6119545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161044e565b5081611965565b611965838361196d565b949350505050565b81511561197d5781518083602001fd5b8060405162461bcd60e51b815260040161044e9190611f70565b6000602082840312156119a957600080fd5b81356001600160e01b03198116811461186d57600080fd5b6000602082840312156119d357600080fd5b5035919050565b60006101008284031280156119ee57600080fd5b509092915050565b80356001600160a01b0381168114611a0d57600080fd5b919050565b600060208284031215611a2457600080fd5b61186d826119f6565b634e487b7160e01b600052602160045260246000fd5b60038110610f0a57634e487b7160e01b600052602160045260246000fd5b611a6a81611a43565b9052565b888152602081018890526101008101611a8688611a43565b876040830152611a9587611a43565b60608201969096526001600160a01b0394851660808201529290931660a0830152151560c082015290151560e0909101529392505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611af657600080fd5b611aff836119f6565b9150602083013567ffffffffffffffff811115611b1b57600080fd5b8301601f81018513611b2c57600080fd5b803567ffffffffffffffff811115611b4657611b46611acd565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611b7557611b75611acd565b604052818152828201602001871015611b8d57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600060608486031215611bc257600080fd5b8335925060208401359150611bd9604085016119f6565b90509250925092565b60208082526036908201527f4d61707065723a204d6170436f756e746572206d757374206265206772656174604082015275195c881d1a185b881bdc88195c5d585b081b585c125960521b606082015260800190565b60208082526026908201527f4d61707065723a2041646472657373206d757374206265206e6f7420657175616040820152656c207a65726f60d01b606082015260800190565b600060018201611c9e57634e487b7160e01b600052601160045260246000fd5b5060010190565b60038110610f0a57600080fd5b600060208284031215611cc457600080fd5b813561186d81611ca5565b80358015158114611a0d57600080fd5b600060208284031215611cf157600080fd5b61186d82611ccf565b813581526020808301359082015261010081016040830135611d1b81611ca5565b611d2481611a43565b60408301526060830135611d3781611ca5565b611d4081611a43565b60608301526001600160a01b03611d59608085016119f6565b166080830152611d6b60a084016119f6565b6001600160a01b031660a0830152611d8560c08401611ccf565b151560c0830152611d9860e08401611ccf565b80151560e08401525b5092915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b81548152600182015460208201526002820154610100820190611e696040840160ff8316611a61565b611e7c6060840160ff8360081c16611a61565b6001600160a01b03601082901c1660808401525060038301546001600160a01b03811660a0840152611eb860c0840160ff8360a01c1615159052565b611da160e0840160ff8360a81c1615159052565b600060208284031215611ede57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b83811015611f4b578181015183820152602001611f33565b50506000910152565b60008251611f66818460208701611f30565b9190910192915050565b6020815260008251806020840152611f8f816040850160208701611f30565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220dab28d15d83a0eeab9c4f6b023104f668a288b477651b802cfbc56018a89a01864736f6c634300081e0033