608060405234801561001057600080fd5b5061001f6101b960201b60201c565b604051806060016040528060358152602001613af260359139610047816101c160201b60201c565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100ba5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100b191906102db565b60405180910390fd5b6100c9816101d460201b60201c565b506100d86101b960201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101266101b960201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101746101b960201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610618565b600033905090565b80600290816101d09190610546565b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102c58261029a565b9050919050565b6102d5816102ba565b82525050565b60006020820190506102f060008301846102cc565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061037757607f821691505b60208210810361038a57610389610330565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026103f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826103b5565b6103fc86836103b5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061044361043e61043984610414565b61041e565b610414565b9050919050565b6000819050919050565b61045d83610428565b6104716104698261044a565b8484546103c2565b825550505050565b600090565b610486610479565b610491818484610454565b505050565b5b818110156104b5576104aa60008261047e565b600181019050610497565b5050565b601f8211156104fa576104cb81610390565b6104d4846103a5565b810160208510156104e3578190505b6104f76104ef856103a5565b830182610496565b50505b505050565b600082821c905092915050565b600061051d600019846008026104ff565b1980831691505092915050565b6000610536838361050c565b9150826002028217905092915050565b61054f826102f6565b67ffffffffffffffff81111561056857610567610301565b5b610572825461035f565b61057d8282856104b9565b600060209050601f8311600181146105b0576000841561059e578287015190505b6105a8858261052a565b865550610610565b601f1984166105be86610390565b60005b828110156105e6578489015182556001820191506020850194506020810190506105c1565b8683101561060357848901516105ff601f89168261050c565b8355505b6001600288020188555050505b505050505050565b6134cb806106276000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c8063715018a6116100b8578063b3ab15fb1161007c578063b3ab15fb1461034c578063e985e9c514610368578063ebb4b2ba14610398578063f242432a146103b4578063f2fde38b146103d0578063f5298aca146103ec57610141565b8063715018a6146102ce57806373ad6c2d146102d85780638da5cb5b146102f4578063a22cb46514610312578063abc8c7af1461032e57610141565b80632eb2c2d61161010a5780632eb2c2d61461020e5780633b65ff631461022a57806340c10f19146102485780634e1273f414610264578063570ca735146102945780636b20c454146102b257610141565b8062fdd58e1461014657806301ffc9a71461017657806302fe5305146101a65780630e89341c146101c25780631f7fdffa146101f2575b600080fd5b610160600480360381019061015b9190612364565b610408565b60405161016d91906123b3565b60405180910390f35b610190600480360381019061018b9190612426565b610462565b60405161019d919061246e565b60405180910390f35b6101c060048036038101906101bb91906125cf565b610544565b005b6101dc60048036038101906101d79190612618565b6106a5565b6040516101e991906126c4565b60405180910390f35b61020c6004803603810190610207919061284f565b610739565b005b6102286004803603810190610223919061290a565b6108a0565b005b610232610948565b60405161023f91906129e8565b60405180910390f35b610262600480360381019061025d9190612364565b61096e565b005b61027e60048036038101906102799190612ac6565b610b21565b60405161028b9190612bfc565b60405180910390f35b61029c610c2a565b6040516102a991906129e8565b60405180910390f35b6102cc60048036038101906102c79190612c1e565b610c50565b005b6102d6610db5565b005b6102f260048036038101906102ed9190612ca9565b610dc9565b005b6102fc610e58565b60405161030991906129e8565b60405180910390f35b61032c60048036038101906103279190612d02565b610e82565b005b610336610e98565b60405161034391906129e8565b60405180910390f35b61036660048036038101906103619190612ca9565b610ebe565b005b610382600480360381019061037d9190612d42565b610f4d565b60405161038f919061246e565b60405180910390f35b6103b260048036038101906103ad9190612ca9565b610fe1565b005b6103ce60048036038101906103c99190612d82565b611070565b005b6103ea60048036038101906103e59190612ca9565b611118565b005b61040660048036038101906104019190612e19565b61119e565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052d57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061053d575061053c82611303565b5b9050919050565b61054c61136d565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806105fb57506105aa61136d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8061065a575061060961136d565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069090612ede565b60405180910390fd5b6106a281611375565b50565b6060600280546106b490612f2d565b80601f01602080910402602001604051908101604052809291908181526020018280546106e090612f2d565b801561072d5780601f106107025761010080835404028352916020019161072d565b820191906000526020600020905b81548152906001019060200180831161071057829003601f168201915b50505050509050919050565b61074161136d565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806107f0575061079f61136d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8061084f57506107fe61136d565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61088e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088590612ede565b60405180910390fd5b61089a84848484611388565b50505050565b60006108aa61136d565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156108ef57506108ed8682610f4d565b155b156109335780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161092a929190612f5e565b60405180910390fd5b610940868686868661140e565b505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097661136d565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a2557506109d461136d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610a845750610a3361136d565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aba90612ede565b60405180910390fd5b610b1d82600083600067ffffffffffffffff811115610ae557610ae46124a4565b5b6040519080825280601f01601f191660200182016040528015610b175781602001600182028036833780820191505090505b50611506565b5050565b60608151835114610b6d57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610b64929190612f87565b60405180910390fd5b6000835167ffffffffffffffff811115610b8a57610b896124a4565b5b604051908082528060200260200182016040528015610bb85781602001602082028036833780820191505090505b50905060005b8451811015610c1f57610bf5610bdd828761159f90919063ffffffff16565b610bf083876115b390919063ffffffff16565b610408565b828281518110610c0857610c07612fb0565b5b602002602001018181525050806001019050610bbe565b508091505092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c5861136d565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610d075750610cb661136d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610d665750610d1561136d565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9c90612ede565b60405180910390fd5b610db08383836115c7565b505050565b610dbd61165b565b610dc760006116e2565b565b610dd161165b565b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f327b5a68a826571e67549a44c13e20654cf75e644418fe24c3d7eef7792c8e9a60405160405180910390a250565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e94610e8d61136d565b83836117a8565b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ec661165b565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167ff6378acdf06085f69cfcf39bc889e16b49a235e59d4172c1c83b73474a22ed3a60405160405180910390a250565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610fe961165b565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fb174b6094c08115eb596b0962155915d3d0a0782c5bc00086887f37d621f84aa60405160405180910390a250565b600061107a61136d565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156110bf57506110bd8682610f4d565b155b156111035780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016110fa929190612f5e565b60405180910390fd5b6111108686868686611918565b505050505050565b61112061165b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111925760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161118991906129e8565b60405180910390fd5b61119b816116e2565b50565b6111a661136d565b73ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480611255575061120461136d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806112b4575061126361136d565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea90612ede565b60405180910390fd5b6112fe838383611a23565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b8060029081611384919061318b565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113fa5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f191906129e8565b60405180910390fd5b611408600085858585611aca565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114805760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161147791906129e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114f25760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114e991906129e8565b60405180910390fd5b6114ff8585858585611aca565b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115785760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161156f91906129e8565b60405180910390fd5b6000806115858585611b7c565b91509150611597600087848487611aca565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116395760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161163091906129e8565b60405180910390fd5b611656836000848460405180602001604052806000815250611aca565b505050565b61166361136d565b73ffffffffffffffffffffffffffffffffffffffff16611681610e58565b73ffffffffffffffffffffffffffffffffffffffff16146116e0576116a461136d565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116d791906129e8565b60405180910390fd5b565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181a5760006040517fced3e10000000000000000000000000000000000000000000000000000000000815260040161181191906129e8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161190b919061246e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361198a5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161198191906129e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036119fc5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016119f391906129e8565b60405180910390fd5b600080611a098585611b7c565b91509150611a1a8787848487611aca565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a955760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611a8c91906129e8565b60405180910390fd5b600080611aa28484611b7c565b91509150611ac3856000848460405180602001604052806000815250611aca565b5050505050565b611ad685858585611bac565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611b75576000611b1461136d565b90506001845103611b64576000611b356000866115b390919063ffffffff16565b90506000611b4d6000866115b390919063ffffffff16565b9050611b5d838989858589611f54565b5050611b73565b611b72818787878787612108565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b8051825114611bf657815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611bed929190612f87565b60405180910390fd5b6000611c0061136d565b905060005b8351811015611e0f576000611c2382866115b390919063ffffffff16565b90506000611c3a83866115b390919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611d6757600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611d0f57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611d06949392919061325d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611e02578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dfa91906132d1565b925050819055505b5050806001019050611c05565b506001835103611ece576000611e2f6000856115b390919063ffffffff16565b90506000611e476000856115b390919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611ebf929190612f87565b60405180910390a45050611f4d565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611f44929190613305565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612100578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611fb5959493929190613391565b6020604051808303816000875af1925050508015611ff157506040513d601f19601f82011682018060405250810190611fee9190613400565b60015b612075573d8060008114612021576040519150601f19603f3d011682016040523d82523d6000602084013e612026565b606091505b50600081510361206d57846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161206491906129e8565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120fe57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f591906129e8565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156122b4578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161216995949392919061342d565b6020604051808303816000875af19250505080156121a557506040513d601f19601f820116820180604052508101906121a29190613400565b60015b612229573d80600081146121d5576040519150601f19603f3d011682016040523d82523d6000602084013e6121da565b606091505b50600081510361222157846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161221891906129e8565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122b257846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016122a991906129e8565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122fb826122d0565b9050919050565b61230b816122f0565b811461231657600080fd5b50565b60008135905061232881612302565b92915050565b6000819050919050565b6123418161232e565b811461234c57600080fd5b50565b60008135905061235e81612338565b92915050565b6000806040838503121561237b5761237a6122c6565b5b600061238985828601612319565b925050602061239a8582860161234f565b9150509250929050565b6123ad8161232e565b82525050565b60006020820190506123c860008301846123a4565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612403816123ce565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b60006020828403121561243c5761243b6122c6565b5b600061244a84828501612411565b91505092915050565b60008115159050919050565b61246881612453565b82525050565b6000602082019050612483600083018461245f565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6124dc82612493565b810181811067ffffffffffffffff821117156124fb576124fa6124a4565b5b80604052505050565b600061250e6122bc565b905061251a82826124d3565b919050565b600067ffffffffffffffff82111561253a576125396124a4565b5b61254382612493565b9050602081019050919050565b82818337600083830152505050565b600061257261256d8461251f565b612504565b90508281526020810184848401111561258e5761258d61248e565b5b612599848285612550565b509392505050565b600082601f8301126125b6576125b5612489565b5b81356125c684826020860161255f565b91505092915050565b6000602082840312156125e5576125e46122c6565b5b600082013567ffffffffffffffff811115612603576126026122cb565b5b61260f848285016125a1565b91505092915050565b60006020828403121561262e5761262d6122c6565b5b600061263c8482850161234f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561267f578082015181840152602081019050612664565b60008484015250505050565b600061269682612645565b6126a08185612650565b93506126b0818560208601612661565b6126b981612493565b840191505092915050565b600060208201905081810360008301526126de818461268b565b905092915050565b600067ffffffffffffffff821115612701576127006124a4565b5b602082029050602081019050919050565b600080fd5b600061272a612725846126e6565b612504565b9050808382526020820190506020840283018581111561274d5761274c612712565b5b835b818110156127765780612762888261234f565b84526020840193505060208101905061274f565b5050509392505050565b600082601f83011261279557612794612489565b5b81356127a5848260208601612717565b91505092915050565b600067ffffffffffffffff8211156127c9576127c86124a4565b5b6127d282612493565b9050602081019050919050565b60006127f26127ed846127ae565b612504565b90508281526020810184848401111561280e5761280d61248e565b5b612819848285612550565b509392505050565b600082601f83011261283657612835612489565b5b81356128468482602086016127df565b91505092915050565b60008060008060808587031215612869576128686122c6565b5b600061287787828801612319565b945050602085013567ffffffffffffffff811115612898576128976122cb565b5b6128a487828801612780565b935050604085013567ffffffffffffffff8111156128c5576128c46122cb565b5b6128d187828801612780565b925050606085013567ffffffffffffffff8111156128f2576128f16122cb565b5b6128fe87828801612821565b91505092959194509250565b600080600080600060a08688031215612926576129256122c6565b5b600061293488828901612319565b955050602061294588828901612319565b945050604086013567ffffffffffffffff811115612966576129656122cb565b5b61297288828901612780565b935050606086013567ffffffffffffffff811115612993576129926122cb565b5b61299f88828901612780565b925050608086013567ffffffffffffffff8111156129c0576129bf6122cb565b5b6129cc88828901612821565b9150509295509295909350565b6129e2816122f0565b82525050565b60006020820190506129fd60008301846129d9565b92915050565b600067ffffffffffffffff821115612a1e57612a1d6124a4565b5b602082029050602081019050919050565b6000612a42612a3d84612a03565b612504565b90508083825260208201905060208402830185811115612a6557612a64612712565b5b835b81811015612a8e5780612a7a8882612319565b845260208401935050602081019050612a67565b5050509392505050565b600082601f830112612aad57612aac612489565b5b8135612abd848260208601612a2f565b91505092915050565b60008060408385031215612add57612adc6122c6565b5b600083013567ffffffffffffffff811115612afb57612afa6122cb565b5b612b0785828601612a98565b925050602083013567ffffffffffffffff811115612b2857612b276122cb565b5b612b3485828601612780565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b738161232e565b82525050565b6000612b858383612b6a565b60208301905092915050565b6000602082019050919050565b6000612ba982612b3e565b612bb38185612b49565b9350612bbe83612b5a565b8060005b83811015612bef578151612bd68882612b79565b9750612be183612b91565b925050600181019050612bc2565b5085935050505092915050565b60006020820190508181036000830152612c168184612b9e565b905092915050565b600080600060608486031215612c3757612c366122c6565b5b6000612c4586828701612319565b935050602084013567ffffffffffffffff811115612c6657612c656122cb565b5b612c7286828701612780565b925050604084013567ffffffffffffffff811115612c9357612c926122cb565b5b612c9f86828701612780565b9150509250925092565b600060208284031215612cbf57612cbe6122c6565b5b6000612ccd84828501612319565b91505092915050565b612cdf81612453565b8114612cea57600080fd5b50565b600081359050612cfc81612cd6565b92915050565b60008060408385031215612d1957612d186122c6565b5b6000612d2785828601612319565b9250506020612d3885828601612ced565b9150509250929050565b60008060408385031215612d5957612d586122c6565b5b6000612d6785828601612319565b9250506020612d7885828601612319565b9150509250929050565b600080600080600060a08688031215612d9e57612d9d6122c6565b5b6000612dac88828901612319565b9550506020612dbd88828901612319565b9450506040612dce8882890161234f565b9350506060612ddf8882890161234f565b925050608086013567ffffffffffffffff811115612e0057612dff6122cb565b5b612e0c88828901612821565b9150509295509295909350565b600080600060608486031215612e3257612e316122c6565b5b6000612e4086828701612319565b9350506020612e518682870161234f565b9250506040612e628682870161234f565b9150509250925092565b7f43616c6c6572206973206e6f7420746865206f70657261746f72206f72206d6160008201527f726b6574706c6163650000000000000000000000000000000000000000000000602082015250565b6000612ec8602983612650565b9150612ed382612e6c565b604082019050919050565b60006020820190508181036000830152612ef781612ebb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f4557607f821691505b602082108103612f5857612f57612efe565b5b50919050565b6000604082019050612f7360008301856129d9565b612f8060208301846129d9565b9392505050565b6000604082019050612f9c60008301856123a4565b612fa960208301846123a4565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026130417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613004565b61304b8683613004565b95508019841693508086168417925050509392505050565b6000819050919050565b600061308861308361307e8461232e565b613063565b61232e565b9050919050565b6000819050919050565b6130a28361306d565b6130b66130ae8261308f565b848454613011565b825550505050565b600090565b6130cb6130be565b6130d6818484613099565b505050565b5b818110156130fa576130ef6000826130c3565b6001810190506130dc565b5050565b601f82111561313f5761311081612fdf565b61311984612ff4565b81016020851015613128578190505b61313c61313485612ff4565b8301826130db565b50505b505050565b600082821c905092915050565b600061316260001984600802613144565b1980831691505092915050565b600061317b8383613151565b9150826002028217905092915050565b61319482612645565b67ffffffffffffffff8111156131ad576131ac6124a4565b5b6131b78254612f2d565b6131c28282856130fe565b600060209050601f8311600181146131f557600084156131e3578287015190505b6131ed858261316f565b865550613255565b601f19841661320386612fdf565b60005b8281101561322b57848901518255600182019150602085019450602081019050613206565b868310156132485784890151613244601f891682613151565b8355505b6001600288020188555050505b505050505050565b600060808201905061327260008301876129d9565b61327f60208301866123a4565b61328c60408301856123a4565b61329960608301846123a4565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132dc8261232e565b91506132e78361232e565b92508282019050808211156132ff576132fe6132a2565b5b92915050565b6000604082019050818103600083015261331f8185612b9e565b905081810360208301526133338184612b9e565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006133638261333c565b61336d8185613347565b935061337d818560208601612661565b61338681612493565b840191505092915050565b600060a0820190506133a660008301886129d9565b6133b360208301876129d9565b6133c060408301866123a4565b6133cd60608301856123a4565b81810360808301526133df8184613358565b90509695505050505050565b6000815190506133fa816123fa565b92915050565b600060208284031215613416576134156122c6565b5b6000613424848285016133eb565b91505092915050565b600060a08201905061344260008301886129d9565b61344f60208301876129d9565b81810360408301526134618186612b9e565b905081810360608301526134758185612b9e565b905081810360808301526134898184613358565b9050969550505050505056fea2646970667358221220635ca312b2581788e21bd728c09a720cc2938dd5c8953213df5e5b93d614e20464736f6c634300081b0033697066733a2f2f516d554531684d524138357561616f59416f745078587a41665655793468734d4879796a50587661795151574842