<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>214795</bug_id>
          
          <creation_ts>2020-07-25 23:16:06 -0700</creation_ts>
          <short_desc>[JSC] Add Intl Enumeration APIs</short_desc>
          <delta_ts>2021-08-24 12:28:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218829</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1675066</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-25 23:16:06 -0700</bug_when>
    <thetext>Prototyping?
https://github.com/tc39/proposal-intl-enumeration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675072</commentid>
    <comment_count>1</comment_count>
      <attachid>405247</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-26 00:40:33 -0700</bug_when>
    <thetext>Created attachment 405247
Prototyping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675073</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-26 00:41:53 -0700</bug_when>
    <thetext>print(JSON.stringify(Intl.getSupportedCalendars()));
print(JSON.stringify(Intl.getSupportedCurrencies()));
print(JSON.stringify(Intl.getSupportedNumberingSystems()));
print(JSON.stringify(Intl.getSupportedTimeZones()));
print(JSON.stringify(Intl.getSupportedTimeZones({region: &quot;US&quot;})));
print(JSON.stringify(Intl.getSupportedUnits()));

[&quot;gregorian&quot;,&quot;japanese&quot;,&quot;buddhist&quot;,&quot;roc&quot;,&quot;persian&quot;,&quot;islamic-civil&quot;,&quot;islamic&quot;,&quot;hebrew&quot;,&quot;chinese&quot;,&quot;indian&quot;,&quot;coptic&quot;,&quot;ethiopic&quot;,&quot;ethiopic-amete-alem&quot;,&quot;iso8601&quot;,&quot;dangi&quot;,&quot;islamic-umalqura&quot;,&quot;islamic-tbla&quot;,&quot;islamic-rgsa&quot;]
[&quot;AED&quot;,&quot;AFN&quot;,&quot;ALL&quot;,&quot;AMD&quot;,&quot;ANG&quot;,&quot;AOA&quot;,&quot;ARS&quot;,&quot;AUD&quot;,&quot;AWG&quot;,&quot;AZN&quot;,&quot;BAM&quot;,&quot;BBD&quot;,&quot;BDT&quot;,&quot;BGN&quot;,&quot;BHD&quot;,&quot;BIF&quot;,&quot;BMD&quot;,&quot;BND&quot;,&quot;BOB&quot;,&quot;BRL&quot;,&quot;BSD&quot;,&quot;BTN&quot;,&quot;BWP&quot;,&quot;BYN&quot;,&quot;BZD&quot;,&quot;CAD&quot;,&quot;CDF&quot;,&quot;CHF&quot;,&quot;CLP&quot;,&quot;CNY&quot;,&quot;COP&quot;,&quot;CRC&quot;,&quot;CUC&quot;,&quot;CUP&quot;,&quot;CVE&quot;,&quot;CZK&quot;,&quot;DJF&quot;,&quot;DKK&quot;,&quot;DOP&quot;,&quot;DZD&quot;,&quot;EGP&quot;,&quot;ERN&quot;,&quot;ETB&quot;,&quot;EUR&quot;,&quot;FJD&quot;,&quot;FKP&quot;,&quot;GBP&quot;,&quot;GEL&quot;,&quot;GHS&quot;,&quot;GIP&quot;,&quot;GMD&quot;,&quot;GNF&quot;,&quot;GTQ&quot;,&quot;GYD&quot;,&quot;HKD&quot;,&quot;HNL&quot;,&quot;HRK&quot;,&quot;HTG&quot;,&quot;HUF&quot;,&quot;IDR&quot;,&quot;ILS&quot;,&quot;INR&quot;,&quot;IQD&quot;,&quot;IRR&quot;,&quot;ISK&quot;,&quot;JMD&quot;,&quot;JOD&quot;,&quot;JPY&quot;,&quot;KES&quot;,&quot;KGS&quot;,&quot;KHR&quot;,&quot;KMF&quot;,&quot;KPW&quot;,&quot;KRW&quot;,&quot;KWD&quot;,&quot;KYD&quot;,&quot;KZT&quot;,&quot;LAK&quot;,&quot;LBP&quot;,&quot;LKR&quot;,&quot;LRD&quot;,&quot;LSL&quot;,&quot;LYD&quot;,&quot;MAD&quot;,&quot;MDL&quot;,&quot;MGA&quot;,&quot;MKD&quot;,&quot;MMK&quot;,&quot;MNT&quot;,&quot;MOP&quot;,&quot;MRU&quot;,&quot;MUR&quot;,&quot;MVR&quot;,&quot;MWK&quot;,&quot;MXN&quot;,&quot;MYR&quot;,&quot;MZN&quot;,&quot;NAD&quot;,&quot;NGN&quot;,&quot;NIO&quot;,&quot;NOK&quot;,&quot;NPR&quot;,&quot;NZD&quot;,&quot;OMR&quot;,&quot;PAB&quot;,&quot;PEN&quot;,&quot;PGK&quot;,&quot;PHP&quot;,&quot;PKR&quot;,&quot;PLN&quot;,&quot;PYG&quot;,&quot;QAR&quot;,&quot;RON&quot;,&quot;RSD&quot;,&quot;RUB&quot;,&quot;RWF&quot;,&quot;SAR&quot;,&quot;SBD&quot;,&quot;SCR&quot;,&quot;SDG&quot;,&quot;SEK&quot;,&quot;SGD&quot;,&quot;SHP&quot;,&quot;SLL&quot;,&quot;SOS&quot;,&quot;SRD&quot;,&quot;SSP&quot;,&quot;STN&quot;,&quot;SYP&quot;,&quot;SZL&quot;,&quot;THB&quot;,&quot;TJS&quot;,&quot;TMT&quot;,&quot;TND&quot;,&quot;TOP&quot;,&quot;TRY&quot;,&quot;TTD&quot;,&quot;TWD&quot;,&quot;TZS&quot;,&quot;UAH&quot;,&quot;UGX&quot;,&quot;USD&quot;,&quot;UYU&quot;,&quot;UZS&quot;,&quot;VEF&quot;,&quot;VND&quot;,&quot;VUV&quot;,&quot;WST&quot;,&quot;XAF&quot;,&quot;XCD&quot;,&quot;XOF&quot;,&quot;XPF&quot;,&quot;YER&quot;,&quot;ZAR&quot;,&quot;ZMW&quot;]
[&quot;adlm&quot;,&quot;ahom&quot;,&quot;arab&quot;,&quot;arabext&quot;,&quot;armn&quot;,&quot;armnlow&quot;,&quot;bali&quot;,&quot;beng&quot;,&quot;bhks&quot;,&quot;brah&quot;,&quot;cakm&quot;,&quot;cham&quot;,&quot;cyrl&quot;,&quot;deva&quot;,&quot;diak&quot;,&quot;ethi&quot;,&quot;fullwide&quot;,&quot;geor&quot;,&quot;gong&quot;,&quot;gonm&quot;,&quot;grek&quot;,&quot;greklow&quot;,&quot;gujr&quot;,&quot;guru&quot;,&quot;hanidays&quot;,&quot;hanidec&quot;,&quot;hans&quot;,&quot;hansfin&quot;,&quot;hant&quot;,&quot;hantfin&quot;,&quot;hebr&quot;,&quot;hmng&quot;,&quot;hmnp&quot;,&quot;java&quot;,&quot;jpan&quot;,&quot;jpanfin&quot;,&quot;jpanyear&quot;,&quot;kali&quot;,&quot;khmr&quot;,&quot;knda&quot;,&quot;lana&quot;,&quot;lanatham&quot;,&quot;laoo&quot;,&quot;latn&quot;,&quot;lepc&quot;,&quot;limb&quot;,&quot;mathbold&quot;,&quot;mathdbl&quot;,&quot;mathmono&quot;,&quot;mathsanb&quot;,&quot;mathsans&quot;,&quot;mlym&quot;,&quot;modi&quot;,&quot;mong&quot;,&quot;mroo&quot;,&quot;mtei&quot;,&quot;mymr&quot;,&quot;mymrshan&quot;,&quot;mymrtlng&quot;,&quot;newa&quot;,&quot;nkoo&quot;,&quot;olck&quot;,&quot;orya&quot;,&quot;osma&quot;,&quot;rohg&quot;,&quot;roman&quot;,&quot;romanlow&quot;,&quot;saur&quot;,&quot;segment&quot;,&quot;shrd&quot;,&quot;sind&quot;,&quot;sinh&quot;,&quot;sora&quot;,&quot;sund&quot;,&quot;takr&quot;,&quot;talu&quot;,&quot;taml&quot;,&quot;tamldec&quot;,&quot;telu&quot;,&quot;thai&quot;,&quot;tibt&quot;,&quot;tirh&quot;,&quot;vaii&quot;,&quot;wara&quot;,&quot;wcho&quot;]
[&quot;Africa/Abidjan&quot;,&quot;Africa/Accra&quot;,&quot;Africa/Addis_Ababa&quot;,&quot;Africa/Algiers&quot;,&quot;Africa/Asmera&quot;,&quot;Africa/Bamako&quot;,&quot;Africa/Bangui&quot;,&quot;Africa/Banjul&quot;,&quot;Africa/Bissau&quot;,&quot;Africa/Blantyre&quot;,&quot;Africa/Brazzaville&quot;,&quot;Africa/Bujumbura&quot;,&quot;Africa/Cairo&quot;,&quot;Africa/Casablanca&quot;,&quot;Africa/Ceuta&quot;,&quot;Africa/Conakry&quot;,&quot;Africa/Dakar&quot;,&quot;Africa/Dar_es_Salaam&quot;,&quot;Africa/Djibouti&quot;,&quot;Africa/Douala&quot;,&quot;Africa/El_Aaiun&quot;,&quot;Africa/Freetown&quot;,&quot;Africa/Gaborone&quot;,&quot;Africa/Harare&quot;,&quot;Africa/Johannesburg&quot;,&quot;Africa/Juba&quot;,&quot;Africa/Kampala&quot;,&quot;Africa/Khartoum&quot;,&quot;Africa/Kigali&quot;,&quot;Africa/Kinshasa&quot;,&quot;Africa/Lagos&quot;,&quot;Africa/Libreville&quot;,&quot;Africa/Lome&quot;,&quot;Africa/Luanda&quot;,&quot;Africa/Lubumbashi&quot;,&quot;Africa/Lusaka&quot;,&quot;Africa/Malabo&quot;,&quot;Africa/Maputo&quot;,&quot;Africa/Maseru&quot;,&quot;Africa/Mbabane&quot;,&quot;Africa/Mogadishu&quot;,&quot;Africa/Monrovia&quot;,&quot;Africa/Nairobi&quot;,&quot;Africa/Ndjamena&quot;,&quot;Africa/Niamey&quot;,&quot;Africa/Nouakchott&quot;,&quot;Africa/Ouagadougou&quot;,&quot;Africa/Porto-Novo&quot;,&quot;Africa/Sao_Tome&quot;,&quot;Africa/Tripoli&quot;,&quot;Africa/Tunis&quot;,&quot;Africa/Windhoek&quot;,&quot;America/Adak&quot;,&quot;America/Anchorage&quot;,&quot;America/Anguilla&quot;,&quot;America/Antigua&quot;,&quot;America/Araguaina&quot;,&quot;America/Argentina/La_Rioja&quot;,&quot;America/Argentina/Rio_Gallegos&quot;,&quot;America/Argentina/Salta&quot;,&quot;America/Argentina/San_Juan&quot;,&quot;America/Argentina/San_Luis&quot;,&quot;America/Argentina/Tucuman&quot;,&quot;America/Argentina/Ushuaia&quot;,&quot;America/Aruba&quot;,&quot;America/Asuncion&quot;,&quot;America/Bahia&quot;,&quot;America/Bahia_Banderas&quot;,&quot;America/Barbados&quot;,&quot;America/Belem&quot;,&quot;America/Belize&quot;,&quot;America/Blanc-Sablon&quot;,&quot;America/Boa_Vista&quot;,&quot;America/Bogota&quot;,&quot;America/Boise&quot;,&quot;America/Buenos_Aires&quot;,&quot;America/Cambridge_Bay&quot;,&quot;America/Campo_Grande&quot;,&quot;America/Cancun&quot;,&quot;America/Caracas&quot;,&quot;America/Catamarca&quot;,&quot;America/Cayenne&quot;,&quot;America/Cayman&quot;,&quot;America/Chicago&quot;,&quot;America/Chihuahua&quot;,&quot;America/Coral_Harbour&quot;,&quot;America/Cordoba&quot;,&quot;America/Costa_Rica&quot;,&quot;America/Creston&quot;,&quot;America/Cuiaba&quot;,&quot;America/Curacao&quot;,&quot;America/Danmarkshavn&quot;,&quot;America/Dawson&quot;,&quot;America/Dawson_Creek&quot;,&quot;America/Denver&quot;,&quot;America/Detroit&quot;,&quot;America/Dominica&quot;,&quot;America/Edmonton&quot;,&quot;America/Eirunepe&quot;,&quot;America/El_Salvador&quot;,&quot;America/Fort_Nelson&quot;,&quot;America/Fortaleza&quot;,&quot;America/Glace_Bay&quot;,&quot;America/Godthab&quot;,&quot;America/Goose_Bay&quot;,&quot;America/Grand_Turk&quot;,&quot;America/Grenada&quot;,&quot;America/Guadeloupe&quot;,&quot;America/Guatemala&quot;,&quot;America/Guayaquil&quot;,&quot;America/Guyana&quot;,&quot;America/Halifax&quot;,&quot;America/Havana&quot;,&quot;America/Hermosillo&quot;,&quot;America/Indiana/Knox&quot;,&quot;America/Indiana/Marengo&quot;,&quot;America/Indiana/Petersburg&quot;,&quot;America/Indiana/Tell_City&quot;,&quot;America/Indiana/Vevay&quot;,&quot;America/Indiana/Vincennes&quot;,&quot;America/Indiana/Winamac&quot;,&quot;America/Indianapolis&quot;,&quot;America/Inuvik&quot;,&quot;America/Iqaluit&quot;,&quot;America/Jamaica&quot;,&quot;America/Jujuy&quot;,&quot;America/Juneau&quot;,&quot;America/Kentucky/Monticello&quot;,&quot;America/Kralendijk&quot;,&quot;America/La_Paz&quot;,&quot;America/Lima&quot;,&quot;America/Los_Angeles&quot;,&quot;America/Louisville&quot;,&quot;America/Lower_Princes&quot;,&quot;America/Maceio&quot;,&quot;America/Managua&quot;,&quot;America/Manaus&quot;,&quot;America/Marigot&quot;,&quot;America/Martinique&quot;,&quot;America/Matamoros&quot;,&quot;America/Mazatlan&quot;,&quot;America/Mendoza&quot;,&quot;America/Menominee&quot;,&quot;America/Merida&quot;,&quot;America/Metlakatla&quot;,&quot;America/Mexico_City&quot;,&quot;America/Miquelon&quot;,&quot;America/Moncton&quot;,&quot;America/Monterrey&quot;,&quot;America/Montevideo&quot;,&quot;America/Montreal&quot;,&quot;America/Montserrat&quot;,&quot;America/Nassau&quot;,&quot;America/New_York&quot;,&quot;America/Nipigon&quot;,&quot;America/Nome&quot;,&quot;America/Noronha&quot;,&quot;America/North_Dakota/Beulah&quot;,&quot;America/North_Dakota/Center&quot;,&quot;America/North_Dakota/New_Salem&quot;,&quot;America/Ojinaga&quot;,&quot;America/Panama&quot;,&quot;America/Pangnirtung&quot;,&quot;America/Paramaribo&quot;,&quot;America/Phoenix&quot;,&quot;America/Port-au-Prince&quot;,&quot;America/Port_of_Spain&quot;,&quot;America/Porto_Velho&quot;,&quot;America/Puerto_Rico&quot;,&quot;America/Punta_Arenas&quot;,&quot;America/Rainy_River&quot;,&quot;America/Rankin_Inlet&quot;,&quot;America/Recife&quot;,&quot;America/Regina&quot;,&quot;America/Resolute&quot;,&quot;America/Rio_Branco&quot;,&quot;America/Santa_Isabel&quot;,&quot;America/Santarem&quot;,&quot;America/Santiago&quot;,&quot;America/Santo_Domingo&quot;,&quot;America/Sao_Paulo&quot;,&quot;America/Scoresbysund&quot;,&quot;America/Sitka&quot;,&quot;America/St_Barthelemy&quot;,&quot;America/St_Johns&quot;,&quot;America/St_Kitts&quot;,&quot;America/St_Lucia&quot;,&quot;America/St_Thomas&quot;,&quot;America/St_Vincent&quot;,&quot;America/Swift_Current&quot;,&quot;America/Tegucigalpa&quot;,&quot;America/Thule&quot;,&quot;America/Thunder_Bay&quot;,&quot;America/Tijuana&quot;,&quot;America/Toronto&quot;,&quot;America/Tortola&quot;,&quot;America/Vancouver&quot;,&quot;America/Whitehorse&quot;,&quot;America/Winnipeg&quot;,&quot;America/Yakutat&quot;,&quot;America/Yellowknife&quot;,&quot;Antarctica/Casey&quot;,&quot;Antarctica/Davis&quot;,&quot;Antarctica/DumontDUrville&quot;,&quot;Antarctica/Macquarie&quot;,&quot;Antarctica/Mawson&quot;,&quot;Antarctica/McMurdo&quot;,&quot;Antarctica/Palmer&quot;,&quot;Antarctica/Rothera&quot;,&quot;Antarctica/Syowa&quot;,&quot;Antarctica/Troll&quot;,&quot;Antarctica/Vostok&quot;,&quot;Arctic/Longyearbyen&quot;,&quot;Asia/Aden&quot;,&quot;Asia/Almaty&quot;,&quot;Asia/Amman&quot;,&quot;Asia/Anadyr&quot;,&quot;Asia/Aqtau&quot;,&quot;Asia/Aqtobe&quot;,&quot;Asia/Ashgabat&quot;,&quot;Asia/Atyrau&quot;,&quot;Asia/Baghdad&quot;,&quot;Asia/Bahrain&quot;,&quot;Asia/Baku&quot;,&quot;Asia/Bangkok&quot;,&quot;Asia/Barnaul&quot;,&quot;Asia/Beirut&quot;,&quot;Asia/Bishkek&quot;,&quot;Asia/Brunei&quot;,&quot;Asia/Calcutta&quot;,&quot;Asia/Chita&quot;,&quot;Asia/Choibalsan&quot;,&quot;Asia/Colombo&quot;,&quot;Asia/Damascus&quot;,&quot;Asia/Dhaka&quot;,&quot;Asia/Dili&quot;,&quot;Asia/Dubai&quot;,&quot;Asia/Dushanbe&quot;,&quot;Asia/Famagusta&quot;,&quot;Asia/Gaza&quot;,&quot;Asia/Hebron&quot;,&quot;Asia/Hong_Kong&quot;,&quot;Asia/Hovd&quot;,&quot;Asia/Irkutsk&quot;,&quot;Asia/Jakarta&quot;,&quot;Asia/Jayapura&quot;,&quot;Asia/Jerusalem&quot;,&quot;Asia/Kabul&quot;,&quot;Asia/Kamchatka&quot;,&quot;Asia/Karachi&quot;,&quot;Asia/Katmandu&quot;,&quot;Asia/Khandyga&quot;,&quot;Asia/Krasnoyarsk&quot;,&quot;Asia/Kuala_Lumpur&quot;,&quot;Asia/Kuching&quot;,&quot;Asia/Kuwait&quot;,&quot;Asia/Macau&quot;,&quot;Asia/Magadan&quot;,&quot;Asia/Makassar&quot;,&quot;Asia/Manila&quot;,&quot;Asia/Muscat&quot;,&quot;Asia/Nicosia&quot;,&quot;Asia/Novokuznetsk&quot;,&quot;Asia/Novosibirsk&quot;,&quot;Asia/Omsk&quot;,&quot;Asia/Oral&quot;,&quot;Asia/Phnom_Penh&quot;,&quot;Asia/Pontianak&quot;,&quot;Asia/Pyongyang&quot;,&quot;Asia/Qatar&quot;,&quot;Asia/Qostanay&quot;,&quot;Asia/Qyzylorda&quot;,&quot;Asia/Rangoon&quot;,&quot;Asia/Riyadh&quot;,&quot;Asia/Saigon&quot;,&quot;Asia/Sakhalin&quot;,&quot;Asia/Samarkand&quot;,&quot;Asia/Seoul&quot;,&quot;Asia/Shanghai&quot;,&quot;Asia/Singapore&quot;,&quot;Asia/Srednekolymsk&quot;,&quot;Asia/Taipei&quot;,&quot;Asia/Tashkent&quot;,&quot;Asia/Tbilisi&quot;,&quot;Asia/Tehran&quot;,&quot;Asia/Thimphu&quot;,&quot;Asia/Tokyo&quot;,&quot;Asia/Tomsk&quot;,&quot;Asia/Ulaanbaatar&quot;,&quot;Asia/Urumqi&quot;,&quot;Asia/Ust-Nera&quot;,&quot;Asia/Vientiane&quot;,&quot;Asia/Vladivostok&quot;,&quot;Asia/Yakutsk&quot;,&quot;Asia/Yekaterinburg&quot;,&quot;Asia/Yerevan&quot;,&quot;Atlantic/Azores&quot;,&quot;Atlantic/Bermuda&quot;,&quot;Atlantic/Canary&quot;,&quot;Atlantic/Cape_Verde&quot;,&quot;Atlantic/Faeroe&quot;,&quot;Atlantic/Madeira&quot;,&quot;Atlantic/Reykjavik&quot;,&quot;Atlantic/South_Georgia&quot;,&quot;Atlantic/St_Helena&quot;,&quot;Atlantic/Stanley&quot;,&quot;Australia/Adelaide&quot;,&quot;Australia/Brisbane&quot;,&quot;Australia/Broken_Hill&quot;,&quot;Australia/Currie&quot;,&quot;Australia/Darwin&quot;,&quot;Australia/Eucla&quot;,&quot;Australia/Hobart&quot;,&quot;Australia/Lindeman&quot;,&quot;Australia/Lord_Howe&quot;,&quot;Australia/Melbourne&quot;,&quot;Australia/Perth&quot;,&quot;Australia/Sydney&quot;,&quot;CET&quot;,&quot;CST6CDT&quot;,&quot;EET&quot;,&quot;EST5EDT&quot;,&quot;Etc/GMT&quot;,&quot;Etc/GMT+1&quot;,&quot;Etc/GMT+10&quot;,&quot;Etc/GMT+11&quot;,&quot;Etc/GMT+12&quot;,&quot;Etc/GMT+2&quot;,&quot;Etc/GMT+3&quot;,&quot;Etc/GMT+4&quot;,&quot;Etc/GMT+5&quot;,&quot;Etc/GMT+6&quot;,&quot;Etc/GMT+7&quot;,&quot;Etc/GMT+8&quot;,&quot;Etc/GMT+9&quot;,&quot;Etc/GMT-1&quot;,&quot;Etc/GMT-10&quot;,&quot;Etc/GMT-11&quot;,&quot;Etc/GMT-12&quot;,&quot;Etc/GMT-13&quot;,&quot;Etc/GMT-14&quot;,&quot;Etc/GMT-2&quot;,&quot;Etc/GMT-3&quot;,&quot;Etc/GMT-4&quot;,&quot;Etc/GMT-5&quot;,&quot;Etc/GMT-6&quot;,&quot;Etc/GMT-7&quot;,&quot;Etc/GMT-8&quot;,&quot;Etc/GMT-9&quot;,&quot;Etc/UTC&quot;,&quot;Europe/Amsterdam&quot;,&quot;Europe/Andorra&quot;,&quot;Europe/Astrakhan&quot;,&quot;Europe/Athens&quot;,&quot;Europe/Belgrade&quot;,&quot;Europe/Berlin&quot;,&quot;Europe/Bratislava&quot;,&quot;Europe/Brussels&quot;,&quot;Europe/Bucharest&quot;,&quot;Europe/Budapest&quot;,&quot;Europe/Busingen&quot;,&quot;Europe/Chisinau&quot;,&quot;Europe/Copenhagen&quot;,&quot;Europe/Dublin&quot;,&quot;Europe/Gibraltar&quot;,&quot;Europe/Guernsey&quot;,&quot;Europe/Helsinki&quot;,&quot;Europe/Isle_of_Man&quot;,&quot;Europe/Istanbul&quot;,&quot;Europe/Jersey&quot;,&quot;Europe/Kaliningrad&quot;,&quot;Europe/Kiev&quot;,&quot;Europe/Kirov&quot;,&quot;Europe/Lisbon&quot;,&quot;Europe/Ljubljana&quot;,&quot;Europe/London&quot;,&quot;Europe/Luxembourg&quot;,&quot;Europe/Madrid&quot;,&quot;Europe/Malta&quot;,&quot;Europe/Mariehamn&quot;,&quot;Europe/Minsk&quot;,&quot;Europe/Monaco&quot;,&quot;Europe/Moscow&quot;,&quot;Europe/Oslo&quot;,&quot;Europe/Paris&quot;,&quot;Europe/Podgorica&quot;,&quot;Europe/Prague&quot;,&quot;Europe/Riga&quot;,&quot;Europe/Rome&quot;,&quot;Europe/Samara&quot;,&quot;Europe/San_Marino&quot;,&quot;Europe/Sarajevo&quot;,&quot;Europe/Saratov&quot;,&quot;Europe/Simferopol&quot;,&quot;Europe/Skopje&quot;,&quot;Europe/Sofia&quot;,&quot;Europe/Stockholm&quot;,&quot;Europe/Tallinn&quot;,&quot;Europe/Tirane&quot;,&quot;Europe/Ulyanovsk&quot;,&quot;Europe/Uzhgorod&quot;,&quot;Europe/Vaduz&quot;,&quot;Europe/Vatican&quot;,&quot;Europe/Vienna&quot;,&quot;Europe/Vilnius&quot;,&quot;Europe/Volgograd&quot;,&quot;Europe/Warsaw&quot;,&quot;Europe/Zagreb&quot;,&quot;Europe/Zaporozhye&quot;,&quot;Europe/Zurich&quot;,&quot;Factory&quot;,&quot;Indian/Antananarivo&quot;,&quot;Indian/Chagos&quot;,&quot;Indian/Christmas&quot;,&quot;Indian/Cocos&quot;,&quot;Indian/Comoro&quot;,&quot;Indian/Kerguelen&quot;,&quot;Indian/Mahe&quot;,&quot;Indian/Maldives&quot;,&quot;Indian/Mauritius&quot;,&quot;Indian/Mayotte&quot;,&quot;Indian/Reunion&quot;,&quot;MET&quot;,&quot;MST7MDT&quot;,&quot;PST8PDT&quot;,&quot;Pacific/Apia&quot;,&quot;Pacific/Auckland&quot;,&quot;Pacific/Bougainville&quot;,&quot;Pacific/Chatham&quot;,&quot;Pacific/Easter&quot;,&quot;Pacific/Efate&quot;,&quot;Pacific/Enderbury&quot;,&quot;Pacific/Fakaofo&quot;,&quot;Pacific/Fiji&quot;,&quot;Pacific/Funafuti&quot;,&quot;Pacific/Galapagos&quot;,&quot;Pacific/Gambier&quot;,&quot;Pacific/Guadalcanal&quot;,&quot;Pacific/Guam&quot;,&quot;Pacific/Honolulu&quot;,&quot;Pacific/Johnston&quot;,&quot;Pacific/Kiritimati&quot;,&quot;Pacific/Kosrae&quot;,&quot;Pacific/Kwajalein&quot;,&quot;Pacific/Majuro&quot;,&quot;Pacific/Marquesas&quot;,&quot;Pacific/Midway&quot;,&quot;Pacific/Nauru&quot;,&quot;Pacific/Niue&quot;,&quot;Pacific/Norfolk&quot;,&quot;Pacific/Noumea&quot;,&quot;Pacific/Pago_Pago&quot;,&quot;Pacific/Palau&quot;,&quot;Pacific/Pitcairn&quot;,&quot;Pacific/Ponape&quot;,&quot;Pacific/Port_Moresby&quot;,&quot;Pacific/Rarotonga&quot;,&quot;Pacific/Saipan&quot;,&quot;Pacific/Tahiti&quot;,&quot;Pacific/Tarawa&quot;,&quot;Pacific/Tongatapu&quot;,&quot;Pacific/Truk&quot;,&quot;Pacific/Wake&quot;,&quot;Pacific/Wallis&quot;,&quot;SystemV/AST4&quot;,&quot;SystemV/AST4ADT&quot;,&quot;SystemV/CST6&quot;,&quot;SystemV/CST6CDT&quot;,&quot;SystemV/EST5&quot;,&quot;SystemV/EST5EDT&quot;,&quot;SystemV/HST10&quot;,&quot;SystemV/MST7&quot;,&quot;SystemV/MST7MDT&quot;,&quot;SystemV/PST8&quot;,&quot;SystemV/PST8PDT&quot;,&quot;SystemV/YST9&quot;,&quot;SystemV/YST9YDT&quot;,&quot;WET&quot;]
[&quot;America/Adak&quot;,&quot;America/Anchorage&quot;,&quot;America/Boise&quot;,&quot;America/Chicago&quot;,&quot;America/Denver&quot;,&quot;America/Detroit&quot;,&quot;America/Indiana/Knox&quot;,&quot;America/Indiana/Marengo&quot;,&quot;America/Indiana/Petersburg&quot;,&quot;America/Indiana/Tell_City&quot;,&quot;America/Indiana/Vevay&quot;,&quot;America/Indiana/Vincennes&quot;,&quot;America/Indiana/Winamac&quot;,&quot;America/Indianapolis&quot;,&quot;America/Juneau&quot;,&quot;America/Kentucky/Monticello&quot;,&quot;America/Los_Angeles&quot;,&quot;America/Louisville&quot;,&quot;America/Menominee&quot;,&quot;America/Metlakatla&quot;,&quot;America/New_York&quot;,&quot;America/Nome&quot;,&quot;America/North_Dakota/Beulah&quot;,&quot;America/North_Dakota/Center&quot;,&quot;America/North_Dakota/New_Salem&quot;,&quot;America/Phoenix&quot;,&quot;America/Sitka&quot;,&quot;America/Yakutat&quot;,&quot;Pacific/Honolulu&quot;]
[&quot;acre&quot;,&quot;bit&quot;,&quot;byte&quot;,&quot;celsius&quot;,&quot;centimeter&quot;,&quot;day&quot;,&quot;degree&quot;,&quot;fahrenheit&quot;,&quot;fluid-ounce&quot;,&quot;foot&quot;,&quot;gallon&quot;,&quot;gigabit&quot;,&quot;gigabyte&quot;,&quot;gram&quot;,&quot;hectare&quot;,&quot;hour&quot;,&quot;inch&quot;,&quot;kilobit&quot;,&quot;kilobyte&quot;,&quot;kilogram&quot;,&quot;kilometer&quot;,&quot;liter&quot;,&quot;megabit&quot;,&quot;megabyte&quot;,&quot;meter&quot;,&quot;mile&quot;,&quot;mile-scandinavian&quot;,&quot;milliliter&quot;,&quot;millimeter&quot;,&quot;millisecond&quot;,&quot;minute&quot;,&quot;month&quot;,&quot;ounce&quot;,&quot;percent&quot;,&quot;petabyte&quot;,&quot;pound&quot;,&quot;second&quot;,&quot;stone&quot;,&quot;terabit&quot;,&quot;terabyte&quot;,&quot;week&quot;,&quot;yard&quot;,&quot;year&quot;]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675074</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-26 00:43:33 -0700</bug_when>
    <thetext>1. Intl.getSupportedCalendars should be canonicalized

ICU value is slightly different from https://tc39.es/proposal-intl-enumeration/#sec-availablecalendars

2. Intl.getSupportedTimeZones should be canonicalized

It includes some fun values like, &quot;SystemV/AST4&quot;,&quot;SystemV/AST4ADT&quot;,&quot;SystemV/CST6&quot;,&quot;SystemV/CST6CDT&quot;,&quot;SystemV/EST5&quot;,&quot;SystemV/EST5EDT&quot;,&quot;SystemV/HST10&quot;,&quot;SystemV/MST7&quot;,&quot;SystemV/MST7MDT&quot;,&quot;SystemV/PST8&quot;,&quot;SystemV/PST8PDT&quot;,&quot;SystemV/YST9&quot;,&quot;SystemV/YST9YDT&quot;,&quot;WET&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675075</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-26 00:49:47 -0700</bug_when>
    <thetext>BCP47 calendars
https://github.com/unicode-org/cldr/blob/master/common/bcp47/calendar.xml

We should use name in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675076</commentid>
    <comment_count>5</comment_count>
      <attachid>405248</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-26 01:12:02 -0700</bug_when>
    <thetext>Created attachment 405248
Prototyping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677209</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-01 23:17:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/66436864&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785756</commentid>
    <comment_count>7</comment_count>
      <attachid>435960</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-20 02:37:28 -0700</bug_when>
    <thetext>Created attachment 435960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785758</commentid>
    <comment_count>8</comment_count>
      <attachid>435962</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-20 02:38:56 -0700</bug_when>
    <thetext>Created attachment 435962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786190</commentid>
    <comment_count>9</comment_count>
      <attachid>436093</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-21 16:27:03 -0700</bug_when>
    <thetext>Created attachment 436093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786191</commentid>
    <comment_count>10</comment_count>
      <attachid>436094</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-21 16:32:50 -0700</bug_when>
    <thetext>Created attachment 436094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786289</commentid>
    <comment_count>11</comment_count>
      <attachid>436140</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-22 16:45:47 -0700</bug_when>
    <thetext>Created attachment 436140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786303</commentid>
    <comment_count>12</comment_count>
      <attachid>436140</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-08-22 18:47:24 -0700</bug_when>
    <thetext>Comment on attachment 436140
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=436140&amp;action=review

&gt; Source/JavaScriptCore/runtime/IntlObject.h:68
&gt; +extern JS_EXPORT_PRIVATE const MeasureUnit simpleUnits[43];

Hmm, it feels a little gross to need to hardcode a magic number in the header like this...

&gt; JSTests/stress/intl-enumeration.js:19
&gt; +shouldBe(JSON.stringify(calendars), `[&quot;buddhist&quot;,&quot;chinese&quot;,&quot;coptic&quot;,&quot;dangi&quot;,&quot;ethioaa&quot;,&quot;ethiopic&quot;,&quot;gregory&quot;,&quot;hebrew&quot;,&quot;indian&quot;,&quot;islamic&quot;,&quot;islamic-civil&quot;,&quot;islamic-rgsa&quot;,&quot;islamic-tbla&quot;,&quot;islamic-umalqura&quot;,&quot;iso8601&quot;,&quot;japanese&quot;,&quot;persian&quot;,&quot;roc&quot;]`);

Are we sure that all current ICU versions will have these exact values for each enumeration?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786306</commentid>
    <comment_count>13</comment_count>
      <attachid>436144</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-22 20:04:27 -0700</bug_when>
    <thetext>Created attachment 436144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786307</commentid>
    <comment_count>14</comment_count>
      <attachid>436145</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-22 20:18:42 -0700</bug_when>
    <thetext>Created attachment 436145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786313</commentid>
    <comment_count>15</comment_count>
      <attachid>436140</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-22 21:24:52 -0700</bug_when>
    <thetext>Comment on attachment 436140
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=436140&amp;action=review

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.h:68
&gt;&gt; +extern JS_EXPORT_PRIVATE const MeasureUnit simpleUnits[43];
&gt; 
&gt; Hmm, it feels a little gross to need to hardcode a magic number in the header like this...

Currently, this is the only way to achieve this unfortunately.

&gt;&gt; JSTests/stress/intl-enumeration.js:19
&gt;&gt; +shouldBe(JSON.stringify(calendars), `[&quot;buddhist&quot;,&quot;chinese&quot;,&quot;coptic&quot;,&quot;dangi&quot;,&quot;ethioaa&quot;,&quot;ethiopic&quot;,&quot;gregory&quot;,&quot;hebrew&quot;,&quot;indian&quot;,&quot;islamic&quot;,&quot;islamic-civil&quot;,&quot;islamic-rgsa&quot;,&quot;islamic-tbla&quot;,&quot;islamic-umalqura&quot;,&quot;iso8601&quot;,&quot;japanese&quot;,&quot;persian&quot;,&quot;roc&quot;]`);
&gt; 
&gt; Are we sure that all current ICU versions will have these exact values for each enumeration?

Not sure, but at least, it passed EWS. We should just modify when we found another things since it is not possible to collect all candidates of all ICU versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786315</commentid>
    <comment_count>16</comment_count>
      <attachid>436147</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-22 21:33:48 -0700</bug_when>
    <thetext>Created attachment 436147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786316</commentid>
    <comment_count>17</comment_count>
      <attachid>436140</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-22 21:38:03 -0700</bug_when>
    <thetext>Comment on attachment 436140
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=436140&amp;action=review

&gt;&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.h:68
&gt;&gt;&gt; +extern JS_EXPORT_PRIVATE const MeasureUnit simpleUnits[43];
&gt;&gt; 
&gt;&gt; Hmm, it feels a little gross to need to hardcode a magic number in the header like this...
&gt; 
&gt; Currently, this is the only way to achieve this unfortunately.

At least, if the number is incorrect, it becomes compile error.

1. If the number is smaller than the number of actual entries, of course it becomes compile error in C++.
2. If the number is larger than the number of actual entries, it becomes compile error since we cannot initialize MeasureUnit without specifying values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786467</commentid>
    <comment_count>18</comment_count>
      <attachid>436147</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-08-23 10:32:21 -0700</bug_when>
    <thetext>Comment on attachment 436147
Patch

r=me

(In reply to Yusuke Suzuki from comment #15)
&gt; &gt;&gt; JSTests/stress/intl-enumeration.js:19
&gt; &gt;&gt; +shouldBe(JSON.stringify(calendars), `[&quot;buddhist&quot;,&quot;chinese&quot;,&quot;coptic&quot;,&quot;dangi&quot;,&quot;ethioaa&quot;,&quot;ethiopic&quot;,&quot;gregory&quot;,&quot;hebrew&quot;,&quot;indian&quot;,&quot;islamic&quot;,&quot;islamic-civil&quot;,&quot;islamic-rgsa&quot;,&quot;islamic-tbla&quot;,&quot;islamic-umalqura&quot;,&quot;iso8601&quot;,&quot;japanese&quot;,&quot;persian&quot;,&quot;roc&quot;]`);
&gt; &gt; 
&gt; &gt; Are we sure that all current ICU versions will have these exact values for each enumeration?
&gt; 
&gt; Not sure, but at least, it passed EWS. We should just modify when we found
&gt; another things since it is not possible to collect all candidates of all ICU
&gt; versions.

Fair enough; I guess I was thinking like &quot;`calendars` contains _at least_ these values&quot;, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786885</commentid>
    <comment_count>19</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-24 12:28:43 -0700</bug_when>
    <thetext>Committed r281513 (240886@main): &lt;https://commits.webkit.org/240886@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405247</attachid>
            <date>2020-07-26 00:40:33 -0700</date>
            <delta_ts>2021-08-20 02:37:24 -0700</delta_ts>
            <desc>Prototyping</desc>
            <filename>bug-214795-20200726004032.patch</filename>
            <type>text/plain</type>
            <size>17414</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0ODk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MjQwNjNiOTYzZjk3NjQxNWI0ZTRjMjkxNjcwMWJkZmUzNzFjOThjLi43YmUwM2QzZDk5ZWNhNzI4
NDQ3YjgyNDMxZTcyM2Q5Y2RiM2E2NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMC0wNy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAoSlNDOjppbnRsT2JqZWN0RnVuY0dldFN1cHBvcnRlZENhbGVuZGFycyk6CisgICAgICAgIChK
U0M6OmludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkQ3VycmVuY2llcyk6CisgICAgICAgIChKU0M6
OmludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkTnVtYmVyaW5nU3lzdGVtcyk6CisgICAgICAgIChK
U0M6OmludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkVGltZVpvbmVzKToKKyAgICAgICAgKEpTQzo6
aW50bE9iamVjdEZ1bmNHZXRTdXBwb3J0ZWRVbml0cyk6CisgICAgICAgICogcnVudGltZS9JbnRs
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIwLTA3LTI0
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBwbHVnaW5FbGVtZW50
Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90KCkgc2hvdWxkIHN1cHBvcnQgVk1JbnF1aXJ5IHJlcXVl
c3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCBkNzllNDQ2OWRiZDg1MmRkNjYxYmM5MGUwYjYyNDRkMmYxZjcwM2JkLi40NzM4
NjVlMDY1NjRkOTBkZTQ3MGU1YjM5NjI4YTc2MGUyNDg0MDhiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTA3LTI2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0pTQ10gQWRkIEludGwgRW51bWVyYXRpb24gQVBJcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0Nzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAg
ICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwpOgorICAgICAgICAqIHd0
Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKwogMjAyMC0wNy0yMyAgS2VpdGggTWlsbGVyICA8a2VpdGhf
bWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBpT1Mgc2ltdWxhdG9yIGRvZXMgbm90IHN1cHBv
cnQgV2ViQXNzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVj
dC5jcHAKaW5kZXggYzVhNjA4OTk4YjY2MDY5NGYyY2E4YzBhMjM3YzZkZjUzMGIwYmY1OC4uNGZk
ZWY0YzUzNWNkNmU2YmZkNjViYmE0NzM2YWE3MzY2YjI0YTRmOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNs
dWRlICJJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5s
aW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKKyNpbmNsdWRlIDx1bmljb2RlL3VjYWwuaD4K
ICNpbmNsdWRlIDx1bmljb2RlL3Vjb2wuaD4KICNpbmNsdWRlIDx1bmljb2RlL3VmaWVsZHBvc2l0
ZXIuaD4KICNpbmNsdWRlIDx1bmljb2RlL3Vsb2MuaD4KQEAgLTY2LDYgKzY3LDExIEBAIG5hbWVz
cGFjZSBKU0MgewogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxP
YmplY3QpOwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnRsT2JqZWN0
RnVuY0dldENhbm9uaWNhbExvY2FsZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0U3VwcG9y
dGVkQ2FsZW5kYXJzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnRsT2JqZWN0RnVuY0dldFN1cHBvcnRlZEN1cnJlbmNp
ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkTnVtYmVyaW5nU3lzdGVtcyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgaW50bE9iamVjdEZ1bmNHZXRTdXBwb3J0ZWRUaW1lWm9uZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlu
dGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkVW5pdHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKIAogc3RhdGljIEpTVmFsdWUgY3JlYXRlQ29sbGF0b3JDb25zdHJ1Y3RvcihWTSYgdm0sIEpT
T2JqZWN0KiBvYmplY3QpCiB7CkBAIC0xNDgsNiArMTU0LDUyIEBAIHZvaWQgVUZpZWxkUG9zaXRp
b25JdGVyYXRvckRlbGV0ZXI6Om9wZXJhdG9yKCkoVUZpZWxkUG9zaXRpb25JdGVyYXRvciogaXRl
cmF0b3IpCiAgICAgICAgIHVmaWVsZHBvc2l0ZXJfY2xvc2UoaXRlcmF0b3IpOwogfQogCitzdGF0
aWMgY29uc3RleHByIE1lYXN1cmVVbml0IHNpbXBsZVVuaXRzW10gPSB7CisgICAgeyAiYXJlYSJf
cywgImFjcmUiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAiYml0Il9zIH0sCisgICAgeyAiZGln
aXRhbCJfcywgImJ5dGUiX3MgfSwKKyAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImNlbHNpdXMiX3Mg
fSwKKyAgICB7ICJsZW5ndGgiX3MsICJjZW50aW1ldGVyIl9zIH0sCisgICAgeyAiZHVyYXRpb24i
X3MsICJkYXkiX3MgfSwKKyAgICB7ICJhbmdsZSJfcywgImRlZ3JlZSJfcyB9LAorICAgIHsgInRl
bXBlcmF0dXJlIl9zLCAiZmFocmVuaGVpdCJfcyB9LAorICAgIHsgInZvbHVtZSJfcywgImZsdWlk
LW91bmNlIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAiZm9vdCJfcyB9LAorICAgIHsgInZvbHVt
ZSJfcywgImdhbGxvbiJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJnaWdhYml0Il9zIH0sCisg
ICAgeyAiZGlnaXRhbCJfcywgImdpZ2FieXRlIl9zIH0sCisgICAgeyAibWFzcyJfcywgImdyYW0i
X3MgfSwKKyAgICB7ICJhcmVhIl9zLCAiaGVjdGFyZSJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9z
LCAiaG91ciJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgImluY2giX3MgfSwKKyAgICB7ICJkaWdp
dGFsIl9zLCAia2lsb2JpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYnl0ZSJfcyB9
LAorICAgIHsgIm1hc3MiX3MsICJraWxvZ3JhbSJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgImtp
bG9tZXRlciJfcyB9LAorICAgIHsgInZvbHVtZSJfcywgImxpdGVyIl9zIH0sCisgICAgeyAiZGln
aXRhbCJfcywgIm1lZ2FiaXQiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAibWVnYWJ5dGUiX3Mg
fSwKKyAgICB7ICJsZW5ndGgiX3MsICJtZXRlciJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1p
bGUiX3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJtaWxlLXNjYW5kaW5hdmlhbiJfcyB9LAorICAg
IHsgInZvbHVtZSJfcywgIm1pbGxpbGl0ZXIiX3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJtaWxs
aW1ldGVyIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJtaWxsaXNlY29uZCJfcyB9LAorICAg
IHsgImR1cmF0aW9uIl9zLCAibWludXRlIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJtb250
aCJfcyB9LAorICAgIHsgIm1hc3MiX3MsICJvdW5jZSJfcyB9LAorICAgIHsgImNvbmNlbnRyIl9z
LCAicGVyY2VudCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJwZXRhYnl0ZSJfcyB9LAorICAg
IHsgIm1hc3MiX3MsICJwb3VuZCJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9zLCAic2Vjb25kIl9z
IH0sCisgICAgeyAibWFzcyJfcywgInN0b25lIl9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgInRl
cmFiaXQiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJ5dGUiX3MgfSwKKyAgICB7ICJk
dXJhdGlvbiJfcywgIndlZWsiX3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJ5YXJkIl9zIH0sCisg
ICAgeyAiZHVyYXRpb24iX3MsICJ5ZWFyIl9zIH0sCit9OworCiBJbnRsT2JqZWN0OjpJbnRsT2Jq
ZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUpCiB7CkBAIC0xNjAsNyArMjEyLDcgQEAgSW50bE9iamVjdCogSW50bE9iamVjdDo6Y3JlYXRl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKgogICAgIHJl
dHVybiBvYmplY3Q7CiB9CiAKLXZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCopCit2b2lkIEludGxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7CiAjaWYgSEFWRShJQ1VfVV9MT0NBTEVfRElTUExBWV9OQU1FUykKQEAgLTE2OSw2
ICsyMjEsMTMgQEAgdm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KikKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNyZWF0ZURpc3BsYXlOYW1lc0Nv
bnN0cnVjdG9yKTsKICNlbmRpZgorICAgIGlmIChPcHRpb25zOjp1c2VJbnRsRW51bWVyYXRpb24o
KSkgeworICAgICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZ2V0
U3VwcG9ydGVkQ2FsZW5kYXJzIiwgaW50bE9iamVjdEZ1bmNHZXRTdXBwb3J0ZWRDYWxlbmRhcnMs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsK
KyAgICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdldFN1cHBv
cnRlZEN1cnJlbmNpZXMiLCBpbnRsT2JqZWN0RnVuY0dldFN1cHBvcnRlZEN1cnJlbmNpZXMsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAg
ICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdldFN1cHBvcnRl
ZE51bWJlcmluZ1N5c3RlbXMiLCBpbnRsT2JqZWN0RnVuY0dldFN1cHBvcnRlZE51bWJlcmluZ1N5
c3RlbXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAwKTsKKyAgICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdl
dFN1cHBvcnRlZFRpbWVab25lcyIsIGludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkVGltZVpvbmVz
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCk7
CisgICAgICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJnZXRTdXBw
b3J0ZWRVbml0cyIsIGludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkVW5pdHMsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAgICB9CiB9CiAK
IFN0cnVjdHVyZSogSW50bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC05MDgsNCArOTY3LDE5
MyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0Q2Fub25p
Y2FsTG9jYWxlcyhKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
bG9jYWxlQXJyYXkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmpl
Y3RGdW5jR2V0U3VwcG9ydGVkQ2FsZW5kYXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUgc3Rh
dHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9w
dHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9nZXRLZXl3b3Jk
VmFsdWVzRm9yTG9jYWxlKCJjYWxlbmRhcnMiLCAidW5kIiwgZmFsc2UsICZzdGF0dXMpKTsKKyAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIGNhbGVuZGFycyJf
cyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9IHVl
bnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIGNhbGVuZGFycyJfcyk7CisgICAgICAgIHJl
dHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6dHJ5Q3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5n
QWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3VsdCkgewor
ICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5k
ZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAg
ICAgIGNvbnN0IGNoYXIqIGNhbGVuZGFyID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5nZXQoKSwg
Jmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAg
ICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBl
bnVtZXJhdGUgc3VwcG9ydGVkIGNhbGVuZGFycyJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9
OworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0
LCBpbmRleCwganNTdHJpbmcodm0sIFN0cmluZyhjYWxlbmRhciwgbGVuZ3RoKSkpOworICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIH0KKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
aW50bE9iamVjdEZ1bmNHZXRTdXBwb3J0ZWRDdXJyZW5jaWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSopCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJv
ckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6
OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWN1cnJf
b3BlbklTT0N1cnJlbmNpZXMoVUNVUlJfQ09NTU9OIHwgVUNVUlJfTk9OX0RFUFJFQ0FURUQsICZz
dGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVk
IGN1cnJlbmNpZXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGludDMy
X3QgY291bnQgPSB1ZW51bV9jb3VudChlbnVtZXJhdGlvbi5nZXQoKSwgJnN0YXR1cyk7CisgICAg
aWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIHN1cHBvcnRlZCBjdXJyZW5jaWVzIl9z
KTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBKU0FycmF5KiByZXN1bHQgPSBK
U0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRl
eGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aFVuZGVjaWRlZCksIDApOworICAgIGlm
ICghcmVzdWx0KSB7CisgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBmb3IgKGludDMyX3Qg
aW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CisgICAgICAgIGludDMyX3QgbGVu
Z3RoID0gMDsKKyAgICAgICAgY29uc3QgY2hhciogY3VycmVuY3kgPSB1ZW51bV9uZXh0KGVudW1l
cmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShz
dGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBzdXBwb3J0ZWQgY3VycmVuY2llcyJfcyk7CisgICAgICAg
ICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5k
ZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCwganNTdHJpbmcodm0sIFN0cmluZyhjdXJyZW5jeSwgbGVu
Z3RoKSkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIH0K
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgaW50bE9iamVjdEZ1bmNHZXRTdXBwb3J0ZWROdW1iZXJpbmdTeXN0ZW1z
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCit7CisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1
dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVy
PHVlbnVtX2Nsb3NlPj4odW51bXN5c19vcGVuQXZhaWxhYmxlTmFtZXMoJnN0YXR1cykpOworICAg
IGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBzdXBwb3J0ZWQgbnVtYmVyaW5nIHN5
c3RlbXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGludDMyX3QgY291
bnQgPSB1ZW51bV9jb3VudChlbnVtZXJhdGlvbi5nZXQoKSwgJnN0YXR1cyk7CisgICAgaWYgKFVf
RkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIHN1cHBvcnRlZCBudW1iZXJpbmcgc3lzdGVtcyJf
cyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJheSogcmVzdWx0ID0g
SlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5k
ZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBp
ZiAoIXJlc3VsdCkgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9yIChpbnQzMl90
IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxl
bmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIG51bWJlcmluZ1N5c3RlbSA9IHVlbnVtX25l
eHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICBpZiAoVV9G
QUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIHN1cHBvcnRlZCBudW1iZXJpbmcgc3lzdGVt
cyJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgICAgIHJlc3Vs
dC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCwganNTdHJpbmcodm0sIFN0cmlu
ZyhudW1iZXJpbmdTeXN0ZW0sIGxlbmd0aCkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKyAgICB9CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0U3Vw
cG9ydGVkVGltZVpvbmVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1ZhbHVlIG9wdGlvbnNW
YWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgSlNPYmplY3QqIG9wdGlvbnM7Cisg
ICAgaWYgKG9wdGlvbnNWYWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICBvcHRpb25zID0gY29u
c3RydWN0RW1wdHlPYmplY3Qodm0sIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0
cnVjdHVyZSgpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnNWYWx1ZS50
b09iamVjdChnbG9iYWxPYmplY3QpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOworICAgIH0KKworICAgIFN0cmluZyByZWdpb24gPSBpbnRsU3RyaW5nT3B0aW9uKGds
b2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+cmVnaW9uLCB7IH0sIG51bGxw
dHIsIG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAg
Q1N0cmluZyByZWdpb25Db2RlOworICAgIEFTU0VSVChyZWdpb25Db2RlLmRhdGEoKSA9PSBudWxs
cHRyKTsKKyAgICBpZiAoIXJlZ2lvbi5pc051bGwoKSkgeworICAgICAgICBpZiAoIWlzVW5pY29k
ZVJlZ2lvblN1YnRhZyhyZWdpb24pKSB7CisgICAgICAgICAgICB0aHJvd1JhbmdlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgInJlZ2lvbiBpcyBub3QgYSB3ZWxsLWZvcm1lZCByZWdpb24gdmFs
dWUiX3MpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBBU1NF
UlQocmVnaW9uLmlzQWxsQVNDSUkoKSk7CisgICAgICAgIHJlZ2lvbkNvZGUgPSByZWdpb24uYXNj
aWkoKTsKKyAgICB9CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAg
ICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVs
ZXRlcjx1ZW51bV9jbG9zZT4+KHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbihVQ0FMX1pP
TkVfVFlQRV9DQU5PTklDQUwsIHJlZ2lvbkNvZGUuZGF0YSgpLCBudWxscHRyLCAmc3RhdHVzKSk7
CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIHN1cHBvcnRlZCB0aW1lem9u
ZXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGludDMyX3QgY291bnQg
PSB1ZW51bV9jb3VudChlbnVtZXJhdGlvbi5nZXQoKSwgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJ
TFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIHN1cHBvcnRlZCB0aW1lem9uZXMiX3MpOworICAgICAg
ICByZXR1cm4geyB9OworICAgIH0KKworICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRy
eUNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1
cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoVW5kZWNpZGVkKSwgMCk7CisgICAgaWYgKCFyZXN1bHQp
IHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwor
ICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGZvciAoaW50MzJfdCBpbmRleCA9IDA7
IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50MzJfdCBsZW5ndGggPSAwOwor
ICAgICAgICBjb25zdCBjaGFyKiB0aW1lWm9uZUlEID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5n
ZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkg
eworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxl
ZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIHRpbWV6b25lcyJfcyk7CisgICAgICAgICAgICByZXR1
cm4geyB9OworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFs
T2JqZWN0LCBpbmRleCwganNTdHJpbmcodm0sIFN0cmluZyh0aW1lWm9uZUlELCBsZW5ndGgpKSk7
CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQorICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBpbnRsT2JqZWN0RnVuY0dldFN1cHBvcnRlZFVuaXRzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpT
QXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRyeUNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJh
eVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoVW5kZWNp
ZGVkKSwgMCk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwor
ICAgIGludDMyX3QgaW5kZXggPSAwOworICAgIGZvciAoY29uc3QgTWVhc3VyZVVuaXQmIHVuaXQg
OiBzaW1wbGVVbml0cykgeworICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9i
amVjdCwgaW5kZXgrKywganNTdHJpbmcodm0sIFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFs
KHVuaXQuc3ViVHlwZSkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKKyAgICB9CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
aAppbmRleCAwYjBhN2JiNmJhNDFjMWVmMjkxYTI4MjIzYjg1MDM4MTg3Zjc2OGQ2Li5iNjVhMmIx
OWVmNDFhNDk3YWY3OTdmMTc2Yjk0NTI0OGUxNGJkZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBAIC0xMjQsNCArMTI0LDEwIEBAIHN0cnVjdCBVRmll
bGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlciB7CiAgICAgdm9pZCBvcGVyYXRvcigpKFVGaWVsZFBv
c2l0aW9uSXRlcmF0b3IqKSBjb25zdDsKIH07CiAKKy8vIENyZWF0ZSBNZWFzdXJlVW5pdCBsaWtl
IElDVTRKLgorc3RydWN0IE1lYXN1cmVVbml0IHsKKyAgICBBU0NJSUxpdGVyYWwgdHlwZTsKKyAg
ICBBU0NJSUxpdGVyYWwgc3ViVHlwZTsKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggZTBjNGVkNGU3Yzlj
N2QwNjQwZTI0ZjU5MTc4M2Q1ZWI3YzZhNThmOC4uYTkyNzdiNzdkODBlYmQyNDhmMWZmMjU0ODQ0
MmVmMTkyNjhhNDYwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
TGlzdC5oCkBAIC00OTEsNiArNDkxLDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1i
bHlTdHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2KEJvb2wsIHVzZVdlYWtSZWZzLCBmYWxzZSwg
Tm9ybWFsLCAiRXhwb3NlIHRoZSBXZWFrUmVmIGNvbnN0cnVjdG9yLiIpIFwKICAgICB2KEJvb2ws
IHVzZUJpZ0ludCwgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgd2Ugd2lsbCBlbmFibGUgQmlnSW50
IHN1cHBvcnQuIikgXAogICAgIHYoQm9vbCwgdXNlSW50bERpc3BsYXlOYW1lcywgZmFsc2UsIE5v
cm1hbCwgIkV4cG9zZSB0aGUgSW50bC5EaXNwbGF5TmFtZXMgY29uc3RydWN0b3IuIikgXAorICAg
IHYoQm9vbCwgdXNlSW50bEVudW1lcmF0aW9uLCBmYWxzZSwgTm9ybWFsLCAiRXhwb3NlIHRoZSBJ
bnRsIGVudW1lcmF0aW9uIEFQSXMuIikgXAogICAgIHYoQm9vbCwgdXNlQXJyYXlBbGxvY2F0aW9u
UHJvZmlsaW5nLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSB3aWxsIHVzZSBvdXIgbm9ybWFs
IGFycmF5IGFsbG9jYXRpb24gcHJvZmlsaW5nLiBJZiBmYWxzZSwgdGhlIGFsbG9jYXRpb24gcHJv
ZmlsZSB3aWxsIGFsd2F5cyBjbGFpbSB0byBiZSB1bmRlY2lkZWQuIikgXAogICAgIHYoQm9vbCwg
Zm9yY2VQb2x5UHJvdG8sIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCBjcmVhdGVfdGhpcyB3aWxs
IGFsd2F5cyBjcmVhdGUgYW4gb2JqZWN0IHdpdGggYSBwb2x5IHByb3RvIHN0cnVjdHVyZS4iKSBc
CiAgICAgdihCb29sLCBmb3JjZU1pbmlWTU1vZGUsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCBp
dCB3aWxsIGZvcmNlIG1pbmkgVk0gbW9kZSBvbi4iKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmNwcAppbmRleCAyN2Y0NzgzYTFhY2VlMDE1YzRhZDk3Y2U0ZGNkNjNkODVkOWY1NGZlLi4xMTU2
ZDY5NGNjMDA0YTNlMmM4ODZiYTA1M2ZlYmU1OTM3OTdmZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nSW1wbC5jcHAKQEAgLTE2Myw2ICsxNjMsMTEgQEAgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0lt
cGw6OmNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCiAgICAgcmV0dXJu
IGNyZWF0ZUZyb21MaXRlcmFsKGNoYXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7CiB9CiAK
K1JlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChBU0NJSUxpdGVy
YWwgbGl0ZXJhbCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRnJvbUxpdGVyYWwobGl0ZXJhbC5jaGFy
YWN0ZXJzKCksIGxpdGVyYWwubGVuZ3RoKCkpOworfQorCiBSZWY8U3RyaW5nSW1wbD4gU3RyaW5n
SW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmcoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgK
aW5kZXggMTY5ZTVhN2YxMTYwYjMxNWJlMTRhMmNiN2JmOTA3ZTE1Mjc1OTczZi4uMWM4YzQ3OTQw
MDYxNWM5ZmM1MWVhZDQwZTQ4NTM5YjY5ZGI2OWI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJRmFzdFBhdGguaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
b252ZXJzaW9uTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2hlci5oPgpAQCAtMjQ3LDYgKzI0OCw3IEBAIGNsYXNz
IFN0cmluZ0ltcGwgOiBwcml2YXRlIFN0cmluZ0ltcGxTaGFwZSB7CiAgICAgLy8gRklYTUU6IFJl
cGxhY2UgY2FsbHMgdG8gdGhlc2Ugb3ZlcmxvYWRzIG9mIGNyZWF0ZUZyb21MaXRlcmFsIHRvIGNy
ZWF0ZVdpdGhvdXRDb3B5aW5nIGluc3RlYWQuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciosIHVuc2lnbmVk
IGxlbmd0aCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4g
Y3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciopOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBz
dGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKEFTQ0lJTGl0ZXJhbCk7CiAK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVXaXRo
b3V0Q29weWluZyhjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlV2l0aG91dENvcHlpbmcoY29u
c3QgTENoYXIqLCB1bnNpZ25lZCBsZW5ndGgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405248</attachid>
            <date>2020-07-26 01:12:02 -0700</date>
            <delta_ts>2021-08-20 02:37:26 -0700</delta_ts>
            <desc>Prototyping</desc>
            <filename>bug-214795-20200726011201.patch</filename>
            <type>text/plain</type>
            <size>18322</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0ODk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MjQwNjNiOTYzZjk3NjQxNWI0ZTRjMjkxNjcwMWJkZmUzNzFjOThjLi5kZDUxNjBlYmJmMmUzZjhk
MDYyODE3ZTc2MjQ3NTIxZTliZWZkYWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMC0wNy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAoSlNDOjpjYW5vbmljYWxpemVDYWxlbmRhck5hbWUpOgorICAgICAgICAoSlNDOjppbnRsT2Jq
ZWN0RnVuY0dldFN1cHBvcnRlZENhbGVuZGFycyk6CisgICAgICAgIChKU0M6OmludGxPYmplY3RG
dW5jR2V0U3VwcG9ydGVkQ3VycmVuY2llcyk6CisgICAgICAgIChKU0M6OmludGxPYmplY3RGdW5j
R2V0U3VwcG9ydGVkTnVtYmVyaW5nU3lzdGVtcyk6CisgICAgICAgIChKU0M6OmludGxPYmplY3RG
dW5jR2V0U3VwcG9ydGVkVGltZVpvbmVzKToKKyAgICAgICAgKEpTQzo6aW50bE9iamVjdEZ1bmNH
ZXRTdXBwb3J0ZWRVbml0cyk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIwLTA3LTI0ICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBwbHVnaW5FbGVtZW50Q3VzdG9tR2V0T3duUHJv
cGVydHlTbG90KCkgc2hvdWxkIHN1cHBvcnQgVk1JbnF1aXJ5IHJlcXVlc3RzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBkNzll
NDQ2OWRiZDg1MmRkNjYxYmM5MGUwYjYyNDRkMmYxZjcwM2JkLi40NzM4NjVlMDY1NjRkOTBkZTQ3
MGU1YjM5NjI4YTc2MGUyNDg0MDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTI2ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIElu
dGwgRW51bWVyYXRpb24gQVBJcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE0Nzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3Ry
aW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0lt
cGwuaDoKKwogMjAyMC0wNy0yMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBpT1Mgc2ltdWxhdG9yIGRvZXMgbm90IHN1cHBvcnQgV2ViQXNzZW1ibHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggYzVh
NjA4OTk4YjY2MDY5NGYyY2E4YzBhMjM3YzZkZjUzMGIwYmY1OC4uNTk3NWNkMGQ3MmJlZmMzNTQy
ODVjMDg4NzUzYzI0MjBlYmIyNDA4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE9iamVjdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJJbnRsUmVsYXRp
dmVUaW1lRm9ybWF0UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1
ZGUgIk9wdGlvbnMuaCIKKyNpbmNsdWRlIDx1bmljb2RlL3VjYWwuaD4KICNpbmNsdWRlIDx1bmlj
b2RlL3Vjb2wuaD4KICNpbmNsdWRlIDx1bmljb2RlL3VmaWVsZHBvc2l0ZXIuaD4KICNpbmNsdWRl
IDx1bmljb2RlL3Vsb2MuaD4KQEAgLTY2LDYgKzY3LDExIEBAIG5hbWVzcGFjZSBKU0MgewogU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxPYmplY3QpOwogCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnRsT2JqZWN0RnVuY0dldENhbm9uaWNh
bExvY2FsZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkQ2FsZW5kYXJzKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBpbnRsT2JqZWN0RnVuY0dldFN1cHBvcnRlZEN1cnJlbmNpZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlu
dGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkTnVtYmVyaW5nU3lzdGVtcyhKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaW50bE9i
amVjdEZ1bmNHZXRTdXBwb3J0ZWRUaW1lWm9uZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0
U3VwcG9ydGVkVW5pdHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIAogc3RhdGljIEpT
VmFsdWUgY3JlYXRlQ29sbGF0b3JDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3Qp
CiB7CkBAIC0xNDgsNiArMTU0LDUyIEBAIHZvaWQgVUZpZWxkUG9zaXRpb25JdGVyYXRvckRlbGV0
ZXI6Om9wZXJhdG9yKCkoVUZpZWxkUG9zaXRpb25JdGVyYXRvciogaXRlcmF0b3IpCiAgICAgICAg
IHVmaWVsZHBvc2l0ZXJfY2xvc2UoaXRlcmF0b3IpOwogfQogCitzdGF0aWMgY29uc3RleHByIE1l
YXN1cmVVbml0IHNpbXBsZVVuaXRzW10gPSB7CisgICAgeyAiYXJlYSJfcywgImFjcmUiX3MgfSwK
KyAgICB7ICJkaWdpdGFsIl9zLCAiYml0Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImJ5dGUi
X3MgfSwKKyAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImNlbHNpdXMiX3MgfSwKKyAgICB7ICJsZW5n
dGgiX3MsICJjZW50aW1ldGVyIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJkYXkiX3MgfSwK
KyAgICB7ICJhbmdsZSJfcywgImRlZ3JlZSJfcyB9LAorICAgIHsgInRlbXBlcmF0dXJlIl9zLCAi
ZmFocmVuaGVpdCJfcyB9LAorICAgIHsgInZvbHVtZSJfcywgImZsdWlkLW91bmNlIl9zIH0sCisg
ICAgeyAibGVuZ3RoIl9zLCAiZm9vdCJfcyB9LAorICAgIHsgInZvbHVtZSJfcywgImdhbGxvbiJf
cyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJnaWdhYml0Il9zIH0sCisgICAgeyAiZGlnaXRhbCJf
cywgImdpZ2FieXRlIl9zIH0sCisgICAgeyAibWFzcyJfcywgImdyYW0iX3MgfSwKKyAgICB7ICJh
cmVhIl9zLCAiaGVjdGFyZSJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9zLCAiaG91ciJfcyB9LAor
ICAgIHsgImxlbmd0aCJfcywgImluY2giX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAia2lsb2Jp
dCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYnl0ZSJfcyB9LAorICAgIHsgIm1hc3Mi
X3MsICJraWxvZ3JhbSJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgImtpbG9tZXRlciJfcyB9LAor
ICAgIHsgInZvbHVtZSJfcywgImxpdGVyIl9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgIm1lZ2Fi
aXQiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAibWVnYWJ5dGUiX3MgfSwKKyAgICB7ICJsZW5n
dGgiX3MsICJtZXRlciJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1pbGUiX3MgfSwKKyAgICB7
ICJsZW5ndGgiX3MsICJtaWxlLXNjYW5kaW5hdmlhbiJfcyB9LAorICAgIHsgInZvbHVtZSJfcywg
Im1pbGxpbGl0ZXIiX3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJtaWxsaW1ldGVyIl9zIH0sCisg
ICAgeyAiZHVyYXRpb24iX3MsICJtaWxsaXNlY29uZCJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9z
LCAibWludXRlIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJtb250aCJfcyB9LAorICAgIHsg
Im1hc3MiX3MsICJvdW5jZSJfcyB9LAorICAgIHsgImNvbmNlbnRyIl9zLCAicGVyY2VudCJfcyB9
LAorICAgIHsgImRpZ2l0YWwiX3MsICJwZXRhYnl0ZSJfcyB9LAorICAgIHsgIm1hc3MiX3MsICJw
b3VuZCJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9zLCAic2Vjb25kIl9zIH0sCisgICAgeyAibWFz
cyJfcywgInN0b25lIl9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgInRlcmFiaXQiX3MgfSwKKyAg
ICB7ICJkaWdpdGFsIl9zLCAidGVyYWJ5dGUiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIndl
ZWsiX3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJ5YXJkIl9zIH0sCisgICAgeyAiZHVyYXRpb24i
X3MsICJ5ZWFyIl9zIH0sCit9OworCiBJbnRsT2JqZWN0OjpJbnRsT2JqZWN0KFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiB7CkBAIC0xNjAs
NyArMjEyLDcgQEAgSW50bE9iamVjdCogSW50bE9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKgogICAgIHJldHVybiBvYmplY3Q7CiB9
CiAKLXZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCopCit2b2lkIEludGxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAjaWYg
SEFWRShJQ1VfVV9MT0NBTEVfRElTUExBWV9OQU1FUykKQEAgLTE2OSw2ICsyMjEsMTMgQEAgdm9p
ZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKGNyZWF0ZURpc3BsYXlOYW1lc0NvbnN0cnVjdG9yKTsKICNl
bmRpZgorICAgIGlmIChPcHRpb25zOjp1c2VJbnRsRW51bWVyYXRpb24oKSkgeworICAgICAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZ2V0U3VwcG9ydGVkQ2FsZW5k
YXJzIiwgaW50bE9iamVjdEZ1bmNHZXRTdXBwb3J0ZWRDYWxlbmRhcnMsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAgICAgICAgSlNDX05B
VElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdldFN1cHBvcnRlZEN1cnJlbmNpZXMi
LCBpbnRsT2JqZWN0RnVuY0dldFN1cHBvcnRlZEN1cnJlbmNpZXMsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAgICAgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdldFN1cHBvcnRlZE51bWJlcmluZ1N5c3Rl
bXMiLCBpbnRsT2JqZWN0RnVuY0dldFN1cHBvcnRlZE51bWJlcmluZ1N5c3RlbXMsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAgICAgICAg
SlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdldFN1cHBvcnRlZFRpbWVa
b25lcyIsIGludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkVGltZVpvbmVzLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCk7CisgICAgICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJnZXRTdXBwb3J0ZWRVbml0cyIsIGlu
dGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkVW5pdHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKKyAgICB9CiB9CiAKIFN0cnVjdHVyZSogSW50
bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC04ODMsNiArOTQyLDE4IEBAIGJvb2wgaXNXZWxs
Rm9ybWVkQ3VycmVuY3lDb2RlKFN0cmluZ1ZpZXcgY3VycmVuY3kpCiAgICAgcmV0dXJuIGN1cnJl
bmN5Lmxlbmd0aCgpID09IDMgJiYgY3VycmVuY3kuaXNBbGxTcGVjaWFsQ2hhcmFjdGVyczxpc0FT
Q0lJQWxwaGE+KCk7CiB9CiAKK3N0YXRpYyBTdHJpbmcgY2Fub25pY2FsaXplQ2FsZW5kYXJOYW1l
KGNvbnN0IFN0cmluZyYgY2FsZW5kYXIpCit7CisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Vu
aWNvZGUtb3JnL2NsZHIvYmxvYi9tYXN0ZXIvY29tbW9uL2JjcDQ3L2NhbGVuZGFyLnhtbAorICAg
IC8vICJhbGlhcyIgc2hvdWxkIGJlIGNhbm9uaWNhbGl6ZWQgdG8gdGhlIG5vbi1hbGlhcyBuYW1l
LgorICAgIC8vICJpc2xhbWljYyIgaXMgZGVwcmVjYXRlZCBuYW1lLCB3aGljaCB3aWxsIGJlIHJl
cGxhY2VkIHdpdGggImlzbGFtaWMtY2l2aWwiLCBhbmQgSUNVIChhdCBsZWFzdCA2NikgaXMgbm90
IGdlbmVyYXRpbmcgImlzbGFtaWNjIi4KKyAgICBpZiAoY2FsZW5kYXIgPT0gImdyZWdvcmlhbiJf
cykKKyAgICAgICAgcmV0dXJuICJncmVnb3J5Il9zOworICAgIGlmIChjYWxlbmRhciA9PSAiZXRo
aW9waWMtYW1ldGUtYWxlbSJfcykKKyAgICAgICAgcmV0dXJuICJldGhpb2FhIl9zOworICAgIHJl
dHVybiBjYWxlbmRhcjsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnRsT2Jq
ZWN0RnVuY0dldENhbm9uaWNhbExvY2FsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgLy8gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVz
KGxvY2FsZXMpCkBAIC05MDgsNCArOTc5LDE5MyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGludGxPYmplY3RGdW5jR2V0Q2Fub25pY2FsTG9jYWxlcyhKU0dsb2JhbE9iamVjdCogZwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9jYWxlQXJyYXkpOwogfQogCitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkQ2FsZW5kYXJzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCit7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8g
ZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVl
bnVtX2Nsb3NlPj4odWNhbF9nZXRLZXl3b3JkVmFsdWVzRm9yTG9jYWxlKCJjYWxlbmRhcnMiLCAi
dW5kIiwgZmFsc2UsICZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVt
ZXJhdGUgc3VwcG9ydGVkIGNhbGVuZGFycyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorCisgICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAm
c3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVk
IGNhbGVuZGFycyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJh
eSogcmVzdWx0ID0gSlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3Ry
dWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQp
LCAwKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAg
Zm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAg
ICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIGNhbGVuZGFyID0gdWVu
dW1fbmV4dChlbnVtZXJhdGlvbi5nZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlm
IChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIGNhbGVuZGFycyJf
cyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+
cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCwganNTdHJpbmcodm0sIGNhbm9uaWNh
bGl6ZUNhbGVuZGFyTmFtZShTdHJpbmcoY2FsZW5kYXIsIGxlbmd0aCkpKSk7CisgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnRs
T2JqZWN0RnVuY0dldFN1cHBvcnRlZEN1cnJlbmNpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgVUVycm9yQ29k
ZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgYXV0byBlbnVtZXJhdGlvbiA9IHN0ZDo6dW5p
cXVlX3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVudW1fY2xvc2U+Pih1Y3Vycl9vcGVu
SVNPQ3VycmVuY2llcyhVQ1VSUl9DT01NT04gfCBVQ1VSUl9OT05fREVQUkVDQVRFRCwgJnN0YXR1
cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBzdXBwb3J0ZWQgY3Vy
cmVuY2llcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBj
b3VudCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAo
VV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIGN1cnJlbmNpZXMiX3MpOwor
ICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJy
YXk6OnRyeUNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5n
VHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoVW5kZWNpZGVkKSwgMCk7CisgICAgaWYgKCFy
ZXN1bHQpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGZvciAoaW50MzJfdCBpbmRl
eCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50MzJfdCBsZW5ndGgg
PSAwOworICAgICAgICBjb25zdCBjaGFyKiBjdXJyZW5jeSA9IHVlbnVtX25leHQoZW51bWVyYXRp
b24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1
cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJm
YWlsZWQgdG8gZW51bWVyYXRlIHN1cHBvcnRlZCBjdXJyZW5jaWVzIl9zKTsKKyAgICAgICAgICAg
IHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChn
bG9iYWxPYmplY3QsIGluZGV4LCBqc1N0cmluZyh2bSwgU3RyaW5nKGN1cnJlbmN5LCBsZW5ndGgp
KSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQorICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBpbnRsT2JqZWN0RnVuY0dldFN1cHBvcnRlZE51bWJlcmluZ1N5c3RlbXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK3sKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworCisgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgYXV0byBl
bnVtZXJhdGlvbiA9IHN0ZDo6dW5pcXVlX3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVu
dW1fY2xvc2U+Pih1bnVtc3lzX29wZW5BdmFpbGFibGVOYW1lcygmc3RhdHVzKSk7CisgICAgaWYg
KFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIHN1cHBvcnRlZCBudW1iZXJpbmcgc3lzdGVt
cyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9
IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIG51bWJlcmluZyBzeXN0ZW1zIl9zKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBKU0FycmF5KiByZXN1bHQgPSBKU0Fy
cmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGlu
Z1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aFVuZGVjaWRlZCksIDApOworICAgIGlmICgh
cmVzdWx0KSB7CisgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBmb3IgKGludDMyX3QgaW5k
ZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CisgICAgICAgIGludDMyX3QgbGVuZ3Ro
ID0gMDsKKyAgICAgICAgY29uc3QgY2hhciogbnVtYmVyaW5nU3lzdGVtID0gdWVudW1fbmV4dChl
bnVtZXJhdGlvbi5nZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxV
UkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIG51bWJlcmluZyBzeXN0ZW1zIl9z
KTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LT5w
dXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGluZGV4LCBqc1N0cmluZyh2bSwgU3RyaW5nKG51
bWJlcmluZ1N5c3RlbSwgbGVuZ3RoKSkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9
CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaW50bE9iamVjdEZ1bmNHZXRTdXBwb3J0
ZWRUaW1lWm9uZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTVmFsdWUgb3B0aW9uc1ZhbHVl
ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBKU09iamVjdCogb3B0aW9uczsKKyAgICBp
ZiAob3B0aW9uc1ZhbHVlLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIG9wdGlvbnMgPSBjb25zdHJ1
Y3RFbXB0eU9iamVjdCh2bSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0
dXJlKCkpOworICAgIGVsc2UgeworICAgICAgICBvcHRpb25zID0gb3B0aW9uc1ZhbHVlLnRvT2Jq
ZWN0KGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgfQorCisgICAgU3RyaW5nIHJlZ2lvbiA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFs
T2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5yZWdpb24sIHsgfSwgbnVsbHB0ciwg
bnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBDU3Ry
aW5nIHJlZ2lvbkNvZGU7CisgICAgQVNTRVJUKHJlZ2lvbkNvZGUuZGF0YSgpID09IG51bGxwdHIp
OworICAgIGlmICghcmVnaW9uLmlzTnVsbCgpKSB7CisgICAgICAgIGlmICghaXNVbmljb2RlUmVn
aW9uU3VidGFnKHJlZ2lvbikpIHsKKyAgICAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAicmVnaW9uIGlzIG5vdCBhIHdlbGwtZm9ybWVkIHJlZ2lvbiB2YWx1ZSJf
cyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgICAgIEFTU0VSVChy
ZWdpb24uaXNBbGxBU0NJSSgpKTsKKyAgICAgICAgcmVnaW9uQ29kZSA9IHJlZ2lvbi5hc2NpaSgp
OworICAgIH0KKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1
dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVy
PHVlbnVtX2Nsb3NlPj4odWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0aW9uKFVDQUxfWk9ORV9U
WVBFX0NBTk9OSUNBTCwgcmVnaW9uQ29kZS5kYXRhKCksIG51bGxwdHIsICZzdGF0dXMpKTsKKyAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIHRpbWV6b25lcyJf
cyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9IHVl
bnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ImZhaWxlZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIHRpbWV6b25lcyJfcyk7CisgICAgICAgIHJl
dHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6dHJ5Q3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5n
QWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3VsdCkgewor
ICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5k
ZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAg
ICAgIGNvbnN0IGNoYXIqIHRpbWVab25lSUQgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgp
LCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Cisg
ICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRv
IGVudW1lcmF0ZSBzdXBwb3J0ZWQgdGltZXpvbmVzIl9zKTsKKyAgICAgICAgICAgIHJldHVybiB7
IH07CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmpl
Y3QsIGluZGV4LCBqc1N0cmluZyh2bSwgU3RyaW5nKHRpbWVab25lSUQsIGxlbmd0aCkpKTsKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGludGxPYmplY3RGdW5jR2V0U3VwcG9ydGVkVW5pdHMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNBcnJh
eSogcmVzdWx0ID0gSlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3Ry
dWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQp
LCAwKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAg
aW50MzJfdCBpbmRleCA9IDA7CisgICAgZm9yIChjb25zdCBNZWFzdXJlVW5pdCYgdW5pdCA6IHNp
bXBsZVVuaXRzKSB7CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0
LCBpbmRleCsrLCBqc1N0cmluZyh2bSwgU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwodW5p
dC5zdWJUeXBlKSkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwor
ICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCmlu
ZGV4IDBiMGE3YmI2YmE0MWMxZWYyOTFhMjgyMjNiODUwMzgxODdmNzY4ZDYuLmI2NWEyYjE5ZWY0
MWE0OTdhZjc5N2YxNzZiOTQ1MjQ4ZTE0YmRmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsT2JqZWN0LmgKQEAgLTEyNCw0ICsxMjQsMTAgQEAgc3RydWN0IFVGaWVsZFBv
c2l0aW9uSXRlcmF0b3JEZWxldGVyIHsKICAgICB2b2lkIG9wZXJhdG9yKCkoVUZpZWxkUG9zaXRp
b25JdGVyYXRvciopIGNvbnN0OwogfTsKIAorLy8gQ3JlYXRlIE1lYXN1cmVVbml0IGxpa2UgSUNV
NEouCitzdHJ1Y3QgTWVhc3VyZVVuaXQgeworICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOworICAgIEFT
Q0lJTGl0ZXJhbCBzdWJUeXBlOworfTsKKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCBlMGM0ZWQ0ZTdjOWM3ZDA2
NDBlMjRmNTkxNzgzZDVlYjdjNmE1OGY4Li5hOTI3N2I3N2Q4MGViZDI0OGYxZmYyNTQ4NDQyZWYx
OTI2OGE0NjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0
LmgKQEAgLTQ5MSw2ICs0OTEsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0
cmVhbWluZ0FwaSA9IGZhbHNlOwogICAgIHYoQm9vbCwgdXNlV2Vha1JlZnMsIGZhbHNlLCBOb3Jt
YWwsICJFeHBvc2UgdGhlIFdlYWtSZWYgY29uc3RydWN0b3IuIikgXAogICAgIHYoQm9vbCwgdXNl
QmlnSW50LCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSB3aWxsIGVuYWJsZSBCaWdJbnQgc3Vw
cG9ydC4iKSBcCiAgICAgdihCb29sLCB1c2VJbnRsRGlzcGxheU5hbWVzLCBmYWxzZSwgTm9ybWFs
LCAiRXhwb3NlIHRoZSBJbnRsLkRpc3BsYXlOYW1lcyBjb25zdHJ1Y3Rvci4iKSBcCisgICAgdihC
b29sLCB1c2VJbnRsRW51bWVyYXRpb24sIGZhbHNlLCBOb3JtYWwsICJFeHBvc2UgdGhlIEludGwg
ZW51bWVyYXRpb24gQVBJcy4iKSBcCiAgICAgdihCb29sLCB1c2VBcnJheUFsbG9jYXRpb25Qcm9m
aWxpbmcsIHRydWUsIE5vcm1hbCwgIklmIHRydWUsIHdlIHdpbGwgdXNlIG91ciBub3JtYWwgYXJy
YXkgYWxsb2NhdGlvbiBwcm9maWxpbmcuIElmIGZhbHNlLCB0aGUgYWxsb2NhdGlvbiBwcm9maWxl
IHdpbGwgYWx3YXlzIGNsYWltIHRvIGJlIHVuZGVjaWRlZC4iKSBcCiAgICAgdihCb29sLCBmb3Jj
ZVBvbHlQcm90bywgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIGNyZWF0ZV90aGlzIHdpbGwgYWx3
YXlzIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBhIHBvbHkgcHJvdG8gc3RydWN0dXJlLiIpIFwKICAg
ICB2KEJvb2wsIGZvcmNlTWluaVZNTW9kZSwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIGl0IHdp
bGwgZm9yY2UgbWluaSBWTSBtb2RlIG9uLiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3Bw
CmluZGV4IDI3ZjQ3ODNhMWFjZWUwMTVjNGFkOTdjZTRkY2Q2M2Q4NWQ5ZjU0ZmUuLjExNTZkNjk0
Y2MwMDRhM2UyYzg4NmJhMDUzZmViZTU5Mzc5N2ZlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcApAQCAtMTYzLDYgKzE2MywxMSBAQCBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
Y3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciogY2hhcmFjdGVycykKICAgICByZXR1cm4gY3Jl
YXRlRnJvbUxpdGVyYWwoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3RlcnMpKTsKIH0KIAorUmVm
PFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKEFTQ0lJTGl0ZXJhbCBs
aXRlcmFsKQoreworICAgIHJldHVybiBjcmVhdGVGcm9tTGl0ZXJhbChsaXRlcmFsLmNoYXJhY3Rl
cnMoKSwgbGl0ZXJhbC5sZW5ndGgoKSk7Cit9CisKIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBs
OjpjcmVhdGVXaXRob3V0Q29weWluZyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQg
bGVuZ3RoKQogewogICAgIGlmICghbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRl
eCAxNjllNWE3ZjExNjBiMzE1YmUxNGEyY2I3YmY5MDdlMTUyNzU5NzNmLi4xYzhjNDc5NDAwNjE1
YzlmYzUxZWFkNDBlNDg1MzliNjlkYjY5YjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0ltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlGYXN0UGF0aC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NvbnZl
cnNpb25Nb2RlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29tbW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaGVyLmg+CkBAIC0yNDcsNiArMjQ4LDcgQEAgY2xhc3MgU3Ry
aW5nSW1wbCA6IHByaXZhdGUgU3RyaW5nSW1wbFNoYXBlIHsKICAgICAvLyBGSVhNRTogUmVwbGFj
ZSBjYWxscyB0byB0aGVzZSBvdmVybG9hZHMgb2YgY3JlYXRlRnJvbUxpdGVyYWwgdG8gY3JlYXRl
V2l0aG91dENvcHlpbmcgaW5zdGVhZC4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJl
ZjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKiwgdW5zaWduZWQgbGVu
Z3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVh
dGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoQVNDSUlMaXRlcmFsKTsKIAogICAg
IFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVdpdGhvdXRD
b3B5aW5nKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVXaXRob3V0Q29weWluZyhjb25zdCBM
Q2hhciosIHVuc2lnbmVkIGxlbmd0aCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435960</attachid>
            <date>2021-08-20 02:37:28 -0700</date>
            <delta_ts>2021-08-20 02:38:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214795-20210820023728.patch</filename>
            <type>text/plain</type>
            <size>21912</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MmVhZDM3YmE2NzJlYzNkMzE1M2QyNzZkYmUwOTUyYzRjNjUwNWI2Li41MDlmMDIwMTk1M2FlMTQ4
ZWU2ZGQwYzRjNzkyN2NmYmY0NzgxMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMS0wOC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVy
Rm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6c2FuY3Rpb25lZFNpbXBsZVVuaXRJZGVudGlmaWVy
KToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpJbnRs
T2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmNhbm9uaWNhbGl6ZUNhbGVu
ZGFyTmFtZSk6CisgICAgICAgIChKU0M6OmF2YWlsYWJsZUNhbGVuZGFycyk6CisgICAgICAgIChK
U0M6OmNhbm9uaWNhbGl6ZUNvbGxhdGlvbk5hbWUpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVD
b2xsYXRpb25zKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlQ3VycmVuY2llcyk6CisgICAgICAg
IChKU0M6OmF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMpOgorICAgICAgICAoSlNDOjphdmFpbGFi
bGVUaW1lWm9uZXMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVVbml0cyk6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9JbnRsT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIxLTA4LTE5ICBU
aW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IDo6YmFja2Ry
b3AgcHNldWRvIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYjZjODk4ZWJmNjZlYTFmNTI1NzUzODkyYmQyMTZlYzMw
NDFlMTljOS4uMTg2OGUxNzU2NWMwMzJiM2M0N2E0NTBkYTZjNDY3MWZmMDViMmQ2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0wOC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5n
SW1wbC5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKToK
KyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisKIDIwMjEtMDgtMTkgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFs6aGFzKCkgcHNldWRvLWNsYXNz
XSBCYXNpYyBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4IDNkOTlmYjkxYTlhY2JhYjY1YzA4MWYzMzFkMzE1ODcw
M2ZiOWY3NDAuLmZjMzIzNzAzMjAyMmI0YzZkNjdkZDgxNTU5ZWMzMzViNTZiZDBkZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3Bw
CkBAIC0xNTEsNTkgKzE1MSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBjb21wdXRlQ3VycmVuY3lEaWdp
dHMoY29uc3QgU3RyaW5nJiBjdXJyZW5jeSkKICAgICByZXR1cm4gMjsKIH0KIAotLy8gQ3JlYXRl
IE1lYXN1cmVVbml0IGxpa2UgSUNVNEouCi1zdHJ1Y3QgTWVhc3VyZVVuaXQgewotICAgIEFTQ0lJ
TGl0ZXJhbCB0eXBlOwotICAgIEFTQ0lJTGl0ZXJhbCBzdWJUeXBlOwotfTsKLQogc3RhdGljIHN0
ZDo6b3B0aW9uYWw8TWVhc3VyZVVuaXQ+IHNhbmN0aW9uZWRTaW1wbGVVbml0SWRlbnRpZmllcihT
dHJpbmdWaWV3IHVuaXRJZGVudGlmaWVyKQogewotICAgIHN0YXRpYyBjb25zdGV4cHIgTWVhc3Vy
ZVVuaXQgc2ltcGxlVW5pdHNbXSA9IHsKLSAgICAgICAgeyAiYXJlYSJfcywgImFjcmUiX3MgfSwK
LSAgICAgICAgeyAiZGlnaXRhbCJfcywgImJpdCJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9z
LCAiYnl0ZSJfcyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImNlbHNpdXMiX3MgfSwK
LSAgICAgICAgeyAibGVuZ3RoIl9zLCAiY2VudGltZXRlciJfcyB9LAotICAgICAgICB7ICJkdXJh
dGlvbiJfcywgImRheSJfcyB9LAotICAgICAgICB7ICJhbmdsZSJfcywgImRlZ3JlZSJfcyB9LAot
ICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImZhaHJlbmhlaXQiX3MgfSwKLSAgICAgICAgeyAi
dm9sdW1lIl9zLCAiZmx1aWQtb3VuY2UiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAiZm9v
dCJfcyB9LAotICAgICAgICB7ICJ2b2x1bWUiX3MsICJnYWxsb24iX3MgfSwKLSAgICAgICAgeyAi
ZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImdpZ2Fi
eXRlIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3MsICJncmFtIl9zIH0sCi0gICAgICAgIHsgImFy
ZWEiX3MsICJoZWN0YXJlIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAiaG91ciJfcyB9
LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJpbmNoIl9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwi
X3MsICJraWxvYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYnl0ZSJfcyB9
LAotICAgICAgICB7ICJtYXNzIl9zLCAia2lsb2dyYW0iX3MgfSwKLSAgICAgICAgeyAibGVuZ3Ro
Il9zLCAia2lsb21ldGVyIl9zIH0sCi0gICAgICAgIHsgInZvbHVtZSJfcywgImxpdGVyIl9zIH0s
Ci0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0
YWwiX3MsICJtZWdhYnl0ZSJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJtZXRlciJfcyB9
LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJtaWxlIl9zIH0sCi0gICAgICAgIHsgImxlbmd0aCJf
cywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCi0gICAgICAgIHsgInZvbHVtZSJfcywgIm1pbGxp
bGl0ZXIiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAibWlsbGltZXRlciJfcyB9LAotICAg
ICAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0sCi0gICAgICAgIHsgImR1cmF0
aW9uIl9zLCAibWludXRlIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAibW9udGgiX3Mg
fSwKLSAgICAgICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0sCi0gICAgICAgIHsgImNvbmNlbnRy
Il9zLCAicGVyY2VudCJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAicGV0YWJ5dGUiX3Mg
fSwKLSAgICAgICAgeyAibWFzcyJfcywgInBvdW5kIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9u
Il9zLCAic2Vjb25kIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3MsICJzdG9uZSJfcyB9LAotICAg
ICAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJpdCJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9z
LCAidGVyYWJ5dGUiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJ3ZWVrIl9zIH0sCi0g
ICAgICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3Ms
ICJ5ZWFyIl9zIH0sCi0gICAgfTsKICAgICBBU1NFUlQoCiAgICAgICAgIHN0ZDo6aXNfc29ydGVk
KHN0ZDo6YmVnaW4oc2ltcGxlVW5pdHMpLCBzdGQ6OmVuZChzaW1wbGVVbml0cyksCiAgICAgICAg
ICAgICBbXShjb25zdCBNZWFzdXJlVW5pdCYgYSwgY29uc3QgTWVhc3VyZVVuaXQmIGIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggZTE0MDNj
ZjBkMTc3MjQwODA1MjgxZDY1MmM4MjMwMmQxZWJkOTViZS4uMDQ2YTI0YzI2OGZjYjI2MzIxZDVl
ZTU3YjM2YTkxZmNkOGZkMmQwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE9iamVjdC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgorI2luY2x1
ZGUgPHVuaWNvZGUvdWNhbC5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWNvbC5oPgogI2luY2x1ZGUg
PHVuaWNvZGUvdWZpZWxkcG9zaXRlci5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgpAQCAt
NzQsNiArNzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZ
X0RFU1RSVUNUSUJMRShJbnRsT2JqZWN0KTsKIAogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2NhbGVzKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jU3VwcG9ydGVkVmFsdWVzT2YpOwogCiBz
dGF0aWMgSlNWYWx1ZSBjcmVhdGVDb2xsYXRvckNvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3Qq
IG9iamVjdCkKIHsKQEAgLTE3MSw2ICsxNzMsNTIgQEAgdm9pZCBVRmllbGRQb3NpdGlvbkl0ZXJh
dG9yRGVsZXRlcjo6b3BlcmF0b3IoKShVRmllbGRQb3NpdGlvbkl0ZXJhdG9yKiBpdGVyYXRvcikK
ICAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9zZShpdGVyYXRvcik7CiB9CiAKK2NvbnN0IE1lYXN1
cmVVbml0IHNpbXBsZVVuaXRzWzQzXSA9IHsKKyAgICB7ICJhcmVhIl9zLCAiYWNyZSJfcyB9LAor
ICAgIHsgImRpZ2l0YWwiX3MsICJiaXQiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAiYnl0ZSJf
cyB9LAorICAgIHsgInRlbXBlcmF0dXJlIl9zLCAiY2Vsc2l1cyJfcyB9LAorICAgIHsgImxlbmd0
aCJfcywgImNlbnRpbWV0ZXIiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgImRheSJfcyB9LAor
ICAgIHsgImFuZ2xlIl9zLCAiZGVncmVlIl9zIH0sCisgICAgeyAidGVtcGVyYXR1cmUiX3MsICJm
YWhyZW5oZWl0Il9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAiZmx1aWQtb3VuY2UiX3MgfSwKKyAg
ICB7ICJsZW5ndGgiX3MsICJmb290Il9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAiZ2FsbG9uIl9z
IH0sCisgICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9z
LCAiZ2lnYWJ5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAiZ3JhbSJfcyB9LAorICAgIHsgImFy
ZWEiX3MsICJoZWN0YXJlIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJob3VyIl9zIH0sCisg
ICAgeyAibGVuZ3RoIl9zLCAiaW5jaCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYml0
Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImtpbG9ieXRlIl9zIH0sCisgICAgeyAibWFzcyJf
cywgImtpbG9ncmFtIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAia2lsb21ldGVyIl9zIH0sCisg
ICAgeyAidm9sdW1lIl9zLCAibGl0ZXIiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAibWVnYWJp
dCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYnl0ZSJfcyB9LAorICAgIHsgImxlbmd0
aCJfcywgIm1ldGVyIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAibWlsZSJfcyB9LAorICAgIHsg
Imxlbmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAi
bWlsbGlsaXRlciJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1pbGxpbWV0ZXIiX3MgfSwKKyAg
ICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3Ms
ICJtaW51dGUiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1vbnRoIl9zIH0sCisgICAgeyAi
bWFzcyJfcywgIm91bmNlIl9zIH0sCisgICAgeyAiY29uY2VudHIiX3MsICJwZXJjZW50Il9zIH0s
CisgICAgeyAiZGlnaXRhbCJfcywgInBldGFieXRlIl9zIH0sCisgICAgeyAibWFzcyJfcywgInBv
dW5kIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJzZWNvbmQiX3MgfSwKKyAgICB7ICJtYXNz
Il9zLCAic3RvbmUiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJpdCJfcyB9LAorICAg
IHsgImRpZ2l0YWwiX3MsICJ0ZXJhYnl0ZSJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9zLCAid2Vl
ayJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJf
cywgInllYXIiX3MgfSwKK307CisKIEludGxPYmplY3Q6OkludGxPYmplY3QoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKIHsKQEAgLTE4Myw3
ICsyMzEsNyBAQCBJbnRsT2JqZWN0KiBJbnRsT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqCiAgICAgcmV0dXJuIG9iamVjdDsKIH0K
IAotdm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KikKK3ZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBB
U1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwpAQCAtMTk4LDYgKzI0Niw4IEBAIHZvaWQgSW50
bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCopCiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTSgmY3JlYXRlTGlzdEZvcm1hdENvbnN0cnVjdG9yKTsKICNlbmRpZgor
ICAgIGlmIChPcHRpb25zOjp1c2VJbnRsRW51bWVyYXRpb24oKSkKKyAgICAgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1cHBvcnRlZFZhbHVlc09mIiwgaW50bE9i
amVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogfQogCiBTdHJ1Y3R1cmUqIEludGxPYmplY3Q6OmNy
ZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQpAQCAtMTQ4Myw0ICsxNTMzLDI3MSBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2NhbGVzLCAoSlNHbG9iYWxPYmplY3Qq
IGdsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9jYWxlQXJyYXkpOwogfQogCitzdGF0
aWMgU3RyaW5nIGNhbm9uaWNhbGl6ZUNhbGVuZGFyTmFtZShjb25zdCBTdHJpbmcmIGNhbGVuZGFy
KQoreworICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS91bmljb2RlLW9yZy9jbGRyL2Jsb2IvbWFz
dGVyL2NvbW1vbi9iY3A0Ny9jYWxlbmRhci54bWwKKyAgICAvLyAiYWxpYXMiIHNob3VsZCBiZSBj
YW5vbmljYWxpemVkIHRvIHRoZSBub24tYWxpYXMgbmFtZS4KKyAgICAvLyAiaXNsYW1pY2MiIGlz
IGRlcHJlY2F0ZWQgbmFtZSwgd2hpY2ggd2lsbCBiZSByZXBsYWNlZCB3aXRoICJpc2xhbWljLWNp
dmlsIiwgYW5kIElDVSAoYXQgbGVhc3QgNjYpIGlzIG5vdCBnZW5lcmF0aW5nICJpc2xhbWljYyIu
CisgICAgaWYgKGNhbGVuZGFyID09ICJncmVnb3JpYW4iX3MpCisgICAgICAgIHJldHVybiAiZ3Jl
Z29yeSJfczsKKyAgICBpZiAoY2FsZW5kYXIgPT0gImV0aGlvcGljLWFtZXRlLWFsZW0iX3MpCisg
ICAgICAgIHJldHVybiAiZXRoaW9hYSJfczsKKyAgICByZXR1cm4gY2FsZW5kYXI7Cit9CisKKy8v
IGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxl
Y2FsZW5kYXJzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ2FsZW5kYXJzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNv
ZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVu
aXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9nZXRL
ZXl3b3JkVmFsdWVzRm9yTG9jYWxlKCJjYWxlbmRhcnMiLCAidW5kIiwgZmFsc2UsICZzdGF0dXMp
KTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVu
ZGFycyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3Vu
dCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9G
QUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJfcyk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6
dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBl
RHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3Vs
dCkgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7
CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGluZGV4ID0g
MDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7
CisgICAgICAgIGNvbnN0IGNoYXIqIGNhbGVuZGFyID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5n
ZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkg
eworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxl
ZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJfcyk7CisgICAgICAgICAgICByZXR1
cm4geyB9OworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFs
T2JqZWN0LCBpbmRleCwganNTdHJpbmcodm0sIGNhbm9uaWNhbGl6ZUNhbGVuZGFyTmFtZShTdHJp
bmcoY2FsZW5kYXIsIGxlbmd0aCkpKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBTdHJpbmcg
Y2Fub25pY2FsaXplQ29sbGF0aW9uTmFtZShjb25zdCBTdHJpbmcmIGNvbGxhdGlvbikKK3sKKyAg
ICAvLyBNYXAga2V5d29yZCB2YWx1ZXMgdG8gQkNQIDQ3IGVxdWl2YWxlbnRzLgorICAgIGlmIChj
b2xsYXRpb24gPT0gImRpY3Rpb25hcnkiX3MpCisgICAgICAgIHJldHVybiAiZGljdCJfczsKKyAg
ICBpZiAoY29sbGF0aW9uID09ICJnYjIzMTJoYW4iX3MpCisgICAgICAgIHJldHVybiAiZ2IyMzEy
Il9zOworICAgIGlmIChjb2xsYXRpb24gPT0gInBob25lYm9vayJfcykKKyAgICAgICAgcmV0dXJu
ICJwaG9uZWJrIl9zOworICAgIGlmIChjb2xsYXRpb24gPT0gInRyYWRpdGlvbmFsIl9zKQorICAg
ICAgICByZXR1cm4gInRyYWQiX3M7CisgICAgcmV0dXJuIGNvbGxhdGlvbjsKK30KKworLy8gaHR0
cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGVjb2xs
YXRpb25zCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ29sbGF0aW9ucyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2Rl
IHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlx
dWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVjb2xfZ2V0S2V5
d29yZFZhbHVlc0ZvckxvY2FsZSgiY29sbGF0aW9uIiwgInVuZCIsIGZhbHNlLCAmc3RhdHVzKSk7
CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjb2xsYXRp
b25zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50
ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY29sbGF0aW9ucyJfcyk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6
dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBl
RHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3Vs
dCkgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7
CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGluZGV4ID0g
MDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7
CisgICAgICAgIGNvbnN0IGNoYXIqIGNhbGVuZGFyID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5n
ZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkg
eworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxl
ZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOworICAgICAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2Jh
bE9iamVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBjYW5vbmljYWxpemVDb2xsYXRpb25OYW1lKFN0
cmluZyhjYWxlbmRhciwgbGVuZ3RoKSkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gaHR0cHM6Ly90
YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGVjdXJyZW5jaWVz
CitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ3VycmVuY2llcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1
cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRy
PFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVjdXJyX29wZW5JU09DdXJy
ZW5jaWVzKFVDVVJSX0NPTU1PTiB8IFVDVVJSX05PTl9ERVBSRUNBVEVELCAmc3RhdHVzKSk7Cisg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjdXJyZW5jaWVz
Il9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50ID0g
dWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxV
UkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY3VycmVuY2llcyJfcyk7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6dHJ5
Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVy
aW5nQWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3VsdCkg
eworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Cisg
ICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsg
aW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7Cisg
ICAgICAgIGNvbnN0IGNoYXIqIGN1cnJlbmN5ID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5nZXQo
KSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgewor
ICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0
byBlbnVtZXJhdGUgYXZhaWxhYmxlIGN1cnJlbmNpZXMiX3MpOworICAgICAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9i
amVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBTdHJpbmcoY3VycmVuY3ksIGxlbmd0aCkpKTsKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRp
b24vI3NlYy1hdmFpbGFibGVudW1iZXJpbmdzeXN0ZW1zCitzdGF0aWMgSlNBcnJheSogYXZhaWxh
YmxlTnVtYmVyaW5nU3lzdGVtcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsK
KyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNV
RGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVudW1zeXNfb3BlbkF2YWlsYWJsZU5hbWVzKCZzdGF0dXMp
KTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIG51bWJl
cmluZyBzeXN0ZW1zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpbnQz
Ml90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMpOworICAg
IGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVyaW5nIHN5
c3RlbXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIEpTQXJyYXkqIHJl
c3VsdCA9IEpTQXJyYXk6OnRyeUNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVy
ZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoVW5kZWNpZGVkKSwgMCk7
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGZvciAo
aW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50
MzJfdCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBudW1iZXJpbmdTeXN0ZW0gPSB1
ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAg
aWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVyaW5n
IHN5c3RlbXMiX3MpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAg
ICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgsIGpzU3RyaW5nKHZt
LCBTdHJpbmcobnVtYmVyaW5nU3lzdGVtLCBsZW5ndGgpKSk7CisgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8v
IGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxl
dGltZXpvbmVzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlVGltZVpvbmVzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNv
ZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVu
aXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9vcGVu
VGltZVpvbmVJREVudW1lcmF0aW9uKFVDQUxfWk9ORV9UWVBFX0NBTk9OSUNBTCwgbnVsbHB0ciwg
bnVsbHB0ciwgJnN0YXR1cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAg
ICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0
ZSBhdmFpbGFibGUgdGltZXpvbmVzIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisK
KyAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0
dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgdGlt
ZXpvbmVzIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBKU0FycmF5KiBy
ZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1
cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aFVuZGVjaWRlZCksIDAp
OworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBmb3Ig
KGludDMyX3QgaW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CisgICAgICAgIGlu
dDMyX3QgbGVuZ3RoID0gMDsKKyAgICAgICAgY29uc3QgY2hhciogdGltZVpvbmVJRCA9IHVlbnVt
X25leHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICBpZiAo
VV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSB0aW1lem9uZXMiX3Mp
OworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQtPnB1
dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBTdHJpbmcodGlt
ZVpvbmVJRCwgbGVuZ3RoKSkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBodHRwczovL3RjMzkuZXMv
cHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWlsYWJsZXVuaXRzCitzdGF0aWMgSlNB
cnJheSogYXZhaWxhYmxlVW5pdHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6dHJ5Q3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5n
QWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3VsdCkgewor
ICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBpbmRleCA9IDA7CisgICAgZm9y
IChjb25zdCBNZWFzdXJlVW5pdCYgdW5pdCA6IHNpbXBsZVVuaXRzKSB7CisgICAgICAgIHJlc3Vs
dC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCsrLCBqc1N0cmluZyh2bSwgU3Ry
aW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwodW5pdC5zdWJUeXBlKSkpOworICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWlu
dGwuc3VwcG9ydGVkdmFsdWVzb2YKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpbnRsT2JqZWN0
RnVuY1N1cHBvcnRlZFZhbHVlc09mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBTdHJpbmcg
a2V5ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAoa2V5ID09ICJj
YWxlbmRhciJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoYXZhaWxhYmxlQ2FsZW5kYXJzKGdsb2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkg
PT0gImNvbGxhdGlvbiJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUoYXZhaWxhYmxlQ29sbGF0aW9ucyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBp
ZiAoa2V5ID09ICJjdXJyZW5jeSJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoYXZhaWxhYmxlQ3VycmVuY2llcyhnbG9iYWxPYmplY3QpKSk7CisK
KyAgICBpZiAoa2V5ID09ICJudW1iZXJpbmdTeXN0ZW0iX3MpCisgICAgICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMo
Z2xvYmFsT2JqZWN0KSkpOworCisgICAgaWYgKGtleSA9PSAidGltZVpvbmUiX3MpCisgICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGF2YWlsYWJsZVRpbWVa
b25lcyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBpZiAoa2V5ID09ICJ1bml0Il9zKQorICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVVbml0
cyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICB0aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgIlVua25vd24ga2V5IGZvciBJbnRsLnN1cHBvcnRlZFZhbHVlc09mIl9zKTsKKyAgICBy
ZXR1cm4geyB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxPYmplY3QuaAppbmRleCBlZTZjOTZhZTAxMTc1MjczYTNkOTUyOTg2ZGZl
ODU3ODQzMjM5ZWUxLi4zYmJiNDFkMTJlYjM5NDI3ZTI5YThhYzY5NDM5YTRhZGQ0NjVkNzQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBAIC02MCw2ICs2
MCwxMyBAQCBKU0NfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05fS0VZUyhKU0NfREVDTEFSRV9JTlRM
X1JFTEVWQU5UX0VYVEVOU0lPTl9LRVlTKQogc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IG51bWJl
ck9mUmVsZXZhbnRFeHRlbnNpb25LZXlzID0gMCBKU0NfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05f
S0VZUyhKU0NfQ09VTlRfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05fS0VZUyk7CiAjdW5kZWYgSlND
X0NPVU5UX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMKIAorc3RydWN0IE1lYXN1cmVVbml0
IHsKKyAgICBBU0NJSUxpdGVyYWwgdHlwZTsKKyAgICBBU0NJSUxpdGVyYWwgc3ViVHlwZTsKK307
CisKK2V4dGVybiBKU19FWFBPUlRfUFJJVkFURSBjb25zdCBNZWFzdXJlVW5pdCBzaW1wbGVVbml0
c1s0M107CisKIGNsYXNzIEludGxPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCAwZTFmYzU4N2E1Yjdj
MzE3OTM4ZjVmNmQ1YzE5OWRlZmUwZTcwNTc0Li4xZGZkMDk1Y2U4ZjBjNGYwOTgwMzUxOWZjY2Jk
ODg3OGNlZGMxYjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNM
aXN0LmgKQEAgLTU0NCw2ICs1NDQsNyBAQCBib29sIGNhblVzZVdlYkFzc2VtYmx5RmFzdE1lbW9y
eSgpOwogICAgIHYoQm9vbCwgdXNlV2Vha1JlZnMsIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUg
V2Vha1JlZiBjb25zdHJ1Y3Rvci4iKSBcCiAgICAgdihCb29sLCB1c2VJbnRsRGF0ZVRpbWVGb3Jt
YXREYXlQZXJpb2QsIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgSW50bC5EYXRlVGltZUZvcm1h
dCBkYXlQZXJpb2QgZmVhdHVyZS4iKSBcCiAgICAgdihCb29sLCB1c2VJbnRsRGF0ZVRpbWVGb3Jt
YXRSYW5nZVRvUGFydHMsIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgSW50bC5EYXRlVGltZUZv
cm1hdCNmb3JtYXRSYW5nZVRvUGFydHMgZmVhdHVyZS4iKSBcCisgICAgdihCb29sLCB1c2VJbnRs
RW51bWVyYXRpb24sIGZhbHNlLCBOb3JtYWwsICJFeHBvc2UgdGhlIEludGwgZW51bWVyYXRpb24g
QVBJcy4iKSBcCiAgICAgdihCb29sLCB1c2VBdE1ldGhvZCwgZmFsc2UsIE5vcm1hbCwgIkV4cG9z
ZSB0aGUgYXQoKSBtZXRob2Qgb24gQXJyYXksICVUeXBlZEFycmF5JSwgYW5kIFN0cmluZy4iKSBc
CiAgICAgdihCb29sLCB1c2VFcnJvckNhdXNlLCB0cnVlLCBOb3JtYWwsICJBbGxvdyBhIGNhdXNl
IHRvIGJlIHByb3ZpZGVkIHdoZW4gY29uc3RydWN0aW5nIGFuIEVycm9yLCBfTmF0aXZlRXJyb3Jf
LCBvciBBZ2dyZWdhdGVFcnJvci4iKSBcCiAgICAgdihCb29sLCB1c2VTaGFyZWRBcnJheUJ1ZmZl
ciwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdJbXBsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAK
aW5kZXggN2QzZjM0NjMxYWM4ZTc5NzVlOWY0NDg3MzU1M2NlZjFlZDc4ZDAzZi4uNzRmNTY5ODgy
ZTZkNDY5NDk4M2Y3MTkwYTE3NzAyMTZkYTI2Y2M4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0lt
cGwuY3BwCkBAIC0xNjMsNiArMTYzLDExIEBAIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpj
cmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQogICAgIHJldHVybiBjcmVh
dGVGcm9tTGl0ZXJhbChjaGFyYWN0ZXJzLCBzdHJsZW4oY2hhcmFjdGVycykpOwogfQogCitSZWY8
U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoQVNDSUlMaXRlcmFsIGxp
dGVyYWwpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZyb21MaXRlcmFsKGxpdGVyYWwuY2hhcmFjdGVy
cygpLCBsaXRlcmFsLmxlbmd0aCgpKTsKK30KKwogUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6
OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4
IDQyMDNjMWM4MjU0MWE5ZDg3ZDdiNWIwZmJiNzQ4YjE2YWNhNTg4NWUuLmFkYTlkNDFiMDJhODk0
NmRiNzMxZmFhZmI5ZGVjNjdhY2FmZTVkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvQVNDSUlMaXRlcmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ29udmVy
c2lvbk1vZGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdDb21tb24uaD4KQEAgLTI0OSw2ICsyNTAsNyBAQCBjbGFzcyBTdHJp
bmdJbXBsIDogcHJpdmF0ZSBTdHJpbmdJbXBsU2hhcGUgewogICAgIC8vIEZJWE1FOiBSZXBsYWNl
IGNhbGxzIHRvIHRoZXNlIG92ZXJsb2FkcyBvZiBjcmVhdGVGcm9tTGl0ZXJhbCB0byBjcmVhdGVX
aXRob3V0Q29weWluZyBpbnN0ZWFkLgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVm
PFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCBsZW5n
dGgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0
ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIqKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChBU0NJSUxpdGVyYWwpOwogCiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlV2l0aG91dENv
cHlpbmcoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVdpdGhvdXRDb3B5aW5nKGNvbnN0IExD
aGFyKiwgdW5zaWduZWQgbGVuZ3RoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435962</attachid>
            <date>2021-08-20 02:38:56 -0700</date>
            <delta_ts>2021-08-21 16:27:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214795-20210820023855.patch</filename>
            <type>text/plain</type>
            <size>21911</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MmVhZDM3YmE2NzJlYzNkMzE1M2QyNzZkYmUwOTUyYzRjNjUwNWI2Li41MDlmMDIwMTk1M2FlMTQ4
ZWU2ZGQwYzRjNzkyN2NmYmY0NzgxMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMS0wOC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVy
Rm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6c2FuY3Rpb25lZFNpbXBsZVVuaXRJZGVudGlmaWVy
KToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpJbnRs
T2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmNhbm9uaWNhbGl6ZUNhbGVu
ZGFyTmFtZSk6CisgICAgICAgIChKU0M6OmF2YWlsYWJsZUNhbGVuZGFycyk6CisgICAgICAgIChK
U0M6OmNhbm9uaWNhbGl6ZUNvbGxhdGlvbk5hbWUpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVD
b2xsYXRpb25zKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlQ3VycmVuY2llcyk6CisgICAgICAg
IChKU0M6OmF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMpOgorICAgICAgICAoSlNDOjphdmFpbGFi
bGVUaW1lWm9uZXMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVVbml0cyk6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9JbnRsT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIxLTA4LTE5ICBU
aW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IDo6YmFja2Ry
b3AgcHNldWRvIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYjZjODk4ZWJmNjZlYTFmNTI1NzUzODkyYmQyMTZlYzMw
NDFlMTljOS4uMTg2OGUxNzU2NWMwMzJiM2M0N2E0NTBkYTZjNDY3MWZmMDViMmQ2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0wOC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5n
SW1wbC5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKToK
KyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisKIDIwMjEtMDgtMTkgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFs6aGFzKCkgcHNldWRvLWNsYXNz
XSBCYXNpYyBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4IDNkOTlmYjkxYTlhY2JhYjY1YzA4MWYzMzFkMzE1ODcw
M2ZiOWY3NDAuLmZjMzIzNzAzMjAyMmI0YzZkNjdkZDgxNTU5ZWMzMzViNTZiZDBkZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3Bw
CkBAIC0xNTEsNTkgKzE1MSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBjb21wdXRlQ3VycmVuY3lEaWdp
dHMoY29uc3QgU3RyaW5nJiBjdXJyZW5jeSkKICAgICByZXR1cm4gMjsKIH0KIAotLy8gQ3JlYXRl
IE1lYXN1cmVVbml0IGxpa2UgSUNVNEouCi1zdHJ1Y3QgTWVhc3VyZVVuaXQgewotICAgIEFTQ0lJ
TGl0ZXJhbCB0eXBlOwotICAgIEFTQ0lJTGl0ZXJhbCBzdWJUeXBlOwotfTsKLQogc3RhdGljIHN0
ZDo6b3B0aW9uYWw8TWVhc3VyZVVuaXQ+IHNhbmN0aW9uZWRTaW1wbGVVbml0SWRlbnRpZmllcihT
dHJpbmdWaWV3IHVuaXRJZGVudGlmaWVyKQogewotICAgIHN0YXRpYyBjb25zdGV4cHIgTWVhc3Vy
ZVVuaXQgc2ltcGxlVW5pdHNbXSA9IHsKLSAgICAgICAgeyAiYXJlYSJfcywgImFjcmUiX3MgfSwK
LSAgICAgICAgeyAiZGlnaXRhbCJfcywgImJpdCJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9z
LCAiYnl0ZSJfcyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImNlbHNpdXMiX3MgfSwK
LSAgICAgICAgeyAibGVuZ3RoIl9zLCAiY2VudGltZXRlciJfcyB9LAotICAgICAgICB7ICJkdXJh
dGlvbiJfcywgImRheSJfcyB9LAotICAgICAgICB7ICJhbmdsZSJfcywgImRlZ3JlZSJfcyB9LAot
ICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImZhaHJlbmhlaXQiX3MgfSwKLSAgICAgICAgeyAi
dm9sdW1lIl9zLCAiZmx1aWQtb3VuY2UiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAiZm9v
dCJfcyB9LAotICAgICAgICB7ICJ2b2x1bWUiX3MsICJnYWxsb24iX3MgfSwKLSAgICAgICAgeyAi
ZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImdpZ2Fi
eXRlIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3MsICJncmFtIl9zIH0sCi0gICAgICAgIHsgImFy
ZWEiX3MsICJoZWN0YXJlIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAiaG91ciJfcyB9
LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJpbmNoIl9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwi
X3MsICJraWxvYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYnl0ZSJfcyB9
LAotICAgICAgICB7ICJtYXNzIl9zLCAia2lsb2dyYW0iX3MgfSwKLSAgICAgICAgeyAibGVuZ3Ro
Il9zLCAia2lsb21ldGVyIl9zIH0sCi0gICAgICAgIHsgInZvbHVtZSJfcywgImxpdGVyIl9zIH0s
Ci0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0
YWwiX3MsICJtZWdhYnl0ZSJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJtZXRlciJfcyB9
LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJtaWxlIl9zIH0sCi0gICAgICAgIHsgImxlbmd0aCJf
cywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCi0gICAgICAgIHsgInZvbHVtZSJfcywgIm1pbGxp
bGl0ZXIiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAibWlsbGltZXRlciJfcyB9LAotICAg
ICAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0sCi0gICAgICAgIHsgImR1cmF0
aW9uIl9zLCAibWludXRlIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAibW9udGgiX3Mg
fSwKLSAgICAgICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0sCi0gICAgICAgIHsgImNvbmNlbnRy
Il9zLCAicGVyY2VudCJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAicGV0YWJ5dGUiX3Mg
fSwKLSAgICAgICAgeyAibWFzcyJfcywgInBvdW5kIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9u
Il9zLCAic2Vjb25kIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3MsICJzdG9uZSJfcyB9LAotICAg
ICAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJpdCJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9z
LCAidGVyYWJ5dGUiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJ3ZWVrIl9zIH0sCi0g
ICAgICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3Ms
ICJ5ZWFyIl9zIH0sCi0gICAgfTsKICAgICBBU1NFUlQoCiAgICAgICAgIHN0ZDo6aXNfc29ydGVk
KHN0ZDo6YmVnaW4oc2ltcGxlVW5pdHMpLCBzdGQ6OmVuZChzaW1wbGVVbml0cyksCiAgICAgICAg
ICAgICBbXShjb25zdCBNZWFzdXJlVW5pdCYgYSwgY29uc3QgTWVhc3VyZVVuaXQmIGIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggZTE0MDNj
ZjBkMTc3MjQwODA1MjgxZDY1MmM4MjMwMmQxZWJkOTViZS4uMDQ2YTI0YzI2OGZjYjI2MzIxZDVl
ZTU3YjM2YTkxZmNkOGZkMmQwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE9iamVjdC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgorI2luY2x1
ZGUgPHVuaWNvZGUvdWNhbC5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWNvbC5oPgogI2luY2x1ZGUg
PHVuaWNvZGUvdWZpZWxkcG9zaXRlci5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgpAQCAt
NzQsNiArNzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZ
X0RFU1RSVUNUSUJMRShJbnRsT2JqZWN0KTsKIAogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2NhbGVzKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jU3VwcG9ydGVkVmFsdWVzT2YpOwogCiBz
dGF0aWMgSlNWYWx1ZSBjcmVhdGVDb2xsYXRvckNvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3Qq
IG9iamVjdCkKIHsKQEAgLTE3MSw2ICsxNzMsNTIgQEAgdm9pZCBVRmllbGRQb3NpdGlvbkl0ZXJh
dG9yRGVsZXRlcjo6b3BlcmF0b3IoKShVRmllbGRQb3NpdGlvbkl0ZXJhdG9yKiBpdGVyYXRvcikK
ICAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9zZShpdGVyYXRvcik7CiB9CiAKK2NvbnN0IE1lYXN1
cmVVbml0IHNpbXBsZVVuaXRzWzQzXSA9IHsKKyAgICB7ICJhcmVhIl9zLCAiYWNyZSJfcyB9LAor
ICAgIHsgImRpZ2l0YWwiX3MsICJiaXQiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAiYnl0ZSJf
cyB9LAorICAgIHsgInRlbXBlcmF0dXJlIl9zLCAiY2Vsc2l1cyJfcyB9LAorICAgIHsgImxlbmd0
aCJfcywgImNlbnRpbWV0ZXIiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgImRheSJfcyB9LAor
ICAgIHsgImFuZ2xlIl9zLCAiZGVncmVlIl9zIH0sCisgICAgeyAidGVtcGVyYXR1cmUiX3MsICJm
YWhyZW5oZWl0Il9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAiZmx1aWQtb3VuY2UiX3MgfSwKKyAg
ICB7ICJsZW5ndGgiX3MsICJmb290Il9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAiZ2FsbG9uIl9z
IH0sCisgICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9z
LCAiZ2lnYWJ5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAiZ3JhbSJfcyB9LAorICAgIHsgImFy
ZWEiX3MsICJoZWN0YXJlIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJob3VyIl9zIH0sCisg
ICAgeyAibGVuZ3RoIl9zLCAiaW5jaCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYml0
Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImtpbG9ieXRlIl9zIH0sCisgICAgeyAibWFzcyJf
cywgImtpbG9ncmFtIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAia2lsb21ldGVyIl9zIH0sCisg
ICAgeyAidm9sdW1lIl9zLCAibGl0ZXIiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAibWVnYWJp
dCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYnl0ZSJfcyB9LAorICAgIHsgImxlbmd0
aCJfcywgIm1ldGVyIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAibWlsZSJfcyB9LAorICAgIHsg
Imxlbmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAi
bWlsbGlsaXRlciJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1pbGxpbWV0ZXIiX3MgfSwKKyAg
ICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3Ms
ICJtaW51dGUiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1vbnRoIl9zIH0sCisgICAgeyAi
bWFzcyJfcywgIm91bmNlIl9zIH0sCisgICAgeyAiY29uY2VudHIiX3MsICJwZXJjZW50Il9zIH0s
CisgICAgeyAiZGlnaXRhbCJfcywgInBldGFieXRlIl9zIH0sCisgICAgeyAibWFzcyJfcywgInBv
dW5kIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJzZWNvbmQiX3MgfSwKKyAgICB7ICJtYXNz
Il9zLCAic3RvbmUiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJpdCJfcyB9LAorICAg
IHsgImRpZ2l0YWwiX3MsICJ0ZXJhYnl0ZSJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9zLCAid2Vl
ayJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJf
cywgInllYXIiX3MgfSwKK307CisKIEludGxPYmplY3Q6OkludGxPYmplY3QoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKIHsKQEAgLTE4Myw3
ICsyMzEsNyBAQCBJbnRsT2JqZWN0KiBJbnRsT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqCiAgICAgcmV0dXJuIG9iamVjdDsKIH0K
IAotdm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KikKK3ZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBB
U1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwpAQCAtMTk4LDYgKzI0Niw4IEBAIHZvaWQgSW50
bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCopCiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTSgmY3JlYXRlTGlzdEZvcm1hdENvbnN0cnVjdG9yKTsKICNlbmRpZgor
ICAgIGlmIChPcHRpb25zOjp1c2VJbnRsRW51bWVyYXRpb24oKSkKKyAgICAgICAgSlNDX05BVElW
RV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1cHBvcnRlZFZhbHVlc09mIiwgaW50bE9i
amVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogfQogCiBTdHJ1Y3R1cmUqIEludGxPYmplY3Q6OmNy
ZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQpAQCAtMTQ4Myw0ICsxNTMzLDI3MSBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2NhbGVzLCAoSlNHbG9iYWxPYmplY3Qq
IGdsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobG9jYWxlQXJyYXkpOwogfQogCitzdGF0
aWMgU3RyaW5nIGNhbm9uaWNhbGl6ZUNhbGVuZGFyTmFtZShjb25zdCBTdHJpbmcmIGNhbGVuZGFy
KQoreworICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS91bmljb2RlLW9yZy9jbGRyL2Jsb2IvbWFz
dGVyL2NvbW1vbi9iY3A0Ny9jYWxlbmRhci54bWwKKyAgICAvLyAiYWxpYXMiIHNob3VsZCBiZSBj
YW5vbmljYWxpemVkIHRvIHRoZSBub24tYWxpYXMgbmFtZS4KKyAgICAvLyAiaXNsYW1pY2MiIGlz
IGRlcHJlY2F0ZWQgbmFtZSwgd2hpY2ggd2lsbCBiZSByZXBsYWNlZCB3aXRoICJpc2xhbWljLWNp
dmlsIiwgYW5kIElDVSAoYXQgbGVhc3QgNjYpIGlzIG5vdCBnZW5lcmF0aW5nICJpc2xhbWljYyIu
CisgICAgaWYgKGNhbGVuZGFyID09ICJncmVnb3JpYW4iX3MpCisgICAgICAgIHJldHVybiAiZ3Jl
Z29yeSJfczsKKyAgICBpZiAoY2FsZW5kYXIgPT0gImV0aGlvcGljLWFtZXRlLWFsZW0iX3MpCisg
ICAgICAgIHJldHVybiAiZXRoaW9hYSJfczsKKyAgICByZXR1cm4gY2FsZW5kYXI7Cit9CisKKy8v
IGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxl
Y2FsZW5kYXJzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ2FsZW5kYXJzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNv
ZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVu
aXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9nZXRL
ZXl3b3JkVmFsdWVzRm9yTG9jYWxlKCJjYWxlbmRhcnMiLCAidW5kIiwgZmFsc2UsICZzdGF0dXMp
KTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVu
ZGFycyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3Vu
dCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9G
QUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJfcyk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6
dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBl
RHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3Vs
dCkgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7
CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGluZGV4ID0g
MDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7
CisgICAgICAgIGNvbnN0IGNoYXIqIGNhbGVuZGFyID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5n
ZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkg
eworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxl
ZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJfcyk7CisgICAgICAgICAgICByZXR1
cm4geyB9OworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFs
T2JqZWN0LCBpbmRleCwganNTdHJpbmcodm0sIGNhbm9uaWNhbGl6ZUNhbGVuZGFyTmFtZShTdHJp
bmcoY2FsZW5kYXIsIGxlbmd0aCkpKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBTdHJpbmcg
Y2Fub25pY2FsaXplQ29sbGF0aW9uTmFtZShjb25zdCBTdHJpbmcmIGNvbGxhdGlvbikKK3sKKyAg
ICAvLyBNYXAga2V5d29yZCB2YWx1ZXMgdG8gQkNQIDQ3IGVxdWl2YWxlbnRzLgorICAgIGlmIChj
b2xsYXRpb24gPT0gImRpY3Rpb25hcnkiX3MpCisgICAgICAgIHJldHVybiAiZGljdCJfczsKKyAg
ICBpZiAoY29sbGF0aW9uID09ICJnYjIzMTJoYW4iX3MpCisgICAgICAgIHJldHVybiAiZ2IyMzEy
Il9zOworICAgIGlmIChjb2xsYXRpb24gPT0gInBob25lYm9vayJfcykKKyAgICAgICAgcmV0dXJu
ICJwaG9uZWJrIl9zOworICAgIGlmIChjb2xsYXRpb24gPT0gInRyYWRpdGlvbmFsIl9zKQorICAg
ICAgICByZXR1cm4gInRyYWQiX3M7CisgICAgcmV0dXJuIGNvbGxhdGlvbjsKK30KKworLy8gaHR0
cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGVjb2xs
YXRpb25zCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ29sbGF0aW9ucyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2Rl
IHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlx
dWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVjb2xfZ2V0S2V5
d29yZFZhbHVlc0ZvckxvY2FsZSgiY29sbGF0aW9uIiwgInVuZCIsIGZhbHNlLCAmc3RhdHVzKSk7
CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjb2xsYXRp
b25zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50
ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY29sbGF0aW9ucyJfcyk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6
dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBl
RHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3Vs
dCkgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7
CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGluZGV4ID0g
MDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7
CisgICAgICAgIGNvbnN0IGNoYXIqIGNhbGVuZGFyID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5n
ZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkg
eworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxl
ZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOworICAgICAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2Jh
bE9iamVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBjYW5vbmljYWxpemVDb2xsYXRpb25OYW1lKFN0
cmluZyhjYWxlbmRhciwgbGVuZ3RoKSkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gaHR0cHM6Ly90
YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGVjdXJyZW5jaWVz
CitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ3VycmVuY2llcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1
cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRy
PFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVjdXJyX29wZW5JU09DdXJy
ZW5jaWVzKFVDVVJSX0NPTU1PTiB8IFVDVVJSX05PTl9ERVBSRUNBVEVELCAmc3RhdHVzKSk7Cisg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjdXJyZW5jaWVz
Il9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50ID0g
dWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxV
UkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY3VycmVuY2llcyJfcyk7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQorCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6dHJ5
Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVy
aW5nQWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3VsdCkg
eworICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Cisg
ICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsg
aW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7Cisg
ICAgICAgIGNvbnN0IGNoYXIqIGN1cnJlbmN5ID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5nZXQo
KSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgewor
ICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0
byBlbnVtZXJhdGUgYXZhaWxhYmxlIGN1cnJlbmNpZXMiX3MpOworICAgICAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9i
amVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBTdHJpbmcoY3VycmVuY3ksIGxlbmd0aCkpKTsKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRp
b24vI3NlYy1hdmFpbGFibGVudW1iZXJpbmdzeXN0ZW1zCitzdGF0aWMgSlNBcnJheSogYXZhaWxh
YmxlTnVtYmVyaW5nU3lzdGVtcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsK
KyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNV
RGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVudW1zeXNfb3BlbkF2YWlsYWJsZU5hbWVzKCZzdGF0dXMp
KTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIG51bWJl
cmluZyBzeXN0ZW1zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpbnQz
Ml90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMpOworICAg
IGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVyaW5nIHN5
c3RlbXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIEpTQXJyYXkqIHJl
c3VsdCA9IEpTQXJyYXk6OnRyeUNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVy
ZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoVW5kZWNpZGVkKSwgMCk7
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGZvciAo
aW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50
MzJfdCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBudW1iZXJpbmdTeXN0ZW0gPSB1
ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAg
aWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVyaW5n
IHN5c3RlbXMiX3MpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAg
ICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgsIGpzU3RyaW5nKHZt
LCBTdHJpbmcobnVtYmVyaW5nU3lzdGVtLCBsZW5ndGgpKSk7CisgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8v
IGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxl
dGltZXpvbmVzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlVGltZVpvbmVzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNv
ZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVu
aXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9vcGVu
VGltZVpvbmVJREVudW1lcmF0aW9uKFVDQUxfWk9ORV9UWVBFX0NBTk9OSUNBTCwgbnVsbHB0ciwg
bnVsbHB0ciwgJnN0YXR1cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAg
ICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0
ZSBhdmFpbGFibGUgdGltZXpvbmVzIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisK
KyAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0
dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgdGlt
ZXpvbmVzIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBKU0FycmF5KiBy
ZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1
cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aFVuZGVjaWRlZCksIDAp
OworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBmb3Ig
KGludDMyX3QgaW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CisgICAgICAgIGlu
dDMyX3QgbGVuZ3RoID0gMDsKKyAgICAgICAgY29uc3QgY2hhciogdGltZVpvbmVJRCA9IHVlbnVt
X25leHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICBpZiAo
VV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSB0aW1lem9uZXMiX3Mp
OworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQtPnB1
dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBTdHJpbmcodGlt
ZVpvbmVJRCwgbGVuZ3RoKSkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBodHRwczovL3RjMzkuZXMv
cHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWlsYWJsZXVuaXRzCitzdGF0aWMgSlNB
cnJheSogYXZhaWxhYmxlVW5pdHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworCisgICAgSlNBcnJheSogcmVzdWx0ID0gSlNBcnJheTo6dHJ5Q3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5n
QWxsb2NhdGlvbihBcnJheVdpdGhVbmRlY2lkZWQpLCAwKTsKKyAgICBpZiAoIXJlc3VsdCkgewor
ICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBpbmRleCA9IDA7CisgICAgZm9y
IChjb25zdCBNZWFzdXJlVW5pdCYgdW5pdCA6IHNpbXBsZVVuaXRzKSB7CisgICAgICAgIHJlc3Vs
dC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCsrLCBqc1N0cmluZyh2bSwgU3Ry
aW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwodW5pdC5zdWJUeXBlKSkpOworICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWlu
dGwuc3VwcG9ydGVkdmFsdWVzb2YKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpbnRsT2JqZWN0
RnVuY1N1cHBvcnRlZFZhbHVlc09mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBTdHJpbmcg
a2V5ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAoa2V5ID09ICJj
YWxlbmRhciJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoYXZhaWxhYmxlQ2FsZW5kYXJzKGdsb2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkg
PT0gImNvbGxhdGlvbiJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUoYXZhaWxhYmxlQ29sbGF0aW9ucyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBp
ZiAoa2V5ID09ICJjdXJyZW5jeSJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoYXZhaWxhYmxlQ3VycmVuY2llcyhnbG9iYWxPYmplY3QpKSk7CisK
KyAgICBpZiAoa2V5ID09ICJudW1iZXJpbmdTeXN0ZW0iX3MpCisgICAgICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMo
Z2xvYmFsT2JqZWN0KSkpOworCisgICAgaWYgKGtleSA9PSAidGltZVpvbmUiX3MpCisgICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGF2YWlsYWJsZVRpbWVa
b25lcyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBpZiAoa2V5ID09ICJ1bml0Il9zKQorICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVVbml0
cyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICB0aHJvd1JhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgIlVua25vd24ga2V5IGZvciBJbnRsLnN1cHBvcnRlZFZhbHVlc09mIl9zKTsKKyAgICBy
ZXR1cm4geyB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxPYmplY3QuaAppbmRleCBlZTZjOTZhZTAxMTc1MjczYTNkOTUyOTg2ZGZl
ODU3ODQzMjM5ZWUxLi4zYmJiNDFkMTJlYjM5NDI3ZTI5YThhYzY5NDM5YTRhZGQ0NjVkNzQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBAIC02MCw2ICs2
MCwxMyBAQCBKU0NfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05fS0VZUyhKU0NfREVDTEFSRV9JTlRM
X1JFTEVWQU5UX0VYVEVOU0lPTl9LRVlTKQogc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IG51bWJl
ck9mUmVsZXZhbnRFeHRlbnNpb25LZXlzID0gMCBKU0NfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05f
S0VZUyhKU0NfQ09VTlRfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05fS0VZUyk7CiAjdW5kZWYgSlND
X0NPVU5UX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMKIAorc3RydWN0IE1lYXN1cmVVbml0
IHsKKyAgICBBU0NJSUxpdGVyYWwgdHlwZTsKKyAgICBBU0NJSUxpdGVyYWwgc3ViVHlwZTsKK307
CisKK2V4dGVybiBKU19FWFBPUlRfUFJJVkFURSBjb25zdCBNZWFzdXJlVW5pdCBzaW1wbGVVbml0
c1s0M107CisKIGNsYXNzIEludGxPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCAwZTFmYzU4N2E1Yjdj
MzE3OTM4ZjVmNmQ1YzE5OWRlZmUwZTcwNTc0Li4yYTMyYjdiY2E5MjM3YWNkYTNiMGNiOGY3OGFh
MmJjYjA2MDY0MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNM
aXN0LmgKQEAgLTU0NCw2ICs1NDQsNyBAQCBib29sIGNhblVzZVdlYkFzc2VtYmx5RmFzdE1lbW9y
eSgpOwogICAgIHYoQm9vbCwgdXNlV2Vha1JlZnMsIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUg
V2Vha1JlZiBjb25zdHJ1Y3Rvci4iKSBcCiAgICAgdihCb29sLCB1c2VJbnRsRGF0ZVRpbWVGb3Jt
YXREYXlQZXJpb2QsIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgSW50bC5EYXRlVGltZUZvcm1h
dCBkYXlQZXJpb2QgZmVhdHVyZS4iKSBcCiAgICAgdihCb29sLCB1c2VJbnRsRGF0ZVRpbWVGb3Jt
YXRSYW5nZVRvUGFydHMsIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgSW50bC5EYXRlVGltZUZv
cm1hdCNmb3JtYXRSYW5nZVRvUGFydHMgZmVhdHVyZS4iKSBcCisgICAgdihCb29sLCB1c2VJbnRs
RW51bWVyYXRpb24sIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgSW50bCBlbnVtZXJhdGlvbiBB
UElzLiIpIFwKICAgICB2KEJvb2wsIHVzZUF0TWV0aG9kLCBmYWxzZSwgTm9ybWFsLCAiRXhwb3Nl
IHRoZSBhdCgpIG1ldGhvZCBvbiBBcnJheSwgJVR5cGVkQXJyYXklLCBhbmQgU3RyaW5nLiIpIFwK
ICAgICB2KEJvb2wsIHVzZUVycm9yQ2F1c2UsIHRydWUsIE5vcm1hbCwgIkFsbG93IGEgY2F1c2Ug
dG8gYmUgcHJvdmlkZWQgd2hlbiBjb25zdHJ1Y3RpbmcgYW4gRXJyb3IsIF9OYXRpdmVFcnJvcl8s
IG9yIEFnZ3JlZ2F0ZUVycm9yLiIpIFwKICAgICB2KEJvb2wsIHVzZVNoYXJlZEFycmF5QnVmZmVy
LCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0ltcGwuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcApp
bmRleCA3ZDNmMzQ2MzFhYzhlNzk3NWU5ZjQ0ODczNTUzY2VmMWVkNzhkMDNmLi43NGY1Njk4ODJl
NmQ0Njk0OTgzZjcxOTBhMTc3MDIxNmRhMjZjYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5jcHAKQEAgLTE2Myw2ICsxNjMsMTEgQEAgUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNy
ZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCiAgICAgcmV0dXJuIGNyZWF0
ZUZyb21MaXRlcmFsKGNoYXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7CiB9CiAKK1JlZjxT
dHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChBU0NJSUxpdGVyYWwgbGl0
ZXJhbCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRnJvbUxpdGVyYWwobGl0ZXJhbC5jaGFyYWN0ZXJz
KCksIGxpdGVyYWwubGVuZ3RoKCkpOworfQorCiBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
Y3JlYXRlV2l0aG91dENvcHlpbmcoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKaW5kZXgg
NDIwM2MxYzgyNTQxYTlkODdkN2I1YjBmYmI3NDhiMTZhY2E1ODg1ZS4uYWRhOWQ0MWIwMmE4OTQ2
ZGI3MzFmYWFmYjlkZWM2N2FjYWZlNWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJRmFzdFBhdGguaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9Db252ZXJz
aW9uTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oPgpAQCAtMjQ5LDYgKzI1MCw3IEBAIGNsYXNzIFN0cmlu
Z0ltcGwgOiBwcml2YXRlIFN0cmluZ0ltcGxTaGFwZSB7CiAgICAgLy8gRklYTUU6IFJlcGxhY2Ug
Y2FsbHMgdG8gdGhlc2Ugb3ZlcmxvYWRzIG9mIGNyZWF0ZUZyb21MaXRlcmFsIHRvIGNyZWF0ZVdp
dGhvdXRDb3B5aW5nIGluc3RlYWQuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8
U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciosIHVuc2lnbmVkIGxlbmd0
aCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRl
RnJvbUxpdGVyYWwoY29uc3QgY2hhciopOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMg
UmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKEFTQ0lJTGl0ZXJhbCk7CiAKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVXaXRob3V0Q29w
eWluZyhjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlV2l0aG91dENvcHlpbmcoY29uc3QgTENo
YXIqLCB1bnNpZ25lZCBsZW5ndGgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436093</attachid>
            <date>2021-08-21 16:27:03 -0700</date>
            <delta_ts>2021-08-21 16:32:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214795-20210821162702.patch</filename>
            <type>text/plain</type>
            <size>38463</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YzMwZTk5MDE0MGU0NjI4ZTY5ZTI2MmFjZjBlMmY1NGRiODgxNTMzLi4yMzg4ZDFmYzc5NzFkNmE3
MjA4ODhjMTA5MzQwZWFjOWRjN2MwOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAyMS0wOC0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyBJbnRsIGVudW1lcmF0aW9uIEFQSVsxXSB3aGljaCBpcyBpbiBzdGFnZS0zLgorICAgICAgICBT
dXBwb3J0ZWQga2V5cyBhcmUsICJjYWxlbmRhciIsICJjb2xsYXRpb24iLCAiY3VycmVuY3kiLCAi
bnVtYmVyaW5nU3lzdGVtIiwgInRpbWVab25lIiwgYW5kICJ1bml0Ii4KKworICAgICAgICBbMV06
IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24KKworICAg
ICAgICAqIHJ1bnRpbWUvSW50bExvY2FsZS5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZUFycmF5
RnJvbVN0cmluZ1ZlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVy
Rm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6c2FuY3Rpb25lZFNpbXBsZVVuaXRJZGVudGlmaWVy
KToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpJbnRs
T2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6Om1hcElDVUNhbGVuZGFyS2V5
d29yZFRvQkNQNDcpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVDYWxlbmRhcnMpOgorICAgICAg
ICAoSlNDOjphdmFpbGFibGVDb2xsYXRpb25zKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlQ3Vy
cmVuY2llcyk6CisgICAgICAgIChKU0M6OmF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMpOgorICAg
ICAgICAoSlNDOjpjYW5vbmljYWxpemVUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUpOgorICAg
ICAgICAoSlNDOjphdmFpbGFibGVUaW1lWm9uZXMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVV
bml0cyk6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OmNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3Rvcik6CisgICAgICAgICogcnVudGltZS9J
bnRsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIxLTA4
LTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10g
SW50bC5EaXNwbGF5TmFtZXMgdjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZmU0NTA0MWE4NzkwYWMyZjYxMjFmY2NiMjBmZWVl
NTM5NDYyZWVkMC4uZWQyOGYzNmMzZWMzNTJlOWMwMDMwZmQ0NGM1ZGY4YTllZTgyY2IzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMS0wOC0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL3RleHQvU3Ry
aW5nSW1wbC5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFs
KToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisKIDIwMjEtMDgtMjAgIE1hcmsg
TGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgcHRyVGFnTmFtZSBhbmQg
dGFnRm9yUHRyIFdURl9FWFBPUlRfUFJJVkFURS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bExvY2FsZS5jcHAKaW5kZXggOWEwNTkwNzgzODlmZWJiODVhMmYzM2M0YWY0N2I0
MjVjM2RjNDIwNC4uYzNiMjZkZDgyYjU0MGExYWY0NzAyN2Y0NDU5ZDE2MDQ1MmQzM2Y1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAKQEAgLTUzNywy
MyArNTM3LDYgQEAgVHJpU3RhdGUgSW50bExvY2FsZTo6bnVtZXJpYygpCiAgICAgcmV0dXJuIG1f
bnVtZXJpYzsKIH0KIAotc3RhdGljIGlubGluZSBKU0FycmF5KiBjcmVhdGVBcnJheUZyb21TdHJp
bmdWZWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVmVjdG9yPFN0cmluZywgMT4m
JiBlbGVtZW50cykKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgSlNBcnJheSogcmVzdWx0
ID0gSlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9y
SW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhDb250aWd1b3VzKSwgZWxlbWVu
dHMuc2l6ZSgpKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICB0aHJvd091dE9mTWVtb3J5
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IH0KLSAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBlbGVtZW50cy5zaXplKCk7
ICsraW5kZXgpIHsKLSAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3Qs
IGluZGV4LCBqc1N0cmluZyh2bSwgV1RGTW92ZShlbGVtZW50c1tpbmRleF0pKSk7Ci0gICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgfQotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0KIEpTQXJyYXkqIEludGxMb2NhbGU6OmNhbGVuZGFycyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKaW5k
ZXggM2Q5OWZiOTFhOWFjYmFiNjVjMDgxZjMzMWQzMTU4NzAzZmI5Zjc0MC4uZmMzMjM3MDMyMDIy
YjRjNmQ2N2RkODE1NTllYzMzNWI1NmJkMGRmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKQEAgLTE1MSw1OSArMTUxLDggQEAg
c3RhdGljIHVuc2lnbmVkIGNvbXB1dGVDdXJyZW5jeURpZ2l0cyhjb25zdCBTdHJpbmcmIGN1cnJl
bmN5KQogICAgIHJldHVybiAyOwogfQogCi0vLyBDcmVhdGUgTWVhc3VyZVVuaXQgbGlrZSBJQ1U0
Si4KLXN0cnVjdCBNZWFzdXJlVW5pdCB7Ci0gICAgQVNDSUlMaXRlcmFsIHR5cGU7Ci0gICAgQVND
SUlMaXRlcmFsIHN1YlR5cGU7Ci19OwotCiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWFzdXJlVW5p
dD4gc2FuY3Rpb25lZFNpbXBsZVVuaXRJZGVudGlmaWVyKFN0cmluZ1ZpZXcgdW5pdElkZW50aWZp
ZXIpCiB7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNZWFzdXJlVW5pdCBzaW1wbGVVbml0c1tdID0g
ewotICAgICAgICB7ICJhcmVhIl9zLCAiYWNyZSJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9z
LCAiYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJieXRlIl9zIH0sCi0gICAgICAg
IHsgInRlbXBlcmF0dXJlIl9zLCAiY2Vsc2l1cyJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3Ms
ICJjZW50aW1ldGVyIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAiZGF5Il9zIH0sCi0g
ICAgICAgIHsgImFuZ2xlIl9zLCAiZGVncmVlIl9zIH0sCi0gICAgICAgIHsgInRlbXBlcmF0dXJl
Il9zLCAiZmFocmVuaGVpdCJfcyB9LAotICAgICAgICB7ICJ2b2x1bWUiX3MsICJmbHVpZC1vdW5j
ZSJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJmb290Il9zIH0sCi0gICAgICAgIHsgInZv
bHVtZSJfcywgImdhbGxvbiJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAiZ2lnYWJpdCJf
cyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAiZ2lnYWJ5dGUiX3MgfSwKLSAgICAgICAgeyAi
bWFzcyJfcywgImdyYW0iX3MgfSwKLSAgICAgICAgeyAiYXJlYSJfcywgImhlY3RhcmUiX3MgfSwK
LSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJob3VyIl9zIH0sCi0gICAgICAgIHsgImxlbmd0aCJf
cywgImluY2giX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImtpbG9iaXQiX3MgfSwKLSAg
ICAgICAgeyAiZGlnaXRhbCJfcywgImtpbG9ieXRlIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3Ms
ICJraWxvZ3JhbSJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJraWxvbWV0ZXIiX3MgfSwK
LSAgICAgICAgeyAidm9sdW1lIl9zLCAibGl0ZXIiX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJf
cywgIm1lZ2FiaXQiX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgIm1lZ2FieXRlIl9zIH0s
Ci0gICAgICAgIHsgImxlbmd0aCJfcywgIm1ldGVyIl9zIH0sCi0gICAgICAgIHsgImxlbmd0aCJf
cywgIm1pbGUiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAibWlsZS1zY2FuZGluYXZpYW4i
X3MgfSwKLSAgICAgICAgeyAidm9sdW1lIl9zLCAibWlsbGlsaXRlciJfcyB9LAotICAgICAgICB7
ICJsZW5ndGgiX3MsICJtaWxsaW1ldGVyIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAi
bWlsbGlzZWNvbmQiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJtaW51dGUiX3MgfSwK
LSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJtb250aCJfcyB9LAotICAgICAgICB7ICJtYXNzIl9z
LCAib3VuY2UiX3MgfSwKLSAgICAgICAgeyAiY29uY2VudHIiX3MsICJwZXJjZW50Il9zIH0sCi0g
ICAgICAgIHsgImRpZ2l0YWwiX3MsICJwZXRhYnl0ZSJfcyB9LAotICAgICAgICB7ICJtYXNzIl9z
LCAicG91bmQiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJzZWNvbmQiX3MgfSwKLSAg
ICAgICAgeyAibWFzcyJfcywgInN0b25lIl9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJ0
ZXJhYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJ0ZXJhYnl0ZSJfcyB9LAotICAg
ICAgICB7ICJkdXJhdGlvbiJfcywgIndlZWsiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAi
eWFyZCJfcyB9LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgInllYXIiX3MgfSwKLSAgICB9Owog
ICAgIEFTU0VSVCgKICAgICAgICAgc3RkOjppc19zb3J0ZWQoc3RkOjpiZWdpbihzaW1wbGVVbml0
cyksIHN0ZDo6ZW5kKHNpbXBsZVVuaXRzKSwKICAgICAgICAgICAgIFtdKGNvbnN0IE1lYXN1cmVV
bml0JiBhLCBjb25zdCBNZWFzdXJlVW5pdCYgYikgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCAwM2M5ZDc5ODZmOTVhMDcxYjY5NTM4OTMzYjgx
ZDc0NjM0MTEzYzg3Li5kNWMyNmFmZDViNDliYjRiNmZiNTAwYzdjMDdhZDg2YmQ3YzVmOTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcApAQCAtNTgs
NiArNTgsNyBAQAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgi
CiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CisjaW5jbHVkZSA8dW5pY29kZS91Y2FsLmg+CiAj
aW5jbHVkZSA8dW5pY29kZS91Y29sLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91ZmllbGRwb3NpdGVy
Lmg+CiAjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+CkBAIC03NSw2ICs3Niw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxPYmpl
Y3QpOwogCiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihpbnRsT2JqZWN0RnVuY0dl
dENhbm9uaWNhbExvY2FsZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oaW50
bE9iamVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZik7CiAKIHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUNv
bGxhdG9yQ29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogewpAQCAtMTcyLDYg
KzE3NCw1MiBAQCB2b2lkIFVGaWVsZFBvc2l0aW9uSXRlcmF0b3JEZWxldGVyOjpvcGVyYXRvcigp
KFVGaWVsZFBvc2l0aW9uSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAgICAgICB1ZmllbGRwb3NpdGVy
X2Nsb3NlKGl0ZXJhdG9yKTsKIH0KIAorY29uc3QgTWVhc3VyZVVuaXQgc2ltcGxlVW5pdHNbNDNd
ID0geworICAgIHsgImFyZWEiX3MsICJhY3JlIl9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImJp
dCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJieXRlIl9zIH0sCisgICAgeyAidGVtcGVyYXR1
cmUiX3MsICJjZWxzaXVzIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAiY2VudGltZXRlciJfcyB9
LAorICAgIHsgImR1cmF0aW9uIl9zLCAiZGF5Il9zIH0sCisgICAgeyAiYW5nbGUiX3MsICJkZWdy
ZWUiX3MgfSwKKyAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImZhaHJlbmhlaXQiX3MgfSwKKyAgICB7
ICJ2b2x1bWUiX3MsICJmbHVpZC1vdW5jZSJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgImZvb3Qi
X3MgfSwKKyAgICB7ICJ2b2x1bWUiX3MsICJnYWxsb24iX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9z
LCAiZ2lnYWJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJnaWdhYnl0ZSJfcyB9LAorICAg
IHsgIm1hc3MiX3MsICJncmFtIl9zIH0sCisgICAgeyAiYXJlYSJfcywgImhlY3RhcmUiX3MgfSwK
KyAgICB7ICJkdXJhdGlvbiJfcywgImhvdXIiX3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJpbmNo
Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImtpbG9iaXQiX3MgfSwKKyAgICB7ICJkaWdpdGFs
Il9zLCAia2lsb2J5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAia2lsb2dyYW0iX3MgfSwKKyAg
ICB7ICJsZW5ndGgiX3MsICJraWxvbWV0ZXIiX3MgfSwKKyAgICB7ICJ2b2x1bWUiX3MsICJsaXRl
ciJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYml0Il9zIH0sCisgICAgeyAiZGlnaXRh
bCJfcywgIm1lZ2FieXRlIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAibWV0ZXIiX3MgfSwKKyAg
ICB7ICJsZW5ndGgiX3MsICJtaWxlIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAibWlsZS1zY2Fu
ZGluYXZpYW4iX3MgfSwKKyAgICB7ICJ2b2x1bWUiX3MsICJtaWxsaWxpdGVyIl9zIH0sCisgICAg
eyAibGVuZ3RoIl9zLCAibWlsbGltZXRlciJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9zLCAibWls
bGlzZWNvbmQiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1pbnV0ZSJfcyB9LAorICAgIHsg
ImR1cmF0aW9uIl9zLCAibW9udGgiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAib3VuY2UiX3MgfSwK
KyAgICB7ICJjb25jZW50ciJfcywgInBlcmNlbnQiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAi
cGV0YWJ5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAicG91bmQiX3MgfSwKKyAgICB7ICJkdXJh
dGlvbiJfcywgInNlY29uZCJfcyB9LAorICAgIHsgIm1hc3MiX3MsICJzdG9uZSJfcyB9LAorICAg
IHsgImRpZ2l0YWwiX3MsICJ0ZXJhYml0Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgInRlcmFi
eXRlIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJ3ZWVrIl9zIH0sCisgICAgeyAibGVuZ3Ro
Il9zLCAieWFyZCJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9zLCAieWVhciJfcyB9LAorfTsKKwog
SW50bE9iamVjdDo6SW50bE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQogewpAQCAtMTg0LDcgKzIzMiw3IEBAIEludGxPYmplY3Qq
IEludGxPYmplY3Q6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSoKICAgICByZXR1cm4gb2JqZWN0OwogfQogCi12b2lkIEludGxPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqKQordm9pZCBJbnRsT2JqZWN0Ojpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5m
bygpKSk7CkBAIC0xOTksNiArMjQ3LDggQEAgdm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKCZjcmVh
dGVMaXN0Rm9ybWF0Q29uc3RydWN0b3IpOwogI2VuZGlmCisgICAgaWYgKE9wdGlvbnM6OnVzZUlu
dGxFbnVtZXJhdGlvbigpKQorICAgICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigic3VwcG9ydGVkVmFsdWVzT2YiLCBpbnRsT2JqZWN0RnVuY1N1cHBvcnRlZFZhbHVl
c09mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MSk7CiB9CiAKIFN0cnVjdHVyZSogSW50bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xNDY4
LDggKzE1MTgsOCBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbWFwSUNVQ2FsZW5kYXJLZXl3b3Jk
VG9CQ1A0Nyhjb25zdCBTdHJpbmcmIGNhbGVuZGFyKQogewogICAgIGlmIChjYWxlbmRhciA9PSAi
Z3JlZ29yaWFuIl9zKQogICAgICAgICByZXR1cm4gImdyZWdvcnkiX3M7Ci0gICAgaWYgKGNhbGVu
ZGFyID09ICJpc2xhbWljLWNpdmlsIl9zKQotICAgICAgICByZXR1cm4gImlzbGFtaWNjIl9zOwor
ICAgIC8vIGlzbGFtaWNjIGlzIGRlcHJlY2F0ZWQgaW4gQkNQNDcsIGFuZCBpc2xhbWljLWNpdmls
IGlzIHByZWZlcnJlZC4KKyAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdW5pY29kZS1vcmcvY2xk
ci9ibG9iL21hc3Rlci9jb21tb24vYmNwNDcvY2FsZW5kYXIueG1sCiAgICAgaWYgKGNhbGVuZGFy
ID09ICJldGhpb3BpYy1hbWV0ZS1hbGVtIl9zKQogICAgICAgICByZXR1cm4gImV0aGlvYWEiX3M7
CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAgLTE1MjQsNCArMTU3NCwzMTEgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jR2V0Q2Fub25pY2FsTG9jYWxlcywgKEpT
R2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvY2FsZUFycmF5
KTsKIH0KIAorLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3Nl
Yy1hdmFpbGFibGVjYWxlbmRhcnMKK3N0YXRpYyBKU0FycmF5KiBhdmFpbGFibGVDYWxlbmRhcnMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisg
ICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgYXV0byBlbnVtZXJhdGlv
biA9IHN0ZDo6dW5pcXVlX3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVudW1fY2xvc2U+
Pih1Y2FsX2dldEtleXdvcmRWYWx1ZXNGb3JMb2NhbGUoImNhbGVuZGFycyIsICJ1bmQiLCBmYWxz
ZSwgJnN0YXR1cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFp
bGFibGUgY2FsZW5kYXJzIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBp
bnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMpOwor
ICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY2FsZW5kYXJz
Il9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nLCAx
PiBlbGVtZW50czsKKyAgICBlbGVtZW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvdW50KTsK
KyAgICBmb3IgKGludDMyX3QgaW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7Cisg
ICAgICAgIGludDMyX3QgbGVuZ3RoID0gMDsKKyAgICAgICAgY29uc3QgY2hhciogcG9pbnRlciA9
IHVlbnVtX25leHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjYWxlbmRh
cnMiX3MpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBTdHJp
bmcgY2FsZW5kYXIocG9pbnRlciwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0g
bWFwSUNVQ2FsZW5kYXJLZXl3b3JkVG9CQ1A0NyhjYWxlbmRhcikpCisgICAgICAgICAgICBlbGVt
ZW50cy5hcHBlbmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShjYWxlbmRhcikpOworICAgIH0KKworICAg
IC8vIFRoZSBBdmFpbGFibGVDYWxlbmRhcnMgYWJzdHJhY3Qgb3BlcmF0aW9uIHJldHVybnMgYSBM
aXN0LCBvcmRlcmVkIGFzIGlmIGFuIEFycmF5IG9mIHRoZSBzYW1lCisgICAgLy8gdmFsdWVzIGhh
ZCBiZWVuIHNvcnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBlLnNvcnQlIHVzaW5nIHVuZGVmaW5l
ZCBhcyBjb21wYXJlZm4KKyAgICBzdGQ6OnNvcnQoZWxlbWVudHMuYmVnaW4oKSwgZWxlbWVudHMu
ZW5kKCksCisgICAgICAgIFtdKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7Cisg
ICAgICAgICAgICByZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21wYXJlKGEsIGIpIDwgMDsKKyAgICAg
ICAgfSk7CisKKyAgICByZXR1cm4gY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKGdsb2JhbE9i
amVjdCwgV1RGTW92ZShlbGVtZW50cykpOworfQorCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9z
YWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWlsYWJsZWNvbGxhdGlvbnMKK3N0YXRpYyBKU0Fy
cmF5KiBhdmFpbGFibGVDb2xsYXRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7
CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VS
Uk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9u
LCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNvbF9nZXRLZXl3b3JkVmFsdWVzKCJjb2xsYXRp
b24iLCAmc3RhdHVzKSk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIHRo
cm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2
YWlsYWJsZSBjb2xsYXRpb25zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAg
ICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMp
OworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY29sbGF0
aW9ucyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgVmVjdG9yPFN0cmlu
ZywgMT4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3Vu
dCk7CisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkg
eworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIHBvaW50
ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAg
ICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY29s
bGF0aW9ucyJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgICAg
IFN0cmluZyBjb2xsYXRpb24ocG9pbnRlciwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKGNvbGxhdGlv
biA9PSAic3RhbmRhcmQiX3MgfHwgY29sbGF0aW9uID09ICJzZWFyY2giX3MpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gbWFwSUNVQ29sbGF0aW9uS2V5
d29yZFRvQkNQNDcoY29sbGF0aW9uKSkKKyAgICAgICAgICAgIGVsZW1lbnRzLmFwcGVuZChXVEZN
b3ZlKG1hcHBlZC52YWx1ZSgpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVsZW1lbnRz
LmFwcGVuZChXVEZNb3ZlKGNvbGxhdGlvbikpOworICAgIH0KKworICAgIC8vIFRoZSBBdmFpbGFi
bGVDb2xsYXRpb25zIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlzdCwgb3JkZXJlZCBh
cyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQg
dXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZu
CisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgpLAorICAgICAg
ICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAgICAgICAgcmV0
dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0pOworCisgICAg
cmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIFdURk1vdmUo
ZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVy
YXRpb24vI3NlYy1hdmFpbGFibGVjdXJyZW5jaWVzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxl
Q3VycmVuY2llcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRv
IGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1
ZW51bV9jbG9zZT4+KHVjdXJyX29wZW5JU09DdXJyZW5jaWVzKFVDVVJSX0NPTU1PTiB8IFVDVVJS
X05PTl9ERVBSRUNBVEVELCAmc3RhdHVzKSk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7
CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8g
ZW51bWVyYXRlIGF2YWlsYWJsZSBjdXJyZW5jaWVzIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0
KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFp
bGFibGUgY3VycmVuY2llcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAg
VmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3Vu
dDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAgICAgIGNvbnN0
IGNoYXIqIGN1cnJlbmN5ID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5nZXQoKSwgJmxlbmd0aCwg
JnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAg
dGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUg
YXZhaWxhYmxlIGN1cnJlbmNpZXMiX3MpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgfQorICAgICAgICBlbGVtZW50cy5jb25zdHJ1Y3RBbmRBcHBlbmQoY3VycmVuY3ksIGxlbmd0
aCk7CisgICAgfQorCisgICAgLy8gVGhlIEF2YWlsYWJsZUN1cnJlbmNpZXMgYWJzdHJhY3Qgb3Bl
cmF0aW9uIHJldHVybnMgYSBMaXN0LCBvcmRlcmVkIGFzIGlmIGFuIEFycmF5IG9mIHRoZSBzYW1l
CisgICAgLy8gdmFsdWVzIGhhZCBiZWVuIHNvcnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBlLnNv
cnQlIHVzaW5nIHVuZGVmaW5lZCBhcyBjb21wYXJlZm4KKyAgICBzdGQ6OnNvcnQoZWxlbWVudHMu
YmVnaW4oKSwgZWxlbWVudHMuZW5kKCksCisgICAgICAgIFtdKGNvbnN0IFN0cmluZyYgYSwgY29u
c3QgU3RyaW5nJiBiKSB7CisgICAgICAgICAgICByZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21wYXJl
KGEsIGIpIDwgMDsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gY3JlYXRlQXJyYXlGcm9tU3Ry
aW5nVmVjdG9yKGdsb2JhbE9iamVjdCwgV1RGTW92ZShlbGVtZW50cykpOworfQorCisvLyBodHRw
czovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWlsYWJsZW51bWJl
cmluZ3N5c3RlbXMKK3N0YXRpYyBKU0FycmF5KiBhdmFpbGFibGVOdW1iZXJpbmdTeXN0ZW1zKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAg
IFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24g
PSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4o
dW51bXN5c19vcGVuQXZhaWxhYmxlTmFtZXMoJnN0YXR1cykpOworICAgIGlmIChVX0ZBSUxVUkUo
c3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
ZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVyaW5nIHN5c3RlbXMiX3MpOworICAg
ICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGludDMyX3QgY291bnQgPSB1ZW51bV9jb3Vu
dChlbnVtZXJhdGlvbi5nZXQoKSwgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMp
KSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQg
dG8gZW51bWVyYXRlIGF2YWlsYWJsZSBudW1iZXJpbmcgc3lzdGVtcyJfcyk7CisgICAgICAgIHJl
dHVybiB7IH07CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7CisgICAg
ZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90
IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxl
bmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIG51bWJlcmluZ1N5c3RlbSA9IHVlbnVtX25l
eHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICBpZiAoVV9G
QUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBudW1iZXJpbmcgc3lzdGVt
cyJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgICAgIGVsZW1l
bnRzLmNvbnN0cnVjdEFuZEFwcGVuZChudW1iZXJpbmdTeXN0ZW0sIGxlbmd0aCk7CisgICAgfQor
CisgICAgLy8gVGhlIEF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMgYWJzdHJhY3Qgb3BlcmF0aW9u
IHJldHVybnMgYSBMaXN0LCBvcmRlcmVkIGFzIGlmIGFuIEFycmF5IG9mIHRoZSBzYW1lCisgICAg
Ly8gdmFsdWVzIGhhZCBiZWVuIHNvcnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBlLnNvcnQlIHVz
aW5nIHVuZGVmaW5lZCBhcyBjb21wYXJlZm4KKyAgICBzdGQ6OnNvcnQoZWxlbWVudHMuYmVnaW4o
KSwgZWxlbWVudHMuZW5kKCksCisgICAgICAgIFtdKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3Ry
aW5nJiBiKSB7CisgICAgICAgICAgICByZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21wYXJlKGEsIGIp
IDwgMDsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVj
dG9yKGdsb2JhbE9iamVjdCwgV1RGTW92ZShlbGVtZW50cykpOworfQorCisvLyBodHRwczovL3Rj
MzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWNhbm9uaWNhbGl6ZXRpbWV6b25l
bmFtZQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjYW5vbmljYWxpemVUaW1lWm9uZU5h
bWVGcm9tSUNVVGltZVpvbmUoY29uc3QgU3RyaW5nJiB0aW1lWm9uZU5hbWUpCit7CisgICAgLy8g
U29tZSB0aW1lIHpvbmUgbmFtZXMgYXJlIGluY2x1ZGVkIGluIElDVSwgYnV0IHRoZXkgYXJlIG5v
dCBpbmNsdWRlZCBpbiB0aGUgSUFOQSBUaW1lIFpvbmUgRGF0YWJhc2UuCisgICAgLy8gV2UgbmVl
ZCB0byBmaWx0ZXIgdGhlbSBvdXQuCisgICAgaWYgKHRpbWVab25lTmFtZS5zdGFydHNXaXRoKCJT
eXN0ZW1WLyIpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICh0aW1lWm9u
ZU5hbWUuc3RhcnRzV2l0aCgiRXRjLyIpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIC8vIElBTkEgdGltZSB6b25lIG5hbWVzIGluY2x1ZGUgJy8nLiBTb21lIG9mIHRoZW0gYXJl
IG5vdCBpbmNsdWRpbmcsIGJ1dCBpdCBpcyBpbiBiYWNrd2FyZCBsaW5rcy4KKyAgICAvLyBBbmQg
SUNVIGFscmVhZHkgcmVzb2x2ZWQgdGhlc2UgYmFja3dhcmQgbGlua3MuCisgICAgaWYgKCF0aW1l
Wm9uZU5hbWUuY29udGFpbnMoJy8nKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiB0aW1lWm9uZU5hbWU7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3Nh
bC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxldGltZXpvbmVzCitzdGF0aWMgSlNBcnJh
eSogYXZhaWxhYmxlVGltZVpvbmVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9S
OworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJ
Q1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0aW9uKFVD
QUxfWk9ORV9UWVBFX0NBTk9OSUNBTCwgbnVsbHB0ciwgbnVsbHB0ciwgJnN0YXR1cykpOworICAg
IGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgdGltZXpvbmVzIl9z
KTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50ID0gdWVu
dW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUo
c3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
ZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgdGltZXpvbmVzIl9zKTsKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nLCAxPiBlbGVtZW50czsKKyAgICBl
bGVtZW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvdW50KTsKKyAgICBmb3IgKGludDMyX3Qg
aW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CisgICAgICAgIGludDMyX3QgbGVu
Z3RoID0gMDsKKyAgICAgICAgY29uc3QgY2hhciogcG9pbnRlciA9IHVlbnVtX25leHQoZW51bWVy
YXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICBpZiAoVV9GQUlMVVJFKHN0
YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSB0aW1lem9uZXMiX3MpOworICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGltZVpvbmUocG9pbnRl
ciwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gY2Fub25pY2FsaXplVGltZVpv
bmVOYW1lRnJvbUlDVVRpbWVab25lKHRpbWVab25lKSkKKyAgICAgICAgICAgIGVsZW1lbnRzLmFw
cGVuZChXVEZNb3ZlKG1hcHBlZC52YWx1ZSgpKSk7CisgICAgfQorCisgICAgLy8gNC4gU29ydCBy
ZXN1bHQgaW4gb3JkZXIgYXMgaWYgYW4gQXJyYXkgb2YgdGhlIHNhbWUgdmFsdWVzIGhhZCBiZWVu
IHNvcnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBlLnNvcnQlIHVzaW5nIHVuZGVmaW5lZCBhcyBj
b21wYXJlZm4uCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgp
LAorICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAg
ICAgICAgcmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0p
OworCisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3Qs
IFdURk1vdmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWlu
dGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGV1bml0cworc3RhdGljIEpTQXJyYXkqIGF2YWls
YWJsZVVuaXRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKKworICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRyeUNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24o
QXJyYXlXaXRoVW5kZWNpZGVkKSwgc3RkOjpzaXplKHNpbXBsZVVuaXRzKSk7CisgICAgaWYgKCFy
ZXN1bHQpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIEFTU0VSVCgKKyAgICAgICAg
c3RkOjppc19zb3J0ZWQoc3RkOjpiZWdpbihzaW1wbGVVbml0cyksIHN0ZDo6ZW5kKHNpbXBsZVVu
aXRzKSwKKyAgICAgICAgICAgIFtdKGNvbnN0IE1lYXN1cmVVbml0JiBhLCBjb25zdCBNZWFzdXJl
VW5pdCYgYikgeworICAgICAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQb2ludENvbXBhcmUo
U3RyaW5nVmlldyhhLnN1YlR5cGUpLCBTdHJpbmdWaWV3KGIuc3ViVHlwZSkpIDwgMDsKKyAgICAg
ICAgICAgIH0pKTsKKworICAgIGludDMyX3QgaW5kZXggPSAwOworICAgIGZvciAoY29uc3QgTWVh
c3VyZVVuaXQmIHVuaXQgOiBzaW1wbGVVbml0cykgeworICAgICAgICByZXN1bHQtPnB1dERpcmVj
dEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgrKywganNTdHJpbmcodm0sIFN0cmluZ0ltcGw6OmNy
ZWF0ZUZyb21MaXRlcmFsKHVuaXQuc3ViVHlwZSkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gaHR0
cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1pbnRsLnN1cHBvcnRl
ZHZhbHVlc29mCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1bmNTdXBwb3J0
ZWRWYWx1ZXNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgU3RyaW5nIGtleSA9IGNhbGxG
cmFtZS0+YXJndW1lbnQoMCkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgaWYgKGtleSA9PSAiY2FsZW5kYXIiX3Mp
CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGF2YWls
YWJsZUNhbGVuZGFycyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBpZiAoa2V5ID09ICJjb2xsYXRp
b24iX3MpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KGF2YWlsYWJsZUNvbGxhdGlvbnMoZ2xvYmFsT2JqZWN0KSkpOworCisgICAgaWYgKGtleSA9PSAi
Y3VycmVuY3kiX3MpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGF2YWlsYWJsZUN1cnJlbmNpZXMoZ2xvYmFsT2JqZWN0KSkpOworCisgICAgaWYgKGtl
eSA9PSAibnVtYmVyaW5nU3lzdGVtIl9zKQorICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVOdW1iZXJpbmdTeXN0ZW1zKGdsb2JhbE9iamVj
dCkpKTsKKworICAgIGlmIChrZXkgPT0gInRpbWVab25lIl9zKQorICAgICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVUaW1lWm9uZXMoZ2xvYmFs
T2JqZWN0KSkpOworCisgICAgaWYgKGtleSA9PSAidW5pdCJfcykKKyAgICAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoYXZhaWxhYmxlVW5pdHMoZ2xvYmFsT2Jq
ZWN0KSkpOworCisgICAgdGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJVbmtu
b3duIGtleSBmb3IgSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZiJfcyk7CisgICAgcmV0dXJuIHsgfTsK
K30KKworSlNBcnJheSogY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFZlY3RvcjxTdHJpbmcsIDE+JiYgZWxlbWVudHMpCit7CisgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKworICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRyeUNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9j
YXRpb24oQXJyYXlXaXRoQ29udGlndW91cyksIGVsZW1lbnRzLnNpemUoKSk7CisgICAgaWYgKCFy
ZXN1bHQpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgZm9yICh1bnNpZ25lZCBp
bmRleCA9IDA7IGluZGV4IDwgZWxlbWVudHMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAgICAgIHJl
c3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCwganNTdHJpbmcodm0sIFdU
Rk1vdmUoZWxlbWVudHNbaW5kZXhdKSkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmpl
Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaAppbmRleCBj
YzAxZjZjYWRkNDEwNWZlNTM4OGNhNzg3OWUwMDQxYTk1ZjA1MWNjLi5kYzY5NmQ2NWZhNWM2MzYz
MjJhNmM1MTRmOGIwMDc4NGRlZjJmYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE9iamVjdC5oCkBAIC02MCw2ICs2MCwxMyBAQCBKU0NfSU5UTF9SRUxFVkFOVF9FWFRF
TlNJT05fS0VZUyhKU0NfREVDTEFSRV9JTlRMX1JFTEVWQU5UX0VYVEVOU0lPTl9LRVlTKQogc3Rh
dGljIGNvbnN0ZXhwciB1aW50OF90IG51bWJlck9mUmVsZXZhbnRFeHRlbnNpb25LZXlzID0gMCBK
U0NfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05fS0VZUyhKU0NfQ09VTlRfSU5UTF9SRUxFVkFOVF9F
WFRFTlNJT05fS0VZUyk7CiAjdW5kZWYgSlNDX0NPVU5UX0lOVExfUkVMRVZBTlRfRVhURU5TSU9O
X0tFWVMKIAorc3RydWN0IE1lYXN1cmVVbml0IHsKKyAgICBBU0NJSUxpdGVyYWwgdHlwZTsKKyAg
ICBBU0NJSUxpdGVyYWwgc3ViVHlwZTsKK307CisKK2V4dGVybiBKU19FWFBPUlRfUFJJVkFURSBj
b25zdCBNZWFzdXJlVW5pdCBzaW1wbGVVbml0c1s0M107CisKIGNsYXNzIEludGxPYmplY3QgZmlu
YWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9
IEpTTm9uRmluYWxPYmplY3Q7CkBAIC0xNDEsNCArMTQ4LDYgQEAgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IG1hcElDVUNvbGxhdGlvbktleXdvcmRUb0JDUDQ3KGNvbnN0IFN0cmluZyYpOwogc3RkOjpv
cHRpb25hbDxTdHJpbmc+IG1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcoY29uc3QgU3RyaW5n
Jik7CiBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbWFwQkNQNDdUb0lDVUNhbGVuZGFyS2V5d29yZChj
b25zdCBTdHJpbmcmKTsKIAorSlNBcnJheSogY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKEpT
R2xvYmFsT2JqZWN0KiwgVmVjdG9yPFN0cmluZywgMT4mJik7CisKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggYTZh
YWJmYWEwY2M4YTFmYWYwMzFiZjYyNWM2NDhjNmIyNmQ0NTYwOC4uMzcwMGFhNDBiMGQzMTJhOGNi
ZDhhY2UxZGYxMGRkN2IxMjhkYWViYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zTGlzdC5oCkBAIC01NDQsNiArNTQ0LDcgQEAgYm9vbCBjYW5Vc2VXZWJBc3NlbWJs
eUZhc3RNZW1vcnkoKTsKICAgICB2KEJvb2wsIHVzZVdlYWtSZWZzLCB0cnVlLCBOb3JtYWwsICJF
eHBvc2UgdGhlIFdlYWtSZWYgY29uc3RydWN0b3IuIikgXAogICAgIHYoQm9vbCwgdXNlSW50bERh
dGVUaW1lRm9ybWF0RGF5UGVyaW9kLCB0cnVlLCBOb3JtYWwsICJFeHBvc2UgdGhlIEludGwuRGF0
ZVRpbWVGb3JtYXQgZGF5UGVyaW9kIGZlYXR1cmUuIikgXAogICAgIHYoQm9vbCwgdXNlSW50bERh
dGVUaW1lRm9ybWF0UmFuZ2VUb1BhcnRzLCB0cnVlLCBOb3JtYWwsICJFeHBvc2UgdGhlIEludGwu
RGF0ZVRpbWVGb3JtYXQjZm9ybWF0UmFuZ2VUb1BhcnRzIGZlYXR1cmUuIikgXAorICAgIHYoQm9v
bCwgdXNlSW50bEVudW1lcmF0aW9uLCB0cnVlLCBOb3JtYWwsICJFeHBvc2UgdGhlIEludGwgZW51
bWVyYXRpb24gQVBJcy4iKSBcCiAgICAgdihCb29sLCB1c2VBdE1ldGhvZCwgdHJ1ZSwgTm9ybWFs
LCAiRXhwb3NlIHRoZSBhdCgpIG1ldGhvZCBvbiBBcnJheSwgJVR5cGVkQXJyYXklLCBhbmQgU3Ry
aW5nLiIpIFwKICAgICB2KEJvb2wsIHVzZUVycm9yQ2F1c2UsIHRydWUsIE5vcm1hbCwgIkFsbG93
IGEgY2F1c2UgdG8gYmUgcHJvdmlkZWQgd2hlbiBjb25zdHJ1Y3RpbmcgYW4gRXJyb3IsIF9OYXRp
dmVFcnJvcl8sIG9yIEFnZ3JlZ2F0ZUVycm9yLiIpIFwKICAgICB2KEJvb2wsIHVzZVNoYXJlZEFy
cmF5QnVmZmVyLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcAppbmRleCA3ZDNmMzQ2MzFhYzhlNzk3NWU5ZjQ0ODczNTUzY2VmMWVkNzhkMDNmLi43
NGY1Njk4ODJlNmQ0Njk0OTgzZjcxOTBhMTc3MDIxNmRhMjZjYzg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5jcHAKQEAgLTE2Myw2ICsxNjMsMTEgQEAgUmVmPFN0cmluZ0ltcGw+IFN0cmlu
Z0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCiAgICAgcmV0
dXJuIGNyZWF0ZUZyb21MaXRlcmFsKGNoYXJhY3RlcnMsIHN0cmxlbihjaGFyYWN0ZXJzKSk7CiB9
CiAKK1JlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChBU0NJSUxp
dGVyYWwgbGl0ZXJhbCkKK3sKKyAgICByZXR1cm4gY3JlYXRlRnJvbUxpdGVyYWwobGl0ZXJhbC5j
aGFyYWN0ZXJzKCksIGxpdGVyYWwubGVuZ3RoKCkpOworfQorCiBSZWY8U3RyaW5nSW1wbD4gU3Ry
aW5nSW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmcoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKaW5kZXggNDIwM2MxYzgyNTQxYTlkODdkN2I1YjBmYmI3NDhiMTZhY2E1ODg1ZS4uYWRhOWQ0
MWIwMmE4OTQ2ZGI3MzFmYWFmYjlkZWM2N2FjYWZlNWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJ
bXBsLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJRmFzdFBhdGgu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9Db252ZXJzaW9uTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oPgpAQCAtMjQ5LDYgKzI1MCw3IEBAIGNs
YXNzIFN0cmluZ0ltcGwgOiBwcml2YXRlIFN0cmluZ0ltcGxTaGFwZSB7CiAgICAgLy8gRklYTUU6
IFJlcGxhY2UgY2FsbHMgdG8gdGhlc2Ugb3ZlcmxvYWRzIG9mIGNyZWF0ZUZyb21MaXRlcmFsIHRv
IGNyZWF0ZVdpdGhvdXRDb3B5aW5nIGluc3RlYWQuCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciosIHVuc2ln
bmVkIGxlbmd0aCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1w
bD4gY3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciopOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKEFTQ0lJTGl0ZXJhbCk7
CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVX
aXRob3V0Q29weWluZyhjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlV2l0aG91dENvcHlpbmco
Y29uc3QgTENoYXIqLCB1bnNpZ25lZCBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFu
Z2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwYzNlNzc0OGMyMzU5NzAxYWMxNzNjY2Vh
MWU4OTJlZmY5M2QyNTVjLi5kYTM4YTkzYzIwOTBjODNlOTA3NjRlMDg1Yzc4MjVjOGFkMGRhOWQx
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIxLTA4LTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIEludGwgRW51bWVyYXRpb24gQVBJcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0Nzk1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvaW50bC1l
bnVtZXJhdGlvbi5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChzaG91
bGRUaHJvdyk6CisKIDIwMjEtMDgtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbSlNDXSBJbnRsLkRpc3BsYXlOYW1lcyB2MgpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvaW50bC1lbnVtZXJhdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51
bWVyYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI2YjdiMGNkMzM2Zjg1ZjFjNGY0NjFmODY4NDQyMzBl
YmI4OTdkYQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51bWVyYXRp
b24uanMKQEAgLTAsMCArMSwzOCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoYGV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7Cit9CisKK2Z1bmN0
aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0
cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9
IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9IWApOworfQor
CitsZXQgY2FsZW5kYXJzID0gSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZigiY2FsZW5kYXIiKTsKK3No
b3VsZEJlKEpTT04uc3RyaW5naWZ5KGNhbGVuZGFycyksIGBbImJ1ZGRoaXN0IiwiY2hpbmVzZSIs
ImNvcHRpYyIsImRhbmdpIiwiZXRoaW9hYSIsImV0aGlvcGljIiwiZ3JlZ29yeSIsImhlYnJldyIs
ImluZGlhbiIsImlzbGFtaWMiLCJpc2xhbWljLWNpdmlsIiwiaXNsYW1pYy1yZ3NhIiwiaXNsYW1p
Yy10YmxhIiwiaXNsYW1pYy11bWFscXVyYSIsImlzbzg2MDEiLCJqYXBhbmVzZSIsInBlcnNpYW4i
LCJyb2MiXWApOworCitsZXQgY29sbGF0aW9ucyA9IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoImNv
bGxhdGlvbiIpOworc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoY29sbGF0aW9ucyksIGBbImJpZzVo
YW4iLCJjb21wYXQiLCJkaWN0IiwiZ2IyMzEyIiwicGhvbmViayIsInBob25ldGljIiwicGlueWlu
IiwicmVmb3JtZWQiLCJzZWFyY2hqbCIsInN0cm9rZSIsInRyYWQiLCJ1bmloYW4iLCJ6aHV5aW4i
XWApOworCitsZXQgY3VycmVuY2llcyA9IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoImN1cnJlbmN5
Iik7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeShjdXJyZW5jaWVzKSwgYFsiQUVEIiwiQUZOIiwi
QUxMIiwiQU1EIiwiQU5HIiwiQU9BIiwiQVJTIiwiQVVEIiwiQVdHIiwiQVpOIiwiQkFNIiwiQkJE
IiwiQkRUIiwiQkdOIiwiQkhEIiwiQklGIiwiQk1EIiwiQk5EIiwiQk9CIiwiQlJMIiwiQlNEIiwi
QlROIiwiQldQIiwiQllOIiwiQlpEIiwiQ0FEIiwiQ0RGIiwiQ0hGIiwiQ0xQIiwiQ05ZIiwiQ09Q
IiwiQ1JDIiwiQ1VDIiwiQ1VQIiwiQ1ZFIiwiQ1pLIiwiREpGIiwiREtLIiwiRE9QIiwiRFpEIiwi
RUdQIiwiRVJOIiwiRVRCIiwiRVVSIiwiRkpEIiwiRktQIiwiR0JQIiwiR0VMIiwiR0hTIiwiR0lQ
IiwiR01EIiwiR05GIiwiR1RRIiwiR1lEIiwiSEtEIiwiSE5MIiwiSFJLIiwiSFRHIiwiSFVGIiwi
SURSIiwiSUxTIiwiSU5SIiwiSVFEIiwiSVJSIiwiSVNLIiwiSk1EIiwiSk9EIiwiSlBZIiwiS0VT
IiwiS0dTIiwiS0hSIiwiS01GIiwiS1BXIiwiS1JXIiwiS1dEIiwiS1lEIiwiS1pUIiwiTEFLIiwi
TEJQIiwiTEtSIiwiTFJEIiwiTFNMIiwiTFlEIiwiTUFEIiwiTURMIiwiTUdBIiwiTUtEIiwiTU1L
IiwiTU5UIiwiTU9QIiwiTVJVIiwiTVVSIiwiTVZSIiwiTVdLIiwiTVhOIiwiTVlSIiwiTVpOIiwi
TkFEIiwiTkdOIiwiTklPIiwiTk9LIiwiTlBSIiwiTlpEIiwiT01SIiwiUEFCIiwiUEVOIiwiUEdL
IiwiUEhQIiwiUEtSIiwiUExOIiwiUFlHIiwiUUFSIiwiUk9OIiwiUlNEIiwiUlVCIiwiUldGIiwi
U0FSIiwiU0JEIiwiU0NSIiwiU0RHIiwiU0VLIiwiU0dEIiwiU0hQIiwiU0xMIiwiU09TIiwiU1JE
IiwiU1NQIiwiU1ROIiwiU1lQIiwiU1pMIiwiVEhCIiwiVEpTIiwiVE1UIiwiVE5EIiwiVE9QIiwi
VFJZIiwiVFREIiwiVFdEIiwiVFpTIiwiVUFIIiwiVUdYIiwiVVNEIiwiVVlVIiwiVVpTIiwiVkVG
IiwiVk5EIiwiVlVWIiwiV1NUIiwiWEFGIiwiWENEIiwiWE9GIiwiWFBGIiwiWUVSIiwiWkFSIiwi
Wk1XIl1gKTsKKworbGV0IG51bWJlcmluZ1N5c3RlbXMgPSBJbnRsLnN1cHBvcnRlZFZhbHVlc09m
KCJudW1iZXJpbmdTeXN0ZW0iKTsKK3Nob3VsZEJlKEpTT04uc3RyaW5naWZ5KG51bWJlcmluZ1N5
c3RlbXMpLCBgWyJhZGxtIiwiYWhvbSIsImFyYWIiLCJhcmFiZXh0IiwiYXJtbiIsImFybW5sb3ci
LCJiYWxpIiwiYmVuZyIsImJoa3MiLCJicmFoIiwiY2FrbSIsImNoYW0iLCJjeXJsIiwiZGV2YSIs
ImRpYWsiLCJldGhpIiwiZnVsbHdpZGUiLCJnZW9yIiwiZ29uZyIsImdvbm0iLCJncmVrIiwiZ3Jl
a2xvdyIsImd1anIiLCJndXJ1IiwiaGFuaWRheXMiLCJoYW5pZGVjIiwiaGFucyIsImhhbnNmaW4i
LCJoYW50IiwiaGFudGZpbiIsImhlYnIiLCJobW5nIiwiaG1ucCIsImphdmEiLCJqcGFuIiwianBh
bmZpbiIsImpwYW55ZWFyIiwia2FsaSIsImtobXIiLCJrbmRhIiwibGFuYSIsImxhbmF0aGFtIiwi
bGFvbyIsImxhdG4iLCJsZXBjIiwibGltYiIsIm1hdGhib2xkIiwibWF0aGRibCIsIm1hdGhtb25v
IiwibWF0aHNhbmIiLCJtYXRoc2FucyIsIm1seW0iLCJtb2RpIiwibW9uZyIsIm1yb28iLCJtdGVp
IiwibXltciIsIm15bXJzaGFuIiwibXltcnRsbmciLCJuZXdhIiwibmtvbyIsIm9sY2siLCJvcnlh
Iiwib3NtYSIsInJvaGciLCJyb21hbiIsInJvbWFubG93Iiwic2F1ciIsInNlZ21lbnQiLCJzaHJk
Iiwic2luZCIsInNpbmgiLCJzb3JhIiwic3VuZCIsInRha3IiLCJ0YWx1IiwidGFtbCIsInRhbWxk
ZWMiLCJ0ZWx1IiwidGhhaSIsInRpYnQiLCJ0aXJoIiwidmFpaSIsIndhcmEiLCJ3Y2hvIl1gKTsK
KworbGV0IHRpbWVab25lcyA9IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoInRpbWVab25lIik7Citz
aG91bGRCZShKU09OLnN0cmluZ2lmeSh0aW1lWm9uZXMpLCBgWyJBZnJpY2EvQWJpZGphbiIsIkFm
cmljYS9BY2NyYSIsIkFmcmljYS9BZGRpc19BYmFiYSIsIkFmcmljYS9BbGdpZXJzIiwiQWZyaWNh
L0FzbWVyYSIsIkFmcmljYS9CYW1ha28iLCJBZnJpY2EvQmFuZ3VpIiwiQWZyaWNhL0Jhbmp1bCIs
IkFmcmljYS9CaXNzYXUiLCJBZnJpY2EvQmxhbnR5cmUiLCJBZnJpY2EvQnJhenphdmlsbGUiLCJB
ZnJpY2EvQnVqdW1idXJhIiwiQWZyaWNhL0NhaXJvIiwiQWZyaWNhL0Nhc2FibGFuY2EiLCJBZnJp
Y2EvQ2V1dGEiLCJBZnJpY2EvQ29uYWtyeSIsIkFmcmljYS9EYWthciIsIkFmcmljYS9EYXJfZXNf
U2FsYWFtIiwiQWZyaWNhL0RqaWJvdXRpIiwiQWZyaWNhL0RvdWFsYSIsIkFmcmljYS9FbF9BYWl1
biIsIkFmcmljYS9GcmVldG93biIsIkFmcmljYS9HYWJvcm9uZSIsIkFmcmljYS9IYXJhcmUiLCJB
ZnJpY2EvSm9oYW5uZXNidXJnIiwiQWZyaWNhL0p1YmEiLCJBZnJpY2EvS2FtcGFsYSIsIkFmcmlj
YS9LaGFydG91bSIsIkFmcmljYS9LaWdhbGkiLCJBZnJpY2EvS2luc2hhc2EiLCJBZnJpY2EvTGFn
b3MiLCJBZnJpY2EvTGlicmV2aWxsZSIsIkFmcmljYS9Mb21lIiwiQWZyaWNhL0x1YW5kYSIsIkFm
cmljYS9MdWJ1bWJhc2hpIiwiQWZyaWNhL0x1c2FrYSIsIkFmcmljYS9NYWxhYm8iLCJBZnJpY2Ev
TWFwdXRvIiwiQWZyaWNhL01hc2VydSIsIkFmcmljYS9NYmFiYW5lIiwiQWZyaWNhL01vZ2FkaXNo
dSIsIkFmcmljYS9Nb25yb3ZpYSIsIkFmcmljYS9OYWlyb2JpIiwiQWZyaWNhL05kamFtZW5hIiwi
QWZyaWNhL05pYW1leSIsIkFmcmljYS9Ob3Vha2Nob3R0IiwiQWZyaWNhL091YWdhZG91Z291Iiwi
QWZyaWNhL1BvcnRvLU5vdm8iLCJBZnJpY2EvU2FvX1RvbWUiLCJBZnJpY2EvVHJpcG9saSIsIkFm
cmljYS9UdW5pcyIsIkFmcmljYS9XaW5kaG9layIsIkFtZXJpY2EvQWRhayIsIkFtZXJpY2EvQW5j
aG9yYWdlIiwiQW1lcmljYS9Bbmd1aWxsYSIsIkFtZXJpY2EvQW50aWd1YSIsIkFtZXJpY2EvQXJh
Z3VhaW5hIiwiQW1lcmljYS9BcmdlbnRpbmEvTGFfUmlvamEiLCJBbWVyaWNhL0FyZ2VudGluYS9S
aW9fR2FsbGVnb3MiLCJBbWVyaWNhL0FyZ2VudGluYS9TYWx0YSIsIkFtZXJpY2EvQXJnZW50aW5h
L1Nhbl9KdWFuIiwiQW1lcmljYS9BcmdlbnRpbmEvU2FuX0x1aXMiLCJBbWVyaWNhL0FyZ2VudGlu
YS9UdWN1bWFuIiwiQW1lcmljYS9BcmdlbnRpbmEvVXNodWFpYSIsIkFtZXJpY2EvQXJ1YmEiLCJB
bWVyaWNhL0FzdW5jaW9uIiwiQW1lcmljYS9CYWhpYSIsIkFtZXJpY2EvQmFoaWFfQmFuZGVyYXMi
LCJBbWVyaWNhL0JhcmJhZG9zIiwiQW1lcmljYS9CZWxlbSIsIkFtZXJpY2EvQmVsaXplIiwiQW1l
cmljYS9CbGFuYy1TYWJsb24iLCJBbWVyaWNhL0JvYV9WaXN0YSIsIkFtZXJpY2EvQm9nb3RhIiwi
QW1lcmljYS9Cb2lzZSIsIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwiQW1lcmljYS9DYW1icmlkZ2Vf
QmF5IiwiQW1lcmljYS9DYW1wb19HcmFuZGUiLCJBbWVyaWNhL0NhbmN1biIsIkFtZXJpY2EvQ2Fy
YWNhcyIsIkFtZXJpY2EvQ2F0YW1hcmNhIiwiQW1lcmljYS9DYXllbm5lIiwiQW1lcmljYS9DYXlt
YW4iLCJBbWVyaWNhL0NoaWNhZ28iLCJBbWVyaWNhL0NoaWh1YWh1YSIsIkFtZXJpY2EvQ29yYWxf
SGFyYm91ciIsIkFtZXJpY2EvQ29yZG9iYSIsIkFtZXJpY2EvQ29zdGFfUmljYSIsIkFtZXJpY2Ev
Q3Jlc3RvbiIsIkFtZXJpY2EvQ3VpYWJhIiwiQW1lcmljYS9DdXJhY2FvIiwiQW1lcmljYS9EYW5t
YXJrc2hhdm4iLCJBbWVyaWNhL0Rhd3NvbiIsIkFtZXJpY2EvRGF3c29uX0NyZWVrIiwiQW1lcmlj
YS9EZW52ZXIiLCJBbWVyaWNhL0RldHJvaXQiLCJBbWVyaWNhL0RvbWluaWNhIiwiQW1lcmljYS9F
ZG1vbnRvbiIsIkFtZXJpY2EvRWlydW5lcGUiLCJBbWVyaWNhL0VsX1NhbHZhZG9yIiwiQW1lcmlj
YS9Gb3J0X05lbHNvbiIsIkFtZXJpY2EvRm9ydGFsZXphIiwiQW1lcmljYS9HbGFjZV9CYXkiLCJB
bWVyaWNhL0dvZHRoYWIiLCJBbWVyaWNhL0dvb3NlX0JheSIsIkFtZXJpY2EvR3JhbmRfVHVyayIs
IkFtZXJpY2EvR3JlbmFkYSIsIkFtZXJpY2EvR3VhZGVsb3VwZSIsIkFtZXJpY2EvR3VhdGVtYWxh
IiwiQW1lcmljYS9HdWF5YXF1aWwiLCJBbWVyaWNhL0d1eWFuYSIsIkFtZXJpY2EvSGFsaWZheCIs
IkFtZXJpY2EvSGF2YW5hIiwiQW1lcmljYS9IZXJtb3NpbGxvIiwiQW1lcmljYS9JbmRpYW5hL0tu
b3giLCJBbWVyaWNhL0luZGlhbmEvTWFyZW5nbyIsIkFtZXJpY2EvSW5kaWFuYS9QZXRlcnNidXJn
IiwiQW1lcmljYS9JbmRpYW5hL1RlbGxfQ2l0eSIsIkFtZXJpY2EvSW5kaWFuYS9WZXZheSIsIkFt
ZXJpY2EvSW5kaWFuYS9WaW5jZW5uZXMiLCJBbWVyaWNhL0luZGlhbmEvV2luYW1hYyIsIkFtZXJp
Y2EvSW5kaWFuYXBvbGlzIiwiQW1lcmljYS9JbnV2aWsiLCJBbWVyaWNhL0lxYWx1aXQiLCJBbWVy
aWNhL0phbWFpY2EiLCJBbWVyaWNhL0p1anV5IiwiQW1lcmljYS9KdW5lYXUiLCJBbWVyaWNhL0tl
bnR1Y2t5L01vbnRpY2VsbG8iLCJBbWVyaWNhL0tyYWxlbmRpamsiLCJBbWVyaWNhL0xhX1BheiIs
IkFtZXJpY2EvTGltYSIsIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCJBbWVyaWNhL0xvdWlzdmlsbGUi
LCJBbWVyaWNhL0xvd2VyX1ByaW5jZXMiLCJBbWVyaWNhL01hY2VpbyIsIkFtZXJpY2EvTWFuYWd1
YSIsIkFtZXJpY2EvTWFuYXVzIiwiQW1lcmljYS9NYXJpZ290IiwiQW1lcmljYS9NYXJ0aW5pcXVl
IiwiQW1lcmljYS9NYXRhbW9yb3MiLCJBbWVyaWNhL01hemF0bGFuIiwiQW1lcmljYS9NZW5kb3ph
IiwiQW1lcmljYS9NZW5vbWluZWUiLCJBbWVyaWNhL01lcmlkYSIsIkFtZXJpY2EvTWV0bGFrYXRs
YSIsIkFtZXJpY2EvTWV4aWNvX0NpdHkiLCJBbWVyaWNhL01pcXVlbG9uIiwiQW1lcmljYS9Nb25j
dG9uIiwiQW1lcmljYS9Nb250ZXJyZXkiLCJBbWVyaWNhL01vbnRldmlkZW8iLCJBbWVyaWNhL01v
bnRyZWFsIiwiQW1lcmljYS9Nb250c2VycmF0IiwiQW1lcmljYS9OYXNzYXUiLCJBbWVyaWNhL05l
d19Zb3JrIiwiQW1lcmljYS9OaXBpZ29uIiwiQW1lcmljYS9Ob21lIiwiQW1lcmljYS9Ob3Jvbmhh
IiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvQmV1bGFoIiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvQ2Vu
dGVyIiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvTmV3X1NhbGVtIiwiQW1lcmljYS9PamluYWdhIiwi
QW1lcmljYS9QYW5hbWEiLCJBbWVyaWNhL1BhbmduaXJ0dW5nIiwiQW1lcmljYS9QYXJhbWFyaWJv
IiwiQW1lcmljYS9QaG9lbml4IiwiQW1lcmljYS9Qb3J0LWF1LVByaW5jZSIsIkFtZXJpY2EvUG9y
dF9vZl9TcGFpbiIsIkFtZXJpY2EvUG9ydG9fVmVsaG8iLCJBbWVyaWNhL1B1ZXJ0b19SaWNvIiwi
QW1lcmljYS9QdW50YV9BcmVuYXMiLCJBbWVyaWNhL1JhaW55X1JpdmVyIiwiQW1lcmljYS9SYW5r
aW5fSW5sZXQiLCJBbWVyaWNhL1JlY2lmZSIsIkFtZXJpY2EvUmVnaW5hIiwiQW1lcmljYS9SZXNv
bHV0ZSIsIkFtZXJpY2EvUmlvX0JyYW5jbyIsIkFtZXJpY2EvU2FudGFfSXNhYmVsIiwiQW1lcmlj
YS9TYW50YXJlbSIsIkFtZXJpY2EvU2FudGlhZ28iLCJBbWVyaWNhL1NhbnRvX0RvbWluZ28iLCJB
bWVyaWNhL1Nhb19QYXVsbyIsIkFtZXJpY2EvU2NvcmVzYnlzdW5kIiwiQW1lcmljYS9TaXRrYSIs
IkFtZXJpY2EvU3RfQmFydGhlbGVteSIsIkFtZXJpY2EvU3RfSm9obnMiLCJBbWVyaWNhL1N0X0tp
dHRzIiwiQW1lcmljYS9TdF9MdWNpYSIsIkFtZXJpY2EvU3RfVGhvbWFzIiwiQW1lcmljYS9TdF9W
aW5jZW50IiwiQW1lcmljYS9Td2lmdF9DdXJyZW50IiwiQW1lcmljYS9UZWd1Y2lnYWxwYSIsIkFt
ZXJpY2EvVGh1bGUiLCJBbWVyaWNhL1RodW5kZXJfQmF5IiwiQW1lcmljYS9UaWp1YW5hIiwiQW1l
cmljYS9Ub3JvbnRvIiwiQW1lcmljYS9Ub3J0b2xhIiwiQW1lcmljYS9WYW5jb3V2ZXIiLCJBbWVy
aWNhL1doaXRlaG9yc2UiLCJBbWVyaWNhL1dpbm5pcGVnIiwiQW1lcmljYS9ZYWt1dGF0IiwiQW1l
cmljYS9ZZWxsb3drbmlmZSIsIkFudGFyY3RpY2EvQ2FzZXkiLCJBbnRhcmN0aWNhL0RhdmlzIiwi
QW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZSIsIkFudGFyY3RpY2EvTWFjcXVhcmllIiwiQW50YXJj
dGljYS9NYXdzb24iLCJBbnRhcmN0aWNhL01jTXVyZG8iLCJBbnRhcmN0aWNhL1BhbG1lciIsIkFu
dGFyY3RpY2EvUm90aGVyYSIsIkFudGFyY3RpY2EvU3lvd2EiLCJBbnRhcmN0aWNhL1Ryb2xsIiwi
QW50YXJjdGljYS9Wb3N0b2siLCJBcmN0aWMvTG9uZ3llYXJieWVuIiwiQXNpYS9BZGVuIiwiQXNp
YS9BbG1hdHkiLCJBc2lhL0FtbWFuIiwiQXNpYS9BbmFkeXIiLCJBc2lhL0FxdGF1IiwiQXNpYS9B
cXRvYmUiLCJBc2lhL0FzaGdhYmF0IiwiQXNpYS9BdHlyYXUiLCJBc2lhL0JhZ2hkYWQiLCJBc2lh
L0JhaHJhaW4iLCJBc2lhL0Jha3UiLCJBc2lhL0Jhbmdrb2siLCJBc2lhL0Jhcm5hdWwiLCJBc2lh
L0JlaXJ1dCIsIkFzaWEvQmlzaGtlayIsIkFzaWEvQnJ1bmVpIiwiQXNpYS9DYWxjdXR0YSIsIkFz
aWEvQ2hpdGEiLCJBc2lhL0Nob2liYWxzYW4iLCJBc2lhL0NvbG9tYm8iLCJBc2lhL0RhbWFzY3Vz
IiwiQXNpYS9EaGFrYSIsIkFzaWEvRGlsaSIsIkFzaWEvRHViYWkiLCJBc2lhL0R1c2hhbmJlIiwi
QXNpYS9GYW1hZ3VzdGEiLCJBc2lhL0dhemEiLCJBc2lhL0hlYnJvbiIsIkFzaWEvSG9uZ19Lb25n
IiwiQXNpYS9Ib3ZkIiwiQXNpYS9Jcmt1dHNrIiwiQXNpYS9KYWthcnRhIiwiQXNpYS9KYXlhcHVy
YSIsIkFzaWEvSmVydXNhbGVtIiwiQXNpYS9LYWJ1bCIsIkFzaWEvS2FtY2hhdGthIiwiQXNpYS9L
YXJhY2hpIiwiQXNpYS9LYXRtYW5kdSIsIkFzaWEvS2hhbmR5Z2EiLCJBc2lhL0tyYXNub3lhcnNr
IiwiQXNpYS9LdWFsYV9MdW1wdXIiLCJBc2lhL0t1Y2hpbmciLCJBc2lhL0t1d2FpdCIsIkFzaWEv
TWFjYXUiLCJBc2lhL01hZ2FkYW4iLCJBc2lhL01ha2Fzc2FyIiwiQXNpYS9NYW5pbGEiLCJBc2lh
L011c2NhdCIsIkFzaWEvTmljb3NpYSIsIkFzaWEvTm92b2t1em5ldHNrIiwiQXNpYS9Ob3Zvc2li
aXJzayIsIkFzaWEvT21zayIsIkFzaWEvT3JhbCIsIkFzaWEvUGhub21fUGVuaCIsIkFzaWEvUG9u
dGlhbmFrIiwiQXNpYS9QeW9uZ3lhbmciLCJBc2lhL1FhdGFyIiwiQXNpYS9Rb3N0YW5heSIsIkFz
aWEvUXl6eWxvcmRhIiwiQXNpYS9SYW5nb29uIiwiQXNpYS9SaXlhZGgiLCJBc2lhL1NhaWdvbiIs
IkFzaWEvU2FraGFsaW4iLCJBc2lhL1NhbWFya2FuZCIsIkFzaWEvU2VvdWwiLCJBc2lhL1NoYW5n
aGFpIiwiQXNpYS9TaW5nYXBvcmUiLCJBc2lhL1NyZWRuZWtvbHltc2siLCJBc2lhL1RhaXBlaSIs
IkFzaWEvVGFzaGtlbnQiLCJBc2lhL1RiaWxpc2kiLCJBc2lhL1RlaHJhbiIsIkFzaWEvVGhpbXBo
dSIsIkFzaWEvVG9reW8iLCJBc2lhL1RvbXNrIiwiQXNpYS9VbGFhbmJhYXRhciIsIkFzaWEvVXJ1
bXFpIiwiQXNpYS9Vc3QtTmVyYSIsIkFzaWEvVmllbnRpYW5lIiwiQXNpYS9WbGFkaXZvc3RvayIs
IkFzaWEvWWFrdXRzayIsIkFzaWEvWWVrYXRlcmluYnVyZyIsIkFzaWEvWWVyZXZhbiIsIkF0bGFu
dGljL0F6b3JlcyIsIkF0bGFudGljL0Jlcm11ZGEiLCJBdGxhbnRpYy9DYW5hcnkiLCJBdGxhbnRp
Yy9DYXBlX1ZlcmRlIiwiQXRsYW50aWMvRmFlcm9lIiwiQXRsYW50aWMvTWFkZWlyYSIsIkF0bGFu
dGljL1JleWtqYXZpayIsIkF0bGFudGljL1NvdXRoX0dlb3JnaWEiLCJBdGxhbnRpYy9TdF9IZWxl
bmEiLCJBdGxhbnRpYy9TdGFubGV5IiwiQXVzdHJhbGlhL0FkZWxhaWRlIiwiQXVzdHJhbGlhL0Jy
aXNiYW5lIiwiQXVzdHJhbGlhL0Jyb2tlbl9IaWxsIiwiQXVzdHJhbGlhL0N1cnJpZSIsIkF1c3Ry
YWxpYS9EYXJ3aW4iLCJBdXN0cmFsaWEvRXVjbGEiLCJBdXN0cmFsaWEvSG9iYXJ0IiwiQXVzdHJh
bGlhL0xpbmRlbWFuIiwiQXVzdHJhbGlhL0xvcmRfSG93ZSIsIkF1c3RyYWxpYS9NZWxib3VybmUi
LCJBdXN0cmFsaWEvUGVydGgiLCJBdXN0cmFsaWEvU3lkbmV5IiwiRXVyb3BlL0Ftc3RlcmRhbSIs
IkV1cm9wZS9BbmRvcnJhIiwiRXVyb3BlL0FzdHJha2hhbiIsIkV1cm9wZS9BdGhlbnMiLCJFdXJv
cGUvQmVsZ3JhZGUiLCJFdXJvcGUvQmVybGluIiwiRXVyb3BlL0JyYXRpc2xhdmEiLCJFdXJvcGUv
QnJ1c3NlbHMiLCJFdXJvcGUvQnVjaGFyZXN0IiwiRXVyb3BlL0J1ZGFwZXN0IiwiRXVyb3BlL0J1
c2luZ2VuIiwiRXVyb3BlL0NoaXNpbmF1IiwiRXVyb3BlL0NvcGVuaGFnZW4iLCJFdXJvcGUvRHVi
bGluIiwiRXVyb3BlL0dpYnJhbHRhciIsIkV1cm9wZS9HdWVybnNleSIsIkV1cm9wZS9IZWxzaW5r
aSIsIkV1cm9wZS9Jc2xlX29mX01hbiIsIkV1cm9wZS9Jc3RhbmJ1bCIsIkV1cm9wZS9KZXJzZXki
LCJFdXJvcGUvS2FsaW5pbmdyYWQiLCJFdXJvcGUvS2lldiIsIkV1cm9wZS9LaXJvdiIsIkV1cm9w
ZS9MaXNib24iLCJFdXJvcGUvTGp1YmxqYW5hIiwiRXVyb3BlL0xvbmRvbiIsIkV1cm9wZS9MdXhl
bWJvdXJnIiwiRXVyb3BlL01hZHJpZCIsIkV1cm9wZS9NYWx0YSIsIkV1cm9wZS9NYXJpZWhhbW4i
LCJFdXJvcGUvTWluc2siLCJFdXJvcGUvTW9uYWNvIiwiRXVyb3BlL01vc2NvdyIsIkV1cm9wZS9P
c2xvIiwiRXVyb3BlL1BhcmlzIiwiRXVyb3BlL1BvZGdvcmljYSIsIkV1cm9wZS9QcmFndWUiLCJF
dXJvcGUvUmlnYSIsIkV1cm9wZS9Sb21lIiwiRXVyb3BlL1NhbWFyYSIsIkV1cm9wZS9TYW5fTWFy
aW5vIiwiRXVyb3BlL1NhcmFqZXZvIiwiRXVyb3BlL1NhcmF0b3YiLCJFdXJvcGUvU2ltZmVyb3Bv
bCIsIkV1cm9wZS9Ta29wamUiLCJFdXJvcGUvU29maWEiLCJFdXJvcGUvU3RvY2tob2xtIiwiRXVy
b3BlL1RhbGxpbm4iLCJFdXJvcGUvVGlyYW5lIiwiRXVyb3BlL1VseWFub3ZzayIsIkV1cm9wZS9V
emhnb3JvZCIsIkV1cm9wZS9WYWR1eiIsIkV1cm9wZS9WYXRpY2FuIiwiRXVyb3BlL1ZpZW5uYSIs
IkV1cm9wZS9WaWxuaXVzIiwiRXVyb3BlL1ZvbGdvZ3JhZCIsIkV1cm9wZS9XYXJzYXciLCJFdXJv
cGUvWmFncmViIiwiRXVyb3BlL1phcG9yb3poeWUiLCJFdXJvcGUvWnVyaWNoIiwiSW5kaWFuL0Fu
dGFuYW5hcml2byIsIkluZGlhbi9DaGFnb3MiLCJJbmRpYW4vQ2hyaXN0bWFzIiwiSW5kaWFuL0Nv
Y29zIiwiSW5kaWFuL0NvbW9ybyIsIkluZGlhbi9LZXJndWVsZW4iLCJJbmRpYW4vTWFoZSIsIklu
ZGlhbi9NYWxkaXZlcyIsIkluZGlhbi9NYXVyaXRpdXMiLCJJbmRpYW4vTWF5b3R0ZSIsIkluZGlh
bi9SZXVuaW9uIiwiUGFjaWZpYy9BcGlhIiwiUGFjaWZpYy9BdWNrbGFuZCIsIlBhY2lmaWMvQm91
Z2FpbnZpbGxlIiwiUGFjaWZpYy9DaGF0aGFtIiwiUGFjaWZpYy9FYXN0ZXIiLCJQYWNpZmljL0Vm
YXRlIiwiUGFjaWZpYy9FbmRlcmJ1cnkiLCJQYWNpZmljL0Zha2FvZm8iLCJQYWNpZmljL0Zpamki
LCJQYWNpZmljL0Z1bmFmdXRpIiwiUGFjaWZpYy9HYWxhcGFnb3MiLCJQYWNpZmljL0dhbWJpZXIi
LCJQYWNpZmljL0d1YWRhbGNhbmFsIiwiUGFjaWZpYy9HdWFtIiwiUGFjaWZpYy9Ib25vbHVsdSIs
IlBhY2lmaWMvSm9obnN0b24iLCJQYWNpZmljL0tpcml0aW1hdGkiLCJQYWNpZmljL0tvc3JhZSIs
IlBhY2lmaWMvS3dhamFsZWluIiwiUGFjaWZpYy9NYWp1cm8iLCJQYWNpZmljL01hcnF1ZXNhcyIs
IlBhY2lmaWMvTWlkd2F5IiwiUGFjaWZpYy9OYXVydSIsIlBhY2lmaWMvTml1ZSIsIlBhY2lmaWMv
Tm9yZm9sayIsIlBhY2lmaWMvTm91bWVhIiwiUGFjaWZpYy9QYWdvX1BhZ28iLCJQYWNpZmljL1Bh
bGF1IiwiUGFjaWZpYy9QaXRjYWlybiIsIlBhY2lmaWMvUG9uYXBlIiwiUGFjaWZpYy9Qb3J0X01v
cmVzYnkiLCJQYWNpZmljL1Jhcm90b25nYSIsIlBhY2lmaWMvU2FpcGFuIiwiUGFjaWZpYy9UYWhp
dGkiLCJQYWNpZmljL1RhcmF3YSIsIlBhY2lmaWMvVG9uZ2F0YXB1IiwiUGFjaWZpYy9UcnVrIiwi
UGFjaWZpYy9XYWtlIiwiUGFjaWZpYy9XYWxsaXMiXWApOworCitsZXQgdW5pdHMgPSBJbnRsLnN1
cHBvcnRlZFZhbHVlc09mKCJ1bml0Iik7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeSh1bml0cyks
IGBbImFjcmUiLCJiaXQiLCJieXRlIiwiY2Vsc2l1cyIsImNlbnRpbWV0ZXIiLCJkYXkiLCJkZWdy
ZWUiLCJmYWhyZW5oZWl0IiwiZmx1aWQtb3VuY2UiLCJmb290IiwiZ2FsbG9uIiwiZ2lnYWJpdCIs
ImdpZ2FieXRlIiwiZ3JhbSIsImhlY3RhcmUiLCJob3VyIiwiaW5jaCIsImtpbG9iaXQiLCJraWxv
Ynl0ZSIsImtpbG9ncmFtIiwia2lsb21ldGVyIiwibGl0ZXIiLCJtZWdhYml0IiwibWVnYWJ5dGUi
LCJtZXRlciIsIm1pbGUiLCJtaWxlLXNjYW5kaW5hdmlhbiIsIm1pbGxpbGl0ZXIiLCJtaWxsaW1l
dGVyIiwibWlsbGlzZWNvbmQiLCJtaW51dGUiLCJtb250aCIsIm91bmNlIiwicGVyY2VudCIsInBl
dGFieXRlIiwicG91bmQiLCJzZWNvbmQiLCJzdG9uZSIsInRlcmFiaXQiLCJ0ZXJhYnl0ZSIsIndl
ZWsiLCJ5YXJkIiwieWVhciJdYCk7CisKK3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBJbnRsLnN1
cHBvcnRlZFZhbHVlc09mKCJpbnZhbGlkIik7Cit9LCBSYW5nZUVycm9yKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436094</attachid>
            <date>2021-08-21 16:32:50 -0700</date>
            <delta_ts>2021-08-22 16:45:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214795-20210821163249.patch</filename>
            <type>text/plain</type>
            <size>39460</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YzMwZTk5MDE0MGU0NjI4ZTY5ZTI2MmFjZjBlMmY1NGRiODgxNTMzLi41NjhhYjkxNmI2MWY4NTll
ZTg5YzUxZGNmZjRjMTdiOWE5YTVlZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0wOC0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyBJbnRsIGVudW1lcmF0aW9uIEFQSVsxXSB3aGljaCBpcyBpbiBzdGFnZS0zLgorICAgICAgICBT
dXBwb3J0ZWQga2V5cyBhcmUsICJjYWxlbmRhciIsICJjb2xsYXRpb24iLCAiY3VycmVuY3kiLCAi
bnVtYmVyaW5nU3lzdGVtIiwgInRpbWVab25lIiwgYW5kICJ1bml0Ii4KKworICAgICAgICBbMV06
IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24KKworICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50
bERhdGVUaW1lRm9ybWF0Ojpsb2NhbGVEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0ludGxMb2Nh
bGUuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVBcnJheUZyb21TdHJpbmdWZWN0b3IpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHA6CisgICAgICAgIChK
U0M6OnNhbmN0aW9uZWRTaW1wbGVVbml0SWRlbnRpZmllcik6CisgICAgICAgICogcnVudGltZS9J
bnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAoSlNDOjptYXBJQ1VDYWxlbmRhcktleXdvcmRUb0JDUDQ3KToKKyAgICAgICAg
KEpTQzo6YXZhaWxhYmxlQ2FsZW5kYXJzKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlQ29sbGF0
aW9ucyk6CisgICAgICAgIChKU0M6OmF2YWlsYWJsZUN1cnJlbmNpZXMpOgorICAgICAgICAoSlND
OjphdmFpbGFibGVOdW1iZXJpbmdTeXN0ZW1zKToKKyAgICAgICAgKEpTQzo6Y2Fub25pY2FsaXpl
VGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25lKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlVGlt
ZVpvbmVzKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlVW5pdHMpOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjcmVhdGVBcnJheUZyb21T
dHJpbmdWZWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5oOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wOC0yMSAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEludGwuRGlzcGxheU5hbWVzIHYyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IGZlNDUwNDFhODc5MGFjMmY2MTIxZmNjYjIwZmVlZTUzOTQ2MmVlZDAuLmVkMjhmMzZjM2Vj
MzUyZTljMDAzMGZkNDRjNWRmOGE5ZWU4MmNiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEt
MDgtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlND
XSBBZGQgSW50bCBFbnVtZXJhdGlvbiBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAo
V1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCk6CisgICAgICAgICogd3RmL3RleHQv
U3RyaW5nSW1wbC5oOgorCiAyMDIxLTA4LTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIHB0clRhZ05hbWUgYW5kIHRhZ0ZvclB0ciBXVEZfRVhQT1JUX1BS
SVZBVEUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0LmNwcAppbmRleCAxODI3MGUzMjY4MGM4MWQ3NzFlZmNmMDY4ODIxZTA1MGU0YzE5
NTgwLi40MWM3NWYyYTU0MTg5ZjM1MTdmM2MzZGFlZjVlMmFmZmNiY2JjMzA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAK
QEAgLTE2NSw2ICsxNjUsOSBAQCBWZWN0b3I8U3RyaW5nPiBJbnRsRGF0ZVRpbWVGb3JtYXQ6Omxv
Y2FsZURhdGEoY29uc3QgU3RyaW5nJiBsb2NhbGUsIFJlbGV2YW50RXh0ZQogICAgICAgICAgICAg
QVNTRVJUKFVfU1VDQ0VTUyhzdGF0dXMpKTsKICAgICAgICAgICAgIFN0cmluZyBjYWxlbmRhciA9
IFN0cmluZyhhdmFpbGFibGVOYW1lLCBuYW1lTGVuZ3RoKTsKICAgICAgICAgICAgIGtleUxvY2Fs
ZURhdGEuYXBwZW5kKGNhbGVuZGFyKTsKKyAgICAgICAgICAgIC8vIEFkZGluZyAiaXNsYW1pY2Mi
IGNhbmRpZGF0ZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgICAgIGlmIChj
YWxlbmRhciA9PSAiaXNsYW1pYy1jaXZpbCJfcykKKyAgICAgICAgICAgICAgICBrZXlMb2NhbGVE
YXRhLmFwcGVuZCgiaXNsYW1pY2MiX3MpOwogICAgICAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0g
bWFwSUNVQ2FsZW5kYXJLZXl3b3JkVG9CQ1A0NyhjYWxlbmRhcikpCiAgICAgICAgICAgICAgICAg
a2V5TG9jYWxlRGF0YS5hcHBlbmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkpOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwCmluZGV4IDlh
MDU5MDc4Mzg5ZmViYjg1YTJmMzNjNGFmNDdiNDI1YzNkYzQyMDQuLmMzYjI2ZGQ4MmI1NDBhMWFm
NDcwMjdmNDQ1OWQxNjA0NTJkMzNmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxMb2NhbGUuY3BwCkBAIC01MzcsMjMgKzUzNyw2IEBAIFRyaVN0YXRlIEludGxMb2Nh
bGU6Om51bWVyaWMoKQogICAgIHJldHVybiBtX251bWVyaWM7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNBcnJheSogY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFZlY3RvcjxTdHJpbmcsIDE+JiYgZWxlbWVudHMpCi17Ci0gICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLQotICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRyeUNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24o
QXJyYXlXaXRoQ29udGlndW91cyksIGVsZW1lbnRzLnNpemUoKSk7Ci0gICAgaWYgKCFyZXN1bHQp
IHsKLSAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgZm9yICh1bnNpZ25lZCBpbmRleCA9
IDA7IGluZGV4IDwgZWxlbWVudHMuc2l6ZSgpOyArK2luZGV4KSB7Ci0gICAgICAgIHJlc3VsdC0+
cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCwganNTdHJpbmcodm0sIFdURk1vdmUo
ZWxlbWVudHNbaW5kZXhdKSkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBKU0FycmF5KiBJbnRsTG9jYWxl
OjpjYWxlbmRhcnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4IDNkOTlmYjkxYTlhY2JhYjY1YzA4MWYzMzFk
MzE1ODcwM2ZiOWY3NDAuLmZjMzIzNzAzMjAyMmI0YzZkNjdkZDgxNTU5ZWMzMzViNTZiZDBkZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3Jt
YXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3Jt
YXQuY3BwCkBAIC0xNTEsNTkgKzE1MSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBjb21wdXRlQ3VycmVu
Y3lEaWdpdHMoY29uc3QgU3RyaW5nJiBjdXJyZW5jeSkKICAgICByZXR1cm4gMjsKIH0KIAotLy8g
Q3JlYXRlIE1lYXN1cmVVbml0IGxpa2UgSUNVNEouCi1zdHJ1Y3QgTWVhc3VyZVVuaXQgewotICAg
IEFTQ0lJTGl0ZXJhbCB0eXBlOwotICAgIEFTQ0lJTGl0ZXJhbCBzdWJUeXBlOwotfTsKLQogc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8TWVhc3VyZVVuaXQ+IHNhbmN0aW9uZWRTaW1wbGVVbml0SWRlbnRp
ZmllcihTdHJpbmdWaWV3IHVuaXRJZGVudGlmaWVyKQogewotICAgIHN0YXRpYyBjb25zdGV4cHIg
TWVhc3VyZVVuaXQgc2ltcGxlVW5pdHNbXSA9IHsKLSAgICAgICAgeyAiYXJlYSJfcywgImFjcmUi
X3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImJpdCJfcyB9LAotICAgICAgICB7ICJkaWdp
dGFsIl9zLCAiYnl0ZSJfcyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImNlbHNpdXMi
X3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAiY2VudGltZXRlciJfcyB9LAotICAgICAgICB7
ICJkdXJhdGlvbiJfcywgImRheSJfcyB9LAotICAgICAgICB7ICJhbmdsZSJfcywgImRlZ3JlZSJf
cyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImZhaHJlbmhlaXQiX3MgfSwKLSAgICAg
ICAgeyAidm9sdW1lIl9zLCAiZmx1aWQtb3VuY2UiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9z
LCAiZm9vdCJfcyB9LAotICAgICAgICB7ICJ2b2x1bWUiX3MsICJnYWxsb24iX3MgfSwKLSAgICAg
ICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywg
ImdpZ2FieXRlIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3MsICJncmFtIl9zIH0sCi0gICAgICAg
IHsgImFyZWEiX3MsICJoZWN0YXJlIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAiaG91
ciJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJpbmNoIl9zIH0sCi0gICAgICAgIHsgImRp
Z2l0YWwiX3MsICJraWxvYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYnl0
ZSJfcyB9LAotICAgICAgICB7ICJtYXNzIl9zLCAia2lsb2dyYW0iX3MgfSwKLSAgICAgICAgeyAi
bGVuZ3RoIl9zLCAia2lsb21ldGVyIl9zIH0sCi0gICAgICAgIHsgInZvbHVtZSJfcywgImxpdGVy
Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYml0Il9zIH0sCi0gICAgICAgIHsg
ImRpZ2l0YWwiX3MsICJtZWdhYnl0ZSJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJtZXRl
ciJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJtaWxlIl9zIH0sCi0gICAgICAgIHsgImxl
bmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCi0gICAgICAgIHsgInZvbHVtZSJfcywg
Im1pbGxpbGl0ZXIiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAibWlsbGltZXRlciJfcyB9
LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0sCi0gICAgICAgIHsg
ImR1cmF0aW9uIl9zLCAibWludXRlIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAibW9u
dGgiX3MgfSwKLSAgICAgICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0sCi0gICAgICAgIHsgImNv
bmNlbnRyIl9zLCAicGVyY2VudCJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAicGV0YWJ5
dGUiX3MgfSwKLSAgICAgICAgeyAibWFzcyJfcywgInBvdW5kIl9zIH0sCi0gICAgICAgIHsgImR1
cmF0aW9uIl9zLCAic2Vjb25kIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3MsICJzdG9uZSJfcyB9
LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJpdCJfcyB9LAotICAgICAgICB7ICJkaWdp
dGFsIl9zLCAidGVyYWJ5dGUiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJ3ZWVrIl9z
IH0sCi0gICAgICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRp
b24iX3MsICJ5ZWFyIl9zIH0sCi0gICAgfTsKICAgICBBU1NFUlQoCiAgICAgICAgIHN0ZDo6aXNf
c29ydGVkKHN0ZDo6YmVnaW4oc2ltcGxlVW5pdHMpLCBzdGQ6OmVuZChzaW1wbGVVbml0cyksCiAg
ICAgICAgICAgICBbXShjb25zdCBNZWFzdXJlVW5pdCYgYSwgY29uc3QgTWVhc3VyZVVuaXQmIGIp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXgg
MDNjOWQ3OTg2Zjk1YTA3MWI2OTUzODkzM2I4MWQ3NDYzNDExM2M4Ny4uZDVjMjZhZmQ1YjQ5YmI0
YjZmYjUwMGM3YzA3YWQ4NmJkN2M1ZjkwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJKU0NJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgor
I2luY2x1ZGUgPHVuaWNvZGUvdWNhbC5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWNvbC5oPgogI2lu
Y2x1ZGUgPHVuaWNvZGUvdWZpZWxkcG9zaXRlci5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5o
PgpAQCAtNzUsNiArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIFNUQVRJQ19BU1NFUlRfSVNfVFJJ
VklBTExZX0RFU1RSVUNUSUJMRShJbnRsT2JqZWN0KTsKIAogc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2NhbGVzKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jU3VwcG9ydGVkVmFsdWVzT2Yp
OwogCiBzdGF0aWMgSlNWYWx1ZSBjcmVhdGVDb2xsYXRvckNvbnN0cnVjdG9yKFZNJiB2bSwgSlNP
YmplY3QqIG9iamVjdCkKIHsKQEAgLTE3Miw2ICsxNzQsNTIgQEAgdm9pZCBVRmllbGRQb3NpdGlv
bkl0ZXJhdG9yRGVsZXRlcjo6b3BlcmF0b3IoKShVRmllbGRQb3NpdGlvbkl0ZXJhdG9yKiBpdGVy
YXRvcikKICAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9zZShpdGVyYXRvcik7CiB9CiAKK2NvbnN0
IE1lYXN1cmVVbml0IHNpbXBsZVVuaXRzWzQzXSA9IHsKKyAgICB7ICJhcmVhIl9zLCAiYWNyZSJf
cyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJiaXQiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAi
Ynl0ZSJfcyB9LAorICAgIHsgInRlbXBlcmF0dXJlIl9zLCAiY2Vsc2l1cyJfcyB9LAorICAgIHsg
Imxlbmd0aCJfcywgImNlbnRpbWV0ZXIiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgImRheSJf
cyB9LAorICAgIHsgImFuZ2xlIl9zLCAiZGVncmVlIl9zIH0sCisgICAgeyAidGVtcGVyYXR1cmUi
X3MsICJmYWhyZW5oZWl0Il9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAiZmx1aWQtb3VuY2UiX3Mg
fSwKKyAgICB7ICJsZW5ndGgiX3MsICJmb290Il9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAiZ2Fs
bG9uIl9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwKKyAgICB7ICJkaWdp
dGFsIl9zLCAiZ2lnYWJ5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAiZ3JhbSJfcyB9LAorICAg
IHsgImFyZWEiX3MsICJoZWN0YXJlIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJob3VyIl9z
IH0sCisgICAgeyAibGVuZ3RoIl9zLCAiaW5jaCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJr
aWxvYml0Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImtpbG9ieXRlIl9zIH0sCisgICAgeyAi
bWFzcyJfcywgImtpbG9ncmFtIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAia2lsb21ldGVyIl9z
IH0sCisgICAgeyAidm9sdW1lIl9zLCAibGl0ZXIiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAi
bWVnYWJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYnl0ZSJfcyB9LAorICAgIHsg
Imxlbmd0aCJfcywgIm1ldGVyIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAibWlsZSJfcyB9LAor
ICAgIHsgImxlbmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCisgICAgeyAidm9sdW1l
Il9zLCAibWlsbGlsaXRlciJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1pbGxpbWV0ZXIiX3Mg
fSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0sCisgICAgeyAiZHVyYXRp
b24iX3MsICJtaW51dGUiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1vbnRoIl9zIH0sCisg
ICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0sCisgICAgeyAiY29uY2VudHIiX3MsICJwZXJjZW50
Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgInBldGFieXRlIl9zIH0sCisgICAgeyAibWFzcyJf
cywgInBvdW5kIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJzZWNvbmQiX3MgfSwKKyAgICB7
ICJtYXNzIl9zLCAic3RvbmUiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJpdCJfcyB9
LAorICAgIHsgImRpZ2l0YWwiX3MsICJ0ZXJhYnl0ZSJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9z
LCAid2VlayJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwKKyAgICB7ICJkdXJh
dGlvbiJfcywgInllYXIiX3MgfSwKK307CisKIEludGxPYmplY3Q6OkludGxPYmplY3QoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKIHsKQEAg
LTE4NCw3ICsyMzIsNyBAQCBJbnRsT2JqZWN0KiBJbnRsT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqCiAgICAgcmV0dXJuIG9iamVj
dDsKIH0KIAotdm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KikKK3ZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsK
ICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwpAQCAtMTk5LDYgKzI0Nyw4IEBAIHZv
aWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCopCiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTSgmY3JlYXRlTGlzdEZvcm1hdENvbnN0cnVjdG9yKTsKICNl
bmRpZgorICAgIGlmIChPcHRpb25zOjp1c2VJbnRsRW51bWVyYXRpb24oKSkKKyAgICAgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1cHBvcnRlZFZhbHVlc09mIiwg
aW50bE9iamVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogfQogCiBTdHJ1Y3R1cmUqIEludGxPYmpl
Y3Q6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTQ2OCw4ICsxNTE4LDggQEAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IG1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcoY29uc3QgU3RyaW5nJiBjYWxlbmRh
cikKIHsKICAgICBpZiAoY2FsZW5kYXIgPT0gImdyZWdvcmlhbiJfcykKICAgICAgICAgcmV0dXJu
ICJncmVnb3J5Il9zOwotICAgIGlmIChjYWxlbmRhciA9PSAiaXNsYW1pYy1jaXZpbCJfcykKLSAg
ICAgICAgcmV0dXJuICJpc2xhbWljYyJfczsKKyAgICAvLyBpc2xhbWljYyBpcyBkZXByZWNhdGVk
IGluIEJDUDQ3LCBhbmQgaXNsYW1pYy1jaXZpbCBpcyBwcmVmZXJyZWQuCisgICAgLy8gaHR0cHM6
Ly9naXRodWIuY29tL3VuaWNvZGUtb3JnL2NsZHIvYmxvYi9tYXN0ZXIvY29tbW9uL2JjcDQ3L2Nh
bGVuZGFyLnhtbAogICAgIGlmIChjYWxlbmRhciA9PSAiZXRoaW9waWMtYW1ldGUtYWxlbSJfcykK
ICAgICAgICAgcmV0dXJuICJldGhpb2FhIl9zOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBA
IC0xNTI0LDQgKzE1NzQsMzExIEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpbnRsT2JqZWN0
RnVuY0dldENhbm9uaWNhbExvY2FsZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShsb2NhbGVBcnJheSk7CiB9CiAKKy8vIGh0dHBzOi8vdGMzOS5lcy9w
cm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxlY2FsZW5kYXJzCitzdGF0aWMg
SlNBcnJheSogYXZhaWxhYmxlQ2FsZW5kYXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
Cit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJP
X0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0
aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9nZXRLZXl3b3JkVmFsdWVzRm9yTG9j
YWxlKCJjYWxlbmRhcnMiLCAidW5kIiwgZmFsc2UsICZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJfcyk7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVu
dW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsK
KyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBl
bnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJfcyk7CisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgfQorCisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsg
aW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7Cisg
ICAgICAgIGNvbnN0IGNoYXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgp
LCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Cisg
ICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRv
IGVudW1lcmF0ZSBhdmFpbGFibGUgY2FsZW5kYXJzIl9zKTsKKyAgICAgICAgICAgIHJldHVybiB7
IH07CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGNhbGVuZGFyKHBvaW50ZXIsIGxlbmd0aCk7
CisgICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IG1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDco
Y2FsZW5kYXIpKQorICAgICAgICAgICAgZWxlbWVudHMuYXBwZW5kKFdURk1vdmUobWFwcGVkLnZh
bHVlKCkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZWxlbWVudHMuYXBwZW5kKFdURk1v
dmUoY2FsZW5kYXIpKTsKKyAgICB9CisKKyAgICAvLyBUaGUgQXZhaWxhYmxlQ2FsZW5kYXJzIGFi
c3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlzdCwgb3JkZXJlZCBhcyBpZiBhbiBBcnJheSBv
ZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQgdXNpbmcgJUFycmF5LnBy
b3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZuCisgICAgc3RkOjpzb3J0
KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgpLAorICAgICAgICBbXShjb25zdCBTdHJp
bmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAgICAgICAgcmV0dXJuIFdURjo6Y29kZVBv
aW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0pOworCisgICAgcmV0dXJuIGNyZWF0ZUFy
cmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIFdURk1vdmUoZWxlbWVudHMpKTsKK30K
KworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1hdmFp
bGFibGVjb2xsYXRpb25zCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ29sbGF0aW9ucyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBV
RXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0g
c3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVj
b2xfZ2V0S2V5d29yZFZhbHVlcygiY29sbGF0aW9uIiwgJnN0YXR1cykpOworICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY29sbGF0aW9ucyJfcyk7CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50
KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykp
IHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0
byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOworICAgICAgICByZXR1cm4geyB9
OworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmcsIDE+IGVsZW1lbnRzOworICAgIGVsZW1lbnRz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOworICAgIGZvciAoaW50MzJfdCBpbmRleCA9
IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50MzJfdCBsZW5ndGggPSAw
OworICAgICAgICBjb25zdCBjaGFyKiBwb2ludGVyID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5n
ZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkg
eworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxl
ZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOworICAgICAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgY29sbGF0aW9uKHBvaW50ZXIsIGxl
bmd0aCk7CisgICAgICAgIGlmIChjb2xsYXRpb24gPT0gInN0YW5kYXJkIl9zIHx8IGNvbGxhdGlv
biA9PSAic2VhcmNoIl9zKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChhdXRv
IG1hcHBlZCA9IG1hcElDVUNvbGxhdGlvbktleXdvcmRUb0JDUDQ3KGNvbGxhdGlvbikpCisgICAg
ICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShjb2xsYXRpb24pKTsK
KyAgICB9CisKKyAgICAvLyBUaGUgQXZhaWxhYmxlQ29sbGF0aW9ucyBhYnN0cmFjdCBvcGVyYXRp
b24gcmV0dXJucyBhIExpc3QsIG9yZGVyZWQgYXMgaWYgYW4gQXJyYXkgb2YgdGhlIHNhbWUKKyAg
ICAvLyB2YWx1ZXMgaGFkIGJlZW4gc29ydGVkIHVzaW5nICVBcnJheS5wcm90b3R5cGUuc29ydCUg
dXNpbmcgdW5kZWZpbmVkIGFzIGNvbXBhcmVmbgorICAgIHN0ZDo6c29ydChlbGVtZW50cy5iZWdp
bigpLCBlbGVtZW50cy5lbmQoKSwKKyAgICAgICAgW10oY29uc3QgU3RyaW5nJiBhLCBjb25zdCBT
dHJpbmcmIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQb2ludENvbXBhcmUoYSwg
YikgPCAwOworICAgICAgICB9KTsKKworICAgIHJldHVybiBjcmVhdGVBcnJheUZyb21TdHJpbmdW
ZWN0b3IoZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVsZW1lbnRzKSk7Cit9CisKKy8vIGh0dHBzOi8v
dGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxlY3VycmVuY2ll
cworc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZUN1cnJlbmNpZXMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgVUVycm9yQ29kZSBzdGF0
dXMgPSBVX1pFUk9fRVJST1I7CisgICAgYXV0byBlbnVtZXJhdGlvbiA9IHN0ZDo6dW5pcXVlX3B0
cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVudW1fY2xvc2U+Pih1Y3Vycl9vcGVuSVNPQ3Vy
cmVuY2llcyhVQ1VSUl9DT01NT04gfCBVQ1VSUl9OT05fREVQUkVDQVRFRCwgJnN0YXR1cykpOwor
ICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY3VycmVuY2ll
cyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9
IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGN1cnJlbmNpZXMiX3MpOworICAgICAg
ICByZXR1cm4geyB9OworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmcsIDE+IGVsZW1lbnRzOwor
ICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOworICAgIGZvciAoaW50
MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50MzJf
dCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBjdXJyZW5jeSA9IHVlbnVtX25leHQo
ZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjdXJyZW5jaWVzIl9zKTsKKyAg
ICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudHMuY29uc3Ry
dWN0QW5kQXBwZW5kKGN1cnJlbmN5LCBsZW5ndGgpOworICAgIH0KKworICAgIC8vIFRoZSBBdmFp
bGFibGVDdXJyZW5jaWVzIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlzdCwgb3JkZXJl
ZCBhcyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQgYmVlbiBzb3J0
ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFy
ZWZuCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgpLAorICAg
ICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAgICAgICAg
cmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0pOworCisg
ICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIFdURk1v
dmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51
bWVyYXRpb24vI3NlYy1hdmFpbGFibGVudW1iZXJpbmdzeXN0ZW1zCitzdGF0aWMgSlNBcnJheSog
YXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVtcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19F
UlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlv
biwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVudW1zeXNfb3BlbkF2YWlsYWJsZU5hbWVzKCZz
dGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxl
IG51bWJlcmluZyBzeXN0ZW1zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAg
ICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMp
OworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVy
aW5nIHN5c3RlbXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIFZlY3Rv
cjxTdHJpbmcsIDE+IGVsZW1lbnRzOworICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkoY291bnQpOworICAgIGZvciAoaW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsr
aW5kZXgpIHsKKyAgICAgICAgaW50MzJfdCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFy
KiBudW1iZXJpbmdTeXN0ZW0gPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3Ro
LCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAg
ICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0
ZSBhdmFpbGFibGUgbnVtYmVyaW5nIHN5c3RlbXMiX3MpOworICAgICAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50cy5jb25zdHJ1Y3RBbmRBcHBlbmQobnVtYmVy
aW5nU3lzdGVtLCBsZW5ndGgpOworICAgIH0KKworICAgIC8vIFRoZSBBdmFpbGFibGVOdW1iZXJp
bmdTeXN0ZW1zIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlzdCwgb3JkZXJlZCBhcyBp
ZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQgdXNp
bmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZuCisg
ICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgpLAorICAgICAgICBb
XShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAgICAgICAgcmV0dXJu
IFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0pOworCisgICAgcmV0
dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIFdURk1vdmUoZWxl
bWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRp
b24vI3NlYy1jYW5vbmljYWxpemV0aW1lem9uZW5hbWUKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gY2Fub25pY2FsaXplVGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25lKGNvbnN0IFN0cmlu
ZyYgdGltZVpvbmVOYW1lKQoreworICAgIC8vIFNvbWUgdGltZSB6b25lIG5hbWVzIGFyZSBpbmNs
dWRlZCBpbiBJQ1UsIGJ1dCB0aGV5IGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIElBTkEgVGltZSBa
b25lIERhdGFiYXNlLgorICAgIC8vIFdlIG5lZWQgdG8gZmlsdGVyIHRoZW0gb3V0LgorICAgIGlm
ICh0aW1lWm9uZU5hbWUuc3RhcnRzV2l0aCgiU3lzdGVtVi8iKSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBpZiAodGltZVpvbmVOYW1lLnN0YXJ0c1dpdGgoIkV0Yy8iKSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAvLyBJQU5BIHRpbWUgem9uZSBuYW1lcyBp
bmNsdWRlICcvJy4gU29tZSBvZiB0aGVtIGFyZSBub3QgaW5jbHVkaW5nLCBidXQgaXQgaXMgaW4g
YmFja3dhcmQgbGlua3MuCisgICAgLy8gQW5kIElDVSBhbHJlYWR5IHJlc29sdmVkIHRoZXNlIGJh
Y2t3YXJkIGxpbmtzLgorICAgIGlmICghdGltZVpvbmVOYW1lLmNvbnRhaW5zKCcvJykpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gdGltZVpvbmVOYW1lOworfQor
CisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWls
YWJsZXRpbWV6b25lcworc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZVRpbWVab25lcyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJy
b3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3Rk
Ojp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVjYWxf
b3BlblRpbWVab25lSURFbnVtZXJhdGlvbihVQ0FMX1pPTkVfVFlQRV9DQU5PTklDQUwsIG51bGxw
dHIsIG51bGxwdHIsICZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVt
ZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorCisgICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAm
c3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxl
IHRpbWV6b25lcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgVmVjdG9y
PFN0cmluZywgMT4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytp
bmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIq
IHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVz
KTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFi
bGUgdGltZXpvbmVzIl9zKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAg
ICAgICAgU3RyaW5nIHRpbWVab25lKHBvaW50ZXIsIGxlbmd0aCk7CisgICAgICAgIGlmIChhdXRv
IG1hcHBlZCA9IGNhbm9uaWNhbGl6ZVRpbWVab25lTmFtZUZyb21JQ1VUaW1lWm9uZSh0aW1lWm9u
ZSkpCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkp
OworICAgIH0KKworICAgIC8vIDQuIFNvcnQgcmVzdWx0IGluIG9yZGVyIGFzIGlmIGFuIEFycmF5
IG9mIHRoZSBzYW1lIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlw
ZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZuLgorICAgIHN0ZDo6c29ydChlbGVt
ZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwKKyAgICAgICAgW10oY29uc3QgU3RyaW5nJiBh
LCBjb25zdCBTdHJpbmcmIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQb2ludENv
bXBhcmUoYSwgYikgPCAwOworICAgICAgICB9KTsKKworICAgIHJldHVybiBjcmVhdGVBcnJheUZy
b21TdHJpbmdWZWN0b3IoZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVsZW1lbnRzKSk7Cit9CisKKy8v
IGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxl
dW5pdHMKK3N0YXRpYyBKU0FycmF5KiBhdmFpbGFibGVVbml0cyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU0FycmF5KiByZXN1bHQg
PSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJ
bmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aFVuZGVjaWRlZCksIHN0ZDo6c2l6
ZShzaW1wbGVVbml0cykpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIHRocm93T3V0T2ZN
ZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICB9CisKKyAgICBBU1NFUlQoCisgICAgICAgIHN0ZDo6aXNfc29ydGVkKHN0ZDo6YmVnaW4oc2lt
cGxlVW5pdHMpLCBzdGQ6OmVuZChzaW1wbGVVbml0cyksCisgICAgICAgICAgICBbXShjb25zdCBN
ZWFzdXJlVW5pdCYgYSwgY29uc3QgTWVhc3VyZVVuaXQmIGIpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21wYXJlKFN0cmluZ1ZpZXcoYS5zdWJUeXBlKSwgU3RyaW5n
VmlldyhiLnN1YlR5cGUpKSA8IDA7CisgICAgICAgICAgICB9KSk7CisKKyAgICBpbnQzMl90IGlu
ZGV4ID0gMDsKKyAgICBmb3IgKGNvbnN0IE1lYXN1cmVVbml0JiB1bml0IDogc2ltcGxlVW5pdHMp
IHsKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGluZGV4Kyss
IGpzU3RyaW5nKHZtLCBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCh1bml0LnN1YlR5cGUp
KSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQorICAg
IHJldHVybiByZXN1bHQ7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVu
dW1lcmF0aW9uLyNzZWMtaW50bC5zdXBwb3J0ZWR2YWx1ZXNvZgorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGludGxPYmplY3RGdW5jU3VwcG9ydGVkVmFsdWVzT2YsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKworICAgIFN0cmluZyBrZXkgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvV1RGU3RyaW5n
KGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKwor
ICAgIGlmIChrZXkgPT0gImNhbGVuZGFyIl9zKQorICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVDYWxlbmRhcnMoZ2xvYmFsT2JqZWN0KSkp
OworCisgICAgaWYgKGtleSA9PSAiY29sbGF0aW9uIl9zKQorICAgICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVDb2xsYXRpb25zKGdsb2JhbE9i
amVjdCkpKTsKKworICAgIGlmIChrZXkgPT0gImN1cnJlbmN5Il9zKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVDdXJyZW5jaWVzKGds
b2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkgPT0gIm51bWJlcmluZ1N5c3RlbSJfcykKKyAg
ICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoYXZhaWxhYmxl
TnVtYmVyaW5nU3lzdGVtcyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBpZiAoa2V5ID09ICJ0aW1l
Wm9uZSJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoYXZhaWxhYmxlVGltZVpvbmVzKGdsb2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkgPT0g
InVuaXQiX3MpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKGF2YWlsYWJsZVVuaXRzKGdsb2JhbE9iamVjdCkpKTsKKworICAgIHRocm93UmFuZ2VFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVW5rbm93biBrZXkgZm9yIEludGwuc3VwcG9ydGVkVmFs
dWVzT2YiX3MpOworICAgIHJldHVybiB7IH07Cit9CisKK0pTQXJyYXkqIGNyZWF0ZUFycmF5RnJv
bVN0cmluZ1ZlY3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWZWN0b3I8U3RyaW5n
LCAxPiYmIGVsZW1lbnRzKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU0FycmF5KiBy
ZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1
cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aENvbnRpZ3VvdXMpLCBl
bGVtZW50cy5zaXplKCkpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIHRocm93T3V0T2ZN
ZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQorICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnRzLnNp
emUoKTsgKytpbmRleCkgeworICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9i
amVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBXVEZNb3ZlKGVsZW1lbnRzW2luZGV4XSkpKTsKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsT2JqZWN0LmgKaW5kZXggY2MwMWY2Y2FkZDQxMDVmZTUzODhjYTc4NzllMDA0
MWE5NWYwNTFjYy4uZGM2OTZkNjVmYTVjNjM2MzIyYTZjNTE0ZjhiMDA3ODRkZWYyZmM2YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaApAQCAtNjAsNiArNjAs
MTMgQEAgSlNDX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMoSlNDX0RFQ0xBUkVfSU5UTF9S
RUxFVkFOVF9FWFRFTlNJT05fS0VZUykKIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBudW1iZXJP
ZlJlbGV2YW50RXh0ZW5zaW9uS2V5cyA9IDAgSlNDX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tF
WVMoSlNDX0NPVU5UX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMpOwogI3VuZGVmIEpTQ19D
T1VOVF9JTlRMX1JFTEVWQU5UX0VYVEVOU0lPTl9LRVlTCiAKK3N0cnVjdCBNZWFzdXJlVW5pdCB7
CisgICAgQVNDSUlMaXRlcmFsIHR5cGU7CisgICAgQVNDSUlMaXRlcmFsIHN1YlR5cGU7Cit9Owor
CitleHRlcm4gSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgTWVhc3VyZVVuaXQgc2ltcGxlVW5pdHNb
NDNdOworCiBjbGFzcyBJbnRsT2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwpAQCAtMTQxLDQg
KzE0OCw2IEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBtYXBJQ1VDb2xsYXRpb25LZXl3b3JkVG9C
Q1A0Nyhjb25zdCBTdHJpbmcmKTsKIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBtYXBJQ1VDYWxlbmRh
cktleXdvcmRUb0JDUDQ3KGNvbnN0IFN0cmluZyYpOwogc3RkOjpvcHRpb25hbDxTdHJpbmc+IG1h
cEJDUDQ3VG9JQ1VDYWxlbmRhcktleXdvcmQoY29uc3QgU3RyaW5nJik7CiAKK0pTQXJyYXkqIGNy
ZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihKU0dsb2JhbE9iamVjdCosIFZlY3RvcjxTdHJpbmcs
IDE+JiYpOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zTGlzdC5oCmluZGV4IGE2YWFiZmFhMGNjOGExZmFmMDMxYmY2MjVjNjQ4YzZi
MjZkNDU2MDguLjM3MDBhYTQwYjBkMzEyYThjYmQ4YWNlMWRmMTBkZDdiMTI4ZGFlYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtNTQ0LDYgKzU0
NCw3IEBAIGJvb2wgY2FuVXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7CiAgICAgdihCb29sLCB1
c2VXZWFrUmVmcywgdHJ1ZSwgTm9ybWFsLCAiRXhwb3NlIHRoZSBXZWFrUmVmIGNvbnN0cnVjdG9y
LiIpIFwKICAgICB2KEJvb2wsIHVzZUludGxEYXRlVGltZUZvcm1hdERheVBlcmlvZCwgdHJ1ZSwg
Tm9ybWFsLCAiRXhwb3NlIHRoZSBJbnRsLkRhdGVUaW1lRm9ybWF0IGRheVBlcmlvZCBmZWF0dXJl
LiIpIFwKICAgICB2KEJvb2wsIHVzZUludGxEYXRlVGltZUZvcm1hdFJhbmdlVG9QYXJ0cywgdHJ1
ZSwgTm9ybWFsLCAiRXhwb3NlIHRoZSBJbnRsLkRhdGVUaW1lRm9ybWF0I2Zvcm1hdFJhbmdlVG9Q
YXJ0cyBmZWF0dXJlLiIpIFwKKyAgICB2KEJvb2wsIHVzZUludGxFbnVtZXJhdGlvbiwgdHJ1ZSwg
Tm9ybWFsLCAiRXhwb3NlIHRoZSBJbnRsIGVudW1lcmF0aW9uIEFQSXMuIikgXAogICAgIHYoQm9v
bCwgdXNlQXRNZXRob2QsIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgYXQoKSBtZXRob2Qgb24g
QXJyYXksICVUeXBlZEFycmF5JSwgYW5kIFN0cmluZy4iKSBcCiAgICAgdihCb29sLCB1c2VFcnJv
ckNhdXNlLCB0cnVlLCBOb3JtYWwsICJBbGxvdyBhIGNhdXNlIHRvIGJlIHByb3ZpZGVkIHdoZW4g
Y29uc3RydWN0aW5nIGFuIEVycm9yLCBfTmF0aXZlRXJyb3JfLCBvciBBZ2dyZWdhdGVFcnJvci4i
KSBcCiAgICAgdihCb29sLCB1c2VTaGFyZWRBcnJheUJ1ZmZlciwgZmFsc2UsIE5vcm1hbCwgbnVs
bHB0cikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggN2QzZjM0NjMxYWM4ZTc5
NzVlOWY0NDg3MzU1M2NlZjFlZDc4ZDAzZi4uNzRmNTY5ODgyZTZkNDY5NDk4M2Y3MTkwYTE3NzAy
MTZkYTI2Y2M4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0xNjMsNiArMTYz
LDExIEBAIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChjb25z
dCBjaGFyKiBjaGFyYWN0ZXJzKQogICAgIHJldHVybiBjcmVhdGVGcm9tTGl0ZXJhbChjaGFyYWN0
ZXJzLCBzdHJsZW4oY2hhcmFjdGVycykpOwogfQogCitSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1w
bDo6Y3JlYXRlRnJvbUxpdGVyYWwoQVNDSUlMaXRlcmFsIGxpdGVyYWwpCit7CisgICAgcmV0dXJu
IGNyZWF0ZUZyb21MaXRlcmFsKGxpdGVyYWwuY2hhcmFjdGVycygpLCBsaXRlcmFsLmxlbmd0aCgp
KTsKK30KKwogUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5n
KGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKCFs
ZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDQyMDNjMWM4MjU0MWE5ZDg3ZDdi
NWIwZmJiNzQ4YjE2YWNhNTg4NWUuLmFkYTlkNDFiMDJhODk0NmRiNzMxZmFhZmI5ZGVjNjdhY2Fm
ZTVkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlM
aXRlcmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ29udmVyc2lvbk1vZGUuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb21t
b24uaD4KQEAgLTI0OSw2ICsyNTAsNyBAQCBjbGFzcyBTdHJpbmdJbXBsIDogcHJpdmF0ZSBTdHJp
bmdJbXBsU2hhcGUgewogICAgIC8vIEZJWE1FOiBSZXBsYWNlIGNhbGxzIHRvIHRoZXNlIG92ZXJs
b2FkcyBvZiBjcmVhdGVGcm9tTGl0ZXJhbCB0byBjcmVhdGVXaXRob3V0Q29weWluZyBpbnN0ZWFk
LgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZy
b21MaXRlcmFsKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNo
YXIqKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVh
dGVGcm9tTGl0ZXJhbChBU0NJSUxpdGVyYWwpOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlV2l0aG91dENvcHlpbmcoY29uc3QgVUNoYXIqLCB1
bnNpZ25lZCBsZW5ndGgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmlu
Z0ltcGw+IGNyZWF0ZVdpdGhvdXRDb3B5aW5nKGNvbnN0IExDaGFyKiwgdW5zaWduZWQgbGVuZ3Ro
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMGMzZTc3NDhjMjM1OTcwMWFjMTczY2NlYTFlODkyZWZmOTNkMjU1Yy4uZGEzOGE5M2MyMDkw
YzgzZTkwNzY0ZTA4NWM3ODI1YzhhZDBkYTlkMSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wOC0yMSAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBJ
bnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogc3RyZXNzL2ludGwtZW51bWVyYXRpb24uanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorCiAyMDIxLTA4LTIxICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gSW50bC5EaXNw
bGF5TmFtZXMgdjIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51bWVyYXRpb24u
anMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWVudW1lcmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNmI3
YjBjZDMzNmY4NWYxYzRmNDYxZjg2ODQ0MjMwZWJiODk3ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3N0cmVzcy9pbnRsLWVudW1lcmF0aW9uLmpzCkBAIC0wLDAgKzEsMzggQEAKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke2V4cGVjdGVkfSBidXQg
Z290ICR7YWN0dWFsfWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5
cGUpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9y
IGluc3RhbmNlb2YgZXJyb3JUeXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3Rl
ZCAke2Vycm9yVHlwZS5uYW1lfSFgKTsKK30KKworbGV0IGNhbGVuZGFycyA9IEludGwuc3VwcG9y
dGVkVmFsdWVzT2YoImNhbGVuZGFyIik7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeShjYWxlbmRh
cnMpLCBgWyJidWRkaGlzdCIsImNoaW5lc2UiLCJjb3B0aWMiLCJkYW5naSIsImV0aGlvYWEiLCJl
dGhpb3BpYyIsImdyZWdvcnkiLCJoZWJyZXciLCJpbmRpYW4iLCJpc2xhbWljIiwiaXNsYW1pYy1j
aXZpbCIsImlzbGFtaWMtcmdzYSIsImlzbGFtaWMtdGJsYSIsImlzbGFtaWMtdW1hbHF1cmEiLCJp
c284NjAxIiwiamFwYW5lc2UiLCJwZXJzaWFuIiwicm9jIl1gKTsKKworbGV0IGNvbGxhdGlvbnMg
PSBJbnRsLnN1cHBvcnRlZFZhbHVlc09mKCJjb2xsYXRpb24iKTsKK3Nob3VsZEJlKEpTT04uc3Ry
aW5naWZ5KGNvbGxhdGlvbnMpLCBgWyJiaWc1aGFuIiwiY29tcGF0IiwiZGljdCIsImdiMjMxMiIs
InBob25lYmsiLCJwaG9uZXRpYyIsInBpbnlpbiIsInJlZm9ybWVkIiwic2VhcmNoamwiLCJzdHJv
a2UiLCJ0cmFkIiwidW5paGFuIiwiemh1eWluIl1gKTsKKworbGV0IGN1cnJlbmNpZXMgPSBJbnRs
LnN1cHBvcnRlZFZhbHVlc09mKCJjdXJyZW5jeSIpOworc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnko
Y3VycmVuY2llcyksIGBbIkFFRCIsIkFGTiIsIkFMTCIsIkFNRCIsIkFORyIsIkFPQSIsIkFSUyIs
IkFVRCIsIkFXRyIsIkFaTiIsIkJBTSIsIkJCRCIsIkJEVCIsIkJHTiIsIkJIRCIsIkJJRiIsIkJN
RCIsIkJORCIsIkJPQiIsIkJSTCIsIkJTRCIsIkJUTiIsIkJXUCIsIkJZTiIsIkJaRCIsIkNBRCIs
IkNERiIsIkNIRiIsIkNMUCIsIkNOWSIsIkNPUCIsIkNSQyIsIkNVQyIsIkNVUCIsIkNWRSIsIkNa
SyIsIkRKRiIsIkRLSyIsIkRPUCIsIkRaRCIsIkVHUCIsIkVSTiIsIkVUQiIsIkVVUiIsIkZKRCIs
IkZLUCIsIkdCUCIsIkdFTCIsIkdIUyIsIkdJUCIsIkdNRCIsIkdORiIsIkdUUSIsIkdZRCIsIkhL
RCIsIkhOTCIsIkhSSyIsIkhURyIsIkhVRiIsIklEUiIsIklMUyIsIklOUiIsIklRRCIsIklSUiIs
IklTSyIsIkpNRCIsIkpPRCIsIkpQWSIsIktFUyIsIktHUyIsIktIUiIsIktNRiIsIktQVyIsIktS
VyIsIktXRCIsIktZRCIsIktaVCIsIkxBSyIsIkxCUCIsIkxLUiIsIkxSRCIsIkxTTCIsIkxZRCIs
Ik1BRCIsIk1ETCIsIk1HQSIsIk1LRCIsIk1NSyIsIk1OVCIsIk1PUCIsIk1SVSIsIk1VUiIsIk1W
UiIsIk1XSyIsIk1YTiIsIk1ZUiIsIk1aTiIsIk5BRCIsIk5HTiIsIk5JTyIsIk5PSyIsIk5QUiIs
Ik5aRCIsIk9NUiIsIlBBQiIsIlBFTiIsIlBHSyIsIlBIUCIsIlBLUiIsIlBMTiIsIlBZRyIsIlFB
UiIsIlJPTiIsIlJTRCIsIlJVQiIsIlJXRiIsIlNBUiIsIlNCRCIsIlNDUiIsIlNERyIsIlNFSyIs
IlNHRCIsIlNIUCIsIlNMTCIsIlNPUyIsIlNSRCIsIlNTUCIsIlNUTiIsIlNZUCIsIlNaTCIsIlRI
QiIsIlRKUyIsIlRNVCIsIlRORCIsIlRPUCIsIlRSWSIsIlRURCIsIlRXRCIsIlRaUyIsIlVBSCIs
IlVHWCIsIlVTRCIsIlVZVSIsIlVaUyIsIlZFRiIsIlZORCIsIlZVViIsIldTVCIsIlhBRiIsIlhD
RCIsIlhPRiIsIlhQRiIsIllFUiIsIlpBUiIsIlpNVyJdYCk7CisKK2xldCBudW1iZXJpbmdTeXN0
ZW1zID0gSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZigibnVtYmVyaW5nU3lzdGVtIik7CitzaG91bGRC
ZShKU09OLnN0cmluZ2lmeShudW1iZXJpbmdTeXN0ZW1zKSwgYFsiYWRsbSIsImFob20iLCJhcmFi
IiwiYXJhYmV4dCIsImFybW4iLCJhcm1ubG93IiwiYmFsaSIsImJlbmciLCJiaGtzIiwiYnJhaCIs
ImNha20iLCJjaGFtIiwiY3lybCIsImRldmEiLCJkaWFrIiwiZXRoaSIsImZ1bGx3aWRlIiwiZ2Vv
ciIsImdvbmciLCJnb25tIiwiZ3JlayIsImdyZWtsb3ciLCJndWpyIiwiZ3VydSIsImhhbmlkYXlz
IiwiaGFuaWRlYyIsImhhbnMiLCJoYW5zZmluIiwiaGFudCIsImhhbnRmaW4iLCJoZWJyIiwiaG1u
ZyIsImhtbnAiLCJqYXZhIiwianBhbiIsImpwYW5maW4iLCJqcGFueWVhciIsImthbGkiLCJraG1y
Iiwia25kYSIsImxhbmEiLCJsYW5hdGhhbSIsImxhb28iLCJsYXRuIiwibGVwYyIsImxpbWIiLCJt
YXRoYm9sZCIsIm1hdGhkYmwiLCJtYXRobW9ubyIsIm1hdGhzYW5iIiwibWF0aHNhbnMiLCJtbHlt
IiwibW9kaSIsIm1vbmciLCJtcm9vIiwibXRlaSIsIm15bXIiLCJteW1yc2hhbiIsIm15bXJ0bG5n
IiwibmV3YSIsIm5rb28iLCJvbGNrIiwib3J5YSIsIm9zbWEiLCJyb2hnIiwicm9tYW4iLCJyb21h
bmxvdyIsInNhdXIiLCJzZWdtZW50Iiwic2hyZCIsInNpbmQiLCJzaW5oIiwic29yYSIsInN1bmQi
LCJ0YWtyIiwidGFsdSIsInRhbWwiLCJ0YW1sZGVjIiwidGVsdSIsInRoYWkiLCJ0aWJ0IiwidGly
aCIsInZhaWkiLCJ3YXJhIiwid2NobyJdYCk7CisKK2xldCB0aW1lWm9uZXMgPSBJbnRsLnN1cHBv
cnRlZFZhbHVlc09mKCJ0aW1lWm9uZSIpOworc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkodGltZVpv
bmVzKSwgYFsiQWZyaWNhL0FiaWRqYW4iLCJBZnJpY2EvQWNjcmEiLCJBZnJpY2EvQWRkaXNfQWJh
YmEiLCJBZnJpY2EvQWxnaWVycyIsIkFmcmljYS9Bc21lcmEiLCJBZnJpY2EvQmFtYWtvIiwiQWZy
aWNhL0Jhbmd1aSIsIkFmcmljYS9CYW5qdWwiLCJBZnJpY2EvQmlzc2F1IiwiQWZyaWNhL0JsYW50
eXJlIiwiQWZyaWNhL0JyYXp6YXZpbGxlIiwiQWZyaWNhL0J1anVtYnVyYSIsIkFmcmljYS9DYWly
byIsIkFmcmljYS9DYXNhYmxhbmNhIiwiQWZyaWNhL0NldXRhIiwiQWZyaWNhL0NvbmFrcnkiLCJB
ZnJpY2EvRGFrYXIiLCJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsIkFmcmljYS9Eamlib3V0aSIsIkFm
cmljYS9Eb3VhbGEiLCJBZnJpY2EvRWxfQWFpdW4iLCJBZnJpY2EvRnJlZXRvd24iLCJBZnJpY2Ev
R2Fib3JvbmUiLCJBZnJpY2EvSGFyYXJlIiwiQWZyaWNhL0pvaGFubmVzYnVyZyIsIkFmcmljYS9K
dWJhIiwiQWZyaWNhL0thbXBhbGEiLCJBZnJpY2EvS2hhcnRvdW0iLCJBZnJpY2EvS2lnYWxpIiwi
QWZyaWNhL0tpbnNoYXNhIiwiQWZyaWNhL0xhZ29zIiwiQWZyaWNhL0xpYnJldmlsbGUiLCJBZnJp
Y2EvTG9tZSIsIkFmcmljYS9MdWFuZGEiLCJBZnJpY2EvTHVidW1iYXNoaSIsIkFmcmljYS9MdXNh
a2EiLCJBZnJpY2EvTWFsYWJvIiwiQWZyaWNhL01hcHV0byIsIkFmcmljYS9NYXNlcnUiLCJBZnJp
Y2EvTWJhYmFuZSIsIkFmcmljYS9Nb2dhZGlzaHUiLCJBZnJpY2EvTW9ucm92aWEiLCJBZnJpY2Ev
TmFpcm9iaSIsIkFmcmljYS9OZGphbWVuYSIsIkFmcmljYS9OaWFtZXkiLCJBZnJpY2EvTm91YWtj
aG90dCIsIkFmcmljYS9PdWFnYWRvdWdvdSIsIkFmcmljYS9Qb3J0by1Ob3ZvIiwiQWZyaWNhL1Nh
b19Ub21lIiwiQWZyaWNhL1RyaXBvbGkiLCJBZnJpY2EvVHVuaXMiLCJBZnJpY2EvV2luZGhvZWsi
LCJBbWVyaWNhL0FkYWsiLCJBbWVyaWNhL0FuY2hvcmFnZSIsIkFtZXJpY2EvQW5ndWlsbGEiLCJB
bWVyaWNhL0FudGlndWEiLCJBbWVyaWNhL0FyYWd1YWluYSIsIkFtZXJpY2EvQXJnZW50aW5hL0xh
X1Jpb2phIiwiQW1lcmljYS9BcmdlbnRpbmEvUmlvX0dhbGxlZ29zIiwiQW1lcmljYS9BcmdlbnRp
bmEvU2FsdGEiLCJBbWVyaWNhL0FyZ2VudGluYS9TYW5fSnVhbiIsIkFtZXJpY2EvQXJnZW50aW5h
L1Nhbl9MdWlzIiwiQW1lcmljYS9BcmdlbnRpbmEvVHVjdW1hbiIsIkFtZXJpY2EvQXJnZW50aW5h
L1VzaHVhaWEiLCJBbWVyaWNhL0FydWJhIiwiQW1lcmljYS9Bc3VuY2lvbiIsIkFtZXJpY2EvQmFo
aWEiLCJBbWVyaWNhL0JhaGlhX0JhbmRlcmFzIiwiQW1lcmljYS9CYXJiYWRvcyIsIkFtZXJpY2Ev
QmVsZW0iLCJBbWVyaWNhL0JlbGl6ZSIsIkFtZXJpY2EvQmxhbmMtU2FibG9uIiwiQW1lcmljYS9C
b2FfVmlzdGEiLCJBbWVyaWNhL0JvZ290YSIsIkFtZXJpY2EvQm9pc2UiLCJBbWVyaWNhL0J1ZW5v
c19BaXJlcyIsIkFtZXJpY2EvQ2FtYnJpZGdlX0JheSIsIkFtZXJpY2EvQ2FtcG9fR3JhbmRlIiwi
QW1lcmljYS9DYW5jdW4iLCJBbWVyaWNhL0NhcmFjYXMiLCJBbWVyaWNhL0NhdGFtYXJjYSIsIkFt
ZXJpY2EvQ2F5ZW5uZSIsIkFtZXJpY2EvQ2F5bWFuIiwiQW1lcmljYS9DaGljYWdvIiwiQW1lcmlj
YS9DaGlodWFodWEiLCJBbWVyaWNhL0NvcmFsX0hhcmJvdXIiLCJBbWVyaWNhL0NvcmRvYmEiLCJB
bWVyaWNhL0Nvc3RhX1JpY2EiLCJBbWVyaWNhL0NyZXN0b24iLCJBbWVyaWNhL0N1aWFiYSIsIkFt
ZXJpY2EvQ3VyYWNhbyIsIkFtZXJpY2EvRGFubWFya3NoYXZuIiwiQW1lcmljYS9EYXdzb24iLCJB
bWVyaWNhL0Rhd3Nvbl9DcmVlayIsIkFtZXJpY2EvRGVudmVyIiwiQW1lcmljYS9EZXRyb2l0Iiwi
QW1lcmljYS9Eb21pbmljYSIsIkFtZXJpY2EvRWRtb250b24iLCJBbWVyaWNhL0VpcnVuZXBlIiwi
QW1lcmljYS9FbF9TYWx2YWRvciIsIkFtZXJpY2EvRm9ydF9OZWxzb24iLCJBbWVyaWNhL0ZvcnRh
bGV6YSIsIkFtZXJpY2EvR2xhY2VfQmF5IiwiQW1lcmljYS9Hb2R0aGFiIiwiQW1lcmljYS9Hb29z
ZV9CYXkiLCJBbWVyaWNhL0dyYW5kX1R1cmsiLCJBbWVyaWNhL0dyZW5hZGEiLCJBbWVyaWNhL0d1
YWRlbG91cGUiLCJBbWVyaWNhL0d1YXRlbWFsYSIsIkFtZXJpY2EvR3VheWFxdWlsIiwiQW1lcmlj
YS9HdXlhbmEiLCJBbWVyaWNhL0hhbGlmYXgiLCJBbWVyaWNhL0hhdmFuYSIsIkFtZXJpY2EvSGVy
bW9zaWxsbyIsIkFtZXJpY2EvSW5kaWFuYS9Lbm94IiwiQW1lcmljYS9JbmRpYW5hL01hcmVuZ28i
LCJBbWVyaWNhL0luZGlhbmEvUGV0ZXJzYnVyZyIsIkFtZXJpY2EvSW5kaWFuYS9UZWxsX0NpdHki
LCJBbWVyaWNhL0luZGlhbmEvVmV2YXkiLCJBbWVyaWNhL0luZGlhbmEvVmluY2VubmVzIiwiQW1l
cmljYS9JbmRpYW5hL1dpbmFtYWMiLCJBbWVyaWNhL0luZGlhbmFwb2xpcyIsIkFtZXJpY2EvSW51
dmlrIiwiQW1lcmljYS9JcWFsdWl0IiwiQW1lcmljYS9KYW1haWNhIiwiQW1lcmljYS9KdWp1eSIs
IkFtZXJpY2EvSnVuZWF1IiwiQW1lcmljYS9LZW50dWNreS9Nb250aWNlbGxvIiwiQW1lcmljYS9L
cmFsZW5kaWprIiwiQW1lcmljYS9MYV9QYXoiLCJBbWVyaWNhL0xpbWEiLCJBbWVyaWNhL0xvc19B
bmdlbGVzIiwiQW1lcmljYS9Mb3Vpc3ZpbGxlIiwiQW1lcmljYS9Mb3dlcl9QcmluY2VzIiwiQW1l
cmljYS9NYWNlaW8iLCJBbWVyaWNhL01hbmFndWEiLCJBbWVyaWNhL01hbmF1cyIsIkFtZXJpY2Ev
TWFyaWdvdCIsIkFtZXJpY2EvTWFydGluaXF1ZSIsIkFtZXJpY2EvTWF0YW1vcm9zIiwiQW1lcmlj
YS9NYXphdGxhbiIsIkFtZXJpY2EvTWVuZG96YSIsIkFtZXJpY2EvTWVub21pbmVlIiwiQW1lcmlj
YS9NZXJpZGEiLCJBbWVyaWNhL01ldGxha2F0bGEiLCJBbWVyaWNhL01leGljb19DaXR5IiwiQW1l
cmljYS9NaXF1ZWxvbiIsIkFtZXJpY2EvTW9uY3RvbiIsIkFtZXJpY2EvTW9udGVycmV5IiwiQW1l
cmljYS9Nb250ZXZpZGVvIiwiQW1lcmljYS9Nb250cmVhbCIsIkFtZXJpY2EvTW9udHNlcnJhdCIs
IkFtZXJpY2EvTmFzc2F1IiwiQW1lcmljYS9OZXdfWW9yayIsIkFtZXJpY2EvTmlwaWdvbiIsIkFt
ZXJpY2EvTm9tZSIsIkFtZXJpY2EvTm9yb25oYSIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0JldWxh
aCIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0NlbnRlciIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL05l
d19TYWxlbSIsIkFtZXJpY2EvT2ppbmFnYSIsIkFtZXJpY2EvUGFuYW1hIiwiQW1lcmljYS9QYW5n
bmlydHVuZyIsIkFtZXJpY2EvUGFyYW1hcmlibyIsIkFtZXJpY2EvUGhvZW5peCIsIkFtZXJpY2Ev
UG9ydC1hdS1QcmluY2UiLCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW4iLCJBbWVyaWNhL1BvcnRvX1Zl
bGhvIiwiQW1lcmljYS9QdWVydG9fUmljbyIsIkFtZXJpY2EvUHVudGFfQXJlbmFzIiwiQW1lcmlj
YS9SYWlueV9SaXZlciIsIkFtZXJpY2EvUmFua2luX0lubGV0IiwiQW1lcmljYS9SZWNpZmUiLCJB
bWVyaWNhL1JlZ2luYSIsIkFtZXJpY2EvUmVzb2x1dGUiLCJBbWVyaWNhL1Jpb19CcmFuY28iLCJB
bWVyaWNhL1NhbnRhX0lzYWJlbCIsIkFtZXJpY2EvU2FudGFyZW0iLCJBbWVyaWNhL1NhbnRpYWdv
IiwiQW1lcmljYS9TYW50b19Eb21pbmdvIiwiQW1lcmljYS9TYW9fUGF1bG8iLCJBbWVyaWNhL1Nj
b3Jlc2J5c3VuZCIsIkFtZXJpY2EvU2l0a2EiLCJBbWVyaWNhL1N0X0JhcnRoZWxlbXkiLCJBbWVy
aWNhL1N0X0pvaG5zIiwiQW1lcmljYS9TdF9LaXR0cyIsIkFtZXJpY2EvU3RfTHVjaWEiLCJBbWVy
aWNhL1N0X1Rob21hcyIsIkFtZXJpY2EvU3RfVmluY2VudCIsIkFtZXJpY2EvU3dpZnRfQ3VycmVu
dCIsIkFtZXJpY2EvVGVndWNpZ2FscGEiLCJBbWVyaWNhL1RodWxlIiwiQW1lcmljYS9UaHVuZGVy
X0JheSIsIkFtZXJpY2EvVGlqdWFuYSIsIkFtZXJpY2EvVG9yb250byIsIkFtZXJpY2EvVG9ydG9s
YSIsIkFtZXJpY2EvVmFuY291dmVyIiwiQW1lcmljYS9XaGl0ZWhvcnNlIiwiQW1lcmljYS9XaW5u
aXBlZyIsIkFtZXJpY2EvWWFrdXRhdCIsIkFtZXJpY2EvWWVsbG93a25pZmUiLCJBbnRhcmN0aWNh
L0Nhc2V5IiwiQW50YXJjdGljYS9EYXZpcyIsIkFudGFyY3RpY2EvRHVtb250RFVydmlsbGUiLCJB
bnRhcmN0aWNhL01hY3F1YXJpZSIsIkFudGFyY3RpY2EvTWF3c29uIiwiQW50YXJjdGljYS9NY011
cmRvIiwiQW50YXJjdGljYS9QYWxtZXIiLCJBbnRhcmN0aWNhL1JvdGhlcmEiLCJBbnRhcmN0aWNh
L1N5b3dhIiwiQW50YXJjdGljYS9Ucm9sbCIsIkFudGFyY3RpY2EvVm9zdG9rIiwiQXJjdGljL0xv
bmd5ZWFyYnllbiIsIkFzaWEvQWRlbiIsIkFzaWEvQWxtYXR5IiwiQXNpYS9BbW1hbiIsIkFzaWEv
QW5hZHlyIiwiQXNpYS9BcXRhdSIsIkFzaWEvQXF0b2JlIiwiQXNpYS9Bc2hnYWJhdCIsIkFzaWEv
QXR5cmF1IiwiQXNpYS9CYWdoZGFkIiwiQXNpYS9CYWhyYWluIiwiQXNpYS9CYWt1IiwiQXNpYS9C
YW5na29rIiwiQXNpYS9CYXJuYXVsIiwiQXNpYS9CZWlydXQiLCJBc2lhL0Jpc2hrZWsiLCJBc2lh
L0JydW5laSIsIkFzaWEvQ2FsY3V0dGEiLCJBc2lhL0NoaXRhIiwiQXNpYS9DaG9pYmFsc2FuIiwi
QXNpYS9Db2xvbWJvIiwiQXNpYS9EYW1hc2N1cyIsIkFzaWEvRGhha2EiLCJBc2lhL0RpbGkiLCJB
c2lhL0R1YmFpIiwiQXNpYS9EdXNoYW5iZSIsIkFzaWEvRmFtYWd1c3RhIiwiQXNpYS9HYXphIiwi
QXNpYS9IZWJyb24iLCJBc2lhL0hvbmdfS29uZyIsIkFzaWEvSG92ZCIsIkFzaWEvSXJrdXRzayIs
IkFzaWEvSmFrYXJ0YSIsIkFzaWEvSmF5YXB1cmEiLCJBc2lhL0plcnVzYWxlbSIsIkFzaWEvS2Fi
dWwiLCJBc2lhL0thbWNoYXRrYSIsIkFzaWEvS2FyYWNoaSIsIkFzaWEvS2F0bWFuZHUiLCJBc2lh
L0toYW5keWdhIiwiQXNpYS9LcmFzbm95YXJzayIsIkFzaWEvS3VhbGFfTHVtcHVyIiwiQXNpYS9L
dWNoaW5nIiwiQXNpYS9LdXdhaXQiLCJBc2lhL01hY2F1IiwiQXNpYS9NYWdhZGFuIiwiQXNpYS9N
YWthc3NhciIsIkFzaWEvTWFuaWxhIiwiQXNpYS9NdXNjYXQiLCJBc2lhL05pY29zaWEiLCJBc2lh
L05vdm9rdXpuZXRzayIsIkFzaWEvTm92b3NpYmlyc2siLCJBc2lhL09tc2siLCJBc2lhL09yYWwi
LCJBc2lhL1Bobm9tX1BlbmgiLCJBc2lhL1BvbnRpYW5hayIsIkFzaWEvUHlvbmd5YW5nIiwiQXNp
YS9RYXRhciIsIkFzaWEvUW9zdGFuYXkiLCJBc2lhL1F5enlsb3JkYSIsIkFzaWEvUmFuZ29vbiIs
IkFzaWEvUml5YWRoIiwiQXNpYS9TYWlnb24iLCJBc2lhL1Nha2hhbGluIiwiQXNpYS9TYW1hcmth
bmQiLCJBc2lhL1Nlb3VsIiwiQXNpYS9TaGFuZ2hhaSIsIkFzaWEvU2luZ2Fwb3JlIiwiQXNpYS9T
cmVkbmVrb2x5bXNrIiwiQXNpYS9UYWlwZWkiLCJBc2lhL1Rhc2hrZW50IiwiQXNpYS9UYmlsaXNp
IiwiQXNpYS9UZWhyYW4iLCJBc2lhL1RoaW1waHUiLCJBc2lhL1Rva3lvIiwiQXNpYS9Ub21zayIs
IkFzaWEvVWxhYW5iYWF0YXIiLCJBc2lhL1VydW1xaSIsIkFzaWEvVXN0LU5lcmEiLCJBc2lhL1Zp
ZW50aWFuZSIsIkFzaWEvVmxhZGl2b3N0b2siLCJBc2lhL1lha3V0c2siLCJBc2lhL1lla2F0ZXJp
bmJ1cmciLCJBc2lhL1llcmV2YW4iLCJBdGxhbnRpYy9Bem9yZXMiLCJBdGxhbnRpYy9CZXJtdWRh
IiwiQXRsYW50aWMvQ2FuYXJ5IiwiQXRsYW50aWMvQ2FwZV9WZXJkZSIsIkF0bGFudGljL0ZhZXJv
ZSIsIkF0bGFudGljL01hZGVpcmEiLCJBdGxhbnRpYy9SZXlramF2aWsiLCJBdGxhbnRpYy9Tb3V0
aF9HZW9yZ2lhIiwiQXRsYW50aWMvU3RfSGVsZW5hIiwiQXRsYW50aWMvU3RhbmxleSIsIkF1c3Ry
YWxpYS9BZGVsYWlkZSIsIkF1c3RyYWxpYS9CcmlzYmFuZSIsIkF1c3RyYWxpYS9Ccm9rZW5fSGls
bCIsIkF1c3RyYWxpYS9DdXJyaWUiLCJBdXN0cmFsaWEvRGFyd2luIiwiQXVzdHJhbGlhL0V1Y2xh
IiwiQXVzdHJhbGlhL0hvYmFydCIsIkF1c3RyYWxpYS9MaW5kZW1hbiIsIkF1c3RyYWxpYS9Mb3Jk
X0hvd2UiLCJBdXN0cmFsaWEvTWVsYm91cm5lIiwiQXVzdHJhbGlhL1BlcnRoIiwiQXVzdHJhbGlh
L1N5ZG5leSIsIkV1cm9wZS9BbXN0ZXJkYW0iLCJFdXJvcGUvQW5kb3JyYSIsIkV1cm9wZS9Bc3Ry
YWtoYW4iLCJFdXJvcGUvQXRoZW5zIiwiRXVyb3BlL0JlbGdyYWRlIiwiRXVyb3BlL0JlcmxpbiIs
IkV1cm9wZS9CcmF0aXNsYXZhIiwiRXVyb3BlL0JydXNzZWxzIiwiRXVyb3BlL0J1Y2hhcmVzdCIs
IkV1cm9wZS9CdWRhcGVzdCIsIkV1cm9wZS9CdXNpbmdlbiIsIkV1cm9wZS9DaGlzaW5hdSIsIkV1
cm9wZS9Db3BlbmhhZ2VuIiwiRXVyb3BlL0R1YmxpbiIsIkV1cm9wZS9HaWJyYWx0YXIiLCJFdXJv
cGUvR3Vlcm5zZXkiLCJFdXJvcGUvSGVsc2lua2kiLCJFdXJvcGUvSXNsZV9vZl9NYW4iLCJFdXJv
cGUvSXN0YW5idWwiLCJFdXJvcGUvSmVyc2V5IiwiRXVyb3BlL0thbGluaW5ncmFkIiwiRXVyb3Bl
L0tpZXYiLCJFdXJvcGUvS2lyb3YiLCJFdXJvcGUvTGlzYm9uIiwiRXVyb3BlL0xqdWJsamFuYSIs
IkV1cm9wZS9Mb25kb24iLCJFdXJvcGUvTHV4ZW1ib3VyZyIsIkV1cm9wZS9NYWRyaWQiLCJFdXJv
cGUvTWFsdGEiLCJFdXJvcGUvTWFyaWVoYW1uIiwiRXVyb3BlL01pbnNrIiwiRXVyb3BlL01vbmFj
byIsIkV1cm9wZS9Nb3Njb3ciLCJFdXJvcGUvT3NsbyIsIkV1cm9wZS9QYXJpcyIsIkV1cm9wZS9Q
b2Rnb3JpY2EiLCJFdXJvcGUvUHJhZ3VlIiwiRXVyb3BlL1JpZ2EiLCJFdXJvcGUvUm9tZSIsIkV1
cm9wZS9TYW1hcmEiLCJFdXJvcGUvU2FuX01hcmlubyIsIkV1cm9wZS9TYXJhamV2byIsIkV1cm9w
ZS9TYXJhdG92IiwiRXVyb3BlL1NpbWZlcm9wb2wiLCJFdXJvcGUvU2tvcGplIiwiRXVyb3BlL1Nv
ZmlhIiwiRXVyb3BlL1N0b2NraG9sbSIsIkV1cm9wZS9UYWxsaW5uIiwiRXVyb3BlL1RpcmFuZSIs
IkV1cm9wZS9VbHlhbm92c2siLCJFdXJvcGUvVXpoZ29yb2QiLCJFdXJvcGUvVmFkdXoiLCJFdXJv
cGUvVmF0aWNhbiIsIkV1cm9wZS9WaWVubmEiLCJFdXJvcGUvVmlsbml1cyIsIkV1cm9wZS9Wb2xn
b2dyYWQiLCJFdXJvcGUvV2Fyc2F3IiwiRXVyb3BlL1phZ3JlYiIsIkV1cm9wZS9aYXBvcm96aHll
IiwiRXVyb3BlL1p1cmljaCIsIkluZGlhbi9BbnRhbmFuYXJpdm8iLCJJbmRpYW4vQ2hhZ29zIiwi
SW5kaWFuL0NocmlzdG1hcyIsIkluZGlhbi9Db2NvcyIsIkluZGlhbi9Db21vcm8iLCJJbmRpYW4v
S2VyZ3VlbGVuIiwiSW5kaWFuL01haGUiLCJJbmRpYW4vTWFsZGl2ZXMiLCJJbmRpYW4vTWF1cml0
aXVzIiwiSW5kaWFuL01heW90dGUiLCJJbmRpYW4vUmV1bmlvbiIsIlBhY2lmaWMvQXBpYSIsIlBh
Y2lmaWMvQXVja2xhbmQiLCJQYWNpZmljL0JvdWdhaW52aWxsZSIsIlBhY2lmaWMvQ2hhdGhhbSIs
IlBhY2lmaWMvRWFzdGVyIiwiUGFjaWZpYy9FZmF0ZSIsIlBhY2lmaWMvRW5kZXJidXJ5IiwiUGFj
aWZpYy9GYWthb2ZvIiwiUGFjaWZpYy9GaWppIiwiUGFjaWZpYy9GdW5hZnV0aSIsIlBhY2lmaWMv
R2FsYXBhZ29zIiwiUGFjaWZpYy9HYW1iaWVyIiwiUGFjaWZpYy9HdWFkYWxjYW5hbCIsIlBhY2lm
aWMvR3VhbSIsIlBhY2lmaWMvSG9ub2x1bHUiLCJQYWNpZmljL0pvaG5zdG9uIiwiUGFjaWZpYy9L
aXJpdGltYXRpIiwiUGFjaWZpYy9Lb3NyYWUiLCJQYWNpZmljL0t3YWphbGVpbiIsIlBhY2lmaWMv
TWFqdXJvIiwiUGFjaWZpYy9NYXJxdWVzYXMiLCJQYWNpZmljL01pZHdheSIsIlBhY2lmaWMvTmF1
cnUiLCJQYWNpZmljL05pdWUiLCJQYWNpZmljL05vcmZvbGsiLCJQYWNpZmljL05vdW1lYSIsIlBh
Y2lmaWMvUGFnb19QYWdvIiwiUGFjaWZpYy9QYWxhdSIsIlBhY2lmaWMvUGl0Y2Fpcm4iLCJQYWNp
ZmljL1BvbmFwZSIsIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5IiwiUGFjaWZpYy9SYXJvdG9uZ2EiLCJQ
YWNpZmljL1NhaXBhbiIsIlBhY2lmaWMvVGFoaXRpIiwiUGFjaWZpYy9UYXJhd2EiLCJQYWNpZmlj
L1RvbmdhdGFwdSIsIlBhY2lmaWMvVHJ1ayIsIlBhY2lmaWMvV2FrZSIsIlBhY2lmaWMvV2FsbGlz
Il1gKTsKKworbGV0IHVuaXRzID0gSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZigidW5pdCIpOworc2hv
dWxkQmUoSlNPTi5zdHJpbmdpZnkodW5pdHMpLCBgWyJhY3JlIiwiYml0IiwiYnl0ZSIsImNlbHNp
dXMiLCJjZW50aW1ldGVyIiwiZGF5IiwiZGVncmVlIiwiZmFocmVuaGVpdCIsImZsdWlkLW91bmNl
IiwiZm9vdCIsImdhbGxvbiIsImdpZ2FiaXQiLCJnaWdhYnl0ZSIsImdyYW0iLCJoZWN0YXJlIiwi
aG91ciIsImluY2giLCJraWxvYml0Iiwia2lsb2J5dGUiLCJraWxvZ3JhbSIsImtpbG9tZXRlciIs
ImxpdGVyIiwibWVnYWJpdCIsIm1lZ2FieXRlIiwibWV0ZXIiLCJtaWxlIiwibWlsZS1zY2FuZGlu
YXZpYW4iLCJtaWxsaWxpdGVyIiwibWlsbGltZXRlciIsIm1pbGxpc2Vjb25kIiwibWludXRlIiwi
bW9udGgiLCJvdW5jZSIsInBlcmNlbnQiLCJwZXRhYnl0ZSIsInBvdW5kIiwic2Vjb25kIiwic3Rv
bmUiLCJ0ZXJhYml0IiwidGVyYWJ5dGUiLCJ3ZWVrIiwieWFyZCIsInllYXIiXWApOworCitzaG91
bGRUaHJvdygoKSA9PiB7CisgICAgSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZigiaW52YWxpZCIpOwor
fSwgUmFuZ2VFcnJvcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436140</attachid>
            <date>2021-08-22 16:45:47 -0700</date>
            <delta_ts>2021-08-22 20:04:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214795-20210822164546.patch</filename>
            <type>text/plain</type>
            <size>42951</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZWQ4ZGU2MWMyYjdmMDBhNmVhZjA3YmMxODEzZmZhYjMzNjYxMzA0Li4yNDg0NmFmZDg0MzE3Mzg2
MWU1MjliNWIyZjVmZGVkZThlZjY1OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyBJbnRsIGVudW1lcmF0aW9uIEFQSVsxXSB3aGljaCBpcyBpbiBzdGFnZS0zLgorICAgICAgICBT
dXBwb3J0ZWQga2V5cyBhcmUsICJjYWxlbmRhciIsICJjb2xsYXRpb24iLCAiY3VycmVuY3kiLCAi
bnVtYmVyaW5nU3lzdGVtIiwgInRpbWVab25lIiwgYW5kICJ1bml0Ii4KKworICAgICAgICBbMV06
IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24KKworICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50
bERhdGVUaW1lRm9ybWF0Ojpsb2NhbGVEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0ludGxMb2Nh
bGUuY3BwOgorICAgICAgICAoSlNDOjpjcmVhdGVBcnJheUZyb21TdHJpbmdWZWN0b3IpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHA6CisgICAgICAgIChK
U0M6OnNhbmN0aW9uZWRTaW1wbGVVbml0SWRlbnRpZmllcik6CisgICAgICAgICogcnVudGltZS9J
bnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAoSlNDOjptYXBJQ1VDYWxlbmRhcktleXdvcmRUb0JDUDQ3KToKKyAgICAgICAg
KEpTQzo6YXZhaWxhYmxlQ2FsZW5kYXJzKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlQ29sbGF0
aW9ucyk6CisgICAgICAgIChKU0M6OmF2YWlsYWJsZUN1cnJlbmNpZXMpOgorICAgICAgICAoSlND
OjphdmFpbGFibGVOdW1iZXJpbmdTeXN0ZW1zKToKKyAgICAgICAgKEpTQzo6Y2Fub25pY2FsaXpl
VGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25lKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlVGlt
ZVpvbmVzKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlVW5pdHMpOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjcmVhdGVBcnJheUZyb21T
dHJpbmdWZWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5oOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wOC0yMiAgQ29tbWl0IFF1ZXVlICA8Y29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIy
ODA5ODQgYW5kIHIyODA5OTYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3ZGY1NWNmNDVi
OTNiYzEzYWUuLmI4ODM4ZTE1ZWYzMDBiOWRkZTUxMGZjNzFmMzIxNmFhYjNmMjVhMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgSW50bCBFbnVtZXJhdGlvbiBBUElzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3OTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCk6
CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorCiAyMDIxLTA4LTIxICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgb3ZlcndyaXRlQ29k
ZVBvaW50KCkgaW4gY3JlYXRlQW5kRmlsbEdseXBoUGFnZSgpIGlzIHdyb25nCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAppbmRl
eCA0NDUxNzMxZmNkMDMyMWUwZjE5Yjk1NmIyMDI3M2ExMjkyYWZkOWY2Li44NDYyZmY0NGVjNTI5
ODBkYzU3MWU1NDYzNDI5ZjAwNDRjYmQwZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTE2NSw2ICsxNjUsOSBA
QCBWZWN0b3I8U3RyaW5nPiBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmxvY2FsZURhdGEoY29uc3QgU3Ry
aW5nJiBsb2NhbGUsIFJlbGV2YW50RXh0ZQogICAgICAgICAgICAgQVNTRVJUKFVfU1VDQ0VTUyhz
dGF0dXMpKTsKICAgICAgICAgICAgIFN0cmluZyBjYWxlbmRhciA9IFN0cmluZyhhdmFpbGFibGVO
YW1lLCBuYW1lTGVuZ3RoKTsKICAgICAgICAgICAgIGtleUxvY2FsZURhdGEuYXBwZW5kKGNhbGVu
ZGFyKTsKKyAgICAgICAgICAgIC8vIEFkZGluZyAiaXNsYW1pY2MiIGNhbmRpZGF0ZSBmb3IgYmFj
a3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgICAgIGlmIChjYWxlbmRhciA9PSAiaXNsYW1p
Yy1jaXZpbCJfcykKKyAgICAgICAgICAgICAgICBrZXlMb2NhbGVEYXRhLmFwcGVuZCgiaXNsYW1p
Y2MiX3MpOwogICAgICAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gbWFwSUNVQ2FsZW5kYXJLZXl3
b3JkVG9CQ1A0NyhjYWxlbmRhcikpCiAgICAgICAgICAgICAgICAga2V5TG9jYWxlRGF0YS5hcHBl
bmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkpOwogICAgICAgICB9CkBAIC01NzksMTMgKzU4Miw3
IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fY2FsZW5kYXIgPSByZXNvbHZlZC5leHRlbnNpb25zW3N0YXRpY19jYXN0PHVuc2lnbmVkPihS
ZWxldmFudEV4dGVuc2lvbktleTo6Q2EpXTsKLSAgICBpZiAobV9jYWxlbmRhciA9PSAiZ3JlZ29y
aWFuIikKLSAgICAgICAgbV9jYWxlbmRhciA9ICJncmVnb3J5Il9zOwotICAgIGVsc2UgaWYgKG1f
Y2FsZW5kYXIgPT0gImlzbGFtaWNjIikKLSAgICAgICAgbV9jYWxlbmRhciA9ICJpc2xhbWljLWNp
dmlsIl9zOwotICAgIGVsc2UgaWYgKG1fY2FsZW5kYXIgPT0gImV0aGlvYWEiKQotICAgICAgICBt
X2NhbGVuZGFyID0gImV0aGlvcGljLWFtZXRlLWFsZW0iX3M7CisgICAgbV9jYWxlbmRhciA9IG1h
cEJDUDQ3VG9JQ1VDYWxlbmRhcktleXdvcmQocmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUmVsZXZhbnRFeHRlbnNpb25LZXk6OkNhKV0pOwogCiAgICAgaG91ckN5Y2xl
ID0gcGFyc2VIb3VyQ3ljbGUocmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVsZXZhbnRFeHRlbnNpb25LZXk6OkhjKV0pOwogICAgIG1fbnVtYmVyaW5nU3lzdGVtID0g
cmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVsZXZhbnRFeHRlbnNp
b25LZXk6Ok51KV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsTG9jYWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUu
Y3BwCmluZGV4IDlhMDU5MDc4Mzg5ZmViYjg1YTJmMzNjNGFmNDdiNDI1YzNkYzQyMDQuLmMzYjI2
ZGQ4MmI1NDBhMWFmNDcwMjdmNDQ1OWQxNjA0NTJkMzNmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwCkBAIC01MzcsMjMgKzUzNyw2IEBAIFRyaVN0
YXRlIEludGxMb2NhbGU6Om51bWVyaWMoKQogICAgIHJldHVybiBtX251bWVyaWM7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNBcnJheSogY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFZlY3RvcjxTdHJpbmcsIDE+JiYgZWxlbWVudHMpCi17Ci0g
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRyeUNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmlu
Z0FsbG9jYXRpb24oQXJyYXlXaXRoQ29udGlndW91cyksIGVsZW1lbnRzLnNpemUoKSk7Ci0gICAg
aWYgKCFyZXN1bHQpIHsKLSAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgZm9yICh1bnNp
Z25lZCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudHMuc2l6ZSgpOyArK2luZGV4KSB7Ci0gICAg
ICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCwganNTdHJpbmco
dm0sIFdURk1vdmUoZWxlbWVudHNbaW5kZXhdKSkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBKU0FycmF5
KiBJbnRsTG9jYWxlOjpjYWxlbmRhcnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4IDNkOTlmYjkxYTlhY2Jh
YjY1YzA4MWYzMzFkMzE1ODcwM2ZiOWY3NDAuLmZjMzIzNzAzMjAyMmI0YzZkNjdkZDgxNTU5ZWMz
MzViNTZiZDBkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXQuY3BwCkBAIC0xNTEsNTkgKzE1MSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBj
b21wdXRlQ3VycmVuY3lEaWdpdHMoY29uc3QgU3RyaW5nJiBjdXJyZW5jeSkKICAgICByZXR1cm4g
MjsKIH0KIAotLy8gQ3JlYXRlIE1lYXN1cmVVbml0IGxpa2UgSUNVNEouCi1zdHJ1Y3QgTWVhc3Vy
ZVVuaXQgewotICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOwotICAgIEFTQ0lJTGl0ZXJhbCBzdWJUeXBl
OwotfTsKLQogc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVhc3VyZVVuaXQ+IHNhbmN0aW9uZWRTaW1w
bGVVbml0SWRlbnRpZmllcihTdHJpbmdWaWV3IHVuaXRJZGVudGlmaWVyKQogewotICAgIHN0YXRp
YyBjb25zdGV4cHIgTWVhc3VyZVVuaXQgc2ltcGxlVW5pdHNbXSA9IHsKLSAgICAgICAgeyAiYXJl
YSJfcywgImFjcmUiX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImJpdCJfcyB9LAotICAg
ICAgICB7ICJkaWdpdGFsIl9zLCAiYnl0ZSJfcyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJf
cywgImNlbHNpdXMiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAiY2VudGltZXRlciJfcyB9
LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgImRheSJfcyB9LAotICAgICAgICB7ICJhbmdsZSJf
cywgImRlZ3JlZSJfcyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImZhaHJlbmhlaXQi
X3MgfSwKLSAgICAgICAgeyAidm9sdW1lIl9zLCAiZmx1aWQtb3VuY2UiX3MgfSwKLSAgICAgICAg
eyAibGVuZ3RoIl9zLCAiZm9vdCJfcyB9LAotICAgICAgICB7ICJ2b2x1bWUiX3MsICJnYWxsb24i
X3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwKLSAgICAgICAgeyAi
ZGlnaXRhbCJfcywgImdpZ2FieXRlIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3MsICJncmFtIl9z
IH0sCi0gICAgICAgIHsgImFyZWEiX3MsICJoZWN0YXJlIl9zIH0sCi0gICAgICAgIHsgImR1cmF0
aW9uIl9zLCAiaG91ciJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJpbmNoIl9zIH0sCi0g
ICAgICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwi
X3MsICJraWxvYnl0ZSJfcyB9LAotICAgICAgICB7ICJtYXNzIl9zLCAia2lsb2dyYW0iX3MgfSwK
LSAgICAgICAgeyAibGVuZ3RoIl9zLCAia2lsb21ldGVyIl9zIH0sCi0gICAgICAgIHsgInZvbHVt
ZSJfcywgImxpdGVyIl9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYml0Il9zIH0s
Ci0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYnl0ZSJfcyB9LAotICAgICAgICB7ICJsZW5n
dGgiX3MsICJtZXRlciJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJtaWxlIl9zIH0sCi0g
ICAgICAgIHsgImxlbmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCi0gICAgICAgIHsg
InZvbHVtZSJfcywgIm1pbGxpbGl0ZXIiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAibWls
bGltZXRlciJfcyB9LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0s
Ci0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAibWludXRlIl9zIH0sCi0gICAgICAgIHsgImR1cmF0
aW9uIl9zLCAibW9udGgiX3MgfSwKLSAgICAgICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0sCi0g
ICAgICAgIHsgImNvbmNlbnRyIl9zLCAicGVyY2VudCJfcyB9LAotICAgICAgICB7ICJkaWdpdGFs
Il9zLCAicGV0YWJ5dGUiX3MgfSwKLSAgICAgICAgeyAibWFzcyJfcywgInBvdW5kIl9zIH0sCi0g
ICAgICAgIHsgImR1cmF0aW9uIl9zLCAic2Vjb25kIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3Ms
ICJzdG9uZSJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJpdCJfcyB9LAotICAg
ICAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJ5dGUiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24i
X3MsICJ3ZWVrIl9zIH0sCi0gICAgICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwKLSAgICAg
ICAgeyAiZHVyYXRpb24iX3MsICJ5ZWFyIl9zIH0sCi0gICAgfTsKICAgICBBU1NFUlQoCiAgICAg
ICAgIHN0ZDo6aXNfc29ydGVkKHN0ZDo6YmVnaW4oc2ltcGxlVW5pdHMpLCBzdGQ6OmVuZChzaW1w
bGVVbml0cyksCiAgICAgICAgICAgICBbXShjb25zdCBNZWFzdXJlVW5pdCYgYSwgY29uc3QgTWVh
c3VyZVVuaXQmIGIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVj
dC5jcHAKaW5kZXggMDNjOWQ3OTg2Zjk1YTA3MWI2OTUzODkzM2I4MWQ3NDYzNDExM2M4Ny4uZDVj
MjZhZmQ1YjQ5YmI0YjZmYjUwMGM3YzA3YWQ4NmJkN2M1ZjkwYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHVuaWNv
ZGUvdWJyay5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWNhbC5oPgogI2luY2x1ZGUgPHVuaWNvZGUv
dWNvbC5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWZpZWxkcG9zaXRlci5oPgogI2luY2x1ZGUgPHVu
aWNvZGUvdWxvYy5oPgpAQCAtNzUsNiArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIFNUQVRJQ19B
U1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRsT2JqZWN0KTsKIAogc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2NhbGVz
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jU3VwcG9y
dGVkVmFsdWVzT2YpOwogCiBzdGF0aWMgSlNWYWx1ZSBjcmVhdGVDb2xsYXRvckNvbnN0cnVjdG9y
KFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKIHsKQEAgLTE3Miw2ICsxNzQsNTIgQEAgdm9pZCBV
RmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlcjo6b3BlcmF0b3IoKShVRmllbGRQb3NpdGlvbkl0
ZXJhdG9yKiBpdGVyYXRvcikKICAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9zZShpdGVyYXRvcik7
CiB9CiAKK2NvbnN0IE1lYXN1cmVVbml0IHNpbXBsZVVuaXRzWzQzXSA9IHsKKyAgICB7ICJhcmVh
Il9zLCAiYWNyZSJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJiaXQiX3MgfSwKKyAgICB7ICJk
aWdpdGFsIl9zLCAiYnl0ZSJfcyB9LAorICAgIHsgInRlbXBlcmF0dXJlIl9zLCAiY2Vsc2l1cyJf
cyB9LAorICAgIHsgImxlbmd0aCJfcywgImNlbnRpbWV0ZXIiX3MgfSwKKyAgICB7ICJkdXJhdGlv
biJfcywgImRheSJfcyB9LAorICAgIHsgImFuZ2xlIl9zLCAiZGVncmVlIl9zIH0sCisgICAgeyAi
dGVtcGVyYXR1cmUiX3MsICJmYWhyZW5oZWl0Il9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAiZmx1
aWQtb3VuY2UiX3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJmb290Il9zIH0sCisgICAgeyAidm9s
dW1lIl9zLCAiZ2FsbG9uIl9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwK
KyAgICB7ICJkaWdpdGFsIl9zLCAiZ2lnYWJ5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAiZ3Jh
bSJfcyB9LAorICAgIHsgImFyZWEiX3MsICJoZWN0YXJlIl9zIH0sCisgICAgeyAiZHVyYXRpb24i
X3MsICJob3VyIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAiaW5jaCJfcyB9LAorICAgIHsgImRp
Z2l0YWwiX3MsICJraWxvYml0Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImtpbG9ieXRlIl9z
IH0sCisgICAgeyAibWFzcyJfcywgImtpbG9ncmFtIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAi
a2lsb21ldGVyIl9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAibGl0ZXIiX3MgfSwKKyAgICB7ICJk
aWdpdGFsIl9zLCAibWVnYWJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYnl0ZSJf
cyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1ldGVyIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAi
bWlsZSJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCisg
ICAgeyAidm9sdW1lIl9zLCAibWlsbGlsaXRlciJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1p
bGxpbWV0ZXIiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0sCisg
ICAgeyAiZHVyYXRpb24iX3MsICJtaW51dGUiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1v
bnRoIl9zIH0sCisgICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0sCisgICAgeyAiY29uY2VudHIi
X3MsICJwZXJjZW50Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgInBldGFieXRlIl9zIH0sCisg
ICAgeyAibWFzcyJfcywgInBvdW5kIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJzZWNvbmQi
X3MgfSwKKyAgICB7ICJtYXNzIl9zLCAic3RvbmUiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9zLCAi
dGVyYWJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJ0ZXJhYnl0ZSJfcyB9LAorICAgIHsg
ImR1cmF0aW9uIl9zLCAid2VlayJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwK
KyAgICB7ICJkdXJhdGlvbiJfcywgInllYXIiX3MgfSwKK307CisKIEludGxPYmplY3Q6OkludGxP
YmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSkKIHsKQEAgLTE4NCw3ICsyMzIsNyBAQCBJbnRsT2JqZWN0KiBJbnRsT2JqZWN0OjpjcmVh
dGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqCiAgICAg
cmV0dXJuIG9iamVjdDsKIH0KIAotdm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KikKK3ZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwpAQCAtMTk5LDYg
KzI0Nyw4IEBAIHZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCopCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSgmY3JlYXRlTGlzdEZvcm1hdENvbnN0
cnVjdG9yKTsKICNlbmRpZgorICAgIGlmIChPcHRpb25zOjp1c2VJbnRsRW51bWVyYXRpb24oKSkK
KyAgICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1cHBvcnRl
ZFZhbHVlc09mIiwgaW50bE9iamVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogfQogCiBTdHJ1Y3R1
cmUqIEludGxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTQ2OCw4ICsxNTE4LDggQEAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IG1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcoY29uc3QgU3Ry
aW5nJiBjYWxlbmRhcikKIHsKICAgICBpZiAoY2FsZW5kYXIgPT0gImdyZWdvcmlhbiJfcykKICAg
ICAgICAgcmV0dXJuICJncmVnb3J5Il9zOwotICAgIGlmIChjYWxlbmRhciA9PSAiaXNsYW1pYy1j
aXZpbCJfcykKLSAgICAgICAgcmV0dXJuICJpc2xhbWljYyJfczsKKyAgICAvLyBpc2xhbWljYyBp
cyBkZXByZWNhdGVkIGluIEJDUDQ3LCBhbmQgaXNsYW1pYy1jaXZpbCBpcyBwcmVmZXJyZWQuCisg
ICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3VuaWNvZGUtb3JnL2NsZHIvYmxvYi9tYXN0ZXIvY29t
bW9uL2JjcDQ3L2NhbGVuZGFyLnhtbAogICAgIGlmIChjYWxlbmRhciA9PSAiZXRoaW9waWMtYW1l
dGUtYWxlbSJfcykKICAgICAgICAgcmV0dXJuICJldGhpb2FhIl9zOwogICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CkBAIC0xNTI0LDQgKzE1NzQsMzExIEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihpbnRsT2JqZWN0RnVuY0dldENhbm9uaWNhbExvY2FsZXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2NhbGVBcnJheSk7CiB9CiAKKy8vIGh0dHBz
Oi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxlY2FsZW5k
YXJzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ2FsZW5kYXJzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUgc3Rh
dHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9w
dHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9nZXRLZXl3b3Jk
VmFsdWVzRm9yTG9jYWxlKCJjYWxlbmRhcnMiLCAidW5kIiwgZmFsc2UsICZzdGF0dXMpKTsKKyAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJf
cyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9IHVl
bnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJfcyk7CisgICAgICAgIHJl
dHVybiB7IH07CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7CisgICAg
ZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90
IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxl
bmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVudW1l
cmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShz
dGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY2FsZW5kYXJzIl9zKTsKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGNhbGVuZGFyKHBvaW50
ZXIsIGxlbmd0aCk7CisgICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IG1hcElDVUNhbGVuZGFyS2V5
d29yZFRvQkNQNDcoY2FsZW5kYXIpKQorICAgICAgICAgICAgZWxlbWVudHMuYXBwZW5kKFdURk1v
dmUobWFwcGVkLnZhbHVlKCkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZWxlbWVudHMu
YXBwZW5kKFdURk1vdmUoY2FsZW5kYXIpKTsKKyAgICB9CisKKyAgICAvLyBUaGUgQXZhaWxhYmxl
Q2FsZW5kYXJzIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlzdCwgb3JkZXJlZCBhcyBp
ZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQgdXNp
bmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZuCisg
ICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgpLAorICAgICAgICBb
XShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAgICAgICAgcmV0dXJu
IFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0pOworCisgICAgcmV0
dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIFdURk1vdmUoZWxl
bWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRp
b24vI3NlYy1hdmFpbGFibGVjb2xsYXRpb25zCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ29s
bGF0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVu
dW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51
bV9jbG9zZT4+KHVjb2xfZ2V0S2V5d29yZFZhbHVlcygiY29sbGF0aW9uIiwgJnN0YXR1cykpOwor
ICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY29sbGF0aW9u
cyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9
IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOworICAgICAg
ICByZXR1cm4geyB9OworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmcsIDE+IGVsZW1lbnRzOwor
ICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOworICAgIGZvciAoaW50
MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50MzJf
dCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBwb2ludGVyID0gdWVudW1fbmV4dChl
bnVtZXJhdGlvbi5nZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxV
UkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOworICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgY29sbGF0aW9u
KHBvaW50ZXIsIGxlbmd0aCk7CisgICAgICAgIGlmIChjb2xsYXRpb24gPT0gInN0YW5kYXJkIl9z
IHx8IGNvbGxhdGlvbiA9PSAic2VhcmNoIl9zKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIGlmIChhdXRvIG1hcHBlZCA9IG1hcElDVUNvbGxhdGlvbktleXdvcmRUb0JDUDQ3KGNvbGxh
dGlvbikpCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShtYXBwZWQudmFsdWUo
KSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShj
b2xsYXRpb24pKTsKKyAgICB9CisKKyAgICAvLyBUaGUgQXZhaWxhYmxlQ29sbGF0aW9ucyBhYnN0
cmFjdCBvcGVyYXRpb24gcmV0dXJucyBhIExpc3QsIG9yZGVyZWQgYXMgaWYgYW4gQXJyYXkgb2Yg
dGhlIHNhbWUKKyAgICAvLyB2YWx1ZXMgaGFkIGJlZW4gc29ydGVkIHVzaW5nICVBcnJheS5wcm90
b3R5cGUuc29ydCUgdXNpbmcgdW5kZWZpbmVkIGFzIGNvbXBhcmVmbgorICAgIHN0ZDo6c29ydChl
bGVtZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwKKyAgICAgICAgW10oY29uc3QgU3RyaW5n
JiBhLCBjb25zdCBTdHJpbmcmIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQb2lu
dENvbXBhcmUoYSwgYikgPCAwOworICAgICAgICB9KTsKKworICAgIHJldHVybiBjcmVhdGVBcnJh
eUZyb21TdHJpbmdWZWN0b3IoZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVsZW1lbnRzKSk7Cit9CisK
Ky8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxh
YmxlY3VycmVuY2llcworc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZUN1cnJlbmNpZXMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgVUVy
cm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgYXV0byBlbnVtZXJhdGlvbiA9IHN0
ZDo6dW5pcXVlX3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVudW1fY2xvc2U+Pih1Y3Vy
cl9vcGVuSVNPQ3VycmVuY2llcyhVQ1VSUl9DT01NT04gfCBVQ1VSUl9OT05fREVQUkVDQVRFRCwg
JnN0YXR1cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFi
bGUgY3VycmVuY2llcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50
MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGN1cnJlbmNpZXMi
X3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmcsIDE+
IGVsZW1lbnRzOworICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOwor
ICAgIGZvciAoaW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAg
ICAgICAgaW50MzJfdCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBjdXJyZW5jeSA9
IHVlbnVtX25leHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjdXJyZW5j
aWVzIl9zKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgZWxl
bWVudHMuY29uc3RydWN0QW5kQXBwZW5kKGN1cnJlbmN5LCBsZW5ndGgpOworICAgIH0KKworICAg
IC8vIFRoZSBBdmFpbGFibGVDdXJyZW5jaWVzIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEg
TGlzdCwgb3JkZXJlZCBhcyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBo
YWQgYmVlbiBzb3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmlu
ZWQgYXMgY29tcGFyZWZuCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRz
LmVuZCgpLAorICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgewor
ICAgICAgICAgICAgcmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAg
ICAgIH0pOworCisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxP
YmplY3QsIFdURk1vdmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bv
c2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGVudW1iZXJpbmdzeXN0ZW1zCitzdGF0
aWMgSlNBcnJheSogYXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVtcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1
cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRy
PFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVudW1zeXNfb3BlbkF2YWls
YWJsZU5hbWVzKCZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJh
dGUgYXZhaWxhYmxlIG51bWJlcmluZyBzeXN0ZW1zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0
KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFp
bGFibGUgbnVtYmVyaW5nIHN5c3RlbXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0K
KworICAgIFZlY3RvcjxTdHJpbmcsIDE+IGVsZW1lbnRzOworICAgIGVsZW1lbnRzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoY291bnQpOworICAgIGZvciAoaW50MzJfdCBpbmRleCA9IDA7IGluZGV4
IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50MzJfdCBsZW5ndGggPSAwOworICAgICAg
ICBjb25zdCBjaGFyKiBudW1iZXJpbmdTeXN0ZW0gPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdl
dCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7
CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVk
IHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVyaW5nIHN5c3RlbXMiX3MpOworICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50cy5jb25zdHJ1Y3RBbmRB
cHBlbmQobnVtYmVyaW5nU3lzdGVtLCBsZW5ndGgpOworICAgIH0KKworICAgIC8vIFRoZSBBdmFp
bGFibGVOdW1iZXJpbmdTeXN0ZW1zIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlzdCwg
b3JkZXJlZCBhcyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQgYmVl
biBzb3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMg
Y29tcGFyZWZuCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgp
LAorICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAg
ICAgICAgcmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0p
OworCisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3Qs
IFdURk1vdmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWlu
dGwtZW51bWVyYXRpb24vI3NlYy1jYW5vbmljYWxpemV0aW1lem9uZW5hbWUKK3N0YXRpYyBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gY2Fub25pY2FsaXplVGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25l
KGNvbnN0IFN0cmluZyYgdGltZVpvbmVOYW1lKQoreworICAgIC8vIFNvbWUgdGltZSB6b25lIG5h
bWVzIGFyZSBpbmNsdWRlZCBpbiBJQ1UsIGJ1dCB0aGV5IGFyZSBub3QgaW5jbHVkZWQgaW4gdGhl
IElBTkEgVGltZSBab25lIERhdGFiYXNlLgorICAgIC8vIFdlIG5lZWQgdG8gZmlsdGVyIHRoZW0g
b3V0LgorICAgIGlmICh0aW1lWm9uZU5hbWUuc3RhcnRzV2l0aCgiU3lzdGVtVi8iKSkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAodGltZVpvbmVOYW1lLnN0YXJ0c1dpdGgo
IkV0Yy8iKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAvLyBJQU5BIHRpbWUg
em9uZSBuYW1lcyBpbmNsdWRlICcvJy4gU29tZSBvZiB0aGVtIGFyZSBub3QgaW5jbHVkaW5nLCBi
dXQgaXQgaXMgaW4gYmFja3dhcmQgbGlua3MuCisgICAgLy8gQW5kIElDVSBhbHJlYWR5IHJlc29s
dmVkIHRoZXNlIGJhY2t3YXJkIGxpbmtzLgorICAgIGlmICghdGltZVpvbmVOYW1lLmNvbnRhaW5z
KCcvJykpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gdGltZVpv
bmVOYW1lOworfQorCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlv
bi8jc2VjLWF2YWlsYWJsZXRpbWV6b25lcworc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZVRpbWVa
b25lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1l
cmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9j
bG9zZT4+KHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbihVQ0FMX1pPTkVfVFlQRV9DQU5P
TklDQUwsIG51bGxwdHIsIG51bGxwdHIsICZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0
YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZh
aWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7CisgICAgICAgIHJldHVy
biB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1lcmF0
aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJh
dGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQor
CisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXgg
PCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAgICAg
IGNvbnN0IGNoYXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVu
Z3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAg
ICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1l
cmF0ZSBhdmFpbGFibGUgdGltZXpvbmVzIl9zKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07Cisg
ICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRpbWVab25lKHBvaW50ZXIsIGxlbmd0aCk7CisgICAg
ICAgIGlmIChhdXRvIG1hcHBlZCA9IGNhbm9uaWNhbGl6ZVRpbWVab25lTmFtZUZyb21JQ1VUaW1l
Wm9uZSh0aW1lWm9uZSkpCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShtYXBw
ZWQudmFsdWUoKSkpOworICAgIH0KKworICAgIC8vIDQuIFNvcnQgcmVzdWx0IGluIG9yZGVyIGFz
IGlmIGFuIEFycmF5IG9mIHRoZSBzYW1lIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQgdXNpbmcgJUFy
cmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZuLgorICAgIHN0
ZDo6c29ydChlbGVtZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwKKyAgICAgICAgW10oY29u
c3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBXVEY6
OmNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOworICAgICAgICB9KTsKKworICAgIHJldHVybiBj
cmVhdGVBcnJheUZyb21TdHJpbmdWZWN0b3IoZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVsZW1lbnRz
KSk7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNz
ZWMtYXZhaWxhYmxldW5pdHMKK3N0YXRpYyBKU0FycmF5KiBhdmFpbGFibGVVbml0cyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU0Fy
cmF5KiByZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlT
dHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aFVuZGVjaWRl
ZCksIHN0ZDo6c2l6ZShzaW1wbGVVbml0cykpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAg
IHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICB9CisKKyAgICBBU1NFUlQoCisgICAgICAgIHN0ZDo6aXNfc29ydGVkKHN0
ZDo6YmVnaW4oc2ltcGxlVW5pdHMpLCBzdGQ6OmVuZChzaW1wbGVVbml0cyksCisgICAgICAgICAg
ICBbXShjb25zdCBNZWFzdXJlVW5pdCYgYSwgY29uc3QgTWVhc3VyZVVuaXQmIGIpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21wYXJlKFN0cmluZ1ZpZXcoYS5zdWJU
eXBlKSwgU3RyaW5nVmlldyhiLnN1YlR5cGUpKSA8IDA7CisgICAgICAgICAgICB9KSk7CisKKyAg
ICBpbnQzMl90IGluZGV4ID0gMDsKKyAgICBmb3IgKGNvbnN0IE1lYXN1cmVVbml0JiB1bml0IDog
c2ltcGxlVW5pdHMpIHsKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmpl
Y3QsIGluZGV4KyssIGpzU3RyaW5nKHZtLCBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCh1
bml0LnN1YlR5cGUpKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9w
b3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtaW50bC5zdXBwb3J0ZWR2YWx1ZXNvZgorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jU3VwcG9ydGVkVmFsdWVzT2YsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKworICAgIFN0cmluZyBrZXkgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
LnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKKworICAgIGlmIChrZXkgPT0gImNhbGVuZGFyIl9zKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVDYWxlbmRhcnMoZ2xv
YmFsT2JqZWN0KSkpOworCisgICAgaWYgKGtleSA9PSAiY29sbGF0aW9uIl9zKQorICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVDb2xsYXRp
b25zKGdsb2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkgPT0gImN1cnJlbmN5Il9zKQorICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVD
dXJyZW5jaWVzKGdsb2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkgPT0gIm51bWJlcmluZ1N5
c3RlbSJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoYXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVtcyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBpZiAo
a2V5ID09ICJ0aW1lWm9uZSJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBK
U1ZhbHVlOjplbmNvZGUoYXZhaWxhYmxlVGltZVpvbmVzKGdsb2JhbE9iamVjdCkpKTsKKworICAg
IGlmIChrZXkgPT0gInVuaXQiX3MpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGF2YWlsYWJsZVVuaXRzKGdsb2JhbE9iamVjdCkpKTsKKworICAgIHRo
cm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVW5rbm93biBrZXkgZm9yIEludGwu
c3VwcG9ydGVkVmFsdWVzT2YiX3MpOworICAgIHJldHVybiB7IH07Cit9CisKK0pTQXJyYXkqIGNy
ZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBW
ZWN0b3I8U3RyaW5nLCAxPiYmIGVsZW1lbnRzKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAg
ICBKU0FycmF5KiByZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+
YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aENv
bnRpZ3VvdXMpLCBlbGVtZW50cy5zaXplKCkpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAg
IHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8
IGVsZW1lbnRzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICByZXN1bHQtPnB1dERpcmVjdElu
ZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBXVEZNb3ZlKGVsZW1lbnRzW2lu
ZGV4XSkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKaW5kZXggY2MwMWY2Y2FkZDQxMDVmZTUz
ODhjYTc4NzllMDA0MWE5NWYwNTFjYy4uZGM2OTZkNjVmYTVjNjM2MzIyYTZjNTE0ZjhiMDA3ODRk
ZWYyZmM2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaApA
QCAtNjAsNiArNjAsMTMgQEAgSlNDX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMoSlNDX0RF
Q0xBUkVfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05fS0VZUykKIHN0YXRpYyBjb25zdGV4cHIgdWlu
dDhfdCBudW1iZXJPZlJlbGV2YW50RXh0ZW5zaW9uS2V5cyA9IDAgSlNDX0lOVExfUkVMRVZBTlRf
RVhURU5TSU9OX0tFWVMoSlNDX0NPVU5UX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMpOwog
I3VuZGVmIEpTQ19DT1VOVF9JTlRMX1JFTEVWQU5UX0VYVEVOU0lPTl9LRVlTCiAKK3N0cnVjdCBN
ZWFzdXJlVW5pdCB7CisgICAgQVNDSUlMaXRlcmFsIHR5cGU7CisgICAgQVNDSUlMaXRlcmFsIHN1
YlR5cGU7Cit9OworCitleHRlcm4gSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgTWVhc3VyZVVuaXQg
c2ltcGxlVW5pdHNbNDNdOworCiBjbGFzcyBJbnRsT2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0
OwpAQCAtMTQxLDQgKzE0OCw2IEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBtYXBJQ1VDb2xsYXRp
b25LZXl3b3JkVG9CQ1A0Nyhjb25zdCBTdHJpbmcmKTsKIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBt
YXBJQ1VDYWxlbmRhcktleXdvcmRUb0JDUDQ3KGNvbnN0IFN0cmluZyYpOwogc3RkOjpvcHRpb25h
bDxTdHJpbmc+IG1hcEJDUDQ3VG9JQ1VDYWxlbmRhcktleXdvcmQoY29uc3QgU3RyaW5nJik7CiAK
K0pTQXJyYXkqIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihKU0dsb2JhbE9iamVjdCosIFZl
Y3RvcjxTdHJpbmcsIDE+JiYpOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IDhhMTBkZmMzYWJlMmM3Mzg2MmQw
MDUyN2ZjMmQ5YjliM2ExNzE5ZDAuLjUzZDY0YzRkN2ZlZmVhZTFjMGMzY2M2MzBjZTYzNWU3MWY5
NzUwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNM
aXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApA
QCAtNTQyLDYgKzU0Miw3IEBAIGJvb2wgY2FuVXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7CiAg
ICAgdihCb29sLCB1c2VXZWJBc3NlbWJseU11bHRpVmFsdWVzLCB0cnVlLCBOb3JtYWwsICJBbGxv
dyB0eXBlcyBmcm9tIHRoZSB3YXNtIG11bGl0LXZhbHVlcyBzcGVjLiIpIFwKICAgICB2KEJvb2ws
IHVzZVdlYkFzc2VtYmx5VGhyZWFkaW5nLCB0cnVlLCBOb3JtYWwsICJBbGxvdyBpbnN0cnVjdGlv
bnMgZnJvbSB0aGUgd2FzbSB0aHJlYWRpbmcgc3BlYy4iKSBcCiAgICAgdihCb29sLCB1c2VXZWFr
UmVmcywgdHJ1ZSwgTm9ybWFsLCAiRXhwb3NlIHRoZSBXZWFrUmVmIGNvbnN0cnVjdG9yLiIpIFwK
KyAgICB2KEJvb2wsIHVzZUludGxFbnVtZXJhdGlvbiwgdHJ1ZSwgTm9ybWFsLCAiRXhwb3NlIHRo
ZSBJbnRsIGVudW1lcmF0aW9uIEFQSXMuIikgXAogICAgIHYoQm9vbCwgdXNlQXRNZXRob2QsIHRy
dWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgYXQoKSBtZXRob2Qgb24gQXJyYXksICVUeXBlZEFycmF5
JSwgYW5kIFN0cmluZy4iKSBcCiAgICAgdihCb29sLCB1c2VFcnJvckNhdXNlLCB0cnVlLCBOb3Jt
YWwsICJBbGxvdyBhIGNhdXNlIHRvIGJlIHByb3ZpZGVkIHdoZW4gY29uc3RydWN0aW5nIGFuIEVy
cm9yLCBfTmF0aXZlRXJyb3JfLCBvciBBZ2dyZWdhdGVFcnJvci4iKSBcCiAgICAgdihCb29sLCB1
c2VTaGFyZWRBcnJheUJ1ZmZlciwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggN2QzZjM0NjMxYWM4ZTc5NzVlOWY0NDg3MzU1M2NlZjFl
ZDc4ZDAzZi4uNzRmNTY5ODgyZTZkNDY5NDk4M2Y3MTkwYTE3NzAyMTZkYTI2Y2M4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0xNjMsNiArMTYzLDExIEBAIFJlZjxTdHJpbmdJ
bXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKiBjaGFyYWN0ZXJz
KQogICAgIHJldHVybiBjcmVhdGVGcm9tTGl0ZXJhbChjaGFyYWN0ZXJzLCBzdHJsZW4oY2hhcmFj
dGVycykpOwogfQogCitSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVy
YWwoQVNDSUlMaXRlcmFsIGxpdGVyYWwpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZyb21MaXRlcmFs
KGxpdGVyYWwuY2hhcmFjdGVycygpLCBsaXRlcmFsLmxlbmd0aCgpKTsKK30KKwogUmVmPFN0cmlu
Z0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5oCmluZGV4IDQyMDNjMWM4MjU0MWE5ZDg3ZDdiNWIwZmJiNzQ4YjE2YWNhNTg4
NWUuLmFkYTlkNDFiMDJhODk0NmRiNzMxZmFhZmI5ZGVjNjdhY2FmZTVkYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nSW1wbC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJ
SUZhc3RQYXRoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlMaXRlcmFsLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ29udmVyc2lvbk1vZGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb21tb24uaD4KQEAgLTI0OSw2ICsy
NTAsNyBAQCBjbGFzcyBTdHJpbmdJbXBsIDogcHJpdmF0ZSBTdHJpbmdJbXBsU2hhcGUgewogICAg
IC8vIEZJWE1FOiBSZXBsYWNlIGNhbGxzIHRvIHRoZXNlIG92ZXJsb2FkcyBvZiBjcmVhdGVGcm9t
TGl0ZXJhbCB0byBjcmVhdGVXaXRob3V0Q29weWluZyBpbnN0ZWFkLgogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNo
YXIqLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVm
PFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIqKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChBU0NJ
SUxpdGVyYWwpOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1w
bD4gY3JlYXRlV2l0aG91dENvcHlpbmcoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCBsZW5ndGgpOwog
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZVdpdGhv
dXRDb3B5aW5nKGNvbnN0IExDaGFyKiwgdW5zaWduZWQgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTQ1MzNiMjM2ZTk1OTVm
Mzk5NTcxM2FlMWEwMDI1YzZkZDk0ODhmMy4uMzA4ZjU5YzYwNDA4ZmM5ZDRiMmZiNzk0ZDI5YWVm
NmM2YjA2MDRhOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQ
SXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Ry
ZXNzL2ludGwtZW51bWVyYXRpb24uanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAqIHN0cmVzcy9pbnRsLWxvY2FsZS1pbmZvLmpz
OgorICAgICAgICAobGV0LmwubmV3LkludGwuTG9jYWxlLnNob3VsZEJlKToKKyAgICAgICAgKHNo
b3VsZEJlKToKKwogMjAyMS0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNwZWN1bGF0aXZlIGZpeCBmb3Igb2xkIElDVQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1lbnVtZXJhdGlvbi5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2ludGwtZW51bWVyYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NlMjA1NDEzNTZkY2NlNTZjN2Zm
NWUzYjZjNDM1ZjhiMjM4OGU4OQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2lu
dGwtZW51bWVyYXRpb24uanMKQEAgLTAsMCArMSwzOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxldCBl
cnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJv
clR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5h
bWV9IWApOworfQorCitsZXQgY2FsZW5kYXJzID0gSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZigiY2Fs
ZW5kYXIiKTsKK3Nob3VsZEJlKEpTT04uc3RyaW5naWZ5KGNhbGVuZGFycyksIGBbImJ1ZGRoaXN0
IiwiY2hpbmVzZSIsImNvcHRpYyIsImRhbmdpIiwiZXRoaW9hYSIsImV0aGlvcGljIiwiZ3JlZ29y
eSIsImhlYnJldyIsImluZGlhbiIsImlzbGFtaWMiLCJpc2xhbWljLWNpdmlsIiwiaXNsYW1pYy1y
Z3NhIiwiaXNsYW1pYy10YmxhIiwiaXNsYW1pYy11bWFscXVyYSIsImlzbzg2MDEiLCJqYXBhbmVz
ZSIsInBlcnNpYW4iLCJyb2MiXWApOworCitsZXQgY29sbGF0aW9ucyA9IEludGwuc3VwcG9ydGVk
VmFsdWVzT2YoImNvbGxhdGlvbiIpOworc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoY29sbGF0aW9u
cyksIGBbImJpZzVoYW4iLCJjb21wYXQiLCJkaWN0IiwiZ2IyMzEyIiwicGhvbmViayIsInBob25l
dGljIiwicGlueWluIiwicmVmb3JtZWQiLCJzZWFyY2hqbCIsInN0cm9rZSIsInRyYWQiLCJ1bmlo
YW4iLCJ6aHV5aW4iXWApOworCitsZXQgY3VycmVuY2llcyA9IEludGwuc3VwcG9ydGVkVmFsdWVz
T2YoImN1cnJlbmN5Iik7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeShjdXJyZW5jaWVzKSwgYFsi
QUVEIiwiQUZOIiwiQUxMIiwiQU1EIiwiQU5HIiwiQU9BIiwiQVJTIiwiQVVEIiwiQVdHIiwiQVpO
IiwiQkFNIiwiQkJEIiwiQkRUIiwiQkdOIiwiQkhEIiwiQklGIiwiQk1EIiwiQk5EIiwiQk9CIiwi
QlJMIiwiQlNEIiwiQlROIiwiQldQIiwiQllOIiwiQlpEIiwiQ0FEIiwiQ0RGIiwiQ0hGIiwiQ0xQ
IiwiQ05ZIiwiQ09QIiwiQ1JDIiwiQ1VDIiwiQ1VQIiwiQ1ZFIiwiQ1pLIiwiREpGIiwiREtLIiwi
RE9QIiwiRFpEIiwiRUdQIiwiRVJOIiwiRVRCIiwiRVVSIiwiRkpEIiwiRktQIiwiR0JQIiwiR0VM
IiwiR0hTIiwiR0lQIiwiR01EIiwiR05GIiwiR1RRIiwiR1lEIiwiSEtEIiwiSE5MIiwiSFJLIiwi
SFRHIiwiSFVGIiwiSURSIiwiSUxTIiwiSU5SIiwiSVFEIiwiSVJSIiwiSVNLIiwiSk1EIiwiSk9E
IiwiSlBZIiwiS0VTIiwiS0dTIiwiS0hSIiwiS01GIiwiS1BXIiwiS1JXIiwiS1dEIiwiS1lEIiwi
S1pUIiwiTEFLIiwiTEJQIiwiTEtSIiwiTFJEIiwiTFNMIiwiTFlEIiwiTUFEIiwiTURMIiwiTUdB
IiwiTUtEIiwiTU1LIiwiTU5UIiwiTU9QIiwiTVJVIiwiTVVSIiwiTVZSIiwiTVdLIiwiTVhOIiwi
TVlSIiwiTVpOIiwiTkFEIiwiTkdOIiwiTklPIiwiTk9LIiwiTlBSIiwiTlpEIiwiT01SIiwiUEFC
IiwiUEVOIiwiUEdLIiwiUEhQIiwiUEtSIiwiUExOIiwiUFlHIiwiUUFSIiwiUk9OIiwiUlNEIiwi
UlVCIiwiUldGIiwiU0FSIiwiU0JEIiwiU0NSIiwiU0RHIiwiU0VLIiwiU0dEIiwiU0hQIiwiU0xM
IiwiU09TIiwiU1JEIiwiU1NQIiwiU1ROIiwiU1lQIiwiU1pMIiwiVEhCIiwiVEpTIiwiVE1UIiwi
VE5EIiwiVE9QIiwiVFJZIiwiVFREIiwiVFdEIiwiVFpTIiwiVUFIIiwiVUdYIiwiVVNEIiwiVVlV
IiwiVVpTIiwiVkVGIiwiVk5EIiwiVlVWIiwiV1NUIiwiWEFGIiwiWENEIiwiWE9GIiwiWFBGIiwi
WUVSIiwiWkFSIiwiWk1XIl1gKTsKKworbGV0IG51bWJlcmluZ1N5c3RlbXMgPSBJbnRsLnN1cHBv
cnRlZFZhbHVlc09mKCJudW1iZXJpbmdTeXN0ZW0iKTsKK2xldCBudW1iZXJpbmdTeXN0ZW1zU3Ry
aW5nID0gSlNPTi5zdHJpbmdpZnkobnVtYmVyaW5nU3lzdGVtcyk7CitzaG91bGRCZShudW1iZXJp
bmdTeXN0ZW1zU3RyaW5nID09PSBgWyJhZGxtIiwiYWhvbSIsImFyYWIiLCJhcmFiZXh0IiwiYXJt
biIsImFybW5sb3ciLCJiYWxpIiwiYmVuZyIsImJoa3MiLCJicmFoIiwiY2FrbSIsImNoYW0iLCJj
eXJsIiwiZGV2YSIsImRpYWsiLCJldGhpIiwiZnVsbHdpZGUiLCJnZW9yIiwiZ29uZyIsImdvbm0i
LCJncmVrIiwiZ3Jla2xvdyIsImd1anIiLCJndXJ1IiwiaGFuaWRheXMiLCJoYW5pZGVjIiwiaGFu
cyIsImhhbnNmaW4iLCJoYW50IiwiaGFudGZpbiIsImhlYnIiLCJobW5nIiwiaG1ucCIsImphdmEi
LCJqcGFuIiwianBhbmZpbiIsImpwYW55ZWFyIiwia2FsaSIsImtobXIiLCJrbmRhIiwibGFuYSIs
ImxhbmF0aGFtIiwibGFvbyIsImxhdG4iLCJsZXBjIiwibGltYiIsIm1hdGhib2xkIiwibWF0aGRi
bCIsIm1hdGhtb25vIiwibWF0aHNhbmIiLCJtYXRoc2FucyIsIm1seW0iLCJtb2RpIiwibW9uZyIs
Im1yb28iLCJtdGVpIiwibXltciIsIm15bXJzaGFuIiwibXltcnRsbmciLCJuZXdhIiwibmtvbyIs
Im9sY2siLCJvcnlhIiwib3NtYSIsInJvaGciLCJyb21hbiIsInJvbWFubG93Iiwic2F1ciIsInNl
Z21lbnQiLCJzaHJkIiwic2luZCIsInNpbmgiLCJzb3JhIiwic3VuZCIsInRha3IiLCJ0YWx1Iiwi
dGFtbCIsInRhbWxkZWMiLCJ0ZWx1IiwidGhhaSIsInRpYnQiLCJ0aXJoIiwidmFpaSIsIndhcmEi
LCJ3Y2hvIl1gIHx8IG51bWJlcmluZ1N5c3RlbXNTdHJpbmcgPT09IGBbImFkbG0iLCJhaG9tIiwi
YXJhYiIsImFyYWJleHQiLCJhcm1uIiwiYXJtbmxvdyIsImJhbGkiLCJiZW5nIiwiYmhrcyIsImJy
YWgiLCJjYWttIiwiY2hhbSIsImN5cmwiLCJkZXZhIiwiZXRoaSIsImZ1bGx3aWRlIiwiZ2VvciIs
ImdvbmciLCJnb25tIiwiZ3JlayIsImdyZWtsb3ciLCJndWpyIiwiZ3VydSIsImhhbmlkYXlzIiwi
aGFuaWRlYyIsImhhbnMiLCJoYW5zZmluIiwiaGFudCIsImhhbnRmaW4iLCJoZWJyIiwiaG1uZyIs
ImhtbnAiLCJqYXZhIiwianBhbiIsImpwYW5maW4iLCJqcGFueWVhciIsImthbGkiLCJraG1yIiwi
a25kYSIsImxhbmEiLCJsYW5hdGhhbSIsImxhb28iLCJsYXRuIiwibGVwYyIsImxpbWIiLCJtYXRo
Ym9sZCIsIm1hdGhkYmwiLCJtYXRobW9ubyIsIm1hdGhzYW5iIiwibWF0aHNhbnMiLCJtbHltIiwi
bW9kaSIsIm1vbmciLCJtcm9vIiwibXRlaSIsIm15bXIiLCJteW1yc2hhbiIsIm15bXJ0bG5nIiwi
bmV3YSIsIm5rb28iLCJvbGNrIiwib3J5YSIsIm9zbWEiLCJyb2hnIiwicm9tYW4iLCJyb21hbmxv
dyIsInNhdXIiLCJzaHJkIiwic2luZCIsInNpbmgiLCJzb3JhIiwic3VuZCIsInRha3IiLCJ0YWx1
IiwidGFtbCIsInRhbWxkZWMiLCJ0ZWx1IiwidGhhaSIsInRpYnQiLCJ0aXJoIiwidmFpaSIsIndh
cmEiLCJ3Y2hvIl1gLCB0cnVlKTsKKworbGV0IHRpbWVab25lcyA9IEludGwuc3VwcG9ydGVkVmFs
dWVzT2YoInRpbWVab25lIik7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeSh0aW1lWm9uZXMpLCBg
WyJBZnJpY2EvQWJpZGphbiIsIkFmcmljYS9BY2NyYSIsIkFmcmljYS9BZGRpc19BYmFiYSIsIkFm
cmljYS9BbGdpZXJzIiwiQWZyaWNhL0FzbWVyYSIsIkFmcmljYS9CYW1ha28iLCJBZnJpY2EvQmFu
Z3VpIiwiQWZyaWNhL0Jhbmp1bCIsIkFmcmljYS9CaXNzYXUiLCJBZnJpY2EvQmxhbnR5cmUiLCJB
ZnJpY2EvQnJhenphdmlsbGUiLCJBZnJpY2EvQnVqdW1idXJhIiwiQWZyaWNhL0NhaXJvIiwiQWZy
aWNhL0Nhc2FibGFuY2EiLCJBZnJpY2EvQ2V1dGEiLCJBZnJpY2EvQ29uYWtyeSIsIkFmcmljYS9E
YWthciIsIkFmcmljYS9EYXJfZXNfU2FsYWFtIiwiQWZyaWNhL0RqaWJvdXRpIiwiQWZyaWNhL0Rv
dWFsYSIsIkFmcmljYS9FbF9BYWl1biIsIkFmcmljYS9GcmVldG93biIsIkFmcmljYS9HYWJvcm9u
ZSIsIkFmcmljYS9IYXJhcmUiLCJBZnJpY2EvSm9oYW5uZXNidXJnIiwiQWZyaWNhL0p1YmEiLCJB
ZnJpY2EvS2FtcGFsYSIsIkFmcmljYS9LaGFydG91bSIsIkFmcmljYS9LaWdhbGkiLCJBZnJpY2Ev
S2luc2hhc2EiLCJBZnJpY2EvTGFnb3MiLCJBZnJpY2EvTGlicmV2aWxsZSIsIkFmcmljYS9Mb21l
IiwiQWZyaWNhL0x1YW5kYSIsIkFmcmljYS9MdWJ1bWJhc2hpIiwiQWZyaWNhL0x1c2FrYSIsIkFm
cmljYS9NYWxhYm8iLCJBZnJpY2EvTWFwdXRvIiwiQWZyaWNhL01hc2VydSIsIkFmcmljYS9NYmFi
YW5lIiwiQWZyaWNhL01vZ2FkaXNodSIsIkFmcmljYS9Nb25yb3ZpYSIsIkFmcmljYS9OYWlyb2Jp
IiwiQWZyaWNhL05kamFtZW5hIiwiQWZyaWNhL05pYW1leSIsIkFmcmljYS9Ob3Vha2Nob3R0Iiwi
QWZyaWNhL091YWdhZG91Z291IiwiQWZyaWNhL1BvcnRvLU5vdm8iLCJBZnJpY2EvU2FvX1RvbWUi
LCJBZnJpY2EvVHJpcG9saSIsIkFmcmljYS9UdW5pcyIsIkFmcmljYS9XaW5kaG9layIsIkFtZXJp
Y2EvQWRhayIsIkFtZXJpY2EvQW5jaG9yYWdlIiwiQW1lcmljYS9Bbmd1aWxsYSIsIkFtZXJpY2Ev
QW50aWd1YSIsIkFtZXJpY2EvQXJhZ3VhaW5hIiwiQW1lcmljYS9BcmdlbnRpbmEvTGFfUmlvamEi
LCJBbWVyaWNhL0FyZ2VudGluYS9SaW9fR2FsbGVnb3MiLCJBbWVyaWNhL0FyZ2VudGluYS9TYWx0
YSIsIkFtZXJpY2EvQXJnZW50aW5hL1Nhbl9KdWFuIiwiQW1lcmljYS9BcmdlbnRpbmEvU2FuX0x1
aXMiLCJBbWVyaWNhL0FyZ2VudGluYS9UdWN1bWFuIiwiQW1lcmljYS9BcmdlbnRpbmEvVXNodWFp
YSIsIkFtZXJpY2EvQXJ1YmEiLCJBbWVyaWNhL0FzdW5jaW9uIiwiQW1lcmljYS9CYWhpYSIsIkFt
ZXJpY2EvQmFoaWFfQmFuZGVyYXMiLCJBbWVyaWNhL0JhcmJhZG9zIiwiQW1lcmljYS9CZWxlbSIs
IkFtZXJpY2EvQmVsaXplIiwiQW1lcmljYS9CbGFuYy1TYWJsb24iLCJBbWVyaWNhL0JvYV9WaXN0
YSIsIkFtZXJpY2EvQm9nb3RhIiwiQW1lcmljYS9Cb2lzZSIsIkFtZXJpY2EvQnVlbm9zX0FpcmVz
IiwiQW1lcmljYS9DYW1icmlkZ2VfQmF5IiwiQW1lcmljYS9DYW1wb19HcmFuZGUiLCJBbWVyaWNh
L0NhbmN1biIsIkFtZXJpY2EvQ2FyYWNhcyIsIkFtZXJpY2EvQ2F0YW1hcmNhIiwiQW1lcmljYS9D
YXllbm5lIiwiQW1lcmljYS9DYXltYW4iLCJBbWVyaWNhL0NoaWNhZ28iLCJBbWVyaWNhL0NoaWh1
YWh1YSIsIkFtZXJpY2EvQ29yYWxfSGFyYm91ciIsIkFtZXJpY2EvQ29yZG9iYSIsIkFtZXJpY2Ev
Q29zdGFfUmljYSIsIkFtZXJpY2EvQ3Jlc3RvbiIsIkFtZXJpY2EvQ3VpYWJhIiwiQW1lcmljYS9D
dXJhY2FvIiwiQW1lcmljYS9EYW5tYXJrc2hhdm4iLCJBbWVyaWNhL0Rhd3NvbiIsIkFtZXJpY2Ev
RGF3c29uX0NyZWVrIiwiQW1lcmljYS9EZW52ZXIiLCJBbWVyaWNhL0RldHJvaXQiLCJBbWVyaWNh
L0RvbWluaWNhIiwiQW1lcmljYS9FZG1vbnRvbiIsIkFtZXJpY2EvRWlydW5lcGUiLCJBbWVyaWNh
L0VsX1NhbHZhZG9yIiwiQW1lcmljYS9Gb3J0X05lbHNvbiIsIkFtZXJpY2EvRm9ydGFsZXphIiwi
QW1lcmljYS9HbGFjZV9CYXkiLCJBbWVyaWNhL0dvZHRoYWIiLCJBbWVyaWNhL0dvb3NlX0JheSIs
IkFtZXJpY2EvR3JhbmRfVHVyayIsIkFtZXJpY2EvR3JlbmFkYSIsIkFtZXJpY2EvR3VhZGVsb3Vw
ZSIsIkFtZXJpY2EvR3VhdGVtYWxhIiwiQW1lcmljYS9HdWF5YXF1aWwiLCJBbWVyaWNhL0d1eWFu
YSIsIkFtZXJpY2EvSGFsaWZheCIsIkFtZXJpY2EvSGF2YW5hIiwiQW1lcmljYS9IZXJtb3NpbGxv
IiwiQW1lcmljYS9JbmRpYW5hL0tub3giLCJBbWVyaWNhL0luZGlhbmEvTWFyZW5nbyIsIkFtZXJp
Y2EvSW5kaWFuYS9QZXRlcnNidXJnIiwiQW1lcmljYS9JbmRpYW5hL1RlbGxfQ2l0eSIsIkFtZXJp
Y2EvSW5kaWFuYS9WZXZheSIsIkFtZXJpY2EvSW5kaWFuYS9WaW5jZW5uZXMiLCJBbWVyaWNhL0lu
ZGlhbmEvV2luYW1hYyIsIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwiQW1lcmljYS9JbnV2aWsiLCJB
bWVyaWNhL0lxYWx1aXQiLCJBbWVyaWNhL0phbWFpY2EiLCJBbWVyaWNhL0p1anV5IiwiQW1lcmlj
YS9KdW5lYXUiLCJBbWVyaWNhL0tlbnR1Y2t5L01vbnRpY2VsbG8iLCJBbWVyaWNhL0tyYWxlbmRp
amsiLCJBbWVyaWNhL0xhX1BheiIsIkFtZXJpY2EvTGltYSIsIkFtZXJpY2EvTG9zX0FuZ2VsZXMi
LCJBbWVyaWNhL0xvdWlzdmlsbGUiLCJBbWVyaWNhL0xvd2VyX1ByaW5jZXMiLCJBbWVyaWNhL01h
Y2VpbyIsIkFtZXJpY2EvTWFuYWd1YSIsIkFtZXJpY2EvTWFuYXVzIiwiQW1lcmljYS9NYXJpZ290
IiwiQW1lcmljYS9NYXJ0aW5pcXVlIiwiQW1lcmljYS9NYXRhbW9yb3MiLCJBbWVyaWNhL01hemF0
bGFuIiwiQW1lcmljYS9NZW5kb3phIiwiQW1lcmljYS9NZW5vbWluZWUiLCJBbWVyaWNhL01lcmlk
YSIsIkFtZXJpY2EvTWV0bGFrYXRsYSIsIkFtZXJpY2EvTWV4aWNvX0NpdHkiLCJBbWVyaWNhL01p
cXVlbG9uIiwiQW1lcmljYS9Nb25jdG9uIiwiQW1lcmljYS9Nb250ZXJyZXkiLCJBbWVyaWNhL01v
bnRldmlkZW8iLCJBbWVyaWNhL01vbnRyZWFsIiwiQW1lcmljYS9Nb250c2VycmF0IiwiQW1lcmlj
YS9OYXNzYXUiLCJBbWVyaWNhL05ld19Zb3JrIiwiQW1lcmljYS9OaXBpZ29uIiwiQW1lcmljYS9O
b21lIiwiQW1lcmljYS9Ob3JvbmhhIiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvQmV1bGFoIiwiQW1l
cmljYS9Ob3J0aF9EYWtvdGEvQ2VudGVyIiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvTmV3X1NhbGVt
IiwiQW1lcmljYS9PamluYWdhIiwiQW1lcmljYS9QYW5hbWEiLCJBbWVyaWNhL1BhbmduaXJ0dW5n
IiwiQW1lcmljYS9QYXJhbWFyaWJvIiwiQW1lcmljYS9QaG9lbml4IiwiQW1lcmljYS9Qb3J0LWF1
LVByaW5jZSIsIkFtZXJpY2EvUG9ydF9vZl9TcGFpbiIsIkFtZXJpY2EvUG9ydG9fVmVsaG8iLCJB
bWVyaWNhL1B1ZXJ0b19SaWNvIiwiQW1lcmljYS9QdW50YV9BcmVuYXMiLCJBbWVyaWNhL1JhaW55
X1JpdmVyIiwiQW1lcmljYS9SYW5raW5fSW5sZXQiLCJBbWVyaWNhL1JlY2lmZSIsIkFtZXJpY2Ev
UmVnaW5hIiwiQW1lcmljYS9SZXNvbHV0ZSIsIkFtZXJpY2EvUmlvX0JyYW5jbyIsIkFtZXJpY2Ev
U2FudGFfSXNhYmVsIiwiQW1lcmljYS9TYW50YXJlbSIsIkFtZXJpY2EvU2FudGlhZ28iLCJBbWVy
aWNhL1NhbnRvX0RvbWluZ28iLCJBbWVyaWNhL1Nhb19QYXVsbyIsIkFtZXJpY2EvU2NvcmVzYnlz
dW5kIiwiQW1lcmljYS9TaXRrYSIsIkFtZXJpY2EvU3RfQmFydGhlbGVteSIsIkFtZXJpY2EvU3Rf
Sm9obnMiLCJBbWVyaWNhL1N0X0tpdHRzIiwiQW1lcmljYS9TdF9MdWNpYSIsIkFtZXJpY2EvU3Rf
VGhvbWFzIiwiQW1lcmljYS9TdF9WaW5jZW50IiwiQW1lcmljYS9Td2lmdF9DdXJyZW50IiwiQW1l
cmljYS9UZWd1Y2lnYWxwYSIsIkFtZXJpY2EvVGh1bGUiLCJBbWVyaWNhL1RodW5kZXJfQmF5Iiwi
QW1lcmljYS9UaWp1YW5hIiwiQW1lcmljYS9Ub3JvbnRvIiwiQW1lcmljYS9Ub3J0b2xhIiwiQW1l
cmljYS9WYW5jb3V2ZXIiLCJBbWVyaWNhL1doaXRlaG9yc2UiLCJBbWVyaWNhL1dpbm5pcGVnIiwi
QW1lcmljYS9ZYWt1dGF0IiwiQW1lcmljYS9ZZWxsb3drbmlmZSIsIkFudGFyY3RpY2EvQ2FzZXki
LCJBbnRhcmN0aWNhL0RhdmlzIiwiQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZSIsIkFudGFyY3Rp
Y2EvTWFjcXVhcmllIiwiQW50YXJjdGljYS9NYXdzb24iLCJBbnRhcmN0aWNhL01jTXVyZG8iLCJB
bnRhcmN0aWNhL1BhbG1lciIsIkFudGFyY3RpY2EvUm90aGVyYSIsIkFudGFyY3RpY2EvU3lvd2Ei
LCJBbnRhcmN0aWNhL1Ryb2xsIiwiQW50YXJjdGljYS9Wb3N0b2siLCJBcmN0aWMvTG9uZ3llYXJi
eWVuIiwiQXNpYS9BZGVuIiwiQXNpYS9BbG1hdHkiLCJBc2lhL0FtbWFuIiwiQXNpYS9BbmFkeXIi
LCJBc2lhL0FxdGF1IiwiQXNpYS9BcXRvYmUiLCJBc2lhL0FzaGdhYmF0IiwiQXNpYS9BdHlyYXUi
LCJBc2lhL0JhZ2hkYWQiLCJBc2lhL0JhaHJhaW4iLCJBc2lhL0Jha3UiLCJBc2lhL0Jhbmdrb2si
LCJBc2lhL0Jhcm5hdWwiLCJBc2lhL0JlaXJ1dCIsIkFzaWEvQmlzaGtlayIsIkFzaWEvQnJ1bmVp
IiwiQXNpYS9DYWxjdXR0YSIsIkFzaWEvQ2hpdGEiLCJBc2lhL0Nob2liYWxzYW4iLCJBc2lhL0Nv
bG9tYm8iLCJBc2lhL0RhbWFzY3VzIiwiQXNpYS9EaGFrYSIsIkFzaWEvRGlsaSIsIkFzaWEvRHVi
YWkiLCJBc2lhL0R1c2hhbmJlIiwiQXNpYS9GYW1hZ3VzdGEiLCJBc2lhL0dhemEiLCJBc2lhL0hl
YnJvbiIsIkFzaWEvSG9uZ19Lb25nIiwiQXNpYS9Ib3ZkIiwiQXNpYS9Jcmt1dHNrIiwiQXNpYS9K
YWthcnRhIiwiQXNpYS9KYXlhcHVyYSIsIkFzaWEvSmVydXNhbGVtIiwiQXNpYS9LYWJ1bCIsIkFz
aWEvS2FtY2hhdGthIiwiQXNpYS9LYXJhY2hpIiwiQXNpYS9LYXRtYW5kdSIsIkFzaWEvS2hhbmR5
Z2EiLCJBc2lhL0tyYXNub3lhcnNrIiwiQXNpYS9LdWFsYV9MdW1wdXIiLCJBc2lhL0t1Y2hpbmci
LCJBc2lhL0t1d2FpdCIsIkFzaWEvTWFjYXUiLCJBc2lhL01hZ2FkYW4iLCJBc2lhL01ha2Fzc2Fy
IiwiQXNpYS9NYW5pbGEiLCJBc2lhL011c2NhdCIsIkFzaWEvTmljb3NpYSIsIkFzaWEvTm92b2t1
em5ldHNrIiwiQXNpYS9Ob3Zvc2liaXJzayIsIkFzaWEvT21zayIsIkFzaWEvT3JhbCIsIkFzaWEv
UGhub21fUGVuaCIsIkFzaWEvUG9udGlhbmFrIiwiQXNpYS9QeW9uZ3lhbmciLCJBc2lhL1FhdGFy
IiwiQXNpYS9Rb3N0YW5heSIsIkFzaWEvUXl6eWxvcmRhIiwiQXNpYS9SYW5nb29uIiwiQXNpYS9S
aXlhZGgiLCJBc2lhL1NhaWdvbiIsIkFzaWEvU2FraGFsaW4iLCJBc2lhL1NhbWFya2FuZCIsIkFz
aWEvU2VvdWwiLCJBc2lhL1NoYW5naGFpIiwiQXNpYS9TaW5nYXBvcmUiLCJBc2lhL1NyZWRuZWtv
bHltc2siLCJBc2lhL1RhaXBlaSIsIkFzaWEvVGFzaGtlbnQiLCJBc2lhL1RiaWxpc2kiLCJBc2lh
L1RlaHJhbiIsIkFzaWEvVGhpbXBodSIsIkFzaWEvVG9reW8iLCJBc2lhL1RvbXNrIiwiQXNpYS9V
bGFhbmJhYXRhciIsIkFzaWEvVXJ1bXFpIiwiQXNpYS9Vc3QtTmVyYSIsIkFzaWEvVmllbnRpYW5l
IiwiQXNpYS9WbGFkaXZvc3RvayIsIkFzaWEvWWFrdXRzayIsIkFzaWEvWWVrYXRlcmluYnVyZyIs
IkFzaWEvWWVyZXZhbiIsIkF0bGFudGljL0F6b3JlcyIsIkF0bGFudGljL0Jlcm11ZGEiLCJBdGxh
bnRpYy9DYW5hcnkiLCJBdGxhbnRpYy9DYXBlX1ZlcmRlIiwiQXRsYW50aWMvRmFlcm9lIiwiQXRs
YW50aWMvTWFkZWlyYSIsIkF0bGFudGljL1JleWtqYXZpayIsIkF0bGFudGljL1NvdXRoX0dlb3Jn
aWEiLCJBdGxhbnRpYy9TdF9IZWxlbmEiLCJBdGxhbnRpYy9TdGFubGV5IiwiQXVzdHJhbGlhL0Fk
ZWxhaWRlIiwiQXVzdHJhbGlhL0JyaXNiYW5lIiwiQXVzdHJhbGlhL0Jyb2tlbl9IaWxsIiwiQXVz
dHJhbGlhL0N1cnJpZSIsIkF1c3RyYWxpYS9EYXJ3aW4iLCJBdXN0cmFsaWEvRXVjbGEiLCJBdXN0
cmFsaWEvSG9iYXJ0IiwiQXVzdHJhbGlhL0xpbmRlbWFuIiwiQXVzdHJhbGlhL0xvcmRfSG93ZSIs
IkF1c3RyYWxpYS9NZWxib3VybmUiLCJBdXN0cmFsaWEvUGVydGgiLCJBdXN0cmFsaWEvU3lkbmV5
IiwiRXVyb3BlL0Ftc3RlcmRhbSIsIkV1cm9wZS9BbmRvcnJhIiwiRXVyb3BlL0FzdHJha2hhbiIs
IkV1cm9wZS9BdGhlbnMiLCJFdXJvcGUvQmVsZ3JhZGUiLCJFdXJvcGUvQmVybGluIiwiRXVyb3Bl
L0JyYXRpc2xhdmEiLCJFdXJvcGUvQnJ1c3NlbHMiLCJFdXJvcGUvQnVjaGFyZXN0IiwiRXVyb3Bl
L0J1ZGFwZXN0IiwiRXVyb3BlL0J1c2luZ2VuIiwiRXVyb3BlL0NoaXNpbmF1IiwiRXVyb3BlL0Nv
cGVuaGFnZW4iLCJFdXJvcGUvRHVibGluIiwiRXVyb3BlL0dpYnJhbHRhciIsIkV1cm9wZS9HdWVy
bnNleSIsIkV1cm9wZS9IZWxzaW5raSIsIkV1cm9wZS9Jc2xlX29mX01hbiIsIkV1cm9wZS9Jc3Rh
bmJ1bCIsIkV1cm9wZS9KZXJzZXkiLCJFdXJvcGUvS2FsaW5pbmdyYWQiLCJFdXJvcGUvS2lldiIs
IkV1cm9wZS9LaXJvdiIsIkV1cm9wZS9MaXNib24iLCJFdXJvcGUvTGp1YmxqYW5hIiwiRXVyb3Bl
L0xvbmRvbiIsIkV1cm9wZS9MdXhlbWJvdXJnIiwiRXVyb3BlL01hZHJpZCIsIkV1cm9wZS9NYWx0
YSIsIkV1cm9wZS9NYXJpZWhhbW4iLCJFdXJvcGUvTWluc2siLCJFdXJvcGUvTW9uYWNvIiwiRXVy
b3BlL01vc2NvdyIsIkV1cm9wZS9Pc2xvIiwiRXVyb3BlL1BhcmlzIiwiRXVyb3BlL1BvZGdvcmlj
YSIsIkV1cm9wZS9QcmFndWUiLCJFdXJvcGUvUmlnYSIsIkV1cm9wZS9Sb21lIiwiRXVyb3BlL1Nh
bWFyYSIsIkV1cm9wZS9TYW5fTWFyaW5vIiwiRXVyb3BlL1NhcmFqZXZvIiwiRXVyb3BlL1NhcmF0
b3YiLCJFdXJvcGUvU2ltZmVyb3BvbCIsIkV1cm9wZS9Ta29wamUiLCJFdXJvcGUvU29maWEiLCJF
dXJvcGUvU3RvY2tob2xtIiwiRXVyb3BlL1RhbGxpbm4iLCJFdXJvcGUvVGlyYW5lIiwiRXVyb3Bl
L1VseWFub3ZzayIsIkV1cm9wZS9Vemhnb3JvZCIsIkV1cm9wZS9WYWR1eiIsIkV1cm9wZS9WYXRp
Y2FuIiwiRXVyb3BlL1ZpZW5uYSIsIkV1cm9wZS9WaWxuaXVzIiwiRXVyb3BlL1ZvbGdvZ3JhZCIs
IkV1cm9wZS9XYXJzYXciLCJFdXJvcGUvWmFncmViIiwiRXVyb3BlL1phcG9yb3poeWUiLCJFdXJv
cGUvWnVyaWNoIiwiSW5kaWFuL0FudGFuYW5hcml2byIsIkluZGlhbi9DaGFnb3MiLCJJbmRpYW4v
Q2hyaXN0bWFzIiwiSW5kaWFuL0NvY29zIiwiSW5kaWFuL0NvbW9ybyIsIkluZGlhbi9LZXJndWVs
ZW4iLCJJbmRpYW4vTWFoZSIsIkluZGlhbi9NYWxkaXZlcyIsIkluZGlhbi9NYXVyaXRpdXMiLCJJ
bmRpYW4vTWF5b3R0ZSIsIkluZGlhbi9SZXVuaW9uIiwiUGFjaWZpYy9BcGlhIiwiUGFjaWZpYy9B
dWNrbGFuZCIsIlBhY2lmaWMvQm91Z2FpbnZpbGxlIiwiUGFjaWZpYy9DaGF0aGFtIiwiUGFjaWZp
Yy9FYXN0ZXIiLCJQYWNpZmljL0VmYXRlIiwiUGFjaWZpYy9FbmRlcmJ1cnkiLCJQYWNpZmljL0Zh
a2FvZm8iLCJQYWNpZmljL0ZpamkiLCJQYWNpZmljL0Z1bmFmdXRpIiwiUGFjaWZpYy9HYWxhcGFn
b3MiLCJQYWNpZmljL0dhbWJpZXIiLCJQYWNpZmljL0d1YWRhbGNhbmFsIiwiUGFjaWZpYy9HdWFt
IiwiUGFjaWZpYy9Ib25vbHVsdSIsIlBhY2lmaWMvSm9obnN0b24iLCJQYWNpZmljL0tpcml0aW1h
dGkiLCJQYWNpZmljL0tvc3JhZSIsIlBhY2lmaWMvS3dhamFsZWluIiwiUGFjaWZpYy9NYWp1cm8i
LCJQYWNpZmljL01hcnF1ZXNhcyIsIlBhY2lmaWMvTWlkd2F5IiwiUGFjaWZpYy9OYXVydSIsIlBh
Y2lmaWMvTml1ZSIsIlBhY2lmaWMvTm9yZm9sayIsIlBhY2lmaWMvTm91bWVhIiwiUGFjaWZpYy9Q
YWdvX1BhZ28iLCJQYWNpZmljL1BhbGF1IiwiUGFjaWZpYy9QaXRjYWlybiIsIlBhY2lmaWMvUG9u
YXBlIiwiUGFjaWZpYy9Qb3J0X01vcmVzYnkiLCJQYWNpZmljL1Jhcm90b25nYSIsIlBhY2lmaWMv
U2FpcGFuIiwiUGFjaWZpYy9UYWhpdGkiLCJQYWNpZmljL1RhcmF3YSIsIlBhY2lmaWMvVG9uZ2F0
YXB1IiwiUGFjaWZpYy9UcnVrIiwiUGFjaWZpYy9XYWtlIiwiUGFjaWZpYy9XYWxsaXMiXWApOwor
CitsZXQgdW5pdHMgPSBJbnRsLnN1cHBvcnRlZFZhbHVlc09mKCJ1bml0Iik7CitzaG91bGRCZShK
U09OLnN0cmluZ2lmeSh1bml0cyksIGBbImFjcmUiLCJiaXQiLCJieXRlIiwiY2Vsc2l1cyIsImNl
bnRpbWV0ZXIiLCJkYXkiLCJkZWdyZWUiLCJmYWhyZW5oZWl0IiwiZmx1aWQtb3VuY2UiLCJmb290
IiwiZ2FsbG9uIiwiZ2lnYWJpdCIsImdpZ2FieXRlIiwiZ3JhbSIsImhlY3RhcmUiLCJob3VyIiwi
aW5jaCIsImtpbG9iaXQiLCJraWxvYnl0ZSIsImtpbG9ncmFtIiwia2lsb21ldGVyIiwibGl0ZXIi
LCJtZWdhYml0IiwibWVnYWJ5dGUiLCJtZXRlciIsIm1pbGUiLCJtaWxlLXNjYW5kaW5hdmlhbiIs
Im1pbGxpbGl0ZXIiLCJtaWxsaW1ldGVyIiwibWlsbGlzZWNvbmQiLCJtaW51dGUiLCJtb250aCIs
Im91bmNlIiwicGVyY2VudCIsInBldGFieXRlIiwicG91bmQiLCJzZWNvbmQiLCJzdG9uZSIsInRl
cmFiaXQiLCJ0ZXJhYnl0ZSIsIndlZWsiLCJ5YXJkIiwieWVhciJdYCk7CisKK3Nob3VsZFRocm93
KCgpID0+IHsKKyAgICBJbnRsLnN1cHBvcnRlZFZhbHVlc09mKCJpbnZhbGlkIik7Cit9LCBSYW5n
ZUVycm9yKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxlLWluZm8uanMg
Yi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS1pbmZvLmpzCmluZGV4IDA3YzIxYjZlN2YxNzgy
ZGMxZTgyMDlhZjZjMThjZGNjNzYzZWI0MDguLjlkNGNhMDE4NjkyYzEwY2VkNmVhMDYyM2Q4YTFm
MWU3M2NiMjIyOTMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxlLWluZm8u
anMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUtaW5mby5qcwpAQCAtMTcsNyArMTcs
NyBAQCBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiB9CiB7CiAgICAgbGV0
IGxvY2FsZSA9IG5ldyBJbnRsLkxvY2FsZSgiYXIiKQotICAgIHNob3VsZEJlKEpTT04uc3RyaW5n
aWZ5KGxvY2FsZS5jYWxlbmRhcnMpLCBgWyJncmVnb3J5IiwiY29wdGljIiwiaXNsYW1pYyIsImlz
bGFtaWNjIiwiaXNsYW1pYy10YmxhIl1gKTsKKyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShs
b2NhbGUuY2FsZW5kYXJzKSwgYFsiZ3JlZ29yeSIsImNvcHRpYyIsImlzbGFtaWMiLCJpc2xhbWlj
LWNpdmlsIiwiaXNsYW1pYy10YmxhIl1gKTsKICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShs
b2NhbGUuY29sbGF0aW9ucyksIGBbImNvbXBhdCIsImVtb2ppIiwiZW9yIl1gKTsKICAgICBzaG91
bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuaG91ckN5Y2xlcyksIGBbImgxMiJdYCk7CiAgICAg
bGV0IG5zID0gSlNPTi5zdHJpbmdpZnkobG9jYWxlLm51bWJlcmluZ1N5c3RlbXMpOwpAQCAtMjYs
NyArMjYsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiB9CiB7CiAg
ICAgbGV0IGxvY2FsZSA9IG5ldyBJbnRsLkxvY2FsZSgiYXItRUciKQotICAgIHNob3VsZEJlKEpT
T04uc3RyaW5naWZ5KGxvY2FsZS5jYWxlbmRhcnMpLCBgWyJncmVnb3J5IiwiY29wdGljIiwiaXNs
YW1pYyIsImlzbGFtaWNjIiwiaXNsYW1pYy10YmxhIl1gKTsKKyAgICBzaG91bGRCZShKU09OLnN0
cmluZ2lmeShsb2NhbGUuY2FsZW5kYXJzKSwgYFsiZ3JlZ29yeSIsImNvcHRpYyIsImlzbGFtaWMi
LCJpc2xhbWljLWNpdmlsIiwiaXNsYW1pYy10YmxhIl1gKTsKICAgICBzaG91bGRCZShKU09OLnN0
cmluZ2lmeShsb2NhbGUuY29sbGF0aW9ucyksIGBbImNvbXBhdCIsImVtb2ppIiwiZW9yIl1gKTsK
ICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuaG91ckN5Y2xlcyksIGBbImgxMiJd
YCk7CiAgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9jYWxlLm51bWJlcmluZ1N5c3RlbXMp
LCBgWyJhcmFiIl1gKTsKQEAgLTk5LDcgKzk5LDcgQEAgZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFs
LCBleHBlY3RlZCkgewogfQogewogICAgIGxldCBsb2NhbGUgPSBuZXcgSW50bC5Mb2NhbGUoImZh
IikKLSAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuY2FsZW5kYXJzKSwgYFsicGVy
c2lhbiIsImdyZWdvcnkiLCJpc2xhbWljIiwiaXNsYW1pY2MiLCJpc2xhbWljLXRibGEiXWApOwor
ICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5jYWxlbmRhcnMpLCBgWyJwZXJzaWFu
IiwiZ3JlZ29yeSIsImlzbGFtaWMiLCJpc2xhbWljLWNpdmlsIiwiaXNsYW1pYy10YmxhIl1gKTsK
ICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuY29sbGF0aW9ucyksIGBbImVtb2pp
IiwiZW9yIl1gKTsKICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuaG91ckN5Y2xl
cyksIGBbImgyMyJdYCk7CiAgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9jYWxlLm51bWJl
cmluZ1N5c3RlbXMpLCBgWyJhcmFiZXh0Il1gKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436144</attachid>
            <date>2021-08-22 20:04:27 -0700</date>
            <delta_ts>2021-08-22 20:21:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214795-20210822200426.patch</filename>
            <type>text/plain</type>
            <size>42858</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZmE4ZDUxYTY5NTIxODBlZmM0MTYxMjRlMGU5ODM0ZThiZjYwNTg5Li5jN2E4OGZjYTBhZmQ5N2Vi
ODMyNDdhNDRhM2RiNTQ0YjUwOTFiMjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMS0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyBJbnRsIGVudW1lcmF0aW9uIEFQSVsxXSB3aGljaCBpcyBpbiBzdGFnZS0zLgorICAgICAgICBT
dXBwb3J0ZWQga2V5cyBhcmUsICJjYWxlbmRhciIsICJjb2xsYXRpb24iLCAiY3VycmVuY3kiLCAi
bnVtYmVyaW5nU3lzdGVtIiwgInRpbWVab25lIiwgYW5kICJ1bml0Ii4KKworICAgICAgICBbMV06
IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24KKworICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50
bERhdGVUaW1lRm9ybWF0Ojpsb2NhbGVEYXRhKToKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1l
Rm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAqIHJ1bnRpbWUvSW50
bExvY2FsZS5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3Rvcik6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcDoKKyAgICAg
ICAgKEpTQzo6c2FuY3Rpb25lZFNpbXBsZVVuaXRJZGVudGlmaWVyKToKKyAgICAgICAgKiBydW50
aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpJbnRsT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChKU0M6Om1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcpOgorICAg
ICAgICAoSlNDOjphdmFpbGFibGVDYWxlbmRhcnMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVD
b2xsYXRpb25zKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlQ3VycmVuY2llcyk6CisgICAgICAg
IChKU0M6OmF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMpOgorICAgICAgICAoSlNDOjpjYW5vbmlj
YWxpemVUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUpOgorICAgICAgICAoSlNDOjphdmFpbGFi
bGVUaW1lWm9uZXMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVVbml0cyk6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNyZWF0ZUFycmF5
RnJvbVN0cmluZ1ZlY3Rvcik6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIxLTA4LTIyICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIGFscmVhZHktc2hp
cHBlZCBKUyBmZWF0dXJlIGZsYWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3ZGY1NWNm
NDViOTNiYzEzYWUuLmI4ODM4ZTE1ZWYzMDBiOWRkZTUxMGZjNzFmMzIxNmFhYjNmMjVhMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgSW50bCBFbnVtZXJhdGlvbiBBUElzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3OTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0
cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJh
bCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorCiAyMDIxLTA4LTIxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgb3ZlcndyaXRl
Q29kZVBvaW50KCkgaW4gY3JlYXRlQW5kRmlsbEdseXBoUGFnZSgpIGlzIHdyb25nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcApp
bmRleCA0NDUxNzMxZmNkMDMyMWUwZjE5Yjk1NmIyMDI3M2ExMjkyYWZkOWY2Li4xOTkwNTJiMWRk
MTAyMDY5ODZlZWJkMDJjMjhhZDhlN2RkZTM1OTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTE2NSw2ICsxNjUs
OSBAQCBWZWN0b3I8U3RyaW5nPiBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmxvY2FsZURhdGEoY29uc3Qg
U3RyaW5nJiBsb2NhbGUsIFJlbGV2YW50RXh0ZQogICAgICAgICAgICAgQVNTRVJUKFVfU1VDQ0VT
UyhzdGF0dXMpKTsKICAgICAgICAgICAgIFN0cmluZyBjYWxlbmRhciA9IFN0cmluZyhhdmFpbGFi
bGVOYW1lLCBuYW1lTGVuZ3RoKTsKICAgICAgICAgICAgIGtleUxvY2FsZURhdGEuYXBwZW5kKGNh
bGVuZGFyKTsKKyAgICAgICAgICAgIC8vIEFkZGluZyAiaXNsYW1pY2MiIGNhbmRpZGF0ZSBmb3Ig
YmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgICAgIGlmIChjYWxlbmRhciA9PSAiaXNs
YW1pYy1jaXZpbCJfcykKKyAgICAgICAgICAgICAgICBrZXlMb2NhbGVEYXRhLmFwcGVuZCgiaXNs
YW1pY2MiX3MpOwogICAgICAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gbWFwSUNVQ2FsZW5kYXJL
ZXl3b3JkVG9CQ1A0NyhjYWxlbmRhcikpCiAgICAgICAgICAgICAgICAga2V5TG9jYWxlRGF0YS5h
cHBlbmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkpOwogICAgICAgICB9CkBAIC01NzksMTMgKzU4
MiwxMSBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX2NhbGVuZGFyID0gcmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVsZXZhbnRFeHRlbnNpb25LZXk6OkNhKV07Ci0gICAgaWYgKG1fY2FsZW5kYXIgPT0gImdy
ZWdvcmlhbiIpCi0gICAgICAgIG1fY2FsZW5kYXIgPSAiZ3JlZ29yeSJfczsKLSAgICBlbHNlIGlm
IChtX2NhbGVuZGFyID09ICJpc2xhbWljYyIpCi0gICAgICAgIG1fY2FsZW5kYXIgPSAiaXNsYW1p
Yy1jaXZpbCJfczsKLSAgICBlbHNlIGlmIChtX2NhbGVuZGFyID09ICJldGhpb2FhIikKLSAgICAg
ICAgbV9jYWxlbmRhciA9ICJldGhpb3BpYy1hbWV0ZS1hbGVtIl9zOworICAgIFN0cmluZyBjYWxl
bmRhciA9IHJlc29sdmVkLmV4dGVuc2lvbnNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbGV2YW50
RXh0ZW5zaW9uS2V5OjpDYSldOworICAgIGlmIChhdXRvIG1hcHBlZCA9IG1hcEJDUDQ3VG9JQ1VD
YWxlbmRhcktleXdvcmQoY2FsZW5kYXIpKQorICAgICAgICBtX2NhbGVuZGFyID0gV1RGTW92ZSht
YXBwZWQudmFsdWUoKSk7CisgICAgZWxzZQorICAgICAgICBtX2NhbGVuZGFyID0gV1RGTW92ZShj
YWxlbmRhcik7CiAKICAgICBob3VyQ3ljbGUgPSBwYXJzZUhvdXJDeWNsZShyZXNvbHZlZC5leHRl
bnNpb25zW3N0YXRpY19jYXN0PHVuc2lnbmVkPihSZWxldmFudEV4dGVuc2lvbktleTo6SGMpXSk7
CiAgICAgbV9udW1iZXJpbmdTeXN0ZW0gPSByZXNvbHZlZC5leHRlbnNpb25zW3N0YXRpY19jYXN0
PHVuc2lnbmVkPihSZWxldmFudEV4dGVuc2lvbktleTo6TnUpXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAKaW5kZXggOWEwNTkwNzgzODlmZWJiODVhMmYz
M2M0YWY0N2I0MjVjM2RjNDIwNC4uYzNiMjZkZDgyYjU0MGExYWY0NzAyN2Y0NDU5ZDE2MDQ1MmQz
M2Y1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2Fs
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAK
QEAgLTUzNywyMyArNTM3LDYgQEAgVHJpU3RhdGUgSW50bExvY2FsZTo6bnVtZXJpYygpCiAgICAg
cmV0dXJuIG1fbnVtZXJpYzsKIH0KIAotc3RhdGljIGlubGluZSBKU0FycmF5KiBjcmVhdGVBcnJh
eUZyb21TdHJpbmdWZWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVmVjdG9yPFN0
cmluZywgMT4mJiBlbGVtZW50cykKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgSlNBcnJh
eSogcmVzdWx0ID0gSlNBcnJheTo6dHJ5Q3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5U3Ry
dWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhDb250aWd1b3Vz
KSwgZWxlbWVudHMuc2l6ZSgpKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICB0aHJvd091
dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBlbGVtZW50
cy5zaXplKCk7ICsraW5kZXgpIHsKLSAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9i
YWxPYmplY3QsIGluZGV4LCBqc1N0cmluZyh2bSwgV1RGTW92ZShlbGVtZW50c1tpbmRleF0pKSk7
Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgfQotICAgIHJl
dHVybiByZXN1bHQ7Ci19Ci0KIEpTQXJyYXkqIEludGxMb2NhbGU6OmNhbGVuZGFycyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1h
dC5jcHAKaW5kZXggM2Q5OWZiOTFhOWFjYmFiNjVjMDgxZjMzMWQzMTU4NzAzZmI5Zjc0MC4uZmMz
MjM3MDMyMDIyYjRjNmQ2N2RkODE1NTllYzMzNWI1NmJkMGRmZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKQEAgLTE1MSw1OSAr
MTUxLDggQEAgc3RhdGljIHVuc2lnbmVkIGNvbXB1dGVDdXJyZW5jeURpZ2l0cyhjb25zdCBTdHJp
bmcmIGN1cnJlbmN5KQogICAgIHJldHVybiAyOwogfQogCi0vLyBDcmVhdGUgTWVhc3VyZVVuaXQg
bGlrZSBJQ1U0Si4KLXN0cnVjdCBNZWFzdXJlVW5pdCB7Ci0gICAgQVNDSUlMaXRlcmFsIHR5cGU7
Ci0gICAgQVNDSUlMaXRlcmFsIHN1YlR5cGU7Ci19OwotCiBzdGF0aWMgc3RkOjpvcHRpb25hbDxN
ZWFzdXJlVW5pdD4gc2FuY3Rpb25lZFNpbXBsZVVuaXRJZGVudGlmaWVyKFN0cmluZ1ZpZXcgdW5p
dElkZW50aWZpZXIpCiB7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNZWFzdXJlVW5pdCBzaW1wbGVV
bml0c1tdID0gewotICAgICAgICB7ICJhcmVhIl9zLCAiYWNyZSJfcyB9LAotICAgICAgICB7ICJk
aWdpdGFsIl9zLCAiYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJieXRlIl9zIH0s
Ci0gICAgICAgIHsgInRlbXBlcmF0dXJlIl9zLCAiY2Vsc2l1cyJfcyB9LAotICAgICAgICB7ICJs
ZW5ndGgiX3MsICJjZW50aW1ldGVyIl9zIH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAiZGF5
Il9zIH0sCi0gICAgICAgIHsgImFuZ2xlIl9zLCAiZGVncmVlIl9zIH0sCi0gICAgICAgIHsgInRl
bXBlcmF0dXJlIl9zLCAiZmFocmVuaGVpdCJfcyB9LAotICAgICAgICB7ICJ2b2x1bWUiX3MsICJm
bHVpZC1vdW5jZSJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJmb290Il9zIH0sCi0gICAg
ICAgIHsgInZvbHVtZSJfcywgImdhbGxvbiJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAi
Z2lnYWJpdCJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAiZ2lnYWJ5dGUiX3MgfSwKLSAg
ICAgICAgeyAibWFzcyJfcywgImdyYW0iX3MgfSwKLSAgICAgICAgeyAiYXJlYSJfcywgImhlY3Rh
cmUiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJob3VyIl9zIH0sCi0gICAgICAgIHsg
Imxlbmd0aCJfcywgImluY2giX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImtpbG9iaXQi
X3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImtpbG9ieXRlIl9zIH0sCi0gICAgICAgIHsg
Im1hc3MiX3MsICJraWxvZ3JhbSJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJraWxvbWV0
ZXIiX3MgfSwKLSAgICAgICAgeyAidm9sdW1lIl9zLCAibGl0ZXIiX3MgfSwKLSAgICAgICAgeyAi
ZGlnaXRhbCJfcywgIm1lZ2FiaXQiX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgIm1lZ2Fi
eXRlIl9zIH0sCi0gICAgICAgIHsgImxlbmd0aCJfcywgIm1ldGVyIl9zIH0sCi0gICAgICAgIHsg
Imxlbmd0aCJfcywgIm1pbGUiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAibWlsZS1zY2Fu
ZGluYXZpYW4iX3MgfSwKLSAgICAgICAgeyAidm9sdW1lIl9zLCAibWlsbGlsaXRlciJfcyB9LAot
ICAgICAgICB7ICJsZW5ndGgiX3MsICJtaWxsaW1ldGVyIl9zIH0sCi0gICAgICAgIHsgImR1cmF0
aW9uIl9zLCAibWlsbGlzZWNvbmQiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJtaW51
dGUiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJtb250aCJfcyB9LAotICAgICAgICB7
ICJtYXNzIl9zLCAib3VuY2UiX3MgfSwKLSAgICAgICAgeyAiY29uY2VudHIiX3MsICJwZXJjZW50
Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJwZXRhYnl0ZSJfcyB9LAotICAgICAgICB7
ICJtYXNzIl9zLCAicG91bmQiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRpb24iX3MsICJzZWNvbmQi
X3MgfSwKLSAgICAgICAgeyAibWFzcyJfcywgInN0b25lIl9zIH0sCi0gICAgICAgIHsgImRpZ2l0
YWwiX3MsICJ0ZXJhYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJ0ZXJhYnl0ZSJf
cyB9LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgIndlZWsiX3MgfSwKLSAgICAgICAgeyAibGVu
Z3RoIl9zLCAieWFyZCJfcyB9LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgInllYXIiX3MgfSwK
LSAgICB9OwogICAgIEFTU0VSVCgKICAgICAgICAgc3RkOjppc19zb3J0ZWQoc3RkOjpiZWdpbihz
aW1wbGVVbml0cyksIHN0ZDo6ZW5kKHNpbXBsZVVuaXRzKSwKICAgICAgICAgICAgIFtdKGNvbnN0
IE1lYXN1cmVVbml0JiBhLCBjb25zdCBNZWFzdXJlVW5pdCYgYikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCAwM2M5ZDc5ODZmOTVhMDcxYjY5
NTM4OTMzYjgxZDc0NjM0MTEzYzg3Li5kNWMyNmFmZDViNDliYjRiNmZiNTAwYzdjMDdhZDg2YmQ3
YzVmOTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNw
cApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJP
cHRpb25zLmgiCiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CisjaW5jbHVkZSA8dW5pY29kZS91
Y2FsLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91Y29sLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91Zmll
bGRwb3NpdGVyLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+CkBAIC03NSw2ICs3Niw3IEBA
IG5hbWVzcGFjZSBKU0MgewogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxF
KEludGxPYmplY3QpOwogCiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihpbnRsT2Jq
ZWN0RnVuY0dldENhbm9uaWNhbExvY2FsZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oaW50bE9iamVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZik7CiAKIHN0YXRpYyBKU1ZhbHVl
IGNyZWF0ZUNvbGxhdG9yQ29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogewpA
QCAtMTcyLDYgKzE3NCw1MiBAQCB2b2lkIFVGaWVsZFBvc2l0aW9uSXRlcmF0b3JEZWxldGVyOjpv
cGVyYXRvcigpKFVGaWVsZFBvc2l0aW9uSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAgICAgICB1Zmll
bGRwb3NpdGVyX2Nsb3NlKGl0ZXJhdG9yKTsKIH0KIAorY29uc3QgTWVhc3VyZVVuaXQgc2ltcGxl
VW5pdHNbNDNdID0geworICAgIHsgImFyZWEiX3MsICJhY3JlIl9zIH0sCisgICAgeyAiZGlnaXRh
bCJfcywgImJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJieXRlIl9zIH0sCisgICAgeyAi
dGVtcGVyYXR1cmUiX3MsICJjZWxzaXVzIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAiY2VudGlt
ZXRlciJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9zLCAiZGF5Il9zIH0sCisgICAgeyAiYW5nbGUi
X3MsICJkZWdyZWUiX3MgfSwKKyAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImZhaHJlbmhlaXQiX3Mg
fSwKKyAgICB7ICJ2b2x1bWUiX3MsICJmbHVpZC1vdW5jZSJfcyB9LAorICAgIHsgImxlbmd0aCJf
cywgImZvb3QiX3MgfSwKKyAgICB7ICJ2b2x1bWUiX3MsICJnYWxsb24iX3MgfSwKKyAgICB7ICJk
aWdpdGFsIl9zLCAiZ2lnYWJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJnaWdhYnl0ZSJf
cyB9LAorICAgIHsgIm1hc3MiX3MsICJncmFtIl9zIH0sCisgICAgeyAiYXJlYSJfcywgImhlY3Rh
cmUiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgImhvdXIiX3MgfSwKKyAgICB7ICJsZW5ndGgi
X3MsICJpbmNoIl9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImtpbG9iaXQiX3MgfSwKKyAgICB7
ICJkaWdpdGFsIl9zLCAia2lsb2J5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAia2lsb2dyYW0i
X3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJraWxvbWV0ZXIiX3MgfSwKKyAgICB7ICJ2b2x1bWUi
X3MsICJsaXRlciJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYml0Il9zIH0sCisgICAg
eyAiZGlnaXRhbCJfcywgIm1lZ2FieXRlIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAibWV0ZXIi
X3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJtaWxlIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAi
bWlsZS1zY2FuZGluYXZpYW4iX3MgfSwKKyAgICB7ICJ2b2x1bWUiX3MsICJtaWxsaWxpdGVyIl9z
IH0sCisgICAgeyAibGVuZ3RoIl9zLCAibWlsbGltZXRlciJfcyB9LAorICAgIHsgImR1cmF0aW9u
Il9zLCAibWlsbGlzZWNvbmQiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1pbnV0ZSJfcyB9
LAorICAgIHsgImR1cmF0aW9uIl9zLCAibW9udGgiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAib3Vu
Y2UiX3MgfSwKKyAgICB7ICJjb25jZW50ciJfcywgInBlcmNlbnQiX3MgfSwKKyAgICB7ICJkaWdp
dGFsIl9zLCAicGV0YWJ5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAicG91bmQiX3MgfSwKKyAg
ICB7ICJkdXJhdGlvbiJfcywgInNlY29uZCJfcyB9LAorICAgIHsgIm1hc3MiX3MsICJzdG9uZSJf
cyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJ0ZXJhYml0Il9zIH0sCisgICAgeyAiZGlnaXRhbCJf
cywgInRlcmFieXRlIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJ3ZWVrIl9zIH0sCisgICAg
eyAibGVuZ3RoIl9zLCAieWFyZCJfcyB9LAorICAgIHsgImR1cmF0aW9uIl9zLCAieWVhciJfcyB9
LAorfTsKKwogSW50bE9iamVjdDo6SW50bE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQogewpAQCAtMTg0LDcgKzIzMiw3IEBAIElu
dGxPYmplY3QqIEludGxPYmplY3Q6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSoKICAgICByZXR1cm4gb2JqZWN0OwogfQogCi12b2lkIEludGxP
YmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqKQordm9pZCBJbnRs
T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0
cyh2bSwgaW5mbygpKSk7CkBAIC0xOTksNiArMjQ3LDggQEAgdm9pZCBJbnRsT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKCZjcmVhdGVMaXN0Rm9ybWF0Q29uc3RydWN0b3IpOwogI2VuZGlmCisgICAgaWYgKE9wdGlv
bnM6OnVzZUludGxFbnVtZXJhdGlvbigpKQorICAgICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigic3VwcG9ydGVkVmFsdWVzT2YiLCBpbnRsT2JqZWN0RnVuY1N1cHBv
cnRlZFZhbHVlc09mLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMSk7CiB9CiAKIFN0cnVjdHVyZSogSW50bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
CkBAIC0xNDY4LDggKzE1MTgsOCBAQCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbWFwSUNVQ2FsZW5k
YXJLZXl3b3JkVG9CQ1A0Nyhjb25zdCBTdHJpbmcmIGNhbGVuZGFyKQogewogICAgIGlmIChjYWxl
bmRhciA9PSAiZ3JlZ29yaWFuIl9zKQogICAgICAgICByZXR1cm4gImdyZWdvcnkiX3M7Ci0gICAg
aWYgKGNhbGVuZGFyID09ICJpc2xhbWljLWNpdmlsIl9zKQotICAgICAgICByZXR1cm4gImlzbGFt
aWNjIl9zOworICAgIC8vIGlzbGFtaWNjIGlzIGRlcHJlY2F0ZWQgaW4gQkNQNDcsIGFuZCBpc2xh
bWljLWNpdmlsIGlzIHByZWZlcnJlZC4KKyAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdW5pY29k
ZS1vcmcvY2xkci9ibG9iL21hc3Rlci9jb21tb24vYmNwNDcvY2FsZW5kYXIueG1sCiAgICAgaWYg
KGNhbGVuZGFyID09ICJldGhpb3BpYy1hbWV0ZS1hbGVtIl9zKQogICAgICAgICByZXR1cm4gImV0
aGlvYWEiX3M7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAgLTE1MjQsNCArMTU3NCwzMTEg
QEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jR2V0Q2Fub25pY2FsTG9j
YWxlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxv
Y2FsZUFycmF5KTsKIH0KIAorLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVy
YXRpb24vI3NlYy1hdmFpbGFibGVjYWxlbmRhcnMKK3N0YXRpYyBKU0FycmF5KiBhdmFpbGFibGVD
YWxlbmRhcnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworCisgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgYXV0byBl
bnVtZXJhdGlvbiA9IHN0ZDo6dW5pcXVlX3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVu
dW1fY2xvc2U+Pih1Y2FsX2dldEtleXdvcmRWYWx1ZXNGb3JMb2NhbGUoImNhbGVuZGFycyIsICJ1
bmQiLCBmYWxzZSwgJnN0YXR1cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAg
ICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1l
cmF0ZSBhdmFpbGFibGUgY2FsZW5kYXJzIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9
CisKKyAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZz
dGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUg
Y2FsZW5kYXJzIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBWZWN0b3I8
U3RyaW5nLCAxPiBlbGVtZW50czsKKyAgICBlbGVtZW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGNvdW50KTsKKyAgICBmb3IgKGludDMyX3QgaW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2lu
ZGV4KSB7CisgICAgICAgIGludDMyX3QgbGVuZ3RoID0gMDsKKyAgICAgICAgY29uc3QgY2hhciog
cG9pbnRlciA9IHVlbnVtX25leHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMp
OworICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJs
ZSBjYWxlbmRhcnMiX3MpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAg
ICAgICBTdHJpbmcgY2FsZW5kYXIocG9pbnRlciwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKGF1dG8g
bWFwcGVkID0gbWFwSUNVQ2FsZW5kYXJLZXl3b3JkVG9CQ1A0NyhjYWxlbmRhcikpCisgICAgICAg
ICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShjYWxlbmRhcikpOworICAg
IH0KKworICAgIC8vIFRoZSBBdmFpbGFibGVDYWxlbmRhcnMgYWJzdHJhY3Qgb3BlcmF0aW9uIHJl
dHVybnMgYSBMaXN0LCBvcmRlcmVkIGFzIGlmIGFuIEFycmF5IG9mIHRoZSBzYW1lCisgICAgLy8g
dmFsdWVzIGhhZCBiZWVuIHNvcnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBlLnNvcnQlIHVzaW5n
IHVuZGVmaW5lZCBhcyBjb21wYXJlZm4KKyAgICBzdGQ6OnNvcnQoZWxlbWVudHMuYmVnaW4oKSwg
ZWxlbWVudHMuZW5kKCksCisgICAgICAgIFtdKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgU3RyaW5n
JiBiKSB7CisgICAgICAgICAgICByZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21wYXJlKGEsIGIpIDwg
MDsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9y
KGdsb2JhbE9iamVjdCwgV1RGTW92ZShlbGVtZW50cykpOworfQorCisvLyBodHRwczovL3RjMzku
ZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWlsYWJsZWNvbGxhdGlvbnMKK3N0
YXRpYyBKU0FycmF5KiBhdmFpbGFibGVDb2xsYXRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0g
VV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVu
dW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNvbF9nZXRLZXl3b3JkVmFsdWVz
KCJjb2xsYXRpb24iLCAmc3RhdHVzKSk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Cisg
ICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51
bWVyYXRlIGF2YWlsYWJsZSBjb2xsYXRpb25zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICB9CisKKyAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCks
ICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFi
bGUgY29sbGF0aW9ucyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgVmVj
dG9yPFN0cmluZywgMT4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsg
KytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNo
YXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3Rh
dHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFp
bGFibGUgY29sbGF0aW9ucyJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9
CisgICAgICAgIFN0cmluZyBjb2xsYXRpb24ocG9pbnRlciwgbGVuZ3RoKTsKKyAgICAgICAgaWYg
KGNvbGxhdGlvbiA9PSAic3RhbmRhcmQiX3MgfHwgY29sbGF0aW9uID09ICJzZWFyY2giX3MpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gbWFwSUNVQ29s
bGF0aW9uS2V5d29yZFRvQkNQNDcoY29sbGF0aW9uKSkKKyAgICAgICAgICAgIGVsZW1lbnRzLmFw
cGVuZChXVEZNb3ZlKG1hcHBlZC52YWx1ZSgpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGVsZW1lbnRzLmFwcGVuZChXVEZNb3ZlKGNvbGxhdGlvbikpOworICAgIH0KKworICAgIC8vIFRo
ZSBBdmFpbGFibGVDb2xsYXRpb25zIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlzdCwg
b3JkZXJlZCBhcyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQgYmVl
biBzb3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMg
Y29tcGFyZWZuCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgp
LAorICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAg
ICAgICAgcmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0p
OworCisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3Qs
IFdURk1vdmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWlu
dGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGVjdXJyZW5jaWVzCitzdGF0aWMgSlNBcnJheSog
YXZhaWxhYmxlQ3VycmVuY2llcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsK
KyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNV
RGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVjdXJyX29wZW5JU09DdXJyZW5jaWVzKFVDVVJSX0NPTU1P
TiB8IFVDVVJSX05PTl9ERVBSRUNBVEVELCAmc3RhdHVzKSk7CisgICAgaWYgKFVfRkFJTFVSRShz
dGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJm
YWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjdXJyZW5jaWVzIl9zKTsKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVy
YXRpb24uZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAg
ICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1l
cmF0ZSBhdmFpbGFibGUgY3VycmVuY2llcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorCisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5k
ZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAg
ICAgIGNvbnN0IGNoYXIqIGN1cnJlbmN5ID0gdWVudW1fbmV4dChlbnVtZXJhdGlvbi5nZXQoKSwg
Jmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAg
ICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBl
bnVtZXJhdGUgYXZhaWxhYmxlIGN1cnJlbmNpZXMiX3MpOworICAgICAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50cy5jb25zdHJ1Y3RBbmRBcHBlbmQoY3VycmVu
Y3ksIGxlbmd0aCk7CisgICAgfQorCisgICAgLy8gVGhlIEF2YWlsYWJsZUN1cnJlbmNpZXMgYWJz
dHJhY3Qgb3BlcmF0aW9uIHJldHVybnMgYSBMaXN0LCBvcmRlcmVkIGFzIGlmIGFuIEFycmF5IG9m
IHRoZSBzYW1lCisgICAgLy8gdmFsdWVzIGhhZCBiZWVuIHNvcnRlZCB1c2luZyAlQXJyYXkucHJv
dG90eXBlLnNvcnQlIHVzaW5nIHVuZGVmaW5lZCBhcyBjb21wYXJlZm4KKyAgICBzdGQ6OnNvcnQo
ZWxlbWVudHMuYmVnaW4oKSwgZWxlbWVudHMuZW5kKCksCisgICAgICAgIFtdKGNvbnN0IFN0cmlu
ZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7CisgICAgICAgICAgICByZXR1cm4gV1RGOjpjb2RlUG9p
bnRDb21wYXJlKGEsIGIpIDwgMDsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gY3JlYXRlQXJy
YXlGcm9tU3RyaW5nVmVjdG9yKGdsb2JhbE9iamVjdCwgV1RGTW92ZShlbGVtZW50cykpOworfQor
CisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWF2YWls
YWJsZW51bWJlcmluZ3N5c3RlbXMKK3N0YXRpYyBKU0FycmF5KiBhdmFpbGFibGVOdW1iZXJpbmdT
eXN0ZW1zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51
bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVt
X2Nsb3NlPj4odW51bXN5c19vcGVuQXZhaWxhYmxlTmFtZXMoJnN0YXR1cykpOworICAgIGlmIChV
X0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVyaW5nIHN5c3RlbXMi
X3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGludDMyX3QgY291bnQgPSB1
ZW51bV9jb3VudChlbnVtZXJhdGlvbi5nZXQoKSwgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVS
RShzdGF0dXMpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBudW1iZXJpbmcgc3lzdGVtcyJfcyk7Cisg
ICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVu
dHM7CisgICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9y
IChpbnQzMl90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBp
bnQzMl90IGxlbmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIG51bWJlcmluZ1N5c3RlbSA9
IHVlbnVtX25leHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBudW1iZXJp
bmcgc3lzdGVtcyJfcyk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAg
ICAgIGVsZW1lbnRzLmNvbnN0cnVjdEFuZEFwcGVuZChudW1iZXJpbmdTeXN0ZW0sIGxlbmd0aCk7
CisgICAgfQorCisgICAgLy8gVGhlIEF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMgYWJzdHJhY3Qg
b3BlcmF0aW9uIHJldHVybnMgYSBMaXN0LCBvcmRlcmVkIGFzIGlmIGFuIEFycmF5IG9mIHRoZSBz
YW1lCisgICAgLy8gdmFsdWVzIGhhZCBiZWVuIHNvcnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBl
LnNvcnQlIHVzaW5nIHVuZGVmaW5lZCBhcyBjb21wYXJlZm4KKyAgICBzdGQ6OnNvcnQoZWxlbWVu
dHMuYmVnaW4oKSwgZWxlbWVudHMuZW5kKCksCisgICAgICAgIFtdKGNvbnN0IFN0cmluZyYgYSwg
Y29uc3QgU3RyaW5nJiBiKSB7CisgICAgICAgICAgICByZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21w
YXJlKGEsIGIpIDwgMDsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gY3JlYXRlQXJyYXlGcm9t
U3RyaW5nVmVjdG9yKGdsb2JhbE9iamVjdCwgV1RGTW92ZShlbGVtZW50cykpOworfQorCisvLyBo
dHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJhdGlvbi8jc2VjLWNhbm9uaWNhbGl6
ZXRpbWV6b25lbmFtZQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjYW5vbmljYWxpemVU
aW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUoY29uc3QgU3RyaW5nJiB0aW1lWm9uZU5hbWUpCit7
CisgICAgLy8gU29tZSB0aW1lIHpvbmUgbmFtZXMgYXJlIGluY2x1ZGVkIGluIElDVSwgYnV0IHRo
ZXkgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgSUFOQSBUaW1lIFpvbmUgRGF0YWJhc2UuCisgICAg
Ly8gV2UgbmVlZCB0byBmaWx0ZXIgdGhlbSBvdXQuCisgICAgaWYgKHRpbWVab25lTmFtZS5zdGFy
dHNXaXRoKCJTeXN0ZW1WLyIpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlm
ICh0aW1lWm9uZU5hbWUuc3RhcnRzV2l0aCgiRXRjLyIpKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgIC8vIElBTkEgdGltZSB6b25lIG5hbWVzIGluY2x1ZGUgJy8nLiBTb21lIG9m
IHRoZW0gYXJlIG5vdCBpbmNsdWRpbmcsIGJ1dCBpdCBpcyBpbiBiYWNrd2FyZCBsaW5rcy4KKyAg
ICAvLyBBbmQgSUNVIGFscmVhZHkgcmVzb2x2ZWQgdGhlc2UgYmFja3dhcmQgbGlua3MuCisgICAg
aWYgKCF0aW1lWm9uZU5hbWUuY29udGFpbnMoJy8nKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHJldHVybiB0aW1lWm9uZU5hbWU7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5l
cy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxldGltZXpvbmVzCitzdGF0
aWMgSlNBcnJheSogYXZhaWxhYmxlVGltZVpvbmVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9a
RVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1l
cmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9vcGVuVGltZVpvbmVJREVudW1l
cmF0aW9uKFVDQUxfWk9ORV9UWVBFX0NBTk9OSUNBTCwgbnVsbHB0ciwgbnVsbHB0ciwgJnN0YXR1
cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgdGlt
ZXpvbmVzIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpbnQzMl90IGNv
dW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24uZ2V0KCksICZzdGF0dXMpOworICAgIGlmIChV
X0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgdGltZXpvbmVzIl9zKTsKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nLCAxPiBlbGVtZW50
czsKKyAgICBlbGVtZW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvdW50KTsKKyAgICBmb3Ig
KGludDMyX3QgaW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CisgICAgICAgIGlu
dDMyX3QgbGVuZ3RoID0gMDsKKyAgICAgICAgY29uc3QgY2hhciogcG9pbnRlciA9IHVlbnVtX25l
eHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAgICAgICBpZiAoVV9G
QUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSB0aW1lem9uZXMiX3MpOwor
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGltZVpv
bmUocG9pbnRlciwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gY2Fub25pY2Fs
aXplVGltZVpvbmVOYW1lRnJvbUlDVVRpbWVab25lKHRpbWVab25lKSkKKyAgICAgICAgICAgIGVs
ZW1lbnRzLmFwcGVuZChXVEZNb3ZlKG1hcHBlZC52YWx1ZSgpKSk7CisgICAgfQorCisgICAgLy8g
NC4gU29ydCByZXN1bHQgaW4gb3JkZXIgYXMgaWYgYW4gQXJyYXkgb2YgdGhlIHNhbWUgdmFsdWVz
IGhhZCBiZWVuIHNvcnRlZCB1c2luZyAlQXJyYXkucHJvdG90eXBlLnNvcnQlIHVzaW5nIHVuZGVm
aW5lZCBhcyBjb21wYXJlZm4uCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1l
bnRzLmVuZCgpLAorICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikg
eworICAgICAgICAgICAgcmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7Cisg
ICAgICAgIH0pOworCisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9i
YWxPYmplY3QsIFdURk1vdmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3By
b3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGV1bml0cworc3RhdGljIEpTQXJy
YXkqIGF2YWlsYWJsZVVuaXRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKworICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRyeUNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0Fs
bG9jYXRpb24oQXJyYXlXaXRoVW5kZWNpZGVkKSwgc3RkOjpzaXplKHNpbXBsZVVuaXRzKSk7Cisg
ICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIEFTU0VSVCgK
KyAgICAgICAgc3RkOjppc19zb3J0ZWQoc3RkOjpiZWdpbihzaW1wbGVVbml0cyksIHN0ZDo6ZW5k
KHNpbXBsZVVuaXRzKSwKKyAgICAgICAgICAgIFtdKGNvbnN0IE1lYXN1cmVVbml0JiBhLCBjb25z
dCBNZWFzdXJlVW5pdCYgYikgeworICAgICAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQb2lu
dENvbXBhcmUoU3RyaW5nVmlldyhhLnN1YlR5cGUpLCBTdHJpbmdWaWV3KGIuc3ViVHlwZSkpIDwg
MDsKKyAgICAgICAgICAgIH0pKTsKKworICAgIGludDMyX3QgaW5kZXggPSAwOworICAgIGZvciAo
Y29uc3QgTWVhc3VyZVVuaXQmIHVuaXQgOiBzaW1wbGVVbml0cykgeworICAgICAgICByZXN1bHQt
PnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgrKywganNTdHJpbmcodm0sIFN0cmlu
Z0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHVuaXQuc3ViVHlwZSkpKTsKKyAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1pbnRs
LnN1cHBvcnRlZHZhbHVlc29mCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1
bmNTdXBwb3J0ZWRWYWx1ZXNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgU3RyaW5nIGtl
eSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgaWYgKGtleSA9PSAiY2Fs
ZW5kYXIiX3MpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKGF2YWlsYWJsZUNhbGVuZGFycyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBpZiAoa2V5ID09
ICJjb2xsYXRpb24iX3MpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGF2YWlsYWJsZUNvbGxhdGlvbnMoZ2xvYmFsT2JqZWN0KSkpOworCisgICAgaWYg
KGtleSA9PSAiY3VycmVuY3kiX3MpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGF2YWlsYWJsZUN1cnJlbmNpZXMoZ2xvYmFsT2JqZWN0KSkpOworCisg
ICAgaWYgKGtleSA9PSAibnVtYmVyaW5nU3lzdGVtIl9zKQorICAgICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVOdW1iZXJpbmdTeXN0ZW1zKGds
b2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkgPT0gInRpbWVab25lIl9zKQorICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVUaW1lWm9u
ZXMoZ2xvYmFsT2JqZWN0KSkpOworCisgICAgaWYgKGtleSA9PSAidW5pdCJfcykKKyAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoYXZhaWxhYmxlVW5pdHMo
Z2xvYmFsT2JqZWN0KSkpOworCisgICAgdGhyb3dSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsICJVbmtub3duIGtleSBmb3IgSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZiJfcyk7CisgICAgcmV0
dXJuIHsgfTsKK30KKworSlNBcnJheSogY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZlY3RvcjxTdHJpbmcsIDE+JiYgZWxlbWVudHMpCit7
CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRy
eUNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1
cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQ29udGlndW91cyksIGVsZW1lbnRzLnNpemUoKSk7Cisg
ICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgZm9yICh1
bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudHMuc2l6ZSgpOyArK2luZGV4KSB7Cisg
ICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCwganNTdHJp
bmcodm0sIFdURk1vdmUoZWxlbWVudHNbaW5kZXhdKSkpOworICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
aAppbmRleCBjYzAxZjZjYWRkNDEwNWZlNTM4OGNhNzg3OWUwMDQxYTk1ZjA1MWNjLi5kYzY5NmQ2
NWZhNWM2MzYzMjJhNmM1MTRmOGIwMDc4NGRlZjJmYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBAIC02MCw2ICs2MCwxMyBAQCBKU0NfSU5UTF9SRUxF
VkFOVF9FWFRFTlNJT05fS0VZUyhKU0NfREVDTEFSRV9JTlRMX1JFTEVWQU5UX0VYVEVOU0lPTl9L
RVlTKQogc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IG51bWJlck9mUmVsZXZhbnRFeHRlbnNpb25L
ZXlzID0gMCBKU0NfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05fS0VZUyhKU0NfQ09VTlRfSU5UTF9S
RUxFVkFOVF9FWFRFTlNJT05fS0VZUyk7CiAjdW5kZWYgSlNDX0NPVU5UX0lOVExfUkVMRVZBTlRf
RVhURU5TSU9OX0tFWVMKIAorc3RydWN0IE1lYXN1cmVVbml0IHsKKyAgICBBU0NJSUxpdGVyYWwg
dHlwZTsKKyAgICBBU0NJSUxpdGVyYWwgc3ViVHlwZTsKK307CisKK2V4dGVybiBKU19FWFBPUlRf
UFJJVkFURSBjb25zdCBNZWFzdXJlVW5pdCBzaW1wbGVVbml0c1s0M107CisKIGNsYXNzIEludGxP
YmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNp
bmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7CkBAIC0xNDEsNCArMTQ4LDYgQEAgc3RkOjpvcHRp
b25hbDxTdHJpbmc+IG1hcElDVUNvbGxhdGlvbktleXdvcmRUb0JDUDQ3KGNvbnN0IFN0cmluZyYp
Owogc3RkOjpvcHRpb25hbDxTdHJpbmc+IG1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcoY29u
c3QgU3RyaW5nJik7CiBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbWFwQkNQNDdUb0lDVUNhbGVuZGFy
S2V5d29yZChjb25zdCBTdHJpbmcmKTsKIAorSlNBcnJheSogY3JlYXRlQXJyYXlGcm9tU3RyaW5n
VmVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgVmVjdG9yPFN0cmluZywgMT4mJik7CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9uc0xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgK
aW5kZXggZjQ1YjZlZWI2YjkwM2ZkOTkxZjQ3OTFjNmI0YmNmZTIwYzk3ZjVmNS4uNzg1OTg0NGY3
MTUwMDBhNWI1YTMxNmRhNzBkMDMxMGNhZWIzYTRlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zTGlzdC5oCkBAIC01NDQsNiArNTQ0LDcgQEAgYm9vbCBjYW5Vc2VX
ZWJBc3NlbWJseUZhc3RNZW1vcnkoKTsKICAgICB2KEJvb2wsIHVzZURhdGFJQ1NoYXJpbmcsIGZh
bHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIHVzZVRlbXBvcmFsLCBmYWxzZSwg
Tm9ybWFsLCAiRXhwb3NlIHRoZSBUZW1wb3JhbCBvYmplY3QuIikgXAogICAgIHYoQm9vbCwgdXNl
QXJyYXlGaW5kTGFzdE1ldGhvZCwgdHJ1ZSwgTm9ybWFsLCAiRXhwb3NlIHRoZSBmaW5kTGFzdCgp
IGFuZCBmaW5kTGFzdEluZGV4KCkgbWV0aG9kcyBvbiBBcnJheSBhbmQgJVR5cGVkQXJyYXklLiIp
IFwKKyAgICB2KEJvb2wsIHVzZUludGxFbnVtZXJhdGlvbiwgdHJ1ZSwgTm9ybWFsLCAiRXhwb3Nl
IHRoZSBJbnRsIGVudW1lcmF0aW9uIEFQSXMuIikgXAogCiAKIGVudW0gT3B0aW9uRXF1aXZhbGVu
Y2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggN2QzZjM0NjMxYWM4ZTc5NzVl
OWY0NDg3MzU1M2NlZjFlZDc4ZDAzZi4uNzRmNTY5ODgyZTZkNDY5NDk4M2Y3MTkwYTE3NzAyMTZk
YTI2Y2M4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0xNjMsNiArMTYzLDEx
IEBAIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBj
aGFyKiBjaGFyYWN0ZXJzKQogICAgIHJldHVybiBjcmVhdGVGcm9tTGl0ZXJhbChjaGFyYWN0ZXJz
LCBzdHJsZW4oY2hhcmFjdGVycykpOwogfQogCitSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
Y3JlYXRlRnJvbUxpdGVyYWwoQVNDSUlMaXRlcmFsIGxpdGVyYWwpCit7CisgICAgcmV0dXJuIGNy
ZWF0ZUZyb21MaXRlcmFsKGxpdGVyYWwuY2hhcmFjdGVycygpLCBsaXRlcmFsLmxlbmd0aCgpKTsK
K30KKwogUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGNv
bnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5n
dGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDQyMDNjMWM4MjU0MWE5ZDg3ZDdiNWIw
ZmJiNzQ4YjE2YWNhNTg4NWUuLmFkYTlkNDFiMDJhODk0NmRiNzMxZmFhZmI5ZGVjNjdhY2FmZTVk
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlMaXRl
cmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ29udmVyc2lvbk1vZGUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb21tb24u
aD4KQEAgLTI0OSw2ICsyNTAsNyBAQCBjbGFzcyBTdHJpbmdJbXBsIDogcHJpdmF0ZSBTdHJpbmdJ
bXBsU2hhcGUgewogICAgIC8vIEZJWE1FOiBSZXBsYWNlIGNhbGxzIHRvIHRoZXNlIG92ZXJsb2Fk
cyBvZiBjcmVhdGVGcm9tTGl0ZXJhbCB0byBjcmVhdGVXaXRob3V0Q29weWluZyBpbnN0ZWFkLgog
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21M
aXRlcmFsKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0ZUZyb21MaXRlcmFsKGNvbnN0IGNoYXIq
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVG
cm9tTGl0ZXJhbChBU0NJSUxpdGVyYWwpOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlV2l0aG91dENvcHlpbmcoY29uc3QgVUNoYXIqLCB1bnNp
Z25lZCBsZW5ndGgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0lt
cGw+IGNyZWF0ZVdpdGhvdXRDb3B5aW5nKGNvbnN0IExDaGFyKiwgdW5zaWduZWQgbGVuZ3RoKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZDkzNTA0Yjg0NWRkOTE3MmM2NzJjYWM4NjllMmM3NTM1ZTgxZmVkZC4uMDUxNmJjZDZkMTQ0NGY4
ZDI2OWM0NDdiODEyYzIwMTM4MDM1NTRkMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOC0yMiAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRs
IEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3RyZXNzL2ludGwtZW51bWVyYXRpb24uanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAqIHN0cmVzcy9pbnRs
LWxvY2FsZS1pbmZvLmpzOgorICAgICAgICAobGV0LmwubmV3LkludGwuTG9jYWxlLnNob3VsZEJl
KToKKyAgICAgICAgKHNob3VsZEJlKToKKwogMjAyMS0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSBhbHJlYWR5LXNoaXBwZWQg
SlMgZmVhdHVyZSBmbGFncwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1lbnVtZXJh
dGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51bWVyYXRpb24uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2NlMjA1NDEzNTZkY2NlNTZjN2ZmNWUzYjZjNDM1ZjhiMjM4OGU4OQotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51bWVyYXRpb24uanMKQEAgLTAsMCArMSwzOSBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7ZXhwZWN0ZWR9
IGJ1dCBnb3QgJHthY3R1YWx9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVy
cm9yVHlwZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEo
ZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4
cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9IWApOworfQorCitsZXQgY2FsZW5kYXJzID0gSW50bC5z
dXBwb3J0ZWRWYWx1ZXNPZigiY2FsZW5kYXIiKTsKK3Nob3VsZEJlKEpTT04uc3RyaW5naWZ5KGNh
bGVuZGFycyksIGBbImJ1ZGRoaXN0IiwiY2hpbmVzZSIsImNvcHRpYyIsImRhbmdpIiwiZXRoaW9h
YSIsImV0aGlvcGljIiwiZ3JlZ29yeSIsImhlYnJldyIsImluZGlhbiIsImlzbGFtaWMiLCJpc2xh
bWljLWNpdmlsIiwiaXNsYW1pYy1yZ3NhIiwiaXNsYW1pYy10YmxhIiwiaXNsYW1pYy11bWFscXVy
YSIsImlzbzg2MDEiLCJqYXBhbmVzZSIsInBlcnNpYW4iLCJyb2MiXWApOworCitsZXQgY29sbGF0
aW9ucyA9IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoImNvbGxhdGlvbiIpOworc2hvdWxkQmUoSlNP
Ti5zdHJpbmdpZnkoY29sbGF0aW9ucyksIGBbImJpZzVoYW4iLCJjb21wYXQiLCJkaWN0IiwiZ2Iy
MzEyIiwicGhvbmViayIsInBob25ldGljIiwicGlueWluIiwicmVmb3JtZWQiLCJzZWFyY2hqbCIs
InN0cm9rZSIsInRyYWQiLCJ1bmloYW4iLCJ6aHV5aW4iXWApOworCitsZXQgY3VycmVuY2llcyA9
IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoImN1cnJlbmN5Iik7CitzaG91bGRCZShKU09OLnN0cmlu
Z2lmeShjdXJyZW5jaWVzKSwgYFsiQUVEIiwiQUZOIiwiQUxMIiwiQU1EIiwiQU5HIiwiQU9BIiwi
QVJTIiwiQVVEIiwiQVdHIiwiQVpOIiwiQkFNIiwiQkJEIiwiQkRUIiwiQkdOIiwiQkhEIiwiQklG
IiwiQk1EIiwiQk5EIiwiQk9CIiwiQlJMIiwiQlNEIiwiQlROIiwiQldQIiwiQllOIiwiQlpEIiwi
Q0FEIiwiQ0RGIiwiQ0hGIiwiQ0xQIiwiQ05ZIiwiQ09QIiwiQ1JDIiwiQ1VDIiwiQ1VQIiwiQ1ZF
IiwiQ1pLIiwiREpGIiwiREtLIiwiRE9QIiwiRFpEIiwiRUdQIiwiRVJOIiwiRVRCIiwiRVVSIiwi
RkpEIiwiRktQIiwiR0JQIiwiR0VMIiwiR0hTIiwiR0lQIiwiR01EIiwiR05GIiwiR1RRIiwiR1lE
IiwiSEtEIiwiSE5MIiwiSFJLIiwiSFRHIiwiSFVGIiwiSURSIiwiSUxTIiwiSU5SIiwiSVFEIiwi
SVJSIiwiSVNLIiwiSk1EIiwiSk9EIiwiSlBZIiwiS0VTIiwiS0dTIiwiS0hSIiwiS01GIiwiS1BX
IiwiS1JXIiwiS1dEIiwiS1lEIiwiS1pUIiwiTEFLIiwiTEJQIiwiTEtSIiwiTFJEIiwiTFNMIiwi
TFlEIiwiTUFEIiwiTURMIiwiTUdBIiwiTUtEIiwiTU1LIiwiTU5UIiwiTU9QIiwiTVJVIiwiTVVS
IiwiTVZSIiwiTVdLIiwiTVhOIiwiTVlSIiwiTVpOIiwiTkFEIiwiTkdOIiwiTklPIiwiTk9LIiwi
TlBSIiwiTlpEIiwiT01SIiwiUEFCIiwiUEVOIiwiUEdLIiwiUEhQIiwiUEtSIiwiUExOIiwiUFlH
IiwiUUFSIiwiUk9OIiwiUlNEIiwiUlVCIiwiUldGIiwiU0FSIiwiU0JEIiwiU0NSIiwiU0RHIiwi
U0VLIiwiU0dEIiwiU0hQIiwiU0xMIiwiU09TIiwiU1JEIiwiU1NQIiwiU1ROIiwiU1lQIiwiU1pM
IiwiVEhCIiwiVEpTIiwiVE1UIiwiVE5EIiwiVE9QIiwiVFJZIiwiVFREIiwiVFdEIiwiVFpTIiwi
VUFIIiwiVUdYIiwiVVNEIiwiVVlVIiwiVVpTIiwiVkVGIiwiVk5EIiwiVlVWIiwiV1NUIiwiWEFG
IiwiWENEIiwiWE9GIiwiWFBGIiwiWUVSIiwiWkFSIiwiWk1XIl1gKTsKKworbGV0IG51bWJlcmlu
Z1N5c3RlbXMgPSBJbnRsLnN1cHBvcnRlZFZhbHVlc09mKCJudW1iZXJpbmdTeXN0ZW0iKTsKK2xl
dCBudW1iZXJpbmdTeXN0ZW1zU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkobnVtYmVyaW5nU3lzdGVt
cyk7CitzaG91bGRCZShudW1iZXJpbmdTeXN0ZW1zU3RyaW5nID09PSBgWyJhZGxtIiwiYWhvbSIs
ImFyYWIiLCJhcmFiZXh0IiwiYXJtbiIsImFybW5sb3ciLCJiYWxpIiwiYmVuZyIsImJoa3MiLCJi
cmFoIiwiY2FrbSIsImNoYW0iLCJjeXJsIiwiZGV2YSIsImRpYWsiLCJldGhpIiwiZnVsbHdpZGUi
LCJnZW9yIiwiZ29uZyIsImdvbm0iLCJncmVrIiwiZ3Jla2xvdyIsImd1anIiLCJndXJ1IiwiaGFu
aWRheXMiLCJoYW5pZGVjIiwiaGFucyIsImhhbnNmaW4iLCJoYW50IiwiaGFudGZpbiIsImhlYnIi
LCJobW5nIiwiaG1ucCIsImphdmEiLCJqcGFuIiwianBhbmZpbiIsImpwYW55ZWFyIiwia2FsaSIs
ImtobXIiLCJrbmRhIiwibGFuYSIsImxhbmF0aGFtIiwibGFvbyIsImxhdG4iLCJsZXBjIiwibGlt
YiIsIm1hdGhib2xkIiwibWF0aGRibCIsIm1hdGhtb25vIiwibWF0aHNhbmIiLCJtYXRoc2FucyIs
Im1seW0iLCJtb2RpIiwibW9uZyIsIm1yb28iLCJtdGVpIiwibXltciIsIm15bXJzaGFuIiwibXlt
cnRsbmciLCJuZXdhIiwibmtvbyIsIm9sY2siLCJvcnlhIiwib3NtYSIsInJvaGciLCJyb21hbiIs
InJvbWFubG93Iiwic2F1ciIsInNlZ21lbnQiLCJzaHJkIiwic2luZCIsInNpbmgiLCJzb3JhIiwi
c3VuZCIsInRha3IiLCJ0YWx1IiwidGFtbCIsInRhbWxkZWMiLCJ0ZWx1IiwidGhhaSIsInRpYnQi
LCJ0aXJoIiwidmFpaSIsIndhcmEiLCJ3Y2hvIl1gIHx8IG51bWJlcmluZ1N5c3RlbXNTdHJpbmcg
PT09IGBbImFkbG0iLCJhaG9tIiwiYXJhYiIsImFyYWJleHQiLCJhcm1uIiwiYXJtbmxvdyIsImJh
bGkiLCJiZW5nIiwiYmhrcyIsImJyYWgiLCJjYWttIiwiY2hhbSIsImN5cmwiLCJkZXZhIiwiZXRo
aSIsImZ1bGx3aWRlIiwiZ2VvciIsImdvbmciLCJnb25tIiwiZ3JlayIsImdyZWtsb3ciLCJndWpy
IiwiZ3VydSIsImhhbmlkYXlzIiwiaGFuaWRlYyIsImhhbnMiLCJoYW5zZmluIiwiaGFudCIsImhh
bnRmaW4iLCJoZWJyIiwiaG1uZyIsImhtbnAiLCJqYXZhIiwianBhbiIsImpwYW5maW4iLCJqcGFu
eWVhciIsImthbGkiLCJraG1yIiwia25kYSIsImxhbmEiLCJsYW5hdGhhbSIsImxhb28iLCJsYXRu
IiwibGVwYyIsImxpbWIiLCJtYXRoYm9sZCIsIm1hdGhkYmwiLCJtYXRobW9ubyIsIm1hdGhzYW5i
IiwibWF0aHNhbnMiLCJtbHltIiwibW9kaSIsIm1vbmciLCJtcm9vIiwibXRlaSIsIm15bXIiLCJt
eW1yc2hhbiIsIm15bXJ0bG5nIiwibmV3YSIsIm5rb28iLCJvbGNrIiwib3J5YSIsIm9zbWEiLCJy
b2hnIiwicm9tYW4iLCJyb21hbmxvdyIsInNhdXIiLCJzaHJkIiwic2luZCIsInNpbmgiLCJzb3Jh
Iiwic3VuZCIsInRha3IiLCJ0YWx1IiwidGFtbCIsInRhbWxkZWMiLCJ0ZWx1IiwidGhhaSIsInRp
YnQiLCJ0aXJoIiwidmFpaSIsIndhcmEiLCJ3Y2hvIl1gLCB0cnVlKTsKKworbGV0IHRpbWVab25l
cyA9IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoInRpbWVab25lIik7CitzaG91bGRCZShKU09OLnN0
cmluZ2lmeSh0aW1lWm9uZXMpLCBgWyJBZnJpY2EvQWJpZGphbiIsIkFmcmljYS9BY2NyYSIsIkFm
cmljYS9BZGRpc19BYmFiYSIsIkFmcmljYS9BbGdpZXJzIiwiQWZyaWNhL0FzbWVyYSIsIkFmcmlj
YS9CYW1ha28iLCJBZnJpY2EvQmFuZ3VpIiwiQWZyaWNhL0Jhbmp1bCIsIkFmcmljYS9CaXNzYXUi
LCJBZnJpY2EvQmxhbnR5cmUiLCJBZnJpY2EvQnJhenphdmlsbGUiLCJBZnJpY2EvQnVqdW1idXJh
IiwiQWZyaWNhL0NhaXJvIiwiQWZyaWNhL0Nhc2FibGFuY2EiLCJBZnJpY2EvQ2V1dGEiLCJBZnJp
Y2EvQ29uYWtyeSIsIkFmcmljYS9EYWthciIsIkFmcmljYS9EYXJfZXNfU2FsYWFtIiwiQWZyaWNh
L0RqaWJvdXRpIiwiQWZyaWNhL0RvdWFsYSIsIkFmcmljYS9FbF9BYWl1biIsIkFmcmljYS9GcmVl
dG93biIsIkFmcmljYS9HYWJvcm9uZSIsIkFmcmljYS9IYXJhcmUiLCJBZnJpY2EvSm9oYW5uZXNi
dXJnIiwiQWZyaWNhL0p1YmEiLCJBZnJpY2EvS2FtcGFsYSIsIkFmcmljYS9LaGFydG91bSIsIkFm
cmljYS9LaWdhbGkiLCJBZnJpY2EvS2luc2hhc2EiLCJBZnJpY2EvTGFnb3MiLCJBZnJpY2EvTGli
cmV2aWxsZSIsIkFmcmljYS9Mb21lIiwiQWZyaWNhL0x1YW5kYSIsIkFmcmljYS9MdWJ1bWJhc2hp
IiwiQWZyaWNhL0x1c2FrYSIsIkFmcmljYS9NYWxhYm8iLCJBZnJpY2EvTWFwdXRvIiwiQWZyaWNh
L01hc2VydSIsIkFmcmljYS9NYmFiYW5lIiwiQWZyaWNhL01vZ2FkaXNodSIsIkFmcmljYS9Nb25y
b3ZpYSIsIkFmcmljYS9OYWlyb2JpIiwiQWZyaWNhL05kamFtZW5hIiwiQWZyaWNhL05pYW1leSIs
IkFmcmljYS9Ob3Vha2Nob3R0IiwiQWZyaWNhL091YWdhZG91Z291IiwiQWZyaWNhL1BvcnRvLU5v
dm8iLCJBZnJpY2EvU2FvX1RvbWUiLCJBZnJpY2EvVHJpcG9saSIsIkFmcmljYS9UdW5pcyIsIkFm
cmljYS9XaW5kaG9layIsIkFtZXJpY2EvQWRhayIsIkFtZXJpY2EvQW5jaG9yYWdlIiwiQW1lcmlj
YS9Bbmd1aWxsYSIsIkFtZXJpY2EvQW50aWd1YSIsIkFtZXJpY2EvQXJhZ3VhaW5hIiwiQW1lcmlj
YS9BcmdlbnRpbmEvTGFfUmlvamEiLCJBbWVyaWNhL0FyZ2VudGluYS9SaW9fR2FsbGVnb3MiLCJB
bWVyaWNhL0FyZ2VudGluYS9TYWx0YSIsIkFtZXJpY2EvQXJnZW50aW5hL1Nhbl9KdWFuIiwiQW1l
cmljYS9BcmdlbnRpbmEvU2FuX0x1aXMiLCJBbWVyaWNhL0FyZ2VudGluYS9UdWN1bWFuIiwiQW1l
cmljYS9BcmdlbnRpbmEvVXNodWFpYSIsIkFtZXJpY2EvQXJ1YmEiLCJBbWVyaWNhL0FzdW5jaW9u
IiwiQW1lcmljYS9CYWhpYSIsIkFtZXJpY2EvQmFoaWFfQmFuZGVyYXMiLCJBbWVyaWNhL0JhcmJh
ZG9zIiwiQW1lcmljYS9CZWxlbSIsIkFtZXJpY2EvQmVsaXplIiwiQW1lcmljYS9CbGFuYy1TYWJs
b24iLCJBbWVyaWNhL0JvYV9WaXN0YSIsIkFtZXJpY2EvQm9nb3RhIiwiQW1lcmljYS9Cb2lzZSIs
IkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwiQW1lcmljYS9DYW1icmlkZ2VfQmF5IiwiQW1lcmljYS9D
YW1wb19HcmFuZGUiLCJBbWVyaWNhL0NhbmN1biIsIkFtZXJpY2EvQ2FyYWNhcyIsIkFtZXJpY2Ev
Q2F0YW1hcmNhIiwiQW1lcmljYS9DYXllbm5lIiwiQW1lcmljYS9DYXltYW4iLCJBbWVyaWNhL0No
aWNhZ28iLCJBbWVyaWNhL0NoaWh1YWh1YSIsIkFtZXJpY2EvQ29yYWxfSGFyYm91ciIsIkFtZXJp
Y2EvQ29yZG9iYSIsIkFtZXJpY2EvQ29zdGFfUmljYSIsIkFtZXJpY2EvQ3Jlc3RvbiIsIkFtZXJp
Y2EvQ3VpYWJhIiwiQW1lcmljYS9DdXJhY2FvIiwiQW1lcmljYS9EYW5tYXJrc2hhdm4iLCJBbWVy
aWNhL0Rhd3NvbiIsIkFtZXJpY2EvRGF3c29uX0NyZWVrIiwiQW1lcmljYS9EZW52ZXIiLCJBbWVy
aWNhL0RldHJvaXQiLCJBbWVyaWNhL0RvbWluaWNhIiwiQW1lcmljYS9FZG1vbnRvbiIsIkFtZXJp
Y2EvRWlydW5lcGUiLCJBbWVyaWNhL0VsX1NhbHZhZG9yIiwiQW1lcmljYS9Gb3J0X05lbHNvbiIs
IkFtZXJpY2EvRm9ydGFsZXphIiwiQW1lcmljYS9HbGFjZV9CYXkiLCJBbWVyaWNhL0dvZHRoYWIi
LCJBbWVyaWNhL0dvb3NlX0JheSIsIkFtZXJpY2EvR3JhbmRfVHVyayIsIkFtZXJpY2EvR3JlbmFk
YSIsIkFtZXJpY2EvR3VhZGVsb3VwZSIsIkFtZXJpY2EvR3VhdGVtYWxhIiwiQW1lcmljYS9HdWF5
YXF1aWwiLCJBbWVyaWNhL0d1eWFuYSIsIkFtZXJpY2EvSGFsaWZheCIsIkFtZXJpY2EvSGF2YW5h
IiwiQW1lcmljYS9IZXJtb3NpbGxvIiwiQW1lcmljYS9JbmRpYW5hL0tub3giLCJBbWVyaWNhL0lu
ZGlhbmEvTWFyZW5nbyIsIkFtZXJpY2EvSW5kaWFuYS9QZXRlcnNidXJnIiwiQW1lcmljYS9JbmRp
YW5hL1RlbGxfQ2l0eSIsIkFtZXJpY2EvSW5kaWFuYS9WZXZheSIsIkFtZXJpY2EvSW5kaWFuYS9W
aW5jZW5uZXMiLCJBbWVyaWNhL0luZGlhbmEvV2luYW1hYyIsIkFtZXJpY2EvSW5kaWFuYXBvbGlz
IiwiQW1lcmljYS9JbnV2aWsiLCJBbWVyaWNhL0lxYWx1aXQiLCJBbWVyaWNhL0phbWFpY2EiLCJB
bWVyaWNhL0p1anV5IiwiQW1lcmljYS9KdW5lYXUiLCJBbWVyaWNhL0tlbnR1Y2t5L01vbnRpY2Vs
bG8iLCJBbWVyaWNhL0tyYWxlbmRpamsiLCJBbWVyaWNhL0xhX1BheiIsIkFtZXJpY2EvTGltYSIs
IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCJBbWVyaWNhL0xvdWlzdmlsbGUiLCJBbWVyaWNhL0xvd2Vy
X1ByaW5jZXMiLCJBbWVyaWNhL01hY2VpbyIsIkFtZXJpY2EvTWFuYWd1YSIsIkFtZXJpY2EvTWFu
YXVzIiwiQW1lcmljYS9NYXJpZ290IiwiQW1lcmljYS9NYXJ0aW5pcXVlIiwiQW1lcmljYS9NYXRh
bW9yb3MiLCJBbWVyaWNhL01hemF0bGFuIiwiQW1lcmljYS9NZW5kb3phIiwiQW1lcmljYS9NZW5v
bWluZWUiLCJBbWVyaWNhL01lcmlkYSIsIkFtZXJpY2EvTWV0bGFrYXRsYSIsIkFtZXJpY2EvTWV4
aWNvX0NpdHkiLCJBbWVyaWNhL01pcXVlbG9uIiwiQW1lcmljYS9Nb25jdG9uIiwiQW1lcmljYS9N
b250ZXJyZXkiLCJBbWVyaWNhL01vbnRldmlkZW8iLCJBbWVyaWNhL01vbnRyZWFsIiwiQW1lcmlj
YS9Nb250c2VycmF0IiwiQW1lcmljYS9OYXNzYXUiLCJBbWVyaWNhL05ld19Zb3JrIiwiQW1lcmlj
YS9OaXBpZ29uIiwiQW1lcmljYS9Ob21lIiwiQW1lcmljYS9Ob3JvbmhhIiwiQW1lcmljYS9Ob3J0
aF9EYWtvdGEvQmV1bGFoIiwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvQ2VudGVyIiwiQW1lcmljYS9O
b3J0aF9EYWtvdGEvTmV3X1NhbGVtIiwiQW1lcmljYS9PamluYWdhIiwiQW1lcmljYS9QYW5hbWEi
LCJBbWVyaWNhL1BhbmduaXJ0dW5nIiwiQW1lcmljYS9QYXJhbWFyaWJvIiwiQW1lcmljYS9QaG9l
bml4IiwiQW1lcmljYS9Qb3J0LWF1LVByaW5jZSIsIkFtZXJpY2EvUG9ydF9vZl9TcGFpbiIsIkFt
ZXJpY2EvUG9ydG9fVmVsaG8iLCJBbWVyaWNhL1B1ZXJ0b19SaWNvIiwiQW1lcmljYS9QdW50YV9B
cmVuYXMiLCJBbWVyaWNhL1JhaW55X1JpdmVyIiwiQW1lcmljYS9SYW5raW5fSW5sZXQiLCJBbWVy
aWNhL1JlY2lmZSIsIkFtZXJpY2EvUmVnaW5hIiwiQW1lcmljYS9SZXNvbHV0ZSIsIkFtZXJpY2Ev
UmlvX0JyYW5jbyIsIkFtZXJpY2EvU2FudGFfSXNhYmVsIiwiQW1lcmljYS9TYW50YXJlbSIsIkFt
ZXJpY2EvU2FudGlhZ28iLCJBbWVyaWNhL1NhbnRvX0RvbWluZ28iLCJBbWVyaWNhL1Nhb19QYXVs
byIsIkFtZXJpY2EvU2NvcmVzYnlzdW5kIiwiQW1lcmljYS9TaXRrYSIsIkFtZXJpY2EvU3RfQmFy
dGhlbGVteSIsIkFtZXJpY2EvU3RfSm9obnMiLCJBbWVyaWNhL1N0X0tpdHRzIiwiQW1lcmljYS9T
dF9MdWNpYSIsIkFtZXJpY2EvU3RfVGhvbWFzIiwiQW1lcmljYS9TdF9WaW5jZW50IiwiQW1lcmlj
YS9Td2lmdF9DdXJyZW50IiwiQW1lcmljYS9UZWd1Y2lnYWxwYSIsIkFtZXJpY2EvVGh1bGUiLCJB
bWVyaWNhL1RodW5kZXJfQmF5IiwiQW1lcmljYS9UaWp1YW5hIiwiQW1lcmljYS9Ub3JvbnRvIiwi
QW1lcmljYS9Ub3J0b2xhIiwiQW1lcmljYS9WYW5jb3V2ZXIiLCJBbWVyaWNhL1doaXRlaG9yc2Ui
LCJBbWVyaWNhL1dpbm5pcGVnIiwiQW1lcmljYS9ZYWt1dGF0IiwiQW1lcmljYS9ZZWxsb3drbmlm
ZSIsIkFudGFyY3RpY2EvQ2FzZXkiLCJBbnRhcmN0aWNhL0RhdmlzIiwiQW50YXJjdGljYS9EdW1v
bnREVXJ2aWxsZSIsIkFudGFyY3RpY2EvTWFjcXVhcmllIiwiQW50YXJjdGljYS9NYXdzb24iLCJB
bnRhcmN0aWNhL01jTXVyZG8iLCJBbnRhcmN0aWNhL1BhbG1lciIsIkFudGFyY3RpY2EvUm90aGVy
YSIsIkFudGFyY3RpY2EvU3lvd2EiLCJBbnRhcmN0aWNhL1Ryb2xsIiwiQW50YXJjdGljYS9Wb3N0
b2siLCJBcmN0aWMvTG9uZ3llYXJieWVuIiwiQXNpYS9BZGVuIiwiQXNpYS9BbG1hdHkiLCJBc2lh
L0FtbWFuIiwiQXNpYS9BbmFkeXIiLCJBc2lhL0FxdGF1IiwiQXNpYS9BcXRvYmUiLCJBc2lhL0Fz
aGdhYmF0IiwiQXNpYS9BdHlyYXUiLCJBc2lhL0JhZ2hkYWQiLCJBc2lhL0JhaHJhaW4iLCJBc2lh
L0Jha3UiLCJBc2lhL0Jhbmdrb2siLCJBc2lhL0Jhcm5hdWwiLCJBc2lhL0JlaXJ1dCIsIkFzaWEv
QmlzaGtlayIsIkFzaWEvQnJ1bmVpIiwiQXNpYS9DYWxjdXR0YSIsIkFzaWEvQ2hpdGEiLCJBc2lh
L0Nob2liYWxzYW4iLCJBc2lhL0NvbG9tYm8iLCJBc2lhL0RhbWFzY3VzIiwiQXNpYS9EaGFrYSIs
IkFzaWEvRGlsaSIsIkFzaWEvRHViYWkiLCJBc2lhL0R1c2hhbmJlIiwiQXNpYS9GYW1hZ3VzdGEi
LCJBc2lhL0dhemEiLCJBc2lhL0hlYnJvbiIsIkFzaWEvSG9uZ19Lb25nIiwiQXNpYS9Ib3ZkIiwi
QXNpYS9Jcmt1dHNrIiwiQXNpYS9KYWthcnRhIiwiQXNpYS9KYXlhcHVyYSIsIkFzaWEvSmVydXNh
bGVtIiwiQXNpYS9LYWJ1bCIsIkFzaWEvS2FtY2hhdGthIiwiQXNpYS9LYXJhY2hpIiwiQXNpYS9L
YXRtYW5kdSIsIkFzaWEvS2hhbmR5Z2EiLCJBc2lhL0tyYXNub3lhcnNrIiwiQXNpYS9LdWFsYV9M
dW1wdXIiLCJBc2lhL0t1Y2hpbmciLCJBc2lhL0t1d2FpdCIsIkFzaWEvTWFjYXUiLCJBc2lhL01h
Z2FkYW4iLCJBc2lhL01ha2Fzc2FyIiwiQXNpYS9NYW5pbGEiLCJBc2lhL011c2NhdCIsIkFzaWEv
Tmljb3NpYSIsIkFzaWEvTm92b2t1em5ldHNrIiwiQXNpYS9Ob3Zvc2liaXJzayIsIkFzaWEvT21z
ayIsIkFzaWEvT3JhbCIsIkFzaWEvUGhub21fUGVuaCIsIkFzaWEvUG9udGlhbmFrIiwiQXNpYS9Q
eW9uZ3lhbmciLCJBc2lhL1FhdGFyIiwiQXNpYS9Rb3N0YW5heSIsIkFzaWEvUXl6eWxvcmRhIiwi
QXNpYS9SYW5nb29uIiwiQXNpYS9SaXlhZGgiLCJBc2lhL1NhaWdvbiIsIkFzaWEvU2FraGFsaW4i
LCJBc2lhL1NhbWFya2FuZCIsIkFzaWEvU2VvdWwiLCJBc2lhL1NoYW5naGFpIiwiQXNpYS9TaW5n
YXBvcmUiLCJBc2lhL1NyZWRuZWtvbHltc2siLCJBc2lhL1RhaXBlaSIsIkFzaWEvVGFzaGtlbnQi
LCJBc2lhL1RiaWxpc2kiLCJBc2lhL1RlaHJhbiIsIkFzaWEvVGhpbXBodSIsIkFzaWEvVG9reW8i
LCJBc2lhL1RvbXNrIiwiQXNpYS9VbGFhbmJhYXRhciIsIkFzaWEvVXJ1bXFpIiwiQXNpYS9Vc3Qt
TmVyYSIsIkFzaWEvVmllbnRpYW5lIiwiQXNpYS9WbGFkaXZvc3RvayIsIkFzaWEvWWFrdXRzayIs
IkFzaWEvWWVrYXRlcmluYnVyZyIsIkFzaWEvWWVyZXZhbiIsIkF0bGFudGljL0F6b3JlcyIsIkF0
bGFudGljL0Jlcm11ZGEiLCJBdGxhbnRpYy9DYW5hcnkiLCJBdGxhbnRpYy9DYXBlX1ZlcmRlIiwi
QXRsYW50aWMvRmFlcm9lIiwiQXRsYW50aWMvTWFkZWlyYSIsIkF0bGFudGljL1JleWtqYXZpayIs
IkF0bGFudGljL1NvdXRoX0dlb3JnaWEiLCJBdGxhbnRpYy9TdF9IZWxlbmEiLCJBdGxhbnRpYy9T
dGFubGV5IiwiQXVzdHJhbGlhL0FkZWxhaWRlIiwiQXVzdHJhbGlhL0JyaXNiYW5lIiwiQXVzdHJh
bGlhL0Jyb2tlbl9IaWxsIiwiQXVzdHJhbGlhL0N1cnJpZSIsIkF1c3RyYWxpYS9EYXJ3aW4iLCJB
dXN0cmFsaWEvRXVjbGEiLCJBdXN0cmFsaWEvSG9iYXJ0IiwiQXVzdHJhbGlhL0xpbmRlbWFuIiwi
QXVzdHJhbGlhL0xvcmRfSG93ZSIsIkF1c3RyYWxpYS9NZWxib3VybmUiLCJBdXN0cmFsaWEvUGVy
dGgiLCJBdXN0cmFsaWEvU3lkbmV5IiwiRXVyb3BlL0Ftc3RlcmRhbSIsIkV1cm9wZS9BbmRvcnJh
IiwiRXVyb3BlL0FzdHJha2hhbiIsIkV1cm9wZS9BdGhlbnMiLCJFdXJvcGUvQmVsZ3JhZGUiLCJF
dXJvcGUvQmVybGluIiwiRXVyb3BlL0JyYXRpc2xhdmEiLCJFdXJvcGUvQnJ1c3NlbHMiLCJFdXJv
cGUvQnVjaGFyZXN0IiwiRXVyb3BlL0J1ZGFwZXN0IiwiRXVyb3BlL0J1c2luZ2VuIiwiRXVyb3Bl
L0NoaXNpbmF1IiwiRXVyb3BlL0NvcGVuaGFnZW4iLCJFdXJvcGUvRHVibGluIiwiRXVyb3BlL0dp
YnJhbHRhciIsIkV1cm9wZS9HdWVybnNleSIsIkV1cm9wZS9IZWxzaW5raSIsIkV1cm9wZS9Jc2xl
X29mX01hbiIsIkV1cm9wZS9Jc3RhbmJ1bCIsIkV1cm9wZS9KZXJzZXkiLCJFdXJvcGUvS2FsaW5p
bmdyYWQiLCJFdXJvcGUvS2lldiIsIkV1cm9wZS9LaXJvdiIsIkV1cm9wZS9MaXNib24iLCJFdXJv
cGUvTGp1YmxqYW5hIiwiRXVyb3BlL0xvbmRvbiIsIkV1cm9wZS9MdXhlbWJvdXJnIiwiRXVyb3Bl
L01hZHJpZCIsIkV1cm9wZS9NYWx0YSIsIkV1cm9wZS9NYXJpZWhhbW4iLCJFdXJvcGUvTWluc2si
LCJFdXJvcGUvTW9uYWNvIiwiRXVyb3BlL01vc2NvdyIsIkV1cm9wZS9Pc2xvIiwiRXVyb3BlL1Bh
cmlzIiwiRXVyb3BlL1BvZGdvcmljYSIsIkV1cm9wZS9QcmFndWUiLCJFdXJvcGUvUmlnYSIsIkV1
cm9wZS9Sb21lIiwiRXVyb3BlL1NhbWFyYSIsIkV1cm9wZS9TYW5fTWFyaW5vIiwiRXVyb3BlL1Nh
cmFqZXZvIiwiRXVyb3BlL1NhcmF0b3YiLCJFdXJvcGUvU2ltZmVyb3BvbCIsIkV1cm9wZS9Ta29w
amUiLCJFdXJvcGUvU29maWEiLCJFdXJvcGUvU3RvY2tob2xtIiwiRXVyb3BlL1RhbGxpbm4iLCJF
dXJvcGUvVGlyYW5lIiwiRXVyb3BlL1VseWFub3ZzayIsIkV1cm9wZS9Vemhnb3JvZCIsIkV1cm9w
ZS9WYWR1eiIsIkV1cm9wZS9WYXRpY2FuIiwiRXVyb3BlL1ZpZW5uYSIsIkV1cm9wZS9WaWxuaXVz
IiwiRXVyb3BlL1ZvbGdvZ3JhZCIsIkV1cm9wZS9XYXJzYXciLCJFdXJvcGUvWmFncmViIiwiRXVy
b3BlL1phcG9yb3poeWUiLCJFdXJvcGUvWnVyaWNoIiwiSW5kaWFuL0FudGFuYW5hcml2byIsIklu
ZGlhbi9DaGFnb3MiLCJJbmRpYW4vQ2hyaXN0bWFzIiwiSW5kaWFuL0NvY29zIiwiSW5kaWFuL0Nv
bW9ybyIsIkluZGlhbi9LZXJndWVsZW4iLCJJbmRpYW4vTWFoZSIsIkluZGlhbi9NYWxkaXZlcyIs
IkluZGlhbi9NYXVyaXRpdXMiLCJJbmRpYW4vTWF5b3R0ZSIsIkluZGlhbi9SZXVuaW9uIiwiUGFj
aWZpYy9BcGlhIiwiUGFjaWZpYy9BdWNrbGFuZCIsIlBhY2lmaWMvQm91Z2FpbnZpbGxlIiwiUGFj
aWZpYy9DaGF0aGFtIiwiUGFjaWZpYy9FYXN0ZXIiLCJQYWNpZmljL0VmYXRlIiwiUGFjaWZpYy9F
bmRlcmJ1cnkiLCJQYWNpZmljL0Zha2FvZm8iLCJQYWNpZmljL0ZpamkiLCJQYWNpZmljL0Z1bmFm
dXRpIiwiUGFjaWZpYy9HYWxhcGFnb3MiLCJQYWNpZmljL0dhbWJpZXIiLCJQYWNpZmljL0d1YWRh
bGNhbmFsIiwiUGFjaWZpYy9HdWFtIiwiUGFjaWZpYy9Ib25vbHVsdSIsIlBhY2lmaWMvSm9obnN0
b24iLCJQYWNpZmljL0tpcml0aW1hdGkiLCJQYWNpZmljL0tvc3JhZSIsIlBhY2lmaWMvS3dhamFs
ZWluIiwiUGFjaWZpYy9NYWp1cm8iLCJQYWNpZmljL01hcnF1ZXNhcyIsIlBhY2lmaWMvTWlkd2F5
IiwiUGFjaWZpYy9OYXVydSIsIlBhY2lmaWMvTml1ZSIsIlBhY2lmaWMvTm9yZm9sayIsIlBhY2lm
aWMvTm91bWVhIiwiUGFjaWZpYy9QYWdvX1BhZ28iLCJQYWNpZmljL1BhbGF1IiwiUGFjaWZpYy9Q
aXRjYWlybiIsIlBhY2lmaWMvUG9uYXBlIiwiUGFjaWZpYy9Qb3J0X01vcmVzYnkiLCJQYWNpZmlj
L1Jhcm90b25nYSIsIlBhY2lmaWMvU2FpcGFuIiwiUGFjaWZpYy9UYWhpdGkiLCJQYWNpZmljL1Rh
cmF3YSIsIlBhY2lmaWMvVG9uZ2F0YXB1IiwiUGFjaWZpYy9UcnVrIiwiUGFjaWZpYy9XYWtlIiwi
UGFjaWZpYy9XYWxsaXMiXWApOworCitsZXQgdW5pdHMgPSBJbnRsLnN1cHBvcnRlZFZhbHVlc09m
KCJ1bml0Iik7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeSh1bml0cyksIGBbImFjcmUiLCJiaXQi
LCJieXRlIiwiY2Vsc2l1cyIsImNlbnRpbWV0ZXIiLCJkYXkiLCJkZWdyZWUiLCJmYWhyZW5oZWl0
IiwiZmx1aWQtb3VuY2UiLCJmb290IiwiZ2FsbG9uIiwiZ2lnYWJpdCIsImdpZ2FieXRlIiwiZ3Jh
bSIsImhlY3RhcmUiLCJob3VyIiwiaW5jaCIsImtpbG9iaXQiLCJraWxvYnl0ZSIsImtpbG9ncmFt
Iiwia2lsb21ldGVyIiwibGl0ZXIiLCJtZWdhYml0IiwibWVnYWJ5dGUiLCJtZXRlciIsIm1pbGUi
LCJtaWxlLXNjYW5kaW5hdmlhbiIsIm1pbGxpbGl0ZXIiLCJtaWxsaW1ldGVyIiwibWlsbGlzZWNv
bmQiLCJtaW51dGUiLCJtb250aCIsIm91bmNlIiwicGVyY2VudCIsInBldGFieXRlIiwicG91bmQi
LCJzZWNvbmQiLCJzdG9uZSIsInRlcmFiaXQiLCJ0ZXJhYnl0ZSIsIndlZWsiLCJ5YXJkIiwieWVh
ciJdYCk7CisKK3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBJbnRsLnN1cHBvcnRlZFZhbHVlc09m
KCJpbnZhbGlkIik7Cit9LCBSYW5nZUVycm9yKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2ludGwtbG9jYWxlLWluZm8uanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS1pbmZvLmpz
CmluZGV4IDA3YzIxYjZlN2YxNzgyZGMxZTgyMDlhZjZjMThjZGNjNzYzZWI0MDguLjlkNGNhMDE4
NjkyYzEwY2VkNmVhMDYyM2Q4YTFmMWU3M2NiMjIyOTMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL2ludGwtbG9jYWxlLWluZm8uanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUt
aW5mby5qcwpAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CiB9CiB7CiAgICAgbGV0IGxvY2FsZSA9IG5ldyBJbnRsLkxvY2FsZSgiYXIiKQotICAg
IHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5jYWxlbmRhcnMpLCBgWyJncmVnb3J5Iiwi
Y29wdGljIiwiaXNsYW1pYyIsImlzbGFtaWNjIiwiaXNsYW1pYy10YmxhIl1gKTsKKyAgICBzaG91
bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuY2FsZW5kYXJzKSwgYFsiZ3JlZ29yeSIsImNvcHRp
YyIsImlzbGFtaWMiLCJpc2xhbWljLWNpdmlsIiwiaXNsYW1pYy10YmxhIl1gKTsKICAgICBzaG91
bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuY29sbGF0aW9ucyksIGBbImNvbXBhdCIsImVtb2pp
IiwiZW9yIl1gKTsKICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuaG91ckN5Y2xl
cyksIGBbImgxMiJdYCk7CiAgICAgbGV0IG5zID0gSlNPTi5zdHJpbmdpZnkobG9jYWxlLm51bWJl
cmluZ1N5c3RlbXMpOwpAQCAtMjYsNyArMjYsNyBAQCBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWws
IGV4cGVjdGVkKSB7CiB9CiB7CiAgICAgbGV0IGxvY2FsZSA9IG5ldyBJbnRsLkxvY2FsZSgiYXIt
RUciKQotICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5jYWxlbmRhcnMpLCBgWyJn
cmVnb3J5IiwiY29wdGljIiwiaXNsYW1pYyIsImlzbGFtaWNjIiwiaXNsYW1pYy10YmxhIl1gKTsK
KyAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuY2FsZW5kYXJzKSwgYFsiZ3JlZ29y
eSIsImNvcHRpYyIsImlzbGFtaWMiLCJpc2xhbWljLWNpdmlsIiwiaXNsYW1pYy10YmxhIl1gKTsK
ICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuY29sbGF0aW9ucyksIGBbImNvbXBh
dCIsImVtb2ppIiwiZW9yIl1gKTsKICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUu
aG91ckN5Y2xlcyksIGBbImgxMiJdYCk7CiAgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9j
YWxlLm51bWJlcmluZ1N5c3RlbXMpLCBgWyJhcmFiIl1gKTsKQEAgLTk5LDcgKzk5LDcgQEAgZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewogfQogewogICAgIGxldCBsb2NhbGUg
PSBuZXcgSW50bC5Mb2NhbGUoImZhIikKLSAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2Nh
bGUuY2FsZW5kYXJzKSwgYFsicGVyc2lhbiIsImdyZWdvcnkiLCJpc2xhbWljIiwiaXNsYW1pY2Mi
LCJpc2xhbWljLXRibGEiXWApOworICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5j
YWxlbmRhcnMpLCBgWyJwZXJzaWFuIiwiZ3JlZ29yeSIsImlzbGFtaWMiLCJpc2xhbWljLWNpdmls
IiwiaXNsYW1pYy10YmxhIl1gKTsKICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUu
Y29sbGF0aW9ucyksIGBbImVtb2ppIiwiZW9yIl1gKTsKICAgICBzaG91bGRCZShKU09OLnN0cmlu
Z2lmeShsb2NhbGUuaG91ckN5Y2xlcyksIGBbImgyMyJdYCk7CiAgICAgc2hvdWxkQmUoSlNPTi5z
dHJpbmdpZnkobG9jYWxlLm51bWJlcmluZ1N5c3RlbXMpLCBgWyJhcmFiZXh0Il1gKTsK
</data>
<flag name="commit-queue"
          id="459116"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436145</attachid>
            <date>2021-08-22 20:18:42 -0700</date>
            <delta_ts>2021-08-22 21:33:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214795-20210822201841.patch</filename>
            <type>text/plain</type>
            <size>42892</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZmE4ZDUxYTY5NTIxODBlZmM0MTYxMjRlMGU5ODM0ZThiZjYwNTg5Li5jN2E4OGZjYTBhZmQ5N2Vi
ODMyNDdhNDRhM2RiNTQ0YjUwOTFiMjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMS0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyBJbnRsIGVudW1lcmF0aW9uIEFQSVsxXSB3aGljaCBpcyBpbiBzdGFnZS0zLgorICAgICAgICBT
dXBwb3J0ZWQga2V5cyBhcmUsICJjYWxlbmRhciIsICJjb2xsYXRpb24iLCAiY3VycmVuY3kiLCAi
bnVtYmVyaW5nU3lzdGVtIiwgInRpbWVab25lIiwgYW5kICJ1bml0Ii4KKworICAgICAgICBbMV06
IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24KKworICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50
bERhdGVUaW1lRm9ybWF0Ojpsb2NhbGVEYXRhKToKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1l
Rm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAqIHJ1bnRpbWUvSW50
bExvY2FsZS5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3Rvcik6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcDoKKyAgICAg
ICAgKEpTQzo6c2FuY3Rpb25lZFNpbXBsZVVuaXRJZGVudGlmaWVyKToKKyAgICAgICAgKiBydW50
aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpJbnRsT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChKU0M6Om1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcpOgorICAg
ICAgICAoSlNDOjphdmFpbGFibGVDYWxlbmRhcnMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVD
b2xsYXRpb25zKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlQ3VycmVuY2llcyk6CisgICAgICAg
IChKU0M6OmF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMpOgorICAgICAgICAoSlNDOjpjYW5vbmlj
YWxpemVUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUpOgorICAgICAgICAoSlNDOjphdmFpbGFi
bGVUaW1lWm9uZXMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVVbml0cyk6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNyZWF0ZUFycmF5
RnJvbVN0cmluZ1ZlY3Rvcik6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIxLTA4LTIyICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIGFscmVhZHktc2hp
cHBlZCBKUyBmZWF0dXJlIGZsYWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3ZGY1NWNm
NDViOTNiYzEzYWUuLmI4ODM4ZTE1ZWYzMDBiOWRkZTUxMGZjNzFmMzIxNmFhYjNmMjVhMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgSW50bCBFbnVtZXJhdGlvbiBBUElzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3OTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0
cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJh
bCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorCiAyMDIxLTA4LTIxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgb3ZlcndyaXRl
Q29kZVBvaW50KCkgaW4gY3JlYXRlQW5kRmlsbEdseXBoUGFnZSgpIGlzIHdyb25nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcApp
bmRleCA0NDUxNzMxZmNkMDMyMWUwZjE5Yjk1NmIyMDI3M2ExMjkyYWZkOWY2Li40ZDI0YWU1MWQy
NTEyMzUxYmYzMTJjNTVjOTViMjk1OTU0NGM4NDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTE2NSw2ICsxNjUs
OSBAQCBWZWN0b3I8U3RyaW5nPiBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmxvY2FsZURhdGEoY29uc3Qg
U3RyaW5nJiBsb2NhbGUsIFJlbGV2YW50RXh0ZQogICAgICAgICAgICAgQVNTRVJUKFVfU1VDQ0VT
UyhzdGF0dXMpKTsKICAgICAgICAgICAgIFN0cmluZyBjYWxlbmRhciA9IFN0cmluZyhhdmFpbGFi
bGVOYW1lLCBuYW1lTGVuZ3RoKTsKICAgICAgICAgICAgIGtleUxvY2FsZURhdGEuYXBwZW5kKGNh
bGVuZGFyKTsKKyAgICAgICAgICAgIC8vIEFkZGluZyAiaXNsYW1pY2MiIGNhbmRpZGF0ZSBmb3Ig
YmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgICAgIGlmIChjYWxlbmRhciA9PSAiaXNs
YW1pYy1jaXZpbCJfcykKKyAgICAgICAgICAgICAgICBrZXlMb2NhbGVEYXRhLmFwcGVuZCgiaXNs
YW1pY2MiX3MpOwogICAgICAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gbWFwSUNVQ2FsZW5kYXJL
ZXl3b3JkVG9CQ1A0NyhjYWxlbmRhcikpCiAgICAgICAgICAgICAgICAga2V5TG9jYWxlRGF0YS5h
cHBlbmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkpOwogICAgICAgICB9CkBAIC01NzksMTMgKzU4
MiwxMyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX2NhbGVuZGFyID0gcmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVsZXZhbnRFeHRlbnNpb25LZXk6OkNhKV07Ci0gICAgaWYgKG1fY2FsZW5kYXIgPT0gImdy
ZWdvcmlhbiIpCi0gICAgICAgIG1fY2FsZW5kYXIgPSAiZ3JlZ29yeSJfczsKLSAgICBlbHNlIGlm
IChtX2NhbGVuZGFyID09ICJpc2xhbWljYyIpCi0gICAgICAgIG1fY2FsZW5kYXIgPSAiaXNsYW1p
Yy1jaXZpbCJfczsKLSAgICBlbHNlIGlmIChtX2NhbGVuZGFyID09ICJldGhpb2FhIikKLSAgICAg
ICAgbV9jYWxlbmRhciA9ICJldGhpb3BpYy1hbWV0ZS1hbGVtIl9zOworICAgIHsKKyAgICAgICAg
U3RyaW5nIGNhbGVuZGFyID0gcmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVsZXZhbnRFeHRlbnNpb25LZXk6OkNhKV07CisgICAgICAgIGlmIChhdXRvIG1hcHBlZCA9
IG1hcEJDUDQ3VG9JQ1VDYWxlbmRhcktleXdvcmQoY2FsZW5kYXIpKQorICAgICAgICAgICAgbV9j
YWxlbmRhciA9IFdURk1vdmUobWFwcGVkLnZhbHVlKCkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX2NhbGVuZGFyID0gV1RGTW92ZShjYWxlbmRhcik7CisgICAgfQogCiAgICAgaG91ckN5
Y2xlID0gcGFyc2VIb3VyQ3ljbGUocmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUmVsZXZhbnRFeHRlbnNpb25LZXk6OkhjKV0pOwogICAgIG1fbnVtYmVyaW5nU3lzdGVt
ID0gcmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVsZXZhbnRFeHRl
bnNpb25LZXk6Ok51KV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsTG9jYWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2Nh
bGUuY3BwCmluZGV4IDlhMDU5MDc4Mzg5ZmViYjg1YTJmMzNjNGFmNDdiNDI1YzNkYzQyMDQuLmMz
YjI2ZGQ4MmI1NDBhMWFmNDcwMjdmNDQ1OWQxNjA0NTJkMzNmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwCkBAIC01MzcsMjMgKzUzNyw2IEBAIFRy
aVN0YXRlIEludGxMb2NhbGU6Om51bWVyaWMoKQogICAgIHJldHVybiBtX251bWVyaWM7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNBcnJheSogY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZlY3RvcjxTdHJpbmcsIDE+JiYgZWxlbWVudHMpCi17
Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRy
eUNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1
cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQ29udGlndW91cyksIGVsZW1lbnRzLnNpemUoKSk7Ci0g
ICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgZm9yICh1
bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudHMuc2l6ZSgpOyArK2luZGV4KSB7Ci0g
ICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCwganNTdHJp
bmcodm0sIFdURk1vdmUoZWxlbWVudHNbaW5kZXhdKSkpOwotICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBKU0Fy
cmF5KiBJbnRsTG9jYWxlOjpjYWxlbmRhcnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4IDNkOTlmYjkxYTlh
Y2JhYjY1YzA4MWYzMzFkMzE1ODcwM2ZiOWY3NDAuLmZjMzIzNzAzMjAyMmI0YzZkNjdkZDgxNTU5
ZWMzMzViNTZiZDBkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXQuY3BwCkBAIC0xNTEsNTkgKzE1MSw4IEBAIHN0YXRpYyB1bnNpZ25l
ZCBjb21wdXRlQ3VycmVuY3lEaWdpdHMoY29uc3QgU3RyaW5nJiBjdXJyZW5jeSkKICAgICByZXR1
cm4gMjsKIH0KIAotLy8gQ3JlYXRlIE1lYXN1cmVVbml0IGxpa2UgSUNVNEouCi1zdHJ1Y3QgTWVh
c3VyZVVuaXQgewotICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOwotICAgIEFTQ0lJTGl0ZXJhbCBzdWJU
eXBlOwotfTsKLQogc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVhc3VyZVVuaXQ+IHNhbmN0aW9uZWRT
aW1wbGVVbml0SWRlbnRpZmllcihTdHJpbmdWaWV3IHVuaXRJZGVudGlmaWVyKQogewotICAgIHN0
YXRpYyBjb25zdGV4cHIgTWVhc3VyZVVuaXQgc2ltcGxlVW5pdHNbXSA9IHsKLSAgICAgICAgeyAi
YXJlYSJfcywgImFjcmUiX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImJpdCJfcyB9LAot
ICAgICAgICB7ICJkaWdpdGFsIl9zLCAiYnl0ZSJfcyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVy
ZSJfcywgImNlbHNpdXMiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAiY2VudGltZXRlciJf
cyB9LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgImRheSJfcyB9LAotICAgICAgICB7ICJhbmds
ZSJfcywgImRlZ3JlZSJfcyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImZhaHJlbmhl
aXQiX3MgfSwKLSAgICAgICAgeyAidm9sdW1lIl9zLCAiZmx1aWQtb3VuY2UiX3MgfSwKLSAgICAg
ICAgeyAibGVuZ3RoIl9zLCAiZm9vdCJfcyB9LAotICAgICAgICB7ICJ2b2x1bWUiX3MsICJnYWxs
b24iX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwKLSAgICAgICAg
eyAiZGlnaXRhbCJfcywgImdpZ2FieXRlIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3MsICJncmFt
Il9zIH0sCi0gICAgICAgIHsgImFyZWEiX3MsICJoZWN0YXJlIl9zIH0sCi0gICAgICAgIHsgImR1
cmF0aW9uIl9zLCAiaG91ciJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJpbmNoIl9zIH0s
Ci0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0
YWwiX3MsICJraWxvYnl0ZSJfcyB9LAotICAgICAgICB7ICJtYXNzIl9zLCAia2lsb2dyYW0iX3Mg
fSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAia2lsb21ldGVyIl9zIH0sCi0gICAgICAgIHsgInZv
bHVtZSJfcywgImxpdGVyIl9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYml0Il9z
IH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYnl0ZSJfcyB9LAotICAgICAgICB7ICJs
ZW5ndGgiX3MsICJtZXRlciJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJtaWxlIl9zIH0s
Ci0gICAgICAgIHsgImxlbmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCi0gICAgICAg
IHsgInZvbHVtZSJfcywgIm1pbGxpbGl0ZXIiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAi
bWlsbGltZXRlciJfcyB9LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9z
IH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAibWludXRlIl9zIH0sCi0gICAgICAgIHsgImR1
cmF0aW9uIl9zLCAibW9udGgiX3MgfSwKLSAgICAgICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0s
Ci0gICAgICAgIHsgImNvbmNlbnRyIl9zLCAicGVyY2VudCJfcyB9LAotICAgICAgICB7ICJkaWdp
dGFsIl9zLCAicGV0YWJ5dGUiX3MgfSwKLSAgICAgICAgeyAibWFzcyJfcywgInBvdW5kIl9zIH0s
Ci0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAic2Vjb25kIl9zIH0sCi0gICAgICAgIHsgIm1hc3Mi
X3MsICJzdG9uZSJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJpdCJfcyB9LAot
ICAgICAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJ5dGUiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRp
b24iX3MsICJ3ZWVrIl9zIH0sCi0gICAgICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwKLSAg
ICAgICAgeyAiZHVyYXRpb24iX3MsICJ5ZWFyIl9zIH0sCi0gICAgfTsKICAgICBBU1NFUlQoCiAg
ICAgICAgIHN0ZDo6aXNfc29ydGVkKHN0ZDo6YmVnaW4oc2ltcGxlVW5pdHMpLCBzdGQ6OmVuZChz
aW1wbGVVbml0cyksCiAgICAgICAgICAgICBbXShjb25zdCBNZWFzdXJlVW5pdCYgYSwgY29uc3Qg
TWVhc3VyZVVuaXQmIGIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdC5jcHAKaW5kZXggMDNjOWQ3OTg2Zjk1YTA3MWI2OTUzODkzM2I4MWQ3NDYzNDExM2M4Ny4u
ZDVjMjZhZmQ1YjQ5YmI0YjZmYjUwMGM3YzA3YWQ4NmJkN2M1ZjkwYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHVu
aWNvZGUvdWJyay5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWNhbC5oPgogI2luY2x1ZGUgPHVuaWNv
ZGUvdWNvbC5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWZpZWxkcG9zaXRlci5oPgogI2luY2x1ZGUg
PHVuaWNvZGUvdWxvYy5oPgpAQCAtNzUsNiArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIFNUQVRJ
Q19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRsT2JqZWN0KTsKIAogc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2Nh
bGVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jU3Vw
cG9ydGVkVmFsdWVzT2YpOwogCiBzdGF0aWMgSlNWYWx1ZSBjcmVhdGVDb2xsYXRvckNvbnN0cnVj
dG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKIHsKQEAgLTE3Miw2ICsxNzQsNTIgQEAgdm9p
ZCBVRmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlcjo6b3BlcmF0b3IoKShVRmllbGRQb3NpdGlv
bkl0ZXJhdG9yKiBpdGVyYXRvcikKICAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9zZShpdGVyYXRv
cik7CiB9CiAKK2NvbnN0IE1lYXN1cmVVbml0IHNpbXBsZVVuaXRzWzQzXSA9IHsKKyAgICB7ICJh
cmVhIl9zLCAiYWNyZSJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJiaXQiX3MgfSwKKyAgICB7
ICJkaWdpdGFsIl9zLCAiYnl0ZSJfcyB9LAorICAgIHsgInRlbXBlcmF0dXJlIl9zLCAiY2Vsc2l1
cyJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgImNlbnRpbWV0ZXIiX3MgfSwKKyAgICB7ICJkdXJh
dGlvbiJfcywgImRheSJfcyB9LAorICAgIHsgImFuZ2xlIl9zLCAiZGVncmVlIl9zIH0sCisgICAg
eyAidGVtcGVyYXR1cmUiX3MsICJmYWhyZW5oZWl0Il9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAi
Zmx1aWQtb3VuY2UiX3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJmb290Il9zIH0sCisgICAgeyAi
dm9sdW1lIl9zLCAiZ2FsbG9uIl9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3Mg
fSwKKyAgICB7ICJkaWdpdGFsIl9zLCAiZ2lnYWJ5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAi
Z3JhbSJfcyB9LAorICAgIHsgImFyZWEiX3MsICJoZWN0YXJlIl9zIH0sCisgICAgeyAiZHVyYXRp
b24iX3MsICJob3VyIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAiaW5jaCJfcyB9LAorICAgIHsg
ImRpZ2l0YWwiX3MsICJraWxvYml0Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImtpbG9ieXRl
Il9zIH0sCisgICAgeyAibWFzcyJfcywgImtpbG9ncmFtIl9zIH0sCisgICAgeyAibGVuZ3RoIl9z
LCAia2lsb21ldGVyIl9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAibGl0ZXIiX3MgfSwKKyAgICB7
ICJkaWdpdGFsIl9zLCAibWVnYWJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYnl0
ZSJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1ldGVyIl9zIH0sCisgICAgeyAibGVuZ3RoIl9z
LCAibWlsZSJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0s
CisgICAgeyAidm9sdW1lIl9zLCAibWlsbGlsaXRlciJfcyB9LAorICAgIHsgImxlbmd0aCJfcywg
Im1pbGxpbWV0ZXIiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0s
CisgICAgeyAiZHVyYXRpb24iX3MsICJtaW51dGUiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywg
Im1vbnRoIl9zIH0sCisgICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0sCisgICAgeyAiY29uY2Vu
dHIiX3MsICJwZXJjZW50Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgInBldGFieXRlIl9zIH0s
CisgICAgeyAibWFzcyJfcywgInBvdW5kIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJzZWNv
bmQiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAic3RvbmUiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9z
LCAidGVyYWJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJ0ZXJhYnl0ZSJfcyB9LAorICAg
IHsgImR1cmF0aW9uIl9zLCAid2VlayJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3Mg
fSwKKyAgICB7ICJkdXJhdGlvbiJfcywgInllYXIiX3MgfSwKK307CisKIEludGxPYmplY3Q6Oklu
dGxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSkKIHsKQEAgLTE4NCw3ICsyMzIsNyBAQCBJbnRsT2JqZWN0KiBJbnRsT2JqZWN0Ojpj
cmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqCiAg
ICAgcmV0dXJuIG9iamVjdDsKIH0KIAotdm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKK3ZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwpAQCAtMTk5
LDYgKzI0Nyw4IEBAIHZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCopCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSgmY3JlYXRlTGlzdEZvcm1hdENv
bnN0cnVjdG9yKTsKICNlbmRpZgorICAgIGlmIChPcHRpb25zOjp1c2VJbnRsRW51bWVyYXRpb24o
KSkKKyAgICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1cHBv
cnRlZFZhbHVlc09mIiwgaW50bE9iamVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogfQogCiBTdHJ1
Y3R1cmUqIEludGxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTQ2OCw4ICsxNTE4LDggQEAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IG1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcoY29uc3Qg
U3RyaW5nJiBjYWxlbmRhcikKIHsKICAgICBpZiAoY2FsZW5kYXIgPT0gImdyZWdvcmlhbiJfcykK
ICAgICAgICAgcmV0dXJuICJncmVnb3J5Il9zOwotICAgIGlmIChjYWxlbmRhciA9PSAiaXNsYW1p
Yy1jaXZpbCJfcykKLSAgICAgICAgcmV0dXJuICJpc2xhbWljYyJfczsKKyAgICAvLyBpc2xhbWlj
YyBpcyBkZXByZWNhdGVkIGluIEJDUDQ3LCBhbmQgaXNsYW1pYy1jaXZpbCBpcyBwcmVmZXJyZWQu
CisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3VuaWNvZGUtb3JnL2NsZHIvYmxvYi9tYXN0ZXIv
Y29tbW9uL2JjcDQ3L2NhbGVuZGFyLnhtbAogICAgIGlmIChjYWxlbmRhciA9PSAiZXRoaW9waWMt
YW1ldGUtYWxlbSJfcykKICAgICAgICAgcmV0dXJuICJldGhpb2FhIl9zOwogICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CkBAIC0xNTI0LDQgKzE1NzQsMzExIEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihpbnRsT2JqZWN0RnVuY0dldENhbm9uaWNhbExvY2FsZXMsIChKU0dsb2JhbE9iamVjdCog
Z2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2NhbGVBcnJheSk7CiB9CiAKKy8vIGh0
dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxlY2Fs
ZW5kYXJzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ2FsZW5kYXJzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUg
c3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1
ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9nZXRLZXl3
b3JkVmFsdWVzRm9yTG9jYWxlKCJjYWxlbmRhcnMiLCAidW5kIiwgZmFsc2UsICZzdGF0dXMpKTsK
KyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFy
cyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9
IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJfcyk7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7Cisg
ICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQz
Ml90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90
IGxlbmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVu
dW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVS
RShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY2FsZW5kYXJzIl9zKTsKKyAgICAg
ICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGNhbGVuZGFyKHBv
aW50ZXIsIGxlbmd0aCk7CisgICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IG1hcElDVUNhbGVuZGFy
S2V5d29yZFRvQkNQNDcoY2FsZW5kYXIpKQorICAgICAgICAgICAgZWxlbWVudHMuYXBwZW5kKFdU
Rk1vdmUobWFwcGVkLnZhbHVlKCkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZWxlbWVu
dHMuYXBwZW5kKFdURk1vdmUoY2FsZW5kYXIpKTsKKyAgICB9CisKKyAgICAvLyBUaGUgQXZhaWxh
YmxlQ2FsZW5kYXJzIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlzdCwgb3JkZXJlZCBh
cyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQg
dXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZu
CisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgpLAorICAgICAg
ICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAgICAgICAgcmV0
dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0pOworCisgICAg
cmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIFdURk1vdmUo
ZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVy
YXRpb24vI3NlYy1hdmFpbGFibGVjb2xsYXRpb25zCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxl
Q29sbGF0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRv
IGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1
ZW51bV9jbG9zZT4+KHVjb2xfZ2V0S2V5d29yZFZhbHVlcygiY29sbGF0aW9uIiwgJnN0YXR1cykp
OworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY29sbGF0
aW9ucyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3Vu
dCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9G
QUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOworICAg
ICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmcsIDE+IGVsZW1lbnRz
OworICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOworICAgIGZvciAo
aW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50
MzJfdCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBwb2ludGVyID0gdWVudW1fbmV4
dChlbnVtZXJhdGlvbi5nZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOwor
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgY29sbGF0
aW9uKHBvaW50ZXIsIGxlbmd0aCk7CisgICAgICAgIGlmIChjb2xsYXRpb24gPT0gInN0YW5kYXJk
Il9zIHx8IGNvbGxhdGlvbiA9PSAic2VhcmNoIl9zKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IG1hcElDVUNvbGxhdGlvbktleXdvcmRUb0JDUDQ3KGNv
bGxhdGlvbikpCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShtYXBwZWQudmFs
dWUoKSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92
ZShjb2xsYXRpb24pKTsKKyAgICB9CisKKyAgICAvLyBUaGUgQXZhaWxhYmxlQ29sbGF0aW9ucyBh
YnN0cmFjdCBvcGVyYXRpb24gcmV0dXJucyBhIExpc3QsIG9yZGVyZWQgYXMgaWYgYW4gQXJyYXkg
b2YgdGhlIHNhbWUKKyAgICAvLyB2YWx1ZXMgaGFkIGJlZW4gc29ydGVkIHVzaW5nICVBcnJheS5w
cm90b3R5cGUuc29ydCUgdXNpbmcgdW5kZWZpbmVkIGFzIGNvbXBhcmVmbgorICAgIHN0ZDo6c29y
dChlbGVtZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwKKyAgICAgICAgW10oY29uc3QgU3Ry
aW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQ
b2ludENvbXBhcmUoYSwgYikgPCAwOworICAgICAgICB9KTsKKworICAgIHJldHVybiBjcmVhdGVB
cnJheUZyb21TdHJpbmdWZWN0b3IoZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVsZW1lbnRzKSk7Cit9
CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZh
aWxhYmxlY3VycmVuY2llcworc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZUN1cnJlbmNpZXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAg
VUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgYXV0byBlbnVtZXJhdGlvbiA9
IHN0ZDo6dW5pcXVlX3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVudW1fY2xvc2U+Pih1
Y3Vycl9vcGVuSVNPQ3VycmVuY2llcyhVQ1VSUl9DT01NT04gfCBVQ1VSUl9OT05fREVQUkVDQVRF
RCwgJnN0YXR1cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFp
bGFibGUgY3VycmVuY2llcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAg
aW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsK
KyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGN1cnJlbmNp
ZXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmcs
IDE+IGVsZW1lbnRzOworICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQp
OworICAgIGZvciAoaW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsK
KyAgICAgICAgaW50MzJfdCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBjdXJyZW5j
eSA9IHVlbnVtX25leHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAg
ICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjdXJy
ZW5jaWVzIl9zKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAg
ZWxlbWVudHMuY29uc3RydWN0QW5kQXBwZW5kKGN1cnJlbmN5LCBsZW5ndGgpOworICAgIH0KKwor
ICAgIC8vIFRoZSBBdmFpbGFibGVDdXJyZW5jaWVzIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5z
IGEgTGlzdCwgb3JkZXJlZCBhcyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVl
cyBoYWQgYmVlbiBzb3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRl
ZmluZWQgYXMgY29tcGFyZWZuCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1l
bnRzLmVuZCgpLAorICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikg
eworICAgICAgICAgICAgcmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7Cisg
ICAgICAgIH0pOworCisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9i
YWxPYmplY3QsIFdURk1vdmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3By
b3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGVudW1iZXJpbmdzeXN0ZW1zCitz
dGF0aWMgSlNBcnJheSogYXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVtcyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0
YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVf
cHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVudW1zeXNfb3BlbkF2
YWlsYWJsZU5hbWVzKCZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVt
ZXJhdGUgYXZhaWxhYmxlIG51bWJlcmluZyBzeXN0ZW1zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24u
Z2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBh
dmFpbGFibGUgbnVtYmVyaW5nIHN5c3RlbXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAg
IH0KKworICAgIFZlY3RvcjxTdHJpbmcsIDE+IGVsZW1lbnRzOworICAgIGVsZW1lbnRzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOworICAgIGZvciAoaW50MzJfdCBpbmRleCA9IDA7IGlu
ZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50MzJfdCBsZW5ndGggPSAwOworICAg
ICAgICBjb25zdCBjaGFyKiBudW1iZXJpbmdTeXN0ZW0gPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9u
LmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMp
KSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFp
bGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVyaW5nIHN5c3RlbXMiX3MpOworICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50cy5jb25zdHJ1Y3RB
bmRBcHBlbmQobnVtYmVyaW5nU3lzdGVtLCBsZW5ndGgpOworICAgIH0KKworICAgIC8vIFRoZSBB
dmFpbGFibGVOdW1iZXJpbmdTeXN0ZW1zIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlz
dCwgb3JkZXJlZCBhcyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQg
YmVlbiBzb3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQg
YXMgY29tcGFyZWZuCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVu
ZCgpLAorICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAg
ICAgICAgICAgcmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAg
IH0pOworCisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmpl
Y3QsIFdURk1vdmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2Fs
LWludGwtZW51bWVyYXRpb24vI3NlYy1jYW5vbmljYWxpemV0aW1lem9uZW5hbWUKK3N0YXRpYyBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gY2Fub25pY2FsaXplVGltZVpvbmVOYW1lRnJvbUlDVVRpbWVa
b25lKGNvbnN0IFN0cmluZyYgdGltZVpvbmVOYW1lKQoreworICAgIC8vIFNvbWUgdGltZSB6b25l
IG5hbWVzIGFyZSBpbmNsdWRlZCBpbiBJQ1UsIGJ1dCB0aGV5IGFyZSBub3QgaW5jbHVkZWQgaW4g
dGhlIElBTkEgVGltZSBab25lIERhdGFiYXNlLgorICAgIC8vIFdlIG5lZWQgdG8gZmlsdGVyIHRo
ZW0gb3V0LgorICAgIGlmICh0aW1lWm9uZU5hbWUuc3RhcnRzV2l0aCgiU3lzdGVtVi8iKSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAodGltZVpvbmVOYW1lLnN0YXJ0c1dp
dGgoIkV0Yy8iKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAvLyBJQU5BIHRp
bWUgem9uZSBuYW1lcyBpbmNsdWRlICcvJy4gU29tZSBvZiB0aGVtIGFyZSBub3QgaW5jbHVkaW5n
LCBidXQgaXQgaXMgaW4gYmFja3dhcmQgbGlua3MuCisgICAgLy8gQW5kIElDVSBhbHJlYWR5IHJl
c29sdmVkIHRoZXNlIGJhY2t3YXJkIGxpbmtzLgorICAgIGlmICghdGltZVpvbmVOYW1lLmNvbnRh
aW5zKCcvJykpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gdGlt
ZVpvbmVOYW1lOworfQorCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJh
dGlvbi8jc2VjLWF2YWlsYWJsZXRpbWV6b25lcworc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZVRp
bWVab25lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVu
dW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51
bV9jbG9zZT4+KHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbihVQ0FMX1pPTkVfVFlQRV9D
QU5PTklDQUwsIG51bGxwdHIsIG51bGxwdHIsICZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7CisgICAgICAgIHJl
dHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1l
cmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVt
ZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorCisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5k
ZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAg
ICAgIGNvbnN0IGNoYXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAm
bGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAg
ICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVu
dW1lcmF0ZSBhdmFpbGFibGUgdGltZXpvbmVzIl9zKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07
CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRpbWVab25lKHBvaW50ZXIsIGxlbmd0aCk7Cisg
ICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IGNhbm9uaWNhbGl6ZVRpbWVab25lTmFtZUZyb21JQ1VU
aW1lWm9uZSh0aW1lWm9uZSkpCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZSht
YXBwZWQudmFsdWUoKSkpOworICAgIH0KKworICAgIC8vIDQuIFNvcnQgcmVzdWx0IGluIG9yZGVy
IGFzIGlmIGFuIEFycmF5IG9mIHRoZSBzYW1lIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQgdXNpbmcg
JUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZuLgorICAg
IHN0ZDo6c29ydChlbGVtZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwKKyAgICAgICAgW10o
Y29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBX
VEY6OmNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOworICAgICAgICB9KTsKKworICAgIHJldHVy
biBjcmVhdGVBcnJheUZyb21TdHJpbmdWZWN0b3IoZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVsZW1l
bnRzKSk7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9u
LyNzZWMtYXZhaWxhYmxldW5pdHMKK3N0YXRpYyBKU0FycmF5KiBhdmFpbGFibGVVbml0cyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBK
U0FycmF5KiByZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJy
YXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aFVuZGVj
aWRlZCksIHN0ZDo6c2l6ZShzaW1wbGVVbml0cykpOworICAgIGlmICghcmVzdWx0KSB7CisgICAg
ICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBBU1NFUlQoCisgICAgICAgIHN0ZDo6aXNfc29ydGVk
KHN0ZDo6YmVnaW4oc2ltcGxlVW5pdHMpLCBzdGQ6OmVuZChzaW1wbGVVbml0cyksCisgICAgICAg
ICAgICBbXShjb25zdCBNZWFzdXJlVW5pdCYgYSwgY29uc3QgTWVhc3VyZVVuaXQmIGIpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21wYXJlKFN0cmluZ1ZpZXcoYS5z
dWJUeXBlKSwgU3RyaW5nVmlldyhiLnN1YlR5cGUpKSA8IDA7CisgICAgICAgICAgICB9KSk7CisK
KyAgICBpbnQzMl90IGluZGV4ID0gMDsKKyAgICBmb3IgKGNvbnN0IE1lYXN1cmVVbml0JiB1bml0
IDogc2ltcGxlVW5pdHMpIHsKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxP
YmplY3QsIGluZGV4KyssIGpzU3RyaW5nKHZtLCBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJh
bCh1bml0LnN1YlR5cGUpKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9w
cm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtaW50bC5zdXBwb3J0ZWR2YWx1ZXNvZgorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jU3VwcG9ydGVkVmFsdWVzT2YsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFN0cmluZyBrZXkgPSBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKKworICAgIGlmIChrZXkgPT0gImNhbGVuZGFyIl9zKQorICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVDYWxlbmRhcnMo
Z2xvYmFsT2JqZWN0KSkpOworCisgICAgaWYgKGtleSA9PSAiY29sbGF0aW9uIl9zKQorICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVDb2xs
YXRpb25zKGdsb2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkgPT0gImN1cnJlbmN5Il9zKQor
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFi
bGVDdXJyZW5jaWVzKGdsb2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkgPT0gIm51bWJlcmlu
Z1N5c3RlbSJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoYXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVtcyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBp
ZiAoa2V5ID09ICJ0aW1lWm9uZSJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoYXZhaWxhYmxlVGltZVpvbmVzKGdsb2JhbE9iamVjdCkpKTsKKwor
ICAgIGlmIChrZXkgPT0gInVuaXQiX3MpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKGF2YWlsYWJsZVVuaXRzKGdsb2JhbE9iamVjdCkpKTsKKworICAg
IHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVW5rbm93biBrZXkgZm9yIElu
dGwuc3VwcG9ydGVkVmFsdWVzT2YiX3MpOworICAgIHJldHVybiB7IH07Cit9CisKK0pTQXJyYXkq
IGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWZWN0b3I8U3RyaW5nLCAxPiYmIGVsZW1lbnRzKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisK
KyAgICBKU0FycmF5KiByZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVj
dC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0
aENvbnRpZ3VvdXMpLCBlbGVtZW50cy5zaXplKCkpOworICAgIGlmICghcmVzdWx0KSB7CisgICAg
ICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRl
eCA8IGVsZW1lbnRzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICByZXN1bHQtPnB1dERpcmVj
dEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBXVEZNb3ZlKGVsZW1lbnRz
W2luZGV4XSkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAg
ICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKaW5kZXggY2MwMWY2Y2FkZDQxMDVm
ZTUzODhjYTc4NzllMDA0MWE5NWYwNTFjYy4uZGM2OTZkNjVmYTVjNjM2MzIyYTZjNTE0ZjhiMDA3
ODRkZWYyZmM2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
aApAQCAtNjAsNiArNjAsMTMgQEAgSlNDX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMoSlND
X0RFQ0xBUkVfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05fS0VZUykKIHN0YXRpYyBjb25zdGV4cHIg
dWludDhfdCBudW1iZXJPZlJlbGV2YW50RXh0ZW5zaW9uS2V5cyA9IDAgSlNDX0lOVExfUkVMRVZB
TlRfRVhURU5TSU9OX0tFWVMoSlNDX0NPVU5UX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMp
OwogI3VuZGVmIEpTQ19DT1VOVF9JTlRMX1JFTEVWQU5UX0VYVEVOU0lPTl9LRVlTCiAKK3N0cnVj
dCBNZWFzdXJlVW5pdCB7CisgICAgQVNDSUlMaXRlcmFsIHR5cGU7CisgICAgQVNDSUlMaXRlcmFs
IHN1YlR5cGU7Cit9OworCitleHRlcm4gSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgTWVhc3VyZVVu
aXQgc2ltcGxlVW5pdHNbNDNdOworCiBjbGFzcyBJbnRsT2JqZWN0IGZpbmFsIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2Jq
ZWN0OwpAQCAtMTQxLDQgKzE0OCw2IEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBtYXBJQ1VDb2xs
YXRpb25LZXl3b3JkVG9CQ1A0Nyhjb25zdCBTdHJpbmcmKTsKIHN0ZDo6b3B0aW9uYWw8U3RyaW5n
PiBtYXBJQ1VDYWxlbmRhcktleXdvcmRUb0JDUDQ3KGNvbnN0IFN0cmluZyYpOwogc3RkOjpvcHRp
b25hbDxTdHJpbmc+IG1hcEJDUDQ3VG9JQ1VDYWxlbmRhcktleXdvcmQoY29uc3QgU3RyaW5nJik7
CiAKK0pTQXJyYXkqIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihKU0dsb2JhbE9iamVjdCos
IFZlY3RvcjxTdHJpbmcsIDE+JiYpOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IGY0NWI2ZWViNmI5MDNmZDk5
MWY0NzkxYzZiNGJjZmUyMGM5N2Y1ZjUuLjc4NTk4NDRmNzE1MDAwYTViNWEzMTZkYTcwZDAzMTBj
YWViM2E0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3Qu
aApAQCAtNTQ0LDYgKzU0NCw3IEBAIGJvb2wgY2FuVXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7
CiAgICAgdihCb29sLCB1c2VEYXRhSUNTaGFyaW5nLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBc
CiAgICAgdihCb29sLCB1c2VUZW1wb3JhbCwgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUgVGVt
cG9yYWwgb2JqZWN0LiIpIFwKICAgICB2KEJvb2wsIHVzZUFycmF5RmluZExhc3RNZXRob2QsIHRy
dWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgZmluZExhc3QoKSBhbmQgZmluZExhc3RJbmRleCgpIG1l
dGhvZHMgb24gQXJyYXkgYW5kICVUeXBlZEFycmF5JS4iKSBcCisgICAgdihCb29sLCB1c2VJbnRs
RW51bWVyYXRpb24sIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgSW50bCBlbnVtZXJhdGlvbiBB
UElzLiIpIFwKIAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0ltcGwuY3BwCmluZGV4IDdkM2YzNDYzMWFjOGU3OTc1ZTlmNDQ4NzM1NTNjZWYxZWQ3OGQwM2Yu
Ljc0ZjU2OTg4MmU2ZDQ2OTQ5ODNmNzE5MGExNzcwMjE2ZGEyNmNjODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdJbXBsLmNwcApAQCAtMTYzLDYgKzE2MywxMSBAQCBSZWY8U3RyaW5nSW1wbD4gU3Ry
aW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciogY2hhcmFjdGVycykKICAgICBy
ZXR1cm4gY3JlYXRlRnJvbUxpdGVyYWwoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3RlcnMpKTsK
IH0KIAorUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKEFTQ0lJ
TGl0ZXJhbCBsaXRlcmFsKQoreworICAgIHJldHVybiBjcmVhdGVGcm9tTGl0ZXJhbChsaXRlcmFs
LmNoYXJhY3RlcnMoKSwgbGl0ZXJhbC5sZW5ndGgoKSk7Cit9CisKIFJlZjxTdHJpbmdJbXBsPiBT
dHJpbmdJbXBsOjpjcmVhdGVXaXRob3V0Q29weWluZyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0lt
cGwuaAppbmRleCA0MjAzYzFjODI1NDFhOWQ4N2Q3YjViMGZiYjc0OGIxNmFjYTU4ODVlLi5hZGE5
ZDQxYjAyYTg5NDZkYjczMWZhYWZiOWRlYzY3YWNhZmU1ZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0ltcGwuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlGYXN0UGF0
aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NvbnZlcnNpb25Nb2RlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29tbW9uLmg+CkBAIC0yNDksNiArMjUwLDcgQEAg
Y2xhc3MgU3RyaW5nSW1wbCA6IHByaXZhdGUgU3RyaW5nSW1wbFNoYXBlIHsKICAgICAvLyBGSVhN
RTogUmVwbGFjZSBjYWxscyB0byB0aGVzZSBvdmVybG9hZHMgb2YgY3JlYXRlRnJvbUxpdGVyYWwg
dG8gY3JlYXRlV2l0aG91dENvcHlpbmcgaW5zdGVhZC4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKiwgdW5z
aWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJ
bXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKik7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoQVNDSUlMaXRlcmFs
KTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0
ZVdpdGhvdXRDb3B5aW5nKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVXaXRob3V0Q29weWlu
Zyhjb25zdCBMQ2hhciosIHVuc2lnbmVkIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ5MzUwNGI4NDVkZDkxNzJjNjcyY2Fj
ODY5ZTJjNzUzNWU4MWZlZGQuLjA1MTZiY2Q2ZDE0NDRmOGQyNjljNDQ3YjgxMmMyMDEzODAzNTU0
ZDIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgSW50bCBFbnVtZXJhdGlvbiBBUElzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3OTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9pbnRs
LWVudW1lcmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNo
b3VsZFRocm93KToKKyAgICAgICAgKiBzdHJlc3MvaW50bC1sb2NhbGUtaW5mby5qczoKKyAgICAg
ICAgKGxldC5sLm5ldy5JbnRsLkxvY2FsZS5zaG91bGRCZSk6CisgICAgICAgIChzaG91bGRCZSk6
CisKIDIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBSZW1vdmUgYWxyZWFkeS1zaGlwcGVkIEpTIGZlYXR1cmUgZmxhZ3MKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtZW51bWVyYXRpb24uanMgYi9KU1Rlc3RzL3N0cmVz
cy9pbnRsLWVudW1lcmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjZTIwNTQxMzU2ZGNjZTU2YzdmZjVl
M2I2YzQzNWY4YjIzODhlODkKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRs
LWVudW1lcmF0aW9uLmpzCkBAIC0wLDAgKzEsMzkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVh
bCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBleHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfWApOwor
fQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKKyAgICBsZXQgZXJy
b3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgZXJyb3JU
eXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlwZS5uYW1l
fSFgKTsKK30KKworbGV0IGNhbGVuZGFycyA9IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoImNhbGVu
ZGFyIik7CitzaG91bGRCZShKU09OLnN0cmluZ2lmeShjYWxlbmRhcnMpLCBgWyJidWRkaGlzdCIs
ImNoaW5lc2UiLCJjb3B0aWMiLCJkYW5naSIsImV0aGlvYWEiLCJldGhpb3BpYyIsImdyZWdvcnki
LCJoZWJyZXciLCJpbmRpYW4iLCJpc2xhbWljIiwiaXNsYW1pYy1jaXZpbCIsImlzbGFtaWMtcmdz
YSIsImlzbGFtaWMtdGJsYSIsImlzbGFtaWMtdW1hbHF1cmEiLCJpc284NjAxIiwiamFwYW5lc2Ui
LCJwZXJzaWFuIiwicm9jIl1gKTsKKworbGV0IGNvbGxhdGlvbnMgPSBJbnRsLnN1cHBvcnRlZFZh
bHVlc09mKCJjb2xsYXRpb24iKTsKK3Nob3VsZEJlKEpTT04uc3RyaW5naWZ5KGNvbGxhdGlvbnMp
LCBgWyJiaWc1aGFuIiwiY29tcGF0IiwiZGljdCIsImdiMjMxMiIsInBob25lYmsiLCJwaG9uZXRp
YyIsInBpbnlpbiIsInJlZm9ybWVkIiwic2VhcmNoamwiLCJzdHJva2UiLCJ0cmFkIiwidW5paGFu
Iiwiemh1eWluIl1gKTsKKworbGV0IGN1cnJlbmNpZXMgPSBJbnRsLnN1cHBvcnRlZFZhbHVlc09m
KCJjdXJyZW5jeSIpOworc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoY3VycmVuY2llcyksIGBbIkFF
RCIsIkFGTiIsIkFMTCIsIkFNRCIsIkFORyIsIkFPQSIsIkFSUyIsIkFVRCIsIkFXRyIsIkFaTiIs
IkJBTSIsIkJCRCIsIkJEVCIsIkJHTiIsIkJIRCIsIkJJRiIsIkJNRCIsIkJORCIsIkJPQiIsIkJS
TCIsIkJTRCIsIkJUTiIsIkJXUCIsIkJZTiIsIkJaRCIsIkNBRCIsIkNERiIsIkNIRiIsIkNMUCIs
IkNOWSIsIkNPUCIsIkNSQyIsIkNVQyIsIkNVUCIsIkNWRSIsIkNaSyIsIkRKRiIsIkRLSyIsIkRP
UCIsIkRaRCIsIkVHUCIsIkVSTiIsIkVUQiIsIkVVUiIsIkZKRCIsIkZLUCIsIkdCUCIsIkdFTCIs
IkdIUyIsIkdJUCIsIkdNRCIsIkdORiIsIkdUUSIsIkdZRCIsIkhLRCIsIkhOTCIsIkhSSyIsIkhU
RyIsIkhVRiIsIklEUiIsIklMUyIsIklOUiIsIklRRCIsIklSUiIsIklTSyIsIkpNRCIsIkpPRCIs
IkpQWSIsIktFUyIsIktHUyIsIktIUiIsIktNRiIsIktQVyIsIktSVyIsIktXRCIsIktZRCIsIkta
VCIsIkxBSyIsIkxCUCIsIkxLUiIsIkxSRCIsIkxTTCIsIkxZRCIsIk1BRCIsIk1ETCIsIk1HQSIs
Ik1LRCIsIk1NSyIsIk1OVCIsIk1PUCIsIk1SVSIsIk1VUiIsIk1WUiIsIk1XSyIsIk1YTiIsIk1Z
UiIsIk1aTiIsIk5BRCIsIk5HTiIsIk5JTyIsIk5PSyIsIk5QUiIsIk5aRCIsIk9NUiIsIlBBQiIs
IlBFTiIsIlBHSyIsIlBIUCIsIlBLUiIsIlBMTiIsIlBZRyIsIlFBUiIsIlJPTiIsIlJTRCIsIlJV
QiIsIlJXRiIsIlNBUiIsIlNCRCIsIlNDUiIsIlNERyIsIlNFSyIsIlNHRCIsIlNIUCIsIlNMTCIs
IlNPUyIsIlNSRCIsIlNTUCIsIlNUTiIsIlNZUCIsIlNaTCIsIlRIQiIsIlRKUyIsIlRNVCIsIlRO
RCIsIlRPUCIsIlRSWSIsIlRURCIsIlRXRCIsIlRaUyIsIlVBSCIsIlVHWCIsIlVTRCIsIlVZVSIs
IlVaUyIsIlZFRiIsIlZORCIsIlZVViIsIldTVCIsIlhBRiIsIlhDRCIsIlhPRiIsIlhQRiIsIllF
UiIsIlpBUiIsIlpNVyJdYCk7CisKK2xldCBudW1iZXJpbmdTeXN0ZW1zID0gSW50bC5zdXBwb3J0
ZWRWYWx1ZXNPZigibnVtYmVyaW5nU3lzdGVtIik7CitsZXQgbnVtYmVyaW5nU3lzdGVtc1N0cmlu
ZyA9IEpTT04uc3RyaW5naWZ5KG51bWJlcmluZ1N5c3RlbXMpOworc2hvdWxkQmUobnVtYmVyaW5n
U3lzdGVtc1N0cmluZyA9PT0gYFsiYWRsbSIsImFob20iLCJhcmFiIiwiYXJhYmV4dCIsImFybW4i
LCJhcm1ubG93IiwiYmFsaSIsImJlbmciLCJiaGtzIiwiYnJhaCIsImNha20iLCJjaGFtIiwiY3ly
bCIsImRldmEiLCJkaWFrIiwiZXRoaSIsImZ1bGx3aWRlIiwiZ2VvciIsImdvbmciLCJnb25tIiwi
Z3JlayIsImdyZWtsb3ciLCJndWpyIiwiZ3VydSIsImhhbmlkYXlzIiwiaGFuaWRlYyIsImhhbnMi
LCJoYW5zZmluIiwiaGFudCIsImhhbnRmaW4iLCJoZWJyIiwiaG1uZyIsImhtbnAiLCJqYXZhIiwi
anBhbiIsImpwYW5maW4iLCJqcGFueWVhciIsImthbGkiLCJraG1yIiwia25kYSIsImxhbmEiLCJs
YW5hdGhhbSIsImxhb28iLCJsYXRuIiwibGVwYyIsImxpbWIiLCJtYXRoYm9sZCIsIm1hdGhkYmwi
LCJtYXRobW9ubyIsIm1hdGhzYW5iIiwibWF0aHNhbnMiLCJtbHltIiwibW9kaSIsIm1vbmciLCJt
cm9vIiwibXRlaSIsIm15bXIiLCJteW1yc2hhbiIsIm15bXJ0bG5nIiwibmV3YSIsIm5rb28iLCJv
bGNrIiwib3J5YSIsIm9zbWEiLCJyb2hnIiwicm9tYW4iLCJyb21hbmxvdyIsInNhdXIiLCJzZWdt
ZW50Iiwic2hyZCIsInNpbmQiLCJzaW5oIiwic29yYSIsInN1bmQiLCJ0YWtyIiwidGFsdSIsInRh
bWwiLCJ0YW1sZGVjIiwidGVsdSIsInRoYWkiLCJ0aWJ0IiwidGlyaCIsInZhaWkiLCJ3YXJhIiwi
d2NobyJdYCB8fCBudW1iZXJpbmdTeXN0ZW1zU3RyaW5nID09PSBgWyJhZGxtIiwiYWhvbSIsImFy
YWIiLCJhcmFiZXh0IiwiYXJtbiIsImFybW5sb3ciLCJiYWxpIiwiYmVuZyIsImJoa3MiLCJicmFo
IiwiY2FrbSIsImNoYW0iLCJjeXJsIiwiZGV2YSIsImV0aGkiLCJmdWxsd2lkZSIsImdlb3IiLCJn
b25nIiwiZ29ubSIsImdyZWsiLCJncmVrbG93IiwiZ3VqciIsImd1cnUiLCJoYW5pZGF5cyIsImhh
bmlkZWMiLCJoYW5zIiwiaGFuc2ZpbiIsImhhbnQiLCJoYW50ZmluIiwiaGViciIsImhtbmciLCJo
bW5wIiwiamF2YSIsImpwYW4iLCJqcGFuZmluIiwianBhbnllYXIiLCJrYWxpIiwia2htciIsImtu
ZGEiLCJsYW5hIiwibGFuYXRoYW0iLCJsYW9vIiwibGF0biIsImxlcGMiLCJsaW1iIiwibWF0aGJv
bGQiLCJtYXRoZGJsIiwibWF0aG1vbm8iLCJtYXRoc2FuYiIsIm1hdGhzYW5zIiwibWx5bSIsIm1v
ZGkiLCJtb25nIiwibXJvbyIsIm10ZWkiLCJteW1yIiwibXltcnNoYW4iLCJteW1ydGxuZyIsIm5l
d2EiLCJua29vIiwib2xjayIsIm9yeWEiLCJvc21hIiwicm9oZyIsInJvbWFuIiwicm9tYW5sb3ci
LCJzYXVyIiwic2hyZCIsInNpbmQiLCJzaW5oIiwic29yYSIsInN1bmQiLCJ0YWtyIiwidGFsdSIs
InRhbWwiLCJ0YW1sZGVjIiwidGVsdSIsInRoYWkiLCJ0aWJ0IiwidGlyaCIsInZhaWkiLCJ3YXJh
Iiwid2NobyJdYCwgdHJ1ZSk7CisKK2xldCB0aW1lWm9uZXMgPSBJbnRsLnN1cHBvcnRlZFZhbHVl
c09mKCJ0aW1lWm9uZSIpOworc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkodGltZVpvbmVzKSwgYFsi
QWZyaWNhL0FiaWRqYW4iLCJBZnJpY2EvQWNjcmEiLCJBZnJpY2EvQWRkaXNfQWJhYmEiLCJBZnJp
Y2EvQWxnaWVycyIsIkFmcmljYS9Bc21lcmEiLCJBZnJpY2EvQmFtYWtvIiwiQWZyaWNhL0Jhbmd1
aSIsIkFmcmljYS9CYW5qdWwiLCJBZnJpY2EvQmlzc2F1IiwiQWZyaWNhL0JsYW50eXJlIiwiQWZy
aWNhL0JyYXp6YXZpbGxlIiwiQWZyaWNhL0J1anVtYnVyYSIsIkFmcmljYS9DYWlybyIsIkFmcmlj
YS9DYXNhYmxhbmNhIiwiQWZyaWNhL0NldXRhIiwiQWZyaWNhL0NvbmFrcnkiLCJBZnJpY2EvRGFr
YXIiLCJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsIkFmcmljYS9Eamlib3V0aSIsIkFmcmljYS9Eb3Vh
bGEiLCJBZnJpY2EvRWxfQWFpdW4iLCJBZnJpY2EvRnJlZXRvd24iLCJBZnJpY2EvR2Fib3JvbmUi
LCJBZnJpY2EvSGFyYXJlIiwiQWZyaWNhL0pvaGFubmVzYnVyZyIsIkFmcmljYS9KdWJhIiwiQWZy
aWNhL0thbXBhbGEiLCJBZnJpY2EvS2hhcnRvdW0iLCJBZnJpY2EvS2lnYWxpIiwiQWZyaWNhL0tp
bnNoYXNhIiwiQWZyaWNhL0xhZ29zIiwiQWZyaWNhL0xpYnJldmlsbGUiLCJBZnJpY2EvTG9tZSIs
IkFmcmljYS9MdWFuZGEiLCJBZnJpY2EvTHVidW1iYXNoaSIsIkFmcmljYS9MdXNha2EiLCJBZnJp
Y2EvTWFsYWJvIiwiQWZyaWNhL01hcHV0byIsIkFmcmljYS9NYXNlcnUiLCJBZnJpY2EvTWJhYmFu
ZSIsIkFmcmljYS9Nb2dhZGlzaHUiLCJBZnJpY2EvTW9ucm92aWEiLCJBZnJpY2EvTmFpcm9iaSIs
IkFmcmljYS9OZGphbWVuYSIsIkFmcmljYS9OaWFtZXkiLCJBZnJpY2EvTm91YWtjaG90dCIsIkFm
cmljYS9PdWFnYWRvdWdvdSIsIkFmcmljYS9Qb3J0by1Ob3ZvIiwiQWZyaWNhL1Nhb19Ub21lIiwi
QWZyaWNhL1RyaXBvbGkiLCJBZnJpY2EvVHVuaXMiLCJBZnJpY2EvV2luZGhvZWsiLCJBbWVyaWNh
L0FkYWsiLCJBbWVyaWNhL0FuY2hvcmFnZSIsIkFtZXJpY2EvQW5ndWlsbGEiLCJBbWVyaWNhL0Fu
dGlndWEiLCJBbWVyaWNhL0FyYWd1YWluYSIsIkFtZXJpY2EvQXJnZW50aW5hL0xhX1Jpb2phIiwi
QW1lcmljYS9BcmdlbnRpbmEvUmlvX0dhbGxlZ29zIiwiQW1lcmljYS9BcmdlbnRpbmEvU2FsdGEi
LCJBbWVyaWNhL0FyZ2VudGluYS9TYW5fSnVhbiIsIkFtZXJpY2EvQXJnZW50aW5hL1Nhbl9MdWlz
IiwiQW1lcmljYS9BcmdlbnRpbmEvVHVjdW1hbiIsIkFtZXJpY2EvQXJnZW50aW5hL1VzaHVhaWEi
LCJBbWVyaWNhL0FydWJhIiwiQW1lcmljYS9Bc3VuY2lvbiIsIkFtZXJpY2EvQmFoaWEiLCJBbWVy
aWNhL0JhaGlhX0JhbmRlcmFzIiwiQW1lcmljYS9CYXJiYWRvcyIsIkFtZXJpY2EvQmVsZW0iLCJB
bWVyaWNhL0JlbGl6ZSIsIkFtZXJpY2EvQmxhbmMtU2FibG9uIiwiQW1lcmljYS9Cb2FfVmlzdGEi
LCJBbWVyaWNhL0JvZ290YSIsIkFtZXJpY2EvQm9pc2UiLCJBbWVyaWNhL0J1ZW5vc19BaXJlcyIs
IkFtZXJpY2EvQ2FtYnJpZGdlX0JheSIsIkFtZXJpY2EvQ2FtcG9fR3JhbmRlIiwiQW1lcmljYS9D
YW5jdW4iLCJBbWVyaWNhL0NhcmFjYXMiLCJBbWVyaWNhL0NhdGFtYXJjYSIsIkFtZXJpY2EvQ2F5
ZW5uZSIsIkFtZXJpY2EvQ2F5bWFuIiwiQW1lcmljYS9DaGljYWdvIiwiQW1lcmljYS9DaGlodWFo
dWEiLCJBbWVyaWNhL0NvcmFsX0hhcmJvdXIiLCJBbWVyaWNhL0NvcmRvYmEiLCJBbWVyaWNhL0Nv
c3RhX1JpY2EiLCJBbWVyaWNhL0NyZXN0b24iLCJBbWVyaWNhL0N1aWFiYSIsIkFtZXJpY2EvQ3Vy
YWNhbyIsIkFtZXJpY2EvRGFubWFya3NoYXZuIiwiQW1lcmljYS9EYXdzb24iLCJBbWVyaWNhL0Rh
d3Nvbl9DcmVlayIsIkFtZXJpY2EvRGVudmVyIiwiQW1lcmljYS9EZXRyb2l0IiwiQW1lcmljYS9E
b21pbmljYSIsIkFtZXJpY2EvRWRtb250b24iLCJBbWVyaWNhL0VpcnVuZXBlIiwiQW1lcmljYS9F
bF9TYWx2YWRvciIsIkFtZXJpY2EvRm9ydF9OZWxzb24iLCJBbWVyaWNhL0ZvcnRhbGV6YSIsIkFt
ZXJpY2EvR2xhY2VfQmF5IiwiQW1lcmljYS9Hb2R0aGFiIiwiQW1lcmljYS9Hb29zZV9CYXkiLCJB
bWVyaWNhL0dyYW5kX1R1cmsiLCJBbWVyaWNhL0dyZW5hZGEiLCJBbWVyaWNhL0d1YWRlbG91cGUi
LCJBbWVyaWNhL0d1YXRlbWFsYSIsIkFtZXJpY2EvR3VheWFxdWlsIiwiQW1lcmljYS9HdXlhbmEi
LCJBbWVyaWNhL0hhbGlmYXgiLCJBbWVyaWNhL0hhdmFuYSIsIkFtZXJpY2EvSGVybW9zaWxsbyIs
IkFtZXJpY2EvSW5kaWFuYS9Lbm94IiwiQW1lcmljYS9JbmRpYW5hL01hcmVuZ28iLCJBbWVyaWNh
L0luZGlhbmEvUGV0ZXJzYnVyZyIsIkFtZXJpY2EvSW5kaWFuYS9UZWxsX0NpdHkiLCJBbWVyaWNh
L0luZGlhbmEvVmV2YXkiLCJBbWVyaWNhL0luZGlhbmEvVmluY2VubmVzIiwiQW1lcmljYS9JbmRp
YW5hL1dpbmFtYWMiLCJBbWVyaWNhL0luZGlhbmFwb2xpcyIsIkFtZXJpY2EvSW51dmlrIiwiQW1l
cmljYS9JcWFsdWl0IiwiQW1lcmljYS9KYW1haWNhIiwiQW1lcmljYS9KdWp1eSIsIkFtZXJpY2Ev
SnVuZWF1IiwiQW1lcmljYS9LZW50dWNreS9Nb250aWNlbGxvIiwiQW1lcmljYS9LcmFsZW5kaWpr
IiwiQW1lcmljYS9MYV9QYXoiLCJBbWVyaWNhL0xpbWEiLCJBbWVyaWNhL0xvc19BbmdlbGVzIiwi
QW1lcmljYS9Mb3Vpc3ZpbGxlIiwiQW1lcmljYS9Mb3dlcl9QcmluY2VzIiwiQW1lcmljYS9NYWNl
aW8iLCJBbWVyaWNhL01hbmFndWEiLCJBbWVyaWNhL01hbmF1cyIsIkFtZXJpY2EvTWFyaWdvdCIs
IkFtZXJpY2EvTWFydGluaXF1ZSIsIkFtZXJpY2EvTWF0YW1vcm9zIiwiQW1lcmljYS9NYXphdGxh
biIsIkFtZXJpY2EvTWVuZG96YSIsIkFtZXJpY2EvTWVub21pbmVlIiwiQW1lcmljYS9NZXJpZGEi
LCJBbWVyaWNhL01ldGxha2F0bGEiLCJBbWVyaWNhL01leGljb19DaXR5IiwiQW1lcmljYS9NaXF1
ZWxvbiIsIkFtZXJpY2EvTW9uY3RvbiIsIkFtZXJpY2EvTW9udGVycmV5IiwiQW1lcmljYS9Nb250
ZXZpZGVvIiwiQW1lcmljYS9Nb250cmVhbCIsIkFtZXJpY2EvTW9udHNlcnJhdCIsIkFtZXJpY2Ev
TmFzc2F1IiwiQW1lcmljYS9OZXdfWW9yayIsIkFtZXJpY2EvTmlwaWdvbiIsIkFtZXJpY2EvTm9t
ZSIsIkFtZXJpY2EvTm9yb25oYSIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0JldWxhaCIsIkFtZXJp
Y2EvTm9ydGhfRGFrb3RhL0NlbnRlciIsIkFtZXJpY2EvTm9ydGhfRGFrb3RhL05ld19TYWxlbSIs
IkFtZXJpY2EvT2ppbmFnYSIsIkFtZXJpY2EvUGFuYW1hIiwiQW1lcmljYS9QYW5nbmlydHVuZyIs
IkFtZXJpY2EvUGFyYW1hcmlibyIsIkFtZXJpY2EvUGhvZW5peCIsIkFtZXJpY2EvUG9ydC1hdS1Q
cmluY2UiLCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW4iLCJBbWVyaWNhL1BvcnRvX1ZlbGhvIiwiQW1l
cmljYS9QdWVydG9fUmljbyIsIkFtZXJpY2EvUHVudGFfQXJlbmFzIiwiQW1lcmljYS9SYWlueV9S
aXZlciIsIkFtZXJpY2EvUmFua2luX0lubGV0IiwiQW1lcmljYS9SZWNpZmUiLCJBbWVyaWNhL1Jl
Z2luYSIsIkFtZXJpY2EvUmVzb2x1dGUiLCJBbWVyaWNhL1Jpb19CcmFuY28iLCJBbWVyaWNhL1Nh
bnRhX0lzYWJlbCIsIkFtZXJpY2EvU2FudGFyZW0iLCJBbWVyaWNhL1NhbnRpYWdvIiwiQW1lcmlj
YS9TYW50b19Eb21pbmdvIiwiQW1lcmljYS9TYW9fUGF1bG8iLCJBbWVyaWNhL1Njb3Jlc2J5c3Vu
ZCIsIkFtZXJpY2EvU2l0a2EiLCJBbWVyaWNhL1N0X0JhcnRoZWxlbXkiLCJBbWVyaWNhL1N0X0pv
aG5zIiwiQW1lcmljYS9TdF9LaXR0cyIsIkFtZXJpY2EvU3RfTHVjaWEiLCJBbWVyaWNhL1N0X1Ro
b21hcyIsIkFtZXJpY2EvU3RfVmluY2VudCIsIkFtZXJpY2EvU3dpZnRfQ3VycmVudCIsIkFtZXJp
Y2EvVGVndWNpZ2FscGEiLCJBbWVyaWNhL1RodWxlIiwiQW1lcmljYS9UaHVuZGVyX0JheSIsIkFt
ZXJpY2EvVGlqdWFuYSIsIkFtZXJpY2EvVG9yb250byIsIkFtZXJpY2EvVG9ydG9sYSIsIkFtZXJp
Y2EvVmFuY291dmVyIiwiQW1lcmljYS9XaGl0ZWhvcnNlIiwiQW1lcmljYS9XaW5uaXBlZyIsIkFt
ZXJpY2EvWWFrdXRhdCIsIkFtZXJpY2EvWWVsbG93a25pZmUiLCJBbnRhcmN0aWNhL0Nhc2V5Iiwi
QW50YXJjdGljYS9EYXZpcyIsIkFudGFyY3RpY2EvRHVtb250RFVydmlsbGUiLCJBbnRhcmN0aWNh
L01hY3F1YXJpZSIsIkFudGFyY3RpY2EvTWF3c29uIiwiQW50YXJjdGljYS9NY011cmRvIiwiQW50
YXJjdGljYS9QYWxtZXIiLCJBbnRhcmN0aWNhL1JvdGhlcmEiLCJBbnRhcmN0aWNhL1N5b3dhIiwi
QW50YXJjdGljYS9Ucm9sbCIsIkFudGFyY3RpY2EvVm9zdG9rIiwiQXJjdGljL0xvbmd5ZWFyYnll
biIsIkFzaWEvQWRlbiIsIkFzaWEvQWxtYXR5IiwiQXNpYS9BbW1hbiIsIkFzaWEvQW5hZHlyIiwi
QXNpYS9BcXRhdSIsIkFzaWEvQXF0b2JlIiwiQXNpYS9Bc2hnYWJhdCIsIkFzaWEvQXR5cmF1Iiwi
QXNpYS9CYWdoZGFkIiwiQXNpYS9CYWhyYWluIiwiQXNpYS9CYWt1IiwiQXNpYS9CYW5na29rIiwi
QXNpYS9CYXJuYXVsIiwiQXNpYS9CZWlydXQiLCJBc2lhL0Jpc2hrZWsiLCJBc2lhL0JydW5laSIs
IkFzaWEvQ2FsY3V0dGEiLCJBc2lhL0NoaXRhIiwiQXNpYS9DaG9pYmFsc2FuIiwiQXNpYS9Db2xv
bWJvIiwiQXNpYS9EYW1hc2N1cyIsIkFzaWEvRGhha2EiLCJBc2lhL0RpbGkiLCJBc2lhL0R1YmFp
IiwiQXNpYS9EdXNoYW5iZSIsIkFzaWEvRmFtYWd1c3RhIiwiQXNpYS9HYXphIiwiQXNpYS9IZWJy
b24iLCJBc2lhL0hvbmdfS29uZyIsIkFzaWEvSG92ZCIsIkFzaWEvSXJrdXRzayIsIkFzaWEvSmFr
YXJ0YSIsIkFzaWEvSmF5YXB1cmEiLCJBc2lhL0plcnVzYWxlbSIsIkFzaWEvS2FidWwiLCJBc2lh
L0thbWNoYXRrYSIsIkFzaWEvS2FyYWNoaSIsIkFzaWEvS2F0bWFuZHUiLCJBc2lhL0toYW5keWdh
IiwiQXNpYS9LcmFzbm95YXJzayIsIkFzaWEvS3VhbGFfTHVtcHVyIiwiQXNpYS9LdWNoaW5nIiwi
QXNpYS9LdXdhaXQiLCJBc2lhL01hY2F1IiwiQXNpYS9NYWdhZGFuIiwiQXNpYS9NYWthc3NhciIs
IkFzaWEvTWFuaWxhIiwiQXNpYS9NdXNjYXQiLCJBc2lhL05pY29zaWEiLCJBc2lhL05vdm9rdXpu
ZXRzayIsIkFzaWEvTm92b3NpYmlyc2siLCJBc2lhL09tc2siLCJBc2lhL09yYWwiLCJBc2lhL1Bo
bm9tX1BlbmgiLCJBc2lhL1BvbnRpYW5hayIsIkFzaWEvUHlvbmd5YW5nIiwiQXNpYS9RYXRhciIs
IkFzaWEvUW9zdGFuYXkiLCJBc2lhL1F5enlsb3JkYSIsIkFzaWEvUmFuZ29vbiIsIkFzaWEvUml5
YWRoIiwiQXNpYS9TYWlnb24iLCJBc2lhL1Nha2hhbGluIiwiQXNpYS9TYW1hcmthbmQiLCJBc2lh
L1Nlb3VsIiwiQXNpYS9TaGFuZ2hhaSIsIkFzaWEvU2luZ2Fwb3JlIiwiQXNpYS9TcmVkbmVrb2x5
bXNrIiwiQXNpYS9UYWlwZWkiLCJBc2lhL1Rhc2hrZW50IiwiQXNpYS9UYmlsaXNpIiwiQXNpYS9U
ZWhyYW4iLCJBc2lhL1RoaW1waHUiLCJBc2lhL1Rva3lvIiwiQXNpYS9Ub21zayIsIkFzaWEvVWxh
YW5iYWF0YXIiLCJBc2lhL1VydW1xaSIsIkFzaWEvVXN0LU5lcmEiLCJBc2lhL1ZpZW50aWFuZSIs
IkFzaWEvVmxhZGl2b3N0b2siLCJBc2lhL1lha3V0c2siLCJBc2lhL1lla2F0ZXJpbmJ1cmciLCJB
c2lhL1llcmV2YW4iLCJBdGxhbnRpYy9Bem9yZXMiLCJBdGxhbnRpYy9CZXJtdWRhIiwiQXRsYW50
aWMvQ2FuYXJ5IiwiQXRsYW50aWMvQ2FwZV9WZXJkZSIsIkF0bGFudGljL0ZhZXJvZSIsIkF0bGFu
dGljL01hZGVpcmEiLCJBdGxhbnRpYy9SZXlramF2aWsiLCJBdGxhbnRpYy9Tb3V0aF9HZW9yZ2lh
IiwiQXRsYW50aWMvU3RfSGVsZW5hIiwiQXRsYW50aWMvU3RhbmxleSIsIkF1c3RyYWxpYS9BZGVs
YWlkZSIsIkF1c3RyYWxpYS9CcmlzYmFuZSIsIkF1c3RyYWxpYS9Ccm9rZW5fSGlsbCIsIkF1c3Ry
YWxpYS9DdXJyaWUiLCJBdXN0cmFsaWEvRGFyd2luIiwiQXVzdHJhbGlhL0V1Y2xhIiwiQXVzdHJh
bGlhL0hvYmFydCIsIkF1c3RyYWxpYS9MaW5kZW1hbiIsIkF1c3RyYWxpYS9Mb3JkX0hvd2UiLCJB
dXN0cmFsaWEvTWVsYm91cm5lIiwiQXVzdHJhbGlhL1BlcnRoIiwiQXVzdHJhbGlhL1N5ZG5leSIs
IkV1cm9wZS9BbXN0ZXJkYW0iLCJFdXJvcGUvQW5kb3JyYSIsIkV1cm9wZS9Bc3RyYWtoYW4iLCJF
dXJvcGUvQXRoZW5zIiwiRXVyb3BlL0JlbGdyYWRlIiwiRXVyb3BlL0JlcmxpbiIsIkV1cm9wZS9C
cmF0aXNsYXZhIiwiRXVyb3BlL0JydXNzZWxzIiwiRXVyb3BlL0J1Y2hhcmVzdCIsIkV1cm9wZS9C
dWRhcGVzdCIsIkV1cm9wZS9CdXNpbmdlbiIsIkV1cm9wZS9DaGlzaW5hdSIsIkV1cm9wZS9Db3Bl
bmhhZ2VuIiwiRXVyb3BlL0R1YmxpbiIsIkV1cm9wZS9HaWJyYWx0YXIiLCJFdXJvcGUvR3Vlcm5z
ZXkiLCJFdXJvcGUvSGVsc2lua2kiLCJFdXJvcGUvSXNsZV9vZl9NYW4iLCJFdXJvcGUvSXN0YW5i
dWwiLCJFdXJvcGUvSmVyc2V5IiwiRXVyb3BlL0thbGluaW5ncmFkIiwiRXVyb3BlL0tpZXYiLCJF
dXJvcGUvS2lyb3YiLCJFdXJvcGUvTGlzYm9uIiwiRXVyb3BlL0xqdWJsamFuYSIsIkV1cm9wZS9M
b25kb24iLCJFdXJvcGUvTHV4ZW1ib3VyZyIsIkV1cm9wZS9NYWRyaWQiLCJFdXJvcGUvTWFsdGEi
LCJFdXJvcGUvTWFyaWVoYW1uIiwiRXVyb3BlL01pbnNrIiwiRXVyb3BlL01vbmFjbyIsIkV1cm9w
ZS9Nb3Njb3ciLCJFdXJvcGUvT3NsbyIsIkV1cm9wZS9QYXJpcyIsIkV1cm9wZS9Qb2Rnb3JpY2Ei
LCJFdXJvcGUvUHJhZ3VlIiwiRXVyb3BlL1JpZ2EiLCJFdXJvcGUvUm9tZSIsIkV1cm9wZS9TYW1h
cmEiLCJFdXJvcGUvU2FuX01hcmlubyIsIkV1cm9wZS9TYXJhamV2byIsIkV1cm9wZS9TYXJhdG92
IiwiRXVyb3BlL1NpbWZlcm9wb2wiLCJFdXJvcGUvU2tvcGplIiwiRXVyb3BlL1NvZmlhIiwiRXVy
b3BlL1N0b2NraG9sbSIsIkV1cm9wZS9UYWxsaW5uIiwiRXVyb3BlL1RpcmFuZSIsIkV1cm9wZS9V
bHlhbm92c2siLCJFdXJvcGUvVXpoZ29yb2QiLCJFdXJvcGUvVmFkdXoiLCJFdXJvcGUvVmF0aWNh
biIsIkV1cm9wZS9WaWVubmEiLCJFdXJvcGUvVmlsbml1cyIsIkV1cm9wZS9Wb2xnb2dyYWQiLCJF
dXJvcGUvV2Fyc2F3IiwiRXVyb3BlL1phZ3JlYiIsIkV1cm9wZS9aYXBvcm96aHllIiwiRXVyb3Bl
L1p1cmljaCIsIkluZGlhbi9BbnRhbmFuYXJpdm8iLCJJbmRpYW4vQ2hhZ29zIiwiSW5kaWFuL0No
cmlzdG1hcyIsIkluZGlhbi9Db2NvcyIsIkluZGlhbi9Db21vcm8iLCJJbmRpYW4vS2VyZ3VlbGVu
IiwiSW5kaWFuL01haGUiLCJJbmRpYW4vTWFsZGl2ZXMiLCJJbmRpYW4vTWF1cml0aXVzIiwiSW5k
aWFuL01heW90dGUiLCJJbmRpYW4vUmV1bmlvbiIsIlBhY2lmaWMvQXBpYSIsIlBhY2lmaWMvQXVj
a2xhbmQiLCJQYWNpZmljL0JvdWdhaW52aWxsZSIsIlBhY2lmaWMvQ2hhdGhhbSIsIlBhY2lmaWMv
RWFzdGVyIiwiUGFjaWZpYy9FZmF0ZSIsIlBhY2lmaWMvRW5kZXJidXJ5IiwiUGFjaWZpYy9GYWth
b2ZvIiwiUGFjaWZpYy9GaWppIiwiUGFjaWZpYy9GdW5hZnV0aSIsIlBhY2lmaWMvR2FsYXBhZ29z
IiwiUGFjaWZpYy9HYW1iaWVyIiwiUGFjaWZpYy9HdWFkYWxjYW5hbCIsIlBhY2lmaWMvR3VhbSIs
IlBhY2lmaWMvSG9ub2x1bHUiLCJQYWNpZmljL0pvaG5zdG9uIiwiUGFjaWZpYy9LaXJpdGltYXRp
IiwiUGFjaWZpYy9Lb3NyYWUiLCJQYWNpZmljL0t3YWphbGVpbiIsIlBhY2lmaWMvTWFqdXJvIiwi
UGFjaWZpYy9NYXJxdWVzYXMiLCJQYWNpZmljL01pZHdheSIsIlBhY2lmaWMvTmF1cnUiLCJQYWNp
ZmljL05pdWUiLCJQYWNpZmljL05vcmZvbGsiLCJQYWNpZmljL05vdW1lYSIsIlBhY2lmaWMvUGFn
b19QYWdvIiwiUGFjaWZpYy9QYWxhdSIsIlBhY2lmaWMvUGl0Y2Fpcm4iLCJQYWNpZmljL1BvbmFw
ZSIsIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5IiwiUGFjaWZpYy9SYXJvdG9uZ2EiLCJQYWNpZmljL1Nh
aXBhbiIsIlBhY2lmaWMvVGFoaXRpIiwiUGFjaWZpYy9UYXJhd2EiLCJQYWNpZmljL1RvbmdhdGFw
dSIsIlBhY2lmaWMvVHJ1ayIsIlBhY2lmaWMvV2FrZSIsIlBhY2lmaWMvV2FsbGlzIl1gKTsKKwor
bGV0IHVuaXRzID0gSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZigidW5pdCIpOworc2hvdWxkQmUoSlNP
Ti5zdHJpbmdpZnkodW5pdHMpLCBgWyJhY3JlIiwiYml0IiwiYnl0ZSIsImNlbHNpdXMiLCJjZW50
aW1ldGVyIiwiZGF5IiwiZGVncmVlIiwiZmFocmVuaGVpdCIsImZsdWlkLW91bmNlIiwiZm9vdCIs
ImdhbGxvbiIsImdpZ2FiaXQiLCJnaWdhYnl0ZSIsImdyYW0iLCJoZWN0YXJlIiwiaG91ciIsImlu
Y2giLCJraWxvYml0Iiwia2lsb2J5dGUiLCJraWxvZ3JhbSIsImtpbG9tZXRlciIsImxpdGVyIiwi
bWVnYWJpdCIsIm1lZ2FieXRlIiwibWV0ZXIiLCJtaWxlIiwibWlsZS1zY2FuZGluYXZpYW4iLCJt
aWxsaWxpdGVyIiwibWlsbGltZXRlciIsIm1pbGxpc2Vjb25kIiwibWludXRlIiwibW9udGgiLCJv
dW5jZSIsInBlcmNlbnQiLCJwZXRhYnl0ZSIsInBvdW5kIiwic2Vjb25kIiwic3RvbmUiLCJ0ZXJh
Yml0IiwidGVyYWJ5dGUiLCJ3ZWVrIiwieWFyZCIsInllYXIiXWApOworCitzaG91bGRUaHJvdygo
KSA9PiB7CisgICAgSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZigiaW52YWxpZCIpOworfSwgUmFuZ2VF
cnJvcik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS1pbmZvLmpzIGIv
SlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUtaW5mby5qcwppbmRleCAwN2MyMWI2ZTdmMTc4MmRj
MWU4MjA5YWY2YzE4Y2RjYzc2M2ViNDA4Li45ZDRjYTAxODY5MmMxMGNlZDZlYTA2MjNkOGExZjFl
NzNjYjIyMjkzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS1pbmZvLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxlLWluZm8uanMKQEAgLTE3LDcgKzE3LDcg
QEAgZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewogfQogewogICAgIGxldCBs
b2NhbGUgPSBuZXcgSW50bC5Mb2NhbGUoImFyIikKLSAgICBzaG91bGRCZShKU09OLnN0cmluZ2lm
eShsb2NhbGUuY2FsZW5kYXJzKSwgYFsiZ3JlZ29yeSIsImNvcHRpYyIsImlzbGFtaWMiLCJpc2xh
bWljYyIsImlzbGFtaWMtdGJsYSJdYCk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9j
YWxlLmNhbGVuZGFycyksIGBbImdyZWdvcnkiLCJjb3B0aWMiLCJpc2xhbWljIiwiaXNsYW1pYy1j
aXZpbCIsImlzbGFtaWMtdGJsYSJdYCk7CiAgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9j
YWxlLmNvbGxhdGlvbnMpLCBgWyJjb21wYXQiLCJlbW9qaSIsImVvciJdYCk7CiAgICAgc2hvdWxk
QmUoSlNPTi5zdHJpbmdpZnkobG9jYWxlLmhvdXJDeWNsZXMpLCBgWyJoMTIiXWApOwogICAgIGxl
dCBucyA9IEpTT04uc3RyaW5naWZ5KGxvY2FsZS5udW1iZXJpbmdTeXN0ZW1zKTsKQEAgLTI2LDcg
KzI2LDcgQEAgZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewogfQogewogICAg
IGxldCBsb2NhbGUgPSBuZXcgSW50bC5Mb2NhbGUoImFyLUVHIikKLSAgICBzaG91bGRCZShKU09O
LnN0cmluZ2lmeShsb2NhbGUuY2FsZW5kYXJzKSwgYFsiZ3JlZ29yeSIsImNvcHRpYyIsImlzbGFt
aWMiLCJpc2xhbWljYyIsImlzbGFtaWMtdGJsYSJdYCk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJp
bmdpZnkobG9jYWxlLmNhbGVuZGFycyksIGBbImdyZWdvcnkiLCJjb3B0aWMiLCJpc2xhbWljIiwi
aXNsYW1pYy1jaXZpbCIsImlzbGFtaWMtdGJsYSJdYCk7CiAgICAgc2hvdWxkQmUoSlNPTi5zdHJp
bmdpZnkobG9jYWxlLmNvbGxhdGlvbnMpLCBgWyJjb21wYXQiLCJlbW9qaSIsImVvciJdYCk7CiAg
ICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9jYWxlLmhvdXJDeWNsZXMpLCBgWyJoMTIiXWAp
OwogICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5udW1iZXJpbmdTeXN0ZW1zKSwg
YFsiYXJhYiJdYCk7CkBAIC05OSw3ICs5OSw3IEBAIGZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpIHsKIH0KIHsKICAgICBsZXQgbG9jYWxlID0gbmV3IEludGwuTG9jYWxlKCJmYSIp
Ci0gICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9jYWxlLmNhbGVuZGFycyksIGBbInBlcnNp
YW4iLCJncmVnb3J5IiwiaXNsYW1pYyIsImlzbGFtaWNjIiwiaXNsYW1pYy10YmxhIl1gKTsKKyAg
ICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUuY2FsZW5kYXJzKSwgYFsicGVyc2lhbiIs
ImdyZWdvcnkiLCJpc2xhbWljIiwiaXNsYW1pYy1jaXZpbCIsImlzbGFtaWMtdGJsYSJdYCk7CiAg
ICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9jYWxlLmNvbGxhdGlvbnMpLCBgWyJlbW9qaSIs
ImVvciJdYCk7CiAgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9jYWxlLmhvdXJDeWNsZXMp
LCBgWyJoMjMiXWApOwogICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5udW1iZXJp
bmdTeXN0ZW1zKSwgYFsiYXJhYmV4dCJdYCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436147</attachid>
            <date>2021-08-22 21:33:48 -0700</date>
            <delta_ts>2021-08-23 10:32:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214795-20210822213347.patch</filename>
            <type>text/plain</type>
            <size>44900</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZmE4ZDUxYTY5NTIxODBlZmM0MTYxMjRlMGU5ODM0ZThiZjYwNTg5Li5jN2E4OGZjYTBhZmQ5N2Vi
ODMyNDdhNDRhM2RiNTQ0YjUwOTFiMjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMS0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBJbnRsIEVudW1lcmF0aW9uIEFQSXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc5NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyBJbnRsIGVudW1lcmF0aW9uIEFQSVsxXSB3aGljaCBpcyBpbiBzdGFnZS0zLgorICAgICAgICBT
dXBwb3J0ZWQga2V5cyBhcmUsICJjYWxlbmRhciIsICJjb2xsYXRpb24iLCAiY3VycmVuY3kiLCAi
bnVtYmVyaW5nU3lzdGVtIiwgInRpbWVab25lIiwgYW5kICJ1bml0Ii4KKworICAgICAgICBbMV06
IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWludGwtZW51bWVyYXRpb24KKworICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50
bERhdGVUaW1lRm9ybWF0Ojpsb2NhbGVEYXRhKToKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1l
Rm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAqIHJ1bnRpbWUvSW50
bExvY2FsZS5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3Rvcik6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcDoKKyAgICAg
ICAgKEpTQzo6c2FuY3Rpb25lZFNpbXBsZVVuaXRJZGVudGlmaWVyKToKKyAgICAgICAgKiBydW50
aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpJbnRsT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChKU0M6Om1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcpOgorICAg
ICAgICAoSlNDOjphdmFpbGFibGVDYWxlbmRhcnMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVD
b2xsYXRpb25zKToKKyAgICAgICAgKEpTQzo6YXZhaWxhYmxlQ3VycmVuY2llcyk6CisgICAgICAg
IChKU0M6OmF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMpOgorICAgICAgICAoSlNDOjpjYW5vbmlj
YWxpemVUaW1lWm9uZU5hbWVGcm9tSUNVVGltZVpvbmUpOgorICAgICAgICAoSlNDOjphdmFpbGFi
bGVUaW1lWm9uZXMpOgorICAgICAgICAoSlNDOjphdmFpbGFibGVVbml0cyk6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNyZWF0ZUFycmF5
RnJvbVN0cmluZ1ZlY3Rvcik6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIxLTA4LTIyICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIGFscmVhZHktc2hp
cHBlZCBKUyBmZWF0dXJlIGZsYWdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3ZGY1NWNm
NDViOTNiYzEzYWUuLmI4ODM4ZTE1ZWYzMDBiOWRkZTUxMGZjNzFmMzIxNmFhYjNmMjVhMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgSW50bCBFbnVtZXJhdGlvbiBBUElzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3OTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0
cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJh
bCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorCiAyMDIxLTA4LTIxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgb3ZlcndyaXRl
Q29kZVBvaW50KCkgaW4gY3JlYXRlQW5kRmlsbEdseXBoUGFnZSgpIGlzIHdyb25nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcApp
bmRleCA0NDUxNzMxZmNkMDMyMWUwZjE5Yjk1NmIyMDI3M2ExMjkyYWZkOWY2Li5mM2M0MTg2OGY1
ZWY3Y2UwMjg2OGI4N2JjMjllMDA1MDUyNjNlNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTE2NSw2ICsxNjUs
OSBAQCBWZWN0b3I8U3RyaW5nPiBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmxvY2FsZURhdGEoY29uc3Qg
U3RyaW5nJiBsb2NhbGUsIFJlbGV2YW50RXh0ZQogICAgICAgICAgICAgQVNTRVJUKFVfU1VDQ0VT
UyhzdGF0dXMpKTsKICAgICAgICAgICAgIFN0cmluZyBjYWxlbmRhciA9IFN0cmluZyhhdmFpbGFi
bGVOYW1lLCBuYW1lTGVuZ3RoKTsKICAgICAgICAgICAgIGtleUxvY2FsZURhdGEuYXBwZW5kKGNh
bGVuZGFyKTsKKyAgICAgICAgICAgIC8vIEFkZGluZyAiaXNsYW1pY2MiIGNhbmRpZGF0ZSBmb3Ig
YmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgICAgIGlmIChjYWxlbmRhciA9PSAiaXNs
YW1pYy1jaXZpbCJfcykKKyAgICAgICAgICAgICAgICBrZXlMb2NhbGVEYXRhLmFwcGVuZCgiaXNs
YW1pY2MiX3MpOwogICAgICAgICAgICAgaWYgKGF1dG8gbWFwcGVkID0gbWFwSUNVQ2FsZW5kYXJL
ZXl3b3JkVG9CQ1A0NyhjYWxlbmRhcikpCiAgICAgICAgICAgICAgICAga2V5TG9jYWxlRGF0YS5h
cHBlbmQoV1RGTW92ZShtYXBwZWQudmFsdWUoKSkpOwogICAgICAgICB9CkBAIC01NzksMTMgKzU4
MiwxMyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX2NhbGVuZGFyID0gcmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVsZXZhbnRFeHRlbnNpb25LZXk6OkNhKV07Ci0gICAgaWYgKG1fY2FsZW5kYXIgPT0gImdy
ZWdvcmlhbiIpCi0gICAgICAgIG1fY2FsZW5kYXIgPSAiZ3JlZ29yeSJfczsKLSAgICBlbHNlIGlm
IChtX2NhbGVuZGFyID09ICJpc2xhbWljYyIpCi0gICAgICAgIG1fY2FsZW5kYXIgPSAiaXNsYW1p
Yy1jaXZpbCJfczsKLSAgICBlbHNlIGlmIChtX2NhbGVuZGFyID09ICJldGhpb2FhIikKLSAgICAg
ICAgbV9jYWxlbmRhciA9ICJldGhpb3BpYy1hbWV0ZS1hbGVtIl9zOworICAgIHsKKyAgICAgICAg
U3RyaW5nIGNhbGVuZGFyID0gcmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUmVsZXZhbnRFeHRlbnNpb25LZXk6OkNhKV07CisgICAgICAgIGlmIChhdXRvIG1hcHBlZCA9
IG1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcoY2FsZW5kYXIpKQorICAgICAgICAgICAgbV9j
YWxlbmRhciA9IFdURk1vdmUobWFwcGVkLnZhbHVlKCkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX2NhbGVuZGFyID0gV1RGTW92ZShjYWxlbmRhcik7CisgICAgfQogCiAgICAgaG91ckN5
Y2xlID0gcGFyc2VIb3VyQ3ljbGUocmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUmVsZXZhbnRFeHRlbnNpb25LZXk6OkhjKV0pOwogICAgIG1fbnVtYmVyaW5nU3lzdGVt
ID0gcmVzb2x2ZWQuZXh0ZW5zaW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVsZXZhbnRFeHRl
bnNpb25LZXk6Ok51KV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsTG9jYWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2Nh
bGUuY3BwCmluZGV4IDlhMDU5MDc4Mzg5ZmViYjg1YTJmMzNjNGFmNDdiNDI1YzNkYzQyMDQuLmMz
YjI2ZGQ4MmI1NDBhMWFmNDcwMjdmNDQ1OWQxNjA0NTJkMzNmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwCkBAIC01MzcsMjMgKzUzNyw2IEBAIFRy
aVN0YXRlIEludGxMb2NhbGU6Om51bWVyaWMoKQogICAgIHJldHVybiBtX251bWVyaWM7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNBcnJheSogY3JlYXRlQXJyYXlGcm9tU3RyaW5nVmVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZlY3RvcjxTdHJpbmcsIDE+JiYgZWxlbWVudHMpCi17
Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIEpTQXJyYXkqIHJlc3VsdCA9IEpTQXJyYXk6OnRy
eUNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1
cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQ29udGlndW91cyksIGVsZW1lbnRzLnNpemUoKSk7Ci0g
ICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgZm9yICh1
bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudHMuc2l6ZSgpOyArK2luZGV4KSB7Ci0g
ICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCwganNTdHJp
bmcodm0sIFdURk1vdmUoZWxlbWVudHNbaW5kZXhdKSkpOwotICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBKU0Fy
cmF5KiBJbnRsTG9jYWxlOjpjYWxlbmRhcnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4IDNkOTlmYjkxYTlh
Y2JhYjY1YzA4MWYzMzFkMzE1ODcwM2ZiOWY3NDAuLmZjMzIzNzAzMjAyMmI0YzZkNjdkZDgxNTU5
ZWMzMzViNTZiZDBkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXQuY3BwCkBAIC0xNTEsNTkgKzE1MSw4IEBAIHN0YXRpYyB1bnNpZ25l
ZCBjb21wdXRlQ3VycmVuY3lEaWdpdHMoY29uc3QgU3RyaW5nJiBjdXJyZW5jeSkKICAgICByZXR1
cm4gMjsKIH0KIAotLy8gQ3JlYXRlIE1lYXN1cmVVbml0IGxpa2UgSUNVNEouCi1zdHJ1Y3QgTWVh
c3VyZVVuaXQgewotICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOwotICAgIEFTQ0lJTGl0ZXJhbCBzdWJU
eXBlOwotfTsKLQogc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVhc3VyZVVuaXQ+IHNhbmN0aW9uZWRT
aW1wbGVVbml0SWRlbnRpZmllcihTdHJpbmdWaWV3IHVuaXRJZGVudGlmaWVyKQogewotICAgIHN0
YXRpYyBjb25zdGV4cHIgTWVhc3VyZVVuaXQgc2ltcGxlVW5pdHNbXSA9IHsKLSAgICAgICAgeyAi
YXJlYSJfcywgImFjcmUiX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImJpdCJfcyB9LAot
ICAgICAgICB7ICJkaWdpdGFsIl9zLCAiYnl0ZSJfcyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVy
ZSJfcywgImNlbHNpdXMiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAiY2VudGltZXRlciJf
cyB9LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgImRheSJfcyB9LAotICAgICAgICB7ICJhbmds
ZSJfcywgImRlZ3JlZSJfcyB9LAotICAgICAgICB7ICJ0ZW1wZXJhdHVyZSJfcywgImZhaHJlbmhl
aXQiX3MgfSwKLSAgICAgICAgeyAidm9sdW1lIl9zLCAiZmx1aWQtb3VuY2UiX3MgfSwKLSAgICAg
ICAgeyAibGVuZ3RoIl9zLCAiZm9vdCJfcyB9LAotICAgICAgICB7ICJ2b2x1bWUiX3MsICJnYWxs
b24iX3MgfSwKLSAgICAgICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3MgfSwKLSAgICAgICAg
eyAiZGlnaXRhbCJfcywgImdpZ2FieXRlIl9zIH0sCi0gICAgICAgIHsgIm1hc3MiX3MsICJncmFt
Il9zIH0sCi0gICAgICAgIHsgImFyZWEiX3MsICJoZWN0YXJlIl9zIH0sCi0gICAgICAgIHsgImR1
cmF0aW9uIl9zLCAiaG91ciJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJpbmNoIl9zIH0s
Ci0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJraWxvYml0Il9zIH0sCi0gICAgICAgIHsgImRpZ2l0
YWwiX3MsICJraWxvYnl0ZSJfcyB9LAotICAgICAgICB7ICJtYXNzIl9zLCAia2lsb2dyYW0iX3Mg
fSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAia2lsb21ldGVyIl9zIH0sCi0gICAgICAgIHsgInZv
bHVtZSJfcywgImxpdGVyIl9zIH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYml0Il9z
IH0sCi0gICAgICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYnl0ZSJfcyB9LAotICAgICAgICB7ICJs
ZW5ndGgiX3MsICJtZXRlciJfcyB9LAotICAgICAgICB7ICJsZW5ndGgiX3MsICJtaWxlIl9zIH0s
Ci0gICAgICAgIHsgImxlbmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0sCi0gICAgICAg
IHsgInZvbHVtZSJfcywgIm1pbGxpbGl0ZXIiX3MgfSwKLSAgICAgICAgeyAibGVuZ3RoIl9zLCAi
bWlsbGltZXRlciJfcyB9LAotICAgICAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9z
IH0sCi0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAibWludXRlIl9zIH0sCi0gICAgICAgIHsgImR1
cmF0aW9uIl9zLCAibW9udGgiX3MgfSwKLSAgICAgICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0s
Ci0gICAgICAgIHsgImNvbmNlbnRyIl9zLCAicGVyY2VudCJfcyB9LAotICAgICAgICB7ICJkaWdp
dGFsIl9zLCAicGV0YWJ5dGUiX3MgfSwKLSAgICAgICAgeyAibWFzcyJfcywgInBvdW5kIl9zIH0s
Ci0gICAgICAgIHsgImR1cmF0aW9uIl9zLCAic2Vjb25kIl9zIH0sCi0gICAgICAgIHsgIm1hc3Mi
X3MsICJzdG9uZSJfcyB9LAotICAgICAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJpdCJfcyB9LAot
ICAgICAgICB7ICJkaWdpdGFsIl9zLCAidGVyYWJ5dGUiX3MgfSwKLSAgICAgICAgeyAiZHVyYXRp
b24iX3MsICJ3ZWVrIl9zIH0sCi0gICAgICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3MgfSwKLSAg
ICAgICAgeyAiZHVyYXRpb24iX3MsICJ5ZWFyIl9zIH0sCi0gICAgfTsKICAgICBBU1NFUlQoCiAg
ICAgICAgIHN0ZDo6aXNfc29ydGVkKHN0ZDo6YmVnaW4oc2ltcGxlVW5pdHMpLCBzdGQ6OmVuZChz
aW1wbGVVbml0cyksCiAgICAgICAgICAgICBbXShjb25zdCBNZWFzdXJlVW5pdCYgYSwgY29uc3Qg
TWVhc3VyZVVuaXQmIGIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdC5jcHAKaW5kZXggMDNjOWQ3OTg2Zjk1YTA3MWI2OTUzODkzM2I4MWQ3NDYzNDExM2M4Ny4u
ZDVjMjZhZmQ1YjQ5YmI0YjZmYjUwMGM3YzA3YWQ4NmJkN2M1ZjkwYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHVu
aWNvZGUvdWJyay5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWNhbC5oPgogI2luY2x1ZGUgPHVuaWNv
ZGUvdWNvbC5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWZpZWxkcG9zaXRlci5oPgogI2luY2x1ZGUg
PHVuaWNvZGUvdWxvYy5oPgpAQCAtNzUsNiArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIFNUQVRJ
Q19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRsT2JqZWN0KTsKIAogc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2Nh
bGVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jU3Vw
cG9ydGVkVmFsdWVzT2YpOwogCiBzdGF0aWMgSlNWYWx1ZSBjcmVhdGVDb2xsYXRvckNvbnN0cnVj
dG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKIHsKQEAgLTE3Miw2ICsxNzQsNTIgQEAgdm9p
ZCBVRmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlcjo6b3BlcmF0b3IoKShVRmllbGRQb3NpdGlv
bkl0ZXJhdG9yKiBpdGVyYXRvcikKICAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9zZShpdGVyYXRv
cik7CiB9CiAKK2NvbnN0IE1lYXN1cmVVbml0IHNpbXBsZVVuaXRzWzQzXSA9IHsKKyAgICB7ICJh
cmVhIl9zLCAiYWNyZSJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJiaXQiX3MgfSwKKyAgICB7
ICJkaWdpdGFsIl9zLCAiYnl0ZSJfcyB9LAorICAgIHsgInRlbXBlcmF0dXJlIl9zLCAiY2Vsc2l1
cyJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgImNlbnRpbWV0ZXIiX3MgfSwKKyAgICB7ICJkdXJh
dGlvbiJfcywgImRheSJfcyB9LAorICAgIHsgImFuZ2xlIl9zLCAiZGVncmVlIl9zIH0sCisgICAg
eyAidGVtcGVyYXR1cmUiX3MsICJmYWhyZW5oZWl0Il9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAi
Zmx1aWQtb3VuY2UiX3MgfSwKKyAgICB7ICJsZW5ndGgiX3MsICJmb290Il9zIH0sCisgICAgeyAi
dm9sdW1lIl9zLCAiZ2FsbG9uIl9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImdpZ2FiaXQiX3Mg
fSwKKyAgICB7ICJkaWdpdGFsIl9zLCAiZ2lnYWJ5dGUiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAi
Z3JhbSJfcyB9LAorICAgIHsgImFyZWEiX3MsICJoZWN0YXJlIl9zIH0sCisgICAgeyAiZHVyYXRp
b24iX3MsICJob3VyIl9zIH0sCisgICAgeyAibGVuZ3RoIl9zLCAiaW5jaCJfcyB9LAorICAgIHsg
ImRpZ2l0YWwiX3MsICJraWxvYml0Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgImtpbG9ieXRl
Il9zIH0sCisgICAgeyAibWFzcyJfcywgImtpbG9ncmFtIl9zIH0sCisgICAgeyAibGVuZ3RoIl9z
LCAia2lsb21ldGVyIl9zIH0sCisgICAgeyAidm9sdW1lIl9zLCAibGl0ZXIiX3MgfSwKKyAgICB7
ICJkaWdpdGFsIl9zLCAibWVnYWJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJtZWdhYnl0
ZSJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1ldGVyIl9zIH0sCisgICAgeyAibGVuZ3RoIl9z
LCAibWlsZSJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgIm1pbGUtc2NhbmRpbmF2aWFuIl9zIH0s
CisgICAgeyAidm9sdW1lIl9zLCAibWlsbGlsaXRlciJfcyB9LAorICAgIHsgImxlbmd0aCJfcywg
Im1pbGxpbWV0ZXIiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywgIm1pbGxpc2Vjb25kIl9zIH0s
CisgICAgeyAiZHVyYXRpb24iX3MsICJtaW51dGUiX3MgfSwKKyAgICB7ICJkdXJhdGlvbiJfcywg
Im1vbnRoIl9zIH0sCisgICAgeyAibWFzcyJfcywgIm91bmNlIl9zIH0sCisgICAgeyAiY29uY2Vu
dHIiX3MsICJwZXJjZW50Il9zIH0sCisgICAgeyAiZGlnaXRhbCJfcywgInBldGFieXRlIl9zIH0s
CisgICAgeyAibWFzcyJfcywgInBvdW5kIl9zIH0sCisgICAgeyAiZHVyYXRpb24iX3MsICJzZWNv
bmQiX3MgfSwKKyAgICB7ICJtYXNzIl9zLCAic3RvbmUiX3MgfSwKKyAgICB7ICJkaWdpdGFsIl9z
LCAidGVyYWJpdCJfcyB9LAorICAgIHsgImRpZ2l0YWwiX3MsICJ0ZXJhYnl0ZSJfcyB9LAorICAg
IHsgImR1cmF0aW9uIl9zLCAid2VlayJfcyB9LAorICAgIHsgImxlbmd0aCJfcywgInlhcmQiX3Mg
fSwKKyAgICB7ICJkdXJhdGlvbiJfcywgInllYXIiX3MgfSwKK307CisKIEludGxPYmplY3Q6Oklu
dGxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSkKIHsKQEAgLTE4NCw3ICsyMzIsNyBAQCBJbnRsT2JqZWN0KiBJbnRsT2JqZWN0Ojpj
cmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqCiAg
ICAgcmV0dXJuIG9iamVjdDsKIH0KIAotdm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKK3ZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwpAQCAtMTk5
LDYgKzI0Nyw4IEBAIHZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCopCiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSgmY3JlYXRlTGlzdEZvcm1hdENv
bnN0cnVjdG9yKTsKICNlbmRpZgorICAgIGlmIChPcHRpb25zOjp1c2VJbnRsRW51bWVyYXRpb24o
KSkKKyAgICAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1cHBv
cnRlZFZhbHVlc09mIiwgaW50bE9iamVjdEZ1bmNTdXBwb3J0ZWRWYWx1ZXNPZiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogfQogCiBTdHJ1
Y3R1cmUqIEludGxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTQ2OCw4ICsxNTE4LDggQEAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IG1hcElDVUNhbGVuZGFyS2V5d29yZFRvQkNQNDcoY29uc3Qg
U3RyaW5nJiBjYWxlbmRhcikKIHsKICAgICBpZiAoY2FsZW5kYXIgPT0gImdyZWdvcmlhbiJfcykK
ICAgICAgICAgcmV0dXJuICJncmVnb3J5Il9zOwotICAgIGlmIChjYWxlbmRhciA9PSAiaXNsYW1p
Yy1jaXZpbCJfcykKLSAgICAgICAgcmV0dXJuICJpc2xhbWljYyJfczsKKyAgICAvLyBpc2xhbWlj
YyBpcyBkZXByZWNhdGVkIGluIEJDUDQ3LCBhbmQgaXNsYW1pYy1jaXZpbCBpcyBwcmVmZXJyZWQu
CisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3VuaWNvZGUtb3JnL2NsZHIvYmxvYi9tYXN0ZXIv
Y29tbW9uL2JjcDQ3L2NhbGVuZGFyLnhtbAogICAgIGlmIChjYWxlbmRhciA9PSAiZXRoaW9waWMt
YW1ldGUtYWxlbSJfcykKICAgICAgICAgcmV0dXJuICJldGhpb2FhIl9zOwogICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CkBAIC0xNTI0LDQgKzE1NzQsMzExIEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihpbnRsT2JqZWN0RnVuY0dldENhbm9uaWNhbExvY2FsZXMsIChKU0dsb2JhbE9iamVjdCog
Z2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShsb2NhbGVBcnJheSk7CiB9CiAKKy8vIGh0
dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZhaWxhYmxlY2Fs
ZW5kYXJzCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxlQ2FsZW5kYXJzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFVFcnJvckNvZGUg
c3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGF1dG8gZW51bWVyYXRpb24gPSBzdGQ6OnVuaXF1
ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWNhbF9nZXRLZXl3
b3JkVmFsdWVzRm9yTG9jYWxlKCJjYWxlbmRhcnMiLCAidW5kIiwgZmFsc2UsICZzdGF0dXMpKTsK
KyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFy
cyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9
IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNhbGVuZGFycyJfcyk7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7Cisg
ICAgZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQz
Ml90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90
IGxlbmd0aCA9IDA7CisgICAgICAgIGNvbnN0IGNoYXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVu
dW1lcmF0aW9uLmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVS
RShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY2FsZW5kYXJzIl9zKTsKKyAgICAg
ICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGNhbGVuZGFyKHBv
aW50ZXIsIGxlbmd0aCk7CisgICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IG1hcElDVUNhbGVuZGFy
S2V5d29yZFRvQkNQNDcoY2FsZW5kYXIpKQorICAgICAgICAgICAgZWxlbWVudHMuYXBwZW5kKFdU
Rk1vdmUobWFwcGVkLnZhbHVlKCkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZWxlbWVu
dHMuYXBwZW5kKFdURk1vdmUoY2FsZW5kYXIpKTsKKyAgICB9CisKKyAgICAvLyBUaGUgQXZhaWxh
YmxlQ2FsZW5kYXJzIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlzdCwgb3JkZXJlZCBh
cyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQg
dXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZu
CisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVuZCgpLAorICAgICAg
ICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAgICAgICAgICAgcmV0
dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAgIH0pOworCisgICAg
cmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmplY3QsIFdURk1vdmUo
ZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZW51bWVy
YXRpb24vI3NlYy1hdmFpbGFibGVjb2xsYXRpb25zCitzdGF0aWMgSlNBcnJheSogYXZhaWxhYmxl
Q29sbGF0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRv
IGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1
ZW51bV9jbG9zZT4+KHVjb2xfZ2V0S2V5d29yZFZhbHVlcygiY29sbGF0aW9uIiwgJnN0YXR1cykp
OworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgY29sbGF0
aW9ucyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3Vu
dCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9G
QUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOworICAg
ICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmcsIDE+IGVsZW1lbnRz
OworICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOworICAgIGZvciAo
aW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50
MzJfdCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBwb2ludGVyID0gdWVudW1fbmV4
dChlbnVtZXJhdGlvbi5nZXQoKSwgJmxlbmd0aCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGNvbGxhdGlvbnMiX3MpOwor
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgY29sbGF0
aW9uKHBvaW50ZXIsIGxlbmd0aCk7CisgICAgICAgIGlmIChjb2xsYXRpb24gPT0gInN0YW5kYXJk
Il9zIHx8IGNvbGxhdGlvbiA9PSAic2VhcmNoIl9zKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IG1hcElDVUNvbGxhdGlvbktleXdvcmRUb0JDUDQ3KGNv
bGxhdGlvbikpCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZShtYXBwZWQudmFs
dWUoKSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92
ZShjb2xsYXRpb24pKTsKKyAgICB9CisKKyAgICAvLyBUaGUgQXZhaWxhYmxlQ29sbGF0aW9ucyBh
YnN0cmFjdCBvcGVyYXRpb24gcmV0dXJucyBhIExpc3QsIG9yZGVyZWQgYXMgaWYgYW4gQXJyYXkg
b2YgdGhlIHNhbWUKKyAgICAvLyB2YWx1ZXMgaGFkIGJlZW4gc29ydGVkIHVzaW5nICVBcnJheS5w
cm90b3R5cGUuc29ydCUgdXNpbmcgdW5kZWZpbmVkIGFzIGNvbXBhcmVmbgorICAgIHN0ZDo6c29y
dChlbGVtZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwKKyAgICAgICAgW10oY29uc3QgU3Ry
aW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBXVEY6OmNvZGVQ
b2ludENvbXBhcmUoYSwgYikgPCAwOworICAgICAgICB9KTsKKworICAgIHJldHVybiBjcmVhdGVB
cnJheUZyb21TdHJpbmdWZWN0b3IoZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVsZW1lbnRzKSk7Cit9
CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtYXZh
aWxhYmxlY3VycmVuY2llcworc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZUN1cnJlbmNpZXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAg
VUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgYXV0byBlbnVtZXJhdGlvbiA9
IHN0ZDo6dW5pcXVlX3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVudW1fY2xvc2U+Pih1
Y3Vycl9vcGVuSVNPQ3VycmVuY2llcyhVQ1VSUl9DT01NT04gfCBVQ1VSUl9OT05fREVQUkVDQVRF
RCwgJnN0YXR1cykpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBhdmFp
bGFibGUgY3VycmVuY2llcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAg
aW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1lcmF0aW9uLmdldCgpLCAmc3RhdHVzKTsK
KyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIGN1cnJlbmNp
ZXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmcs
IDE+IGVsZW1lbnRzOworICAgIGVsZW1lbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQp
OworICAgIGZvciAoaW50MzJfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsK
KyAgICAgICAgaW50MzJfdCBsZW5ndGggPSAwOworICAgICAgICBjb25zdCBjaGFyKiBjdXJyZW5j
eSA9IHVlbnVtX25leHQoZW51bWVyYXRpb24uZ2V0KCksICZsZW5ndGgsICZzdGF0dXMpOworICAg
ICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gZW51bWVyYXRlIGF2YWlsYWJsZSBjdXJy
ZW5jaWVzIl9zKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICAgICAg
ZWxlbWVudHMuY29uc3RydWN0QW5kQXBwZW5kKGN1cnJlbmN5LCBsZW5ndGgpOworICAgIH0KKwor
ICAgIC8vIFRoZSBBdmFpbGFibGVDdXJyZW5jaWVzIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5z
IGEgTGlzdCwgb3JkZXJlZCBhcyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVl
cyBoYWQgYmVlbiBzb3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRl
ZmluZWQgYXMgY29tcGFyZWZuCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1l
bnRzLmVuZCgpLAorICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikg
eworICAgICAgICAgICAgcmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7Cisg
ICAgICAgIH0pOworCisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9i
YWxPYmplY3QsIFdURk1vdmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3By
b3Bvc2FsLWludGwtZW51bWVyYXRpb24vI3NlYy1hdmFpbGFibGVudW1iZXJpbmdzeXN0ZW1zCitz
dGF0aWMgSlNBcnJheSogYXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVtcyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0
YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVudW1lcmF0aW9uID0gc3RkOjp1bmlxdWVf
cHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVudW1zeXNfb3BlbkF2
YWlsYWJsZU5hbWVzKCZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVt
ZXJhdGUgYXZhaWxhYmxlIG51bWJlcmluZyBzeXN0ZW1zIl9zKTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICB9CisKKyAgICBpbnQzMl90IGNvdW50ID0gdWVudW1fY291bnQoZW51bWVyYXRpb24u
Z2V0KCksICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVudW1lcmF0ZSBh
dmFpbGFibGUgbnVtYmVyaW5nIHN5c3RlbXMiX3MpOworICAgICAgICByZXR1cm4geyB9OworICAg
IH0KKworICAgIFZlY3RvcjxTdHJpbmcsIDE+IGVsZW1lbnRzOworICAgIGVsZW1lbnRzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOworICAgIGZvciAoaW50MzJfdCBpbmRleCA9IDA7IGlu
ZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaW50MzJfdCBsZW5ndGggPSAwOworICAg
ICAgICBjb25zdCBjaGFyKiBudW1iZXJpbmdTeXN0ZW0gPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9u
LmdldCgpLCAmbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMp
KSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFp
bGVkIHRvIGVudW1lcmF0ZSBhdmFpbGFibGUgbnVtYmVyaW5nIHN5c3RlbXMiX3MpOworICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorICAgICAgICBlbGVtZW50cy5jb25zdHJ1Y3RB
bmRBcHBlbmQobnVtYmVyaW5nU3lzdGVtLCBsZW5ndGgpOworICAgIH0KKworICAgIC8vIFRoZSBB
dmFpbGFibGVOdW1iZXJpbmdTeXN0ZW1zIGFic3RyYWN0IG9wZXJhdGlvbiByZXR1cm5zIGEgTGlz
dCwgb3JkZXJlZCBhcyBpZiBhbiBBcnJheSBvZiB0aGUgc2FtZQorICAgIC8vIHZhbHVlcyBoYWQg
YmVlbiBzb3J0ZWQgdXNpbmcgJUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQg
YXMgY29tcGFyZWZuCisgICAgc3RkOjpzb3J0KGVsZW1lbnRzLmJlZ2luKCksIGVsZW1lbnRzLmVu
ZCgpLAorICAgICAgICBbXShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeworICAg
ICAgICAgICAgcmV0dXJuIFdURjo6Y29kZVBvaW50Q29tcGFyZShhLCBiKSA8IDA7CisgICAgICAg
IH0pOworCisgICAgcmV0dXJuIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihnbG9iYWxPYmpl
Y3QsIFdURk1vdmUoZWxlbWVudHMpKTsKK30KKworLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2Fs
LWludGwtZW51bWVyYXRpb24vI3NlYy1jYW5vbmljYWxpemV0aW1lem9uZW5hbWUKK3N0YXRpYyBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gY2Fub25pY2FsaXplVGltZVpvbmVOYW1lRnJvbUlDVVRpbWVa
b25lKGNvbnN0IFN0cmluZyYgdGltZVpvbmVOYW1lKQoreworICAgIC8vIFNvbWUgdGltZSB6b25l
IG5hbWVzIGFyZSBpbmNsdWRlZCBpbiBJQ1UsIGJ1dCB0aGV5IGFyZSBub3QgaW5jbHVkZWQgaW4g
dGhlIElBTkEgVGltZSBab25lIERhdGFiYXNlLgorICAgIC8vIFdlIG5lZWQgdG8gZmlsdGVyIHRo
ZW0gb3V0LgorICAgIGlmICh0aW1lWm9uZU5hbWUuc3RhcnRzV2l0aCgiU3lzdGVtVi8iKSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAodGltZVpvbmVOYW1lLnN0YXJ0c1dp
dGgoIkV0Yy8iKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAvLyBJQU5BIHRp
bWUgem9uZSBuYW1lcyBpbmNsdWRlICcvJy4gU29tZSBvZiB0aGVtIGFyZSBub3QgaW5jbHVkaW5n
LCBidXQgaXQgaXMgaW4gYmFja3dhcmQgbGlua3MuCisgICAgLy8gQW5kIElDVSBhbHJlYWR5IHJl
c29sdmVkIHRoZXNlIGJhY2t3YXJkIGxpbmtzLgorICAgIGlmICghdGltZVpvbmVOYW1lLmNvbnRh
aW5zKCcvJykpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gdGlt
ZVpvbmVOYW1lOworfQorCisvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1lbnVtZXJh
dGlvbi8jc2VjLWF2YWlsYWJsZXRpbWV6b25lcworc3RhdGljIEpTQXJyYXkqIGF2YWlsYWJsZVRp
bWVab25lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBhdXRvIGVu
dW1lcmF0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51
bV9jbG9zZT4+KHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbihVQ0FMX1pPTkVfVFlQRV9D
QU5PTklDQUwsIG51bGxwdHIsIG51bGxwdHIsICZzdGF0dXMpKTsKKyAgICBpZiAoVV9GQUlMVVJF
KHN0YXR1cykpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ImZhaWxlZCB0byBlbnVtZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7CisgICAgICAgIHJl
dHVybiB7IH07CisgICAgfQorCisgICAgaW50MzJfdCBjb3VudCA9IHVlbnVtX2NvdW50KGVudW1l
cmF0aW9uLmdldCgpLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBlbnVt
ZXJhdGUgYXZhaWxhYmxlIHRpbWV6b25lcyJfcyk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorCisgICAgVmVjdG9yPFN0cmluZywgMT4gZWxlbWVudHM7CisgICAgZWxlbWVudHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CisgICAgZm9yIChpbnQzMl90IGluZGV4ID0gMDsgaW5k
ZXggPCBjb3VudDsgKytpbmRleCkgeworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IDA7CisgICAg
ICAgIGNvbnN0IGNoYXIqIHBvaW50ZXIgPSB1ZW51bV9uZXh0KGVudW1lcmF0aW9uLmdldCgpLCAm
bGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAg
ICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGVu
dW1lcmF0ZSBhdmFpbGFibGUgdGltZXpvbmVzIl9zKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07
CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRpbWVab25lKHBvaW50ZXIsIGxlbmd0aCk7Cisg
ICAgICAgIGlmIChhdXRvIG1hcHBlZCA9IGNhbm9uaWNhbGl6ZVRpbWVab25lTmFtZUZyb21JQ1VU
aW1lWm9uZSh0aW1lWm9uZSkpCisgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoV1RGTW92ZSht
YXBwZWQudmFsdWUoKSkpOworICAgIH0KKworICAgIC8vIDQuIFNvcnQgcmVzdWx0IGluIG9yZGVy
IGFzIGlmIGFuIEFycmF5IG9mIHRoZSBzYW1lIHZhbHVlcyBoYWQgYmVlbiBzb3J0ZWQgdXNpbmcg
JUFycmF5LnByb3RvdHlwZS5zb3J0JSB1c2luZyB1bmRlZmluZWQgYXMgY29tcGFyZWZuLgorICAg
IHN0ZDo6c29ydChlbGVtZW50cy5iZWdpbigpLCBlbGVtZW50cy5lbmQoKSwKKyAgICAgICAgW10o
Y29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIpIHsKKyAgICAgICAgICAgIHJldHVybiBX
VEY6OmNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOworICAgICAgICB9KTsKKworICAgIHJldHVy
biBjcmVhdGVBcnJheUZyb21TdHJpbmdWZWN0b3IoZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGVsZW1l
bnRzKSk7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWVudW1lcmF0aW9u
LyNzZWMtYXZhaWxhYmxldW5pdHMKK3N0YXRpYyBKU0FycmF5KiBhdmFpbGFibGVVbml0cyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBK
U0FycmF5KiByZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJy
YXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aFVuZGVj
aWRlZCksIHN0ZDo6c2l6ZShzaW1wbGVVbml0cykpOworICAgIGlmICghcmVzdWx0KSB7CisgICAg
ICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBBU1NFUlQoCisgICAgICAgIHN0ZDo6aXNfc29ydGVk
KHN0ZDo6YmVnaW4oc2ltcGxlVW5pdHMpLCBzdGQ6OmVuZChzaW1wbGVVbml0cyksCisgICAgICAg
ICAgICBbXShjb25zdCBNZWFzdXJlVW5pdCYgYSwgY29uc3QgTWVhc3VyZVVuaXQmIGIpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gV1RGOjpjb2RlUG9pbnRDb21wYXJlKFN0cmluZ1ZpZXcoYS5z
dWJUeXBlKSwgU3RyaW5nVmlldyhiLnN1YlR5cGUpKSA8IDA7CisgICAgICAgICAgICB9KSk7CisK
KyAgICBpbnQzMl90IGluZGV4ID0gMDsKKyAgICBmb3IgKGNvbnN0IE1lYXN1cmVVbml0JiB1bml0
IDogc2ltcGxlVW5pdHMpIHsKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxP
YmplY3QsIGluZGV4KyssIGpzU3RyaW5nKHZtLCBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJh
bCh1bml0LnN1YlR5cGUpKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vIGh0dHBzOi8vdGMzOS5lcy9w
cm9wb3NhbC1pbnRsLWVudW1lcmF0aW9uLyNzZWMtaW50bC5zdXBwb3J0ZWR2YWx1ZXNvZgorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jU3VwcG9ydGVkVmFsdWVzT2YsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFN0cmluZyBrZXkgPSBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKKworICAgIGlmIChrZXkgPT0gImNhbGVuZGFyIl9zKQorICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVDYWxlbmRhcnMo
Z2xvYmFsT2JqZWN0KSkpOworCisgICAgaWYgKGtleSA9PSAiY29sbGF0aW9uIl9zKQorICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFibGVDb2xs
YXRpb25zKGdsb2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkgPT0gImN1cnJlbmN5Il9zKQor
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShhdmFpbGFi
bGVDdXJyZW5jaWVzKGdsb2JhbE9iamVjdCkpKTsKKworICAgIGlmIChrZXkgPT0gIm51bWJlcmlu
Z1N5c3RlbSJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoYXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVtcyhnbG9iYWxPYmplY3QpKSk7CisKKyAgICBp
ZiAoa2V5ID09ICJ0aW1lWm9uZSJfcykKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoYXZhaWxhYmxlVGltZVpvbmVzKGdsb2JhbE9iamVjdCkpKTsKKwor
ICAgIGlmIChrZXkgPT0gInVuaXQiX3MpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKGF2YWlsYWJsZVVuaXRzKGdsb2JhbE9iamVjdCkpKTsKKworICAg
IHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVW5rbm93biBrZXkgZm9yIElu
dGwuc3VwcG9ydGVkVmFsdWVzT2YiX3MpOworICAgIHJldHVybiB7IH07Cit9CisKK0pTQXJyYXkq
IGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWZWN0b3I8U3RyaW5nLCAxPiYmIGVsZW1lbnRzKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisK
KyAgICBKU0FycmF5KiByZXN1bHQgPSBKU0FycmF5Ojp0cnlDcmVhdGUodm0sIGdsb2JhbE9iamVj
dC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0
aENvbnRpZ3VvdXMpLCBlbGVtZW50cy5zaXplKCkpOworICAgIGlmICghcmVzdWx0KSB7CisgICAg
ICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRl
eCA8IGVsZW1lbnRzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICByZXN1bHQtPnB1dERpcmVj
dEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgsIGpzU3RyaW5nKHZtLCBXVEZNb3ZlKGVsZW1lbnRz
W2luZGV4XSkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAg
ICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKaW5kZXggY2MwMWY2Y2FkZDQxMDVm
ZTUzODhjYTc4NzllMDA0MWE5NWYwNTFjYy4uZGM2OTZkNjVmYTVjNjM2MzIyYTZjNTE0ZjhiMDA3
ODRkZWYyZmM2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
aApAQCAtNjAsNiArNjAsMTMgQEAgSlNDX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMoSlND
X0RFQ0xBUkVfSU5UTF9SRUxFVkFOVF9FWFRFTlNJT05fS0VZUykKIHN0YXRpYyBjb25zdGV4cHIg
dWludDhfdCBudW1iZXJPZlJlbGV2YW50RXh0ZW5zaW9uS2V5cyA9IDAgSlNDX0lOVExfUkVMRVZB
TlRfRVhURU5TSU9OX0tFWVMoSlNDX0NPVU5UX0lOVExfUkVMRVZBTlRfRVhURU5TSU9OX0tFWVMp
OwogI3VuZGVmIEpTQ19DT1VOVF9JTlRMX1JFTEVWQU5UX0VYVEVOU0lPTl9LRVlTCiAKK3N0cnVj
dCBNZWFzdXJlVW5pdCB7CisgICAgQVNDSUlMaXRlcmFsIHR5cGU7CisgICAgQVNDSUlMaXRlcmFs
IHN1YlR5cGU7Cit9OworCitleHRlcm4gSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgTWVhc3VyZVVu
aXQgc2ltcGxlVW5pdHNbNDNdOworCiBjbGFzcyBJbnRsT2JqZWN0IGZpbmFsIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2Jq
ZWN0OwpAQCAtMTQxLDQgKzE0OCw2IEBAIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBtYXBJQ1VDb2xs
YXRpb25LZXl3b3JkVG9CQ1A0Nyhjb25zdCBTdHJpbmcmKTsKIHN0ZDo6b3B0aW9uYWw8U3RyaW5n
PiBtYXBJQ1VDYWxlbmRhcktleXdvcmRUb0JDUDQ3KGNvbnN0IFN0cmluZyYpOwogc3RkOjpvcHRp
b25hbDxTdHJpbmc+IG1hcEJDUDQ3VG9JQ1VDYWxlbmRhcktleXdvcmQoY29uc3QgU3RyaW5nJik7
CiAKK0pTQXJyYXkqIGNyZWF0ZUFycmF5RnJvbVN0cmluZ1ZlY3RvcihKU0dsb2JhbE9iamVjdCos
IFZlY3RvcjxTdHJpbmcsIDE+JiYpOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IGY0NWI2ZWViNmI5MDNmZDk5
MWY0NzkxYzZiNGJjZmUyMGM5N2Y1ZjUuLjc4NTk4NDRmNzE1MDAwYTViNWEzMTZkYTcwZDAzMTBj
YWViM2E0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3Qu
aApAQCAtNTQ0LDYgKzU0NCw3IEBAIGJvb2wgY2FuVXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7
CiAgICAgdihCb29sLCB1c2VEYXRhSUNTaGFyaW5nLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBc
CiAgICAgdihCb29sLCB1c2VUZW1wb3JhbCwgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUgVGVt
cG9yYWwgb2JqZWN0LiIpIFwKICAgICB2KEJvb2wsIHVzZUFycmF5RmluZExhc3RNZXRob2QsIHRy
dWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgZmluZExhc3QoKSBhbmQgZmluZExhc3RJbmRleCgpIG1l
dGhvZHMgb24gQXJyYXkgYW5kICVUeXBlZEFycmF5JS4iKSBcCisgICAgdihCb29sLCB1c2VJbnRs
RW51bWVyYXRpb24sIHRydWUsIE5vcm1hbCwgIkV4cG9zZSB0aGUgSW50bCBlbnVtZXJhdGlvbiBB
UElzLiIpIFwKIAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0ltcGwuY3BwCmluZGV4IDdkM2YzNDYzMWFjOGU3OTc1ZTlmNDQ4NzM1NTNjZWYxZWQ3OGQwM2Yu
Ljc0ZjU2OTg4MmU2ZDQ2OTQ5ODNmNzE5MGExNzcwMjE2ZGEyNmNjODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdJbXBsLmNwcApAQCAtMTYzLDYgKzE2MywxMSBAQCBSZWY8U3RyaW5nSW1wbD4gU3Ry
aW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoY29uc3QgY2hhciogY2hhcmFjdGVycykKICAgICBy
ZXR1cm4gY3JlYXRlRnJvbUxpdGVyYWwoY2hhcmFjdGVycywgc3RybGVuKGNoYXJhY3RlcnMpKTsK
IH0KIAorUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKEFTQ0lJ
TGl0ZXJhbCBsaXRlcmFsKQoreworICAgIHJldHVybiBjcmVhdGVGcm9tTGl0ZXJhbChsaXRlcmFs
LmNoYXJhY3RlcnMoKSwgbGl0ZXJhbC5sZW5ndGgoKSk7Cit9CisKIFJlZjxTdHJpbmdJbXBsPiBT
dHJpbmdJbXBsOjpjcmVhdGVXaXRob3V0Q29weWluZyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0lt
cGwuaAppbmRleCA0MjAzYzFjODI1NDFhOWQ4N2Q3YjViMGZiYjc0OGIxNmFjYTU4ODVlLi5hZGE5
ZDQxYjAyYTg5NDZkYjczMWZhYWZiOWRlYzY3YWNhZmU1ZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0ltcGwuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlGYXN0UGF0
aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NvbnZlcnNpb25Nb2RlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVmZmVyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29tbW9uLmg+CkBAIC0yNDksNiArMjUwLDcgQEAg
Y2xhc3MgU3RyaW5nSW1wbCA6IHByaXZhdGUgU3RyaW5nSW1wbFNoYXBlIHsKICAgICAvLyBGSVhN
RTogUmVwbGFjZSBjYWxscyB0byB0aGVzZSBvdmVybG9hZHMgb2YgY3JlYXRlRnJvbUxpdGVyYWwg
dG8gY3JlYXRlV2l0aG91dENvcHlpbmcgaW5zdGVhZC4KICAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKiwgdW5z
aWduZWQgbGVuZ3RoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJ
bXBsPiBjcmVhdGVGcm9tTGl0ZXJhbChjb25zdCBjaGFyKik7CisgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyBSZWY8U3RyaW5nSW1wbD4gY3JlYXRlRnJvbUxpdGVyYWwoQVNDSUlMaXRlcmFs
KTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFN0cmluZ0ltcGw+IGNyZWF0
ZVdpdGhvdXRDb3B5aW5nKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxTdHJpbmdJbXBsPiBjcmVhdGVXaXRob3V0Q29weWlu
Zyhjb25zdCBMQ2hhciosIHVuc2lnbmVkIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ5MzUwNGI4NDVkZDkxNzJjNjcyY2Fj
ODY5ZTJjNzUzNWU4MWZlZGQuLmM3ZGNhMWMzMWE1NDI3ZWNjZTJlZmJjOTc0NTI5YzMxNWFkNmE3
ZjQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDgtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgSW50bCBFbnVtZXJhdGlvbiBBUElzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3OTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9pbnRs
LWRhdGV0aW1lZm9ybWF0LmpzOgorICAgICAgICAqIHN0cmVzcy9pbnRsLWVudW1lcmF0aW9uLmpz
OiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZFRocm93KToKKyAg
ICAgICAgKiBzdHJlc3MvaW50bC1sb2NhbGUtaW5mby5qczoKKyAgICAgICAgKGxldC5sLm5ldy5J
bnRsLkxvY2FsZS5zaG91bGRCZSk6CisgICAgICAgIChzaG91bGRCZSk6CisKIDIwMjEtMDgtMjIg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1v
dmUgYWxyZWFkeS1zaGlwcGVkIEpTIGZlYXR1cmUgZmxhZ3MKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2ludGwtZGF0ZXRpbWVmb3JtYXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGV0
aW1lZm9ybWF0LmpzCmluZGV4IDVkMTM3YjZmNjcxODZlMzhkN2YyZGUzMGZlYmJhMzA5NmU3YmNj
OTEuLmYwYTg1Y2Y5MjhhYjFmOTQyOWY5YTg1OTAzZjI2ZTI5YzcyM2NkNTUgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL2ludGwtZGF0ZXRpbWVmb3JtYXQuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3MvaW50bC1kYXRldGltZWZvcm1hdC5qcwpAQCAtMzE0LDcgKzMxNCw3IEBAIGZ1bmN0aW9uIHNo
b3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogc2hvdWxkQmUoSW50bC5EYXRlVGltZUZvcm1h
dCgnZW4tdS1jYS1jaGluZXNlJykucmVzb2x2ZWRPcHRpb25zKCkuY2FsZW5kYXIsICdjaGluZXNl
Jyk7CiBzaG91bGRCZShJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi11LWNhLWNvcHRpYycpLnJlc29s
dmVkT3B0aW9ucygpLmNhbGVuZGFyLCAnY29wdGljJyk7CiBzaG91bGRCZShJbnRsLkRhdGVUaW1l
Rm9ybWF0KCdlbi11LWNhLWRhbmdpJykucmVzb2x2ZWRPcHRpb25zKCkuY2FsZW5kYXIsICdkYW5n
aScpOwotc2hvdWxkQmVGb3JJQ1VWZXJzaW9uKDYyLCBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi11
LWNhLWV0aGlvYWEnKS5yZXNvbHZlZE9wdGlvbnMoKS5jYWxlbmRhciwgJ2V0aGlvcGljLWFtZXRl
LWFsZW0nKTsKK3Nob3VsZEJlRm9ySUNVVmVyc2lvbig2MiwgSW50bC5EYXRlVGltZUZvcm1hdCgn
ZW4tdS1jYS1ldGhpb2FhJykucmVzb2x2ZWRPcHRpb25zKCkuY2FsZW5kYXIsICdldGhpb2FhJyk7
CiBzaG91bGRCZShJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi11LWNhLWV0aGlvcGljJykucmVzb2x2
ZWRPcHRpb25zKCkuY2FsZW5kYXIsICdldGhpb3BpYycpOwogc2hvdWxkQmUoSW50bC5EYXRlVGlt
ZUZvcm1hdCgnYXItU0EtdS1jYS1ncmVnb3J5JykucmVzb2x2ZWRPcHRpb25zKCkuY2FsZW5kYXIs
ICdncmVnb3J5Jyk7CiBzaG91bGRCZShJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi11LWNhLWhlYnJl
dycpLnJlc29sdmVkT3B0aW9ucygpLmNhbGVuZGFyLCAnaGVicmV3Jyk7CkBAIC0zMjUsNyArMzI1
LDcgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiBzaG91bGRCZShJ
bnRsLkRhdGVUaW1lRm9ybWF0KCdlbi11LWNhLWphcGFuZXNlJykucmVzb2x2ZWRPcHRpb25zKCku
Y2FsZW5kYXIsICdqYXBhbmVzZScpOwogc2hvdWxkQmUoSW50bC5EYXRlVGltZUZvcm1hdCgnZW4t
dS1jYS1wZXJzaWFuJykucmVzb2x2ZWRPcHRpb25zKCkuY2FsZW5kYXIsICdwZXJzaWFuJyk7CiBz
aG91bGRCZShJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi11LWNhLXJvYycpLnJlc29sdmVkT3B0aW9u
cygpLmNhbGVuZGFyLCAncm9jJyk7Ci1zaG91bGRCZUZvcklDVVZlcnNpb24oNjIsIEludGwuRGF0
ZVRpbWVGb3JtYXQoJ2VuLXUtY2EtZXRoaW9waWMtYW1ldGUtYWxlbScpLnJlc29sdmVkT3B0aW9u
cygpLmNhbGVuZGFyLCAnZXRoaW9waWMtYW1ldGUtYWxlbScpOworc2hvdWxkQmVGb3JJQ1VWZXJz
aW9uKDYyLCBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi11LWNhLWV0aGlvcGljLWFtZXRlLWFsZW0n
KS5yZXNvbHZlZE9wdGlvbnMoKS5jYWxlbmRhciwgJ2V0aGlvYWEnKTsKIHNob3VsZEJlKEludGwu
RGF0ZVRpbWVGb3JtYXQoJ2VuLXUtY2EtaXNsYW1pYy11bWFscXVyYScpLnJlc29sdmVkT3B0aW9u
cygpLmNhbGVuZGFyLCAnaXNsYW1pYy11bWFscXVyYScpOwogc2hvdWxkQmUoSW50bC5EYXRlVGlt
ZUZvcm1hdCgnZW4tdS1jYS1pc2xhbWljLXRibGEnKS5yZXNvbHZlZE9wdGlvbnMoKS5jYWxlbmRh
ciwgJ2lzbGFtaWMtdGJsYScpOwogc2hvdWxkQmUoSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tdS1j
YS1pc2xhbWljLWNpdmlsJykucmVzb2x2ZWRPcHRpb25zKCkuY2FsZW5kYXIsICdpc2xhbWljLWNp
dmlsJyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWVudW1lcmF0aW9uLmpzIGIv
SlNUZXN0cy9zdHJlc3MvaW50bC1lbnVtZXJhdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zY2UyMDU0MTM1
NmRjY2U1NmM3ZmY1ZTNiNmM0MzVmOGIyMzg4ZTg5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvaW50bC1lbnVtZXJhdGlvbi5qcwpAQCAtMCwwICsxLDM5IEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAk
e2FjdHVhbH1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7
CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0
YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtl
cnJvclR5cGUubmFtZX0hYCk7Cit9CisKK2xldCBjYWxlbmRhcnMgPSBJbnRsLnN1cHBvcnRlZFZh
bHVlc09mKCJjYWxlbmRhciIpOworc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoY2FsZW5kYXJzKSwg
YFsiYnVkZGhpc3QiLCJjaGluZXNlIiwiY29wdGljIiwiZGFuZ2kiLCJldGhpb2FhIiwiZXRoaW9w
aWMiLCJncmVnb3J5IiwiaGVicmV3IiwiaW5kaWFuIiwiaXNsYW1pYyIsImlzbGFtaWMtY2l2aWwi
LCJpc2xhbWljLXJnc2EiLCJpc2xhbWljLXRibGEiLCJpc2xhbWljLXVtYWxxdXJhIiwiaXNvODYw
MSIsImphcGFuZXNlIiwicGVyc2lhbiIsInJvYyJdYCk7CisKK2xldCBjb2xsYXRpb25zID0gSW50
bC5zdXBwb3J0ZWRWYWx1ZXNPZigiY29sbGF0aW9uIik7CitzaG91bGRCZShKU09OLnN0cmluZ2lm
eShjb2xsYXRpb25zKSwgYFsiYmlnNWhhbiIsImNvbXBhdCIsImRpY3QiLCJnYjIzMTIiLCJwaG9u
ZWJrIiwicGhvbmV0aWMiLCJwaW55aW4iLCJyZWZvcm1lZCIsInNlYXJjaGpsIiwic3Ryb2tlIiwi
dHJhZCIsInVuaWhhbiIsInpodXlpbiJdYCk7CisKK2xldCBjdXJyZW5jaWVzID0gSW50bC5zdXBw
b3J0ZWRWYWx1ZXNPZigiY3VycmVuY3kiKTsKK3Nob3VsZEJlKEpTT04uc3RyaW5naWZ5KGN1cnJl
bmNpZXMpLCBgWyJBRUQiLCJBRk4iLCJBTEwiLCJBTUQiLCJBTkciLCJBT0EiLCJBUlMiLCJBVUQi
LCJBV0ciLCJBWk4iLCJCQU0iLCJCQkQiLCJCRFQiLCJCR04iLCJCSEQiLCJCSUYiLCJCTUQiLCJC
TkQiLCJCT0IiLCJCUkwiLCJCU0QiLCJCVE4iLCJCV1AiLCJCWU4iLCJCWkQiLCJDQUQiLCJDREYi
LCJDSEYiLCJDTFAiLCJDTlkiLCJDT1AiLCJDUkMiLCJDVUMiLCJDVVAiLCJDVkUiLCJDWksiLCJE
SkYiLCJES0siLCJET1AiLCJEWkQiLCJFR1AiLCJFUk4iLCJFVEIiLCJFVVIiLCJGSkQiLCJGS1Ai
LCJHQlAiLCJHRUwiLCJHSFMiLCJHSVAiLCJHTUQiLCJHTkYiLCJHVFEiLCJHWUQiLCJIS0QiLCJI
TkwiLCJIUksiLCJIVEciLCJIVUYiLCJJRFIiLCJJTFMiLCJJTlIiLCJJUUQiLCJJUlIiLCJJU0si
LCJKTUQiLCJKT0QiLCJKUFkiLCJLRVMiLCJLR1MiLCJLSFIiLCJLTUYiLCJLUFciLCJLUlciLCJL
V0QiLCJLWUQiLCJLWlQiLCJMQUsiLCJMQlAiLCJMS1IiLCJMUkQiLCJMU0wiLCJMWUQiLCJNQUQi
LCJNREwiLCJNR0EiLCJNS0QiLCJNTUsiLCJNTlQiLCJNT1AiLCJNUlUiLCJNVVIiLCJNVlIiLCJN
V0siLCJNWE4iLCJNWVIiLCJNWk4iLCJOQUQiLCJOR04iLCJOSU8iLCJOT0siLCJOUFIiLCJOWkQi
LCJPTVIiLCJQQUIiLCJQRU4iLCJQR0siLCJQSFAiLCJQS1IiLCJQTE4iLCJQWUciLCJRQVIiLCJS
T04iLCJSU0QiLCJSVUIiLCJSV0YiLCJTQVIiLCJTQkQiLCJTQ1IiLCJTREciLCJTRUsiLCJTR0Qi
LCJTSFAiLCJTTEwiLCJTT1MiLCJTUkQiLCJTU1AiLCJTVE4iLCJTWVAiLCJTWkwiLCJUSEIiLCJU
SlMiLCJUTVQiLCJUTkQiLCJUT1AiLCJUUlkiLCJUVEQiLCJUV0QiLCJUWlMiLCJVQUgiLCJVR1gi
LCJVU0QiLCJVWVUiLCJVWlMiLCJWRUYiLCJWTkQiLCJWVVYiLCJXU1QiLCJYQUYiLCJYQ0QiLCJY
T0YiLCJYUEYiLCJZRVIiLCJaQVIiLCJaTVciXWApOworCitsZXQgbnVtYmVyaW5nU3lzdGVtcyA9
IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoIm51bWJlcmluZ1N5c3RlbSIpOworbGV0IG51bWJlcmlu
Z1N5c3RlbXNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShudW1iZXJpbmdTeXN0ZW1zKTsKK3Nob3Vs
ZEJlKG51bWJlcmluZ1N5c3RlbXNTdHJpbmcgPT09IGBbImFkbG0iLCJhaG9tIiwiYXJhYiIsImFy
YWJleHQiLCJhcm1uIiwiYXJtbmxvdyIsImJhbGkiLCJiZW5nIiwiYmhrcyIsImJyYWgiLCJjYWtt
IiwiY2hhbSIsImN5cmwiLCJkZXZhIiwiZGlhayIsImV0aGkiLCJmdWxsd2lkZSIsImdlb3IiLCJn
b25nIiwiZ29ubSIsImdyZWsiLCJncmVrbG93IiwiZ3VqciIsImd1cnUiLCJoYW5pZGF5cyIsImhh
bmlkZWMiLCJoYW5zIiwiaGFuc2ZpbiIsImhhbnQiLCJoYW50ZmluIiwiaGViciIsImhtbmciLCJo
bW5wIiwiamF2YSIsImpwYW4iLCJqcGFuZmluIiwianBhbnllYXIiLCJrYWxpIiwia2htciIsImtu
ZGEiLCJsYW5hIiwibGFuYXRoYW0iLCJsYW9vIiwibGF0biIsImxlcGMiLCJsaW1iIiwibWF0aGJv
bGQiLCJtYXRoZGJsIiwibWF0aG1vbm8iLCJtYXRoc2FuYiIsIm1hdGhzYW5zIiwibWx5bSIsIm1v
ZGkiLCJtb25nIiwibXJvbyIsIm10ZWkiLCJteW1yIiwibXltcnNoYW4iLCJteW1ydGxuZyIsIm5l
d2EiLCJua29vIiwib2xjayIsIm9yeWEiLCJvc21hIiwicm9oZyIsInJvbWFuIiwicm9tYW5sb3ci
LCJzYXVyIiwic2VnbWVudCIsInNocmQiLCJzaW5kIiwic2luaCIsInNvcmEiLCJzdW5kIiwidGFr
ciIsInRhbHUiLCJ0YW1sIiwidGFtbGRlYyIsInRlbHUiLCJ0aGFpIiwidGlidCIsInRpcmgiLCJ2
YWlpIiwid2FyYSIsIndjaG8iXWAgfHwgbnVtYmVyaW5nU3lzdGVtc1N0cmluZyA9PT0gYFsiYWRs
bSIsImFob20iLCJhcmFiIiwiYXJhYmV4dCIsImFybW4iLCJhcm1ubG93IiwiYmFsaSIsImJlbmci
LCJiaGtzIiwiYnJhaCIsImNha20iLCJjaGFtIiwiY3lybCIsImRldmEiLCJldGhpIiwiZnVsbHdp
ZGUiLCJnZW9yIiwiZ29uZyIsImdvbm0iLCJncmVrIiwiZ3Jla2xvdyIsImd1anIiLCJndXJ1Iiwi
aGFuaWRheXMiLCJoYW5pZGVjIiwiaGFucyIsImhhbnNmaW4iLCJoYW50IiwiaGFudGZpbiIsImhl
YnIiLCJobW5nIiwiaG1ucCIsImphdmEiLCJqcGFuIiwianBhbmZpbiIsImpwYW55ZWFyIiwia2Fs
aSIsImtobXIiLCJrbmRhIiwibGFuYSIsImxhbmF0aGFtIiwibGFvbyIsImxhdG4iLCJsZXBjIiwi
bGltYiIsIm1hdGhib2xkIiwibWF0aGRibCIsIm1hdGhtb25vIiwibWF0aHNhbmIiLCJtYXRoc2Fu
cyIsIm1seW0iLCJtb2RpIiwibW9uZyIsIm1yb28iLCJtdGVpIiwibXltciIsIm15bXJzaGFuIiwi
bXltcnRsbmciLCJuZXdhIiwibmtvbyIsIm9sY2siLCJvcnlhIiwib3NtYSIsInJvaGciLCJyb21h
biIsInJvbWFubG93Iiwic2F1ciIsInNocmQiLCJzaW5kIiwic2luaCIsInNvcmEiLCJzdW5kIiwi
dGFrciIsInRhbHUiLCJ0YW1sIiwidGFtbGRlYyIsInRlbHUiLCJ0aGFpIiwidGlidCIsInRpcmgi
LCJ2YWlpIiwid2FyYSIsIndjaG8iXWAsIHRydWUpOworCitsZXQgdGltZVpvbmVzID0gSW50bC5z
dXBwb3J0ZWRWYWx1ZXNPZigidGltZVpvbmUiKTsKK3Nob3VsZEJlKEpTT04uc3RyaW5naWZ5KHRp
bWVab25lcyksIGBbIkFmcmljYS9BYmlkamFuIiwiQWZyaWNhL0FjY3JhIiwiQWZyaWNhL0FkZGlz
X0FiYWJhIiwiQWZyaWNhL0FsZ2llcnMiLCJBZnJpY2EvQXNtZXJhIiwiQWZyaWNhL0JhbWFrbyIs
IkFmcmljYS9CYW5ndWkiLCJBZnJpY2EvQmFuanVsIiwiQWZyaWNhL0Jpc3NhdSIsIkFmcmljYS9C
bGFudHlyZSIsIkFmcmljYS9CcmF6emF2aWxsZSIsIkFmcmljYS9CdWp1bWJ1cmEiLCJBZnJpY2Ev
Q2Fpcm8iLCJBZnJpY2EvQ2FzYWJsYW5jYSIsIkFmcmljYS9DZXV0YSIsIkFmcmljYS9Db25ha3J5
IiwiQWZyaWNhL0Rha2FyIiwiQWZyaWNhL0Rhcl9lc19TYWxhYW0iLCJBZnJpY2EvRGppYm91dGki
LCJBZnJpY2EvRG91YWxhIiwiQWZyaWNhL0VsX0FhaXVuIiwiQWZyaWNhL0ZyZWV0b3duIiwiQWZy
aWNhL0dhYm9yb25lIiwiQWZyaWNhL0hhcmFyZSIsIkFmcmljYS9Kb2hhbm5lc2J1cmciLCJBZnJp
Y2EvSnViYSIsIkFmcmljYS9LYW1wYWxhIiwiQWZyaWNhL0toYXJ0b3VtIiwiQWZyaWNhL0tpZ2Fs
aSIsIkFmcmljYS9LaW5zaGFzYSIsIkFmcmljYS9MYWdvcyIsIkFmcmljYS9MaWJyZXZpbGxlIiwi
QWZyaWNhL0xvbWUiLCJBZnJpY2EvTHVhbmRhIiwiQWZyaWNhL0x1YnVtYmFzaGkiLCJBZnJpY2Ev
THVzYWthIiwiQWZyaWNhL01hbGFibyIsIkFmcmljYS9NYXB1dG8iLCJBZnJpY2EvTWFzZXJ1Iiwi
QWZyaWNhL01iYWJhbmUiLCJBZnJpY2EvTW9nYWRpc2h1IiwiQWZyaWNhL01vbnJvdmlhIiwiQWZy
aWNhL05haXJvYmkiLCJBZnJpY2EvTmRqYW1lbmEiLCJBZnJpY2EvTmlhbWV5IiwiQWZyaWNhL05v
dWFrY2hvdHQiLCJBZnJpY2EvT3VhZ2Fkb3Vnb3UiLCJBZnJpY2EvUG9ydG8tTm92byIsIkFmcmlj
YS9TYW9fVG9tZSIsIkFmcmljYS9Ucmlwb2xpIiwiQWZyaWNhL1R1bmlzIiwiQWZyaWNhL1dpbmRo
b2VrIiwiQW1lcmljYS9BZGFrIiwiQW1lcmljYS9BbmNob3JhZ2UiLCJBbWVyaWNhL0FuZ3VpbGxh
IiwiQW1lcmljYS9BbnRpZ3VhIiwiQW1lcmljYS9BcmFndWFpbmEiLCJBbWVyaWNhL0FyZ2VudGlu
YS9MYV9SaW9qYSIsIkFtZXJpY2EvQXJnZW50aW5hL1Jpb19HYWxsZWdvcyIsIkFtZXJpY2EvQXJn
ZW50aW5hL1NhbHRhIiwiQW1lcmljYS9BcmdlbnRpbmEvU2FuX0p1YW4iLCJBbWVyaWNhL0FyZ2Vu
dGluYS9TYW5fTHVpcyIsIkFtZXJpY2EvQXJnZW50aW5hL1R1Y3VtYW4iLCJBbWVyaWNhL0FyZ2Vu
dGluYS9Vc2h1YWlhIiwiQW1lcmljYS9BcnViYSIsIkFtZXJpY2EvQXN1bmNpb24iLCJBbWVyaWNh
L0JhaGlhIiwiQW1lcmljYS9CYWhpYV9CYW5kZXJhcyIsIkFtZXJpY2EvQmFyYmFkb3MiLCJBbWVy
aWNhL0JlbGVtIiwiQW1lcmljYS9CZWxpemUiLCJBbWVyaWNhL0JsYW5jLVNhYmxvbiIsIkFtZXJp
Y2EvQm9hX1Zpc3RhIiwiQW1lcmljYS9Cb2dvdGEiLCJBbWVyaWNhL0JvaXNlIiwiQW1lcmljYS9C
dWVub3NfQWlyZXMiLCJBbWVyaWNhL0NhbWJyaWRnZV9CYXkiLCJBbWVyaWNhL0NhbXBvX0dyYW5k
ZSIsIkFtZXJpY2EvQ2FuY3VuIiwiQW1lcmljYS9DYXJhY2FzIiwiQW1lcmljYS9DYXRhbWFyY2Ei
LCJBbWVyaWNhL0NheWVubmUiLCJBbWVyaWNhL0NheW1hbiIsIkFtZXJpY2EvQ2hpY2FnbyIsIkFt
ZXJpY2EvQ2hpaHVhaHVhIiwiQW1lcmljYS9Db3JhbF9IYXJib3VyIiwiQW1lcmljYS9Db3Jkb2Jh
IiwiQW1lcmljYS9Db3N0YV9SaWNhIiwiQW1lcmljYS9DcmVzdG9uIiwiQW1lcmljYS9DdWlhYmEi
LCJBbWVyaWNhL0N1cmFjYW8iLCJBbWVyaWNhL0Rhbm1hcmtzaGF2biIsIkFtZXJpY2EvRGF3c29u
IiwiQW1lcmljYS9EYXdzb25fQ3JlZWsiLCJBbWVyaWNhL0RlbnZlciIsIkFtZXJpY2EvRGV0cm9p
dCIsIkFtZXJpY2EvRG9taW5pY2EiLCJBbWVyaWNhL0VkbW9udG9uIiwiQW1lcmljYS9FaXJ1bmVw
ZSIsIkFtZXJpY2EvRWxfU2FsdmFkb3IiLCJBbWVyaWNhL0ZvcnRfTmVsc29uIiwiQW1lcmljYS9G
b3J0YWxlemEiLCJBbWVyaWNhL0dsYWNlX0JheSIsIkFtZXJpY2EvR29kdGhhYiIsIkFtZXJpY2Ev
R29vc2VfQmF5IiwiQW1lcmljYS9HcmFuZF9UdXJrIiwiQW1lcmljYS9HcmVuYWRhIiwiQW1lcmlj
YS9HdWFkZWxvdXBlIiwiQW1lcmljYS9HdWF0ZW1hbGEiLCJBbWVyaWNhL0d1YXlhcXVpbCIsIkFt
ZXJpY2EvR3V5YW5hIiwiQW1lcmljYS9IYWxpZmF4IiwiQW1lcmljYS9IYXZhbmEiLCJBbWVyaWNh
L0hlcm1vc2lsbG8iLCJBbWVyaWNhL0luZGlhbmEvS25veCIsIkFtZXJpY2EvSW5kaWFuYS9NYXJl
bmdvIiwiQW1lcmljYS9JbmRpYW5hL1BldGVyc2J1cmciLCJBbWVyaWNhL0luZGlhbmEvVGVsbF9D
aXR5IiwiQW1lcmljYS9JbmRpYW5hL1ZldmF5IiwiQW1lcmljYS9JbmRpYW5hL1ZpbmNlbm5lcyIs
IkFtZXJpY2EvSW5kaWFuYS9XaW5hbWFjIiwiQW1lcmljYS9JbmRpYW5hcG9saXMiLCJBbWVyaWNh
L0ludXZpayIsIkFtZXJpY2EvSXFhbHVpdCIsIkFtZXJpY2EvSmFtYWljYSIsIkFtZXJpY2EvSnVq
dXkiLCJBbWVyaWNhL0p1bmVhdSIsIkFtZXJpY2EvS2VudHVja3kvTW9udGljZWxsbyIsIkFtZXJp
Y2EvS3JhbGVuZGlqayIsIkFtZXJpY2EvTGFfUGF6IiwiQW1lcmljYS9MaW1hIiwiQW1lcmljYS9M
b3NfQW5nZWxlcyIsIkFtZXJpY2EvTG91aXN2aWxsZSIsIkFtZXJpY2EvTG93ZXJfUHJpbmNlcyIs
IkFtZXJpY2EvTWFjZWlvIiwiQW1lcmljYS9NYW5hZ3VhIiwiQW1lcmljYS9NYW5hdXMiLCJBbWVy
aWNhL01hcmlnb3QiLCJBbWVyaWNhL01hcnRpbmlxdWUiLCJBbWVyaWNhL01hdGFtb3JvcyIsIkFt
ZXJpY2EvTWF6YXRsYW4iLCJBbWVyaWNhL01lbmRvemEiLCJBbWVyaWNhL01lbm9taW5lZSIsIkFt
ZXJpY2EvTWVyaWRhIiwiQW1lcmljYS9NZXRsYWthdGxhIiwiQW1lcmljYS9NZXhpY29fQ2l0eSIs
IkFtZXJpY2EvTWlxdWVsb24iLCJBbWVyaWNhL01vbmN0b24iLCJBbWVyaWNhL01vbnRlcnJleSIs
IkFtZXJpY2EvTW9udGV2aWRlbyIsIkFtZXJpY2EvTW9udHJlYWwiLCJBbWVyaWNhL01vbnRzZXJy
YXQiLCJBbWVyaWNhL05hc3NhdSIsIkFtZXJpY2EvTmV3X1lvcmsiLCJBbWVyaWNhL05pcGlnb24i
LCJBbWVyaWNhL05vbWUiLCJBbWVyaWNhL05vcm9uaGEiLCJBbWVyaWNhL05vcnRoX0Rha290YS9C
ZXVsYWgiLCJBbWVyaWNhL05vcnRoX0Rha290YS9DZW50ZXIiLCJBbWVyaWNhL05vcnRoX0Rha290
YS9OZXdfU2FsZW0iLCJBbWVyaWNhL09qaW5hZ2EiLCJBbWVyaWNhL1BhbmFtYSIsIkFtZXJpY2Ev
UGFuZ25pcnR1bmciLCJBbWVyaWNhL1BhcmFtYXJpYm8iLCJBbWVyaWNhL1Bob2VuaXgiLCJBbWVy
aWNhL1BvcnQtYXUtUHJpbmNlIiwiQW1lcmljYS9Qb3J0X29mX1NwYWluIiwiQW1lcmljYS9Qb3J0
b19WZWxobyIsIkFtZXJpY2EvUHVlcnRvX1JpY28iLCJBbWVyaWNhL1B1bnRhX0FyZW5hcyIsIkFt
ZXJpY2EvUmFpbnlfUml2ZXIiLCJBbWVyaWNhL1Jhbmtpbl9JbmxldCIsIkFtZXJpY2EvUmVjaWZl
IiwiQW1lcmljYS9SZWdpbmEiLCJBbWVyaWNhL1Jlc29sdXRlIiwiQW1lcmljYS9SaW9fQnJhbmNv
IiwiQW1lcmljYS9TYW50YV9Jc2FiZWwiLCJBbWVyaWNhL1NhbnRhcmVtIiwiQW1lcmljYS9TYW50
aWFnbyIsIkFtZXJpY2EvU2FudG9fRG9taW5nbyIsIkFtZXJpY2EvU2FvX1BhdWxvIiwiQW1lcmlj
YS9TY29yZXNieXN1bmQiLCJBbWVyaWNhL1NpdGthIiwiQW1lcmljYS9TdF9CYXJ0aGVsZW15Iiwi
QW1lcmljYS9TdF9Kb2hucyIsIkFtZXJpY2EvU3RfS2l0dHMiLCJBbWVyaWNhL1N0X0x1Y2lhIiwi
QW1lcmljYS9TdF9UaG9tYXMiLCJBbWVyaWNhL1N0X1ZpbmNlbnQiLCJBbWVyaWNhL1N3aWZ0X0N1
cnJlbnQiLCJBbWVyaWNhL1RlZ3VjaWdhbHBhIiwiQW1lcmljYS9UaHVsZSIsIkFtZXJpY2EvVGh1
bmRlcl9CYXkiLCJBbWVyaWNhL1RpanVhbmEiLCJBbWVyaWNhL1Rvcm9udG8iLCJBbWVyaWNhL1Rv
cnRvbGEiLCJBbWVyaWNhL1ZhbmNvdXZlciIsIkFtZXJpY2EvV2hpdGVob3JzZSIsIkFtZXJpY2Ev
V2lubmlwZWciLCJBbWVyaWNhL1lha3V0YXQiLCJBbWVyaWNhL1llbGxvd2tuaWZlIiwiQW50YXJj
dGljYS9DYXNleSIsIkFudGFyY3RpY2EvRGF2aXMiLCJBbnRhcmN0aWNhL0R1bW9udERVcnZpbGxl
IiwiQW50YXJjdGljYS9NYWNxdWFyaWUiLCJBbnRhcmN0aWNhL01hd3NvbiIsIkFudGFyY3RpY2Ev
TWNNdXJkbyIsIkFudGFyY3RpY2EvUGFsbWVyIiwiQW50YXJjdGljYS9Sb3RoZXJhIiwiQW50YXJj
dGljYS9TeW93YSIsIkFudGFyY3RpY2EvVHJvbGwiLCJBbnRhcmN0aWNhL1Zvc3RvayIsIkFyY3Rp
Yy9Mb25neWVhcmJ5ZW4iLCJBc2lhL0FkZW4iLCJBc2lhL0FsbWF0eSIsIkFzaWEvQW1tYW4iLCJB
c2lhL0FuYWR5ciIsIkFzaWEvQXF0YXUiLCJBc2lhL0FxdG9iZSIsIkFzaWEvQXNoZ2FiYXQiLCJB
c2lhL0F0eXJhdSIsIkFzaWEvQmFnaGRhZCIsIkFzaWEvQmFocmFpbiIsIkFzaWEvQmFrdSIsIkFz
aWEvQmFuZ2tvayIsIkFzaWEvQmFybmF1bCIsIkFzaWEvQmVpcnV0IiwiQXNpYS9CaXNoa2VrIiwi
QXNpYS9CcnVuZWkiLCJBc2lhL0NhbGN1dHRhIiwiQXNpYS9DaGl0YSIsIkFzaWEvQ2hvaWJhbHNh
biIsIkFzaWEvQ29sb21ibyIsIkFzaWEvRGFtYXNjdXMiLCJBc2lhL0RoYWthIiwiQXNpYS9EaWxp
IiwiQXNpYS9EdWJhaSIsIkFzaWEvRHVzaGFuYmUiLCJBc2lhL0ZhbWFndXN0YSIsIkFzaWEvR2F6
YSIsIkFzaWEvSGVicm9uIiwiQXNpYS9Ib25nX0tvbmciLCJBc2lhL0hvdmQiLCJBc2lhL0lya3V0
c2siLCJBc2lhL0pha2FydGEiLCJBc2lhL0pheWFwdXJhIiwiQXNpYS9KZXJ1c2FsZW0iLCJBc2lh
L0thYnVsIiwiQXNpYS9LYW1jaGF0a2EiLCJBc2lhL0thcmFjaGkiLCJBc2lhL0thdG1hbmR1Iiwi
QXNpYS9LaGFuZHlnYSIsIkFzaWEvS3Jhc25veWFyc2siLCJBc2lhL0t1YWxhX0x1bXB1ciIsIkFz
aWEvS3VjaGluZyIsIkFzaWEvS3V3YWl0IiwiQXNpYS9NYWNhdSIsIkFzaWEvTWFnYWRhbiIsIkFz
aWEvTWFrYXNzYXIiLCJBc2lhL01hbmlsYSIsIkFzaWEvTXVzY2F0IiwiQXNpYS9OaWNvc2lhIiwi
QXNpYS9Ob3Zva3V6bmV0c2siLCJBc2lhL05vdm9zaWJpcnNrIiwiQXNpYS9PbXNrIiwiQXNpYS9P
cmFsIiwiQXNpYS9QaG5vbV9QZW5oIiwiQXNpYS9Qb250aWFuYWsiLCJBc2lhL1B5b25neWFuZyIs
IkFzaWEvUWF0YXIiLCJBc2lhL1Fvc3RhbmF5IiwiQXNpYS9ReXp5bG9yZGEiLCJBc2lhL1Jhbmdv
b24iLCJBc2lhL1JpeWFkaCIsIkFzaWEvU2FpZ29uIiwiQXNpYS9TYWtoYWxpbiIsIkFzaWEvU2Ft
YXJrYW5kIiwiQXNpYS9TZW91bCIsIkFzaWEvU2hhbmdoYWkiLCJBc2lhL1NpbmdhcG9yZSIsIkFz
aWEvU3JlZG5la29seW1zayIsIkFzaWEvVGFpcGVpIiwiQXNpYS9UYXNoa2VudCIsIkFzaWEvVGJp
bGlzaSIsIkFzaWEvVGVocmFuIiwiQXNpYS9UaGltcGh1IiwiQXNpYS9Ub2t5byIsIkFzaWEvVG9t
c2siLCJBc2lhL1VsYWFuYmFhdGFyIiwiQXNpYS9VcnVtcWkiLCJBc2lhL1VzdC1OZXJhIiwiQXNp
YS9WaWVudGlhbmUiLCJBc2lhL1ZsYWRpdm9zdG9rIiwiQXNpYS9ZYWt1dHNrIiwiQXNpYS9ZZWth
dGVyaW5idXJnIiwiQXNpYS9ZZXJldmFuIiwiQXRsYW50aWMvQXpvcmVzIiwiQXRsYW50aWMvQmVy
bXVkYSIsIkF0bGFudGljL0NhbmFyeSIsIkF0bGFudGljL0NhcGVfVmVyZGUiLCJBdGxhbnRpYy9G
YWVyb2UiLCJBdGxhbnRpYy9NYWRlaXJhIiwiQXRsYW50aWMvUmV5a2phdmlrIiwiQXRsYW50aWMv
U291dGhfR2VvcmdpYSIsIkF0bGFudGljL1N0X0hlbGVuYSIsIkF0bGFudGljL1N0YW5sZXkiLCJB
dXN0cmFsaWEvQWRlbGFpZGUiLCJBdXN0cmFsaWEvQnJpc2JhbmUiLCJBdXN0cmFsaWEvQnJva2Vu
X0hpbGwiLCJBdXN0cmFsaWEvQ3VycmllIiwiQXVzdHJhbGlhL0RhcndpbiIsIkF1c3RyYWxpYS9F
dWNsYSIsIkF1c3RyYWxpYS9Ib2JhcnQiLCJBdXN0cmFsaWEvTGluZGVtYW4iLCJBdXN0cmFsaWEv
TG9yZF9Ib3dlIiwiQXVzdHJhbGlhL01lbGJvdXJuZSIsIkF1c3RyYWxpYS9QZXJ0aCIsIkF1c3Ry
YWxpYS9TeWRuZXkiLCJFdXJvcGUvQW1zdGVyZGFtIiwiRXVyb3BlL0FuZG9ycmEiLCJFdXJvcGUv
QXN0cmFraGFuIiwiRXVyb3BlL0F0aGVucyIsIkV1cm9wZS9CZWxncmFkZSIsIkV1cm9wZS9CZXJs
aW4iLCJFdXJvcGUvQnJhdGlzbGF2YSIsIkV1cm9wZS9CcnVzc2VscyIsIkV1cm9wZS9CdWNoYXJl
c3QiLCJFdXJvcGUvQnVkYXBlc3QiLCJFdXJvcGUvQnVzaW5nZW4iLCJFdXJvcGUvQ2hpc2luYXUi
LCJFdXJvcGUvQ29wZW5oYWdlbiIsIkV1cm9wZS9EdWJsaW4iLCJFdXJvcGUvR2licmFsdGFyIiwi
RXVyb3BlL0d1ZXJuc2V5IiwiRXVyb3BlL0hlbHNpbmtpIiwiRXVyb3BlL0lzbGVfb2ZfTWFuIiwi
RXVyb3BlL0lzdGFuYnVsIiwiRXVyb3BlL0plcnNleSIsIkV1cm9wZS9LYWxpbmluZ3JhZCIsIkV1
cm9wZS9LaWV2IiwiRXVyb3BlL0tpcm92IiwiRXVyb3BlL0xpc2JvbiIsIkV1cm9wZS9ManVibGph
bmEiLCJFdXJvcGUvTG9uZG9uIiwiRXVyb3BlL0x1eGVtYm91cmciLCJFdXJvcGUvTWFkcmlkIiwi
RXVyb3BlL01hbHRhIiwiRXVyb3BlL01hcmllaGFtbiIsIkV1cm9wZS9NaW5zayIsIkV1cm9wZS9N
b25hY28iLCJFdXJvcGUvTW9zY293IiwiRXVyb3BlL09zbG8iLCJFdXJvcGUvUGFyaXMiLCJFdXJv
cGUvUG9kZ29yaWNhIiwiRXVyb3BlL1ByYWd1ZSIsIkV1cm9wZS9SaWdhIiwiRXVyb3BlL1JvbWUi
LCJFdXJvcGUvU2FtYXJhIiwiRXVyb3BlL1Nhbl9NYXJpbm8iLCJFdXJvcGUvU2FyYWpldm8iLCJF
dXJvcGUvU2FyYXRvdiIsIkV1cm9wZS9TaW1mZXJvcG9sIiwiRXVyb3BlL1Nrb3BqZSIsIkV1cm9w
ZS9Tb2ZpYSIsIkV1cm9wZS9TdG9ja2hvbG0iLCJFdXJvcGUvVGFsbGlubiIsIkV1cm9wZS9UaXJh
bmUiLCJFdXJvcGUvVWx5YW5vdnNrIiwiRXVyb3BlL1V6aGdvcm9kIiwiRXVyb3BlL1ZhZHV6Iiwi
RXVyb3BlL1ZhdGljYW4iLCJFdXJvcGUvVmllbm5hIiwiRXVyb3BlL1ZpbG5pdXMiLCJFdXJvcGUv
Vm9sZ29ncmFkIiwiRXVyb3BlL1dhcnNhdyIsIkV1cm9wZS9aYWdyZWIiLCJFdXJvcGUvWmFwb3Jv
emh5ZSIsIkV1cm9wZS9adXJpY2giLCJJbmRpYW4vQW50YW5hbmFyaXZvIiwiSW5kaWFuL0NoYWdv
cyIsIkluZGlhbi9DaHJpc3RtYXMiLCJJbmRpYW4vQ29jb3MiLCJJbmRpYW4vQ29tb3JvIiwiSW5k
aWFuL0tlcmd1ZWxlbiIsIkluZGlhbi9NYWhlIiwiSW5kaWFuL01hbGRpdmVzIiwiSW5kaWFuL01h
dXJpdGl1cyIsIkluZGlhbi9NYXlvdHRlIiwiSW5kaWFuL1JldW5pb24iLCJQYWNpZmljL0FwaWEi
LCJQYWNpZmljL0F1Y2tsYW5kIiwiUGFjaWZpYy9Cb3VnYWludmlsbGUiLCJQYWNpZmljL0NoYXRo
YW0iLCJQYWNpZmljL0Vhc3RlciIsIlBhY2lmaWMvRWZhdGUiLCJQYWNpZmljL0VuZGVyYnVyeSIs
IlBhY2lmaWMvRmFrYW9mbyIsIlBhY2lmaWMvRmlqaSIsIlBhY2lmaWMvRnVuYWZ1dGkiLCJQYWNp
ZmljL0dhbGFwYWdvcyIsIlBhY2lmaWMvR2FtYmllciIsIlBhY2lmaWMvR3VhZGFsY2FuYWwiLCJQ
YWNpZmljL0d1YW0iLCJQYWNpZmljL0hvbm9sdWx1IiwiUGFjaWZpYy9Kb2huc3RvbiIsIlBhY2lm
aWMvS2lyaXRpbWF0aSIsIlBhY2lmaWMvS29zcmFlIiwiUGFjaWZpYy9Ld2FqYWxlaW4iLCJQYWNp
ZmljL01hanVybyIsIlBhY2lmaWMvTWFycXVlc2FzIiwiUGFjaWZpYy9NaWR3YXkiLCJQYWNpZmlj
L05hdXJ1IiwiUGFjaWZpYy9OaXVlIiwiUGFjaWZpYy9Ob3Jmb2xrIiwiUGFjaWZpYy9Ob3VtZWEi
LCJQYWNpZmljL1BhZ29fUGFnbyIsIlBhY2lmaWMvUGFsYXUiLCJQYWNpZmljL1BpdGNhaXJuIiwi
UGFjaWZpYy9Qb25hcGUiLCJQYWNpZmljL1BvcnRfTW9yZXNieSIsIlBhY2lmaWMvUmFyb3Rvbmdh
IiwiUGFjaWZpYy9TYWlwYW4iLCJQYWNpZmljL1RhaGl0aSIsIlBhY2lmaWMvVGFyYXdhIiwiUGFj
aWZpYy9Ub25nYXRhcHUiLCJQYWNpZmljL1RydWsiLCJQYWNpZmljL1dha2UiLCJQYWNpZmljL1dh
bGxpcyJdYCk7CisKK2xldCB1bml0cyA9IEludGwuc3VwcG9ydGVkVmFsdWVzT2YoInVuaXQiKTsK
K3Nob3VsZEJlKEpTT04uc3RyaW5naWZ5KHVuaXRzKSwgYFsiYWNyZSIsImJpdCIsImJ5dGUiLCJj
ZWxzaXVzIiwiY2VudGltZXRlciIsImRheSIsImRlZ3JlZSIsImZhaHJlbmhlaXQiLCJmbHVpZC1v
dW5jZSIsImZvb3QiLCJnYWxsb24iLCJnaWdhYml0IiwiZ2lnYWJ5dGUiLCJncmFtIiwiaGVjdGFy
ZSIsImhvdXIiLCJpbmNoIiwia2lsb2JpdCIsImtpbG9ieXRlIiwia2lsb2dyYW0iLCJraWxvbWV0
ZXIiLCJsaXRlciIsIm1lZ2FiaXQiLCJtZWdhYnl0ZSIsIm1ldGVyIiwibWlsZSIsIm1pbGUtc2Nh
bmRpbmF2aWFuIiwibWlsbGlsaXRlciIsIm1pbGxpbWV0ZXIiLCJtaWxsaXNlY29uZCIsIm1pbnV0
ZSIsIm1vbnRoIiwib3VuY2UiLCJwZXJjZW50IiwicGV0YWJ5dGUiLCJwb3VuZCIsInNlY29uZCIs
InN0b25lIiwidGVyYWJpdCIsInRlcmFieXRlIiwid2VlayIsInlhcmQiLCJ5ZWFyIl1gKTsKKwor
c2hvdWxkVGhyb3coKCkgPT4geworICAgIEludGwuc3VwcG9ydGVkVmFsdWVzT2YoImludmFsaWQi
KTsKK30sIFJhbmdlRXJyb3IpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2Nh
bGUtaW5mby5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxlLWluZm8uanMKaW5kZXggMDdj
MjFiNmU3ZjE3ODJkYzFlODIwOWFmNmMxOGNkY2M3NjNlYjQwOC4uOWQ0Y2EwMTg2OTJjMTBjZWQ2
ZWEwNjIzZDhhMWYxZTczY2IyMjI5MyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW50bC1s
b2NhbGUtaW5mby5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS1pbmZvLmpzCkBA
IC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKIH0K
IHsKICAgICBsZXQgbG9jYWxlID0gbmV3IEludGwuTG9jYWxlKCJhciIpCi0gICAgc2hvdWxkQmUo
SlNPTi5zdHJpbmdpZnkobG9jYWxlLmNhbGVuZGFycyksIGBbImdyZWdvcnkiLCJjb3B0aWMiLCJp
c2xhbWljIiwiaXNsYW1pY2MiLCJpc2xhbWljLXRibGEiXWApOworICAgIHNob3VsZEJlKEpTT04u
c3RyaW5naWZ5KGxvY2FsZS5jYWxlbmRhcnMpLCBgWyJncmVnb3J5IiwiY29wdGljIiwiaXNsYW1p
YyIsImlzbGFtaWMtY2l2aWwiLCJpc2xhbWljLXRibGEiXWApOwogICAgIHNob3VsZEJlKEpTT04u
c3RyaW5naWZ5KGxvY2FsZS5jb2xsYXRpb25zKSwgYFsiY29tcGF0IiwiZW1vamkiLCJlb3IiXWAp
OwogICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5ob3VyQ3ljbGVzKSwgYFsiaDEy
Il1gKTsKICAgICBsZXQgbnMgPSBKU09OLnN0cmluZ2lmeShsb2NhbGUubnVtYmVyaW5nU3lzdGVt
cyk7CkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKIH0KIHsKICAgICBsZXQgbG9jYWxlID0gbmV3IEludGwuTG9jYWxlKCJhci1FRyIpCi0gICAg
c2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9jYWxlLmNhbGVuZGFycyksIGBbImdyZWdvcnkiLCJj
b3B0aWMiLCJpc2xhbWljIiwiaXNsYW1pY2MiLCJpc2xhbWljLXRibGEiXWApOworICAgIHNob3Vs
ZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5jYWxlbmRhcnMpLCBgWyJncmVnb3J5IiwiY29wdGlj
IiwiaXNsYW1pYyIsImlzbGFtaWMtY2l2aWwiLCJpc2xhbWljLXRibGEiXWApOwogICAgIHNob3Vs
ZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5jb2xsYXRpb25zKSwgYFsiY29tcGF0IiwiZW1vamki
LCJlb3IiXWApOwogICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5ob3VyQ3ljbGVz
KSwgYFsiaDEyIl1gKTsKICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShsb2NhbGUubnVtYmVy
aW5nU3lzdGVtcyksIGBbImFyYWIiXWApOwpAQCAtOTksNyArOTksNyBAQCBmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiB9CiB7CiAgICAgbGV0IGxvY2FsZSA9IG5ldyBJbnRs
LkxvY2FsZSgiZmEiKQotICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5jYWxlbmRh
cnMpLCBgWyJwZXJzaWFuIiwiZ3JlZ29yeSIsImlzbGFtaWMiLCJpc2xhbWljYyIsImlzbGFtaWMt
dGJsYSJdYCk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkobG9jYWxlLmNhbGVuZGFycyks
IGBbInBlcnNpYW4iLCJncmVnb3J5IiwiaXNsYW1pYyIsImlzbGFtaWMtY2l2aWwiLCJpc2xhbWlj
LXRibGEiXWApOwogICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2FsZS5jb2xsYXRpb25z
KSwgYFsiZW1vamkiLCJlb3IiXWApOwogICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KGxvY2Fs
ZS5ob3VyQ3ljbGVzKSwgYFsiaDIzIl1gKTsKICAgICBzaG91bGRCZShKU09OLnN0cmluZ2lmeShs
b2NhbGUubnVtYmVyaW5nU3lzdGVtcyksIGBbImFyYWJleHQiXWApOwo=
</data>
<flag name="review"
          id="459118"
          type_id="1"
          status="+"
          setter="ross.kirsling"
    />
          </attachment>
      

    </bug>

</bugzilla>