60806040526005600b553480156200001657600080fd5b506040516200434e3803806200434e83398181016040528101906200003c919062000340565b6040518060400160405280600781526020017f46726f67616761000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f46726f67616761000000000000000000000000000000000000000000000000008152508160009080519060200190620000c092919062000279565b508060019080519060200190620000d992919062000279565b505050620000fc620000f0620001ab60201b60201c565b620001b360201b60201c565b6001600c600062000112620001ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200041f565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200028790620003a0565b90600052602060002090601f016020900481019282620002ab5760008555620002f7565b82601f10620002c657805160ff1916838001178555620002f7565b82800160010185558215620002f7579182015b82811115620002f6578251825591602001919060010190620002d9565b5b5090506200030691906200030a565b5090565b5b80821115620003255760008160009055506001016200030b565b5090565b6000815190506200033a8162000405565b92915050565b6000602082840312156200035357600080fd5b6000620003638482850162000329565b91505092915050565b6000620003798262000380565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006002820490506001821680620003b957607f821691505b60208210811415620003d057620003cf620003d6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b62000410816200036c565b81146200041c57600080fd5b50565b613f1f806200042f6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636352211e1161010457806395d89b41116100a2578063cf456ae711610071578063cf456ae714610566578063dc8e92ea14610582578063e985e9c51461059e578063f2fde38b146105ce576101da565b806395d89b41146104e0578063a22cb465146104fe578063b88d4fde1461051a578063c87b56dd14610536576101da565b8063715018a6116100de578063715018a61461047c57806380f55605146104865780638a71bb2d146104a45780638da5cb5b146104c2576101da565b80636352211e146104005780636dcea85f1461043057806370a082311461044c576101da565b80632f745c591161017c57806342966c681161014b57806342966c681461037c5780634684d7e9146103985780634f6ccce7146103b457806361ba27da146103e4576101da565b80632f745c59146102e45780633dd08c381461031457806340c10f191461034457806342842e0e14610360576101da565b8063095ea7b3116101b8578063095ea7b31461025d57806318160ddd1461027957806323b872dd146102975780632a55205a146102b3576101da565b806301ffc9a7146101df57806306fdde031461020f578063081812fc1461022d575b600080fd5b6101f960048036038101906101f49190612e5e565b6105ea565b6040516102069190613332565b60405180910390f35b610217610664565b604051610224919061334d565b60405180910390f35b61024760048036038101906102429190612eb0565b6106f6565b60405161025491906132a2565b60405180910390f35b61027760048036038101906102729190612de1565b61073c565b005b610281610854565b60405161028e91906135cf565b60405180910390f35b6102b160048036038101906102ac9190612c87565b610861565b005b6102cd60048036038101906102c89190612ed9565b6108c1565b6040516102db929190613309565b60405180910390f35b6102fe60048036038101906102f99190612de1565b61090c565b60405161030b91906135cf565b60405180910390f35b61032e60048036038101906103299190612c22565b6109b1565b60405161033b9190613332565b60405180910390f35b61035e60048036038101906103599190612de1565b6109d1565b005b61037a60048036038101906103759190612c87565b610ab6565b005b61039660048036038101906103919190612eb0565b610ad6565b005b6103b260048036038101906103ad9190612d51565b610b32565b005b6103ce60048036038101906103c99190612eb0565b610cfc565b6040516103db91906135cf565b60405180910390f35b6103fe60048036038101906103f99190612eb0565b610d93565b005b61041a60048036038101906104159190612eb0565b610da5565b60405161042791906132a2565b60405180910390f35b61044a60048036038101906104459190612c22565b610e2c565b005b61046660048036038101906104619190612c22565b610e78565b60405161047391906135cf565b60405180910390f35b610484610f30565b005b61048e610f44565b60405161049b91906132a2565b60405180910390f35b6104ac610f6a565b6040516104b991906135cf565b60405180910390f35b6104ca610f70565b6040516104d791906132a2565b60405180910390f35b6104e8610f9a565b6040516104f5919061334d565b60405180910390f35b61051860048036038101906105139190612da5565b61102c565b005b610534600480360381019061052f9190612cd6565b611042565b005b610550600480360381019061054b9190612eb0565b6110a4565b60405161055d919061334d565b60405180910390f35b610580600480360381019061057b9190612da5565b61110c565b005b61059c60048036038101906105979190612e1d565b61116f565b005b6105b860048036038101906105b39190612c4b565b611220565b6040516105c59190613332565b60405180910390f35b6105e860048036038101906105e39190612c22565b6112b4565b005b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061065d575061065c82611338565b5b9050919050565b60606000805461067390613824565b80601f016020809104026020016040519081016040528092919081815260200182805461069f90613824565b80156106ec5780601f106106c1576101008083540402835291602001916106ec565b820191906000526020600020905b8154815290600101906020018083116106cf57829003601f168201915b5050505050905090565b6000610701826113b2565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061074782610da5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107af9061352f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107d76113fd565b73ffffffffffffffffffffffffffffffffffffffff1614806108065750610805816108006113fd565b611220565b5b610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083c9061354f565b60405180910390fd5b61084f8383611405565b505050565b6000600880549050905090565b61087261086c6113fd565b826114be565b6108b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a89061336f565b60405180910390fd5b6108bc838383611553565b505050565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506064600b54846108f991906136e0565b61090391906136af565b90509250929050565b600061091783610e78565b8210610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f9061338f565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600c60006109dd6113fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b9061356f565b60405180910390fd5b6127108110610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f906134af565b60405180910390fd5b610ab2828261184d565b5050565b610ad183838360405180602001604052806000815250611042565b505050565b610ae7610ae16113fd565b826114be565b610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d9061336f565b60405180910390fd5b610b2f81611a6b565b50565b600c6000610b3e6113fd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc9061356f565b60405180910390fd5b606481511115610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c019061346f565b60405180910390fd5b60005b8151811015610cf757612710828281518110610c52577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015110610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c91906134af565b60405180910390fd5b610ce483838381518110610cd7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015161184d565b8080610cef90613887565b915050610c0d565b505050565b6000610d06610854565b8210610d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3e9061358f565b60405180910390fd5b60088281548110610d81577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050919050565b610d9b611bb9565b80600b8190555050565b600080610db183611c37565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a9061350f565b60405180910390fd5b80915050919050565b610e34611bb9565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee09061348f565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f38611bb9565b610f426000611c74565b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610fa990613824565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd590613824565b80156110225780601f10610ff757610100808354040283529160200191611022565b820191906000526020600020905b81548152906001019060200180831161100557829003601f168201915b5050505050905090565b61103e6110376113fd565b8383611d3a565b5050565b61105361104d6113fd565b836114be565b611092576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110899061336f565b60405180910390fd5b61109e84848484611ea7565b50505050565b60606110af826113b2565b60006110b9611f03565b905060008151116110d95760405180602001604052806000815250611104565b806110e384611f23565b6040516020016110f492919061327e565b6040516020818303038152906040525b915050919050565b611114611bb9565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6064815111156111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab9061346f565b60405180910390fd5b60005b815181101561121c576112098282815181106111fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610ad6565b808061121490613887565b9150506111b7565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6112bc611bb9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561132c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611323906133cf565b60405180910390fd5b61133581611c74565b50565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113ab57506113aa82612047565b5b9050919050565b6113bb81612129565b6113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f19061350f565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661147883610da5565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806114ca83610da5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061150c575061150b8185611220565b5b8061154a57508373ffffffffffffffffffffffffffffffffffffffff16611532846106f6565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661157382610da5565b73ffffffffffffffffffffffffffffffffffffffff16146115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c0906133ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611639576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116309061342f565b60405180910390fd5b611646838383600161216a565b8273ffffffffffffffffffffffffffffffffffffffff1661166682610da5565b73ffffffffffffffffffffffffffffffffffffffff16146116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b3906133ef565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611848838383600161217c565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b4906134cf565b60405180910390fd5b6118c681612129565b15611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd9061340f565b60405180910390fd5b61191460008383600161216a565b61191d81612129565b1561195d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119549061340f565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a6760008383600161217c565b5050565b6000611a7682610da5565b9050611a8681600084600161216a565b611a8f82610da5565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611bb581600084600161217c565b5050565b611bc16113fd565b73ffffffffffffffffffffffffffffffffffffffff16611bdf610f70565b73ffffffffffffffffffffffffffffffffffffffff1614611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c906134ef565b60405180910390fd5b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da09061344f565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611e9a9190613332565b60405180910390a3505050565b611eb2848484611553565b611ebe84848484612182565b611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef4906133af565b60405180910390fd5b50505050565b6060604051806080016040528060438152602001613ea760439139905090565b606060006001611f3284612319565b01905060008167ffffffffffffffff811115611f77577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611fa95781602001600182028036833780820191505090505b509050600082602001820190505b60011561203c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612026577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b04945060008514156120375761203c565b611fb7565b819350505050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061211257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612122575061212182612550565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff1661214b83611c37565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b612176848484846125ba565b50505050565b50505050565b60006121a38473ffffffffffffffffffffffffffffffffffffffff1661271a565b1561230c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121cc6113fd565b8786866040518563ffffffff1660e01b81526004016121ee94939291906132bd565b602060405180830381600087803b15801561220857600080fd5b505af192505050801561223957506040513d601f19601f820116820180604052508101906122369190612e87565b60015b6122bc573d8060008114612269576040519150601f19603f3d011682016040523d82523d6000602084013e61226e565b606091505b506000815114156122b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ab906133af565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612311565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061239d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612393577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612400576d04ee2d6d415b85acef810000000083816123f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506020810190505b662386f26fc10000831061245557662386f26fc10000838161244b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506010810190505b6305f5e10083106124a4576305f5e100838161249a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506008810190505b61271083106124ef5761271083816124e5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506004810190505b60648310612538576064838161252e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506002810190505b600a8310612547576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6125c68484848461273d565b600181111561260a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612601906135af565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156126525761264d81612743565b612691565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146126905761268f858261278c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156126d4576126cf816128f9565b612713565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612712576127118482612a3c565b5b5b5050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161279984610e78565b6127a3919061373a565b9050600060076000848152602001908152602001600020549050818114612888576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905061290d919061373a565b9050600060096000848152602001908152602001600020549050600060088381548110612963577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080600883815481106129ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612a20577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000612a4783610e78565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6000612ace612ac98461360f565b6135ea565b90508083825260208201905082856020860282011115612aed57600080fd5b60005b85811015612b1d5781612b038882612c0d565b845260208401935060208301925050600181019050612af0565b5050509392505050565b6000612b3a612b358461363b565b6135ea565b905082815260208101848484011115612b5257600080fd5b612b5d8482856137e2565b509392505050565b600081359050612b7481613e4a565b92915050565b600082601f830112612b8b57600080fd5b8135612b9b848260208601612abb565b91505092915050565b600081359050612bb381613e61565b92915050565b600081359050612bc881613e78565b92915050565b600081519050612bdd81613e78565b92915050565b600082601f830112612bf457600080fd5b8135612c04848260208601612b27565b91505092915050565b600081359050612c1c81613e8f565b92915050565b600060208284031215612c3457600080fd5b6000612c4284828501612b65565b91505092915050565b60008060408385031215612c5e57600080fd5b6000612c6c85828601612b65565b9250506020612c7d85828601612b65565b9150509250929050565b600080600060608486031215612c9c57600080fd5b6000612caa86828701612b65565b9350506020612cbb86828701612b65565b9250506040612ccc86828701612c0d565b9150509250925092565b60008060008060808587031215612cec57600080fd5b6000612cfa87828801612b65565b9450506020612d0b87828801612b65565b9350506040612d1c87828801612c0d565b925050606085013567ffffffffffffffff811115612d3957600080fd5b612d4587828801612be3565b91505092959194509250565b60008060408385031215612d6457600080fd5b6000612d7285828601612b65565b925050602083013567ffffffffffffffff811115612d8f57600080fd5b612d9b85828601612b7a565b9150509250929050565b60008060408385031215612db857600080fd5b6000612dc685828601612b65565b9250506020612dd785828601612ba4565b9150509250929050565b60008060408385031215612df457600080fd5b6000612e0285828601612b65565b9250506020612e1385828601612c0d565b9150509250929050565b600060208284031215612e2f57600080fd5b600082013567ffffffffffffffff811115612e4957600080fd5b612e5584828501612b7a565b91505092915050565b600060208284031215612e7057600080fd5b6000612e7e84828501612bb9565b91505092915050565b600060208284031215612e9957600080fd5b6000612ea784828501612bce565b91505092915050565b600060208284031215612ec257600080fd5b6000612ed084828501612c0d565b91505092915050565b60008060408385031215612eec57600080fd5b6000612efa85828601612c0d565b9250506020612f0b85828601612c0d565b9150509250929050565b612f1e8161376e565b82525050565b612f2d81613780565b82525050565b6000612f3e8261366c565b612f488185613682565b9350612f588185602086016137f1565b612f618161398c565b840191505092915050565b6000612f7782613677565b612f818185613693565b9350612f918185602086016137f1565b612f9a8161398c565b840191505092915050565b6000612fb082613677565b612fba81856136a4565b9350612fca8185602086016137f1565b80840191505092915050565b6000612fe3602d83613693565b9150612fee8261399d565b604082019050919050565b6000613006602b83613693565b9150613011826139ec565b604082019050919050565b6000613029603283613693565b915061303482613a3b565b604082019050919050565b600061304c602683613693565b915061305782613a8a565b604082019050919050565b600061306f602583613693565b915061307a82613ad9565b604082019050919050565b6000613092601c83613693565b915061309d82613b28565b602082019050919050565b60006130b5602483613693565b91506130c082613b51565b604082019050919050565b60006130d8601983613693565b91506130e382613ba0565b602082019050919050565b60006130fb602083613693565b915061310682613bc9565b602082019050919050565b600061311e602983613693565b915061312982613bf2565b604082019050919050565b6000613141601e83613693565b915061314c82613c41565b602082019050919050565b6000613164602083613693565b915061316f82613c6a565b602082019050919050565b6000613187602083613693565b915061319282613c93565b602082019050919050565b60006131aa601883613693565b91506131b582613cbc565b602082019050919050565b60006131cd602183613693565b91506131d882613ce5565b604082019050919050565b60006131f0603d83613693565b91506131fb82613d34565b604082019050919050565b6000613213601d83613693565b915061321e82613d83565b602082019050919050565b6000613236602c83613693565b915061324182613dac565b604082019050919050565b6000613259603583613693565b915061326482613dfb565b604082019050919050565b613278816137d8565b82525050565b600061328a8285612fa5565b91506132968284612fa5565b91508190509392505050565b60006020820190506132b76000830184612f15565b92915050565b60006080820190506132d26000830187612f15565b6132df6020830186612f15565b6132ec604083018561326f565b81810360608301526132fe8184612f33565b905095945050505050565b600060408201905061331e6000830185612f15565b61332b602083018461326f565b9392505050565b60006020820190506133476000830184612f24565b92915050565b600060208201905081810360008301526133678184612f6c565b905092915050565b6000602082019050818103600083015261338881612fd6565b9050919050565b600060208201905081810360008301526133a881612ff9565b9050919050565b600060208201905081810360008301526133c88161301c565b9050919050565b600060208201905081810360008301526133e88161303f565b9050919050565b6000602082019050818103600083015261340881613062565b9050919050565b6000602082019050818103600083015261342881613085565b9050919050565b60006020820190508181036000830152613448816130a8565b9050919050565b60006020820190508181036000830152613468816130cb565b9050919050565b60006020820190508181036000830152613488816130ee565b9050919050565b600060208201905081810360008301526134a881613111565b9050919050565b600060208201905081810360008301526134c881613134565b9050919050565b600060208201905081810360008301526134e881613157565b9050919050565b600060208201905081810360008301526135088161317a565b9050919050565b600060208201905081810360008301526135288161319d565b9050919050565b60006020820190508181036000830152613548816131c0565b9050919050565b60006020820190508181036000830152613568816131e3565b9050919050565b6000602082019050818103600083015261358881613206565b9050919050565b600060208201905081810360008301526135a881613229565b9050919050565b600060208201905081810360008301526135c88161324c565b9050919050565b60006020820190506135e4600083018461326f565b92915050565b60006135f4613605565b90506136008282613856565b919050565b6000604051905090565b600067ffffffffffffffff82111561362a5761362961395d565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156136565761365561395d565b5b61365f8261398c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006136ba826137d8565b91506136c5836137d8565b9250826136d5576136d46138ff565b5b828204905092915050565b60006136eb826137d8565b91506136f6836137d8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561372f5761372e6138d0565b5b828202905092915050565b6000613745826137d8565b9150613750836137d8565b925082821015613763576137626138d0565b5b828203905092915050565b6000613779826137b8565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561380f5780820151818401526020810190506137f4565b8381111561381e576000848401525b50505050565b6000600282049050600182168061383c57607f821691505b602082108114156138505761384f61392e565b5b50919050565b61385f8261398c565b810181811067ffffffffffffffff8211171561387e5761387d61395d565b5b80604052505050565b6000613892826137d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138c5576138c46138d0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f62617463682073697a65206d757374206265206c657373207468616e20313030600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f6964206d757374206265206c657373207468616e206d6178537570706c790000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b7f6d7573742068617665206d696e74657220726f6c6520746f206d696e74000000600082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b613e538161376e565b8114613e5e57600080fd5b50565b613e6a81613780565b8114613e7557600080fd5b50565b613e818161378c565b8114613e8c57600080fd5b50565b613e98816137d8565b8114613ea357600080fd5b5056fe697066733a2f2f626166796265696678776364787261737a69727269357478717272666277646d766a736635366165637171736b706267766a61337861346c3264652fa2646970667358221220364d78e0cf0bc02103c1183c754d9e6ddf2cf680558f27dc7aa44e726d439a5d64736f6c634300080100330000000000000000000000003dd5b4771f4a1d804114bdda8a7b2e0e7f256ffe