0x60806040523480156200001157600080fd5b50604051620043a3380380620043a38339818101604052810190620000379190620002e8565b818181600090816200004a9190620005b8565b5080600190816200005c9190620005b8565b5050506200007f620000736200008760201b60201c565b6200008f60201b60201c565b50506200069f565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001be8262000173565b810181811067ffffffffffffffff82111715620001e057620001df62000184565b5b80604052505050565b6000620001f562000155565b9050620002038282620001b3565b919050565b600067ffffffffffffffff82111562000226576200022562000184565b5b620002318262000173565b9050602081019050919050565b60005b838110156200025e57808201518184015260208101905062000241565b60008484015250505050565b6000620002816200027b8462000208565b620001e9565b905082815260208101848484011115620002a0576200029f6200016e565b5b620002ad8482856200023e565b509392505050565b600082601f830112620002cd57620002cc62000169565b5b8151620002df8482602086016200026a565b91505092915050565b600080604083850312156200030257620003016200015f565b5b600083015167ffffffffffffffff81111562000323576200032262000164565b5b6200033185828601620002b5565b925050602083015167ffffffffffffffff81111562000355576200035462000164565b5b6200036385828601620002b5565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003c057607f821691505b602082108103620003d657620003d562000378565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000401565b6200044c868362000401565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000499620004936200048d8462000464565b6200046e565b62000464565b9050919050565b6000819050919050565b620004b58362000478565b620004cd620004c482620004a0565b8484546200040e565b825550505050565b600090565b620004e4620004d5565b620004f1818484620004aa565b505050565b5b8181101562000519576200050d600082620004da565b600181019050620004f7565b5050565b601f82111562000568576200053281620003dc565b6200053d84620003f1565b810160208510156200054d578190505b620005656200055c85620003f1565b830182620004f6565b50505b505050565b600082821c905092915050565b60006200058d600019846008026200056d565b1980831691505092915050565b6000620005a883836200057a565b9150826002028217905092915050565b620005c3826200036d565b67ffffffffffffffff811115620005df57620005de62000184565b5b620005eb8254620003a7565b620005f88282856200051d565b600060209050601f8311600181146200063057600084156200061b578287015190505b6200062785826200059a565b86555062000697565b601f1984166200064086620003dc565b60005b828110156200066a5784890151825560018201915060208501945060208101905062000643565b868310156200068a578489015162000686601f8916826200057a565b8355505b6001600288020188555050505b505050505050565b613cf480620006af6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c8063715018a611610104578063b88d4fde116100a2578063e821ea4a11610071578063e821ea4a14610538578063e8a3d48514610569578063e985e9c514610587578063f2fde38b146105b7576101da565b8063b88d4fde146104b4578063c1f17520146104d0578063c87b56dd146104ec578063cd279c7c1461051c576101da565b80638da5cb5b116100de5780638da5cb5b14610440578063938e3d7b1461045e57806395d89b411461047a578063a22cb46514610498576101da565b8063715018a6146103fe57806383ca5a0514610408578063862440e214610424576101da565b806323b872dd1161017c578063469b41f11161014b578063469b41f1146103665780634d15e869146103825780636352211e1461039e57806370a08231146103ce576101da565b806323b872dd146102e15780632a55205a146102fd57806342842e0e1461032e57806342966c681461034a576101da565b8063095ea7b3116101b8578063095ea7b31461025d578063099db017146102795780630ba386b5146102a95780630e165cd0146102c5576101da565b806301ffc9a7146101df57806306fdde031461020f578063081812fc1461022d575b600080fd5b6101f960048036038101906101f491906126c6565b6105d3565b604051610206919061270e565b60405180910390f35b61021761064d565b60405161022491906127b9565b60405180910390f35b61024760048036038101906102429190612811565b6106df565b604051610254919061287f565b60405180910390f35b610277600480360381019061027291906128c6565b610725565b005b610293600480360381019061028e9190612906565b61083c565b6040516102a0919061270e565b60405180910390f35b6102c360048036038101906102be9190612aa4565b610892565b005b6102df60048036038101906102da9190612b13565b610938565b005b6102fb60048036038101906102f69190612b66565b6109f5565b005b61031760048036038101906103129190612bb9565b610a55565b604051610325929190612c08565b60405180910390f35b61034860048036038101906103439190612b66565b610ac9565b005b610364600480360381019061035f9190612811565b610ae9565b005b610380600480360381019061037b9190612906565b610b45565b005b61039c60048036038101906103979190612811565b610ba8565b005b6103b860048036038101906103b39190612811565b610bfc565b6040516103c5919061287f565b60405180910390f35b6103e860048036038101906103e39190612906565b610c82565b6040516103f59190612c31565b60405180910390f35b610406610d39565b005b610422600480360381019061041d9190612906565b610d4d565b005b61043e60048036038101906104399190612c4c565b610db0565b005b610448610dc6565b604051610455919061287f565b60405180910390f35b61047860048036038101906104739190612ca8565b610df0565b005b610482610e0b565b60405161048f91906127b9565b60405180910390f35b6104b260048036038101906104ad9190612d1d565b610e9d565b005b6104ce60048036038101906104c99190612dfe565b610eb3565b005b6104ea60048036038101906104e59190612e81565b610f15565b005b61050660048036038101906105019190612811565b610f83565b60405161051391906127b9565b60405180910390f35b61053660048036038101906105319190612f34565b610f95565b005b610552600480360381019061054d9190612811565b610ff6565b604051610560929190612fb2565b60405180910390f35b6105716110cc565b60405161057e91906127b9565b60405180910390f35b6105a1600480360381019061059c9190612fe2565b61115e565b6040516105ae919061270e565b60405180910390f35b6105d160048036038101906105cc9190612906565b6111f2565b005b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610646575061064582611275565b5b9050919050565b60606000805461065c90613051565b80601f016020809104026020016040519081016040528092919081815260200182805461068890613051565b80156106d55780601f106106aa576101008083540402835291602001916106d5565b820191906000526020600020905b8154815290600101906020018083116106b857829003601f168201915b5050505050905090565b60006106ea82611357565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061073082610bfc565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610797906130f4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107bf6113a2565b73ffffffffffffffffffffffffffffffffffffffff1614806107ee57506107ed816107e86113a2565b61115e565b5b61082d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082490613186565b60405180910390fd5b61083783836113aa565b505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61089b3361083c565b6108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d1906131f2565b60405180910390fd5b81600a600085815260200190815260200160002060000190816108fd91906133be565b5080600a600085815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff160217905550505050565b6109413361083c565b610980576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610977906131f2565b60405180910390fd5b80600b60008581526020019081526020016000206001018190555081600b600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b610a06610a006113a2565b82611463565b610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c90613502565b60405180910390fd5b610a508383836114f8565b505050565b600080600b600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661271084600b600088815260200190815260200160002060010154610ab49190613551565b610abe91906135c2565b915091509250929050565b610ae483838360405180602001604052806000815250610eb3565b505050565b610afa610af46113a2565b82611463565b610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3090613502565b60405180910390fd5b610b42816117f1565b50565b610b4d6117fd565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bb13361083c565b610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be7906131f2565b60405180910390fd5b610bf98161187b565b50565b600080610c08836118ce565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c709061363f565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce9906136d1565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d416117fd565b610d4b600061190b565b565b610d556117fd565b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610db86117fd565b610dc282826119d1565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610df86117fd565b8060099081610e0791906133be565b5050565b606060018054610e1a90613051565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4690613051565b8015610e935780601f10610e6857610100808354040283529160200191610e93565b820191906000526020600020905b815481529060010190602001808311610e7657829003601f168201915b5050505050905090565b610eaf610ea86113a2565b8383611a3e565b5050565b610ec4610ebe6113a2565b83611463565b610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa90613502565b60405180910390fd5b610f0f84848484611baa565b50505050565b610f1e3361083c565b610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f54906131f2565b60405180910390fd5b610f678585611c06565b610f7184846119d1565b610f7c848383610892565b5050505050565b6060610f8e82611c24565b9050919050565b610f9e3361083c565b610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd4906131f2565b60405180910390fd5b610fe78383611c06565b610ff182826119d1565b505050565b60606000600a6000848152602001908152602001600020600001600a600085815260200190815260200160002060010160009054906101000a900463ffffffff1681805461104390613051565b80601f016020809104026020016040519081016040528092919081815260200182805461106f90613051565b80156110bc5780601f10611091576101008083540402835291602001916110bc565b820191906000526020600020905b81548152906001019060200180831161109f57829003601f168201915b5050505050915091509150915091565b6060600980546110db90613051565b80601f016020809104026020016040519081016040528092919081815260200182805461110790613051565b80156111545780601f1061112957610100808354040283529160200191611154565b820191906000526020600020905b81548152906001019060200180831161113757829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111fa6117fd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611269576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126090613763565b60405180910390fd5b6112728161190b565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061134057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611350575061134f82611d36565b5b9050919050565b61136081611da0565b61139f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113969061363f565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661141d83610bfc565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061146f83610bfc565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114b157506114b0818561115e565b5b806114ef57508373ffffffffffffffffffffffffffffffffffffffff166114d7846106df565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661151882610bfc565b73ffffffffffffffffffffffffffffffffffffffff161461156e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611565906137f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490613887565b60405180910390fd5b6115ea8383836001611de1565b8273ffffffffffffffffffffffffffffffffffffffff1661160a82610bfc565b73ffffffffffffffffffffffffffffffffffffffff1614611660576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611657906137f5565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117ec8383836001611de7565b505050565b6117fa8161187b565b50565b6118056113a2565b73ffffffffffffffffffffffffffffffffffffffff16611823610dc6565b73ffffffffffffffffffffffffffffffffffffffff1614611879576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611870906138f3565b60405180910390fd5b565b61188481611ded565b60006006600083815260200190815260200160002080546118a490613051565b9050146118cb576006600082815260200190815260200160002060006118ca91906125fd565b5b50565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6119da82611da0565b611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1090613985565b60405180910390fd5b80600660008481526020019081526020016000209081611a3991906133be565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa3906139f1565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611b9d919061270e565b60405180910390a3505050565b611bb58484846114f8565b611bc184848484611f3b565b611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790613a83565b60405180910390fd5b50505050565b611c208282604051806020016040528060008152506120c2565b5050565b6060611c2f82611357565b6000600660008481526020019081526020016000208054611c4f90613051565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7b90613051565b8015611cc85780601f10611c9d57610100808354040283529160200191611cc8565b820191906000526020600020905b815481529060010190602001808311611cab57829003601f168201915b505050505090506000611cd961211d565b90506000815103611cee578192505050611d31565b600082511115611d23578082604051602001611d0b929190613adf565b60405160208183030381529060405292505050611d31565b611d2c84612134565b925050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611dc2836118ce565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b6000611df882610bfc565b9050611e08816000846001611de1565b611e1182610bfc565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f37816000846001611de7565b5050565b6000611f5c8473ffffffffffffffffffffffffffffffffffffffff1661219c565b156120b5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f856113a2565b8786866040518563ffffffff1660e01b8152600401611fa79493929190613b58565b6020604051808303816000875af1925050508015611fe357506040513d601f19601f82011682018060405250810190611fe09190613bb9565b60015b612065573d8060008114612013576040519150601f19603f3d011682016040523d82523d6000602084013e612018565b606091505b50600081510361205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205490613a83565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506120ba565b600190505b949350505050565b6120cc83836121bf565b6120d96000848484611f3b565b612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613a83565b60405180910390fd5b505050565b606060405180602001604052806000815250905090565b606061213f82611357565b600061214961211d565b905060008151116121695760405180602001604052806000815250612194565b80612173846123dc565b604051602001612184929190613adf565b6040516020818303038152906040525b915050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361222e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222590613c32565b60405180910390fd5b61223781611da0565b15612277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226e90613c9e565b60405180910390fd5b612285600083836001611de1565b61228e81611da0565b156122ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c590613c9e565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123d8600083836001611de7565b5050565b6060600060016123eb846124aa565b01905060008167ffffffffffffffff81111561240a5761240961293d565b5b6040519080825280601f01601f19166020018201604052801561243c5781602001600182028036833780820191505090505b509050600082602001820190505b60011561249f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161249357612492613593565b5b0494506000850361244a575b819350505050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612508577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816124fe576124fd613593565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612545576d04ee2d6d415b85acef8100000000838161253b5761253a613593565b5b0492506020810190505b662386f26fc10000831061257457662386f26fc10000838161256a57612569613593565b5b0492506010810190505b6305f5e100831061259d576305f5e100838161259357612592613593565b5b0492506008810190505b61271083106125c25761271083816125b8576125b7613593565b5b0492506004810190505b606483106125e557606483816125db576125da613593565b5b0492506002810190505b600a83106125f4576001810190505b80915050919050565b50805461260990613051565b6000825580601f1061261b575061263a565b601f016020900490600052602060002090810190612639919061263d565b5b50565b5b8082111561265657600081600090555060010161263e565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126a38161266e565b81146126ae57600080fd5b50565b6000813590506126c08161269a565b92915050565b6000602082840312156126dc576126db612664565b5b60006126ea848285016126b1565b91505092915050565b60008115159050919050565b612708816126f3565b82525050565b600060208201905061272360008301846126ff565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612763578082015181840152602081019050612748565b60008484015250505050565b6000601f19601f8301169050919050565b600061278b82612729565b6127958185612734565b93506127a5818560208601612745565b6127ae8161276f565b840191505092915050565b600060208201905081810360008301526127d38184612780565b905092915050565b6000819050919050565b6127ee816127db565b81146127f957600080fd5b50565b60008135905061280b816127e5565b92915050565b60006020828403121561282757612826612664565b5b6000612835848285016127fc565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128698261283e565b9050919050565b6128798161285e565b82525050565b60006020820190506128946000830184612870565b92915050565b6128a38161285e565b81146128ae57600080fd5b50565b6000813590506128c08161289a565b92915050565b600080604083850312156128dd576128dc612664565b5b60006128eb858286016128b1565b92505060206128fc858286016127fc565b9150509250929050565b60006020828403121561291c5761291b612664565b5b600061292a848285016128b1565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129758261276f565b810181811067ffffffffffffffff821117156129945761299361293d565b5b80604052505050565b60006129a761265a565b90506129b3828261296c565b919050565b600067ffffffffffffffff8211156129d3576129d261293d565b5b6129dc8261276f565b9050602081019050919050565b82818337600083830152505050565b6000612a0b612a06846129b8565b61299d565b905082815260208101848484011115612a2757612a26612938565b5b612a328482856129e9565b509392505050565b600082601f830112612a4f57612a4e612933565b5b8135612a5f8482602086016129f8565b91505092915050565b600063ffffffff82169050919050565b612a8181612a68565b8114612a8c57600080fd5b50565b600081359050612a9e81612a78565b92915050565b600080600060608486031215612abd57612abc612664565b5b6000612acb868287016127fc565b935050602084013567ffffffffffffffff811115612aec57612aeb612669565b5b612af886828701612a3a565b9250506040612b0986828701612a8f565b9150509250925092565b600080600060608486031215612b2c57612b2b612664565b5b6000612b3a868287016127fc565b9350506020612b4b868287016128b1565b9250506040612b5c868287016127fc565b9150509250925092565b600080600060608486031215612b7f57612b7e612664565b5b6000612b8d868287016128b1565b9350506020612b9e868287016128b1565b9250506040612baf868287016127fc565b9150509250925092565b60008060408385031215612bd057612bcf612664565b5b6000612bde858286016127fc565b9250506020612bef858286016127fc565b9150509250929050565b612c02816127db565b82525050565b6000604082019050612c1d6000830185612870565b612c2a6020830184612bf9565b9392505050565b6000602082019050612c466000830184612bf9565b92915050565b60008060408385031215612c6357612c62612664565b5b6000612c71858286016127fc565b925050602083013567ffffffffffffffff811115612c9257612c91612669565b5b612c9e85828601612a3a565b9150509250929050565b600060208284031215612cbe57612cbd612664565b5b600082013567ffffffffffffffff811115612cdc57612cdb612669565b5b612ce884828501612a3a565b91505092915050565b612cfa816126f3565b8114612d0557600080fd5b50565b600081359050612d1781612cf1565b92915050565b60008060408385031215612d3457612d33612664565b5b6000612d42858286016128b1565b9250506020612d5385828601612d08565b9150509250929050565b600067ffffffffffffffff821115612d7857612d7761293d565b5b612d818261276f565b9050602081019050919050565b6000612da1612d9c84612d5d565b61299d565b905082815260208101848484011115612dbd57612dbc612938565b5b612dc88482856129e9565b509392505050565b600082601f830112612de557612de4612933565b5b8135612df5848260208601612d8e565b91505092915050565b60008060008060808587031215612e1857612e17612664565b5b6000612e26878288016128b1565b9450506020612e37878288016128b1565b9350506040612e48878288016127fc565b925050606085013567ffffffffffffffff811115612e6957612e68612669565b5b612e7587828801612dd0565b91505092959194509250565b600080600080600060a08688031215612e9d57612e9c612664565b5b6000612eab888289016128b1565b9550506020612ebc888289016127fc565b945050604086013567ffffffffffffffff811115612edd57612edc612669565b5b612ee988828901612a3a565b935050606086013567ffffffffffffffff811115612f0a57612f09612669565b5b612f1688828901612a3a565b9250506080612f2788828901612a8f565b9150509295509295909350565b600080600060608486031215612f4d57612f4c612664565b5b6000612f5b868287016128b1565b9350506020612f6c868287016127fc565b925050604084013567ffffffffffffffff811115612f8d57612f8c612669565b5b612f9986828701612a3a565b9150509250925092565b612fac81612a68565b82525050565b60006040820190508181036000830152612fcc8185612780565b9050612fdb6020830184612fa3565b9392505050565b60008060408385031215612ff957612ff8612664565b5b6000613007858286016128b1565b9250506020613018858286016128b1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061306957607f821691505b60208210810361307c5761307b613022565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006130de602183612734565b91506130e982613082565b604082019050919050565b6000602082019050818103600083015261310d816130d1565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000613170603d83612734565b915061317b82613114565b604082019050919050565b6000602082019050818103600083015261319f81613163565b9050919050565b7f43616c6c6572206973206e6f742061206d696e74657200000000000000000000600082015250565b60006131dc601683612734565b91506131e7826131a6565b602082019050919050565b6000602082019050818103600083015261320b816131cf565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026132747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613237565b61327e8683613237565b95508019841693508086168417925050509392505050565b6000819050919050565b60006132bb6132b66132b1846127db565b613296565b6127db565b9050919050565b6000819050919050565b6132d5836132a0565b6132e96132e1826132c2565b848454613244565b825550505050565b600090565b6132fe6132f1565b6133098184846132cc565b505050565b5b8181101561332d576133226000826132f6565b60018101905061330f565b5050565b601f8211156133725761334381613212565b61334c84613227565b8101602085101561335b578190505b61336f61336785613227565b83018261330e565b50505b505050565b600082821c905092915050565b600061339560001984600802613377565b1980831691505092915050565b60006133ae8383613384565b9150826002028217905092915050565b6133c782612729565b67ffffffffffffffff8111156133e0576133df61293d565b5b6133ea8254613051565b6133f5828285613331565b600060209050601f8311600181146134285760008415613416578287015190505b61342085826133a2565b865550613488565b601f19841661343686613212565b60005b8281101561345e57848901518255600182019150602085019450602081019050613439565b8683101561347b5784890151613477601f891682613384565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006134ec602d83612734565b91506134f782613490565b604082019050919050565b6000602082019050818103600083015261351b816134df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061355c826127db565b9150613567836127db565b9250828202613575816127db565b9150828204841483151761358c5761358b613522565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135cd826127db565b91506135d8836127db565b9250826135e8576135e7613593565b5b828204905092915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000613629601883612734565b9150613634826135f3565b602082019050919050565b600060208201905081810360008301526136588161361c565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006136bb602983612734565b91506136c68261365f565b604082019050919050565b600060208201905081810360008301526136ea816136ae565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061374d602683612734565b9150613758826136f1565b604082019050919050565b6000602082019050818103600083015261377c81613740565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006137df602583612734565b91506137ea82613783565b604082019050919050565b6000602082019050818103600083015261380e816137d2565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613871602483612734565b915061387c82613815565b604082019050919050565b600060208201905081810360008301526138a081613864565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138dd602083612734565b91506138e8826138a7565b602082019050919050565b6000602082019050818103600083015261390c816138d0565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b600061396f602e83612734565b915061397a82613913565b604082019050919050565b6000602082019050818103600083015261399e81613962565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006139db601983612734565b91506139e6826139a5565b602082019050919050565b60006020820190508181036000830152613a0a816139ce565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613a6d603283612734565b9150613a7882613a11565b604082019050919050565b60006020820190508181036000830152613a9c81613a60565b9050919050565b600081905092915050565b6000613ab982612729565b613ac38185613aa3565b9350613ad3818560208601612745565b80840191505092915050565b6000613aeb8285613aae565b9150613af78284613aae565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000613b2a82613b03565b613b348185613b0e565b9350613b44818560208601612745565b613b4d8161276f565b840191505092915050565b6000608082019050613b6d6000830187612870565b613b7a6020830186612870565b613b876040830185612bf9565b8181036060830152613b998184613b1f565b905095945050505050565b600081519050613bb38161269a565b92915050565b600060208284031215613bcf57613bce612664565b5b6000613bdd84828501613ba4565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613c1c602083612734565b9150613c2782613be6565b602082019050919050565b60006020820190508181036000830152613c4b81613c0f565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613c88601c83612734565b9150613c9382613c52565b602082019050919050565b60006020820190508181036000830152613cb781613c7b565b905091905056fea26469706673582212209cf501f7baab9a5a4b74a1594dfd54d74364137780127cb022fc0a8b1c2f30a164736f6c634300081200330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000204162736f6c75746520576f6e64657220576f6d616e2028323032342d29202332000000000000000000000000000000000000000000000000000000000000000a4344433341575732343200000000000000000000000000000000000000000000