0x60806040523480156200001157600080fd5b5060405162004fa138038062004fa1833981016040819052620000349162000441565b848483838082600033600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200009233620001a0565b620000a46301ffc9a760e01b620001f2565b620000b6632dde656160e21b620001f2565b6003620000c48282620005ab565b50620000d763e8a3d48560e01b620001f2565b506004620000e68282620005ab565b50620000fb90506380ac58cd60e01b620001f2565b6200010d63780e9d6360e01b620001f2565b600e6200011b8582620005ab565b50600f6200012a8482620005ab565b506200013d635b5e139f60e01b620001f2565b6200014f630a85bd0160e11b620001f2565b50505050620001847fe37243f27916e395706434720b54132b80ef5cc8c56f39b0df6485e8dfb697cf620001f260201b60201c565b6200018f83620001a0565b505060036011555062000677915050565b620001bb8160016200027760201b6200226c1790919060201c565b6040516001600160a01b038216907f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f2490600090a250565b6001600160e01b03198082169003620002525760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e746572666163652069640000000060448201526064015b60405180910390fd5b6001600160e01b0319166000908152600260205260409020805460ff19166001179055565b620002838282620002f7565b15620002d25760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015260640162000249565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200035c5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b606482015260840162000249565b506001600160a01b03166000908152602091909152604090205460ff1690565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003a457600080fd5b81516001600160401b0380821115620003c157620003c16200037c565b604051601f8301601f19908116603f01168101908282118183101715620003ec57620003ec6200037c565b816040528381526020925086838588010111156200040957600080fd5b600091505b838210156200042d57858201830151818301840152908201906200040e565b600093810190920192909252949350505050565b600080600080600060a086880312156200045a57600080fd5b85516001600160401b03808211156200047257600080fd5b6200048089838a0162000392565b965060208801519150808211156200049757600080fd5b620004a589838a0162000392565b604089015190965091506001600160a01b0382168214620004c557600080fd5b606088015191945080821115620004db57600080fd5b620004e989838a0162000392565b935060808801519150808211156200050057600080fd5b506200050f8882890162000392565b9150509295509295909350565b600181811c908216806200053157607f821691505b6020821081036200055257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005a657600081815260208120601f850160051c81016020861015620005815750805b601f850160051c820191505b81811015620005a2578281556001016200058d565b5050505b505050565b81516001600160401b03811115620005c757620005c76200037c565b620005df81620005d884546200051c565b8462000558565b602080601f831160018114620006175760008415620005fe5750858301515b600019600386901b1c1916600185901b178555620005a2565b600085815260208120601f198616915b82811015620006485788860151825594840194600190910190840162000627565b5085821015620006675787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61491a80620006876000396000f3fe6080604052600436106102885760003560e01c80637a59dc8f1161015a578063c0ac9983116100c1578063e93956791161007a578063e9395679146107dd578063e985e9c5146107fd578063eb12d61e14610846578063f2fde38b14610866578063f3ee100914610886578063ff74927b146108a657600080fd5b8063c0ac99831461074b578063c87b56dd14610760578063d7212ce614610780578063e20b163f14610793578063e5c8b03d146107b3578063e8a3d485146107c857600080fd5b806395d89b411161011357806395d89b411461068957806399e0dd7c1461069e578063a22cb465146106be578063b88d4fde146106de578063b9c4d9fb146106fe578063bff802bc1461072b57600080fd5b80637a59dc8f146105cb5780637bf9a31c146105eb5780637df73e271461060b5780638da5cb5b1461062b57806391d6df7d14610649578063938e3d7b1461066957600080fd5b80634052107c116101fe5780636308f1cd116101b75780636308f1cd146104f75780636352211e14610536578063651411bb14610556578063672a94001461057657806370a0823114610596578063715018a6146105b657600080fd5b80634052107c1461043957806342842e0e1461045957806342966c68146104795780634f6ccce7146104995780635222df28146104b957806362f545d2146104d957600080fd5b80630ebd4c7f116102505780630ebd4c7f1461037857806318160ddd146103a5578063184f6b76146103c4578063187b45bf146103d957806323b872dd146103f95780632f745c591461041957600080fd5b806301ffc9a71461028d57806306fdde03146102dc578063081812fc146102fe578063095ea7b3146103365780630e316ab714610358575b600080fd5b34801561029957600080fd5b506102c76102a8366004613738565b6001600160e01b03191660009081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b3480156102e857600080fd5b506102f16108c6565b6040516102d391906137a5565b34801561030a57600080fd5b5061031e6103193660046137b8565b610954565b6040516001600160a01b0390911681526020016102d3565b34801561034257600080fd5b506103566103513660046137f1565b6109ee565b005b34801561036457600080fd5b5061035661037336600461381d565b610b50565b34801561038457600080fd5b506103986103933660046137b8565b610b86565b6040516102d39190613875565b3480156103b157600080fd5b50600c545b6040519081526020016102d3565b3480156103d057600080fd5b506103b6610ca7565b3480156103e557600080fd5b506103566103f436600461381d565b610cd9565b34801561040557600080fd5b50610356610414366004613888565b610d25565b34801561042557600080fd5b506103b66104343660046137f1565b610d5c565b34801561044557600080fd5b506103566104543660046138c9565b610e07565b34801561046557600080fd5b50610356610474366004613888565b610efe565b34801561048557600080fd5b506103566104943660046137b8565b610f19565b3480156104a557600080fd5b506103b66104b43660046137b8565b610f90565b3480156104c557600080fd5b506102c76104d4366004613c9a565b611023565b3480156104e557600080fd5b506012546001600160a01b031661031e565b34801561050357600080fd5b50610517610512366004613d4b565b611164565b604080516001600160a01b0390931683526020830191909152016102d3565b34801561054257600080fd5b5061031e6105513660046137b8565b6111aa565b34801561056257600080fd5b50610356610571366004613d6d565b611221565b34801561058257600080fd5b50610356610591366004613dc5565b61129f565b3480156105a257600080fd5b506103b66105b136600461381d565b6113ea565b3480156105c257600080fd5b50610356611473565b3480156105d757600080fd5b506103566105e63660046137b8565b6114e7565b3480156105f757600080fd5b506102f1610606366004613ee1565b611516565b34801561061757600080fd5b506102c761062636600461381d565b611664565b34801561063757600080fd5b506000546001600160a01b031661031e565b34801561065557600080fd5b506102f16106643660046137b8565b611671565b34801561067557600080fd5b50610356610684366004613f15565b611766565b34801561069557600080fd5b506102f1611799565b3480156106aa57600080fd5b506103566106b9366004613f15565b6117a6565b3480156106ca57600080fd5b506103566106d9366004613f49565b6117d9565b3480156106ea57600080fd5b506103566106f9366004613f82565b61189d565b34801561070a57600080fd5b5061071e6107193660046137b8565b6118cf565b6040516102d39190614001565b34801561073757600080fd5b5061031e61074636600461381d565b6119f5565b34801561075757600080fd5b506102f1611a59565b34801561076c57600080fd5b506102f161077b3660046137b8565b611a66565b61035661078e366004614042565b611aee565b34801561079f57600080fd5b506102f16107ae366004614113565b611d4a565b3480156107bf57600080fd5b50610356611e9a565b3480156107d457600080fd5b506102f1611ea5565b3480156107e957600080fd5b506102f16107f83660046137b8565b611eb2565b34801561080957600080fd5b506102c7610818366004614147565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205460ff1690565b34801561085257600080fd5b5061035661086136600461381d565b611f1a565b34801561087257600080fd5b5061035661088136600461381d565b611f4d565b34801561089257600080fd5b506103566108a1366004614175565b612037565b3480156108b257600080fd5b506102f16108c1366004614279565b61211a565b600e80546108d3906142dc565b80601f01602080910402602001604051908101604052809291908181526020018280546108ff906142dc565b801561094c5780601f106109215761010080835404028352916020019161094c565b820191906000526020600020905b81548152906001019060200180831161092f57829003601f168201915b505050505081565b6000818152600660205260408120546001600160a01b03166109d25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600760205260409020546001600160a01b031690565b60006109f9826111aa565b9050806001600160a01b0316836001600160a01b031603610a665760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016109c9565b336001600160a01b0382161480610a825750610a828133610818565b610af45760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016109c9565b60008281526007602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000546001600160a01b03163314610b7a5760405162461bcd60e51b81526004016109c990614316565b610b83816122e8565b50565b6000818152601060209081526040808320805482518185028101850190935280835260609493849084015b82821015610bf9576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101610bb1565b505050509050600081516001600160401b03811115610c1a57610c1a61391a565b604051908082528060200260200182016040528015610c43578160200160208202803683370190505b50905060005b8251811015610c9f57828181518110610c6457610c6461434b565b602002602001015160200151828281518110610c8257610c8261434b565b602090810291909101015280610c9781614377565b915050610c49565b509392505050565b600080546001600160a01b03163314610cd25760405162461bcd60e51b81526004016109c990614316565b5060115490565b6000546001600160a01b03163314610d035760405162461bcd60e51b81526004016109c990614316565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b610d30335b8261232a565b610d4c5760405162461bcd60e51b81526004016109c990614390565b610d57838383612421565b505050565b6000610d67836113ea565b8210610dc95760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016109c9565b6001600160a01b0383166000908152600a60205260409020805483908110610df357610df361434b565b906000526020600020015490505b92915050565b6000546001600160a01b03163314610e315760405162461bcd60e51b81526004016109c990614316565b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd906064016020604051808303816000875af1158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac91906143e1565b610ef85760405162461bcd60e51b815260206004820152601a60248201527f6661696c757265207768696c65207472616e7366657272696e6700000000000060448201526064016109c9565b50505050565b610d578383836040518060200160405280600081525061189d565b610f2233610d2a565b610f875760405162461bcd60e51b815260206004820152603060248201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760448201526f1b995c881b9bdc88185c1c1c9bdd995960821b60648201526084016109c9565b610b8381612440565b6000610f9b600c5490565b8210610ffe5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016109c9565b600c82815481106110115761101161434b565b90600052602060002001549050919050565b6000806110338960800151611516565b6110408a60a00151611d4a565b61104d8b60c00151611516565b61105a8c60e00151611d4a565b8b8b8b8b601154604051602001611079999897969594939291906143fe565b60405160208183030381529060405280519060200120905060006110ea826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b9050600061112e8287878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061245292505050565b90506001600160a01b0381161580159061115557506000546001600160a01b038281169116145b9b9a5050505050505050505050565b6010602052816000526040600020818154811061118057600080fd5b6000918252602090912060029091020180546001909101546001600160a01b039091169250905082565b6000818152600660205260408120546001600160a01b031680610e015760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b60648201526084016109c9565b6012546001600160a01b0316331461124b5760405162461bcd60e51b81526004016109c990614495565b60408051600080825260208201909252611295918591859161128f565b60408051808201909152600080825260208201528152602001906001900390816112685790505b5061246e565b610d578282612744565b6040516bffffffffffffffffffffffff193060601b166020820152603481018790526113819060019060540160408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c0160408051601f198184030181528282528051602091820120600084529083018083525260ff891690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015611372573d6000803e3d6000fd5b50505060206040510351611664565b6113cd5760405162461bcd60e51b815260206004820152601960248201527f6f776e65722073686f756c64207369676e20746f6b656e49640000000000000060448201526064016109c9565b6113d833878461246e565b6113e28682612744565b505050505050565b60006001600160a01b0382166114555760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016109c9565b6001600160a01b038216600090815260086020526040902054610e01565b6000546001600160a01b0316331461149d5760405162461bcd60e51b81526004016109c990614316565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146115115760405162461bcd60e51b81526004016109c990614316565b601155565b60606000805b835181101561155f578381815181106115375761153761434b565b6020026020010151518261154b91906144d7565b91508061155781614377565b91505061151c565b506000816001600160401b0381111561157a5761157a61391a565b6040519080825280601f01601f1916602001820160405280156115a4576020820181803683370190505b5090506000805b855181101561165a5760008682815181106115c8576115c861434b565b6020026020010151905060005b8151811015611645578181815181106115f0576115f061434b565b01602001516001600160f81b031916858561160a81614377565b96508151811061161c5761161c61434b565b60200101906001600160f81b031916908160001a9053508061163d81614377565b9150506115d5565b5050808061165290614377565b9150506115ab565b5090949350505050565b6000610e016001836127cb565b606060006040518060400160405280601081526020016f181899199a1a9b1b9c1cb0b131b232b360811b81525090506000836040516020016116b591815260200190565b60408051808303601f1901815260018084528383019092529250600091906020820181803683370190505090506000600183516116f291906144ea565b9050838382815181106117075761170761434b565b602091010151815160f89190911c600f169081106117275761172761434b565b602001015160f81c60f81b826000815181106117455761174561434b565b60200101906001600160f81b031916908160001a9053509095945050505050565b6000546001600160a01b031633146117905760405162461bcd60e51b81526004016109c990614316565b610b838161284e565b600f80546108d3906142dc565b6000546001600160a01b031633146117d05760405162461bcd60e51b81526004016109c990614316565b610b838161285a565b336001600160a01b038316036118315760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016109c9565b3360008181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6118a7338361232a565b6118c35760405162461bcd60e51b81526004016109c990614390565b610ef884848484612866565b6000818152601060209081526040808320805482518185028101850190935280835260609493849084015b82821015611942576000848152602090819020604080518082019091526002850290910180546001600160a01b031682526001908101548284015290835290920191016118fa565b505050509050600081516001600160401b038111156119635761196361391a565b60405190808252806020026020018201604052801561198c578160200160208202803683370190505b50905060005b8251811015610c9f578281815181106119ad576119ad61434b565b6020026020010151600001518282815181106119cb576119cb61434b565b6001600160a01b0390921660209283029190910190910152806119ed81614377565b915050611992565b6000816001600160a01b031663922a2c5d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0191906144fd565b600480546108d3906142dc565b6000818152600660205260409020546060906001600160a01b0316611ae55760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016109c9565b610e0182612899565b611b0d8484600001518560400151866020015187606001518787611023565b611b4b5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964204e4654496e666f60881b60448201526064016109c9565b602083015115611cdd5760408301516001600160a01b031615611c3e576040838101518451602086015192516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481019390935216906323b872dd906064016020604051808303816000875af1158015611bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bed91906143e1565b611c395760405162461bcd60e51b815260206004820152601a60248201527f6661696c757265207768696c65207472616e7366657272696e6700000000000060448201526064016109c9565b611cdd565b82602001513410611ca35760405162461bcd60e51b815260206004820152602960248201527f6661696c757265207768696c65207472616e7366657272696e672c2076616c7560448201526865203c20707269636560b81b60648201526084016109c9565b82516040516001600160a01b038216903480156108fc02916000818181858888f19350505050158015611cda573d6000803e3d6000fd5b50505b82606001516001600160a01b031663f7ffe7e3853360016040518463ffffffff1660e01b8152600401611d1293929190614562565b600060405180830381600087803b158015611d2c57600080fd5b505af1158015611d40573d6000803e3d6000fd5b5050505050505050565b60606000805b8351811015611da2576000611d7d858381518110611d7057611d7061434b565b6020026020010151611eb2565b9050805183611d8c91906144d7565b9250508080611d9a90614377565b915050611d50565b506000816001600160401b03811115611dbd57611dbd61391a565b6040519080825280601f01601f191660200182016040528015611de7576020820181803683370190505b5090506000805b855181101561165a576000611e0e878381518110611d7057611d7061434b565b90508060005b8151811015611e8457818181518110611e2f57611e2f61434b565b01602001516001600160f81b0319168686611e4981614377565b975081518110611e5b57611e5b61434b565b60200101906001600160f81b031916908160001a90535080611e7c81614377565b915050611e14565b5050508080611e9290614377565b915050611dee565b611ea3336122e8565b565b600380546108d3906142dc565b606081600003611ed95750506040805180820190915260018152600360fc1b602082015290565b8115611f15576000611eec600a84614659565b9050611ef9600a8461466d565b9250611f0d611f0782611671565b8361211a565b915050611ed9565b919050565b6000546001600160a01b03163314611f445760405162461bcd60e51b81526004016109c990614316565b610b83816129d0565b6000546001600160a01b03163314611f775760405162461bcd60e51b81526004016109c990614316565b6001600160a01b038116611fdc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6012546001600160a01b031633146120615760405162461bcd60e51b81526004016109c990614495565b60006040518061010001604052808a6001600160a01b031681526020018981526020018815158152602001878152602001868152602001858152602001848152602001838152509050896001600160a01b031663f7ffe7e3828d60006040518463ffffffff1660e01b81526004016120db93929190614562565b600060405180830381600087803b1580156120f557600080fd5b505af1158015612109573d6000803e3d6000fd5b505050505050505050505050505050565b805182516060918491849160009161213291906144d7565b6001600160401b038111156121495761214961391a565b6040519080825280601f01601f191660200182016040528015612173576020820181803683370190505b509050806000805b85518110156121eb578581815181106121965761219661434b565b01602001516001600160f81b03191683836121b081614377565b9450815181106121c2576121c261434b565b60200101906001600160f81b031916908160001a905350806121e381614377565b91505061217b565b5060005b845181101561225f5784818151811061220a5761220a61434b565b01602001516001600160f81b031916838361222481614377565b9450815181106122365761223661434b565b60200101906001600160f81b031916908160001a9053508061225781614377565b9150506121ef565b5091979650505050505050565b61227682826127cb565b156122c35760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650060448201526064016109c9565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6122f3600182612a12565b6040516001600160a01b038216907f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b90600090a250565b6000818152600660205260408120546001600160a01b03166123a35760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016109c9565b60006123ae836111aa565b9050806001600160a01b0316846001600160a01b031614806123e95750836001600160a01b03166123de84610954565b6001600160a01b0316145b8061241957506001600160a01b0380821660009081526009602090815260408083209388168352929052205460ff165b949350505050565b61242c838383612a94565b6124368382612c18565b610d578282612d26565b610b8361244c826111aa565b82612d64565b60008060006124618585612d77565b91509150610c9f81612dbc565b6124788383612f06565b600081516001600160401b038111156124935761249361391a565b6040519080825280602002602001820160405280156124bc578160200160208202803683370190505b509050600082516001600160401b038111156124da576124da61391a565b604051908082528060200260200182016040528015612503578160200160208202803683370190505b50905060005b83518110156126f95760006001600160a01b031684828151811061252f5761252f61434b565b6020026020010151600001516001600160a01b0316036125895760405162461bcd60e51b8152602060048201526015602482015274149958da5c1a595b9d08081899481c1c995cd95b9d605a1b60448201526064016109c9565b83818151811061259b5761259b61434b565b6020026020010151602001516000036125ef5760405162461bcd60e51b81526020600482015260166024820152754665652076616c75652020626520706f73697469766560501b60448201526064016109c9565b600085815260106020526040902084518590839081106126115761261161434b565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b03909216919091178155910151910155835184908290811061266e5761266e61434b565b60200260200101516000015183828151811061268c5761268c61434b565b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106126be576126be61434b565b6020026020010151602001518282815181106126dc576126dc61434b565b6020908102919091010152806126f181614377565b915050612509565b5082511561273d577f99aba1d63749cfd5ad1afda7c4663840924d54eb5f005bbbeadedc6ec13674b284838360405161273493929190614681565b60405180910390a15b5050505050565b6000828152600660205260409020546001600160a01b03166127bd5760405162461bcd60e51b815260206004820152602c60248201527f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016109c9565b6127c78282612f62565b5050565b60006001600160a01b03821661282e5760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b60648201526084016109c9565b506001600160a01b03166000908152602091909152604090205460ff1690565b60036127c78282614731565b60046127c78282614731565b612871848484612421565b61287d84848484612f7a565b610ef85760405162461bcd60e51b81526004016109c9906147f0565b60008181526005602052604090208054606091610e01916128b9906142dc565b80601f01602080910402602001604051908101604052809291908181526020018280546128e5906142dc565b80156129325780601f1061290757610100808354040283529160200191612932565b820191906000526020600020905b81548152906001019060200180831161291557829003601f168201915b505050505060048054612944906142dc565b80601f0160208091040260200160405190810160405280929190818152602001828054612970906142dc565b80156129bd5780601f10612992576101008083540402835291602001916129bd565b820191906000526020600020905b8154815290600101906020018083116129a057829003601f168201915b50505050506130a590919063ffffffff16565b6129db60018261226c565b6040516001600160a01b038216907f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f2490600090a250565b612a1c82826127cb565b612a725760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b60648201526084016109c9565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b826001600160a01b0316612aa7826111aa565b6001600160a01b031614612b0f5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b60648201526084016109c9565b6001600160a01b038216612b715760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016109c9565b612b7a816131f5565b6001600160a01b0383166000908152600860205260409020612b9b90613230565b6001600160a01b0382166000908152600860205260409020612bbc90613241565b60008181526006602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b0382166000908152600a6020526040812054612c3c90600161325e565b6000838152600b6020526040902054909150808214612ce3576001600160a01b0384166000908152600a60205260408120805484908110612c7f57612c7f61434b565b9060005260206000200154905080600a6000876001600160a01b03166001600160a01b031681526020019081526020016000208381548110612cc357612cc361434b565b6000918252602080832090910192909255918252600b9052604090208190555b6001600160a01b0384166000908152600a60205260409020805480612d0a57612d0a614842565b6001900381819060005260206000200160009055905550505050565b6001600160a01b039091166000908152600a602081815260408084208054868652600b84529185208290559282526001810183559183529091200155565b612d6e82826132c1565b6127c7816132ed565b6000808251604103612dad5760208301516040840151606085015160001a612da187828585613324565b94509450505050612db5565b506000905060025b9250929050565b6000816004811115612dd057612dd0614858565b03612dd85750565b6001816004811115612dec57612dec614858565b03612e395760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016109c9565b6002816004811115612e4d57612e4d614858565b03612e9a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109c9565b6003816004811115612eae57612eae614858565b03610b835760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109c9565b612f1082826133e8565b612f1a8282612d26565b6127c781600c80546000838152600d60205260408120829055600182018355919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70155565b6000828152600560205260409020610d578282614731565b60006001600160a01b0384163b612f9357506001612419565b6000806001600160a01b038616630a85bd0160e11b33898888604051602401612fbf949392919061486e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612ffd91906148ab565b6000604051808303816000865af19150503d806000811461303a576040519150601f19603f3d011682016040523d82523d6000602084013e61303f565b606091505b509150915081613071578051156130595780518082602001fd5b60405162461bcd60e51b81526004016109c9906147f0565b60008180602001905181019061308791906148c7565b6001600160e01b031916630a85bd0160e11b14935061241992505050565b80518251606091849184916000916130bd91906144d7565b6001600160401b038111156130d4576130d461391a565b6040519080825280601f01601f1916602001820160405280156130fe576020820181803683370190505b5090506000805b8451811015613175578481815181106131205761312061434b565b01602001516001600160f81b031916838361313a81614377565b94508151811061314c5761314c61434b565b60200101906001600160f81b031916908160001a9053508061316d81614377565b915050613105565b5060005b83518110156131e9578381815181106131945761319461434b565b01602001516001600160f81b03191683836131ae81614377565b9450815181106131c0576131c061434b565b60200101906001600160f81b031916908160001a905350806131e181614377565b915050613179565b50909695505050505050565b6000818152600760205260409020546001600160a01b031615610b8357600090815260076020526040902080546001600160a01b0319169055565b805461323d90600161325e565b9055565b600181600001600082825461325691906144d7565b909155505050565b6000828211156132b05760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f77000060448201526064016109c9565b6132ba82846144ea565b9392505050565b6132cb828261351e565b6132d58282612c18565b6000818152600b60205260408120556127c781613614565b60008181526005602052604090208054613306906142dc565b159050610b83576000818152600560205260408120610b83916136d4565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561335b57506000905060036133df565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156133af573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166133d8576000600192509250506133df565b9150600090505b94509492505050565b6001600160a01b03821661343e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016109c9565b6000818152600660205260409020546001600160a01b0316156134a35760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109c9565b600081815260066020908152604080832080546001600160a01b0319166001600160a01b0387169081179091558352600890915290206134e290613241565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b0316613531826111aa565b6001600160a01b0316146135955760405162461bcd60e51b815260206004820152602560248201527f4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f6044820152643a1037bbb760d91b60648201526084016109c9565b61359e816131f5565b6001600160a01b03821660009081526008602052604090206135bf90613230565b60008181526006602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600c5460009061362590600161325e565b6000838152600d6020526040812054600c805493945090928490811061364d5761364d61434b565b9060005260206000200154905080600c838154811061366e5761366e61434b565b6000918252602080832090910192909255828152600d90915260409020829055600c80548061369f5761369f614842565b600190038181906000526020600020016000905590556000600d60008681526020019081526020016000208190555050505050565b5080546136e0906142dc565b6000825580601f106136f0575050565b601f016020900490600052602060002090810190610b8391905b8082111561371e576000815560010161370a565b5090565b6001600160e01b031981168114610b8357600080fd5b60006020828403121561374a57600080fd5b81356132ba81613722565b60005b83811015613770578181015183820152602001613758565b50506000910152565b60008151808452613791816020860160208601613755565b601f01601f19169290920160200192915050565b6020815260006132ba6020830184613779565b6000602082840312156137ca57600080fd5b5035919050565b6001600160a01b0381168114610b8357600080fd5b8035611f15816137d1565b6000806040838503121561380457600080fd5b823561380f816137d1565b946020939093013593505050565b60006020828403121561382f57600080fd5b81356132ba816137d1565b600081518084526020808501945080840160005b8381101561386a5781518752958201959082019060010161384e565b509495945050505050565b6020815260006132ba602083018461383a565b60008060006060848603121561389d57600080fd5b83356138a8816137d1565b925060208401356138b8816137d1565b929592945050506040919091013590565b600080600080608085870312156138df57600080fd5b84356138ea816137d1565b935060208501356138fa816137d1565b9250604085013561390a816137d1565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b03811182821017156139535761395361391a565b60405290565b604080519081016001600160401b03811182821017156139535761395361391a565b604051608081016001600160401b03811182821017156139535761395361391a565b604051601f8201601f191681016001600160401b03811182821017156139c5576139c561391a565b604052919050565b8015158114610b8357600080fd5b8035611f15816139cd565b60006001600160401b038211156139ff576139ff61391a565b5060051b60200190565b60006001600160401b03831115613a2257613a2261391a565b613a35601f8401601f191660200161399d565b9050828152838383011115613a4957600080fd5b828260208301376000602084830101529392505050565b600082601f830112613a7157600080fd5b6132ba83833560208501613a09565b600082601f830112613a9157600080fd5b81356020613aa6613aa1836139e6565b61399d565b82815260059290921b84018101918181019086841115613ac557600080fd5b8286015b84811015613b045780356001600160401b03811115613ae85760008081fd5b613af68986838b0101613a60565b845250918301918301613ac9565b509695505050505050565b600082601f830112613b2057600080fd5b81356020613b30613aa1836139e6565b82815260059290921b84018101918181019086841115613b4f57600080fd5b8286015b84811015613b045780358352918301918301613b53565b60006101008284031215613b7d57600080fd5b613b85613930565b9050613b90826137e6565b815260208201356020820152613ba8604083016139db565b60408201526060820135606082015260808201356001600160401b0380821115613bd157600080fd5b613bdd85838601613a80565b608084015260a0840135915080821115613bf657600080fd5b613c0285838601613b0f565b60a084015260c0840135915080821115613c1b57600080fd5b613c2785838601613a80565b60c084015260e0840135915080821115613c4057600080fd5b50613c4d84828501613b0f565b60e08301525092915050565b60008083601f840112613c6b57600080fd5b5081356001600160401b03811115613c8257600080fd5b602083019150836020828501011115612db557600080fd5b600080600080600080600060c0888a031215613cb557600080fd5b87356001600160401b0380821115613ccc57600080fd5b613cd88b838c01613b6a565b985060208a01359150613cea826137d1565b909650604089013590613cfc826137d1565b90955060608901359450608089013590613d15826137d1565b90935060a08901359080821115613d2b57600080fd5b50613d388a828b01613c59565b989b979a50959850939692959293505050565b60008060408385031215613d5e57600080fd5b50508035926020909101359150565b600080600060608486031215613d8257600080fd5b8335613d8d816137d1565b92506020840135915060408401356001600160401b03811115613daf57600080fd5b613dbb86828701613a60565b9150509250925092565b60008060008060008060c08789031215613dde57600080fd5b8635955060208088013560ff81168114613df757600080fd5b9550604088013594506060880135935060808801356001600160401b0380821115613e2157600080fd5b818a0191508a601f830112613e3557600080fd5b8135613e43613aa1826139e6565b81815260069190911b8301840190848101908d831115613e6257600080fd5b938501935b82851015613eae576040858f031215613e805760008081fd5b613e88613959565b8535613e93816137d1565b81528587013587820152825260409094019390850190613e67565b9650505060a08a0135925080831115613ec657600080fd5b5050613ed489828a01613a60565b9150509295509295509295565b600060208284031215613ef357600080fd5b81356001600160401b03811115613f0957600080fd5b61241984828501613a80565b600060208284031215613f2757600080fd5b81356001600160401b03811115613f3d57600080fd5b61241984828501613a60565b60008060408385031215613f5c57600080fd5b8235613f67816137d1565b91506020830135613f77816139cd565b809150509250929050565b60008060008060808587031215613f9857600080fd5b8435613fa3816137d1565b93506020850135613fb3816137d1565b92506040850135915060608501356001600160401b03811115613fd557600080fd5b8501601f81018713613fe657600080fd5b613ff587823560208401613a09565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b818110156131e95783516001600160a01b03168352928401929184019160010161401d565b60008060008084860360c081121561405957600080fd5b85356001600160401b038082111561407057600080fd5b61407c89838a01613b6a565b96506080601f198401121561409057600080fd5b61409861397b565b9250602088013591506140aa826137d1565b908252604087013560208301526060870135906140c6826137d1565b816040840152608088013591506140dc826137d1565b81606084015282955060a08801359250808311156140f957600080fd5b505061410787828801613c59565b95989497509550505050565b60006020828403121561412557600080fd5b81356001600160401b0381111561413b57600080fd5b61241984828501613b0f565b6000806040838503121561415a57600080fd5b8235614165816137d1565b91506020830135613f77816137d1565b6000806000806000806000806000806101408b8d03121561419557600080fd5b61419e8b6137e6565b99506141ac60208c016137e6565b98506141ba60408c016137e6565b975060608b013596506141cf60808c016139db565b955060a08b0135945060c08b01356001600160401b03808211156141f257600080fd5b6141fe8e838f01613a80565b955060e08d013591508082111561421457600080fd5b6142208e838f01613b0f565b94506101008d013591508082111561423757600080fd5b6142438e838f01613a80565b93506101208d013591508082111561425a57600080fd5b506142678d828e01613b0f565b9150509295989b9194979a5092959850565b6000806040838503121561428c57600080fd5b82356001600160401b03808211156142a357600080fd5b6142af86838701613a60565b935060208501359150808211156142c557600080fd5b506142d285828601613a60565b9150509250929050565b600181811c908216806142f057607f821691505b60208210810361431057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161438957614389614361565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6000602082840312156143f357600080fd5b81516132ba816139cd565b60008a51614410818460208f01613755565b8a5190830190614424818360208f01613755565b8a51910190614437818360208e01613755565b895191019061444a818360208d01613755565b6bffffffffffffffffffffffff196060998a1b81169190920190815296881b8116601488015260288701959095525050931b166048820152605c810191909152607c01949350505050565b60208082526022908201527f4f776e61626c653a2063616c6c6572206973206e6f74207468652061646d696e60408201526132b960f11b606082015260800190565b80820180821115610e0157610e01614361565b81810381811115610e0157610e01614361565b60006020828403121561450f57600080fd5b81516132ba816137d1565b600081518084526020808501808196508360051b8101915082860160005b8581101561225f578284038952614550848351613779565b98850198935090840190600101614538565b6060815261457c6060820185516001600160a01b03169052565b602084015160808201526000604085015161459b60a084018215159052565b50606085015160c083015260808501516101008060e08501526145c261016085018361451a565b915060a0870151605f198086850301838701526145df848361383a565b935060c0890151925080868503016101208701526145fd848461451a565b935060e089015192508086850301610140870152505061461d828261383a565b9250505061463660208301856001600160a01b03169052565b8215156040830152612419565b634e487b7160e01b600052601260045260246000fd5b60008261466857614668614643565b500690565b60008261467c5761467c614643565b500490565b6000606082018583526020606081850152818651808452608086019150828801935060005b818110156146cb5784516001600160a01b0316835293830193918301916001016146a6565b505084810360408601526146df818761383a565b98975050505050505050565b601f821115610d5757600081815260208120601f850160051c810160208610156147125750805b601f850160051c820191505b818110156113e25782815560010161471e565b81516001600160401b0381111561474a5761474a61391a565b61475e8161475884546142dc565b846146eb565b602080601f831160018114614793576000841561477b5750858301515b600019600386901b1c1916600185901b1785556113e2565b600085815260208120601f198616915b828110156147c2578886015182559484019460019091019084016147a3565b50858210156147e05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906148a190830184613779565b9695505050505050565b600082516148bd818460208701613755565b9190910192915050565b6000602082840312156148d957600080fd5b81516132ba8161372256fea2646970667358221220f48f5b3d2d3aec47799b1ec45b858ffbb02f0a0a74081a7c4f11fc34e49f038664736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000db0eb12ed2ac70a2b2b4b4256b7cb553fca2607f000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000008457468657265756d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000345544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006697066733a2f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006697066733a2f0000000000000000000000000000000000000000000000000000