0x6080604052600436106101395760003560e01c80635ecb16cd116100ab5780639779d1a61161006f5780639779d1a6146103ce5780639ca37a0b146103fe578063d408f65714610411578063f1c772b614610441578063f2fde38b14610461578063fbec27bf1461048157600080fd5b80635ecb16cd14610330578063715018a61461035057806375f12b21146103655780638da5cb5b146103865780639735a634146103ae57600080fd5b80631f632285116100fd5780631f63228514610267578063357d6b5b1461027a5780633ff428c71461029a5780634f51e294146102ba578063550bfa56146102fa5780635de0398e1461031a57600080fd5b806301e980d41461019a5780630dc9de85146101ba5780631385d24c146101da5780631781261f146101ef57806318b135e31461023a57600080fd5b3661019557333214156101935760405162461bcd60e51b815260206004820152601a60248201527f446f206e6f742073656e642057454d4958206469726563746c7900000000000060448201526064015b60405180910390fd5b005b600080fd5b3480156101a657600080fd5b506101936101b5366004612d11565b6104a1565b3480156101c657600080fd5b506101936101d5366004612d76565b610509565b3480156101e657600080fd5b50610193610710565b3480156101fb57600080fd5b5061022761020a366004612dcd565b600560209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561024657600080fd5b50610227610255366004612e06565b60066020526000908152604090205481565b610227610275366004612e7e565b610739565b34801561028657600080fd5b50610227610295366004612f4e565b6108b5565b3480156102a657600080fd5b506101936102b5366004612fa9565b610a6d565b3480156102c657600080fd5b506102ea6102d5366004612e06565b60046020526000908152604090205460ff1681565b6040519015158152602001610231565b34801561030657600080fd5b50610193610315366004612d11565b610aa0565b34801561032657600080fd5b5061022760025481565b34801561033c57600080fd5b5061019361034b366004612d76565b610afe565b34801561035c57600080fd5b50610193610d07565b34801561037157600080fd5b506000546102ea90600160a01b900460ff1681565b34801561039257600080fd5b506000546040516001600160a01b039091168152602001610231565b3480156103ba57600080fd5b506101936103c9366004612fd7565b610d1b565b3480156103da57600080fd5b506102ea6103e9366004612e06565b60076020526000908152604090205460ff1681565b61022761040c366004613043565b610e07565b34801561041d57600080fd5b506102ea61042c366004612e06565b60016020526000908152604090205460ff1681565b34801561044d57600080fd5b5061022761045c36600461310c565b610f4f565b34801561046d57600080fd5b5061019361047c366004612e06565b6110eb565b34801561048d57600080fd5b5061019361049c366004612fa9565b611164565b6104a9611197565b60648111156105045760405162461bcd60e51b815260206004820152602160248201527f416666696c696174652053706c69742056616c7565206e6f7420616c6c6f77656044820152601960fa1b606482015260840161018a565b600355565b6000805b8281101561070a57336000908152600560205260408120908585848181106105375761053761315d565b905060200201602081019061054c9190612e06565b6001600160a01b0316815260208082019290925260409081016000908120543382526005909352908120919350908186868581811061058d5761058d61315d565b90506020020160208101906105a29190612e06565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555081600660008686858181106105dd576105dd61315d565b90506020020160208101906105f29190612e06565b6001600160a01b03166001600160a01b031681526020019081526020016000205461061d9190613189565b600660008686858181106106335761063361315d565b90506020020160208101906106489190612e06565b6001600160a01b0316815260208101919091526040016000205573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8484838181106106895761068961315d565b905060200201602081019061069e9190612e06565b6001600160a01b031614156106bc576106b733836111f1565b6106f8565b6106f833838686858181106106d3576106d361315d565b90506020020160208101906106e89190612e06565b6001600160a01b0316919061130a565b80610702816131a0565b91505061050d565b50505050565b610718611197565b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b60008054600160a01b900460ff16156107895760405162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015260640161018a565b60008061079b8e8c600060018861136d565b905060006107ae8e8c600060018961136d565b90506108048f8f8f85858e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d61155d565b92505050878110156108485760405162461bcd60e51b815260206004820152600d60248201526c4869676820536c69707061676560981b604482015260640161018a565b604080513381526001600160a01b038d1660208201529081018290527f7f31d76771556dce5ab39ba5b60664743da2629a75c474e9445734b7ad34087d9060600160405180910390a16108a56001600160a01b038c16338361130a565b9c9b505050505050505050505050565b6000807f000000000000000000000000ecbf52e3383fc27c9524f3ac07c442a204bf2e636001600160a01b031663e6a4390587876040518363ffffffff1660e01b81526004016109069291906131bb565b60206040518083038186803b15801561091e57600080fd5b505afa158015610932573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095691906131d5565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561099457600080fd5b505afa1580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc9190613209565b506001600160701b031691506001600160701b03169150876001600160a01b0316896001600160a01b03161415610a3057610a0982828888611646565b935060008411610a2b5760405162461bcd60e51b815260040161018a90613259565b610a61565b939493610a3f81838789611646565b935060008411610a615760405162461bcd60e51b815260040161018a90613259565b50505095945050505050565b610a75611197565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b610aa8611197565b6064811115610af95760405162461bcd60e51b815260206004820152601a60248201527f476f6f6457696c6c2056616c7565206e6f7420616c6c6f776564000000000000604482015260640161018a565b600255565b610b06611197565b60005b81811015610d0257600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee848484818110610b3a57610b3a61315d565b9050602002016020810190610b4f9190612e06565b6001600160a01b03161415610bcf5760066000858585818110610b7457610b7461315d565b9050602002016020810190610b899190612e06565b6001600160a01b03168152602081019190915260400160002054610bad9047613189565b9050610bca610bc46000546001600160a01b031690565b826111f1565b610cef565b60066000858585818110610be557610be561315d565b9050602002016020810190610bfa9190612e06565b6001600160a01b03166001600160a01b0316815260200190815260200160002054848484818110610c2d57610c2d61315d565b9050602002016020810190610c429190612e06565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b158015610c8357600080fd5b505afa158015610c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbb919061329a565b610cc59190613189565b9050610cef610cdc6000546001600160a01b031690565b828686868181106106d3576106d361315d565b5080610cfa816131a0565b915050610b09565b505050565b610d0f611197565b610d19600061172a565b565b610d23611197565b828114610d695760405162461bcd60e51b8152602060048201526014602482015273092dcecc2d8d2c84092dce0eae840d8cadccee8d60631b604482015260640161018a565b60005b83811015610e0057828282818110610d8657610d8661315d565b9050602002016020810190610d9b91906132b3565b60076000878785818110610db157610db161315d565b9050602002016020810190610dc69190612e06565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610df8816131a0565b915050610d6c565b5050505050565b60008054600160a01b900460ff1615610e575760405162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015260640161018a565b6000610e678c8b8760018761136d565b90506000610eb08d8d848c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d925061177a915050565b905089811015610ef25760405162461bcd60e51b815260206004820152600d60248201526c4869676820536c69707061676560981b604482015260640161018a565b604080513381526001600160a01b038e1660208201529081018290527f7f31d76771556dce5ab39ba5b60664743da2629a75c474e9445734b7ad34087d9060600160405180910390a16108a56001600160a01b038d16338361130a565b6000807f000000000000000000000000ecbf52e3383fc27c9524f3ac07c442a204bf2e636001600160a01b031663e6a4390586866040518363ffffffff1660e01b8152600401610fa09291906131bb565b60206040518083038186803b158015610fb857600080fd5b505afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906131d5565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561102e57600080fd5b505afa158015611042573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110669190613209565b506001600160701b031691506001600160701b03169150866001600160a01b0316886001600160a01b031614156110be576110a18286611817565b9350600084116110b9576110b66002866132e6565b93505b6110e0565b6110c88186611817565b9350600084116110e0576110dd6002866132e6565b93505b505050949350505050565b6110f3611197565b6001600160a01b0381166111585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161018a565b6111618161172a565b50565b61116c611197565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018a565b804710156112415760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161018a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461128e576040519150601f19603f3d011682016040523d82523d6000602084013e611293565b606091505b5050905080610d025760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161018a565b6040516001600160a01b038316602482015260448101829052610d0290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611874565b6000806001600160a01b0387166113f257600034116113be5760405162461bcd60e51b815260206004820152600d60248201526c139bc815d1535256081cd95b9d609a1b604482015260640161018a565b6113de73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee348787611946565b90506113ea8134613189565b915050611554565b600086116114395760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081d1bdad95b88185b5bdd5b9d60621b604482015260640161018a565b821561152357333b6114a25760405162461bcd60e51b815260206004820152602c60248201527f4552523a2073686f756c6453656c6c456e7469726542616c616e63652069732060448201526b7472756520666f7220454f4160a01b606482015260840161018a565b604051636eb1769f60e11b81526001600160a01b0388169063dd62ed3e906114d090339030906004016131bb565b60206040518083038186803b1580156114e857600080fd5b505afa1580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611520919061329a565b95505b6115386001600160a01b038816333089611a8e565b61154487878787611946565b90506115508187613189565b9150505b95945050505050565b600080600080600061156e8b611ac6565b91509150816001600160a01b03168d6001600160a01b0316141580156115a65750806001600160a01b03168d6001600160a01b031614155b156115c2576115b88d8c8c8b8b611ccb565b90945092506115c9565b8c92508993505b816001600160a01b03168c6001600160a01b0316141580156115fd5750806001600160a01b03168c6001600160a01b031614155b156116125761160f8c8c8b8b8b611ccb565b50505b600080611622858585898f612176565b91509150611633848484848c612380565b9f9e505050505050505050505050505050565b6000806116538584613308565b61165f9061031e613320565b90508061166c8685613308565b6116788861031f613320565b6116829190613320565b61168c91906132e6565b611716828761169e8a6209bdc1613320565b6116a89190613320565b6116b2878b613320565b896116c08a6209bdc0613320565b6116ca9190613320565b6116d49190613308565b6116de9190613308565b6116e891906132e6565b836116f38988613308565b6116fd908b613320565b61170791906132e6565b6117119190613320565b61252a565b6117209190613189565b9695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080600061178b8a611ac6565b91509150816001600160a01b03168b6001600160a01b0316141580156117c35750806001600160a01b03168b6001600160a01b031614155b156117df576117d58b8b8b8b8b611ccb565b90945092506117e6565b8a92508893505b6000806117f585858589612588565b91509150611806848484848c612380565b9d9c50505050505050505050505050565b600061031e6118288461031f613320565b611859611838866209bdc1613320565b611845866209bdc0613320565b61184f9190613308565b6117119087613320565b6118639190613189565b61186d91906132e6565b9392505050565b60006118c9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127609092919063ffffffff16565b805190915015610d0257808060200190518101906118e7919061333f565b610d025760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161018a565b3360009081526001602052604081205460ff16828015611964575080155b801561197257506000600254115b15611a8557612710600254866119889190613320565b61199291906132e6565b6001600160a01b03851660009081526004602052604090205490925060ff1615611a85576001600160a01b0386166119dc5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee95505b60006064600354846119ee9190613320565b6119f891906132e6565b6001600160a01b038087166000908152600560209081526040808320938c1683529290522054909150611a2c908290613308565b6001600160a01b038087166000908152600560209081526040808320938c168352928152828220939093556006909252902054611a6a908290613308565b6001600160a01b038816600090815260066020526040902055505b50949350505050565b6040516001600160a01b038085166024830152831660448201526064810182905261070a9085906323b872dd60e01b90608401611336565b6000806000839050806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0757600080fd5b505afa158015611b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3f91906131d5565b9250806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b7a57600080fd5b505afa158015611b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb291906131d5565b60405163e6a4390560e01b81529092506001600160a01b037f000000000000000000000000ecbf52e3383fc27c9524f3ac07c442a204bf2e63169063e6a4390590611c0390869086906004016131bb565b60206040518083038186803b158015611c1b57600080fd5b505afa158015611c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5391906131d5565b6001600160a01b0316846001600160a01b031614611cc55760405162461bcd60e51b815260206004820152602960248201527f5765737761705a6170496e3a3a5f67657450616972546f6b656e733a20494e5660448201526820a624a22fa820a4a960b91b606482015260840161018a565b50915091565b6000807f000000000000000000000000bd54dff32f8d88a64d0adc061e6b96d0630d9a1c6001600160a01b0316846001600160a01b03161415611da7577f000000000000000000000000bd54dff32f8d88a64d0adc061e6b96d0630d9a1c6001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d6357600080fd5b505af1158015611d77573d6000803e3d6000fd5b5050505050847f000000000000000000000000bd54dff32f8d88a64d0adc061e6b96d0630d9a1c9150915061216c565b60006001600160a01b038816611dbe575084611dc9565b611dc9888688612777565b600080611dd589611ac6565b6040516370a0823160e01b81523060048201529193509150829082906000906001600160a01b038416906370a082319060240160206040518083038186803b158015611e2057600080fd5b505afa158015611e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e58919061329a565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a082319060240160206040518083038186803b158015611e9d57600080fd5b505afa158015611eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed5919061329a565b6001600160a01b038c1660009081526007602052604090205490915060ff16611f385760405162461bcd60e51b815260206004820152601560248201527415185c99d95d081b9bdd08105d5d1a1bdc9a5e9959605a1b604482015260640161018a565b60008b6001600160a01b0316888c604051611f539190613388565b60006040518083038185875af1925050503d8060008114611f90576040519150601f19603f3d011682016040523d82523d6000602084013e611f95565b606091505b5050905080611fe65760405162461bcd60e51b815260206004820152601760248201527f4572726f72205377617070696e6720546f6b656e732031000000000000000000604482015260640161018a565b6040516370a0823160e01b815230600482015260009084906001600160a01b038816906370a082319060240160206040518083038186803b15801561202a57600080fd5b505afa15801561203e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612062919061329a565b61206c9190613189565b6040516370a0823160e01b815230600482015290915060009084906001600160a01b038816906370a082319060240160206040518083038186803b1580156120b357600080fd5b505afa1580156120c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120eb919061329a565b6120f59190613189565b90508082111561210a57819b50889a50612111565b809b50879a505b60008c116121615760405162461bcd60e51b815260206004820152601f60248201527f5377617070656420746f20496e76616c696420496e7465726d65646961746500604482015260640161018a565b505050505050505050505b9550959350505050565b60008060007f000000000000000000000000ecbf52e3383fc27c9524f3ac07c442a204bf2e636001600160a01b031663e6a4390588886040518363ffffffff1660e01b81526004016121c99291906131bb565b60206040518083038186803b1580156121e157600080fd5b505afa1580156121f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221991906131d5565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561225757600080fd5b505afa15801561226b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228f9190613209565b506001600160701b031691506001600160701b03169150886001600160a01b03168a6001600160a01b0316141561231a5760006122ce83838a8a611646565b9050600081116122f05760405162461bcd60e51b815260040161018a90613259565b866122fc8c8b846127a0565b6123069190613308565b94506123128189613189565b955050612373565b949594600061232b8284898b611646565b90506000811161234d5760405162461bcd60e51b815260040161018a90613259565b876123598c8c846127a0565b6123639190613308565b955061236f8188613189565b9450505b5050509550959350505050565b60006123ad867f0000000000000000000000001d27b6354c8a7cf8f171c9e058f87e095237030e86612777565b6123d8857f0000000000000000000000001d27b6354c8a7cf8f171c9e058f87e095237030e85612777565b60405162e8e33760e81b81526001600160a01b0387811660048301528681166024830152604482018690526064820185905260016084830181905260a48301523060c4830152600f60fc1b60e4830152600091829182917f0000000000000000000000001d27b6354c8a7cf8f171c9e058f87e095237030e9091169063e8e337009061010401606060405180830381600087803b15801561247857600080fd5b505af115801561248c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b091906133a4565b925092509250841561251e5760006124c88489613189565b11156124ed576124ed336124dc858a613189565b6001600160a01b038c16919061130a565b60006124f98388613189565b111561251e5761251e3361250d8489613189565b6001600160a01b038b16919061130a565b98975050505050505050565b60006003821115612579575080600160028204015b818110156125735780915060028182858161255c5761255c6132d0565b04018161256b5761256b6132d0565b04905061253f565b50919050565b8115612583575060015b919050565b60008060007f000000000000000000000000ecbf52e3383fc27c9524f3ac07c442a204bf2e636001600160a01b031663e6a4390587876040518363ffffffff1660e01b81526004016125db9291906131bb565b60206040518083038186803b1580156125f357600080fd5b505afa158015612607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262b91906131d5565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561266957600080fd5b505afa15801561267d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a19190613209565b506001600160701b031691506001600160701b03169150876001600160a01b0316896001600160a01b031614156127155760006126de8388611817565b9050600081116126f6576126f36002886132e6565b90505b6127018a89836127a0565b945061270d8188613189565b955050612754565b60006127218288611817565b905060008111612739576127366002886132e6565b90505b6127448a8a836127a0565b95506127508188613189565b9450505b50505094509492505050565b606061276f8484600085612a84565b949350505050565b61278c6001600160a01b038416836000612bb5565b610d026001600160a01b0384168383612bb5565b6000826001600160a01b0316846001600160a01b031614156127c357508061186d565b6127ee847f0000000000000000000000001d27b6354c8a7cf8f171c9e058f87e095237030e84612777565b60405163e6a4390560e01b81526000906001600160a01b037f000000000000000000000000ecbf52e3383fc27c9524f3ac07c442a204bf2e63169063e6a439059061283f90889088906004016131bb565b60206040518083038186803b15801561285757600080fd5b505afa15801561286b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288f91906131d5565b90506001600160a01b0381166128db5760405162461bcd60e51b81526020600482015260116024820152704e6f205377617020417661696c61626c6560781b604482015260640161018a565b60408051600280825260608201835260009260208301908036833701905050905085816000815181106129105761291061315d565b60200260200101906001600160a01b031690816001600160a01b03168152505084816001815181106129445761294461315d565b6001600160a01b0392831660209182029290920101526040516338ed173960e01b81527f0000000000000000000000001d27b6354c8a7cf8f171c9e058f87e095237030e909116906338ed1739906129ad90879060019086903090600f60fc1b906004016133e8565b600060405180830381600087803b1580156129c757600080fd5b505af11580156129db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a039190810190613459565b60018251612a119190613189565b81518110612a2157612a2161315d565b6020026020010151925060008311612a7b5760405162461bcd60e51b815260206004820152601760248201527f4572726f72205377617070696e6720546f6b656e732032000000000000000000604482015260640161018a565b50509392505050565b606082471015612ae55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161018a565b6001600160a01b0385163b612b3c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161018a565b600080866001600160a01b03168587604051612b589190613388565b60006040518083038185875af1925050503d8060008114612b95576040519150601f19603f3d011682016040523d82523d6000602084013e612b9a565b606091505b5091509150612baa828286612cd8565b979650505050505050565b801580612c3d5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90612beb90309086906004016131bb565b60206040518083038186803b158015612c0357600080fd5b505afa158015612c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3b919061329a565b155b612ca85760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161018a565b6040516001600160a01b038316602482015260448101829052610d0290849063095ea7b360e01b90606401611336565b60608315612ce757508161186d565b825115612cf75782518084602001fd5b8160405162461bcd60e51b815260040161018a919061350b565b600060208284031215612d2357600080fd5b5035919050565b60008083601f840112612d3c57600080fd5b50813567ffffffffffffffff811115612d5457600080fd5b6020830191508360208260051b8501011115612d6f57600080fd5b9250929050565b60008060208385031215612d8957600080fd5b823567ffffffffffffffff811115612da057600080fd5b612dac85828601612d2a565b90969095509350505050565b6001600160a01b038116811461116157600080fd5b60008060408385031215612de057600080fd5b8235612deb81612db8565b91506020830135612dfb81612db8565b809150509250929050565b600060208284031215612e1857600080fd5b813561186d81612db8565b60008083601f840112612e3557600080fd5b50813567ffffffffffffffff811115612e4d57600080fd5b602083019150836020828501011115612d6f57600080fd5b801515811461116157600080fd5b803561258381612e65565b60008060008060008060008060008060006101408c8e031215612ea057600080fd5b8b35612eab81612db8565b9a5060208c0135612ebb81612db8565b995060408c0135612ecb81612db8565b985060608c0135975060808c0135965060a08c0135955060c08c0135612ef081612db8565b945060e08c013567ffffffffffffffff811115612f0c57600080fd5b612f188e828f01612e23565b9095509350506101008c0135612f2d81612e65565b9150612f3c6101208d01612e73565b90509295989b509295989b9093969950565b600080600080600060a08688031215612f6657600080fd5b8535612f7181612db8565b94506020860135612f8181612db8565b93506040860135612f9181612db8565b94979396509394606081013594506080013592915050565b60008060408385031215612fbc57600080fd5b8235612fc781612db8565b91506020830135612dfb81612e65565b60008060008060408587031215612fed57600080fd5b843567ffffffffffffffff8082111561300557600080fd5b61301188838901612d2a565b9096509450602087013591508082111561302a57600080fd5b5061303787828801612d2a565b95989497509550505050565b6000806000806000806000806000806101208b8d03121561306357600080fd5b8a3561306e81612db8565b995060208b013561307e81612db8565b985060408b0135975060608b0135965060808b013561309c81612db8565b955060a08b013567ffffffffffffffff8111156130b857600080fd5b6130c48d828e01612e23565b90965094505060c08b01356130d881612db8565b925060e08b01356130e881612e65565b91506101008b01356130f981612e65565b809150509295989b9194979a5092959850565b6000806000806080858703121561312257600080fd5b843561312d81612db8565b9350602085013561313d81612db8565b9250604085013561314d81612db8565b9396929550929360600135925050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561319b5761319b613173565b500390565b60006000198214156131b4576131b4613173565b5060010190565b6001600160a01b0392831681529116602082015260400190565b6000602082840312156131e757600080fd5b815161186d81612db8565b80516001600160701b038116811461258357600080fd5b60008060006060848603121561321e57600080fd5b613227846131f2565b9250613235602085016131f2565b9150604084015163ffffffff8116811461324e57600080fd5b809150509250925092565b60208082526021908201527f5a6170496e3a206e6f7420616c6c6f77656420746f20637265617465207061696040820152603960f91b606082015260800190565b6000602082840312156132ac57600080fd5b5051919050565b6000602082840312156132c557600080fd5b813561186d81612e65565b634e487b7160e01b600052601260045260246000fd5b60008261330357634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561331b5761331b613173565b500190565b600081600019048311821515161561333a5761333a613173565b500290565b60006020828403121561335157600080fd5b815161186d81612e65565b60005b8381101561337757818101518382015260200161335f565b8381111561070a5750506000910152565b6000825161339a81846020870161335c565b9190910192915050565b6000806000606084860312156133b957600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156134385784516001600160a01b031683529383019391830191600101613413565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561346c57600080fd5b825167ffffffffffffffff8082111561348457600080fd5b818501915085601f83011261349857600080fd5b8151818111156134aa576134aa6133d2565b8060051b604051601f19603f830116810181811085821117156134cf576134cf6133d2565b6040529182528482019250838101850191888311156134ed57600080fd5b938501935b8285101561251e578451845293850193928501926134f2565b602081526000825180602084015261352a81604085016020870161335c565b601f01601f1916919091016040019291505056fea26469706673582212200d1e25583c639a0a2238e959c58caa49ad61045e8554576e73f52d412befda4464736f6c63430008090033