LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiogRElTQ0xBSU1FUg0KKiBUaGlzIHNvZnR3YXJlIGlzIHN1cHBsaWVkIGJ5IFJlbmVzYXMgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24gYW5kIGlzIG9ubHkNCiogaW50ZW5kZWQgZm9yIHVzZSB3aXRoIFJlbmVzYXMgcHJvZHVjdHMuIE5vIG90aGVyIHVzZXMgYXJlIGF1dGhvcml6ZWQuIFRoaXMNCiogc29mdHdhcmUgaXMgb3duZWQgYnkgUmVuZXNhcyBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbiBhbmQgaXMgcHJvdGVjdGVkIHVuZGVyDQoqIGFsbCBhcHBsaWNhYmxlIGxhd3MsIGluY2x1ZGluZyBjb3B5cmlnaHQgbGF3cy4NCiogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBSRU5FU0FTIE1BS0VTIE5PIFdBUlJBTlRJRVMgUkVHQVJESU5HDQoqIFRISVMgU09GVFdBUkUsIFdIRVRIRVIgRVhQUkVTUywgSU1QTElFRCBPUiBTVEFUVVRPUlksIElOQ0xVRElORyBCVVQgTk9UDQoqIExJTUlURUQgVE8gV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFDQoqIEFORCBOT04tSU5GUklOR0VNRU5ULiBBTEwgU1VDSCBXQVJSQU5USUVTIEFSRSBFWFBSRVNTTFkgRElTQ0xBSU1FRC4NCiogVE8gVEhFIE1BWElNVU0gRVhURU5UIFBFUk1JVFRFRCBOT1QgUFJPSElCSVRFRCBCWSBMQVcsIE5FSVRIRVIgUkVORVNBUw0KKiBFTEVDVFJPTklDUyBDT1JQT1JBVElPTiBOT1IgQU5ZIE9GIElUUyBBRkZJTElBVEVEIENPTVBBTklFUyBTSEFMTCBCRSBMSUFCTEUNCiogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBGT1INCiogQU5ZIFJFQVNPTiBSRUxBVEVEIFRPIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgUkVORVNBUyBPUiBJVFMgQUZGSUxJQVRFUyBIQVZFDQoqIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLg0KKiBSZW5lc2FzIHJlc2VydmVzIHRoZSByaWdodCwgd2l0aG91dCBub3RpY2UsIHRvIG1ha2UgY2hhbmdlcyB0byB0aGlzIHNvZnR3YXJlDQoqIGFuZCB0byBkaXNjb250aW51ZSB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoaXMgc29mdHdhcmUuIEJ5IHVzaW5nIHRoaXMgc29mdHdhcmUsDQoqIHlvdSBhZ3JlZSB0byB0aGUgYWRkaXRpb25hbCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3VuZCBieSBhY2Nlc3NpbmcgdGhlDQoqIGZvbGxvd2luZyBsaW5rOg0KKiBodHRwOi8vd3d3LnJlbmVzYXMuY29tL2Rpc2NsYWltZXINCioNCiogQ29weXJpZ2h0IChDKSAyMDEyIFJlbmVzYXMgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiogRmlsZSBOYW1lICAgICA6IHBycl9pb2RlZmluZS5oDQoqIFZlcnNpb24gICAgICAgOiAwLjAxDQoqIERldmljZShzKSAgICAgOiBBcmFnb24NCiogVG9vbC1DaGFpbiAgICA6IERTLTUgVmVyIDUuOA0KKiAgICAgICAgICAgICAgICAgQVJNIENvbXBsaWVyIA0KKiAgICAgICAgICAgICAgIDogDQoqIEgvVyBQbGF0Zm9ybSAgOiBBcmFnb24gQ1BVIEJvYXJkDQoqIERlc2NyaXB0aW9uICAgOiBBcmFnb24gU2FtcGxlIFByb2dyYW0gdmVjb3RyLnMNCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKiBIaXN0b3J5IDogREQuTU0uWVlZWSBWZXJzaW9uIERlc2NyaXB0aW9uDQoqICAgICAgICAgOiAyNy4wNy4yMDEyIDAuMDEJCY5RjWyOkZe/gUZBcmFnb25fUFJSMTIwNjE0LnhscwkhISFCU0lEgsyT4JdlgqqOZJdsj5GCyYLIgqIhISENCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQojaWZuZGVmIF9fUFJSX0lPREVGSU5FX0hfXw0KI2RlZmluZSBfX1BSUl9JT0RFRklORV9IX18NCg0KI2luY2x1ZGUgInR5cGVkZWZpbmUuaCINCg0Kc3RydWN0IHN0X3ByciB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3RydWN0IFBSUiAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNRFIgICAgICAgICAgKi8NCiAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQlRNRDozOyAgICAgICAgICAgICAvKiAgIEJUTUQgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEJUVEVTVDoxOyAgICAgICAgICAgLyogICBCVFRFU1QgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBTRUM6MTsgICAgICAgICAgICAgIC8qICAgU0VDICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFNFTEZFV1A6MTsgICAgICAgICAgLyogICBTRUxGRVdQICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkFNQk9PVDoxOyAgICAgICAgICAvKiAgIFJBTUJPT1QgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MjM7ICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBNRFI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJTSUQgICAgICAgICAqLw0KICAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBkdW1teTozMjsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovCS8qICEhIYNyg2KDZ4yIkuiOn5HmgUGS6ItggreC6SEhISAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBCU0lEOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVDQ1JSICAgICAgICAqLw0KICAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBFQ0NFTjoxOyAgICAgICAgICAgIC8qICAgRUNDRU4gICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDozMTsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEVDQ1JSOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIF9VQllURSB3azBbMjc2XTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRU1SbiAgICAgICAgKi8NCiAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgU0VNRjoxOyAgICAgICAgICAgICAvKiAgIFNFTUYgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MzE7ICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBTRU1SblszMl07ICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICBfVUJZVEUgd2sxWzk2XTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUk1QUiAgICAgICAgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEFYSTY0OjE7ICAgICAgICAgICAgLyogICBBWEk2NCAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQVhJMTI4OjE7ICAgICAgICAgICAvKiAgIEFYSTEyOCAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MzA7ICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBSTVBSOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFYSUJVU0NUTDAgICAqLw0KICAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBFVEhBV0NBQ0hFOjQ7ICAgICAgIC8qICAgRVRIQVdDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgRVRIQVJDQUNIRTo0OyAgICAgICAvKiAgIEVUSEFSQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEpDVUFXQ0FDSEU6NDsgICAgICAgLyogICBKQ1VBV0NBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBKQ1VBUkNBQ0hFOjQ7ICAgICAgIC8qICAgSkNVQVJDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSUJVU0NUTDA7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJQlVTQ1RMMSAgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUjIxQVdDQUNIRTo0OyAgICAgLyogICBJTVIyMUFXQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUjIxQVJDQUNIRTo0OyAgICAgLyogICBJTVIyMUFSQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUjIwQVdDQUNIRTo0OyAgICAgLyogICBJTVIyMEFXQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUjIwQVJDQUNIRTo0OyAgICAgLyogICBJTVIyMEFSQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBBWElCVVNDVEwxOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFYSUJVU0NUTDIgICAqLw0KICAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBDRVVBV0NBQ0hFOjQ7ICAgICAgIC8qICAgQ0VVQVdDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQ0VVQVJDQUNIRTo0OyAgICAgICAvKiAgIENFVUFSQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUkRBV0NBQ0hFOjQ7ICAgICAgLyogICBJTVJEQVdDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgSU1SREFSQ0FDSEU6NDsgICAgICAvKiAgIElNUkRBUkNBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQVhJQlVTQ1RMMjsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBWElCVVNDVEwzICAgKi8NCiAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQxQVdDQUNIRTo0OyAgICAvKiAgIFJHUDY0MUFXQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDY0MUFSQ0FDSEU6NDsgICAgLyogICBSR1A2NDFBUkNBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1A2NDBBV0NBQ0hFOjQ7ICAgIC8qICAgUkdQNjQwQVdDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQwQVJDQUNIRTo0OyAgICAvKiAgIFJHUDY0MEFSQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBBWElCVVNDVEwzOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFYSUJVU0NUTDQgICAqLw0KICAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1AxMjgwQVdDQUNIRTo0OyAgIC8qICAgUkdQMTI4MEFXQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDEyODBBUkNBQ0hFOjQ7ICAgLyogICBSR1AxMjgwQVJDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQyQVdDQUNIRTo0OyAgICAvKiAgIFJHUDY0MkFXQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDY0MkFSQ0FDSEU6NDsgICAgLyogICBSR1A2NDJBUkNBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQVhJQlVTQ1RMNDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBWElCVVNDVEw1ICAgKi8NCiAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgTUxCX0F4Q0FDSEU6MjsgICAgICAvKiAgIE1MQl9BeENBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE0OyAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1AxMjgxQVdDQUNIRTo0OyAgIC8qICAgUkdQMTI4MUFXQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDEyODFBUkNBQ0hFOjQ7ICAgLyogICBSR1AxMjgxQVJDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSUJVU0NUTDU7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJQlVTQ1RMNiAgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo4OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTAyQVJDQUNIRTo0OyAgICAvKiAgIFZEQzUwMkFSQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUwMUFXQ0FDSEU6NDsgICAgLyogICBWREM1MDFBV0NBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDFBUkNBQ0hFOjQ7ICAgIC8qICAgVkRDNTAxQVJDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSUJVU0NUTDY7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJQlVTQ1RMNyAgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo4OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTA0QVJDQUNIRTo0OyAgICAvKiAgIFZEQzUwNEFSQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUwM0FXQ0FDSEU6NDsgICAgLyogICBWREM1MDNBV0NBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDNBUkNBQ0hFOjQ7ICAgIC8qICAgVkRDNTAzQVJDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSUJVU0NUTDc7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJQlVTQ1RMOCAgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUxMUFXQ0FDSEU6NDsgICAgLyogICBWREM1MTFBV0NBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTFBUkNBQ0hFOjQ7ICAgIC8qICAgVkRDNTExQVJDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTA1QVdDQUNIRTo0OyAgICAvKiAgIFZEQzUwNUFXQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUwNUFSQ0FDSEU6NDsgICAgLyogICBWREM1MDVBUkNBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQVhJQlVTQ1RMODsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBWElCVVNDVEw5ICAgKi8NCiAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTEzQVdDQUNIRTo0OyAgICAvKiAgIFZEQzUxM0FXQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUxM0FSQ0FDSEU6NDsgICAgLyogICBWREM1MTNBUkNBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjEyOyAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTJBUkNBQ0hFOjQ7ICAgIC8qICAgVkRDNTEyQVJDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo0OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSUJVU0NUTDk7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJQlVTQ1RMMTAgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUxNUFXQ0FDSEU6NDsgICAgLyogICBWREM1MTVBV0NBQ0hFICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjQ7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTVBUkNBQ0hFOjQ7ICAgIC8qICAgVkRDNTE1QVJDQUNIRSAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxMjsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTE0QVJDQUNIRTo0OyAgICAvKiAgIFZEQzUxNEFSQ0FDSEUgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6NDsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBBWElCVVNDVEwxMDsgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFYSVJFUlJDVEwwICAqLw0KICAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6ODsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIENFVVJFUlJFTjoxOyAgICAgICAgLyogICBDRVVSRVJSRU4gICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBJTVJEUkVSUkVOOjE7ICAgICAgIC8qICAgSU1SRFJFUlJFTiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDozOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgSU1SMjFSRVJSRU46MTsgICAgICAvKiAgIElNUjIxUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBJTVIyMFJFUlJFTjoxOyAgICAgIC8qICAgSU1SMjBSRVJSRU4gKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MzsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEVUSFJFUlJFTjoxOyAgICAgICAgLyogICBFVEhSRVJSRU4gICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBKQ1VSRVJSRU46MTsgICAgICAgIC8qICAgSkNVUkVSUkVOICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDozOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSVJFUlJDVEwwOyAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJUkVSUkNUTDEgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxMjsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQMTI4MVJFUlJFTjoxOyAgICAvKiAgIFJHUDEyODFSRVJSRU4gKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MzsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDEyODBSRVJSRU46MTsgICAgLyogICBSR1AxMjgwUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1A2NDJSRVJSRU46MTsgICAgIC8qICAgUkdQNjQyUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1A2NDFSRVJSRU46MTsgICAgIC8qICAgUkdQNjQxUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1A2NDBSRVJSRU46MTsgICAgIC8qICAgUkdQNjQwUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQVhJUkVSUkNUTDE7ICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBWElSRVJSQ1RMMiAgKi8NCiAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjEyOyAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDVSRVJSRU46MTsgICAgIC8qICAgVkRDNTA1UkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDRSRVJSRU46MTsgICAgIC8qICAgVkRDNTA0UkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDNSRVJSRU46MTsgICAgIC8qICAgVkRDNTAzUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDJSRVJSRU46MTsgICAgIC8qICAgVkRDNTAyUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDFSRVJSRU46MTsgICAgIC8qICAgVkRDNTAxUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQVhJUkVSUkNUTDI7ICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBWElSRVJSQ1RMMyAgKi8NCiAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjEyOyAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTVSRVJSRU46MTsgICAgIC8qICAgVkRDNTE1UkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTRSRVJSRU46MTsgICAgIC8qICAgVkRDNTE0UkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTNSRVJSRU46MTsgICAgIC8qICAgVkRDNTEzUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTJSRVJSRU46MTsgICAgIC8qICAgVkRDNTEyUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTFSRVJSRU46MTsgICAgIC8qICAgVkRDNTExUkVSUkVOICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjM7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQVhJUkVSUkNUTDM7ICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBWElSRVJSU1QwICAgKi8NCiAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjg7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBDRVVCUkVTUDoyOyAgICAgICAgIC8qICAgQ0VVQlJFU1AgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIENFVVJSRVNQOjI7ICAgICAgICAgLyogICBDRVVSUkVTUCAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgSU1SREJSRVNQOjI7ICAgICAgICAvKiAgIElNUkRCUkVTUCAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBJTVJEUlJFU1A6MjsgICAgICAgIC8qICAgSU1SRFJSRVNQICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUjIxQlJFU1A6MjsgICAgICAgLyogICBJTVIyMUJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgSU1SMjFSUkVTUDoyOyAgICAgICAvKiAgIElNUjIxUlJFU1AgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBJTVIyMEJSRVNQOjI7ICAgICAgIC8qICAgSU1SMjBCUkVTUCAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUjIwUlJFU1A6MjsgICAgICAgLyogICBJTVIyMFJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgRVRIQlJFU1A6MjsgICAgICAgICAvKiAgIEVUSEJSRVNQICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBFVEhSUkVTUDoyOyAgICAgICAgIC8qICAgRVRIUlJFU1AgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEpDVUJSRVNQOjI7ICAgICAgICAgLyogICBKQ1VCUkVTUCAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgSkNVUlJFU1A6MjsgICAgICAgICAvKiAgIEpDVVJSRVNQICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQVhJUkVSUlNUMDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBWElSRVJSU1QxICAgKi8NCiAgICAgICBfVURXT1JEIExPTkc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBMb25nIEFjY2VzcyAqLw0KICAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIEJpdCBBY2Nlc3MgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjEyOyAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1AxMjgxQlJFU1A6MjsgICAgIC8qICAgUkdQMTI4MUJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQMTI4MVJSRVNQOjI7ICAgICAvKiAgIFJHUDEyODFSUkVTUCAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDEyODBCUkVTUDoyOyAgICAgLyogICBSR1AxMjgwQlJFU1AgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1AxMjgwUlJFU1A6MjsgICAgIC8qICAgUkdQMTI4MFJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQyQlJFU1A6MjsgICAgICAvKiAgIFJHUDY0MkJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQyUlJFU1A6MjsgICAgICAvKiAgIFJHUDY0MlJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQxQlJFU1A6MjsgICAgICAvKiAgIFJHUDY0MUJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQxUlJFU1A6MjsgICAgICAvKiAgIFJHUDY0MVJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQwQlJFU1A6MjsgICAgICAvKiAgIFJHUDY0MEJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQwUlJFU1A6MjsgICAgICAvKiAgIFJHUDY0MFJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSVJFUlJTVDE7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJUkVSUlNUMiAgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxMjsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTA1QlJFU1A6MjsgICAgICAvKiAgIFZEQzUwNUJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTA1UlJFU1A6MjsgICAgICAvKiAgIFZEQzUwNVJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTA0QlJFU1A6MjsgICAgICAvKiAgIFZEQzUwNEJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTA0UlJFU1A6MjsgICAgICAvKiAgIFZEQzUwNFJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTAzQlJFU1A6MjsgICAgICAvKiAgIFZEQzUwM0JSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTAzUlJFU1A6MjsgICAgICAvKiAgIFZEQzUwM1JSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTAyQlJFU1A6MjsgICAgICAvKiAgIFZEQzUwMkJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTAyUlJFU1A6MjsgICAgICAvKiAgIFZEQzUwMlJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTAxQlJFU1A6MjsgICAgICAvKiAgIFZEQzUwMUJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTAxUlJFU1A6MjsgICAgICAvKiAgIFZEQzUwMVJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSVJFUlJTVDI7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJUkVSUlNUMyAgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxMjsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTE1QlJFU1A6MjsgICAgICAvKiAgIFZEQzUxNUJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTE1UlJFU1A6MjsgICAgICAvKiAgIFZEQzUxNVJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTE0QlJFU1A6MjsgICAgICAvKiAgIFZEQzUxNEJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTE0UlJFU1A6MjsgICAgICAvKiAgIFZEQzUxNFJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTEzQlJFU1A6MjsgICAgICAvKiAgIFZEQzUxM0JSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTEzUlJFU1A6MjsgICAgICAvKiAgIFZEQzUxM1JSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTEyQlJFU1A6MjsgICAgICAvKiAgIFZEQzUxMkJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTEyUlJFU1A6MjsgICAgICAvKiAgIFZEQzUxMlJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTExQlJFU1A6MjsgICAgICAvKiAgIFZEQzUxMUJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTExUlJFU1A6MjsgICAgICAvKiAgIFZEQzUxMVJSRVNQICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSVJFUlJTVDM7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJUkVSUkNMUjAgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDo4OyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgQ0VVQlJFU1BDTFI6MTsgICAgICAvKiAgIENFVUJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBDRVVSUkVTUENMUjoxOyAgICAgIC8qICAgQ0VVUlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUkRCUkVTUENMUjoxOyAgICAgLyogICBJTVJEQlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUkRSUkVTUENMUjoxOyAgICAgLyogICBJTVJEUlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUjIxQlJFU1BDTFI6MTsgICAgLyogICBJTVIyMUJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBJTVIyMVJSRVNQQ0xSOjE7ICAgIC8qICAgSU1SMjFSUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgSU1SMjBCUkVTUENMUjoxOyAgICAvKiAgIElNUjIwQlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIElNUjIwUlJFU1BDTFI6MTsgICAgLyogICBJTVIyMFJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBFVEhCUkVTUENMUjoxOyAgICAgIC8qICAgRVRIQlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIEVUSFJSRVNQQ0xSOjE7ICAgICAgLyogICBFVEhSUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgSkNVQlJFU1BDTFI6MTsgICAgICAvKiAgIEpDVUJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBKQ1VSUkVTUENMUjoxOyAgICAgIC8qICAgSkNVUlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBBWElSRVJSQ0xSMDsgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFYSVJFUlJDTFIxICAqLw0KICAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTI7ICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDEyODFCUkVTUENMUjoxOyAgLyogICBSR1AxMjgxQlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDEyODFSUkVTUENMUjoxOyAgLyogICBSR1AxMjgxUlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDEyODBCUkVTUENMUjoxOyAgLyogICBSR1AxMjgwQlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDEyODBSUkVTUENMUjoxOyAgLyogICBSR1AxMjgwUlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDY0MkJSRVNQQ0xSOjE7ICAgLyogICBSR1A2NDJCUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQyUlJFU1BDTFI6MTsgICAvKiAgIFJHUDY0MlJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1A2NDFCUkVTUENMUjoxOyAgIC8qICAgUkdQNjQxQlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFJHUDY0MVJSRVNQQ0xSOjE7ICAgLyogICBSR1A2NDFSUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgUkdQNjQwQlJFU1BDTFI6MTsgICAvKiAgIFJHUDY0MEJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBSR1A2NDBSUkVTUENMUjoxOyAgIC8qICAgUkdQNjQwUlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICB9IEJJVDsgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgfSBBWElSRVJSQ0xSMTsgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFYSVJFUlJDTFIyICAqLw0KICAgICAgIF9VRFdPUkQgTE9ORzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIExvbmcgQWNjZXNzICovDQogICAgICAgICAgICAgc3RydWN0IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgQml0IEFjY2VzcyAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTI7ICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUwNUJSRVNQQ0xSOjE7ICAgLyogICBWREM1MDVCUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTA1UlJFU1BDTFI6MTsgICAvKiAgIFZEQzUwNVJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDRCUkVTUENMUjoxOyAgIC8qICAgVkRDNTA0QlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUwNFJSRVNQQ0xSOjE7ICAgLyogICBWREM1MDRSUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTAzQlJFU1BDTFI6MTsgICAvKiAgIFZEQzUwM0JSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDNSUkVTUENMUjoxOyAgIC8qICAgVkRDNTAzUlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUwMkJSRVNQQ0xSOjE7ICAgLyogICBWREM1MDJCUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTAyUlJFU1BDTFI6MTsgICAvKiAgIFZEQzUwMlJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MDFCUkVTUENMUjoxOyAgIC8qICAgVkRDNTAxQlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUwMVJSRVNQQ0xSOjE7ICAgLyogICBWREM1MDFSUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIH0gQklUOyAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICB9IEFYSVJFUlJDTFIyOyAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQVhJUkVSUkNMUjMgICovDQogICAgICAgX1VEV09SRCBMT05HOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgTG9uZyBBY2Nlc3MgKi8NCiAgICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBCaXQgQWNjZXNzICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxMjsgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTE1QlJFU1BDTFI6MTsgICAvKiAgIFZEQzUxNUJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTVSUkVTUENMUjoxOyAgIC8qICAgVkRDNTE1UlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUxNEJSRVNQQ0xSOjE7ICAgLyogICBWREM1MTRCUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTE0UlJFU1BDTFI6MTsgICAvKiAgIFZEQzUxNFJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTNCUkVTUENMUjoxOyAgIC8qICAgVkRDNTEzQlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUxM1JSRVNQQ0xSOjE7ICAgLyogICBWREM1MTNSUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTEyQlJFU1BDTFI6MTsgICAvKiAgIFZEQzUxMkJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCBWREM1MTJSUkVTUENMUjoxOyAgIC8qICAgVkRDNTEyUlJFU1BDTFIgKi8NCiAgICAgICAgICAgICAgICAgICAgX1VEV09SRCA6MTsgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIFZEQzUxMUJSRVNQQ0xSOjE7ICAgLyogICBWREM1MTFCUkVTUENMUiAqLw0KICAgICAgICAgICAgICAgICAgICBfVURXT1JEIDoxOyAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgVkRDNTExUlJFU1BDTFI6MTsgICAvKiAgIFZEQzUxMVJSRVNQQ0xSICovDQogICAgICAgICAgICAgICAgICAgIF9VRFdPUkQgOjE7ICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgICAgICAgICAgfSBCSVQ7ICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgIH0gQVhJUkVSUkNMUjM7ICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICovDQp9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgKi8NCg0KI2RlZmluZQlQUlIJCSgqKHZvbGF0aWxlIHN0cnVjdCBzdF9wcnIgKikweEZDRkUxODAwKSAgIC8qIFBSUiBBZGRyZXNzICovDQoNCg0KI2VuZGlmIC8qIF9fUFJSX0lPREVGSU5FX0hfXyAqLw0KDQovKiBFbmQgb2YgRmlsZSAqLw0K