0x6101606040523480156200001257600080fd5b5060405162003bbc38038062003bbc8339810160408190526200003591620002ec565b6001600160a01b0386166080819052604080516378e9792560e01b815290518892916378e979259160048083019260209291908290030181865afa15801562000082573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a8919062000380565b60a052506001600160a01b0380861660c05284811660e0819052908416610100526040805163c5438b1b60e01b8152905163c5438b1b916004808201926020929091908290030181865afa15801562000105573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012b919062000380565b610140526001600160a01b0380821661012052604080516308acd44d60e31b81529051600092861691634566a268916004808301926020929190829003018187875af115801562000180573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a6919062000380565b905080156200020a5760405162461bcd60e51b815260206004820152602660248201527f53746162696c69747920706f6f6c206d7573742068617665207265636569766560448201526507220494420360d41b606482015260840160405180910390fd5b604080516060810182526001600160a01b0380861682526001602080840191825260008486018181528782526003909252859020935184549251915161ffff16600160a81b0261ffff60a81b19921515600160a01b026001600160a81b031990941691909416179190911716179055517f375399aa7a22a9cce4a6b9bf254f18feb160b830a7b95ca9884465b1eb46aedb90620002be90859084906001600160a01b03929092168252602082015260400190565b60405180910390a1505050505050506200039a565b6001600160a01b0381168114620002e957600080fd5b50565b60008060008060008060c087890312156200030657600080fd5b86516200031381620002d3565b60208801519096506200032681620002d3565b60408801519095506200033981620002d3565b60608801519094506200034c81620002d3565b60808801519093506200035f81620002d3565b60a08801519092506200037281620002d3565b809150509295509295509295565b6000602082840312156200039357600080fd5b5051919050565b60805160a05160c05160e05161010051610120516101405161373b620004816000396000818161054201528181610ed3015281816119d9015281816126f3015261271f01526000818161044201526111c90152600081816103e201526108b00152600081816105a3015281816110bb015261279b0152600081816105690152818161068d0152818161126f015281816113d101528181611abe01526126770152600061164d01526000818161024b0152818161078e01528181610e3b01528181610f92015281816116b401528181611a0c01528181611bdc015261224b015261373b6000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c8063804cf85611610125578063c13d9404116100ad578063d7b96d4e1161007c578063d7b96d4e1461059e578063e46c3d4e146105c5578063ed51e69c1461062f578063ede98f7f14610642578063fb42714f1461065557600080fd5b8063c13d94041461052a578063c5438b1b1461053d578063c9f601a814610564578063d4add76a1461058b57600080fd5b80638da5cb5b116100f45780638da5cb5b146104c15780639a863476146104c95780639e27a51b146104f15780639ef6630014610504578063a64b6e5f1461051757600080fd5b8063804cf8561461047e578063874d6d81146104935780638777f4d21461049b5780638d804ee0146104ae57600080fd5b80634225e5bb116101a857806363b828931161017757806363b82893146104045780636bd2fe3e146104175780636be986ba1461042a5780636ca32a9e1461043d5780637201fb0e1461046457600080fd5b80634225e5bb1461038a57806343cdd41b146103ab578063452a9320146103d557806346c96aac146103dd57600080fd5b806333dee360116101e457806333dee36014610311578063351bae3b14610324578063378cbf751461035657806340c1c3561461037757600080fd5b80630b2f728a146102165780631f915d9214610246578063226883b71461028557806327b13b3c146102ee575b600080fd5b600254610229906001600160801b031681565b6040516001600160801b0390911681526020015b60405180910390f35b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023d565b6102c5610293366004613104565b6180076020526000908152604090205460ff811690610100810461ffff1690630100000090046001600160a01b031683565b60408051931515845261ffff90921660208401526001600160a01b03169082015260600161023d565b6103016102fc366004613128565b610668565b604051901515815260200161023d565b61030161031f366004613141565b61078a565b60025461033e90600160801b90046001600160401b031681565b6040516001600160401b03909116815260200161023d565b610369610364366004613128565b610aeb565b60405190815260200161023d565b61022961038536600461317f565b610de2565b610369610398366004613104565b6180046020526000908152604090205481565b6103696103b9366004613104565b6001600160a01b03166000908152618006602052604090205490565b61026d610e37565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b610301610412366004613104565b610ec0565b6103016104253660046131b4565b610f48565b610301610438366004613104565b610f8e565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b60025461033e90600160c01b90046001600160401b031681565b61049161048c366004613255565b6110b9565b005b610369611642565b6102296104a9366004613128565b61167c565b60015461026d906001600160a01b031681565b61026d6116b0565b6104dc6104d7366004613104565b611710565b6040805192835260208301919091520161023d565b6103016104ff366004613335565b61182d565b610369610512366004613104565b6119bd565b6103016105253660046131b4565b611a08565b6103016105383660046133af565b611bd8565b6103697f000000000000000000000000000000000000000000000000000000000000000081565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6104dc6105993660046133df565b611d49565b61026d7f000000000000000000000000000000000000000000000000000000000000000081565b6106066105d3366004613128565b6003602052600090815260409020546001600160a01b03811690600160a01b810460ff1690600160a81b900461ffff1683565b604080516001600160a01b039094168452911515602084015261ffff169082015260600161023d565b60005461026d906001600160a01b031681565b61030161065036600461343b565b612073565b610301610663366004613104565b612247565b6040516323b872dd60e01b8152336004820152306024820152604481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af11580156106de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107029190613484565b5060025460009061071d9084906001600160801b03166134b7565b905061072881612349565b600280546001600160801b0319166001600160801b039290921691909117905560408051848152602081018390527f54b8dd835b48a0b306a9a706a47fc0e08468ce12148a3b645c496018f9852ff9910160405180910390a150600192915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e91906134d0565b6001600160a01b0316336001600160a01b0316146108475760405162461bcd60e51b815260040161083e906134ed565b60405180910390fd5b6000826001600160401b0381111561086157610861613511565b60405190808252806020026020018201604052801561088a578160200160208202803683370190505b509050600061089f61089a611642565b6123b6565b905060005b84811015610a185760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634566a2686040518163ffffffff1660e01b81526004016020604051808303816000875af115801561090e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109329190613527565b90508084838151811061094757610947613540565b602090810291909101810191909152604080516060810182526001600160a01b038a8116808352600183860190815261ffff8981168587019081526000898152600389528790209551865493519151909216600160a81b0261ffff60a81b19911515600160a01b026001600160a81b0319909416929095169190911791909117169190911790915581519081529182018390527f375399aa7a22a9cce4a6b9bf254f18feb160b830a7b95ca9884465b1eb46aedb910160405180910390a15080610a1081613556565b9150506108a4565b50604051635bbe8aad60e01b81526001600160a01b03861690635bbe8aad90610a4590859060040161356f565b6020604051808303816000875af1158015610a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a889190613484565b610ae05760405162461bcd60e51b815260206004820152602360248201527f6e6f74696679526567697374657265644964206d7573742072657475726e207460448201526272756560e81b606482015260840161083e565b506001949350505050565b6000818152600360209081526040808320815160608101835290546001600160a01b038116808352600160a01b820460ff16151594830194909452600160a81b900461ffff1691810191909152903314610b7e5760405162461bcd60e51b8152602060048201526014602482015273139bdd081c9958d95a5d995c881858d8dbdd5b9d60621b604482015260640161083e565b6000610b88611642565b905080826040015161ffff1614610ddb576000546001600160a01b0316610baf8183612419565b610bb8826123b6565b6000868152600360205260409020805461ffff92909216600160a81b0261ffff60a81b199092169190911790556001600160a01b03811615610dd9575b81836040015161ffff161015610cec57826040018051610c14906135b3565b61ffff90811690915260408401516001600160a01b0383169163a3af6b9b918891600490828116908110610c4a57610c4a613540565b60028104919091015460405160e086901b6001600160e01b0319168152600481019490945261ffff9290921660248401526001166010026101000a90046001600160801b031660448201526064016020604051808303816000875af1158015610cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdb9190613527565b610ce590856134b7565b9350610bf5565b826020015115610d5557336000908152618004602052604081208054869290610d169084906134b7565b909155505060405184815233907fda1c4f2d69a45f565043251bb71522280543796bb865d00e12065191714d47079060200160405180910390a2610dd9565b600254600090610d6f9086906001600160801b03166134b7565b9050610d7a81612349565b600280546001600160801b0319166001600160801b039290921691909117905560408051868152602081018390527f54b8dd835b48a0b306a9a706a47fc0e08468ce12148a3b645c496018f9852ff9910160405180910390a160009450505b505b5050919050565b6001600160a01b03821660009081526180056020526040812061ffff808416908110610e1057610e10613540565b600291828204019190066010029054906101000a90046001600160801b0316905092915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb91906134d0565b905090565b33600090815261800660205260408120547f0000000000000000000000000000000000000000000000000000000000000000811015610f345760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f20636c61696d60801b604482015260640161083e565b610f3f338483612620565b50600192915050565b60008115610f8457336000908152618004602052604081208054849290610f709084906135d4565b90915550610f849050600085858286612812565b5060019392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101291906134d0565b6001600160a01b0316336001600160a01b0316146110425760405162461bcd60e51b815260040161083e906134ed565b60005461105f906001600160a01b031661105a611642565b612419565b600080546001600160a01b0319166001600160a01b0384169081179091556040519081527f2c342266e3979163d824140326453c8bf5592ad2f774a58222ea35b5c0bfc774906020015b60405180910390a1506001919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c5438b1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190613527565b6111499063ffffffff6135e7565b8611156111be5760405162461bcd60e51b815260206004820152603b60248201527f546f74616c20737570706c79206d757374206265203c3d20747970652875696e60448201527f743332292e6d6178202a206c6f636b546f546f6b656e526174696f0000000000606482015260840161083e565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461122b5760405162461bcd60e51b815260206004820152601260248201527110b232b83637bcb6b2b73a26b0b730b3b2b960711b604482015260640161083e565b600080546001600160a01b038a81166001600160a01b031992831617909255600180548a841692169190911790556040516324c9383760e01b8152600481018890527f0000000000000000000000000000000000000000000000000000000000000000909116906324c93837906024016020604051808303816000875af11580156112ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112de9190613484565b506000806112ea611642565b6112f59060016134b7565b905060005b858110156113c35786868281811061131457611314613540565b905060200201602081019061132991906135fe565b600461133584846134b7565b61ffff811061134657611346613540565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b0316021790555086868281811061138757611387613540565b905060200201602081019061139c91906135fe565b6113af906001600160801b0316846134b7565b9250806113bb81613556565b9150506112fa565b5060005b838110156114f2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633950935186868481811061141057611410613540565b6114269260206040909202019081019150613104565b87878581811061143857611438613540565b905060400201602001356040518363ffffffff1660e01b81526004016114739291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015611492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b69190613484565b508484828181106114c9576114c9613540565b90506040020160200135836114de91906134b7565b9250806114ea81613556565b9150506113c7565b506000611507611502848b6135d4565b612349565b600280546001600160801b0319166001600160801b0383161790559050611542600161153384896134b7565b61153d91906135d4565b612dc8565b600280546001600160801b0316600160801b6001600160401b03938416026001600160c01b031617600160c01b928b16929092029190911790556040516001600160a01b038c1681527f2c342266e3979163d824140326453c8bf5592ad2f774a58222ea35b5c0bfc7749060200160405180910390a16040516001600160a01b038b1681527fe1a7ee8754d81e0a44e79c238dfe94867d6af6153c6967474dc7f60e9211d9fa9060200160405180910390a1604080518481526001600160801b03831660208201527fe53029f1371dc130e1277d91cdacc0f9ece4b29159e62598ef1fc911551c6033910160405180910390a15050505050505050505050565b600062093a806116727f0000000000000000000000000000000000000000000000000000000000000000426135d4565b610ebb9190613627565b60048161ffff811061168d57600080fd5b60029182820401919006601002915054906101000a90046001600160801b031681565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d6000803e3d6000fd5b600080600061171d611642565b9050600060048261ffff811061173557611735613540565b6002810491909101546001600160a01b03871660009081526180056020526040812060019093166010026101000a9091046001600160801b03169250908361ffff811061178457611784613540565b6002810491909101546001805460405163423b1fe360e01b81526001600160a01b038b81166004830152929094166010026101000a9092046001600160801b031660248401819052604484018690529350169063423b1fe3906064016040805180830381865afa1580156117fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118209190613649565b9097909650945050505050565b60006127108211156118755760405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081b585e1199595418dd607a1b604482015260640161083e565b6000805b848110156119a257600086868381811061189557611895613540565b90506020020160208101906118aa9190613104565b604051631e0b040760e31b81523360048201526001600160a01b038b81166024830152919091169063f0582038906044016020604051808303816000875af11580156118fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191e9190613527565b905080618004600089898681811061193857611938613540565b905060200201602081019061194d9190613104565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461197c91906135d4565b9091555061198c905081846134b7565b925050808061199a90613556565b915050611879565b506119b08333898985612812565b5060019695505050505050565b6001600160a01b038116600090815261800660205260409020547f0000000000000000000000000000000000000000000000000000000000000000811015611a03575060005b919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8c91906134d0565b6001600160a01b0316336001600160a01b031614611abc5760405162461bcd60e51b815260040161083e906134ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611bc457306001600160a01b03841603611b445760405162461bcd60e51b815260206004820152601460248201527314d95b19881d1c985b9cd9995c8819195b9a595960621b604482015260640161083e565b600254600090611b5e9084906001600160801b03166135d4565b9050611b6981612349565b600280546001600160801b0319166001600160801b039290921691909117905560408051848152602081018390527fe53029f1371dc130e1277d91cdacc0f9ece4b29159e62598ef1fc911551c6033910160405180910390a1505b610f846001600160a01b0385168484612e30565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5c91906134d0565b6001600160a01b0316336001600160a01b031614611c8c5760405162461bcd60e51b815260040161083e906134ed565b6000838152600360205260409020546001600160a01b0316611cdd5760405162461bcd60e51b815260206004820152600a6024820152691251081b9bdd081cd95d60b21b604482015260640161083e565b600083815260036020526040908190208054841515600160a01b0260ff60a01b199091161790555183907f82a4ff8311333266bb50969521800e4bed9369da4894334ef456427e3ad9210990611d3890851515815260200190565b60405180910390a250600192915050565b60405163e950342560e01b81526001600160a01b038581166004830152600091829182919085169063e950342590602401602060405180830381865afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190613527565b90506000611dc7611642565b9050600060048261ffff8110611ddf57611ddf613540565b60028104919091015460019091166010026101000a90046001600160801b0316905060006001600160a01b03881615611e185787611e1a565b895b6001600160a01b038116600090815261800560205260408120919250908461ffff8110611e4957611e49613540565b60028104919091015460019091166010026101000a90046001600160801b0316905060006001600160a01b038a1615611fc6576001600160a01b03808b16600090815261800760209081526040918290208251606081018452905460ff8116151580835261ffff610100830416938301939093526301000000900490931691830191909152611ee557600080985098505050505050505061206a565b61ffff8016816020015161ffff1603611f9b576040808201519051636a2243a960e01b81526001600160a01b0386811660048301528e81166024830152604482018a9052606482018690526084820188905290911690636a2243a99060a401602060405180830381865afa925050508015611f7d575060408051601f3d908101601f19168201909252611f7a91810190613527565b60015b611f9457600080985098505050505050505061206a565b9150611fa7565b806020015161ffff1691505b612710821115611fc457600080985098505050505050505061206a565b505b6001546040516349955f6360e01b81526001600160a01b038581166004830152602482018990526044820185905260648201879052909116906349955f6390608401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190613527565b9750612710612058828a6135e7565b6120629190613627565b505050505050505b94509492505050565b600083156121ce576127108361ffff16111580612093575061ffff838116145b6120d05760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a59081999595418dd60921b604482015260640161083e565b6001600160a01b0382161515806120ea575061ffff838116145b15612146576001600160a01b0382163b6121465760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6261636b206d757374206265206120636f6e74726163740000000000604482015260640161083e565b604080516060810182526001815261ffff85811660208084019182526001600160a01b0387811685870190815233600090815261800790935295909120935184549251955162ffffff1990931690151562ffff001916176101009590931694909402919091176301000000600160b81b031916630100000091909316029190911790556121ed565b3360009081526180076020526040902080546001600160b81b03191690555b60408051851515815261ffff851660208201526001600160a01b03841681830152905133917f4de72252e36ce14be9125843bdbb926e0ad0fb57c1a7255e7d4d05383fc184a3919081900360600190a25060019392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122cb91906134d0565b6001600160a01b0316336001600160a01b0316146122fb5760405162461bcd60e51b815260040161083e906134ed565b600180546001600160a01b0319166001600160a01b0384169081179091556040519081527fe1a7ee8754d81e0a44e79c238dfe94867d6af6153c6967474dc7f60e9211d9fa906020016110a9565b60006001600160801b038211156123b25760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161083e565b5090565b600061ffff8211156123b25760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b606482015260840161083e565b600254600160801b90046001600160401b031681811061243857505050565b6001600160a01b03831661247a5761244f82612dc8565b600260106101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b60025460009081906001600160801b03165b848410156125ae5761249d84613556565b60405163e8643de960e01b815260048101829052602481018390529094506001600160a01b0387169063e8643de99060440160408051808303816000875af11580156124ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612511919061366d565b9350915061251e82612349565b60048561ffff811061253257612532613540565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b03160217905550818161256d91906135d4565b60408051848152602081018390529192507fe53029f1371dc130e1277d91cdacc0f9ece4b29159e62598ef1fc911551c6033910160405180910390a161248c565b6125b781612349565b600280546001600160801b0319166001600160801b03929092169190911790556125e085612dc8565b600280546001600160801b0316600160801b6001600160401b03938416026001600160c01b031617600160c01b9590921694909402179092555050505050565b600254600160c01b90046001600160401b031660008190036126ec576001600160a01b0384811660009081526180066020526040808220919091555163a9059cbb60e01b81528482166004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af11580156126c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e69190613484565b5061280c565b60006127187f000000000000000000000000000000000000000000000000000000000000000084613627565b90506127447f0000000000000000000000000000000000000000000000000000000000000000826135e7565b61274e90846135d4565b6001600160a01b03861660009081526180066020526040902055801561280a5760405163e2ab691d60e01b81526001600160a01b03858116600483015260248201839052604482018490527f0000000000000000000000000000000000000000000000000000000000000000169063e2ab691d906064016020604051808303816000875af11580156127e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128089190613484565b505b505b50505050565b801561280a576000612822611642565b9050600060048261ffff811061283a5761283a613540565b60028104919091015460019091166010026101000a90046001600160801b0316905060006001600160a01b038516156128735784612875565b865b6001600160a01b038116600090815261800560205260408120919250908461ffff81106128a4576128a4613540565b60028104919091015460019091166010026101000a90046001600160801b031690506000806001600160a01b03881615612ab0576001600160a01b03808916600090815261800760209081526040918290208251606081018452905460ff8116151580835261ffff6101008304169383019390935263010000009004909316918301919091526129695760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642064656c656761746560801b604482015260640161083e565b8060400151915061ffff8016816020015161ffff1603612a5a57604051636a2243a960e01b81526001600160a01b038c811660048301528b81166024830152604482018a90526064820186905260848201889052831690636a2243a99060a401602060405180830381865afa1580156129e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0a9190613527565b9250612710831115612a555760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642064656c65676174652066656560601b604482015260640161083e565b612a66565b806020015161ffff1692505b8b831115612aae5760405162461bcd60e51b815260206004820152601560248201527419995948195e18d959591cc81b585e1199595418dd605a1b604482015260640161083e565b505b600154604051630609d12160e41b81526001600160a01b038681166004830152602482018a90526044820186905260648201889052600092169063609d1210906084016020604051808303816000875af1158015612b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b369190613527565b90506000612b44828a6135d4565b90508015612bcc57600254600090612b669083906001600160801b03166134b7565b9050612b7181612349565b600280546001600160801b0319166001600160801b039290921691909117905560408051838152602081018390527f54b8dd835b48a0b306a9a706a47fc0e08468ce12148a3b645c496018f9852ff9910160405180910390a1505b50612bda61150289866134b7565b6001600160a01b0386166000908152618005602052604090208861ffff8110612c0557612c05613540565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b0316021790555082600014612c6257612710612c4984836135e7565b612c539190613627565b9250612c5f83826135d4565b90505b6001600160a01b038b1660009081526180066020526040902054612c8690826134b7565b9050612c938b8b83612620565b8215612cc8576001600160a01b0389166000908152618006602052604081208054859290612cc29084906134b7565b90915550505b6001600160a01b03821615612dba576040516346d1a77560e01b81526001600160a01b038c811660048301528b81166024830152604482018a9052606482018390526084820185905260a4820186905260c482018890528316906346d1a7759060e4016020604051808303816000875af1158015612d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6e9190613484565b612dba5760405162461bcd60e51b815260206004820152601a60248201527f44656c65676174652063616c6c6261636b2072656a6563746564000000000000604482015260640161083e565b505050505050505050505050565b60006001600160401b038211156123b25760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b606482015260840161083e565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612e82908490612e87565b505050565b6000612edc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612f5c9092919063ffffffff16565b9050805160001480612efd575080806020019051810190612efd9190613484565b612e825760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161083e565b6060612f6b8484600085612f73565b949350505050565b606082471015612fd45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161083e565b600080866001600160a01b03168587604051612ff091906136b6565b60006040518083038185875af1925050503d806000811461302d576040519150601f19603f3d011682016040523d82523d6000602084013e613032565b606091505b50915091506130438783838761304e565b979650505050505050565b606083156130bd5782516000036130b6576001600160a01b0385163b6130b65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161083e565b5081612f6b565b612f6b83838151156130d25781518083602001fd5b8060405162461bcd60e51b815260040161083e91906136d2565b6001600160a01b038116811461310157600080fd5b50565b60006020828403121561311657600080fd5b8135613121816130ec565b9392505050565b60006020828403121561313a57600080fd5b5035919050565b6000806040838503121561315457600080fd5b823561315f816130ec565b946020939093013593505050565b803561ffff81168114611a0357600080fd5b6000806040838503121561319257600080fd5b823561319d816130ec565b91506131ab6020840161316d565b90509250929050565b6000806000606084860312156131c957600080fd5b83356131d4816130ec565b925060208401356131e4816130ec565b929592945050506040919091013590565b6001600160401b038116811461310157600080fd5b60008083601f84011261321c57600080fd5b5081356001600160401b0381111561323357600080fd5b6020830191508360208260051b850101111561324e57600080fd5b9250929050565b60008060008060008060008060c0898b03121561327157600080fd5b883561327c816130ec565b9750602089013561328c816130ec565b96506040890135955060608901356132a3816131f5565b945060808901356001600160401b03808211156132bf57600080fd5b6132cb8c838d0161320a565b909650945060a08b01359150808211156132e457600080fd5b818b0191508b601f8301126132f857600080fd5b81358181111561330757600080fd5b8c60208260061b850101111561331c57600080fd5b6020830194508093505050509295985092959890939650565b60008060008060006080868803121561334d57600080fd5b8535613358816130ec565b94506020860135613368816130ec565b935060408601356001600160401b0381111561338357600080fd5b61338f8882890161320a565b96999598509660600135949350505050565b801515811461310157600080fd5b600080604083850312156133c257600080fd5b8235915060208301356133d4816133a1565b809150509250929050565b600080600080608085870312156133f557600080fd5b8435613400816130ec565b93506020850135613410816130ec565b92506040850135613420816130ec565b91506060850135613430816130ec565b939692955090935050565b60008060006060848603121561345057600080fd5b833561345b816133a1565b92506134696020850161316d565b91506040840135613479816130ec565b809150509250925092565b60006020828403121561349657600080fd5b8151613121816133a1565b634e487b7160e01b600052601160045260246000fd5b808201808211156134ca576134ca6134a1565b92915050565b6000602082840312156134e257600080fd5b8151613121816130ec565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561353957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060018201613568576135686134a1565b5060010190565b6020808252825182820181905260009190848201906040850190845b818110156135a75783518352928401929184019160010161358b565b50909695505050505050565b600061ffff8083168181036135ca576135ca6134a1565b6001019392505050565b818103818111156134ca576134ca6134a1565b80820281158282048414176134ca576134ca6134a1565b60006020828403121561361057600080fd5b81356001600160801b038116811461312157600080fd5b60008261364457634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561365c57600080fd5b505080516020909101519092909150565b6000806040838503121561368057600080fd5b8251915060208301516133d4816131f5565b60005b838110156136ad578181015183820152602001613695565b50506000910152565b600082516136c8818460208701613692565b9190910192915050565b60208152600082518060208401526136f1816040850160208701613692565b601f01601f1916919091016040019291505056fea26469706673582212209b5dec1caa512c1528af000b8847e9f0f87baef4e7afd947e5b0ef428e6f615a64736f6c63430008130033000000000000000000000000466c92d5bf1adc11d62e08e3caae6db2b7d42a850000000000000000000000000bb0aa6aa3a3fd4f7a43fb5e3d90bf9e6b4ef7990000000000000000000000000ba523cd5aa725c66c3fe015bd52e7a16d3fdb32000000000000000000000000ec63b8a3a2402892d3e6ab97b89cf47132a29daa0000000000000000000000004608fb6abcf7841855a8e797b7e1fc08ab9a1e670000000000000000000000004b2e2e04cef598cae566359897559b2cf6678d3f