KioqIGdkX0dCLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjA6NTA6MDIgMjAwNQotLS0gZ2RfR0IuYWZmCUZyaSBTZXAgMzAgMTM6MDQ6MzAgMjAwNQoqKioqKioqKioqKioqKioKKioqIDE5ICoqKioKLS0tIDE5LDMxNyAtLS0tCiAgVFJZIGFoaW5yZGVzY2xnb3V0bWLgZi3yQUPsVPlCcEdTRE3oSVJQTE5FRulPJ1XzwNLM2UjJyAorIAorIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worIAorIE1JRFdPUkQJJy0KKyAKKyBNQVAgOQorIE1BUCBh4OHi4+TlCisgTUFQIGXo6errCisgTUFQIGns7e7vCisgTUFQIG/y8/T19gorIE1BUCB1+fr7/AorIE1BUCBu8QorIE1BUCBj5worIE1BUCB5//0KKyBNQVAgc98KKyAKKyAjIHNvdW5kc2xpa2UgbWFwcGluZyBmcm9tIEFzcGVsbAorICMgQXNwZWxsIHBob25ldGljcyBmb3IgSXJpc2gsIGJ5IEtldmluIFNjYW5uZWxsIDxzY2FubmVsbEBzbHUuZWR1PgorICMgQ29weXJpZ2h0IDIwMDIsIDIwMDMgS2V2aW4gUC4gU2Nhbm5lbGwsIGRpc3RyaWJ1dGVkIHVuZGVyIEdOVSBHUEwKKyAjIHZlcnNpb24gMi4wIG9yIHRoZSBWaW0gbGljZW5zZSAoYXR0cmlidXRpb24gYnkgS2V2aW4gU2Nhbm5lbGwsIEphbiAyMDEyKQorIAorIFNBTCBmb2xsb3d1cCAwICAgICAgICAgICAgICAgICAgICAjIGVsc2UgYnJlYWtzIFFVXiwgZS5nLgorIFNBTCBjb2xsYXBzZV9yZXN1bHQgMSAgICAgICAgICAgICAjIG5vIGRvdWJsZSBsZXR0ZXJzIGluIHJlc3VsdGluZyBzdHJpbmdzCisgCisgU0FMIEFOQkhBTk4tLS0tLSAgICAgICAgICpOKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgYW5iaGFubmE/IG9ubHksIHNlZSBOQkgtLQorIFNBTCBBTkJIQUlOLS0tLS0gICAgICAgICAqTiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGFuYmhhaW5uZT8gb25seSwgc2VlIE5CSC0tCisgU0FMIEFFUkdBLS0gICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIHNlZSBSRywgYWVyZ2Egb25seQorIFNBTCBBT1JHLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBzZWUgUkcsIFttc11hb3JnKiwgZXRjLgorIFNBTCBBRUlMRy0gICAgICAgICAgICAgICAqTCAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBHYWVpbGdlKiBvbmx5LCBzZWUgTEcgCisgU0FMIEFJTEJILS0gICAgICAgICAgICAgICpMKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgW2Jjc11haWxiaCogb25seSwgc2VlIExCSC0tCisgU0FMIEFMQkjBRC0tLS0gICAgICAgICAgICpMICAgICAgICMgZ2FsYmjhZCBvbmx5LCBuZXh0IGZldyBhcmUgZXhjZXB0aW9ucyB0byBBTEJICisgU0FMIEFMQkjBSUQtLS0tLSAgICAgICAgICpMICAgICAgICMgZ2FsYmjhaWQgb25seSAoY29pbm5lYWxiaOFpZO1zLCBldGMuIGI0KQorIFNBTCBBTEJIUi0tLSAgICAgICAgICAgICAqTCAgICAgICAjIHBvYmFsYmhyZWl0aCwgZ2FsYmhydWl0aCwgZXRjLiBleGNlcHQuIHRvIG5leHQKKyBTQUwgQUxCSC0tICAgICAgICAgICAgICAgKkwqICAgICAgIyBlcGVudGhldGljIHZvd2VsCisgU0FMIEFSQkjBRC0tLS0gICAgICAgICAgICpSICAgICAgICMgbfN0YXJiaOFkIG9ubHksIGV4Y2VwdGlvbiB0byBBUkJIIGVwZW50aC4KKyBTQUwgQVJCSMFJRC0tLS0tICAgICAgICAgKlIgICAgICAgIyBt83RhcmJo4WlkIG9ubHksICAgIiAgICAgICAiICAgIiAgICAiIAorIFNBTCBBUkJIVUlMLS0tLS0gICAgICAgICAqUiAgICAgICAjIGVwZW50aC4gZXhjZXB0aW9uLCBnYXJiaHVpbGxlIG9ubHksIGN1YXJiaCogYjQKKyBTQUwgQVJCSFVBLS0tLSAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGguIGV4Y2VwdGlvbiwgZWFkYXJiaHVhcyogb25seQorIFNBTCBBUkJISU4tLS0tICAgICAgICAgICAqUiogICAgICAjIGV4Y2VwdGlvbiB0byBuZXh0LCBtYXJiaGludGlubiogb25seQorIFNBTCBBUkJIKEVJKS0tLSAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uIHRvIG5leHQsICp0YXJiaGVhbGFjaCwgZXRjLgorIFNBTCBBUkJILS0gICAgICAgICAgICAgICAqUiogICAgICAjIGVwZW50aGV0aWMsIGdhcmJoLCBkZWFyYmgsIGV0Yy4gLSBbSVVdQVJCSCBiNAorIFNBTCBBVEhGSCjBydNBRUlPVSktLS0gICAqSCAgICAgICAjIGF0aGZoaWxsLHVhdGhmaGVpZGhtZWFjaCxldGMuLWV4Y2VwdGlvbiB0byBuZXh0CisgU0FMIEFUSChCQ0RGR0xNTlBSU1QpLSAgICogICAgICAgICMgYXRobGFzLCBtaW9uYXRocvosIGV0Yy4gLSBleGNlcHRpb24gdG8gVEgtPkgKKyBTQUwgQURIICAgICAgICAgICAgICAgICAgKiAgICAgICAgIyBibGFkaG0sIGZlYWRoYWluLCB0YWRoYWxsLCBhZGhtYWQsIC1hZGgkLCBldGMuCisgU0FMIEFHSEktLS0gICAgICAgICAgICAgICogICAgICAgICMgZXhjZXB0aW9uIHRvIEFHSCwgY29ycmFnaGlvYiBvbmx5CisgU0FMIEFHSExPSU4tLS0tLS0gICAgICAgICogICAgICAgICMgICAiICAgICAgICIgICIsIHBsZWljc2VhZ2hsLSBvbmx5IChub3QgYWdobG9pdCkKKyBTQUwgQUdIICAgICAgICAgICAgICAgICAgKiAgICAgICAgIyBzbGFnaGThbiwgdHJlYWdoZCwgc2FnaGFzLCBldGMuCisgU0FMIEFPTUgoRkxOU1QpLS0tICAgICAgICogICAgICAgICMgZmFvbWhbZnRdLSxjYW9taG4qLG5hb21oKiBvbmx5LCBPTUggZXhjZXB0aW9uCisgU0FMIEEgICAgICAgICAgICAgICAgICAgICoKKyBTQUwgwUlSRy0gICAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgc2VlIFJHLCB04WlyZyosIGV0Yy4KKyBTQUwgwURIVS0tLSAgICAgICAgICAgICAgKiAgICAgICAgIyBw4WRodWlsbGUgb25seSwgZXhjZXB0aW9uIHRvIG5leHQKKyBTQUwgwURIICAgICAgICAgICAgICAgICAgKiAgICAgICAgIyDhZGj6aWwsIC3hZGgkIG9ubHkKKyBTQUwgwVRIRkgtLSAgICAgICAgICAgICAgKkggICAgICAgIyB04XRoZmjpaXRobGVhbm4sIGdu4XRoZmgtIG9ubHkgZXhjZXB0aW9uIHRvIG5leHQKKyBTQUwgwVRIKEJDREZHTE1OUFJTVCktICAgKiAgICAgICAgIyBm4XRoc2PpYWwsIGdu4XRoKiwgYmzhdGhmaGxlYXNjLCBldGMuCisgU0FMIMEgICAgICAgICAgICAgICAgICAgICoKKyBTQUwgQkFOQkheJCAgICAgICAgICAgICAgQipOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0sIGJhbmJoLCBub3QgLWFy+m4KKyBTQUwgQkhBTkJIXiQgICAgICAgICAgICAgVipOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0KKyBTQUwgQkFJTkJIXiQgICAgICAgICAgICAgQipOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0sIGJhaW5iaCBvbmx5CisgU0FMIEJIQUlOQkheJCAgICAgICAgICAgIFYqTipWICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIE5CSC0tCisgU0FMIEJIICAgICAgICAgICAgICAgICAgIFYgICAgICAgICMgaW5jbHVkZXMgYmgkLCBlY2xpcHNpcyBvZiBGIHZpYSBjb2xsYXBzaW5nCisgU0FMIEIgICAgICAgICAgICAgICAgICAgIEIgICAgICAgICMgbm90ZSBlY2xpcHNpcyBvZiBQIHZpYSBjb2xsYXBzaW5nCisgU0FMIENIyUFERkHNLS0kICAgICAgICAgIEsqVFYgICAgICMgZXhjZXB0aW9uIHRvIEZBzSQsIChiculhZ3xkb3xt7SkKKyBTQUwgQ0hFQVJDSC0tICAgICAgICAgICAgSypSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBjaGVhcmNoYWlsbCBvbmx5CisgU0FMIENFQVJDSC0tICAgICAgICAgICAgIEsqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgZz9jZWFyY2hhaWxsIG9ubHkKKyBTQUwgQ0hPTkYgICAgICAgICAgICAgICAgSypOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLG5vIGRhc2g9PmhhbmRsZXMgRkFJP0RIJGV4Y2VwdHMKKyBTQUwgQ09ORiAgICAgICAgICAgICAgICAgSypOKlYgICAgIyAgICAgIiAgICAgICAgIiAgICAiICAgIiAgICAgIiAgICAgICAiICAgICAgICIKKyBTQUwgQ0FOQkgtLSAgICAgICAgICAgICAgSypOKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0sIGc/Y2FuYmjhcyogb25seQorIFNBTCBDSEFOQkgtLSAgICAgICAgICAgICBLKk4qICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBOQkgtLSwgY2hhbmJo4XMqIG9ubHkKKyBTQUwgQ09MQkhBLS0tICAgICAgICAgICAgSypMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTEJILS0sIGc/Y29sYmhh7T8gb25seQorIFNBTCBDSE9MQkhBLS0tICAgICAgICAgICBLKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMQkgtLSwgY2hvbGJoYe0/IG9ubHkKKyBTQUwgQ1VSRiAgICAgICAgICAgICAgICAgSypSViAgICAgIyBleGNlcHRpb24gdG8gRsEkLCBnP2N1cmbhKG5uYSkgb25seQorIFNBTCBDSFVSRiAgICAgICAgICAgICAgICBLKlJWICAgICAjIGV4Y2VwdGlvbiB0byBGwSQsIGNodXJm4ShubmEpIG9ubHkKKyBTQUwgQ0ggICAgICAgICAgICAgICAgICAgSyAgICAgICAgIyBPSworIFNBTCBDICAgICAgICAgICAgICAgICAgICBLCisgU0FMIERIT1JDSC0tICAgICAgICAgICAgIEsqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgZG9yY2hhIHJvb3Qgb25seQorIFNBTCBET1JDSC0tICAgICAgICAgICAgICBUKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGRvcmNoYSByb290IG9ubHkKKyBTQUwgREhFQVJGICAgICAgICAgICAgICAgWSpSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLGluaXQgb25seSwgbm8gZGFzaD0+RkHNIGV4Y2VwdAorIFNBTCBERUFSRiAgICAgICAgICAgICAgICBUKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsaW5pdGlhbCBvbmx5IChuZC0gZG9uZSBiNCkKKyBTQUwgREhFSVJGLSAgICAgICAgICAgICAgWSpSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBpbml0aWFsIG9ubHkKKyBTQUwgREVJUkYtICAgICAgICAgICAgICAgVCpSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCAobGVhcyk/ZGVpcmYqIG9ubHkKKyBTQUwgREhPSUwoQkYpLSAgICAgICAgICAgSypMKiAgICAgIyBlcGVudGhldGljLHNlZSBMQkgtLSxpbml0aWFsIG9ubHksZGhvaWwoZmV8YmgpKgorIFNBTCBET0lMKEJGKS0gICAgICAgICAgICBUKkwqICAgICAjIGVwZW50aGV0aWMsIHNlZSBMQkgtLSwgIiAgICAgICIgIChuZC0gZG9uZSBiNCkKKyBTQUwgREhJRkVBUiAgICAgICAgICAgICAgWSpWKlIgICAgIyBleGNlcHRpb24gdG8gRkVBUiQsIF5kaGlmZWFyJCBvbmx5CisgU0FMIERJRkVBUiAgICAgICAgICAgICAgIFQqVipSICAgICMgZXhjZXB0aW9uIHRvIEZFQVIkLCBeZGlmZWFyJCBvbmx5IChuZC0gYjQpCisgU0FMIERIJCAgICAgICAgICAgICAgICAgIF8gICAgICAgICMgW2HhdV1kaCttb3N0IFtpb11kaCBkb25lIGI0LFtl6e3z+l1kaCBkb25lIGhlcmUKKyBTQUwgREgoQcFP01XaKS0gICAgICAgICAgSyAgICAgICAgIyBhdGhkaPpjaGFzLCBide1kaG9ubiwgY29taGRo4WlsLCBldGMuCisgU0FMIERIKEXJSc0pLSAgICAgICAgICAgIFkgICAgICAgICMgYXRoZGjpYW4sIGNhb3JkaGVhcmcsIGNpbmVkaGVpZ2hpbHQsIGV0Yy4KKyBTQUwgREhMKEFV2iktLSAgICAgICAgICAgSyAgICAgICAgIyBjb21oZGhs+nRoYWlnaCwgXmRobC0gIG9ubHkKKyBTQUwgREhMKEVJzSktLSAgICAgICAgICAgWSAgICAgICAgIyAobe18bmVhbWgpZGhsKGlzdGVhbnxlYXRofO10aGn6KSwgXmRobCAgb25seQorIFNBTCBESFIoQcFP01XaKS0tICAgICAgICBLICAgICAgICAjICpkaHJvaW0sbWFyYmhkaHJhKiwqZGhyW+F1XW1hLCBeZGhyIG9ubHkKKyBTQUwgREhSKMlFSc0pLS0gICAgICAgICAgWSAgICAgICAgIyAqZGhyZWFjaCxmZWlyZGhyaXMsKmRoculhY2h0LCpkaHJlYXNhY2h0LF5kaHIKKyBTQUwgRCAgICAgICAgICAgICAgICAgICAgVCAgICAgICAgIyBub3RlIGVjbGlwc2lzIG9mIFQgdmlhIGNvbGxhcHNpbmcKKyBTQUwgRUFGQVItLSQgICAgICAgICAgICAgKlYgICAgICAgIyBnZWFmYXIsIG1lYWZhciBvbmx5LCBGQVIkIGV4Y2VwdGlvbgorIFNBTCBFT0ZBUi0tJCAgICAgICAgICAgICAqICAgICAgICAjIHNpbGVudCB2ZXJiIGVuZGluZywgZXhjZXB0aW9uIHRvIE9GQVIkIGV4Y2VwdCEKKyBTQUwgRUlMQkgtLSAgICAgICAgICAgICAgKkwqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTEJILS0gZXhjZXB0aW9uIGJlbG93CisgU0FMIEVJREgoRUkpLSAgICAgICAgICAgICogICAgICAgICMgYXVnbWVudHMgSURIIHJ1bGUsZWlkaGVhbm4sdGVpZGhlYWNoLG1laWRoaXIsZXRjCisgU0FMIEVPTUgoRlQpLS0tICAgICAgICAgICogICAgICAgICMgbGVvbWhbZnRdLSBvbmx5LCBleGNlcHRpb24gdG8gLW9taCBydWxlCisgU0FMIEUgICAgICAgICAgICAgICAgICAgICoKKyBTQUwgyUFSQkgtLSAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgZ+lhcmJoLSBvbmx5CisgU0FMIMlBUk0tICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIOlhcm1oKyB06WFybWEgcm9vdCBvbmx5CisgU0FMIMlBUkctICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIOlhcmdoKyhs4W4pP2zpYXJnYXMgb25seQorIFNBTCDJSVJHLSAgICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCDpaXJnaCsgYWlsbOlpcmdlIG9ubHkKKyBTQUwgyUlSQkgtLSAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdC4gbOlpcmJocmVpdGgqLCBzcOlpcmJoZWFuIG9ubHkKKyBTQUwgyUFMQkgtLSAgICAgICAgICAgICAgKkwgICAgICAgIyBi6WFsYmhhY2ggb25seSwgZXhjZXB0aW9uIHRvIEFMQkgKKyBTQUwgyUFGwSAgICAgICAgICAgICAgICAgKlYqICAgICAgIyDpYWbhIG9ubHksIGV4Y2VwdGlvbiB0byBGwSQKKyBTQUwgySAgICAgICAgICAgICAgICAgICAgKgorIFNBTCBGSEFJUkNILS0gICAgICAgICAgICAqUiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGZoYWlyY2gqIG9ubHkKKyBTQUwgRkFJUkNILS0gICAgICAgICAgICAgVipSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCAoYmgpP2ZhaXJjaCogb25seQorIFNBTCBGSE9JUkYtICAgICAgICAgICAgICAqUiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGZvaXJmZSByb290IG9ubHkKKyBTQUwgRk9JUkYtICAgICAgICAgICAgICAgVipSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBpbml0aWFsIChiaCk/Zm9pcmYqIG9ubHkKKyBTQUwgRkhPTk5NSC0tICAgICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTk1ILS0sIGZob25ubWhhaT9yKiBvbmx5CisgU0FMIEZPTk5NSC0tICAgICAgICAgICAgIFYqTiogICAgICMgICAgIiAgICAgICAgICIgICAgICIgICAgIiwgKGJoKT9mb25ubWhhaT9yKiBvbmx5CisgU0FMIEZIT0lMTUgtLSAgICAgICAgICAgICpMKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExNSC0tLCBmaG9pbG1oZSBvbmx5CisgU0FMIEZPSUxNSC0tICAgICAgICAgICAgIFYqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExNSC0tLCAoYmgpP2ZvaWxtaGUgb25seQorIFNBTCBGSE9MTUgtLSAgICAgICAgICAgICAqTCogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMTUgtLSwgZmhvbG1oKiBvbmx5CisgU0FMIEZPTE1ILS0gICAgICAgICAgICAgIFYqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExNSC0tLCAoYmgpP2ZvbG1oKiBvbmx5CisgU0FMIEZFQURIXiQgICAgICAgICAgICAgIFYqICAgICAgICMgZXhjZXB0aW9uIHRvIHZlcmIgZW5kaW5nIGJlbG93LCBlY2xpcHNpcyBieSBsdWNrCisgU0FMIEZFQVJeJCAgICAgICAgICAgICAgIFYqUiAgICAgICMgICAgICIgICAgICAiICAgIiAgICAgIiAgICAgIiAgICAgICAgIiAgICAgIiAgICIgCisgU0FMIEZJTk5eJCAgICAgICAgICAgICAgIFYqTiAgICAgICMgICAgICIgICAgICAiICAgIiAgICAgIiAgICAgIiAgICAgICAgIiAgICAgIiAgICIgCisgU0FMIEZFwV4kICAgICAgICAgICAgICAgIFYqICAgICAgICMgICAgICIgICAgICAiICAgIiAgICAgIiAgICAgIiAgICAgICAgIiAgICAgIiAgICIgCisgU0FMIEZBzV4kICAgICAgICAgICAgICAgIFYqICAgICAgICMgICAgICIgICAgICAiICAgIiAgICAgIiAgICAgIiAgICAgICAgIiAgICAgIiAgICIgCisgU0FMIEbNXiQgICAgICAgICAgICAgICAgIFYqICAgICAgICMgICAgICIgICAgICAiICAgIiAgICAgIiAgICAgIiAgICAgICAgIiAgICAgIiAgICIgCisgU0FMIEZBSURILS0tLSQgICAgICAgICAgIF8gICAgICAgICMgc2lsZW50ICdmJyBpbiB2ZXJiIGVuZGluZworIFNBTCBGQURILS0tJCAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIKKyBTQUwgRklESC0tLSQgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiCisgU0FMIEZFQURILS0tLSQgICAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgICAKKyBTQUwgRkVBUi0tLSQgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiICAgIAorIFNBTCBGQVItLSQgICAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIKKyBTQUwgRklOTi0tLSQgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiICAgIAorIFNBTCBGQUlOTi0tLS0kICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIgICAgCisgU0FMIEbBLSQgICAgICAgICAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAKKyBTQUwgRkXBLS0kICAgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiIAorIFNBTCBGQc0tLSQgICAgICAgICAgICAgICBfICAgICAgICAjICAgIiAgICAgIiAgICIgICAiICAgICIKKyBTQUwgRs0tJCAgICAgICAgICAgICAgICAgXyAgICAgICAgIyAgICIgICAgICIgICAiICAgIiAgICAiCisgU0FMIEZBSU1JKERTKS0tLS0tJCAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgKG5vIGV4Y2VwdGlvbnMpCisgU0FMIEZJTUkoRFMpLS0tLSQgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgKG5vIGV4Y2VwdGlvbnMpCisgU0FMIEZBSUTNUy0tLS0tJCAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgKG5vIGV4Y2VwdGlvbnMpCisgU0FMIEZJRM1TLS0tLSQgICAgICAgICAgIF8gICAgICAgICMgICAiICAgICAiICAgIiAgICIgICAgIiAgKG5vIGV4Y2VwdGlvbnMpCisgU0FMIEZIICAgICAgICAgICAgICAgICAgIF8gICAgICAgICMgYWx3YXlzIHNpbGVudCAKKyBTQUwgRiAgICAgICAgICAgICAgICAgICAgVgorIFNBTCBHSEFJTk1ILS0gICAgICAgICAgICBLKk4qICAgICAjIGVwZW50aGV0aWMgdm93ZWwsc2VlIE5NSC0tLF5naGFpbm1oKiBvbmx5CisgU0FMIEdBSU5NSC0tICAgICAgICAgICAgIEsqTiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCxzZWUgTk1ILS0sXmdhaW5taCogb25seSwgbmctIGI0CisgU0FMIEdIRUFMTE1ILS0gICAgICAgICAgIFkqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCxzZWUgTE1ILS0sZ2hlYWxsbWhhciBvbmx5CisgU0FMIEdFQUxMTUgtLSAgICAgICAgICAgIEsqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCxzZWUgTE1ILS0sZ2VhbGxtaGFyIG9ubHkKKyBTQUwgR0xBRkFESCAgICAgICAgICAgICAgS0wqViogICAgIyBleGNlcHRpb24gdG8gRkFESCQsIG5vdCBnbGFmYXJuYWNoCisgU0FMIEdITEFGQURIICAgICAgICAgICAgIEtMKlYqICAgICMgZXhjZXB0aW9uIHRvIEZBREgkIAorIFNBTCBHTEFGQUlESCAgICAgICAgICAgICBLTCpWKiAgICAjIGV4Y2VwdGlvbiB0byBGQUlESCQsIG5vdCBnbGFmYWlyZQorIFNBTCBHSExBRkFJREggICAgICAgICAgICBLTCpWKiAgICAjIGV4Y2VwdGlvbiB0byBGQUlESCQgCisgU0FMIEdIJCAgICAgICAgICAgICAgICAgIF8gICAgICAgICMgW2Fp83VdZ2gsbW9zdCBvZ2ggZG9uZSBiNCxbZeHp7fpdZ2ggYWxsIHRlcm1pbmFsCisgU0FMIEdIKEHBT9NV2iktICAgICAgICAgIEsgICAgICAgICMgYm9iZ2hhaXN0ZSwgZGVvaXJnaOFzLCBzb2dob250YSwgZXRjLgorIFNBTCBHSChFyUnNKS0gICAgICAgICAgICBZICAgICAgICAjIGF0aGdoaW4sIGx1YXNnaOlhcmFpZ2gsIGV0Yy4KKyBTQUwgR0hMKEHBT9NV2iktLSAgICAgICAgSyAgICAgICAgIyBhcmRnaGzzcmFjaCwgZm9s+nNnaGxhbnTzaXIsIGV0Yy4KKyBTQUwgR0hMKEXJSSktLSAgICAgICAgICAgWSAgICAgICAgIyBjb21oZ2hs6WFzLCBjb21oZ2hsZWFjYe0sIHNjb2lsdGdobGVhbm4sIGV0Yy4KKyBTQUwgR0hSKEHBT9NV2iktLSAgICAgICAgSyAgICAgICAgIyB07XJnaHLhLCBncmlhbmdocmFmLCBhb2lzZ2hy+nBhLCBldGMuIAorIFNBTCBHSFIoRclJzSktLSAgICAgICAgICBZICAgICAgICAjIGlkaXJnaHLpYXPhbiwgYnJlaXRoZ2hyZWFtYW5uYWNoLCBldGMuCisgU0FMIEdITihBwU/TVdopLS0gICAgICAgIEsgICAgICAgICMgZGVhc2dobuF0aCwgbmVhbWhnaG7hY2gsIGV0Yy4KKyBTQUwgR0hOKEXJSc0pLS0gICAgICAgICAgWSAgICAgICAgIyBsZW9yZ27tb21oLCBhb25naG7paXRoZWFjaCwgZXRjLgorIFNBTCBHICAgICAgICAgICAgICAgICAgICBLICAgICAgICAjIG5vdGUgZWNsaXBzaXMgb2YgQyB2aWEgY29sbGFwc2luZworIFNBTCBIICAgICAgICAgICAgICAgICAgICBIICAgICAgICAjIGJldHdlZW4gdm93ZWxzK0ZhcmFuaGHtdCxmb3JoYWxsYSxldGMuCisgU0FMIElBUkctICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIGlhcmf6aWwsIHRpYXJn4WlsLCBldGMuCisgU0FMIElBUkJILS0gICAgICAgICAgICAgICpSICAgICAgICMgaWFyYmjhaXMsIGdpYXJiaG9zY2EsIGV0Yy4gZXBlbnRoLiBleGNlcHRpb24KKyBTQUwgSURJUkJILS0gICAgICAgICAgICAgKlQqUiAgICAgIyBpZGlyYmhlYXJ0LCBpZGlyYmhsaWFpbiwgZXRjLiwgZXhjZXB0aW9uIHRvIElSQkgKKyBTQUwgSVJCSFLaLS0tLSAgICAgICAgICAgKlIgICAgICAgIyBtdWlyYmhy+mNodCogb25seSwgZXhjZXB0aW9uIHRvIElSQkgtLQorIFNBTCBJUkJIVS0tLSAgICAgICAgICAgICAqUiAgICAgICAjIGVvY2hhaXJiaHVpbGxlLGxpdGlyYmh1YW1hIG9ubHksIGV4Y2VwdC4gdG8gbmV4dAorIFNBTCBJUkJILS0gICAgICAgICAgICAgICAqUiogICAgICAjICpzZWlyYmjtcywgdGFpcmJoKiwgdG9pcmJoKiwgZXRjLiBlcGVudGhldGljCisgU0FMIElGzS0kICAgICAgICAgICAgICAgICpWICAgICAgICMgZXhjZXB0aW9uIHRvIEbNJCwgyUlGzSQgZG9uZSBiZWZvcmUKKyBTQUwgSU5NSEUoQcEpLS0tLSAgICAgICAgKk4gICAgICAgIyBleGNlcHRpb24gdG8gbmV4dCxhaW5taGVhc2FydGhhLGlubWhlYWJocvosIGV0Yy4KKyBTQUwgSU5NSEUtLS0gICAgICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBpbm1oZSQgb25seSBieSBwcmV2aW91cworIFNBTCBJTk5NSC0tICAgICAgICAgICAgICAqTiogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGZ1aW5ubWgtLCBjb2lubm1oZSBvbmx5CisgU0FMIElPTk1IQUctLS0tICAgICAgICAgICpOICAgICAgICMgZXhjZXB0aW9uIHRvIG5leHQsIG1pb25taGFnYWRoIG9ubHkKKyBTQUwgSU9OTUhBLS0tICAgICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBjaW9ubWhhciBvbmx5LCBzZWUgTk1ILS0KKyBTQUwgSVRIRkgoQUVJT1XByc3T2iktLS0gKkggICAgICAgIyBjaXRoZmhvbGMqLGNyaXRoZmh1YWNodCxmcml0aCogb25seS0gc2VlIG5leHQKKyBTQUwgSVRIKEJDREZHTE1OUFJTVCktICAgKiAgICAgICAgIyBhaXRocmlzLCBmcml0aCosIGV0Yy4gIGV4Y2VwdGlvbiB0byBUSC0+SAorIFNBTCBJREgoQkNERkdMTU5QUlNUKS0gICAqICAgICAgICAjIGZlaWRobSwgdHJhaWRoZmlsLCBvaWRocmUsIGV0Yy4KKyBTQUwgSUdIKENERUZJTE5SU1QpLSAgICAgKiAgICAgICAgIyBmb2lnaG5lLGNhaWdoZGXhbixvaWdocmlnaCxvaWdoZWFyLGZlaWdoaWwsZXRjLgorIFNBTCBJICAgICAgICAgICAgICAgICAgICAqCisgU0FMIM1PUk0tICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIGTtb3JtYSwgZu1vci0gb25seQorIFNBTCDNT01IKEJDREZHTE1OUFJTVCktLS0gKiAgICAgICAjIChwcnxyfGx8c258Z24p7W9taC0gb25seSwgZXhjZXB0aW9ucyB0byBvbWgtCisgU0FMIM1USFMtICAgICAgICAgICAgICAgICogICAgICAgICMgY2ztdGhzZWFjaCBvbmx5IChubyBleGNwLiBmb3IgZO10aHJlYWJoLCBldGMuKQorIFNBTCDNICAgICAgICAgICAgICAgICAgICAqCisgU0FMIEogICAgICAgICAgICAgICAgICAgIFQgICAgICAgICMgaW5pdGlhbCBqLCBkaW9zYy1qYWNh7SBvbmx5OyBiaXQgbGlrZSBzbGVuZGVyIGQKKyBTQUwgSyAgICAgICAgICAgICAgICAgICAgSyAgICAgICAgIyBrYXJhdOkgb25seQorIFNBTCBMRUFOQkgtLSAgICAgICAgICAgICBMKk4qICAgICAjIGVwZW50aGV0aWMgdm93ZWwsICh1Y2h0KT9sZWFuYmgoYW9pcyk/LHNlZSBOQkgtLQorIFNBTCBMSU5CSC0tICAgICAgICAgICAgICBMKk4qICAgICAjIGVwZW50aGV0aWMgdm93ZWwsICh1Y2h0KT9saW5iaCBvbmx5LCBzZWUgTkJILS0KKyBTQUwgTE1ILS0gICAgICAgICAgICAgICAgTCAgICAgICAgIyBmZWFsbG1oYXL6LCBldGMuLCBlcGVudGguIGV4Y2VwdGlvbgorIFNBTCBMQkgtLSAgICAgICAgICAgICAgICBMICAgICAgICAjIHVhaWxsYmhyZWFzLCBldGMuLCBlcGVudGguIGV4Y2VwdGlvbgorIFNBTCBMR0gtLSAgICAgICAgICAgICAgICBMICAgICAgICAjIHRpbXBlYWxsZ2hlYXJyLCBldGMuLCBlcGVudGguIGV4Y2VwdGlvbgorIFNBTCBMKEJHTSktICAgICAgICAgICAgICBMKiAgICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBhbHNvIFVMQ0gtLQorIFNBTCBMICAgICAgICAgICAgICAgICAgICBMCisgU0FMIE1PUkZBzS0tJCAgICAgICAgICAgIE0qUlYgICAgICMgZXhjZXB0aW9uIHRvIHNpbGVudCBGQc0kCisgU0FMIE1CQU5CSF4kICAgICAgICAgICAgIE0qTipWICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIE5CSC0tLCBub3QgLWFy+m4KKyBTQUwgTUJBSU5CSF4kICAgICAgICAgICAgTSpOKlYgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgTkJILS0KKyBTQUwgTUJeICAgICAgICAgICAgICAgICAgTSAgICAgICAgIyBlY2xpcHNpcworIFNBTCBNSEFSRi0gICAgICAgICAgICAgICBWKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwKKyBTQUwgTUFSRi0gICAgICAgICAgICAgICAgTSpSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBpbml0aWFsIG9ubHkKKyBTQUwgTUhPREggICAgICAgICAgICAgICAgViogICAgICAgIyBPREggZXhjZXB0aW9uLCB1c3VhbGx5IGluaXRpYWwKKyBTQUwgTU9ESCAgICAgICAgICAgICAgICAgTSogICAgICAgIyAgIiAgICAgIiAgICAgLCAgICIgICAgICAgIgorIFNBTCBNSCAgICAgICAgICAgICAgICAgICBWICAgICAgICAjIGluY2x1ZGVzIG1oJCwvdy8sL3YvICsgc2VlIFVNSAorIFNBTCBNICAgICAgICAgICAgICAgICAgICBNCisgU0FMIE5BRkHNLS0gICAgICAgICAgICAgIE4qViAgICAgICMgZXhjZXB0aW9uIHRvIEZBzSQsIHNuYWZh7SBvbmx5CisgU0FMIE5OQVJCLSAgICAgICAgICAgICAgIE4qUiAgICAgICMgZXhjZXB0aW9uIHRvIFJCIGVwZW50aGV0aWMsIGlvbm5hcmIqIG9ubHkKKyBTQUwgTk5FQUxCSC0tICAgICAgICAgICAgTipMICAgICAgIyBleGNlcHRpb24gdG8gQUxCSCBlcGVudGhldGljLCBjb2lubmVhbGJo4SBvbmx5CisgU0FMIE5ET1JDSC0tICAgICAgICAgICAgIE4qUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIERPUkNILS0KKyBTQUwgTkRFQVJGLSAgICAgICAgICAgICAgTipSKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgREVBUkYtCisgU0FMIE5ERUlSRi0gICAgICAgICAgICAgIE4qUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIERFSVJGLQorIFNBTCBORE9JTChCRiktICAgICAgICAgICBOKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBET0lMKEJGKS0KKyBTQUwgTkRJRkVBUiAgICAgICAgICAgICAgTipWKlIgICAgIyBleGNlcHRpb24gdG8gRkVBUiQsIF5uZGlmZWFyJCBvbmx5CisgU0FMIE5HQUlOTUgtLSAgICAgICAgICAgIE4qTiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIEdBSU5NSC0tCisgU0FMIE5HRUFMTE1ILS0gICAgICAgICAgIE4qTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIEdFQUxMTUgtCisgU0FMIE5HTEFGQURIICAgICAgICAgICAgIE5MKlYqICAgICMgZXhjZXB0aW9uIHRvIEZBREgkLCBebmdsYWZhZGgkIG9ubHkKKyBTQUwgTkdMQUZBSURIICAgICAgICAgICAgTkwqViogICAgIyBleGNlcHRpb24gdG8gRkFJREgkLCBebmdsYWZhaWRoJCBvbmx5CisgU0FMIE5DSEEozVMpLS0tLSAgICAgICAgIE4qICAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgKnNoP2VhbmNoYSjtcykqLGlvbmNoYXMgb25seQorIFNBTCBOQ0hBSVJELS0tLS0tICAgICAgICBOICAgICAgICAjIGV4Y2VwdGlvbiB0byBuZXh0LCBkYW9uY2hhaXJkKiBvbmx5CisgU0FMIE5DSEFJKFJTKS0tLS0tICAgICAgIE4qICAgICAgICMgZXBlbnRoLiB0aW9uY2hhaXIqLCBpb25jaGFpcywgKnNoP2VhbmNoYWkqLCBldGMuCisgU0FMIE5DSEFJVEhFLS0tLS0tLSAgICAgIE4qICAgICAgICMgICAgICIgICAgICAgICIgICwgc2g/ZWFuY2hhaXRoZSwgbm90IHNlYW5jaGFpdGUKKyBTQUwgTihERyleICAgICAgICAgICAgICAgTiAgICAgICAgIyBlY2xpcHNpcworIFNBTCBOTUgtLSAgICAgICAgICAgICAgICBOICAgICAgICAjIGV4Y2VwdGlvbiB0byBOKEJNKS0sIHBpYW5taGFyLCBvbm5taGFpcmUsIGV0Yy4gCisgU0FMIE5CSC0tICAgICAgICAgICAgICAgIE4gICAgICAgICMgICAgIiAgICAgICAiICAgIiwgYW9uYmhlYW5uYWNoLCBidW5iaHJhdCwgZXRjLgorIFNBTCBOKEJNKS0gICAgICAgICAgICAgICBOKiAgICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIGJpbmIsIGFpbm0sIGV0Yy4KKyBTQUwgTiAgICAgICAgICAgICAgICAgICAgTgorIFNBTCBPRkFSLS0kICAgICAgICAgICAgICAqViAgICAgICAjIGV4Y2VwdGlvbiB0byBGQVIkLCBFT0ZBUiBkb25lIGI0CisgU0FMIE9JUkNILS0gICAgICAgICAgICAgICpSKiAgICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgdD9vaXJjaCogb25seQorIFNBTCBPQ0FMQkgtLSAgICAgICAgICAgICAqSypMICAgICAjIGV4Y2VwdGlvbiB0byBBTEJIIC0gZm9jYWxiaOEqIG9ubHkKKyBTQUwgT1JCSMEtLS0gICAgICAgICAgICAgKlIqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBmb3JiaOFzIG9ubHkKKyBTQUwgT05OQ0hBLS0tICAgICAgICAgICAgKk4qICAgICAgIyBlcGVudGhldGljIHZvd2VsICAgZmlvbm5jaGEsIERvbm5jaGEgb25seQorIFNBTCBPTUhBUkItICAgICAgICAgICAgICAqUiAgICAgICAjIGV4Y2VwdGlvbiB0byBlcGVudGguIFIoQkZHTSktLCBjb21oYXJiYSogb25seQorIFNBTCBPTUgoQkNERkdMTU5QUlNUKS0gICAqICAgICAgICAjIGNvbWgtLCBEb21obmFjaCwgZXRjLiAoc2V2ZXJhbCBleGNwdHMgYjQgdGhpcykKKyBTQUwgT1RIKEJDREdMTU5QUlMpLSAgICAgKiAgICAgICAgIyBjb3Rocm9tLCBiYW90aGNoYWludCwgZ2FvdGhzY+F0aCwgZXRjLgorIFNBTCBPREhBTy0tLS0gICAgICAgICAgICAqICAgICAgICAjIGZvZGhhbyogb25seSwgZXhjZXB0aW9uIHRvIG5leHQKKyBTQUwgT0RIKEFDTE5SKS0gICAgICAgICAgKiAgICAgICAgIyBib2RocuFuLG1vZGhuYWlnaCx0b2RoY2hh7Sxmb2RobGEsYm9kaGFyIGV0Yy4KKyBTQUwgT0dIUtpQLS0tLS0gICAgICAgICAgKiAgICAgICAgIyBmb2docvpwYSwgdGhpcyBhbmQgbmV4dCBmZXcgYXJlIE9HSC0+KiBleGNlcHRzLgorIFNBTCBPR0hMVUEtLS0tLSAgICAgICAgICAqICAgICAgICAjIHNvL2RvZ2hsdWFpc3RlKiBvbmx5CisgU0FMIE9HSEFGLS0tLSAgICAgICAgICAgICogICAgICAgICMgZG9naGFmYSBvbmx5CisgU0FMIE9HSChBwUJDREZHTE1OUFJTVCktICogICAgICAgICMgb2doYW0sIGZvZ2hsYWltLCBib2doZPNpciwgdG9naGNo4W4sIGV0Yy4KKyBTQUwgTyAgICAgICAgICAgICAgICAgICAgKgorIFNBTCDTUihHTSktICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCAoZm9yKT90aD/zcm1hY2gsIPNyZ2EsZXRjLgorIFNBTCDTR0ggICAgICAgICAgICAgICAgICAqICAgICAgICAjIPNnaGE/JCBvbmx5CisgU0FMINMgICAgICAgICAgICAgICAgICAgICoKKyBTQUwgUEggICAgICAgICAgICAgICAgICAgViAgICAgICAgIyBPSworIFNBTCBQICAgICAgICAgICAgICAgICAgICBCCisgU0FMIFFVICAgICAgICAgICAgICAgICAgIEtWICAgICAgICMgXnF1aW7tbiQsIF5xdWFydG8kIG9ubHkKKyBTQUwgUkFORkHNLS0gICAgICAgICAgICAgUipOViAgICAgIyBleGNlcHRpb24gdG8gc2lsZW50IEZBzSQsIC1jaHVhcmFuZmHtIG9ubHkKKyBTQUwgUkFGQc0tLSAgICAgICAgICAgICAgUipWICAgICAgIyBleGNlcHRpb24gdG8gc2lsZW50IEZBzSQsIGFsbCAqZ3JhZi0KKyBTQUwgUlJCSEEtLS0gICAgICAgICAgICAgUiogICAgICAgIyBlcGVudGhldGljIHZvd2VsLCBjZWFycmJoKiBvbmx5LCBubyBjYXJyYmh1YW1hCisgU0FMIFJFQUxNSC0tICAgICAgICAgICAgIFIqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExNSC0tLCB0cmVhbG1oKiBvbmx5CisgU0FMIFLNRkVBUl4kICAgICAgICAgICAgIFIqVipSICAgICMgZXhjZXB0aW9uIHRvIEZFQVIkLCBub3QgYXRocu1mZWFyIQorIFNBTCBST01IKEZUKS0tLSAgICAgICAgICBSKiAgICAgICAjIHByb21oW2Z0XS0gb25seSwgZXhjZXB0aW9uIHRvIC1vbWggcnVsZQorIFNBTCBSRkVBTi0tLS0gICAgICAgICAgICBSKiAgICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIChiZXxzZXxnYSlpcmZlYW4gb25seQorIFNBTCBSRklOLS0tJCAgICAgICAgICAgICBSKiAgICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNhbWUgd29yZHMgYXMgcHJldmlvdXMKKyBTQUwgUkJILS0gICAgICAgICAgICAgICAgUiAgICAgICAgIyBj7W9yYmh17SwgYWVyYmhyYXQsIGV0Yy4sIGVwZW50aC4gZXhjZXB0aW9uCisgU0FMIFJNSC0tICAgICAgICAgICAgICAgIFIgICAgICAgICMgaWFybWhhciwgbOlpcm1oZWFzLCBldGMuLCBlcGVudGguIGV4Y2VwdGlvbgorIFNBTCBSR0gtLSAgICAgICAgICAgICAgICBSICAgICAgICAjIGRhb3JnaGFsYXIsIGV0Yy4sIGVwZW50aC4gZXhjZXB0aW9uCisgU0FMIFJCTy0tICAgICAgICAgICAgICAgIFIgICAgICAgICMgY29zYXJib2xnIG9ubHksIGVwZW50aC4gZXhjZXB0aW9uCisgU0FMIFIoQkdNKS0gICAgICAgICAgICAgIFIqICAgICAgICMgZXBlbnRoZXRpYyB2b3dlbAorIFNBTCBSICAgICAgICAgICAgICAgICAgICBSCisgU0FMIFNIT1JDSC0tICAgICAgICAgICAgIEgqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc29yY2hhIHJvb3Qgb25seQorIFNBTCBTT1JDSC0tICAgICAgICAgICAgICBTKlIqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNvcmNoYSByb290IG9ubHkKKyBTQUwgU0hPSUxCSC0tICAgICAgICAgICAgSCpMKiAgICAgIyBlcGVudGhldGljLCBzZWUgTEJILS0KKyBTQUwgU09JTEJILS0gICAgICAgICAgICAgUypMKiAgICAgIyBlcGVudGhldGljLCBzZWUgTEJILS0KKyBTQUwgU0ggICAgICAgICAgICAgICAgICAgSCAgICAgICAgIyBPSworIFNBTCBTICAgICAgICAgICAgICAgICAgICBTCisgU0FMIFRBTE1ILS0gICAgICAgICAgICAgIFQqTCogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIExNSC0tLCB0YWxtaGFpZ2ggb25seQorIFNBTCBUSEFMTUgtLSAgICAgICAgICAgICBIKkwqICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMTUgtLSwgICAgIiAgICAgICAiCisgU0FMIFRJTkYoRUkpLSAgICAgICAgICAgIFQqTlYgICAgICMgZXhjZXB0aW9uIHRvIEYoRUF8SSlESCQsIGQ/dGluZihlYXxpKWRoIG9ubHkKKyBTQUwgVEhJTkYoRUkpLSAgICAgICAgICAgSCpOViAgICAgIyBleGNlcHRpb24gdG8gRihFQXxJKURIJCwgdGhpbmYoZWF8aSlkaCBvbmx5CisgU0FMIFRBRkEtICAgICAgICAgICAgICAgIFQqViAgICAgICMgZXhjZXB0aW9uIHRvIEZBSU5OJCwgZD90YWZhaW5uIG9ubHkKKyBTQUwgVEhBRkEtICAgICAgICAgICAgICAgSCpWICAgICAgIyBleGNlcHRpb24gdG8gRkFJTk4kLCB0aGFmYWlubiBvbmx5CisgU0FMIFRTT1JDSC0tICAgICAgICAgICAgIFQqUiogICAgICMgZXBlbnRoZXRpYyB2b3dlbCwgc2VlIFNPUkNILS0KKyBTQUwgVFNPSUxCSC0tICAgICAgICAgICAgVCpMKiAgICAgIyBlcGVudGhldGljIHZvd2VsLCBzZWUgU09JTEJILS0KKyBTQUwgVFNeICAgICAgICAgICAgICAgICAgVCAgICAgICAgIyBwcmVmaXgtdAorIFNBTCBUSCQgICAgICAgICAgICAgICAgICBfICAgICAgICAjIG5vIGV4Y2VwdGlvbnMKKyBTQUwgVEggICAgICAgICAgICAgICAgICAgSAorIFNBTCBUICAgICAgICAgICAgICAgICAgICBUCisgU0FMIFVGQSjNUiktLSQgICAgICAgICAgICpWICAgICAgICMgZXhjZXB0aW9uIHRvIEZBUiQsIGJydWZhci9bY3JddWZh7SBvbmx5CisgU0FMIFVBUkctICAgICAgICAgICAgICAgICpSICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIGZ1YXJnYSosIHR1YXJnYWluIG9ubHkKKyBTQUwgVUFJUkctICAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgdHVhaXJnbiogb25seQorIFNBTCBVQVJCSC0tICAgICAgICAgICAgICAqUiAgICAgICAjIGVwZW50aGV0aWMgZXhjZXB0aW9uLCBmdWFyYmgqLCBjdWFyYmgqIG9ubHkgCisgU0FMIFVBTEdBLS0gICAgICAgICAgICAgICpMICAgICAgICMgZXBlbnRoZXRpYyBleGNlcHRpb24sIGR1YWxnYXMgb25seQorIFNBTCBVTExNSC0tICAgICAgICAgICAgICAqTCogICAgICAjIGVwZW50aGV0aWMgdm93ZWwsIHNlZSBMTUgtLQorIFNBTCBVTUggICAgICAgICAgICAgICAgICAqICAgICAgICAjIGN1bWhhY2h0LCB1bWhsYe1vY2h0LCBjaXVtaGFpcywgZXhjZXB0LiB0byBNSC0+VgorIFNBTCBVVEgoQkNER0xNTlBSKS0gICAgICAqICAgICAgICAjIHNydXRoKiwgZ3V0aHBob3N0IG9ubHksIFRILT5IIGV4Y2VwdGlvbgorIFNBTCBVTENILS0gICAgICAgICAgICAgICAqTCogICAgICAjIGVwZW50aC4gdm93ZWwsdWxjaGEsW3RtXXVsY2jhbixhbWh1bGNoYWNoIG9ubHkKKyBTQUwgVVJDSChB0yktLS0gICAgICAgICAgKlIqICAgICAgIyBlcGVudGhldGljIHZvd2VsLCB1cmNoYXIsIHVyY2hhbGwsIHVyY2jzaWQsIGV0Yy4KKyBTQUwgVURIICAgICAgICAgICAgICAgICAgKiAgICAgICAgIyBtdWRoKiBvbmx5IChsaXRlcmFyeSkKKyBTQUwgVUdIICAgICAgICAgICAgICAgICAgKiAgICAgICAgIyBicnVnaCogb25seSAobGl0ZXJhcnkpCisgU0FMIFUgICAgICAgICAgICAgICAgICAgICoKKyBTQUwg2klSRy0gICAgICAgICAgICAgICAgKlIgICAgICAgIyBlcGVudGhldGljIGV4Y2VwdGlvbiwgbGlvdPppcmcqIG9ubHksIHNlZSBSRworIFNBTCDaVEgoQkNERkxQUiktICAgICAgICAqICAgICAgICAjIGz6dGhjaGxlYXNhLCBk+nRocmFjaHQsIGV0Yy4gLSBUSC0+SCBleGNlcHRpb24KKyBTQUwg2iAgICAgICAgICAgICAgICAgICAgKgorIFNBTCBWICAgICAgICAgICAgICAgICAgICBWCisgU0FMIFcgICAgICAgICAgICAgICAgICAgIFYgICAgICAgICMgd2lnd2FtIG9ubHkKKyBTQUwgWChBRclJzSktXiAgICAgICAgICAgUyAgICAgICAgIyB4aWxlYWbzbiwgZXRjLgorIFNBTCBYXiAgICAgICAgICAgICAgICAgICAqS1MgICAgICAjIHgtZ2hhKiBvbmx5CisgU0FMIFggICAgICAgICAgICAgICAgICAgIEtTICAgICAgICMgTWFyeGFjaCBvbmx5CisgU0FMIFkgICAgICAgICAgICAgICAgICAgIFkgICAgICAgICMgefN58yBvbmx5CisgU0FMIFogICAgICAgICAgICAgICAgICAgIFMgICAgICAgICMgevosIHB1emFsLCBldGMuCg==