LlxcXCBXUklURVIgNiBcXFwNClM6XEFQUFxTVzVcU1RBUkxBQi5MQVkNClI6XFNXNTVOXFRSRUlCRVJcUFMuR1BNICAgICAgDQoxMg0KMDAwMDANCjAwMDEwDQowMTM5NA0KMDAwMDENCjAwMDAxDQowMDAwMQ0KMDAwMDINCjAwMDAyDQowMDAwMA0KMDAwMDANCjAwMDAwDQowMDAwMA0KTWFya3VzIE1leWVyICAgDQpTcGV6aWZpa2F0aW9uICANClJzYy1Db21waWxlciAgICAgICAgICAgICAgICAgIA0KRmVobGVyYmVoYW5kbHVuZyAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICANCjANCjE2ODM2DQoxMTMzOA0KMA0KMA0KSkENCjMNCjc1DQowDQoyMA0KMA0KMA0KMA0KMA0KMA0KMA0KMA0KSkENCg0KDQoNCjkNCjIwDQo0DQpIZWx2ZXRpY2EgMTQgUHQNCkgxDQo5Nw0KMjANCjANCg0KSGVsdmV0aWNhIDEyIFB0DQpIMg0KNjUNCjIzDQowDQoNCkhlbHZldGlhIDEwIFB0DQpIMw0KNjUNCjIwDQowDQoNCkNvdXJpZXIgMTAgUHQNCkMxDQoxDQoyMw0KMA0KDQpIZWx2ZXRpY2EgMTQgUHQgRmV0dA0KRjENCjY1DQoyNw0KMg0KDQpIZWx2ZXRpY2EgMTIgUHQgRmV0dA0KRjINCjY1DQoyMw0KMg0KDQpIZWx2ZXRpYSAxMCBQdCBGZXR0DQpGMw0KNjUNCjIwDQowDQoNClRhc3Rlbg0KVDENCjEyOQ0KMjcNCjANCg0KR3J1bmRzY2hyaWZ0DQpHQQ0KOTcNCjIwDQowDQoNCkdydW5kIC0gQWJzYXR6bGF5b3V0IFYxLjUtTFNMUDgNCkdBDQowDQowDQowDQowDQo5DQo5Nw0KMjANCjANCjENCjANCjENCk5FSU4NCk5FSU4NCk5FSU4NCjI0MA0KMA0KMA0KMTYNCjANCjANCjANCjANCjANCjANCjANCk5FSU4NCg0KMTMNCjU3Ng0KMA0KMA0KMTE1Mg0KMA0KMA0KMTcyOA0KMA0KMA0KMjMwNA0KMA0KMA0KMjg4MA0KMA0KMA0KMzQ1Ng0KMA0KMA0KNDAzMg0KMA0KMA0KNDYwOA0KMA0KMA0KNTE4NA0KMA0KMA0KNTc2MA0KMA0KMA0KNjMzNg0KMA0KMA0KNjkxMg0KMA0KMA0KNzQ4OA0KMA0KMA0KR3J1bmRhYnNhdHpsYXlvdXQtcmVjaHRzYoFuZGlnDQpHUg0KMA0KMA0KMA0KMA0KOQ0KMzUNCjIwDQowDQoyDQowDQoxDQpORUlODQpORUlODQpORUlODQoyNDANCjANCjANCjE2DQowDQowDQowDQowDQowDQowDQowDQpORUlODQoNCjEzDQo1NzYNCjANCjANCjExNTINCjANCjANCjE3MjgNCjANCjANCjIzMDQNCjANCjANCjI4ODANCjANCjANCjM0NTYNCjANCjANCjQwMzINCjANCjANCjQ2MDgNCjANCjANCjUxODQNCjANCjANCjU3NjANCjANCjANCjYzMzYNCjANCjANCjY5MTINCjANCjANCjc0ODgNCjANCjANCkxpc3RpbmcNCkxJDQowDQowDQowDQowDQowDQoxDQoyMw0KMA0KMQ0KMA0KMQ0KTkVJTg0KTkVJTg0KTkVJTg0KMjQwDQowDQowDQoxNg0KMA0KMA0KMA0KMA0KMA0KMA0KMA0KTkVJTg0KDQoxMw0KNTc2DQowDQowDQoxMTUyDQowDQowDQoxNzI4DQowDQowDQoyMzA0DQowDQowDQoyODgwDQowDQowDQozNDU2DQowDQowDQo0MDMyDQowDQowDQo0NjA4DQowDQowDQo1MTg0DQowDQowDQo1NzYwDQowDQowDQo2MzM2DQowDQowDQo2OTEyDQowDQowDQo3NDg4DQowDQowDQqaYmVyc2NocmlmdA0KVTANCjANCjANCjANCjANCjUNCjM1DQoyOA0KMg0KMQ0KMA0KMQ0KTkVJTg0KTkVJTg0KSkENCjI0MA0KMA0KMA0KMTYNCjANCjANCjANCjANCjANCjANCjANCk5FSU4NCg0KMTMNCjU3Ng0KMA0KMA0KMTE1Mg0KMA0KMA0KMTcyOA0KMA0KMA0KMjMwNA0KMA0KMA0KMjg4MA0KMA0KMA0KMzQ1Ng0KMA0KMA0KNDAzMg0KMA0KMA0KNDYwOA0KMA0KMA0KNTE4NA0KMA0KMA0KNTc2MA0KMA0KMA0KNjMzNg0KMA0KMA0KNjkxMg0KMA0KMA0KNzQ4OA0KMA0KMA0KmmJlcnNjaHJpZnQgWC4NClUxDQowDQowDQowDQowDQo1DQozNQ0KMjgNCjINCjENCjANCjENCk5FSU4NCk5FSU4NCkpBDQoyNDANCjENCjANCjE2DQowDQowDQowDQowDQowDQowDQowDQpORUlODQoNCjEzDQo1NzYNCjANCjANCjExNTINCjANCjANCjE3MjgNCjANCjANCjIzMDQNCjANCjANCjI4ODANCjANCjANCjM0NTYNCjANCjANCjQwMzINCjANCjANCjQ2MDgNCjANCjANCjUxODQNCjANCjANCjU3NjANCjANCjANCjYzMzYNCjANCjANCjY5MTINCjANCjANCjc0ODgNCjANCjANCppiZXJzY2hyaWZ0IFguWC4NClUyDQowDQowDQowDQowDQo2DQozNQ0KMjQNCjINCjENCjANCjENCk5FSU4NCk5FSU4NCkpBDQoyNDANCjINCjANCjE2DQowDQowDQowDQowDQowDQowDQowDQpORUlODQoNCjEzDQo1NzYNCjANCjANCjExNTINCjANCjANCjE3MjgNCjANCjANCjIzMDQNCjANCjANCjI4ODANCjANCjANCjM0NTYNCjANCjANCjQwMzINCjANCjANCjQ2MDgNCjANCjANCjUxODQNCjANCjANCjU3NjANCjANCjANCjYzMzYNCjANCjANCjY5MTINCjANCjANCjc0ODgNCjANCjANCppiZXJzY2hyaWZ0IFguWC5YLg0KVTMNCjANCjANCjANCjANCjYNCjM1DQoyMA0KMg0KMQ0KMA0KMQ0KTkVJTg0KTkVJTg0KSkENCjI0MA0KMw0KMA0KMTYNCjANCjANCjANCjANCjANCjANCjANCk5FSU4NCg0KMTMNCjU3Ng0KMA0KMA0KMTE1Mg0KMA0KMA0KMTcyOA0KMA0KMA0KMjMwNA0KMA0KMA0KMjg4MA0KMA0KMA0KMzQ1Ng0KMA0KMA0KNDAzMg0KMA0KMA0KNDYwOA0KMA0KMA0KNTE4NA0KMA0KMA0KNTc2MA0KMA0KMA0KNjMzNg0KMA0KMA0KNjkxMg0KMA0KMA0KNzQ4OA0KMA0KMA0KmmJlcnNjaHJpZnQgWC5YLlguWC4NClU0DQowDQowDQowDQowDQo3DQozNQ0KMjANCjANCjENCjANCjENCk5FSU4NCk5FSU4NCk5FSU4NCjI0MA0KNA0KMA0KMTYNCjANCjANCjANCjANCjANCjANCjANCk5FSU4NCg0KMTMNCjU3Ng0KMA0KMA0KMTE1Mg0KMA0KMA0KMTcyOA0KMA0KMA0KMjMwNA0KMA0KMA0KMjg4MA0KMA0KMA0KMzQ1Ng0KMA0KMA0KNDAzMg0KMA0KMA0KNDYwOA0KMA0KMA0KNTE4NA0KMA0KMA0KNTc2MA0KMA0KMA0KNjMzNg0KMA0KMA0KNjkxMg0KMA0KMA0KNzQ4OA0KMA0KMA0KmmJlcnNjaHJpZnQgWC5YLlguWC5YLg0KVTUNCjANCjANCjANCjANCjcNCjM1DQoyMA0KMA0KMQ0KMA0KMQ0KTkVJTg0KTkVJTg0KTkVJTg0KMjQwDQo1DQowDQoxNg0KMA0KMA0KMA0KMA0KMA0KMA0KMA0KTkVJTg0KDQoxMw0KNTc2DQowDQowDQoxMTUyDQowDQowDQoxNzI4DQowDQowDQoyMzA0DQowDQowDQoyODgwDQowDQowDQozNDU2DQowDQowDQo0MDMyDQowDQowDQo0NjA4DQowDQowDQo1MTg0DQowDQowDQo1NzYwDQowDQowDQo2MzM2DQowDQowDQo2OTEyDQowDQowDQo3NDg4DQowDQowDQpFaW5ygWNrdW5nIDQgU3AgLyA0IFNwDQpFMQ0KNTc2DQo1NzYNCjANCjANCjkNCjM1DQoyMA0KMA0KMQ0KMA0KMQ0KTkVJTg0KTkVJTg0KTkVJTg0KMjQwDQowDQowDQoxNg0KMA0KMA0KMA0KMA0KMA0KMA0KMA0KTkVJTg0KDQoxMw0KNTc2DQowDQowDQoxMTUyDQowDQowDQoxNzI4DQowDQowDQoyMzA0DQowDQowDQoyODgwDQowDQowDQozNDU2DQowDQowDQo0MDMyDQowDQowDQo0NjA4DQowDQowDQo1MTg0DQowDQowDQo1NzYwDQowDQowDQo2MzM2DQowDQowDQo2OTEyDQowDQowDQo3NDg4DQowDQowDQpFaW5ygWNrdW5nIDggU3AgLyA4IFNwDQpFMg0KMTE1MA0KMTE1MA0KMA0KMA0KOQ0KMzUNCjIwDQowDQoxDQowDQoxDQpORUlODQpORUlODQpORUlODQoyNDANCjANCjANCjE2DQowDQowDQowDQowDQowDQowDQowDQpORUlODQoNCjEzDQo1NzYNCjANCjANCjExNTINCjANCjANCjE3MjgNCjANCjANCjIzMDQNCjANCjANCjI4ODANCjANCjANCjM0NTYNCjANCjANCjQwMzINCjANCjANCjQ2MDgNCjANCjANCjUxODQNCjANCjANCjU3NjANCjANCjANCjYzMzYNCjANCjANCjY5MTINCjANCjANCjc0ODgNCjANCjANCkVpbnKBY2t1bmcgMCBTcCAvIDQgU3ANCkUzDQowDQo1NjQNCjANCjANCjkNCjM1DQoyMA0KMA0KMQ0KMA0KMQ0KTkVJTg0KTkVJTg0KTkVJTg0KMjQwDQowDQowDQoxNg0KMA0KMA0KMA0KMA0KMA0KMA0KMA0KTkVJTg0KDQoxMw0KNTc2DQowDQowDQoxMTUyDQowDQowDQoxNzI4DQowDQowDQoyMzA0DQowDQowDQoyODgwDQowDQowDQozNDU2DQowDQowDQo0MDMyDQowDQowDQo0NjA4DQowDQowDQo1MTg0DQowDQowDQo1NzYwDQowDQowDQo2MzM2DQowDQowDQo2OTEyDQowDQowDQo3NDg4DQowDQowDQpFaW5ygWNrdW5nIDQgU3AgLyA4IFNwDQpFNA0KNTY0DQoxMTUwDQowDQowDQo5DQozNQ0KMjANCjANCjENCjANCjENCk5FSU4NCk5FSU4NCk5FSU4NCjI0MA0KMA0KMA0KMTYNCjANCjANCjANCjANCjANCjANCjANCk5FSU4NCg0KMTMNCjU3Ng0KMA0KMA0KMTE1Mg0KMA0KMA0KMTcyOA0KMA0KMA0KMjMwNA0KMA0KMA0KMjg4MA0KMA0KMA0KMzQ1Ng0KMA0KMA0KNDAzMg0KMA0KMA0KNDYwOA0KMA0KMA0KNTE4NA0KMA0KMA0KNTc2MA0KMA0KMA0KNjMzNg0KMA0KMA0KNjkxMg0KMA0KMA0KNzQ4OA0KMA0KMA0KRnVua3Rpb25zcGFyYW1ldGVyDQpGUA0KMA0KMjg5MQ0KMA0KMA0KOQ0KMzUNCjIwDQowDQoxDQowDQoxDQpORUlODQpORUlODQpORUlODQoyNDANCjANCjANCjE2DQowDQowDQowDQowDQowDQowDQowDQpORUlODQoNCjEzDQo1NzYNCjANCjANCjExNTINCjANCjANCjE3MjgNCjANCjANCjIzMDQNCjANCjANCjI4ODANCjANCjANCjM0NTYNCjANCjANCjQwMzINCjANCjANCjQ2MDgNCjANCjANCjUxODQNCjANCjANCjU3NjANCjANCjANCjYzMzYNCjANCjANCjY5MTINCjANCjANCjc0ODgNCjANCjANCkluaGFsdHN2ZXJ6ZWljaG5pcw0KSVYNCjANCjANCjANCjANCjkNCjM1DQoyMA0KMA0KMQ0KMA0KMQ0KTkVJTg0KTkVJTg0KTkVJTg0KMjQwDQowDQowDQoxNg0KMA0KMA0KMA0KMA0KMA0KMA0KMA0KTkVJTg0KDQoxDQo3NjUzDQowDQowDQpTdGljaHdvcnR2ZXJ6ZWljaG5pcw0KU1YNCjANCjANCjANCjANCjkNCjM1DQoyMA0KMA0KMQ0KMTQxDQoxDQpKQQ0KTkVJTg0KTkVJTg0KMjQwDQowDQowDQoxNg0KMA0KMA0KMA0KMA0KMA0KMA0KMA0KTkVJTg0KDQoxDQozNzQ0DQoxDQowDQpGZXR0c2NocmlmdCBlaW56ZWlsaWcNCkYxDQowDQowDQowDQowDQo3DQo2NQ0KMjANCjINCjENCjANCjENCk5FSU4NCk5FSU4NCk5FSU4NCjI0MA0KMA0KMA0KMTYNCjANCjANCjANCjANCjANCjANCjANCk5FSU4NCg0KMTMNCjU3Ng0KMA0KMA0KMTE1Mg0KMA0KMA0KMTcyOA0KMA0KMA0KMjMwNA0KMA0KMA0KMjg4MA0KMA0KMA0KMzQ1Ng0KMA0KMA0KNDAzMg0KMA0KMA0KNDYwOA0KMA0KMA0KNTE4NA0KMA0KMA0KNTc2MA0KMA0KMA0KNjMzNg0KMA0KMA0KNjkxMg0KMA0KMA0KNzQ4OA0KMA0KMA0KUHVua3RsaXN0ZQ0KUEwNCjANCjU2NA0KMA0KMA0KOQ0KMzUNCjIwDQowDQoxDQowDQoxDQpORUlODQpORUlODQpORUlODQoyNDANCjANCjANCjE2DQowDQowDQowDQowDQowDQowDQowDQpORUlODQoNCjEzDQo1NjYNCjANCjANCjExMzMNCjANCjANCjE3MjgNCjANCjANCjIzMDQNCjANCjANCjI4ODANCjANCjANCjM0NTYNCjANCjANCjQwMzINCjANCjANCjQ2MDgNCjANCjANCjUxODQNCjANCjANCjU3NjANCjANCjANCjYzMzYNCjANCjANCjY5MTINCjANCjANCjc0ODgNCjANCjANCkZ14XplaWxlDQpGWg0KMA0KMA0KMA0KMA0KMw0KOTcNCjIwDQoyDQoxDQowDQoxDQpORUlODQpORUlODQpORUlODQoyNDANCjANCjANCjE2DQowDQowDQowDQowDQowDQowDQowDQpORUlODQoNCjENCjcyMDANCjENCjANCktvcGZ6ZWlsZQ0KS1oNCjANCjANCjANCjANCjMNCjk3DQoyMA0KMg0KMQ0KMA0KMQ0KTkVJTg0KTkVJTg0KTkVJTg0KMjQwDQowDQowDQoxNg0KMA0KMA0KMA0KMA0KMA0KMA0KMA0KTkVJTg0KDQoxDQo3OTIwDQoxDQowDQpHcnVuZC1TZWl0ZW5sYXlvdXQNCkdTDQo1NjYNCjYwOQ0KMjQzNg0KNjc5DQoxNDE2DQoxNDE2DQowDQowDQoxDQpORUlODQowDQowDQoNChQDQWt6FANCZjMjX1BGQUQjI19URVhUTkFNRSMJBDYtI19TIy0NChQDQmYzxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KBw0KFANBZnoUA0JmMyREYXRlOiAgIDIyIEphbiAxOTkyIDEyOjQwOjM2ICAkCQQWJFJldmlzaW9uOiAgIDEuMSAgJA0KBw0KU3RpY2h3b3J0dmVyemVpY2huaXMNClNWDQo1NjYNCjYwOQ0KMjQzNw0KNjgwDQoxNDE2DQoxNDE2DQo1NjYNCjANCjINCk5FSU4NCjANCjANCg0KFANBbGkUA0JmM1N0aWNod29ydHZlcnplaWNobmlzDQoUA0FsaRQDQmYzxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExArExMTExMTEDQoHDQoUA0FsaQ8FAgQ2FANCZjMtICNfUyMgLRQDQjAwDQoHDQpHUyAtIG9obmUgRnXhemVpbGUNCktGDQo1NjYNCjYwOQ0KMjQzNw0KNjgwDQoxNDE2DQoxNDE2DQowDQowDQoxDQpORUlODQowDQowDQoNChQDQWxpFANCZjMjX0tBVEVHT1JJRSMgLyAjX1RIRU1BMiMNChQDQWxpFANCZjPExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQNCgcNChQDQWxpDQoHDQpJbmhhbHRzdmVyemVpY2huaXMNCklWDQo1NjYNCjYwOQ0KMjQzNw0KNjgwDQoxNDE2DQoxNDE2DQowDQowDQoxDQpORUlODQowDQowDQoNChQDQWxpFANCZjNJbmhhbHRzdmVyemVpY2huaXMNChQDQWxpFANCZjPExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTECsTExMTExMQNCgcNChQDQWxpDQoHDQoMDQoMDQoMDQowDQoMDQowDQoMDQoUA1NrZhQDQWdhDQoNCg0KDQoNCg0KDQoNCg0KDQoUA0F1MAkEAyNfS0FURUdPUklFIw0KFANBZ2ENCg0KFANBdTAJBAMjX1RIRU1BMiMNChQDQWdhDQoNChQDQXUwCQ0KFANBZ2ENCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNChQDQXUwCQQDI19BVVRPUiMNChQDQWdhDQoNChQDQXUwCQQDU1RBUiBESVZJU0lPTiAvIFNUQVIgTEFCIEhhbWJ1cmcNChQDQWdhDQoNChQDQXUwCQQDU3RhbmQ6ICREYXRlOiAgIDIyIEphbiAxOTkyIDEyOjQwOjM2ICAkDQoUA0FnYQ0KDQoUA1Nncw0KDBQDU2tmFANBZ2EUAlBBDQoNCg0KFANBdTAjX0tBVEVHT1JJRSMNChQDQWdhDQoNCg0KFANBZnBEb2t1bWVudGVubmFtZQkEEyNfVEhFTUEyIw0KFANBZ2ENChQDQWZwUHJvamVrdG5hbWUJBBYjX1RIRU1BMSMNChQDQWdhDQoUA0FmcFZlcnNpb25zbnVtbWVyCQQTJFJldmlzaW9uOiAgIDEuMSAgJA0KFANBZ2ENCg0KFANBZnBlcnN0ZWxsdAkEGTE2LiBTZXB0ZW1iZXIgMTk5MQ0KFANBZ2ENChQDQWZwZ2WEbmRlcnQJBBkkRGF0ZTogICAyMiBKYW4gMTk5MiAxMjo0MDozNiAgJA0KFANBZ2ENCg0KFANBZnBEYXRlaW5hbWUJBBgjX1BGQUQjI19URVhUTkFNRSMNChQDQWdhDQoNChQDQWZwQXV0b3IJBBwjX0FVVE9SIw0KFANBZ2ENChQDQWZwQmVhcmJlaXRlcgkEFyRBdXRob3I6ICAgTU0gICQNChQDQWdhDQoUA0FmcFF1YWxpdIR0c2tvbnRyb2xsZQkNChQDQWdhDQoNChQDQWZwU3RhdHVzCQQbWFgJBARpbiBBcmJlaXQNChQDQWZwCQQhX18JBARmZXJ0aWdnZXN0ZWxsdA0KFANBZnAJBCFfXwkEBGFiZ2Vub21tZW4NChQDQWZwCQQhX18JBARmcmVpZ2VnZWJlbg0KFANBZ2ENCg0KFANBZnBWZXJ0cmF1bGljaAkEFl9fIEphICAgWFggTmVpbg0KFANBZ2ENCg0KFANBZnBDb3B5cmlnaHQgKEMpCQQUU3RhciBEaXZpc2lvbiAxOTkwDQoUA0FnYQ0KDBQDU2dzFAJwYQ0KFANBdTEjFgExIEVpbmxlaXR1bmcNChQDQWdhDQpJbiBkaWVzZW0gRG9rdW1lbnQgd2VyZGVuIGRpZSBLbGFzc2VuIGJlc2NocmllYmVuLCBkaWUgZGllIEZlaGxlcmJlaGFuZGx1bmcgb3JnYW5pc2llcmVuLg0KDQoYAUhpbndlaXNlIHp1ciBJbXBsZW1lbnRhdGlvbhgBDQpCZXZvciBlaW5lIGRpZXNlciBLbGFzc2VuIGJlbnV0enQgd2lyZCwgbXXhIGRpZSBGdW5rdGlvbiBJbml0UnNjQ29tcGlsZXIgYXVmZ2VydWZlbiB3ZXJkZW4uDQoMFANBZ2EUAlBBDQoUA0F1MSMWATIgS2xhc3NlbmJlc2NocmVpYnVuZw0KFANBZ2ENChQDQWdhGAFFUlJUWVBFOhgBDQpEaWVzZSBLbGFzc2UgZW50aIRsdCBlaW5lIEZlaGxlci0gb2RlciBlaW5lIFdhcm51bmdzbnVtbWVyLg0KDQoYAVJzY0Vycm9yOhgBDQpEaWVzZSBLbGFzc2UggWJlcm5pbW10IGRpZSBBdXNnYWJlIGRlciBGZWhsZXJtZWxkdW5nZW4uDQoNChQDQXUxIxYBMyBHbG9iYWxlIEZ1bmt0aW9uZW4NChQDQWdhDQoYAVJzY0V4aXQoKToYAQ0KRGllIEZ1bmt0aW9uIG114SB2b24gamVkZW0gUHJvZ3JhbW0gaW1wbGVtZW50aWVydCB3ZXJkZW4sIGRpZSBLbGFzc2VuIGF1cyBkZW0gcnNjLVN5c3RlbSAKYmVudXR6ZW4uIERpZSBGdW5rdGlvbiBiZWRldXRldCwgZGHhIGRhcyBQcm9ncmFtbSBzb2ZvcnQgYmVlbmRldCB3ZXJkZW4gbXXhLCB3ZWlsIGVpbiAKc2NoZXJ3aWVnZW5kZXIgUHJvZ3JhbW1mZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0Lg0KDQoMFANTaXYUAlBBDQoNChQDQXUwSW5oYWx0c3ZlcnplaWNobmlzDQoUA0FnYQ0KFANBaXYxLiBFaW5sZWl0dW5nCQRNMw0KMi4gS2xhc3NlbmJlc2NocmVpYnVuZwkERDQNCjMuIEdsb2JhbGUgRnVua3Rpb25lbgkERTQNCkVSUlRZUEUJBFM2DQpSc2NFcnJvcgkEUjEwDQo6OlJzY0V4aXQoKQkETzE1DQpTdGljaHdvcnR2ZXJ6ZWljaG5pcwkERjE3DQoUA1Nncw0KFANBdTANChQDQWdhDQoMFANBdTAUAlBBAQJFUlJUWVBFAgENChQDQWdhDQoUA0FsaWNsYXNzIEVSUlRZUEUgew0KcHVibGljOg0KICAgIEVSUlRZUEUoKTsNCiAgICBFUlJUWVBFKCBVU0hPUlQgbkVyciApOw0KICAgIEVSUlRZUEUmIG9wZXJhdG9yID0gKCBjb25zdCBFUlJUWVBFICYgckVycm9yICk7DQogICAgb3BlcmF0b3IgIFVTSE9SVCgpOw0KICAgIEJPT0wgSXNFcnJvcigpOw0KICAgIEJPT0wgSXNPaygpOw0KICAgIEJPT0wgSXNXYXJuaW5nKCk7DQogICAgdm9pZCBDbGVhcigpOw0KfTsNCg0KI2RlZmluZSBFUlJfT0sNCiNkZWZpbmUgRVJSX0VSUk9SRU5EDQojZGVmaW5lIEVSUl9XQVJOSU5HDQojZGVmaW5lIEVSUl9XQVJOSU5HRU5EDQoUA0FnYQ0KFANBZjFCZXNjaHJlaWJ1bmcNChQDQWdhDQpFaW5lIEluc3RhbnogZGllc2VyIEtsYXNzZW4gZW50aIRsdCBlbnR3ZWRlciBlaW5lIEZlaGxlci0gb2RlciBlaW5lIFdhcm51bmdzbnVtbWVyIG9kZXIga2VpbmVzIHZvbiAKYmVpZGVuLiBadSBiZWFjaHRlbiBpc3QsIGRh4SBlaW5lIEZlaGxlcm51bW1lciBuaWNodCCBYmVyc2NocmllYmVuIHdlcmRlbiBrYW5uICghZGVyIGVyc3RlIEZlaGxlciBpc3QgCmludGVycmVzc2FudCApLg0KDQoUA0FmMUFubWVya3VuZ2VuDQoUA0FnYVdhcm51bmdlbiB3ZXJkZW4gdm9uIEZlaGxlcm51bW1lcm4ggWJlcnNjaHJpZWJlbiwgYWJlciBuaWNodCB2b24gV2FybnVuZ3NudW1tZXJuLg0KDQoUA0FmMVF1ZXJ2ZXJ3ZWlzZQ0KFANBZ2ENCktsYXNzZTogUnNjRXJyb3IuDQoNChQDQWYxQmVpc3BpZWwNChQDQWdhDQoUA0FsaS4uLi4uDQpFUlJUWVBFIGFFcnJvcjsNCg0KYUVycm9yID0gRVJSX09QRU5GSUxFOw0KYUVycm9yID0gRVJSX0VSUk9SOw0KaWYoIEVSUl9PUEVORklMRSA9PSBhRXJyb3IgKQ0KCQQDcHJpbnRmKCAiRmVobGVyOiBEYXRlaSBrYW5uIG5pY2h0IGeUZmZuZXQgd2VyZGVuIVxuIiApOw0KZWxzZQ0KCQQDcHJpbnRmKCAiRmVobGVyOiBBbGxnZW1laW5lciBGZWhsZXIhXG4iKTsNCi4uLi4uDQoUA0FnYQ0KFANBZ2FEaWUgQXVzZ2FiZSBoZWnhdDoNCkZlaGxlcjogRGF0ZWkga2FubiBuaWNodCBnZZRmZm5ldCB3ZXJkZW4hDQoNCgwUA0F1MBQCUEECRVJSVFlQRTo6RVJSVFlQRSgpAg0KFANBZ2ENChQDQWxpRVJSVFlQRTo6RVJSVFlQRSgpOw0KRVJSVFlQRTo6RVJSVFlQRSggVVNIT1JUIG5FcnJObyApOw0KRVJSVFlQRTo6RVJSVFlQRSggY29uc3QgRVJSVFlQRSAmIHJFcnJvciApOw0KFANBZ2ENChQDQWYxQmVzY2hyZWlidW5nDQoUA0FnYQ0KRGllIHdpcmQgZWluZSBJbnN0YW56IEVSUlRZUEUgZXJ6ZXVndC4NCg0KFANBZjFQYXJhbWV0ZXINChQDQWdhDQoUA0FmcG5FcnJObwkEG2RpZXNlIFphaGwgaXN0IGRlciBGZWhsZXIgZGVyIGluIGRpZSBJbnN0YW56IGVpbmdldHJhZ2VuIHdpcmQuDQpyRXJyb3IJBBthdXMgZGllc2VyIEluc3Rhbnogd2lyZCBkZXIgRmVobGVyIIFiZXJub21tZW4uDQoUA0FnYQ0KFANBZjFBbm1lcmt1bmdlbg0KFANBZ2ENCldpcmQgZGVyIGxlZXJlIEtvbnN0cnVrdG9yIHZlcndlbmRldCwgZGFubiBpc3QgZGllIEZlaGxlcm51bW1lciBFUlJfT0suIERpZSBNZXRob2RlIElzT2soKSAKbGllZmVydCBUUlVFLg0KDQoUA0FmMVF1ZXJ2ZXJ3ZWlzZQ0KFANBZ2ENCktsYXNzZW46ICBSc2NFcnJvcg0KTWV0aG9kZW46IElzRXJyb3IoKSwgSXNPaygpLCBDbGVhcigpLg0KDQoUA0FmMUJlaXNwaWVsDQoUA0FnYUhpZXIgd2lyZCBnZXplaWd0IHdpZSBGZWhsZXIgenVnZXdpZXNlbiB1bmQggWJlcnNjaHJpZWJlbiB3ZXJkZW4uDQoNChQDQWxpRVJSVFlQRSBhRXJyOw0KcHJpbnRmKCBhRXJyLklzT2soKSA/ICJUUlVFIiwgIkZBTFNFIiApOyAgICAgLy9BdXNnLjogVFJVRQ0KYUVyciA9IFdSTl9MT0NBTElEOyAvL1dhcm51bmcgenV3ZWlzZW4NCnByaW50ZiggYUVyci5Jc09rKCkgPyAiVFJVRSIsICJGQUxTRSIgKTsgICAgIC8vQXVzZy46IFRSVUUNCnByaW50ZiggYUVyci5Jc1dhcm5pbmcoKSA/ICJUUlVFIiwgIkZBTFNFIiApOy8vQXVzZy46IFRSVUUNCnByaW50ZiggYUVyci5Jc0Vycm9yKCkgPyAiVFJVRSIsICJGQUxTRSIgKTsgIC8vQXVzZy46IEZBTFNFDQphRXJyID0gRVJSX0VSUk9SOyAgIC8vRmVobGVyIHp1d2Vpc2VuDQpwcmludGYoIGFFcnIuSXNPaygpID8gIlRSVUUiLCAiRkFMU0UiICk7ICAgICAvL0F1c2cuOiBGQUxTRQ0KcHJpbnRmKCBhRXJyLklzV2FybmluZygpID8gIlRSVUUiLCAiRkFMU0UiICk7Ly9BdXNnLjogRkFMU0UNCnByaW50ZiggYUVyci5Jc0Vycm9yKCkgPyAiVFJVRSIsICJGQUxTRSIgKTsgIC8vQXVzZy46IFRSVUUNCmFFcnIgPSBFUlJfT0s7ICAgICAvL0ZlaGxlciBhdWZoZWJlbiBnZWh0IHNvIG5pY2h0DQpwcmludGYoIGFFcnIuSXNPaygpID8gIlRSVUUiLCAiRkFMU0UiICk7ICAgICAvL0F1c2cuOiBGQUxTRQ0KcHJpbnRmKCBhRXJyLklzRXJyb3IoKSA/ICJUUlVFIiwgIkZBTFNFIiApOyAgLy9BdXNnLjogVFJVRQ0KYUVycm9yLkNsZWFyKCk7ICAgIC8vRmVobGVyIGF1ZmhlYmVuDQpwcmludGYoIGFFcnIuSXNPaygpID8gIlRSVUUiLCAiRkFMU0UiICk7ICAgICAvL0F1c2cuOiBUUlVFDQpwcmludGYoIGFFcnIuSXNFcnJvcigpID8gIlRSVUUiLCAiRkFMU0UiICk7ICAvL0F1c2cuOiBGQUxTRQ0KFANBZ2ENChQDQWdhDwUDxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEDQoUA0FnYQ0KFANBdTACRVJSVFlQRTo6b3BlcmF0b3IgPSgpAg0KFANBZ2ENChQDQWxpRVJSVFlQRSAmIEVSUlRZUEU6Om9wZXJhdG9yICYoIGNvbnN0IEVSUlRZUEUgJiByRXJyICk7DQoUA0FnYQ0KFANBZjFCZXNjaHJlaWJ1bmcNChQDQWdhDQpEZXIgWnV3ZWlzdW5nc29wZXJhdG9yIGtvcGllcnQgZGVuIEZlaGxlciBvZGVyIGRpZSBXYXJudW5nIHZvbiByRXJyIGluIGRpZSBJbnN0YW56LiBFaW4ga29waWVyZW4gCmZpbmRldCBuaWNodCBzdGF0dCwgd2VubiBpbiBkZXIgSW5zdGFueiBzY2hvbiBlaW4gRmVobGVyIGVpbmdldHJhZ2VuIHd1cmRlLg0KDQoUA0FmMVBhcmFtZXRlcg0KFANBZ2ENCgwUA0FmcHJFcnIJBB1hdXMgZGllc2VyIEluc3Rhbnogd2lyZCBkZXIgRmVobGVyIIFiZXJub21tZW4uDQoUA0FnYQ0KFANBZjFSZXR1cm4tV2VydGUNChQDQWdhDQpEaWUgZWlnZW5lIEluc3Rhbnogd2lyZCB6dXKBY2tnZWxpZWZlcnQuDQoNChQDQWYxUXVlcnZlcndlaXNlDQoUA0FnYQ0KTWV0aG9kZW46IG9wZXJhdG9yIFVTSE9SVCgpLg0KDQoUA0FmMUJlaXNwaWVsDQoUA0FnYQ0KFANBbGlFUlJUWVBFIGFFcnJvciggRVJSX1JTQ1JBTkdFICk7DQpwcmludGYoIEVSUl9SU0NSQU5HRSA9PSBhRXJyb3IgPyAiVFJVRSIgOiAiRkFMU0UiICk7DQogICAgLy9BdXNnYWJlOiBUUlVFDQovL1ZlcnN1Y2ggZGVuIEZlaGxlciB6dSB1ZWJlcnNjaHJlaWJlbiAoZ2VodCBuaWNodCkNCmFFcnJvciA9IEVSUlRZUEUoIEVSUl9FUlJPUiApOw0KcHJpbnRmKCBFUlJfRVJST1IgPT0gYUVycm9yID8gIlRSVUUiIDogIkZBTFNFIiApOw0KICAgIC8vQXVzZ2FiZTogRkFMU0UNCmFFcnJvci5DbGVhcigpOw0KYUVycm9yID0gRVJSVFlQRSggRVJSX0VSUk9SICk7DQpwcmludGYoIEVSUl9FUlJPUiA9PSBhRXJyb3IgPyAiVFJVRSIgOiAiRkFMU0UiICk7DQogICAgLy9BdXNnYWJlOiBUUlVFDQoUA0FnYQ0KFANBZ2EPBQPExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQNChQDQWdhDQoUA0F1MAJFUlJUWVBFOjpvcGVyYXRvciBVU0hPUlQoKQINChQDQWdhDQoUA0FsaUVSUlRZUEU6Om9wZXJhdG9yIFVTSE9SVCgpOw0KFANBZ2ENChQDQWYxUmV0dXJuLVdlcnRlDQoUA0FnYQ0KRGllIEZlaGxlcm51bW1lciBpbiBkZXIgSW5zdGFueiB3aXJkIHp1coFja2dlbGllZmVydC4NCg0KFANBZjFRdWVydmVyd2Vpc2UNChQDQWdhDQpNZXRob2Rlbjogb3BlcmF0b3IgPSgpLg0KDQoUA0FnYQ8FA8TExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KFANBZ2ENChQDQXUwAkVSUlRZUEU6OklzRXJyb3IoKQINChQDQWdhDQoUA0FsaUJPT0wgRVJSVFlQRTo6SXNFcnJvcigpOw0KFANBZ2ENChQDQWYxQmVzY2hyZWlidW5nDQoUA0FnYQ0KRGllc2UgTWV0aG9kZSB6ZWlndCBhbiBvYiBpbiBkZXIgSW5zdGFueiBlaW5lIEZlaGxlcm51bW1lciBzdGVodCwgZGllIGVpbmVuIEZlaGxlciBhbnplaWd0Lg0KDQoUA0FmMVJldHVybi1XZXJ0ZQ0KFANBZ2ENChQDQWZwVFJVRQkEHXdlbm4gZGllIEZlaGxlcm51bW1lciBpbSBCZXJlaWNoIFswLCBFUlJfRVJST1JFTkRdIGxpZWd0Lg0KRkFMU0UJBBx3ZW5uIGRpZSBGZWhsZXJudW1tZXIgaW0gQmVyZWljaCBdRVJSX0VSUk9SRU5ELCAweEZGRkYgCgQiXSBsaWVndC4NChQDQWdhDQoUA0FmMVF1ZXJ2ZXJ3ZWlzZQ0KFANBZ2ENCk1ldGhvZGVuOiBJc09rKCksIElzV2FybmluZygpLCBDbGVhcigpLg0KDBQDQWdhDQoUA0FnYQ8FA8TExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KFANBZ2ENChQDQXUwAkVSUlRZUEU6OklzT2soKQINChQDQWdhDQoUA0FsaUJPT0wgRVJSVFlQRTo6SXNPaygpOw0KFANBZ2ENChQDQWYxQmVzY2hyZWlidW5nDQoUA0FnYQ0KRGllc2UgTWV0aG9kZSB6ZWlndCBhbiBvYiBpbiBkZXIgSW5zdGFueiBlaW5lIEZlaGxlcm51bW1lciBzdGVodCwgZGllIGtlaW5lbiBGZWhsZXIgYW56ZWlndC4NCg0KFANBZjFSZXR1cm4tV2VydGUNChQDQWZwDQpUUlVFCQQdd2VubiBkaWUgRmVobGVybnVtbWVyIGltIEJlcmVpY2ggXUVSUl9FUlJPUkVORCwgCgQiMHhGRkZGXSBsaWVndC4NCkZBTFNFCQQcd2VubiBkaWUgRmVobGVybnVtbWVyIGltIEJlcmVpY2ggWzAsIEVSUl9FUlJPUkVORF0gbGllZ3QuDQoUA0FnYQ0KFANBZjFRdWVydmVyd2Vpc2UNChQDQWdhDQpNZXRob2RlbjogSXNFcnJvcigpLCBJc1dhcm5pbmcoKSwgQ2xlYXIoKS4NChQDQWdhDQoUA0FnYQ8FA8TExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KFANBZ2ENChQDQXUwAkVSUlRZUEU6OklzV2FybmluZygpAg0KFANBZ2ENChQDQWxpQk9PTCBFUlJUWVBFOjpJc1dhcm5pbmcoKTsNChQDQWdhDQoUA0FmMUJlc2NocmVpYnVuZw0KFANBZ2ENCkRpZXNlIE1ldGhvZGUgemVpZ3QgYW4gb2IgaW4gZGVyIEluc3RhbnogZWluZSBGZWhsZXJudW1tZXIgc3RlaHQsIGRpZSBlaW5lbiBXYXJudW5nIGFuemVpZ3QuDQoNChQDQWYxUmV0dXJuLVdlcnRlDQoUA0FmcA0KVFJVRQkEHXdlbm4gZGllIEZlaGxlcm51bW1lciBpbSBCZXJlaWNoIFtFUlJfV0FSTklORywgCgQiRVJSX1dBUk5JTkdFTkRdIGxpZWd0Lg0KRkFMU0UJBBx3ZW5uIGRpZSBGZWhsZXJudW1tZXIgaW4gZWluZW0gYW5kZXJlbiBCZXJlaWNoIGxpZWd0Lg0KFANBZ2ENChQDQWYxUXVlcnZlcndlaXNlDQoUA0FnYQ0KTWV0aG9kZW46IElzT2soKSwgSXNFcnJvcigpLCBDbGVhcigpLg0KFANBZ2ENChQDQWdhDwUDxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEDQoNChQDQXUwAkVSUlRZUEU6OkNsZWFyKCkCDQoUA0FnYQ0KFANBbGl2b2lkIEVSUlRZUEU6OkNsZWFyKCk7DQoUA0FnYQ0KFANBZjFCZXNjaHJlaWJ1bmcNChQDQWdhDQpEaWUgRmVobGVybnVtbWVyIHdpcmQgYXVmIEVSUl9PSyBnZXNldHp0LiBEYXMgaGVp4XQgZGllIE1ldGhvZGUgSXNPaygpIGxpZWZlcnQgVFJVRSB6dXKBY2suDQoUA0FnYQ0KFANBZ2EPBQPExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQNCgwUA0F1MBQCUEEBAlJzY0Vycm9yAgENChQDQWdhDQoUA0FsaSNkZWZpbmUgRVJSX0VSUk9SICAgICAgICAgICAweDAxMDANCiNkZWZpbmUgRVJSX1VOS05PV05fTUVUSE9EICAweDAxMDENCiNkZWZpbmUgRVJSX09QRU5GSUxFICAgICAgICAweDAxMDINCiNkZWZpbmUgRVJSX05PQ0hBUiAgICAgICAgICAweDAxMDMNCiNkZWZpbmUgRVJSX05PUlNDSU5TVCAgICAgICAweDAxMDQNCiNkZWZpbmUgRVJSX1VTQUdFICAgICAgICAgICAweDAxMDUNCiNkZWZpbmUgRVJSX05PSU5QVVQgICAgICAgICAweDAxMDYNCiNkZWZpbmUgRVJSX1VOS05PV05TVyAgICAgICAweDAxMDcNCiNkZWZpbmUgRVJSX1JFRlRPREVFUCAgICAgICAweDAxMDgNCg0KI2RlZmluZSBFUlJfUlNDUkFOR0UgICAgICAgIDB4MDIwMA0KICAgICNkZWZpbmUgRVJSX1JTQ1JBTkdFX09VVERFRlNFVCAgKEVSUl9SU0NSQU5HRSArMSApDQojZGVmaW5lIEVSUl9SU0NFTlVNICAgICAgICAgMHgwMjEwDQojZGVmaW5lIEVSUl9SU0NGTEFHICAgICAgICAgMHgwMjIwDQojZGVmaW5lIEVSUl9SU0NDT05UICAgICAgICAgMHgwMjQwDQogICAgI2RlZmluZSBFUlJfQ09OVF9JTlZBTElEUE9TICAgICAoRVJSX1JTQ0NPTlQgKzEgKQ0KICAgICNkZWZpbmUgRVJSX0NPTlRfSU5WQUxJRFRZUEUgICAgKEVSUl9SU0NDT05UICsyICkNCiNkZWZpbmUgRVJSX1JTQ0NNUEVEICAgICAgICAweDAyNTANCiNkZWZpbmUgRVJSX1JTQ0lOU1QgICAgICAgICAweDAyNjANCiAgICAjZGVmaW5lIEVSUl9SU0NJTlNUX05PVkFSTkFNRSAgIChFUlJfUlNDSU5TVCArMSApDQogICAgI2RlZmluZSBFUlJfUlNDSU5TVF9SRVNFUlZFRE5BTUUgKEVSUl9SU0NJTlNUICsyICkNCiNkZWZpbmUgRVJSX0xFWCAgICAgICAgICAgICAweDAyNzANCiNkZWZpbmUgRVJSX1lBQ0MgICAgICAgICAgICAweDAyODANCiAgICAjZGVmaW5lIEVSUl9ET1VCTEVJRCAgICAgICAgICAgIChFUlJfWUFDQyAgICArMSApDQogICAgI2RlZmluZSBFUlJfRkFMU0VUWVBFICAgICAgICAgICAoRVJSX1lBQ0MgICAgKzIgKQ0KICAgICNkZWZpbmUgRVJSX05PVkFSSUFCTEVOQU1FICAgICAgKEVSUl9ZQUNDICAgICszICkNCiAgICAjZGVmaW5lIEVSUl9VU0hPUlRSQU5HRSAgICAgICAgIChFUlJfWUFDQyAgICArNCApDQogICAgI2RlZmluZSBFUlJfSURSQU5HRSAgICAgICAgICAgICAoRVJSX1lBQ0MgICAgKzUgKQ0KICAgICNkZWZpbmUgRVJSX05PQ09QWU9CSiAgICAgICAgICAgKEVSUl9ZQUNDICAgICs2ICkNCiAgICAjZGVmaW5lIEVSUl9SRUZOT1RBTExPV0VEICAgICAgIChFUlJfWUFDQyAgICArNyApDQogICAgI2RlZmluZSBFUlJfRE9VQkxFREVGSU5FICAgICAgICAoRVJSX1lBQ0MgICAgKzggKQ0KICAgICNkZWZpbmUgRVJSX0NPUFlOT1RBTExPV0VEICAgICAgKEVSUl9ZQUNDICAgICs5ICkNCiAgICAjZGVmaW5lIEVSUl9JREVYUEVDVEVEICAgICAgICAgIChFUlJfWUFDQyAgICArMTApDQogICAgI2RlZmluZSBFUlJfWkVST0RJVklTSU9OICAgICAgICAoRVJSX1lBQ0MgICAgKzExKQ0KICAgICNkZWZpbmUgRVJSX1BSQUdNQSAgICAgICAgICAgICAgKEVSUl9ZQUNDICAgICsxMikNCiAgICAjZGVmaW5lIEVSUl9ERUNMQVJFREVGSU5FICAgICAgIChFUlJfWUFDQyAgICArMTMpDQoNCiAgICAjZGVmaW5lIFdSTl9MT0NBTElEICAgICAgICAgICAgIChFUlJfV0FSTklORyArMSApDQogICAgI2RlZmluZSBXUk5fR0xPQkFMSUQgICAgICAgICAgICAoRVJSX1dBUk5JTkcgKzIgKQ0KICAgICNkZWZpbmUgV1JOX1NVQklOTUVNQkVSICAgICAgICAgKEVSUl9XQVJOSU5HICszICkNCiAgICAjZGVmaW5lIFdSTl9DT05UX05PSUQgICAgICAgICAgIChFUlJfV0FSTklORyArNCApDQogICAgI2RlZmluZSBXUk5fU1RSX1JFRk5PVEZPVU5EICAgICAoRVJSX1dBUk5JTkcgKzUgKQ0KICAgICNkZWZpbmUgV1JOX01HUl9SRUZOT1RGT1VORCAgICAgKEVSUl9XQVJOSU5HICs2ICkNCiAgICAjZGVmaW5lIFdSTl9DT05UX0RPVUJMRUlEICAgICAgIChFUlJfV0FSTklORyArNyApDQoNCmNsYXNzIFJzY0Vycm9yew0KcHVibGljOg0KICAgIFVTSE9SVCAgbkVycm9yczsvLyBBbnphaGwgZGVyIEZlaGxlcg0KICAgICAgICAgICAgICAgICAgICBSc2NFcnJvcigpOw0KICAgIHZvaWQgICAgICAgICAgICBTZXRMaXN0RmlsZSggRklMRSAqIGZMaXN0ICk7DQogICAgdmlydHVhbCB2b2lkICAgIFN0ZE91dCggY29uc3QgY2hhciAqICk7DQogICAgdmlydHVhbCB2b2lkICAgIExzdE91dCggY29uc3QgY2hhciAqICk7DQogICAgdmlydHVhbCB2b2lkICAgIEVycm9yKCBFUlJUWVBFIG5FcnJvciwgUnNjVG9wKiBwQ2xhc3MsDQogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSc2NJZCAmYUlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqIHBNZXNzYWdlID0gTlVMTCApOw0KICAgIHZpcnR1YWwgdm9pZCAgICBGYXRhbEVycm9yKCBFUlJUWVBFIG5FcnJvciwgY29uc3QgUnNjSWQNCiAgICAgICAgICAgICAgICAgICAgICAmYUlkLCBjb25zdCBjaGFyICogcE1lc3NhZ2UgPSBOVUxMICk7DQoMfTsNChQDQWdhDQoUA0FmMUJlc2NocmVpYnVuZw0KFANBZ2ENCkluIGRpZXNlciBLbGFzc2Ugd2VyZGVuIEZlaGxlcm1lbGR1bmdlbiBhdXNnZWdlYmVuLiBEaWUgRmVobGVybWVsZHVuZ2VuIHdlcmRlbiB6dXIgClN0YW5kYXJ0YXVzZ2FiZSBnZXNjaGlja3QgdW5kIGluIGVpbmUgTGlzdGluZy1EYXRlaSBnZXNjaHJpZWJlbi4gTmFjaCBBdWZydWYgZGVyIE1ldGhvZGUgCkZhdGFsRXJyb3IoKSB3aXJkIGRpZSBGdW5rdGlvbiBSc2NFeGl0KCkgYXVmZ2VydWZlbi4gRGllc2Ugc29sbHRlIGRhcyBQcm9ncmFtbSB0ZXJtaW5pZXJlbi4NCkRpZSBBdXNnYWJlIGRlciBGZWhsZXIgaGF0IGZvbGdlbmRlcyBGb3JtYXQ6DQoxLgkEA1plaWxlIGluIGRlciBkZXIgRmVobGVyIGF1ZmdldHJldGVuIGlzdC4NCjIuCQQDUG9zaXRpb24gYW4gZGVyIGRlciBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0Lg0KMy4JBANGZWhsZXJudW1tZXI6IEVycm9yICggVHlwLCBJZGVudGlmaWVyICk6IEZlaGxlcm1lbGR1bmcuDQoNChQDQWYxQXVzbmFobWVuDQoUA0FnYQ0KRGllIEF1c2dhYmUgd2lyZCB1bnRlciBNUy1XaW5kb3dzIG5pY2h0IG5hY2ggInN0ZG91dCIgdW1nZWxlaXRldCwgc29uZGVybiBzaWUgd2lyZCB1bnRlcmRygWNrdC4NCg0KFANBZjFBbm1lcmt1bmdlbg0KFANBZ2ENCkRpZSBLbGFzc2UgdGF1c2NodCBaZWlsZW5udW1tZXJuLCBaZWlsZW4gdXN3LiCBYmVyIGdsb2JhbGUgVmFyaWFibGUgbWl0IGRlbSBQYXJzZXIgYXVzLiBBdXMgZGllc2VtIApHcnVuZCBkYXJmIGRlciBQYXJzZXIgbmljaHQgcmVrdXJzaXYgYXVmZ2VydWZlbiB3ZXJkZW4uDQpXZW5uIGVpbiBGZWhsZXIgYW0gRW5kZSBlaW5lciBaZWlsZSBiZW1lcmt0IHdpcmQsIHdpcmQgaIR1ZmlnIGRpZSBaZWlsZSBuYWNoIGRlciBGZWhsZXJoYWZ0ZW4gCmFuZ2V6ZWlndC4NCg0KFANBZjFRdWVydmVyd2Vpc2UNChQDQWdhDQpLbGFzc2VuOiAgICBSc2NUeXBDb250LCBFUlJUWVBFLCBSc2NJZCwgUnNjRmlsZUluc3QsIGFsbGUgUnNjLi4uIEtsYXNzZW4uDQpGdW5rdGlvbmVuOiA6OlJzY0V4aXQoKSwgOjpwYXJzZXIoKSwgOjpNYWNyb1BhcnNlcigpLCA6OkluY2x1ZGVQYXJzZXIoKS4NCg0KFANBZjFCZWlzcGllbA0KFANBZ2FJbXBsZW1lbnRhdGlvbiBkZXIgU3RhbmRhcnRhdXNnYWJlIHVudGVyIE1TLVdpbmRvd3MuDQoNChQDQWxpLi4uLi4NCmNsYXNzIFdpbkVycm9yIDo6IHB1YmxpYyBSc2NFcnJvcnsNCgkEA0xpc3RCb3ggKiBwT3V0cHV0Ow0KcHVibGljOg0KCQQDV2luRXJyb3IoIExpc3RCb3ggKiBwTGlzdEJveCApIDogUnNjRXJyb3IoKXsNCgkEAwkEA3BPdXRwdXQgPSBwTGlzdEJveDsNCgkEA30NCgkEA3ZvaWQgU3RkT3V0KCBjb25zdCBjaGFyICogcFN0ciApew0KCQQDCQQDLy9mdWVyIGd1dGUgQXVzZ2FiZWZvcm1hdGllcnVuZyBtdWVzc3RlIGF1ZiBSRVRVUk4NCgkEAwkEAy8vZ2VhY2h0ZXQgd2VyZGVuDQoJBAMJBANwT3V0cHV0Lkluc2VydCggcFN0ciwgTElTVEJPWF9BUFBFTkQgKTsNCgkEA30NCn07DQouLi4uLg0KDBQDQWdhDwUDFAJwYcTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KDQoUA0F1MAJGZWhsZXJudW1tZXJuAg0KFANBZ2ENChQDQWZwRVJSX0VSUk9SCQQYQWxsZ2VtZWluZXIgRmVobGVyLCBkaWVzZXIgRmVobGVyIGthbm4gbmljaHQgbmljaHQgZ2VuYXVlciAKBCJzcGV6aWZpemllcnQgd2VyZGVuLg0KRVJSX1VOS05PV05fTUVUSE9ECQQPRWluZSB2aXJ0dWVsbGUgTWV0aG9kZSBkaWUgaW4gZGVyIGFiZ2VsZWl0ZXRlbiBLbGFzc2UgbmljaHQgCgQiaW1wbGVtZW50aWVydCBpc3QuIFNpZWhlIE1ldGhvZGVuIGRlciBLbGFzc2UgUnNjSW5zdDogU2V0U3RyaW5nKCksIAoEIlNldE51bWJlciAuLi4uIE1hbiBrYW5uIGRpZSBGZWhsZXJtZWxkdW5nIGFscyBUeXBmZWhsZXIgCgQiYmV0cmFjaHRlbiwgZGFzIGhlaeF0IGRpZXNlciBUeXAgZGFyZiBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuLg0KRVJSX09QRU5GSUxFCQQVRGllIERhdGVpIG1pdCBkZW0gYW5nZWdlYmVuZW4gTmFtZW4ga29ubnRlIG5pY2h0IGdllGZmbmV0IAoEIndlcmRlbi4NCkVSUl9OT0NIQVIJBBdFcyBrb25udGUga2VpbiBaZWljaGVuIGdlbmVyaWVydCB3ZXJkZW4uIFp1bSBCZWlzcGllbCBrYW5uIAoEIidcMzMzJyBuaWNodCBpbiBlaW4gWmVpY2hlbiB1bWdld2FuZGVsdCB3ZXJkZW4uDQpFUlJfTk9SU0NJTlNUCQQUSW50ZXJuZXIgRmVobGVyLCBlaW5lIE1ldGhvZGUgc29sbCBhdWYgZWluZSB1bmeBbHRpZ2UgSW5zdGFueiAKBCJhbmdld2VuZGV0IHdlcmRlbi4NCkVSUl9OT0lOUFVUCQQWRXMgd3VyZGUga2VpbmUgRWluZ2FiZWRhdGVpIGFuZ2VnZWJlbi4NCkVSUl9VU0FHRQkEGEVzIHdpcmQgZWluZSBLb21tYW5kb3plaWxlbmhpbGZlIGF1c2dlZ2ViZW4gKHJzYyAtaCkuDQpFUlJfVU5LTk9XTlNXCQQUSW4gZGVyIEtvbW1hbmRvemVpbGUgd3VyZGUgZWluIHVuYmVrYW5udGVyIFNjaGFsdGVyIAoEInZlcndlbmRldC4NCkVSUl9SRUZUT0RFRVAJBBRSZWZlcmVuemVuIHdlcmRlbiBudXIgYmlzIHp1IGVpbmVyIGJlc3RpbW10ZW4gVGllZmUgYXVmZ2VslHN0LiAKBCJEZXIgRmVobGVyIGJlZGV1dGV0LCBkYXMgUmVmZXJlbnplbiByZWt1cnNpdiBkZWZpbmllcnQgd3VyZGVuIAoEIm9kZXIgZGHhIHNpZSB6dSB0aWVmIHZlcnNjaGFjaHRlbHQgc2luZC4NCkVSUl9SU0NSQU5HRQkEFUluIGRlciBLbGFzc2UgUnNjUmFuZ2UgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uDQpFUlJfUlNDUkFOR0VfT1VUREVGU0VUCQQLSW4gZWluZSBSc2NSYW5nZS1JbnN0YW56IHd1cmRlIHZlcnN1Y2h0IGVpbmUgWmFobCBlaW56dXNldHplbiwgCgQiZGllIGF14WVyaGFsYiBkZXMgV2VydGViZXJlaWNocyBsaWVndC4NCkVSUl9SU0NFTlVNCQQWSW4gZGVyIEtsYXNzZSBSc2NFbnVtIGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuLg0KRVJSX1JTQ0ZMQUcJBBZJbiBkZXIgS2xhc3NlIFJzY0ZsYWcgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uDQpFUlJfUlNDQ09OVAkEFkluIGRlciBLbGFzc2UgUnNjQ29udCBpc3QgZWluIEZlaGxlciBhdWZnZXRyZXRlbi4NCkVSUl9DT05UX0lOVkFMSURQT1MJBA5JbiBlaW5lciBSc2NDb250LUluc3Rhbnogd3VyZGUgYXVmIGVpbmUgUG9zaXRpb24genVnZWdyaWZmZW4sIGF1ZiAKBCJkZXIgc2ljaCBrZWluZSBJbnN0YW56IGJlZnVuZGVuIGhhdC4NCkVSUl9DT05UX0lOVkFMSURUWVBFCQQNSW4gZWluZXIgUnNjQ29udC1JbnN0YW56IHd1cmRlIHZlcnN1Y2h0IGVpbmUgSW5zdGFueiBtaXQgCgQiZmFsc2NoZW0gVHlwIGVpbnp1c2V0emVuLg0KRVJSX1JTQ0lOU1QJBBZJbiBkZXIgS2xhc3NlIFJzY0luc3QgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uDQpFUlJfUlNDSU5TVF9OT1ZBUk5BTUUJBAxFaW5lIE1ldGhvZGUgZGVyIEtsYXNzZSBSc2NJbnN0IGRpZSBlaW5lbiBWYXJpYWJsZW5uYW1lbiBhbHMgCgQiUGFyYW1ldGVyIGJlbpR0aWd0IHN0ZWxsdCBmZXN0LCBkYXMgZGllc2VyIE5hbWUgaW4gZGVyIAoEImVudHNwcmVjaGVuZGVuIEluc3RhbnogbmljaHQgYWxzIFZhcmlhYmxlIGRlZmluaWVydCBpc3QuIFZlcm11dGxpY2ggCgQiaGF0IGRpZSBSc2NJbnN0LUluc3RhbnogZWluZW4gYW5kZXJlbiBUeXAgYWxzIGVyd2FydGV0Lg0KRVJSX1JTQ0lOU1RfUkVTRVJWRUROQU1FCQQQRoFyIGVpbiBNYWtybyBzb2xsIGVpbmUgTmFtZSB2ZXJ3ZW5kZXQgd2VyZGVuLCBkZXIgCgQic2Nob24gYmVsZWd0IGlzdC4gTmFtZW4ga5RubmVuIHp1bSBCZWlzcGllbCBzY2hvbiBmgXIgVmFyaWFibGVuIAoEInZlcmdlYmVuIHNlaW4uDQoUA0FnYQ0KRXMgZm9sZ2VuIEZlaGxlciBkaWUgYmVpbSBQYXJzZW4gYXVmdHJldGVuIGuUbm5lbi4NChQDQWZwRVJSX1lBQ0MJBBlBbGxnZW1laW5lciBGZWhsZXIgZGVyIGJlaW0gUGFyc2VuIGF1ZmdldHJldGVuIGlzdC4NCkVSUl9ET1VCTEVJRAkEFVp3ZWkgZ2xvYmFsZSBSZXNvdXJjZW4gaGFiZW4gZGVuIGdsZWljaGVuIElkZW50aWZpZXIuDQpFUlJfRkFMU0VUWVBFCQQURGVyIHZlcndlbmRldGUgVHlwIGlzdCBuaWNodCBlcmxhdWJ0Lg0KRVJSX05PVkFSSUFCTEVOQU1FCQQPRGllIFZhcmlhYmxlIGRhcmYgaGllciBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuLg0KRVJSX1VTSE9SVFJBTkdFCQQSRGVyIFphaGxlbndlcnQgaXN0IGF14WVyaGFsYiB2b24gWzAsIDB4RkZGRl0uDQpFUlJfSURSQU5HRQkEFkRlciBaYWhsZW53ZXJ0IGlzdCBhdeFlcmhhbGIgdm9uIFswLCAweDdGRkZdLg0KRVJSX05PQ09QWU9CSgkEFERlZmF1bHRyZXNvdXJjZSB3dXJkZSBuaWNodCBnZWZ1bmRlbi4gRWluZSBSZXNvdXJjZWluc3Rhbnoga2FubiAKBCJtaXQgZWluZXIgYW5kZXJlbiBpbml0aWFsaXNpZXJ0IHdlcmRlbi4gRGllc2UgYW5kZXIgSW5zdGFueiB3dXJkZSAKBCJuaWNodCBnZWZ1bmRlbi4NCkVSUl9SRUZOT1RBTExPV0VECQQQQW4gZGllc2VyIFN0ZWxsZSBpc3QgZGllIEFuZ2FiZSBlaW5lciBSZWZlcmVueiB2ZXJib3Rlbi4NCkVSUl9ET1VCTEVERUZJTkUJBBFFaW4gTWFrcm9uYW1lIHNvbGwgZG9wcGVsdCB2ZXJnZWJlbiB3ZXJkZW4uDQpFUlJfQ09QWU5PVEFMTE9XRUQJBA9EaWUgQW5nYWJlIGVpbmVyIERlZmF1bHRyZXNvdXJjZSBpc3QgdmVyYm90ZW4uDQpFUlJfSURFWFBFQ1RFRAkEE0VpbiBJZGVudGlmaWVyIG114SBBbmdlZ2ViZW4gd2VyZGVuLg0KRVJSX1pFUk9ESVZJU0lPTgkEEUVzIHNvbGx0ZSBkdXJjaCBOdWxsIGdldGVpbHQgd2VyZGVuLg0KRVJSX1BSQUdNQQkEF0JlaSBkZXIgQW5nYWJlIGVpbmVzIFByYWdtYXMgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uDQoMRVJSX0RFQ0xBUkVERUZJTkUJBBBFaW4gTWFrcm8gbWl0IGRpZXNlciBEZWtsYXJhdGlvbiBrYW5uIG5pY2h0IGVyc3RlbGx0IHdlcmRlbi4gCgQiRW50d2VkZXIgZWluZSByZWt1cnNpdmUgRGVmaW5pdGlvbiBvZGVyIGRpZSB2ZXJ3ZW5kZXRlbiBNYWtyb3MgCgQic2luZCBuaWNodCBpbiBkZXIgQWJohG5naWdrZWl0c2xpc3RlLg0KFANBZ2ENCkVzIGZvbGdlbiBXYXJudW5nZW4uDQoUA0FmcFdSTl9MT0NBTElECQQWUmVzb3VyY2VuIGRpZSBzaWNoIGlubmVyaGFsYiBlaW5lciBhbmRlcmVuIFJlc291cmNlIGJlZmluZGVuIAoEIihVbnRlcnJlc291cmNlbikgaGFiZW4gZWluIElkZW50aWZpZXIggWJlciAyNTUuDQpXUk5fR0xPQkFMSUQJBBVHbG9iYWxlIFJlc291cmNlbiBoYWJlbiBlaW5lbiBJZGVudGlmaWVyIHVudGVyIDI1Ni4NCldSTl9TVUJJTk1FTUJFUgkEEkRpZSBVbnRlcnJlc291cmNlIHdlcmRlbiBuaWNodCBiZWFjaHRldC4gRGFzIGJlZGV1dGV0LCBkYeEgYXVmIAoEImRpZXNlIFJlc291cmNlbiB6dXIgTGF1ZnplaXQgbmljaHQgenVnZWdyaWZmZW4gd2VyZGVuIGthbm4uDQpXUk5fQ09OVF9OT0lECQQURGllIFJlc291cmNlbiBoYWJlbiBlaW5lbiB1bmeBbHRpZ2VuIElkZW50aWZpZXIuIEF1ZiBkaWVzZSAKBCJSZXNvdXJjZW4ga2FubiB6dXIgTGF1ZnplaXQgbmljaHQgenVnZWdyaWZmZW4gd2VyZGVuLg0KV1JOX1NUUl9SRUZOT1RGT1VORAkEDkJlaW0gc2NocmVpYmVuIGVpbiByYy1EYXRlaSBrb25udGUgZWluZSBTdHJpbmdyZWZlcmVueiBuaWNodCAKBCJhdWZnZWyUc3Qgd2VyZGVuLg0KV1JOX01HUl9SRUZOT1RGT1VORAkEDkJlaW0gc2NocmVpYmVuIGVpbiByYy1EYXRlaSBrb25udGUgZWluZSBSZWZlcmVueiBuaWNodCBhdWZnZWyUc3QgCgQid2VyZGVuLiBXZW5uIGF1ZiBVbnRlcnJlc291cmNlbiB6dWdlZ3JpZmZlbiB3aXJkLCBkaWUgc2ljaCBpbiAKBCJkZXIgcmVmZXJlbnppZXJ0ZW4gUmVzb3VyY2UgYmVmaW5kZW4sIGRhbm4ga2FubiBlaW4gCgQiTGF1ZnplaXRmZWhsZXIgYXVmdHJldGVuLg0KV1JOX0NPTlRfRE9VQkxFSUQJBBBad2VpIFVudGVycmVzb3VyY2UgaGFiZW4gZGVuIGdsZWljaGVuIElkZW50aWZpZXIuDQoUA0FnYQ0KDwUDxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEDQoNChQDQXUwAlJzY0Vycm9yOjpSc2NFcnJvcigpAg0KFANBZ2ENChQDQWxpUnNjRXJyb3I6OlJzY0Vycm9yKCk7DQoUA0FnYQ0KFANBZjFCZXNjaHJlaWJ1bmcNChQDQWdhDQpFaW5lIEluc3Rhbnogd2lyZCBlcnpldWd0LiBEZXIgRmVobGVyeoRobGVyIHdpcmQgYXVmIE51bGwgZ2VzZXR6dC4NCg0KFANBZ2EPBQPExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQNChQDQWdhDQoUA0F1MAJSc2NFcnJvcjo6U2V0TGlzdEZpbGUoKQINChQDQWdhDQoUA0FsaXZvaWQgUnNjRXJyb3I6OlNldExpc3RGaWxlKCBGSUxFICogZkxzdEZpbGUgKTsNChQDQWdhDQoUA0FmMUJlc2NocmVpYnVuZw0KFANBZ2ENCkVzIHdpcmQgZWluZSBEYXRlaSBhbmdlZ2ViZW4gaW4gZGllIGRhcyBMaXN0aW5nIHVuZCBkaWUgRmVobGVybWVsZHVuZ2VuIGdlc2NocmllYmVuIHdlcmRlbi4gCmZMaXN0aW5nIGRhcmYgYXVjaCBOVUxMIHNlaW4sIGRhbm4gd2lyZCBrZWluIExpc3RpbmcgZXJ6ZXVndC4NCg0KFANBZjFQYXJhbWV0ZXINChQDQWdhDQoUA0FmcGZMc3RGaWxlCQQZRGllcyBpc3QgZGllIERhdGVpIGluIGRpZSBnZXNjaHJpZWJlbiB3aXJkLg0KFANBZ2ENChQDQWYxQW5tZXJrdW5nDQoUA0FnYQ0KRoFyIGRhcyCZZmZuZW4gdW5kIFNjaGxpZeFlbiBpc3QgZGVyIEF1ZnJ1ZmVyIHZlcmFudHdvcnRsaWNoLg0KDQoUA0FnYQ8FA8TExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KFANBZ2ENChQDQXUwAlJzY0Vycm9yOjpTdGRPdXQoKQINChQDQWdhDQoUA0FsaXZpcnR1YWwgdm9pZCBSc2NFcnJvcjo6U3RkT3V0KCBjb25zdCBjaGFyICogcFN0ciApOw0KFANBZ2ENCgwUA0FmMUJlc2NocmVpYnVuZw0KFANBZ2ENCkFsbGUgWmVpY2hlbmtldHRlbiB3ZXJkZW4gbmFjaCBzdGRvdXQgZ2VzY2hyaWViZW4uDQoNChQDQWYxUGFyYW1ldGVyDQoUA0FnYQ0KFANBZnBwU3RyCQQdRGllcyBpc3QgZGllIFplaWNoZW5rZXR0ZSBkaWUgZ2VzY2hyaWViZW4gd2lyZC4NChQDQWdhDQoUA0FmMUF1c25haG1lbg0KFANBZ2ENClVudGVyIE1TLVdpbmRvd3Mgd2lyZCBuaWNodCBuYWNoIHN0ZG91dCBhdXNnZWdlYmVuLg0KFANBZ2ENChQDQWdhDwUDxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEDQoUA0FnYQ0KFANBdTACUnNjRXJyb3I6OlN0ZExzdCgpAg0KFANBZ2ENChQDQWxpdmlydHVhbCB2b2lkIFJzY0Vycm9yOjpTdGRMc3QoIGNvbnN0IGNoYXIgKiBwU3RyICk7DQoUA0FnYQ0KFANBZjFCZXNjaHJlaWJ1bmcNChQDQWdhDQpBbGxlIFplaWNoZW5rZXR0ZW4gd2VyZGVuIGluIGRpZSBMaXN0aW5nLURhdGVpIGdlc2NocmllYmVuLg0KDQoUA0FmMVBhcmFtZXRlcg0KFANBZ2ENChQDQWZwcFN0cgkEHURpZXMgaXN0IGRpZSBaZWljaGVua2V0dGUgZGllIGdlc2NocmllYmVuIHdpcmQuDQoUA0FnYQ0KFANBZjFBdXNuYWhtZW4NChQDQWdhDQpXZW5uIGtlaW5lIExpc3RpbmctRGF0ZWkgYW5nZWdlYmVuIGlzdCBwYXNzaWVydCBuaWNodHMuDQoUA0FnYQ0KUXVlcnZlcndlaXNlDQoNCk1ldGhvZGVuOiBTZXRMaXN0RmlsZSgpLg0KDQoUA0FnYQ8FA8TExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExA0KDQoUA0F1MAJSc2NFcnJvcjo6RXJyb3IoKQINChQDQWdhDQoUA0FsaXZpcnR1YWwgdm9pZCBSc2NFcnJvcjo6RXJyb3IoIEVSUlRZUEUgYUVycm9yLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnNjVG9wICogcENsYXNzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUnNjSWQgJiBySWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICogcE1lc3MgPSBOVUxMICk7DQoUA0FnYQ0KFANBZjFCZXNjaHJlaWJ1bmcNChQDQWdhDQpNaXQgZGllc2VyIE1ldGhvZGUgd2VyZGVuIEZlaGxlci0gdW5kIFdhcm51bmdzbWVsZHVuZ2VuIGF1c2dlZ2ViZW4uIERpZSBNZXRob2RlIGJlbnV0enQgZGllIApNZXRob2RlbiBTdGRPdXQoKSB1bmQgTHN0T3V0KCkuIFdlbm4gZWluZSBGZWhsZXJtZWxkdW5nIHZvcmxpZWd0IHdpcmQgZGVyIEZlaGxlcnqEaGxlciB1bSBlaW5zIAplcmiUaHQuDQoNChQDQWYxUGFyYW1ldGVyDQoUA0FnYQ0KFANBZnBhRXJyb3IJBBtIaWVyaW4gaXN0IGRpZSBGZWhsZXJudW1tZXIgZ2VzcGVpY2hlcnQuIJpiZXIgZGllc2Ugd2lyZCBkZXIgCgQiRmVobGVydGV4dCBlcm1pdHRlbHQuDQpwQ2xhc3MJBBtEaWVzIGlzdCBkZXIgVHlwIGRlciBSZXNvdXJjZWluc3RhbnosIGluIGRlciBkZXIgRmVobGVyIGF1ZmdldHJldGVuIAoEImlzdC4gcENsYXNzIGRhcmYgTlVMTCBzZWluLg0KcklkCQQeRGllcyBpc3QgZGVyIElkZW50aWZpZXIgZGVyIFJlc291cmNlaW5zdGFueiwgaW4gZGVyIGRlciBGZWhsZXIgCgQiYXVmZ2V0cmV0ZW4gaXN0Lg0KDHBNZXNzCQQcRGllcyBpc3QgZGVyIEZlaGxlcnRleHQuIHBNZXNzIGRhcmYgTlVMTCBzZWluLg0KFANBZ2ENChQDQWdhDwUDxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEDQoUA0FnYQ0KFANBdTACUnNjRXJyb3I6OkZhdGFsRXJyb3IoKQINChQDQWdhDQoUA0FsaXZpcnR1YWwgdm9pZCBSc2NFcnJvcjo6RmF0YWxFcnJvciggRVJSVFlQRSBhRXJyb3IsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSc2NJZCAmIHJJZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBwTWVzcyA9IE5VTEwgKTsNChQDQWdhDQoUA0FmMUJlc2NocmVpYnVuZw0KFANBZ2ENCk1pdCBkaWVzZXIgTWV0aG9kZSB3ZXJkZW4gc2Nod2Vyd2llZ2VuZGUgRmVobGVyIGFuZ2V6ZWlndC4gRGllIE1ldGhvZGUgYmVudXR6dCBkaWUgTWV0aG9kZW4gClN0ZE91dCgpIHVuZCBMc3RPdXQoKS4gRGllIEZ1bmt0aW9uIFJzY0V4aXQoIDEgKSB3aXJkIGdlcnVmZW4sIGRpZXNlIHNvbGx0ZSBkYXMgUHJvZ3JhbW0gYmVlbmRlbi4NCg0KFANBZjFQYXJhbWV0ZXINChQDQWdhDQoUA0FmcGFFcnJvcgkEG0hpZXJpbiBpc3QgZGllIEZlaGxlcm51bW1lciBnZXNwZWljaGVydC4gmmJlciBkaWVzZSB3aXJkIGRlciAKBCJGZWhsZXJ0ZXh0IGVybWl0dGVsdC4NCnJJZAkEHkRpZXMgaXN0IGRlciBJZGVudGlmaWVyIGRlciBSZXNvdXJjZWluc3RhbnosIGluIGRlciBkZXIgRmVobGVyIAoEImF1ZmdldHJldGVuIGlzdC4NCnBNZXNzCQQcRGllcyBpc3QgZGVyIEZlaGxlcnRleHQuIHBNZXNzIGRhcmYgTlVMTCBzZWluLg0KFANBZ2ENChQDQWdhDwUDxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEDQoUA0FnYQ0KFANBdTABAjo6UnNjRXhpdCgpAQINChQDQWdhDQoUA0FsaXZvaWQgUnNjRXhpdCggVVNIT1JUIG5FeGl0ICk7DQoUA0FnYQ0KFANBZjFCZXNjaHJlaWJ1bmcNChQDQWdhDQpEaWVzZSBNZXRob2RlIHdpcmQgZ2VydWZlbiB3ZW5uIGVpbiBzY2h3ZXJ3aWVnZW5kZSBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0LiBEYXMgUHJvZ3JhbW0gbXXhIApiZWVuZGV0IHdlcmRlbi4NCkZlaGxlcm51bW1lcjoNChQDQWZwMQkEIERpZSBGdW5rdGlvbiBGYXRhbEVycm9yKCkgd3VyZGUgYXVmZ2VydWZlbi4NCjEwCQQfTWl0IGRlbiBjLUZ1bmt0aW9uZW4gYWxsb2MoKSBvZGVyIHJlYWxsb2MoKSB3aXJkIGtlaW4gU3BlaWNoZXIgCgQibWVociB6dXIgVmVyZoFndW5nIGdlc3RlbGx0Lg0KMTEJBB9IYXNodGFiZWxsZSBshHVmdCCBYmVyLg0KMTIJBB9FcyB3aXJkIG1laHIgYWxzIDY0ayAtMSBCeXRlIFNwZWljaGVyIGFuZ2Vmb3JkZXJ0Lg0KMTMJBB9JbiBlaW5lbSBpbnRlcm5lbiBaZWljaGVua2V0dGVuZmVsZCBpc3QgbmljaHQgZ2VudWcgUGxhdHouDQoxNAkEH0VzIHdpcmQgZWluIE9iamVrdCBnZWyUc2NodCBhdWYgZGFzIG5vY2ggbWluZGVzdGVucyBlaW5lIAoEIlJlZmVyZW56IGJlc3RlaHQuDQoxNgkEH01heGltYWwgMzIgVmFyaWFibGVuIHBybyBLbGFzc2UgZXJsYXVidC4NChQDQWdhDQoUA0FmMVBhcmFtZXRlcg0KFANBZ2ENChQDQWZwbkV4aXQJBBxNaXQgSGlsZmUgZGllc2VyIFphaGwgd2lyZCBkZXIgYXVmZ2V0cmV0ZW4gRmVobGVyIGV0d2FzIGdlbmF1ZXIgCgQiYmVzY2hyaWViZW4uDQoUA0FnYQ0KFANBZjFCZWlzcGllbA0KFANBZ2ENChQDQWxpdm9pZCBSc2NFeGl0KCBVU0hPUlQgbkV4aXQgKXsNCgkEA2lmKCBuRXhpdCApDQoJBAMJBANwcmludGYoICJQcm9ncmFtIGV4aXQgaXN0ICVkXG4iIG5FeGl0ICk7DQoJBANleGl0KCBuRXhpdCApOw0KfTsNChQDQWdhDQoMFANBZ2EPBQPExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQNChQDQWdhDQoNCg0KDBQDU3N2FANBZ2EUAlBBDQoUA0F1MAFTdGljaHdvcnR2ZXJ6ZWljaG5pcwENChQDQWdhDQoUA0Fzdjo6UnNjRXhpdCgpCQQeMTUNCkVSUlRZUEU6OkNsZWFyKCkJBBo5DQpFUlJUWVBFOjpFUlJUWVBFKCkJBBg3DQpFUlJUWVBFOjpJc0Vycm9yKCkJBBg4DQpFUlJUWVBFOjpJc09rKCkJBBs5DQpFUlJUWVBFOjpJc1dhcm5pbmcoKQkEFjkNCkVSUlRZUEU6Om9wZXJhdG9yID0oKQkEFTcNCkVSUlRZUEU6Om9wZXJhdG9yIFVTSE9SVCgpCQQQOA0KB0VSUlRZUEUJBCM2DQpGZWhsZXJudW1tZXJuCQQcMTINClJzY0Vycm9yCQQhMTANClJzY0Vycm9yOjpFcnJvcigpCQQYMTQNClJzY0Vycm9yOjpGYXRhbEVycm9yKCkJBBMxNQ0KUnNjRXJyb3I6OlJzY0Vycm9yKCkJBBUxMw0KUnNjRXJyb3I6OlNldExpc3RGaWxlKCkJBBIxMw0KUnNjRXJyb3I6OlN0ZExzdCgpCQQXMTQNClJzY0Vycm9yOjpTdGRPdXQoKQkEFzEzDQoNChQDQWdhDQoa