0x6080604052600380546001600160a01b031916600117905534801561002357600080fd5b50600080546001600160a01b03191633178082556001600160a01b03168152600160208190526040909120805460ff1916909117905561151c806100686000396000f3fe6080604052600436106100595760003560e01c806310d1e85c14610062578063178b6de6146100f95780632c512d6e1461012c57806353ed514314610165578063d9d62aa51461017a578063efeb5f1f1461025757610060565b3661006057005b005b34801561006e57600080fd5b506100606004803603608081101561008557600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b8111156100bb57600080fd5b8201836020820111156100cd57600080fd5b803590602001918460018302840111600160201b831117156100ee57600080fd5b50909250905061028a565b34801561010557600080fd5b506100606004803603602081101561011c57600080fd5b50356001600160a01b0316610915565b34801561013857600080fd5b506100606004803603604081101561014f57600080fd5b506001600160a01b038135169060200135610a2f565b34801561017157600080fd5b50610060610aa0565b34801561018657600080fd5b50610060600480360360c081101561019d57600080fd5b813591602081013591810190606081016040820135600160201b8111156101c357600080fd5b8201836020820111156101d557600080fd5b803590602001918460208302840111600160201b831117156101f657600080fd5b919390929091602081019035600160201b81111561021357600080fd5b82018360208201111561022557600080fd5b803590602001918460208302840111600160201b8311171561024657600080fd5b919350915080359060200135610ae6565b34801561026357600080fd5b506100606004803603602081101561027a57600080fd5b50356001600160a01b0316610f15565b6000336001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156102c557600080fd5b505afa1580156102d9573d6000803e3d6000fd5b505050506040513d60208110156102ef57600080fd5b50516040805163d21220a760e01b81529051919250600091339163d21220a7916004808301926020929190829003018186803b15801561032e57600080fd5b505afa158015610342573d6000803e3d6000fd5b505050506040513d602081101561035857600080fd5b50516003549091506001600160a01b031633146103ab576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b8515806103b6575084155b6103bf57600080fd5b600080600080878760808110156103d557600080fd5b81359190810190604081016020820135600160201b8111156103f657600080fd5b82018360208201111561040857600080fd5b803590602001918460208302840111600160201b8311171561042957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561047857600080fd5b82018360208201111561048a57600080fd5b803590602001918460208302840111600160201b831117156104ab57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156104fa57600080fd5b82018360208201111561050c57600080fd5b803590602001918460208302840111600160201b8311171561052d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092018290525088519a9e50989c50969a509198509596899650879550151593506105809250505057fe5b60200260200101516001600160a01b0316876001600160a01b0316146105a657866105a8565b855b905060008b156105b8578b6105ba565b8a5b90506000829050806001600160a01b031663a9059cbb876001815181106105dd57fe5b6020026020010151846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561062c57600080fd5b505af1158015610640573d6000803e3d6000fd5b505050506040513d602081101561065657600080fd5b50600190505b60018651038110156108675760008087838151811061067757fe5b602002602001015188846001018151811061068e57fe5b60200260200101519150915060006106a68383610f53565b50905060008885600101815181106106ba57fe5b60200260200101519050600080836001600160a01b0316866001600160a01b0316146106e8578260006106ec565b6000835b91509150600060018e51038810610703573061071b565b8d886001018151811061071257fe5b60200260200101515b90508d888151811061072957fe5b60200260200101516001600160a01b031663022c0d9f848484600067ffffffffffffffff8111801561075a57600080fd5b506040519080825280601f01601f191660200182016040528015610785576020820181803683370190505b506040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107ed5781810151838201526020016107d5565b50505050905090810190601f16801561081a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561083c57600080fd5b505af1158015610850573d6000803e3d6000fd5b50506001909901985061065c975050505050505050565b5060008560008151811061087757fe5b60200260200101519050806001600160a01b031663a9059cbb338a6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156108d857600080fd5b505af11580156108ec573d6000803e3d6000fd5b505050506040513d602081101561090257600080fd5b5050505050505050505050505050505050565b6000546001600160a01b0316331461092c57600080fd5b604080516370a0823160e01b8152306004820152905182916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561097757600080fd5b505afa15801561098b573d6000803e3d6000fd5b505050506040513d60208110156109a157600080fd5b5051600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b1580156109fe57600080fd5b505af1158015610a12573d6000803e3d6000fd5b505050506040513d6020811015610a2857600080fd5b5050505050565b6000546001600160a01b03163314610a4657600080fd5b600080546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101859052905185939284169263a9059cbb92604480820193602093909283900390910190829087803b1580156109fe57600080fd5b6000546001600160a01b03163314610ab757600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610ae3573d6000803e3d6000fd5b50565b3360009081526001602052604090205460ff16610b0257600080fd5b600080610b138a8a8a8a8a8a61103f565b600286905590925090508787600081610b2857fe5b905060200201356001600160a01b0316600360006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000828989898986604051602001808781526020018060200180602001806020018481038452898982818152602001925060200280828437600083820152601f01601f191690910185810384528781526020908101915088908802808284376000838201819052601f909101601f19169092018681038452875181528751602091820193828a0193509102908190849084905b83811015610c09578181015183820152602001610bf1565b50505050905001995050505050505050505060405160208183030381529060405290506000600360009054906101000a90046001600160a01b0316905087876000818110610c5357fe5b905060200201356001600160a01b03166001600160a01b0316816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca557600080fd5b505afa158015610cb9573d6000803e3d6000fd5b505050506040513d6020811015610ccf57600080fd5b50516001600160a01b03161415610ddb57806001600160a01b031663022c0d9f600085600181518110610cfe57fe5b602002602001015130866040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d6f578181015183820152602001610d57565b50505050905090810190601f168015610d9c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610dbe57600080fd5b505af1158015610dd2573d6000803e3d6000fd5b50505050610ed2565b806001600160a01b031663022c0d9f84600181518110610df757fe5b6020026020010151600030866040518563ffffffff1660e01b815260040180858152602001848152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e6a578181015183820152602001610e52565b50505050905090810190601f168015610e975780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610eb957600080fd5b505af1158015610ecd573d6000803e3d6000fd5b505050505b8415610f0757604051419086156108fc029087906000818181858888f19350505050158015610f05573d6000803e3d6000fd5b505b505050505050505050505050565b6000546001600160a01b03163314610f2c57600080fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b600080826001600160a01b0316846001600160a01b03161415610fbd576040805162461bcd60e51b815260206004820152601c60248201527f4c6962726172793a204944454e544943414c5f41444452455353455300000000604482015290519081900360640190fd5b826001600160a01b0316846001600160a01b031610610fdd578284610fe0565b83835b90925090506001600160a01b038216611038576040805162461bcd60e51b81526020600482015260156024820152744c6962726172793a205a45524f5f4144445245535360581b604482015290519081900360640190fd5b9250929050565b600060608267ffffffffffffffff8111801561105a57600080fd5b50604051908082528060200260200182016040528015611084578160200160208202803683370190505b509050878160008151811061109557fe5b60200260200101818152505060005b6000198401811015611380576000808888848181106110bf57fe5b905060200201356001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561110757600080fd5b505afa15801561111b573d6000803e3d6000fd5b505050506040513d606081101561113157600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008088886001870181811061116357fe5b905060200201356001600160a01b03166001600160a01b031689898781811061118857fe5b905060200201356001600160a01b03166001600160a01b0316106111ad5782846111b0565b83835b9150915060008686815181106111c257fe5b60200260200101511161121c576040805162461bcd60e51b815260206004820152601a60248201527f4c6962726172793a20494e535546465f494e5055545f414d4e54000000000000604482015290519081900360640190fd5b60008211801561122c5750600081115b611274576040805162461bcd60e51b81526020600482015260146024820152734c6962726172793a20494e535546465f4c49515560601b604482015290519081900360640190fd5b600061129e6103e588888151811061128857fe5b60200260200101516113de90919063ffffffff16565b905060006112ac82846113de565b905060006112c6836112c0876103e86113de565b90611447565b90508082816112d157fe5b048989600101815181106112e157fe5b60209081029190910101528761136d576113246103e861131e8b60018151811061130757fe5b6020026020010151886113de90919063ffffffff16565b906113de565b91506113536103e561131e8b60018151811061133c57fe5b60200260200101518761149690919063ffffffff16565b905061136a600182848161136357fe5b0490611447565b99505b5050600190950194506110a49350505050565b508688018160018351038151811061139457fe5b6020026020010151116113d3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b965096945050505050565b60008115806113f9575050808202828282816113f657fe5b04145b611441576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b80820182811015611441576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115611441576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fdfea2646970667358221220a731b3054fc34b334502175b34c033ae1fb83053901718053fd9a4f412375a4364736f6c63430007060033