608060405234801562000010575f80fd5b50604051806040016040528060088152602001676e756d6f6772616d60c01b8152506040518060400160405280600481526020016323a727a760e11b81525060096200006b620000656200011360201b60201c565b62000117565b600662000079848262000206565b50600762000088838262000206565b506008805460ff191660ff92909216919091179055505068056bc75e2d631000006005819055335f9081526002602052604081208054909190620000ce908490620002ce565b909155505060055460405190815233905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620002f4565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200018f57607f821691505b602082108103620001ae57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000201575f81815260208120601f850160051c81016020861015620001dc5750805b601f850160051c820191505b81811015620001fd57828155600101620001e8565b5050505b505050565b81516001600160401b0381111562000222576200022262000166565b6200023a816200023384546200017a565b84620001b4565b602080601f83116001811462000270575f8415620002585750858301515b5f19600386901b1c1916600185901b178555620001fd565b5f85815260208120601f198616915b82811015620002a0578886015182559484019460019091019084016200027f565b5085821015620002be57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620002ee57634e487b7160e01b5f52601160045260245ffd5b92915050565b610fff80620003025f395ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c806370a08231116100a9578063a457c2d71161006e578063a457c2d71461027f578063a9059cbb14610292578063c2b7bbb6146102a5578063c6b10e1d146102b8578063dd62ed3e146102e3575f80fd5b806370a0823114610224578063715018a61461024c57806373fa7ddb146102545780638da5cb5b1461026757806395d89b4114610277575f80fd5b8063313ce567116100ef578063313ce567146101a657806339509351146101bb57806342966c68146101ce57806349bd5a5e146101e15780635c19a95c14610211575f80fd5b806306fdde031461012b578063095ea7b31461014957806318160ddd1461016c57806323b872dd1461017e57806326ededb814610191575b5f80fd5b61013361031b565b6040516101409190610cae565b60405180910390f35b61015c610157366004610d14565b6103ab565b6040519015158152602001610140565b6005545b604051908152602001610140565b61015c61018c366004610d3c565b6103c1565b6101a461019f366004610dbd565b61046e565b005b60085460405160ff9091168152602001610140565b61015c6101c9366004610d14565b61052d565b6101a46101dc366004610e05565b610568565b6008546101f99061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610140565b6101a461021f366004610e1c565b61059f565b610170610232366004610e1c565b6001600160a01b03165f9081526002602052604090205490565b6101a46105ff565b6101a4610262366004610e3c565b610633565b5f546001600160a01b03166101f9565b6101336106cb565b61015c61028d366004610d14565b6106da565b61015c6102a0366004610d14565b610772565b6101a46102b3366004610e1c565b61077e565b61015c6102c6366004610e1c565b6001600160a01b03165f9081526003602052604090205460ff1690565b6101706102f1366004610e93565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b60606006805461032a90610ec4565b80601f016020809104026020016040519081016040528092919081815260200182805461035690610ec4565b80156103a15780601f10610378576101008083540402835291602001916103a1565b820191905f5260205f20905b81548152906001019060200180831161038457829003601f168201915b5050505050905090565b5f6103b73384846107cf565b5060015b92915050565b5f6103cd8484846108f3565b6001600160a01b0384165f908152600460209081526040808320338452909152902054828110156104565760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61046385338584036107cf565b506001949350505050565b6001546001600160a01b031633146104985760405162461bcd60e51b815260040161044d90610efc565b5f5b82811015610527578383828181106104b4576104b4610f41565b90506020020160208101906104c99190610e1c565b6008546040518481526001600160a01b0392831692610100909204909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a38061051f81610f69565b91505061049a565b50505050565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916103b7918590610563908690610f81565b6107cf565b6001546001600160a01b031633146105925760405162461bcd60e51b815260040161044d90610efc565b61059c3382610b3e565b50565b5f546001600160a01b031633146105c85760405162461bcd60e51b815260040161044d90610f94565b6001546001600160a01b0316156105dd575f80fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146106285760405162461bcd60e51b815260040161044d90610f94565b6106315f610c5f565b565b6001546001600160a01b0316331461065d5760405162461bcd60e51b815260040161044d90610efc565b5f5b82811015610527578160035f86868581811061067d5761067d610f41565b90506020020160208101906106929190610e1c565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055806106c381610f69565b91505061065f565b60606007805461032a90610ec4565b335f9081526004602090815260408083206001600160a01b03861684529091528120548281101561075b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161044d565b61076833858584036107cf565b5060019392505050565b5f6103b73384846108f3565b5f546001600160a01b031633146107a75760405162461bcd60e51b815260040161044d90610f94565b600880546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166108315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161044d565b6001600160a01b0382166108925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161044d565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166109575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161044d565b6001600160a01b0382166109b95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161044d565b6001600160a01b0383165f9081526003602052604090205460ff1615610a37578015610a375760405162461bcd60e51b815260206004820152602760248201527f45524332303a207472616e7366657220616d6f7574206578636565647320616c6044820152666c6f77616e636560c81b606482015260840161044d565b6001600160a01b0383165f9081526002602052604090205481811015610aae5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161044d565b6001600160a01b038085165f90815260026020526040808220858503905591851681529081208054849290610ae4908490610f81565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b3091815260200190565b60405180910390a350505050565b6001600160a01b038216610b9e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161044d565b6001600160a01b0382165f9081526002602052604090205481811115610c115760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161044d565b6001600160a01b0383165f8181526002602090815260408083208686019055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016108e6565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020808352835180828501525f5b81811015610cd957858101830151858201604001528201610cbd565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d0f575f80fd5b919050565b5f8060408385031215610d25575f80fd5b610d2e83610cf9565b946020939093013593505050565b5f805f60608486031215610d4e575f80fd5b610d5784610cf9565b9250610d6560208501610cf9565b9150604084013590509250925092565b5f8083601f840112610d85575f80fd5b50813567ffffffffffffffff811115610d9c575f80fd5b6020830191508360208260051b8501011115610db6575f80fd5b9250929050565b5f805f60408486031215610dcf575f80fd5b833567ffffffffffffffff811115610de5575f80fd5b610df186828701610d75565b909790965060209590950135949350505050565b5f60208284031215610e15575f80fd5b5035919050565b5f60208284031215610e2c575f80fd5b610e3582610cf9565b9392505050565b5f805f60408486031215610e4e575f80fd5b833567ffffffffffffffff811115610e64575f80fd5b610e7086828701610d75565b90945092505060208401358015158114610e88575f80fd5b809150509250925092565b5f8060408385031215610ea4575f80fd5b610ead83610cf9565b9150610ebb60208401610cf9565b90509250929050565b600181811c90821680610ed857607f821691505b602082108103610ef657634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526025908201527f44656c6567617465733a2063616c6c6572206973206e6f74207468652064656c604082015264656761746560d81b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201610f7a57610f7a610f55565b5060010190565b808201808211156103bb576103bb610f55565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea264697066735822122038f6ced07b96fa72d821eff72bd7d2f6ec50e94fe513b002effcf315d2322d0764736f6c63430008150033