0x60806040526004361061003e575f3560e01c80633784a95a146100425780638da5cb5b146100685780639ec68f0f1461008e578063f2fde38b146100ad575b5f80fd5b6100556100503660046105a2565b6100ce565b6040519081526020015b60405180910390f35b348015610073575f80fd5b505f546040516001600160a01b03909116815260200161005f565b348015610099575f80fd5b506100556100a8366004610624565b61013c565b3480156100b8575f80fd5b506100cc6100c736600461069f565b6101ad565b005b5f805b84811015610133576101218686838181106100ee576100ee6106bf565b9050602002016020810190610103919061069f565b858584818110610115576101156106bf565b90506020020135610217565b61012c6001826106d3565b90506100d1565b95945050505050565b5f805b848110156101a357610191873388888581811061015e5761015e6106bf565b9050602002016020810190610173919061069f565b878786818110610185576101856106bf565b905060200201356102fb565b61019c6001826106d3565b905061013f565b9695505050505050565b5f546001600160a01b0316331461020b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6102148161046d565b50565b604080515f808252602082019092526001600160a01b03841690839060405161024091906106f8565b5f6040518083038185875af1925050503d805f811461027a576040519150601f19603f3d011682016040523d82523d5f602084013e61027f565b606091505b50509050806102f65760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201527f4c454400000000000000000000000000000000000000000000000000000000006064820152608401610202565b505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291515f9283929088169161038c91906106f8565b5f604051808303815f865af19150503d805f81146103c5576040519150601f19603f3d011682016040523d82523d5f602084013e6103ca565b606091505b50915091508180156103f45750805115806103f45750808060200190518101906103f49190610724565b6104655760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160448201527f494c4544000000000000000000000000000000000000000000000000000000006064820152608401610202565b505050505050565b6001600160a01b0381166104e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610202565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f8083601f84011261056a575f80fd5b50813567ffffffffffffffff811115610581575f80fd5b6020830191508360208260051b850101111561059b575f80fd5b9250929050565b5f805f80604085870312156105b5575f80fd5b843567ffffffffffffffff808211156105cc575f80fd5b6105d88883890161055a565b909650945060208701359150808211156105f0575f80fd5b506105fd8782880161055a565b95989497509550505050565b80356001600160a01b038116811461061f575f80fd5b919050565b5f805f805f60608688031215610638575f80fd5b61064186610609565b9450602086013567ffffffffffffffff8082111561065d575f80fd5b61066989838a0161055a565b90965094506040880135915080821115610681575f80fd5b5061068e8882890161055a565b969995985093965092949392505050565b5f602082840312156106af575f80fd5b6106b882610609565b9392505050565b634e487b7160e01b5f52603260045260245ffd5b808201808211156106f257634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82515f5b8181101561071757602081860181015185830152016106fd565b505f920191825250919050565b5f60208284031215610734575f80fd5b815180151581146106b8575f80fdfea2646970667358221220cf7998907e4a897cff45bcf10db477c6513541e1d048f1b92d3cb8112c4fc77364736f6c63430008140033
0x608060405234801561000f575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506107798061005d5f395ff3fe60806040526004361061003e575f3560e01c80633784a95a146100425780638da5cb5b146100685780639ec68f0f1461008e578063f2fde38b146100ad575b5f80fd5b6100556100503660046105a2565b6100ce565b6040519081526020015b60405180910390f35b348015610073575f80fd5b505f546040516001600160a01b03909116815260200161005f565b348015610099575f80fd5b506100556100a8366004610624565b61013c565b3480156100b8575f80fd5b506100cc6100c736600461069f565b6101ad565b005b5f805b84811015610133576101218686838181106100ee576100ee6106bf565b9050602002016020810190610103919061069f565b858584818110610115576101156106bf565b90506020020135610217565b61012c6001826106d3565b90506100d1565b95945050505050565b5f805b848110156101a357610191873388888581811061015e5761015e6106bf565b9050602002016020810190610173919061069f565b878786818110610185576101856106bf565b905060200201356102fb565b61019c6001826106d3565b905061013f565b9695505050505050565b5f546001600160a01b0316331461020b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6102148161046d565b50565b604080515f808252602082019092526001600160a01b03841690839060405161024091906106f8565b5f6040518083038185875af1925050503d805f811461027a576040519150601f19603f3d011682016040523d82523d5f602084013e61027f565b606091505b50509050806102f65760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201527f4c454400000000000000000000000000000000000000000000000000000000006064820152608401610202565b505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291515f9283929088169161038c91906106f8565b5f604051808303815f865af19150503d805f81146103c5576040519150601f19603f3d011682016040523d82523d5f602084013e6103ca565b606091505b50915091508180156103f45750805115806103f45750808060200190518101906103f49190610724565b6104655760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160448201527f494c4544000000000000000000000000000000000000000000000000000000006064820152608401610202565b505050505050565b6001600160a01b0381166104e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610202565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f8083601f84011261056a575f80fd5b50813567ffffffffffffffff811115610581575f80fd5b6020830191508360208260051b850101111561059b575f80fd5b9250929050565b5f805f80604085870312156105b5575f80fd5b843567ffffffffffffffff808211156105cc575f80fd5b6105d88883890161055a565b909650945060208701359150808211156105f0575f80fd5b506105fd8782880161055a565b95989497509550505050565b80356001600160a01b038116811461061f575f80fd5b919050565b5f805f805f60608688031215610638575f80fd5b61064186610609565b9450602086013567ffffffffffffffff8082111561065d575f80fd5b61066989838a0161055a565b90965094506040880135915080821115610681575f80fd5b5061068e8882890161055a565b969995985093965092949392505050565b5f602082840312156106af575f80fd5b6106b882610609565b9392505050565b634e487b7160e01b5f52603260045260245ffd5b808201808211156106f257634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82515f5b8181101561071757602081860181015185830152016106fd565b505f920191825250919050565b5f60208284031215610734575f80fd5b815180151581146106b8575f80fdfea2646970667358221220cf7998907e4a897cff45bcf10db477c6513541e1d048f1b92d3cb8112c4fc77364736f6c63430008140033