60806040523480156200001157600080fd5b50600180546001600160a01b031916339081179091556200003e906a295be96e6406697200000062000044565b62000877565b6001600160a01b038216620000765760405162461bcd60e51b81526004016200006d90620007d3565b60405180910390fd5b6001600160a01b038216600090815260036020908152604090912054620000b4916001600160601b0390911690839062001af4620001da821b17901c565b6001600160a01b0383166000908152600360209081526040822080546001600160601b0319166001600160601b039485161790559054620001029216908390620001da811b62001af417901c565b600080546001600160601b0319166001600160601b0392831617908190556200014a916c010000000000000000000000009091041682620001da602090811b62001af417901c565b6000600c6101000a8154816001600160601b0302191690836001600160601b03160217905550816001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001b69190620007e5565b60405180910390a3620001d66000620001cf8462000217565b8362000263565b5050565b60008282016001600160601b0380851690821610156200020e5760405162461bcd60e51b81526004016200006d90620007c1565b90505b92915050565b6001600160a01b03818116600090815260046020526040812054909116620002415750806200025e565b506001600160a01b03808216600090815260046020526040902054165b919050565b816001600160a01b0316836001600160a01b0316141580156200028f57506000816001600160601b0316115b15620003ed576001600160a01b0383161562000341576001600160a01b0383166000908152600660205260408120549081620002cd57600062000307565b6001600160a01b03851660009081526005602090815260408083206000198601845290915290205464010000000090046001600160601b03165b905060006200032e84836001600160601b0316620003f260201b62001b441790919060201c565b90506200033d8683836200043c565b5050505b6001600160a01b03821615620003ed576001600160a01b038216600090815260066020526040812054908162000379576000620003b3565b6001600160a01b03841660009081526005602090815260408083206000198601845290915290205464010000000090046001600160601b03165b90506000620003da84836001600160601b0316620001da60201b62001af41790919060201c565b9050620003e98583836200043c565b5050505b505050565b60006200020e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200062860201b60201c565b600062000485436040518060400160405280601581526020017f4444583a206578636565647320333220626974732e00000000000000000000008152506200066f60201b60201c565b6001600160a01b0385166000908152600660205260409020549091508015801590620004e057506001600160a01b03851660009081526005602090815260408083206000198501845290915290205463ffffffff8381169116145b1562000536576001600160a01b03851660009081526005602090815260408083206000198501845290915290208054600160201b600160801b0319166401000000006001600160601b03861602179055620005dc565b60408051808201825263ffffffff80851682526001600160601b0380871660208085019182526001600160a01b038b1660009081526005825286812088825282529590952093518454915190921664010000000002600160201b600160801b03199290931663ffffffff199091161716179055620005c290829060019062001b86620006a2821b17901c565b6001600160a01b0386166000908152600660205260409020555b846001600160a01b03167f664ef4a22338e827df5b675ec1747eac10c2ea611e1c575f3d96c38a2e24231e858560405162000619929190620007f5565b60405180910390a25050505050565b6000836001600160601b0316836001600160601b031611158290620006625760405162461bcd60e51b81526004016200006d9190620007ae565b50508183035b9392505050565b60008164010000000084106200069a5760405162461bcd60e51b81526004016200006d9190620007ae565b509192915050565b6000828201838110156200020e5760405162461bcd60e51b81526004016200006d90620007c1565b6000620006d78262000814565b620006e3818562000818565b9350620006f58185602086016200083a565b62000700816200086d565b9093019392505050565b600062000719601b8362000818565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006200075460298362000818565b7f4444583a2063616e6e6f74207472616e7366657220746f20746865207a65726f8152681030b2323932b9b99760b91b602082015260400192915050565b6200079d816200082d565b82525050565b6200079d8162000821565b602080825281016200020e8184620006ca565b6020808252810162000211816200070a565b60208082528101620002118162000745565b6020810162000211828462000792565b60408101620008058285620007a3565b620006686020830184620007a3565b5190565b90815260200190565b6001600160601b031690565b6000620002118262000821565b60005b83811015620008575781810151838201526020016200083d565b8381111562000867576000848401525b50505050565b601f01601f191690565b61354c80620008876000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80635c19a95c116101045780637ecebe00116100a2578063b4b5ea5711610071578063b4b5ea57146103dc578063dd62ed3e146103ef578063e6cfe6fc14610402578063e961b94a1461040a576101da565b80637ecebe001461039b57806395d89b41146103ae578063a457c2d7146103b6578063a9059cbb146103c9576101da565b80636fcfff45116100de5780636fcfff451461034257806370a0823114610362578063782d6fe11461037557806379cc679014610388576101da565b80635c19a95c1461031457806361a1007c146103275780636291f5721461033a576101da565b8063313ce5671161017c57806342966c681161014b57806342966c68146102d35780634a9e3e13146102e657806354fd4d50146102f9578063587cde1e14610301576101da565b8063313ce5671461029057806332cb6b0c146102a557806339509351146102ad57806340c10f19146102c0576101da565b80630f5730f1116101b85780630f5730f11461023e57806318160ddd146102535780631d1438481461026857806323b872dd1461027d576101da565b806306fdde03146101df578063095ea7b3146101fd5780630cdfebfa1461021d575b600080fd5b6101e7610412565b6040516101f4919061320f565b60405180910390f35b61021061020b366004612afe565b61044b565b6040516101f491906131c3565b61023061022b366004612afe565b6105a8565b6040516101f492919061332e565b61025161024c366004612ba7565b6105e3565b005b61025b610a5c565b6040516101f49190613365565b610270610a80565b6040516101f491906131b5565b61021061028b366004612ab1565b610a9c565b610298610c42565b6040516101f49190613349565b61025b610c47565b6102106102bb366004612afe565b610c56565b6102516102ce366004612afe565b610de2565b6102516102e1366004612c34565b610f07565b6102516102f4366004612b2e565b610f6c565b6101e76111d1565b61027061030f366004612a51565b61120a565b610251610322366004612a51565b611232565b610251610335366004612a51565b61123f565b61025b6113c1565b610355610350366004612a51565b6113d5565b6040516101f49190613320565b610355610370366004612a51565b6113e7565b61025b610383366004612afe565b611421565b610251610396366004612afe565b61167d565b6103556103a9366004612a51565b611835565b6101e7611847565b6102106103c4366004612afe565b611880565b6102106103d7366004612afe565b611989565b61025b6103ea366004612a51565b6119f6565b6103556103fd366004612a77565b611a7a565b610210611ac0565b61025b611ae5565b6040518060400160405280600981526020017f44657269766144414f000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff83166104a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a906132a0565b60405180910390fd5b60006000198314156104b857506000196104fa565b6104f7836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e00000000815250611bc5565b90505b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610594908790613320565b60405180910390a360019150505b92915050565b600560209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b60006106626040518060400160405280600981526020017f44657269766144414f00000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525061065c611c17565b30611c1b565b905060006106a660405180608001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018681525083611c72565b90506000836000815181106106b757fe5b016020015160f81c905060006106ce856001611c86565b905060006106dd866021611c86565b90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0811115610739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613270565b8260ff16601b1415801561075157508260ff16601c14155b15610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a906132b0565b6000600185858585604051600081526020016040526040516107ad94939291906131d1565b6020604051602081039080840390855afa1580156107cf573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613310565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260076020526040902080546001810190915589146108ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a906132f0565b874211156108e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613250565b60006000198b14156108fc575060001961093e565b61093b8b6040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e00000000815250611bc5565b90505b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258d604051610a469190613320565b60405180910390a3505050505050505050505050565b6000546c0100000000000000000000000090046bffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120546bffffffffffffffffffffffff1681600019841415610aef5750600019610b31565b610b2e846040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e00000000815250611bc5565b90505b3373ffffffffffffffffffffffffffffffffffffffff871614801590610b6557506bffffffffffffffffffffffff82811614155b15610c29576000610b846bffffffffffffffffffffffff841683611b44565b73ffffffffffffffffffffffffffffffffffffffff881660008181526002602090815260408083203380855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790559051929350917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c1f908590613357565b60405180910390a3505b610c34868683611ccf565b6001925050505b9392505050565b601281565b6a52b7d2dcc80cd2e400000081565b600073ffffffffffffffffffffffffffffffffffffffff8316610ca5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a906132a0565b6000600019831415610cba5750600019610cfc565b610cf9836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e00000000815250611bc5565b90505b33600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff88168452909152902054610d45906bffffffffffffffffffffffff1682611af4565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8a1680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff9586161790819055915190937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259261059492911690613357565b60015473ffffffffffffffffffffffffffffffffffffffff163314610e33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a906132d0565b6000600019821415610e485750600019610e8a565b610e87826040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e00000000815250611bc5565b90505b6000546a52b7d2dcc80cd2e400000090610eb2906bffffffffffffffffffffffff1683611af4565b6bffffffffffffffffffffffff161115610ef8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613230565b610f028382611ed1565b505050565b6000600019821415610f1c5750600019610f5e565b610f5b826040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e00000000815250611bc5565b90505b610f6833826120bf565b5050565b6000610fe56040518060400160405280600981526020017f44657269766144414f00000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525061065c611c17565b9050600061102360405180606001604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815250836122ac565b905060008360008151811061103457fe5b016020015160f81c9050600061104b856001611c86565b9050600061105a866021611c86565b905060006001858585856040516000815260200160405260405161108194939291906131d1565b6020604051602081039080840390855afa1580156110a3573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661111b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613310565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604090208054600181019091558914611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a906132f0565b874211156111bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613250565b6111c5818b6122bb565b50505050505050505050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61123c33826122bb565b50565b60015473ffffffffffffffffffffffffffffffffffffffff163314611290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613280565b73ffffffffffffffffffffffffffffffffffffffff81166112dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a906132c0565b6000547801000000000000000000000000000000000000000000000000900460ff1615611336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a906132e0565b600080547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000001790556001805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179055565b6000546bffffffffffffffffffffffff1681565b60066020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600360205260409020546bffffffffffffffffffffffff165b919050565b600043821061145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613220565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260066020526040902054806114915760009150506105a2565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083206000198501845290915290205463ffffffff1683106115255773ffffffffffffffffffffffffffffffffffffffff84166000908152600560209081526040808320600019909401835292905220546bffffffffffffffffffffffff6401000000009091041690506105a2565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260056020908152604080832083805290915290205463ffffffff1683101561156d5760009150506105a2565b600060001982015b8181111561162c57600282820304810361158d6129d0565b5073ffffffffffffffffffffffffffffffffffffffff8716600090815260056020908152604080832084845282529182902082518084019093525463ffffffff81168084526401000000009091046bffffffffffffffffffffffff1691830191909152871415611607576020015194506105a29350505050565b805163ffffffff1687111561161e57819350611625565b6001820392505b5050611575565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260056020908152604080832093835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602090815260408083203384529091528120546bffffffffffffffffffffffff16906000198314156116d05750600019611712565b61170f836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e00000000815250611bc5565b90505b3373ffffffffffffffffffffffffffffffffffffffff85161480159061174657506bffffffffffffffffffffffff82811614155b15611825576000611780826040518060600160405280602381526020016134f4602391396bffffffffffffffffffffffff8616919061236f565b73ffffffffffffffffffffffffffffffffffffffff861660008181526002602090815260408083203380855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790559051929350917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061181b908590613357565b60405180910390a3505b61182f84826120bf565b50505050565b60076020526000908152604090205481565b6040518060400160405280600381526020017f444458000000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff83166118cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a906132a0565b60006000198314156118e45750600019611926565b611923836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e00000000815250611bc5565b90505b610d45816040518060600160405280602481526020016134d06024913933600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b1684529091529020546bffffffffffffffffffffffff16919061236f565b60008060001983141561199f57506000196119e1565b6119de836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e00000000815250611bc5565b90505b6119ec338583611ccf565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604081205480611a28576000610c3b565b73ffffffffffffffffffffffffffffffffffffffff831660009081526005602090815260408083206000198501845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526002602090815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b6000547801000000000000000000000000000000000000000000000000900460ff1681565b6a295be96e6406697200000081565b60008282016bffffffffffffffffffffffff8085169082161015610c3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613240565b6000610c3b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061236f565b600082820183811015610c3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613240565b6000816c010000000000000000000000008410611c0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a919061320f565b509192915050565b4690565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b6000610c3b82611c81856123d2565b612435565b60008160200183511015611cc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613260565b50016020015190565b73ffffffffffffffffffffffffffffffffffffffff8316611d1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613290565b73ffffffffffffffffffffffffffffffffffffffff8216611d69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613300565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902054611da7906bffffffffffffffffffffffff1682611b44565b73ffffffffffffffffffffffffffffffffffffffff84811660009081526003602052604080822080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95861617905591851681522054611e17911682611af4565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611eae908590613357565b60405180910390a3610f02611ec28461246f565b611ecb8461246f565b836124d0565b73ffffffffffffffffffffffffffffffffffffffff8216611f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613300565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054611f5c906bffffffffffffffffffffffff1682611af4565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff93841617905554611fc4911682611af4565b600080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff928316179081905561201b916c010000000000000000000000009091041682611af4565b6000600c6101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120a99190613357565b60405180910390a3610f686000611ecb8461246f565b73ffffffffffffffffffffffffffffffffffffffff821661210c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a90613290565b60408051808201825260208082527f4444583a206e6f7420656e6f7567682062616c616e636520746f206275726e2e8183015273ffffffffffffffffffffffffffffffffffffffff8516600090815260039091529190912054612181916bffffffffffffffffffffffff90911690839061236f565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff938416179055546121fa916c010000000000000000000000009091041682611b44565b600080546bffffffffffffffffffffffff929092166c01000000000000000000000000027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff90921691909117815560405173ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612290908590613357565b60405180910390a3610f686122a48361246f565b6000836124d0565b6000610c3b82611c81856126b3565b60006122c68361246f565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260036020908152604080832054600490925280832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001689871690811790915590519596506bffffffffffffffffffffffff909116949093861692917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f91a461182f8284836124d0565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff16111582906123ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a919061320f565b505050900390565b60007f58e19c95adc541dea238d3211d11e11e7def7d0c7fda4e10e0c45eb224ef2fb7602083101561240057fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092909201805192815260a081209290525090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600460205260408120549091166124a457508061141c565b5073ffffffffffffffffffffffffffffffffffffffff9081166000908152600460205260409020541690565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561251a57506000816bffffffffffffffffffffffff16115b15610f025773ffffffffffffffffffffffffffffffffffffffff8316156125e75773ffffffffffffffffffffffffffffffffffffffff8316600090815260066020526040812054908161256e5760006125ba565b73ffffffffffffffffffffffffffffffffffffffff851660009081526005602090815260408083206000198601845290915290205464010000000090046bffffffffffffffffffffffff165b905060006125d66bffffffffffffffffffffffff831685611b44565b90506125e3868383612716565b5050505b73ffffffffffffffffffffffffffffffffffffffff821615610f025773ffffffffffffffffffffffffffffffffffffffff82166000908152600660205260408120549081612636576000612682565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083206000198601845290915290205464010000000090046bffffffffffffffffffffffff165b9050600061269e6bffffffffffffffffffffffff831685611af4565b90506126ab858383612716565b505050505050565b60007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208310156126e157fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0929092018051928152608081209290525090565b6000612757436040518060400160405280601581526020017f4444583a206578636565647320333220626974732e000000000000000000000081525061298e565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602052604090205490915080158015906127cb575073ffffffffffffffffffffffffffffffffffffffff851660009081526005602090815260408083206000198501845290915290205463ffffffff8381169116145b156128465773ffffffffffffffffffffffffffffffffffffffff8516600090815260056020908152604080832060001985018452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff861602179055612937565b60408051808201825263ffffffff80851682526bffffffffffffffffffffffff808716602080850191825273ffffffffffffffffffffffffffffffffffffffff8b1660009081526005825286812088825290915294909420925183549451909116640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9183167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009095169490941716929092179055612910908290600190611b8616565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600660205260409020555b8473ffffffffffffffffffffffffffffffffffffffff167f664ef4a22338e827df5b675ec1747eac10c2ea611e1c575f3d96c38a2e24231e858560405161297f929190613373565b60405180910390a25050505050565b6000816401000000008410611c0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049a919061320f565b604080518082019091526000808252602082015290565b80356105a2816134b2565b600082601f830112612a0357600080fd5b8135612a16612a11826133a8565b613381565b91508082526020830160208301858383011115612a3257600080fd5b612a3d838284613452565b50505092915050565b80356105a2816134c6565b600060208284031215612a6357600080fd5b6000612a6f84846129e7565b949350505050565b60008060408385031215612a8a57600080fd5b6000612a9685856129e7565b9250506020612aa7858286016129e7565b9150509250929050565b600080600060608486031215612ac657600080fd5b6000612ad286866129e7565b9350506020612ae3868287016129e7565b9250506040612af486828701612a46565b9150509250925092565b60008060408385031215612b1157600080fd5b6000612b1d85856129e7565b9250506020612aa785828601612a46565b60008060008060808587031215612b4457600080fd5b6000612b5087876129e7565b9450506020612b6187828801612a46565b9350506040612b7287828801612a46565b925050606085013567ffffffffffffffff811115612b8f57600080fd5b612b9b878288016129f2565b91505092959194509250565b600080600080600060a08688031215612bbf57600080fd5b6000612bcb88886129e7565b9550506020612bdc88828901612a46565b9450506040612bed88828901612a46565b9350506060612bfe88828901612a46565b925050608086013567ffffffffffffffff811115612c1b57600080fd5b612c27888289016129f2565b9150509295509295909350565b600060208284031215612c4657600080fd5b6000612a6f8484612a46565b612c5b816133fb565b82525050565b612c5b81613406565b612c5b8161340b565b6000612c7e826133ee565b612c8881856133f2565b9350612c9881856020860161345e565b612ca18161348a565b9093019392505050565b6000612cb8601e836133f2565b7f4444583a20626c6f636b206e6f74207965742064657465726d696e65642e0000815260200192915050565b6000612cf16012836133f2565b7f4444583a206361702065786365656465642e0000000000000000000000000000815260200192915050565b6000612d2a601b836133f2565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612d636017836133f2565b7f4444583a207369676e617475726520657870697265642e000000000000000000815260200192915050565b6000612d9c6026836133f2565b7f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524581527f5155495245440000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612dfb6022836133f2565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c81527f7565000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612e5a6028836133f2565b7f4444583a20756e617574686f72697a6564207472616e73666572206f66206f7781527f6e6572736869702e000000000000000000000000000000000000000000000000602082015260400192915050565b6000612eb9602b836133f2565b7f4444583a2063616e6e6f74207472616e736665722066726f6d20746865207a6581527f726f20616464726573732e000000000000000000000000000000000000000000602082015260400192915050565b6000612f186021836133f2565b7f4444583a20617070726f766520746f20746865207a65726f206164647265737381527f2e00000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612f776022836133f2565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c81527f7565000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612fd66022836133f2565b7f4444583a207472616e7366657272696e6720746f207a65726f2061646472657381527f732e000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b60006130356017836133f2565b7f4444583a20756e617574686f72697a6564206d696e742e000000000000000000815260200192915050565b600061306e6023836133f2565b7f4444583a206f776e65727368697020616c7265616479207472616e736665727281527f65642e0000000000000000000000000000000000000000000000000000000000602082015260400192915050565b60006130cd6013836133f2565b7f4444583a20696e76616c6964206e6f6e63652e00000000000000000000000000815260200192915050565b60006131066029836133f2565b7f4444583a2063616e6e6f74207472616e7366657220746f20746865207a65726f81527f20616464726573732e0000000000000000000000000000000000000000000000602082015260400192915050565b60006131656017836133f2565b7f4444583a20696e76616c6964207369676e61747572652e000000000000000000815260200192915050565b612c5b81613427565b612c5b81613430565b612c5b81613447565b612c5b81613436565b602081016105a28284612c52565b602081016105a28284612c61565b608081016131df8287612c6a565b6131ec602083018661319a565b6131f96040830185612c6a565b6132066060830184612c6a565b95945050505050565b60208082528101610c3b8184612c73565b602080825281016105a281612cab565b602080825281016105a281612ce4565b602080825281016105a281612d1d565b602080825281016105a281612d56565b602080825281016105a281612d8f565b602080825281016105a281612dee565b602080825281016105a281612e4d565b602080825281016105a281612eac565b602080825281016105a281612f0b565b602080825281016105a281612f6a565b602080825281016105a281612fc9565b602080825281016105a281613028565b602080825281016105a281613061565b602080825281016105a2816130c0565b602080825281016105a2816130f9565b602080825281016105a281613158565b602081016105a28284612c6a565b6040810161333c8285613191565b610c3b60208301846131ac565b602081016105a2828461319a565b602081016105a282846131a3565b602081016105a282846131ac565b6040810161333c82856131ac565b60405181810167ffffffffffffffff811182821017156133a057600080fd5b604052919050565b600067ffffffffffffffff8211156133bf57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b90815260200190565b60006105a28261340e565b151590565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b60006105a282613436565b82818337506000910152565b60005b83811015613479578181015183820152602001613461565b8381111561182f5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6134bb816133fb565b811461123c57600080fd5b6134bb8161340b56fe4444583a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f2e4444583a206275726e20616d6f756e74206578636565647320616c6c6f77616e63652ea2646970667358221220aec35072efe66180c187e7b85927bf9cc88209bad97967175eedc785bd1e3a2364736f6c634300060c0033