0x608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063313ce56711610063578063313ce5671461010c57806370a082311461012b57806395d89b4114610153578063a9059cbb1461015b578063dd62ed3e1461016e575f80fd5b806306fdde031461009f578063095ea7b3146100bd57806318160ddd146100e057806323b872dd146100f7578063291270af1461010a575b5f80fd5b6100a76101a6565b6040516100b491906105cc565b60405180910390f35b6100d06100cb36600461061c565b610231565b60405190151581526020016100b4565b6100e960035481565b6040519081526020016100b4565b6100d0610105366004610644565b61029d565b005b6002546101199060ff1681565b60405160ff90911681526020016100b4565b6100e961013936600461067e565b6001600160a01b03165f9081526004602052604090205490565b6100a76104d0565b6100d061016936600461061c565b6104dd565b6100e961017c36600461069e565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b5f80546101b2906106cf565b80601f01602080910402602001604051908101604052809291908181526020018280546101de906106cf565b80156102295780601f1061020057610100808354040283529160200191610229565b820191905f5260205f20905b81548152906001019060200180831161020c57829003601f168201915b505050505081565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061028b9086815260200190565b60405180910390a35060015b92915050565b5f6001600160a01b0384166103055760405162461bcd60e51b8152602060048201526024808201527f584e41493a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b03831661032b5760405162461bcd60e51b81526004016102fc90610707565b6001600160a01b0384165f90815260046020526040902054828110156103635760405162461bcd60e51b81526004016102fc90610749565b6001600160a01b0385165f908152600560209081526040808320338452909152902054838110156103e65760405162461bcd60e51b815260206004820152602760248201527f584e41493a207472616e7366657220616d6f756e74206578636565647320616c6044820152666c6f77616e636560c81b60648201526084016102fc565b6001600160a01b0386165f908152600460205260408120805486929061040d9084906107a2565b90915550506001600160a01b0385165f90815260046020526040812080548692906104399084906107b5565b90915550506001600160a01b0386165f908152600560209081526040808320338452909152812080548692906104709084906107a2565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516104bc91815260200190565b60405180910390a350600195945050505050565b600180546101b2906106cf565b5f6001600160a01b0383166105045760405162461bcd60e51b81526004016102fc90610707565b335f90815260046020526040902054828110156105335760405162461bcd60e51b81526004016102fc90610749565b335f90815260046020526040812080548592906105519084906107a2565b90915550506001600160a01b0384165f908152600460205260408120805485929061057d9084906107b5565b90915550506040518381526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060019392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610617575f80fd5b919050565b5f806040838503121561062d575f80fd5b61063683610601565b946020939093013593505050565b5f805f60608486031215610656575f80fd5b61065f84610601565b925061066d60208501610601565b929592945050506040919091013590565b5f6020828403121561068e575f80fd5b61069782610601565b9392505050565b5f80604083850312156106af575f80fd5b6106b883610601565b91506106c660208401610601565b90509250929050565b600181811c908216806106e357607f821691505b60208210810361070157634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f584e41493a207472616e7366657220746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526025908201527f584e41493a207472616e7366657220616d6f756e7420657863656564732062616040820152646c616e636560d81b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102975761029761078e565b808201808211156102975761029761078e56fea2646970667358221220666cdd1aea717cc67f8f5aa2d4f14afecdf49bddfbb4460e75301a6048604b4264736f6c634300081a0033
0x608060405234801561000f575f80fd5b50604080518082019091526009815268582d4e6f766120416960b81b60208201525f9061003c9082610178565b50604080518082019091526004815263584e414960e01b60208201526001906100659082610178565b506002805460ff1916601290811790915561008190600a61032b565b61008f906305f5e10061033d565b6003819055335f81815260046020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610354565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061010857607f821691505b60208210810361012657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561017357805f5260205f20601f840160051c810160208510156101515750805b601f840160051c820191505b81811015610170575f815560010161015d565b50505b505050565b81516001600160401b03811115610191576101916100e0565b6101a58161019f84546100f4565b8461012c565b6020601f8211600181146101d7575f83156101c05750848201515b5f19600385901b1c1916600184901b178455610170565b5f84815260208120601f198516915b8281101561020657878501518255602094850194600190920191016101e6565b508482101561022357868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102815780850481111561026557610265610232565b600184161561027357908102905b60019390931c92800261024a565b935093915050565b5f8261029757506001610325565b816102a357505f610325565b81600181146102b957600281146102c3576102df565b6001915050610325565b60ff8411156102d4576102d4610232565b50506001821b610325565b5060208310610133831016604e8410600b8410161715610302575081810a610325565b61030e5f198484610246565b805f190482111561032157610321610232565b0290505b92915050565b5f6103368383610289565b9392505050565b808202811582820484141761032557610325610232565b6107fe806103615f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c8063313ce56711610063578063313ce5671461010c57806370a082311461012b57806395d89b4114610153578063a9059cbb1461015b578063dd62ed3e1461016e575f80fd5b806306fdde031461009f578063095ea7b3146100bd57806318160ddd146100e057806323b872dd146100f7578063291270af1461010a575b5f80fd5b6100a76101a6565b6040516100b491906105cc565b60405180910390f35b6100d06100cb36600461061c565b610231565b60405190151581526020016100b4565b6100e960035481565b6040519081526020016100b4565b6100d0610105366004610644565b61029d565b005b6002546101199060ff1681565b60405160ff90911681526020016100b4565b6100e961013936600461067e565b6001600160a01b03165f9081526004602052604090205490565b6100a76104d0565b6100d061016936600461061c565b6104dd565b6100e961017c36600461069e565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b5f80546101b2906106cf565b80601f01602080910402602001604051908101604052809291908181526020018280546101de906106cf565b80156102295780601f1061020057610100808354040283529160200191610229565b820191905f5260205f20905b81548152906001019060200180831161020c57829003601f168201915b505050505081565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061028b9086815260200190565b60405180910390a35060015b92915050565b5f6001600160a01b0384166103055760405162461bcd60e51b8152602060048201526024808201527f584e41493a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b03831661032b5760405162461bcd60e51b81526004016102fc90610707565b6001600160a01b0384165f90815260046020526040902054828110156103635760405162461bcd60e51b81526004016102fc90610749565b6001600160a01b0385165f908152600560209081526040808320338452909152902054838110156103e65760405162461bcd60e51b815260206004820152602760248201527f584e41493a207472616e7366657220616d6f756e74206578636565647320616c6044820152666c6f77616e636560c81b60648201526084016102fc565b6001600160a01b0386165f908152600460205260408120805486929061040d9084906107a2565b90915550506001600160a01b0385165f90815260046020526040812080548692906104399084906107b5565b90915550506001600160a01b0386165f908152600560209081526040808320338452909152812080548692906104709084906107a2565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516104bc91815260200190565b60405180910390a350600195945050505050565b600180546101b2906106cf565b5f6001600160a01b0383166105045760405162461bcd60e51b81526004016102fc90610707565b335f90815260046020526040902054828110156105335760405162461bcd60e51b81526004016102fc90610749565b335f90815260046020526040812080548592906105519084906107a2565b90915550506001600160a01b0384165f908152600460205260408120805485929061057d9084906107b5565b90915550506040518381526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060019392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610617575f80fd5b919050565b5f806040838503121561062d575f80fd5b61063683610601565b946020939093013593505050565b5f805f60608486031215610656575f80fd5b61065f84610601565b925061066d60208501610601565b929592945050506040919091013590565b5f6020828403121561068e575f80fd5b61069782610601565b9392505050565b5f80604083850312156106af575f80fd5b6106b883610601565b91506106c660208401610601565b90509250929050565b600181811c908216806106e357607f821691505b60208210810361070157634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f584e41493a207472616e7366657220746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526025908201527f584e41493a207472616e7366657220616d6f756e7420657863656564732062616040820152646c616e636560d81b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102975761029761078e565b808201808211156102975761029761078e56fea2646970667358221220666cdd1aea717cc67f8f5aa2d4f14afecdf49bddfbb4460e75301a6048604b4264736f6c634300081a0033