<?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>212921</bug_id>
          
          <creation_ts>2020-06-08 14:12:38 -0700</creation_ts>
          <short_desc>[IPC] Adopt enum class for IPC::CFType</short_desc>
          <delta_ts>2020-06-11 13:38: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>WebKit2</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=213093</see_also>
          <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>211988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>useafterfree</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1660372</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-08 14:12:38 -0700</bug_when>
    <thetext>Adopt enum class for IPC::CFType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660373</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-08 14:13:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/64134506&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660377</commentid>
    <comment_count>2</comment_count>
      <attachid>401369</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-08 14:16:35 -0700</bug_when>
    <thetext>Created attachment 401369
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660379</commentid>
    <comment_count>3</comment_count>
      <attachid>401369</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-08 14:17:20 -0700</bug_when>
    <thetext>Comment on attachment 401369
Patch v1

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

&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:54
&gt; +enum class CFType : uint8_t {

We should take off all the CF prefixes for the enumeration values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660380</commentid>
    <comment_count>4</comment_count>
      <attachid>401369</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-08 14:17:57 -0700</bug_when>
    <thetext>Comment on attachment 401369
Patch v1

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

&gt;&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:54
&gt;&gt; +enum class CFType : uint8_t {
&gt; 
&gt; We should take off all the CF prefixes for the enumeration values.

Except that it seems we have null and CFNull!?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660393</commentid>
    <comment_count>5</comment_count>
      <attachid>401369</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-08 14:34:32 -0700</bug_when>
    <thetext>Comment on attachment 401369
Patch v1

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

&gt;&gt;&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:54
&gt;&gt;&gt; +enum class CFType : uint8_t {
&gt;&gt; 
&gt;&gt; We should take off all the CF prefixes for the enumeration values.
&gt; 
&gt; Except that it seems we have null and CFNull!?

Seems like it&apos;s to differentiate between a CFNull object and a nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660401</commentid>
    <comment_count>6</comment_count>
      <attachid>401369</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-08 14:40:28 -0700</bug_when>
    <thetext>Comment on attachment 401369
Patch v1

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

&gt;&gt;&gt;&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:54
&gt;&gt;&gt;&gt; +enum class CFType : uint8_t {
&gt;&gt;&gt; 
&gt;&gt;&gt; We should take off all the CF prefixes for the enumeration values.
&gt;&gt; 
&gt;&gt; Except that it seems we have null and CFNull!?
&gt; 
&gt; Seems like it&apos;s to differentiate between a CFNull object and a nullptr.

Actually, I would propose keeping the &quot;CF&quot; prefix because the rule is to remove &quot;Ref&quot; from the actual type name to turn it into an enum (which doesn&apos;t work for types outside of CoreFoundation):

    IPC::CFType::CFString,
    IPC::CFType::CFURL,
    IPC::CFType::SecCertificate,
    IPC::CFType::SecIdentity,

I would change CFType::Null to CFType::Nullptr, though, to differentiate that from CFNull[Ref[, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660430</commentid>
    <comment_count>7</comment_count>
      <attachid>401383</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-08 15:39:21 -0700</bug_when>
    <thetext>Created attachment 401383
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660435</commentid>
    <comment_count>8</comment_count>
      <attachid>401383</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-08 15:46:11 -0700</bug_when>
    <thetext>Comment on attachment 401383
Patch v2

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

&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:55
&gt;      CFArray,

I understand your rationale for wanting to leave the CF prefix on these, but I don’t agree that it’s better to have that mechanical rule and I would remove it if it was me doing the work.

&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:181
&gt; +    case CFType::Unknown:

Seems like someone should later refactor to eliminate this value. Using Optional, most likely. It’s funny to validate that these are good values, but include one bad value.

&gt; Source/WebKit/Shared/mac/WebCoreArgumentCodersMac.mm:210
&gt; +    RetainPtr&lt;CFDictionaryRef&gt; dictionary = createSerializableRepresentation(requestToSerialize.get(), IPC::tokenNullptrTypeRef());

I’d use auto here.

&gt; Source/WebKit/Shared/mac/WebCoreArgumentCodersMac.mm:234
&gt; +    RetainPtr&lt;NSURLRequest&gt; nsURLRequest = createNSURLRequestFromSerializableRepresentation(dictionary.get(), IPC::tokenNullptrTypeRef());

And here.

&gt; Source/WebKit/mac/WebKit2.order:919
&gt; -__ZN7CoreIPC16tokenNullTypeRefEv
&gt; +__ZN7CoreIPC19tokenNullptrTypeRefEv

Normally we don’t try to keep these up to date. Not even sure why we still have them checked in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660484</commentid>
    <comment_count>9</comment_count>
      <attachid>401398</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-08 16:30:12 -0700</bug_when>
    <thetext>Created attachment 401398
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660487</commentid>
    <comment_count>10</comment_count>
      <attachid>401383</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-08 16:33:06 -0700</bug_when>
    <thetext>Comment on attachment 401383
Patch v2

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

&gt;&gt; Source/WebKit/Shared/mac/WebCoreArgumentCodersMac.mm:210
&gt;&gt; +    RetainPtr&lt;CFDictionaryRef&gt; dictionary = createSerializableRepresentation(requestToSerialize.get(), IPC::tokenNullptrTypeRef());
&gt; 
&gt; I’d use auto here.

Fixed.

&gt;&gt; Source/WebKit/Shared/mac/WebCoreArgumentCodersMac.mm:234
&gt;&gt; +    RetainPtr&lt;NSURLRequest&gt; nsURLRequest = createNSURLRequestFromSerializableRepresentation(dictionary.get(), IPC::tokenNullptrTypeRef());
&gt; 
&gt; And here.

Fixed.

&gt;&gt; Source/WebKit/mac/WebKit2.order:919
&gt;&gt; +__ZN7CoreIPC19tokenNullptrTypeRefEv
&gt; 
&gt; Normally we don’t try to keep these up to date. Not even sure why we still have them checked in.

Keith Miller tried to remove it in r253218, but it broke the build, so the patch was reverted (*.order restored) in r253234.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660525</commentid>
    <comment_count>11</comment_count>
      <attachid>401398</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-08 18:10:45 -0700</bug_when>
    <thetext>Comment on attachment 401398
Patch for landing

Adding cq+ since the only differences between this patch and Patch v2 are the reviewer added to ChangeLog and a couple of `auto` variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660532</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-08 18:26:33 -0700</bug_when>
    <thetext>Committed r262762: &lt;https://trac.webkit.org/changeset/262762&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401398.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401369</attachid>
            <date>2020-06-08 14:16:35 -0700</date>
            <delta_ts>2020-06-08 15:40:04 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-212921-20200608141718.patch</filename>
            <type>text/plain</type>
            <size>11679</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU0ZTJkN2M2OWJiOThjYWNk
NjAzOWM1YjcyMmQzNmU4ZGVmNDQ5NmEuLmQzMmVjZDRlNjcwM2FmNDcwMDY5ZDcyZjg1YmE5NTYx
N2U5MGE1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDYtMDggIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBbSVBDXSBBZG9wdCBlbnVtIGNs
YXNzIGZvciBJUEM6OkNGVHlwZQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjEyOTIx
PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQxMzQ1MDY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnND
Ri5jcHA6CisgICAgICAgIChJUEM6OkNGVHlwZSk6CisgICAgICAgIC0gQ29udmVydCB0byBlbnVt
IGNsYXNzLgorICAgICAgICAoSVBDOjp0eXBlRnJvbUNGVHlwZVJlZik6CisgICAgICAgIChJUEM6
OmVuY29kZSk6CisgICAgICAgIC0gU3dpdGNoIGZyb20gZW5jb2RlRW51bSgpIHRvIG9wZXJhdG9y
PDwoKS4KKyAgICAgICAgKElQQzo6ZGVjb2RlKToKKyAgICAgICAgLSBTd2l0Y2ggZnJvbSBkZWNv
ZGVFbnVtKCkgdG8gZGVjb2RlKCkuCisgICAgICAgIChXVEY6OkVudW1UcmFpdHM8SVBDOjpDRlR5
cGU+KTogQWRkLgorCiAyMDIwLTA2LTA4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CiAKICAgICAgICAgW0lQQ10gQWRvcHQgZW51bSBjbGFzcyBmb3IgRHJhZ09wZXJhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAppbmRleCBhNzcy
ZDJjNzJkZjg1N2I2YmY4NzVmOWQ0ZTBhNGMwMGMxZjNiODA3Li41NDdlMjU5NmM2NTZiMDQ0MWU5
NzQyOWIzOGIyZTE4MjUxMDA2MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9j
Zi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1
bWVudENvZGVyc0NGLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTUw
LDcgKzUxLDcgQEAgQ0ZUeXBlUmVmIHRva2VuTnVsbFR5cGVSZWYoKQogICAgIHJldHVybiB0b2tl
bk51bGxUeXBlOwogfQogCi1lbnVtIENGVHlwZSB7CitlbnVtIGNsYXNzIENGVHlwZSA6IHVpbnQ4
X3QgewogICAgIENGQXJyYXksCiAgICAgQ0ZCb29sZWFuLAogICAgIENGRGF0YSwKQEAgLTgwLDEw
NCArODEsMTA0IEBAIHN0YXRpYyBDRlR5cGUgdHlwZUZyb21DRlR5cGVSZWYoQ0ZUeXBlUmVmIHR5
cGUpCiAgICAgQVNTRVJUKHR5cGUpOwogCiAgICAgaWYgKHR5cGUgPT0gdG9rZW5OdWxsVHlwZVJl
ZigpKQotICAgICAgICByZXR1cm4gTnVsbDsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6TnVsbDsK
IAogICAgIENGVHlwZUlEIHR5cGVJRCA9IENGR2V0VHlwZUlEKHR5cGUpOwogICAgIGlmICh0eXBl
SUQgPT0gQ0ZBcnJheUdldFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gQ0ZBcnJheTsKKyAgICAg
ICAgcmV0dXJuIENGVHlwZTo6Q0ZBcnJheTsKICAgICBpZiAodHlwZUlEID09IENGQm9vbGVhbkdl
dFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gQ0ZCb29sZWFuOworICAgICAgICByZXR1cm4gQ0ZU
eXBlOjpDRkJvb2xlYW47CiAgICAgaWYgKHR5cGVJRCA9PSBDRkRhdGFHZXRUeXBlSUQoKSkKLSAg
ICAgICAgcmV0dXJuIENGRGF0YTsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6Q0ZEYXRhOwogICAg
IGlmICh0eXBlSUQgPT0gQ0ZEYXRlR2V0VHlwZUlEKCkpCi0gICAgICAgIHJldHVybiBDRkRhdGU7
CisgICAgICAgIHJldHVybiBDRlR5cGU6OkNGRGF0ZTsKICAgICBpZiAodHlwZUlEID09IENGRGlj
dGlvbmFyeUdldFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5OworICAgICAg
ICByZXR1cm4gQ0ZUeXBlOjpDRkRpY3Rpb25hcnk7CiAgICAgaWYgKHR5cGVJRCA9PSBDRk51bGxH
ZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIENGTnVsbDsKKyAgICAgICAgcmV0dXJuIENGVHlw
ZTo6Q0ZOdWxsOwogICAgIGlmICh0eXBlSUQgPT0gQ0ZOdW1iZXJHZXRUeXBlSUQoKSkKLSAgICAg
ICAgcmV0dXJuIENGTnVtYmVyOworICAgICAgICByZXR1cm4gQ0ZUeXBlOjpDRk51bWJlcjsKICAg
ICBpZiAodHlwZUlEID09IENGU3RyaW5nR2V0VHlwZUlEKCkpCi0gICAgICAgIHJldHVybiBDRlN0
cmluZzsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6Q0ZTdHJpbmc7CiAgICAgaWYgKHR5cGVJRCA9
PSBDRlVSTEdldFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gQ0ZVUkw7CisgICAgICAgIHJldHVy
biBDRlR5cGU6OkNGVVJMOwogICAgIGlmICh0eXBlSUQgPT0gU2VjQ2VydGlmaWNhdGVHZXRUeXBl
SUQoKSkKLSAgICAgICAgcmV0dXJuIFNlY0NlcnRpZmljYXRlOworICAgICAgICByZXR1cm4gQ0ZU
eXBlOjpTZWNDZXJ0aWZpY2F0ZTsKICAgICBpZiAodHlwZUlEID09IFNlY0lkZW50aXR5R2V0VHlw
ZUlEKCkpCi0gICAgICAgIHJldHVybiBTZWNJZGVudGl0eTsKKyAgICAgICAgcmV0dXJuIENGVHlw
ZTo6U2VjSWRlbnRpdHk7CiAjaWYgSEFWRShTRUNfS0VZQ0hBSU4pCiAgICAgaWYgKHR5cGVJRCA9
PSBTZWNLZXljaGFpbkl0ZW1HZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIFNlY0tleWNoYWlu
SXRlbTsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6U2VjS2V5Y2hhaW5JdGVtOwogI2VuZGlmCiAj
aWYgSEFWRShTRUNfQUNDRVNTX0NPTlRST0wpCiAgICAgaWYgKHR5cGVJRCA9PSBTZWNBY2Nlc3ND
b250cm9sR2V0VHlwZUlEKCkpCi0gICAgICAgIHJldHVybiBTZWNBY2Nlc3NDb250cm9sOworICAg
ICAgICByZXR1cm4gQ0ZUeXBlOjpTZWNBY2Nlc3NDb250cm9sOwogI2VuZGlmCiAjaWYgSEFWRShT
RUNfVFJVU1RfU0VSSUFMSVpBVElPTikKICAgICBpZiAodHlwZUlEID09IFNlY1RydXN0R2V0VHlw
ZUlEKCkpCi0gICAgICAgIHJldHVybiBTZWNUcnVzdDsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6
U2VjVHJ1c3Q7CiAjZW5kaWYKIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVy
biBVbmtub3duOworICAgIHJldHVybiBDRlR5cGU6OlVua25vd247CiB9CiAKIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIENGVHlwZVJlZiB0eXBlUmVmKQogewogICAgIENGVHlwZSB0eXBl
ID0gdHlwZUZyb21DRlR5cGVSZWYodHlwZVJlZik7Ci0gICAgZW5jb2Rlci5lbmNvZGVFbnVtKHR5
cGUpOworICAgIGVuY29kZXIgPDwgdHlwZTsKIAogICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNh
c2UgQ0ZBcnJheToKKyAgICBjYXNlIENGVHlwZTo6Q0ZBcnJheToKICAgICAgICAgZW5jb2RlKGVu
Y29kZXIsIHN0YXRpY19jYXN0PENGQXJyYXlSZWY+KHR5cGVSZWYpKTsKICAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgQ0ZCb29sZWFuOgorICAgIGNhc2UgQ0ZUeXBlOjpDRkJvb2xlYW46CiAgICAg
ICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRkJvb2xlYW5SZWY+KHR5cGVSZWYpKTsK
ICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgQ0ZEYXRhOgorICAgIGNhc2UgQ0ZUeXBlOjpDRkRh
dGE6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRkRhdGFSZWY+KHR5cGVS
ZWYpKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgQ0ZEYXRlOgorICAgIGNhc2UgQ0ZUeXBl
OjpDRkRhdGU6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRkRhdGVSZWY+
KHR5cGVSZWYpKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgQ0ZEaWN0aW9uYXJ5OgorICAg
IGNhc2UgQ0ZUeXBlOjpDRkRpY3Rpb25hcnk6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0
aWNfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KHR5cGVSZWYpKTsKICAgICAgICAgcmV0dXJuOwotICAg
IGNhc2UgQ0ZOdWxsOgorICAgIGNhc2UgQ0ZUeXBlOjpDRk51bGw6CiAgICAgICAgIHJldHVybjsK
LSAgICBjYXNlIENGTnVtYmVyOgorICAgIGNhc2UgQ0ZUeXBlOjpDRk51bWJlcjoKICAgICAgICAg
ZW5jb2RlKGVuY29kZXIsIHN0YXRpY19jYXN0PENGTnVtYmVyUmVmPih0eXBlUmVmKSk7CiAgICAg
ICAgIHJldHVybjsKLSAgICBjYXNlIENGU3RyaW5nOgorICAgIGNhc2UgQ0ZUeXBlOjpDRlN0cmlu
ZzoKICAgICAgICAgZW5jb2RlKGVuY29kZXIsIHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPih0eXBl
UmVmKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENGVVJMOgorICAgIGNhc2UgQ0ZUeXBl
OjpDRlVSTDoKICAgICAgICAgZW5jb2RlKGVuY29kZXIsIHN0YXRpY19jYXN0PENGVVJMUmVmPih0
eXBlUmVmKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFNlY0NlcnRpZmljYXRlOgorICAg
IGNhc2UgQ0ZUeXBlOjpTZWNDZXJ0aWZpY2F0ZToKICAgICAgICAgZW5jb2RlKGVuY29kZXIsIHN0
YXRpY19jYXN0PFNlY0NlcnRpZmljYXRlUmVmPihjb25zdF9jYXN0PHZvaWQqPih0eXBlUmVmKSkp
OwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBTZWNJZGVudGl0eToKKyAgICBjYXNlIENGVHlw
ZTo6U2VjSWRlbnRpdHk6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxTZWNJ
ZGVudGl0eVJlZj4oY29uc3RfY2FzdDx2b2lkKj4odHlwZVJlZikpKTsKICAgICAgICAgcmV0dXJu
OwogI2lmIEhBVkUoU0VDX0tFWUNIQUlOKQotICAgIGNhc2UgU2VjS2V5Y2hhaW5JdGVtOgorICAg
IGNhc2UgQ0ZUeXBlOjpTZWNLZXljaGFpbkl0ZW06CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBz
dGF0aWNfY2FzdDxTZWNLZXljaGFpbkl0ZW1SZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+KHR5cGVSZWYp
KSk7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogI2lmIEhBVkUoU0VDX0FDQ0VTU19DT05UUk9M
KQotICAgIGNhc2UgU2VjQWNjZXNzQ29udHJvbDoKKyAgICBjYXNlIENGVHlwZTo6U2VjQWNjZXNz
Q29udHJvbDoKICAgICAgICAgZW5jb2RlKGVuY29kZXIsIHN0YXRpY19jYXN0PFNlY0FjY2Vzc0Nv
bnRyb2xSZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+KHR5cGVSZWYpKSk7CiAgICAgICAgIHJldHVybjsK
ICNlbmRpZgogI2lmIEhBVkUoU0VDX1RSVVNUX1NFUklBTElaQVRJT04pCi0gICAgY2FzZSBTZWNU
cnVzdDoKKyAgICBjYXNlIENGVHlwZTo6U2VjVHJ1c3Q6CiAgICAgICAgIGVuY29kZShlbmNvZGVy
LCBzdGF0aWNfY2FzdDxTZWNUcnVzdFJlZj4oY29uc3RfY2FzdDx2b2lkKj4odHlwZVJlZikpKTsK
ICAgICAgICAgcmV0dXJuOwogI2VuZGlmCi0gICAgY2FzZSBOdWxsOgorICAgIGNhc2UgQ0ZUeXBl
OjpOdWxsOgogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBVbmtub3duOgorICAgIGNhc2UgQ0ZU
eXBlOjpVbmtub3duOgogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTE4Nyw3NyArMTg4LDc3
IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGVHlwZVJlZiB0eXBlUmVmKQogYm9v
bCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGVHlwZVJlZj4mIHJlc3VsdCkK
IHsKICAgICBDRlR5cGUgdHlwZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0eXBlKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIENGQXJyYXk6IHsKKyAgICBjYXNlIENGVHlw
ZTo6Q0ZBcnJheTogewogICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gYXJyYXk7CiAgICAg
ICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGFycmF5KSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgcmVzdWx0ID0gYWRvcHRDRihhcnJheS5sZWFrUmVmKCkpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBDRkJvb2xlYW46IHsKKyAgICBjYXNlIENGVHlw
ZTo6Q0ZCb29sZWFuOiB7CiAgICAgICAgIFJldGFpblB0cjxDRkJvb2xlYW5SZWY+IGJvb2xlYW47
CiAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGJvb2xlYW4pKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBhZG9wdENGKGJvb2xlYW4ubGVha1JlZigpKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNhc2UgQ0ZEYXRhOiB7CisgICAgY2Fz
ZSBDRlR5cGU6OkNGRGF0YTogewogICAgICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhOwog
ICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBkYXRhKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgcmVzdWx0ID0gYWRvcHRDRihkYXRhLmxlYWtSZWYoKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KLSAgICBjYXNlIENGRGF0ZTogeworICAgIGNhc2UgQ0ZUeXBl
OjpDRkRhdGU6IHsKICAgICAgICAgUmV0YWluUHRyPENGRGF0ZVJlZj4gZGF0ZTsKICAgICAgICAg
aWYgKCFkZWNvZGUoZGVjb2RlciwgZGF0ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIHJlc3VsdCA9IGFkb3B0Q0YoZGF0ZS5sZWFrUmVmKCkpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBDRkRpY3Rpb25hcnk6IHsKKyAgICBjYXNlIENGVHlwZTo6
Q0ZEaWN0aW9uYXJ5OiB7CiAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rp
b25hcnk7CiAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGRpY3Rpb25hcnkpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBhZG9wdENGKGRpY3Rpb25hcnku
bGVha1JlZigpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNhc2UgQ0ZOdWxs
OgorICAgIGNhc2UgQ0ZUeXBlOjpDRk51bGw6CiAgICAgICAgIHJlc3VsdCA9IGFkb3B0Q0Yoa0NG
TnVsbCk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQ0ZOdW1iZXI6IHsKKyAgICBj
YXNlIENGVHlwZTo6Q0ZOdW1iZXI6IHsKICAgICAgICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBu
dW1iZXI7CiAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIG51bWJlcikpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3VsdCA9IGFkb3B0Q0YobnVtYmVyLmxlYWtSZWYo
KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBjYXNlIENGU3RyaW5nOiB7Cisg
ICAgY2FzZSBDRlR5cGU6OkNGU3RyaW5nOiB7CiAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gc3RyaW5nOwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBzdHJpbmcpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBhZG9wdENGKHN0cmluZy5sZWFr
UmVmKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBDRlVSTDogewor
ICAgIGNhc2UgQ0ZUeXBlOjpDRlVSTDogewogICAgICAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHVy
bDsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgdXJsKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgcmVzdWx0ID0gYWRvcHRDRih1cmwubGVha1JlZigpKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNhc2UgU2VjQ2VydGlmaWNhdGU6IHsKKyAgICBj
YXNlIENGVHlwZTo6U2VjQ2VydGlmaWNhdGU6IHsKICAgICAgICAgUmV0YWluUHRyPFNlY0NlcnRp
ZmljYXRlUmVmPiBjZXJ0aWZpY2F0ZTsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgY2Vy
dGlmaWNhdGUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBh
ZG9wdENGKGNlcnRpZmljYXRlLmxlYWtSZWYoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KLSAgICBjYXNlIFNlY0lkZW50aXR5OiB7CisgICAgY2FzZSBDRlR5cGU6OlNlY0lkZW50aXR5
OiB7CiAgICAgICAgIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gaWRlbnRpdHk7CiAgICAgICAg
IGlmICghZGVjb2RlKGRlY29kZXIsIGlkZW50aXR5KSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTI2NSw3ICsyNjYsNyBAQCBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZXRh
aW5QdHI8Q0ZUeXBlUmVmPiYgcmVzdWx0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAj
aWYgSEFWRShTRUNfS0VZQ0hBSU4pCi0gICAgY2FzZSBTZWNLZXljaGFpbkl0ZW06IHsKKyAgICBj
YXNlIENGVHlwZTo6U2VjS2V5Y2hhaW5JdGVtOiB7CiAgICAgICAgIFJldGFpblB0cjxTZWNLZXlj
aGFpbkl0ZW1SZWY+IGtleWNoYWluSXRlbTsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2Rlciwg
a2V5Y2hhaW5JdGVtKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI3NCw3ICsyNzUs
NyBAQCBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiYg
cmVzdWx0KQogICAgIH0KICNlbmRpZgogI2lmIEhBVkUoU0VDX0FDQ0VTU19DT05UUk9MKQotICAg
IGNhc2UgU2VjQWNjZXNzQ29udHJvbDogeworICAgIGNhc2UgQ0ZUeXBlOjpTZWNBY2Nlc3NDb250
cm9sOiB7CiAgICAgICAgIFJldGFpblB0cjxTZWNBY2Nlc3NDb250cm9sUmVmPiBhY2Nlc3NDb250
cm9sOwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBhY2Nlc3NDb250cm9sKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4Myw3ICsyODQsNyBAQCBib29sIGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiYgcmVzdWx0KQogICAgIH0KICNlbmRp
ZgogI2lmIEhBVkUoU0VDX1RSVVNUX1NFUklBTElaQVRJT04pCi0gICAgY2FzZSBTZWNUcnVzdDog
eworICAgIGNhc2UgQ0ZUeXBlOjpTZWNUcnVzdDogewogICAgICAgICBSZXRhaW5QdHI8U2VjVHJ1
c3RSZWY+IHRydXN0OwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCB0cnVzdCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yOTEsMTQgKzI5MiwxNCBAQCBib29sIGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiYgcmVzdWx0KQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAjZW5kaWYKLSAgICBjYXNlIE51bGw6CisgICAgY2FzZSBDRlR5
cGU6Ok51bGw6CiAgICAgICAgIHJlc3VsdCA9IHRva2VuTnVsbFR5cGVSZWYoKTsKICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgY2FzZSBVbmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ0ZUeXBlOjpVbmtub3duOgor
ICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTMxOSw4ICszMjAsOCBAQCB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBDRkFycmF5UmVmIGFycmF5KQogICAgIEhhc2hTZXQ8Q0ZJbmRleD4gaW52YWxp
ZEluZGljaWVzOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAg
ICAgICAvLyBJZ25vcmUgdmFsdWVzIHdlIGRvbid0IHN1cHBvcnQuCi0gICAgICAgIEFTU0VSVCh0
eXBlRnJvbUNGVHlwZVJlZih2YWx1ZXNbaV0pICE9IFVua25vd24pOwotICAgICAgICBpZiAodHlw
ZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSA9PSBVbmtub3duKQorICAgICAgICBBU1NFUlQodHlw
ZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSAhPSBDRlR5cGU6OlVua25vd24pOworICAgICAgICBp
ZiAodHlwZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSA9PSBDRlR5cGU6OlVua25vd24pCiAgICAg
ICAgICAgICBpbnZhbGlkSW5kaWNpZXMuYWRkKGkpOwogICAgIH0KIApAQCAtNDM0LDkgKzQzNSw5
IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGRGljdGlvbmFyeVJlZiBkaWN0aW9u
YXJ5KQogICAgICAgICBBU1NFUlQodmFsdWVzW2ldKTsKIAogICAgICAgICAvLyBJZ25vcmUga2V5
cy92YWx1ZXMgd2UgZG9uJ3Qgc3VwcG9ydC4KLSAgICAgICAgQVNTRVJUKHR5cGVGcm9tQ0ZUeXBl
UmVmKGtleXNbaV0pICE9IFVua25vd24pOwotICAgICAgICBBU1NFUlQodHlwZUZyb21DRlR5cGVS
ZWYodmFsdWVzW2ldKSAhPSBVbmtub3duKTsKLSAgICAgICAgaWYgKHR5cGVGcm9tQ0ZUeXBlUmVm
KGtleXNbaV0pID09IFVua25vd24gfHwgdHlwZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSA9PSBV
bmtub3duKQorICAgICAgICBBU1NFUlQodHlwZUZyb21DRlR5cGVSZWYoa2V5c1tpXSkgIT0gQ0ZU
eXBlOjpVbmtub3duKTsKKyAgICAgICAgQVNTRVJUKHR5cGVGcm9tQ0ZUeXBlUmVmKHZhbHVlc1tp
XSkgIT0gQ0ZUeXBlOjpVbmtub3duKTsKKyAgICAgICAgaWYgKHR5cGVGcm9tQ0ZUeXBlUmVmKGtl
eXNbaV0pID09IENGVHlwZTo6VW5rbm93biB8fCB0eXBlRnJvbUNGVHlwZVJlZih2YWx1ZXNbaV0p
ID09IENGVHlwZTo6VW5rbm93bikKICAgICAgICAgICAgIGludmFsaWRLZXlzLmFkZChrZXlzW2ld
KTsKICAgICB9CiAKQEAgLTgzNywzICs4MzgsMzUgQEAgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgUmV0YWluUHRyPFNlY1RydXN0UmVmPiYgcmVzdWx0KQogI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIElQQworCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxJUEM6OkNGVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
SVBDOjpDRlR5cGUsCisgICAgSVBDOjpDRlR5cGU6OkNGQXJyYXksCisgICAgSVBDOjpDRlR5cGU6
OkNGQm9vbGVhbiwKKyAgICBJUEM6OkNGVHlwZTo6Q0ZEYXRhLAorICAgIElQQzo6Q0ZUeXBlOjpD
RkRhdGUsCisgICAgSVBDOjpDRlR5cGU6OkNGRGljdGlvbmFyeSwKKyAgICBJUEM6OkNGVHlwZTo6
Q0ZOdWxsLAorICAgIElQQzo6Q0ZUeXBlOjpDRk51bWJlciwKKyAgICBJUEM6OkNGVHlwZTo6Q0ZT
dHJpbmcsCisgICAgSVBDOjpDRlR5cGU6OkNGVVJMLAorICAgIElQQzo6Q0ZUeXBlOjpTZWNDZXJ0
aWZpY2F0ZSwKKyAgICBJUEM6OkNGVHlwZTo6U2VjSWRlbnRpdHksCisjaWYgSEFWRShTRUNfS0VZ
Q0hBSU4pCisgICAgSVBDOjpDRlR5cGU6OlNlY0tleWNoYWluSXRlbSwKKyNlbmRpZgorI2lmIEhB
VkUoU0VDX0FDQ0VTU19DT05UUk9MKQorICAgIElQQzo6Q0ZUeXBlOjpTZWNBY2Nlc3NDb250cm9s
LAorI2VuZGlmCisjaWYgSEFWRShTRUNfVFJVU1RfU0VSSUFMSVpBVElPTikKKyAgICBJUEM6OkNG
VHlwZTo6U2VjVHJ1c3QsCisjZW5kaWYKKyAgICBJUEM6OkNGVHlwZTo6TnVsbCwKKyAgICBJUEM6
OkNGVHlwZTo6VW5rbm93bgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401383</attachid>
            <date>2020-06-08 15:39:21 -0700</date>
            <delta_ts>2020-06-08 18:15:48 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-212921-20200608154004.patch</filename>
            <type>text/plain</type>
            <size>15894</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU0ZTJkN2M2OWJiOThjYWNk
NjAzOWM1YjcyMmQzNmU4ZGVmNDQ5NmEuLjk5MmExZThhOTM0MDcwMWNlM2FkMzZkNGQ1N2UxOTEz
OWU2ZDkwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDYtMDggIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBbSVBDXSBBZG9wdCBlbnVtIGNs
YXNzIGZvciBJUEM6OkNGVHlwZQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjEyOTIx
PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQxMzQ1MDY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VtbWFyeToKKyAgICAgICAgLSBDb252ZXJ0
IElQQzo6Q0ZUeXBlIHRvIGVudW0gY2xhc3MuCisgICAgICAgIC0gUnVsZSBmb3IgbmV3IGVudW0g
bmFtZXMgaXMgdG8gcmVtb3ZlICJSZWYiIHN1ZmZpeCBmcm9tIHRoZQorICAgICAgICAgIGFjdHVh
bCB0eXBlIG5hbWUuCisgICAgICAgIC0gU3BlY2lhbCBlbnVtIENGVHlwZTo6TnVsbCByZW5hbWVk
IHRvIENGVHlwZTo6TnVsbHB0ciB0bworICAgICAgICAgIGRpZmZlcmVudGlhdGUgZnJvbSBDRlR5
cGU6OkNGTnVsbCBvYmplY3RzLgorCisgICAgICAgICogU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJz
Q0YuY3BwOgorICAgICAgICAoSVBDOjp0b2tlbk51bGxUeXBlUmVmKTogRGVsZXRlLgorICAgICAg
ICAoSVBDOjp0b2tlbk51bGxwdHJUeXBlUmVmKTogQWRkLgorICAgICAgICAtIFJlbmFtZSB0b2tl
bk51bGxUeXBlUmVmKCkgdG8gdG9rZW5OdWxscHRyVHlwZVJlZigpLgorICAgICAgICAoSVBDOjpD
RlR5cGUpOgorICAgICAgICAtIENvbnZlcnQgdG8gZW51bSBjbGFzcy4KKyAgICAgICAgKElQQzo6
dHlwZUZyb21DRlR5cGVSZWYpOgorICAgICAgICAoSVBDOjplbmNvZGUpOgorICAgICAgICAtIFN3
aXRjaCBmcm9tIGVuY29kZUVudW0oKSB0byBvcGVyYXRvcjw8KCkuCisgICAgICAgIChJUEM6OmRl
Y29kZSk6CisgICAgICAgIC0gU3dpdGNoIGZyb20gZGVjb2RlRW51bSgpIHRvIGRlY29kZSgpLgor
ICAgICAgICAoV1RGOjpFbnVtVHJhaXRzPElQQzo6Q0ZUeXBlPik6IEFkZC4KKyAgICAgICAgKiBT
aGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5oOgorICAgICAgICAoSVBDOjp0b2tlbk51bGxUeXBl
UmVmKTogRGVsZXRlLgorICAgICAgICAoSVBDOjp0b2tlbk51bGxwdHJUeXBlUmVmKTogQWRkLgor
ICAgICAgICAtIFJlbmFtZSB0b2tlbk51bGxUeXBlUmVmKCkgdG8gdG9rZW5OdWxscHRyVHlwZVJl
ZigpLgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD46OmVu
Y29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgLSBTd2l0Y2gg
dG8gdXNlIHRva2VuTnVsbHB0clR5cGVSZWYoKS4KKyAgICAgICAgKiBtYWMvV2ViS2l0Mi5vcmRl
cjoKKyAgICAgICAgLSBVcGRhdGUgc3ltYm9sIG5hbWUgYWZ0ZXIgcmVuYW1pbmcgdG9rZW5OdWxs
VHlwZVJlZigpLgorCiAyMDIwLTA2LTA4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CiAKICAgICAgICAgW0lQQ10gQWRvcHQgZW51bSBjbGFzcyBmb3IgRHJhZ09wZXJhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAppbmRleCBhNzcy
ZDJjNzJkZjg1N2I2YmY4NzVmOWQ0ZTBhNGMwMGMxZjNiODA3Li40N2MzNmVmNzlmNWM3ZTAyM2Zj
YjUyMzVlNGZkYjg0ZmUyNjJjZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9j
Zi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1
bWVudENvZGVyc0NGLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ0
LDEzICs0NSwxMyBAQAogbmFtZXNwYWNlIElQQyB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotQ0ZUeXBlUmVmIHRva2VuTnVsbFR5cGVSZWYoKQorQ0ZUeXBlUmVmIHRva2VuTnVsbHB0clR5
cGVSZWYoKQogewotICAgIHN0YXRpYyBDRlN0cmluZ1JlZiB0b2tlbk51bGxUeXBlID0gQ0ZTVFIo
IldLTnVsbCIpOwotICAgIHJldHVybiB0b2tlbk51bGxUeXBlOworICAgIHN0YXRpYyBDRlN0cmlu
Z1JlZiB0b2tlbk51bGxwdHJUeXBlID0gQ0ZTVFIoIldLTnVsbCIpOworICAgIHJldHVybiB0b2tl
bk51bGxwdHJUeXBlOwogfQogCi1lbnVtIENGVHlwZSB7CitlbnVtIGNsYXNzIENGVHlwZSA6IHVp
bnQ4X3QgewogICAgIENGQXJyYXksCiAgICAgQ0ZCb29sZWFuLAogICAgIENGRGF0YSwKQEAgLTcx
LDcgKzcyLDcgQEAgZW51bSBDRlR5cGUgewogI2lmIEhBVkUoU0VDX1RSVVNUX1NFUklBTElaQVRJ
T04pCiAgICAgU2VjVHJ1c3QsCiAjZW5kaWYKLSAgICBOdWxsLAorICAgIE51bGxwdHIsCiAgICAg
VW5rbm93biwKIH07CiAKQEAgLTc5LDEwNSArODAsMTA1IEBAIHN0YXRpYyBDRlR5cGUgdHlwZUZy
b21DRlR5cGVSZWYoQ0ZUeXBlUmVmIHR5cGUpCiB7CiAgICAgQVNTRVJUKHR5cGUpOwogCi0gICAg
aWYgKHR5cGUgPT0gdG9rZW5OdWxsVHlwZVJlZigpKQotICAgICAgICByZXR1cm4gTnVsbDsKKyAg
ICBpZiAodHlwZSA9PSB0b2tlbk51bGxwdHJUeXBlUmVmKCkpCisgICAgICAgIHJldHVybiBDRlR5
cGU6Ok51bGxwdHI7CiAKICAgICBDRlR5cGVJRCB0eXBlSUQgPSBDRkdldFR5cGVJRCh0eXBlKTsK
ICAgICBpZiAodHlwZUlEID09IENGQXJyYXlHZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIENG
QXJyYXk7CisgICAgICAgIHJldHVybiBDRlR5cGU6OkNGQXJyYXk7CiAgICAgaWYgKHR5cGVJRCA9
PSBDRkJvb2xlYW5HZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIENGQm9vbGVhbjsKKyAgICAg
ICAgcmV0dXJuIENGVHlwZTo6Q0ZCb29sZWFuOwogICAgIGlmICh0eXBlSUQgPT0gQ0ZEYXRhR2V0
VHlwZUlEKCkpCi0gICAgICAgIHJldHVybiBDRkRhdGE7CisgICAgICAgIHJldHVybiBDRlR5cGU6
OkNGRGF0YTsKICAgICBpZiAodHlwZUlEID09IENGRGF0ZUdldFR5cGVJRCgpKQotICAgICAgICBy
ZXR1cm4gQ0ZEYXRlOworICAgICAgICByZXR1cm4gQ0ZUeXBlOjpDRkRhdGU7CiAgICAgaWYgKHR5
cGVJRCA9PSBDRkRpY3Rpb25hcnlHZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIENGRGljdGlv
bmFyeTsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6Q0ZEaWN0aW9uYXJ5OwogICAgIGlmICh0eXBl
SUQgPT0gQ0ZOdWxsR2V0VHlwZUlEKCkpCi0gICAgICAgIHJldHVybiBDRk51bGw7CisgICAgICAg
IHJldHVybiBDRlR5cGU6OkNGTnVsbDsKICAgICBpZiAodHlwZUlEID09IENGTnVtYmVyR2V0VHlw
ZUlEKCkpCi0gICAgICAgIHJldHVybiBDRk51bWJlcjsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6
Q0ZOdW1iZXI7CiAgICAgaWYgKHR5cGVJRCA9PSBDRlN0cmluZ0dldFR5cGVJRCgpKQotICAgICAg
ICByZXR1cm4gQ0ZTdHJpbmc7CisgICAgICAgIHJldHVybiBDRlR5cGU6OkNGU3RyaW5nOwogICAg
IGlmICh0eXBlSUQgPT0gQ0ZVUkxHZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIENGVVJMOwor
ICAgICAgICByZXR1cm4gQ0ZUeXBlOjpDRlVSTDsKICAgICBpZiAodHlwZUlEID09IFNlY0NlcnRp
ZmljYXRlR2V0VHlwZUlEKCkpCi0gICAgICAgIHJldHVybiBTZWNDZXJ0aWZpY2F0ZTsKKyAgICAg
ICAgcmV0dXJuIENGVHlwZTo6U2VjQ2VydGlmaWNhdGU7CiAgICAgaWYgKHR5cGVJRCA9PSBTZWNJ
ZGVudGl0eUdldFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gU2VjSWRlbnRpdHk7CisgICAgICAg
IHJldHVybiBDRlR5cGU6OlNlY0lkZW50aXR5OwogI2lmIEhBVkUoU0VDX0tFWUNIQUlOKQogICAg
IGlmICh0eXBlSUQgPT0gU2VjS2V5Y2hhaW5JdGVtR2V0VHlwZUlEKCkpCi0gICAgICAgIHJldHVy
biBTZWNLZXljaGFpbkl0ZW07CisgICAgICAgIHJldHVybiBDRlR5cGU6OlNlY0tleWNoYWluSXRl
bTsKICNlbmRpZgogI2lmIEhBVkUoU0VDX0FDQ0VTU19DT05UUk9MKQogICAgIGlmICh0eXBlSUQg
PT0gU2VjQWNjZXNzQ29udHJvbEdldFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gU2VjQWNjZXNz
Q29udHJvbDsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6U2VjQWNjZXNzQ29udHJvbDsKICNlbmRp
ZgogI2lmIEhBVkUoU0VDX1RSVVNUX1NFUklBTElaQVRJT04pCiAgICAgaWYgKHR5cGVJRCA9PSBT
ZWNUcnVzdEdldFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gU2VjVHJ1c3Q7CisgICAgICAgIHJl
dHVybiBDRlR5cGU6OlNlY1RydXN0OwogI2VuZGlmCiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICByZXR1cm4gVW5rbm93bjsKKyAgICByZXR1cm4gQ0ZUeXBlOjpVbmtub3duOwogfQog
CiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRlR5cGVSZWYgdHlwZVJlZikKIHsKICAg
ICBDRlR5cGUgdHlwZSA9IHR5cGVGcm9tQ0ZUeXBlUmVmKHR5cGVSZWYpOwotICAgIGVuY29kZXIu
ZW5jb2RlRW51bSh0eXBlKTsKKyAgICBlbmNvZGVyIDw8IHR5cGU7CiAKICAgICBzd2l0Y2ggKHR5
cGUpIHsKLSAgICBjYXNlIENGQXJyYXk6CisgICAgY2FzZSBDRlR5cGU6OkNGQXJyYXk6CiAgICAg
ICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRkFycmF5UmVmPih0eXBlUmVmKSk7CiAg
ICAgICAgIHJldHVybjsKLSAgICBjYXNlIENGQm9vbGVhbjoKKyAgICBjYXNlIENGVHlwZTo6Q0ZC
b29sZWFuOgogICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3RhdGljX2Nhc3Q8Q0ZCb29sZWFuUmVm
Pih0eXBlUmVmKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENGRGF0YToKKyAgICBjYXNl
IENGVHlwZTo6Q0ZEYXRhOgogICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3RhdGljX2Nhc3Q8Q0ZE
YXRhUmVmPih0eXBlUmVmKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENGRGF0ZToKKyAg
ICBjYXNlIENGVHlwZTo6Q0ZEYXRlOgogICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3RhdGljX2Nh
c3Q8Q0ZEYXRlUmVmPih0eXBlUmVmKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENGRGlj
dGlvbmFyeToKKyAgICBjYXNlIENGVHlwZTo6Q0ZEaWN0aW9uYXJ5OgogICAgICAgICBlbmNvZGUo
ZW5jb2Rlciwgc3RhdGljX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPih0eXBlUmVmKSk7CiAgICAgICAg
IHJldHVybjsKLSAgICBjYXNlIENGTnVsbDoKKyAgICBjYXNlIENGVHlwZTo6Q0ZOdWxsOgogICAg
ICAgICByZXR1cm47Ci0gICAgY2FzZSBDRk51bWJlcjoKKyAgICBjYXNlIENGVHlwZTo6Q0ZOdW1i
ZXI6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRk51bWJlclJlZj4odHlw
ZVJlZikpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBDRlN0cmluZzoKKyAgICBjYXNlIENG
VHlwZTo6Q0ZTdHJpbmc6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRlN0
cmluZ1JlZj4odHlwZVJlZikpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBDRlVSTDoKKyAg
ICBjYXNlIENGVHlwZTo6Q0ZVUkw6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2Fz
dDxDRlVSTFJlZj4odHlwZVJlZikpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBTZWNDZXJ0
aWZpY2F0ZToKKyAgICBjYXNlIENGVHlwZTo6U2VjQ2VydGlmaWNhdGU6CiAgICAgICAgIGVuY29k
ZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxTZWNDZXJ0aWZpY2F0ZVJlZj4oY29uc3RfY2FzdDx2b2lk
Kj4odHlwZVJlZikpKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgU2VjSWRlbnRpdHk6Cisg
ICAgY2FzZSBDRlR5cGU6OlNlY0lkZW50aXR5OgogICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3Rh
dGljX2Nhc3Q8U2VjSWRlbnRpdHlSZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+KHR5cGVSZWYpKSk7CiAg
ICAgICAgIHJldHVybjsKICNpZiBIQVZFKFNFQ19LRVlDSEFJTikKLSAgICBjYXNlIFNlY0tleWNo
YWluSXRlbToKKyAgICBjYXNlIENGVHlwZTo6U2VjS2V5Y2hhaW5JdGVtOgogICAgICAgICBlbmNv
ZGUoZW5jb2Rlciwgc3RhdGljX2Nhc3Q8U2VjS2V5Y2hhaW5JdGVtUmVmPihjb25zdF9jYXN0PHZv
aWQqPih0eXBlUmVmKSkpOwogICAgICAgICByZXR1cm47CiAjZW5kaWYKICNpZiBIQVZFKFNFQ19B
Q0NFU1NfQ09OVFJPTCkKLSAgICBjYXNlIFNlY0FjY2Vzc0NvbnRyb2w6CisgICAgY2FzZSBDRlR5
cGU6OlNlY0FjY2Vzc0NvbnRyb2w6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2Fz
dDxTZWNBY2Nlc3NDb250cm9sUmVmPihjb25zdF9jYXN0PHZvaWQqPih0eXBlUmVmKSkpOwogICAg
ICAgICByZXR1cm47CiAjZW5kaWYKICNpZiBIQVZFKFNFQ19UUlVTVF9TRVJJQUxJWkFUSU9OKQot
ICAgIGNhc2UgU2VjVHJ1c3Q6CisgICAgY2FzZSBDRlR5cGU6OlNlY1RydXN0OgogICAgICAgICBl
bmNvZGUoZW5jb2Rlciwgc3RhdGljX2Nhc3Q8U2VjVHJ1c3RSZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+
KHR5cGVSZWYpKSk7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgotICAgIGNhc2UgTnVsbDoKKyAg
ICBjYXNlIENGVHlwZTo6TnVsbHB0cjoKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVW5rbm93
bjoKKyAgICBjYXNlIENGVHlwZTo6VW5rbm93bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBA
IC0xODcsNzcgKzE4OCw3NyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRlR5cGVS
ZWYgdHlwZVJlZikKIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxDRlR5
cGVSZWY+JiByZXN1bHQpCiB7CiAgICAgQ0ZUeXBlIHR5cGU7Ci0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUVudW0odHlwZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0eXBlKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBDRkFycmF5OiB7
CisgICAgY2FzZSBDRlR5cGU6OkNGQXJyYXk6IHsKICAgICAgICAgUmV0YWluUHRyPENGQXJyYXlS
ZWY+IGFycmF5OwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBhcnJheSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3VsdCA9IGFkb3B0Q0YoYXJyYXkubGVha1Jl
ZigpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNhc2UgQ0ZCb29sZWFuOiB7
CisgICAgY2FzZSBDRlR5cGU6OkNGQm9vbGVhbjogewogICAgICAgICBSZXRhaW5QdHI8Q0ZCb29s
ZWFuUmVmPiBib29sZWFuOwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBib29sZWFuKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzdWx0ID0gYWRvcHRDRihib29s
ZWFuLmxlYWtSZWYoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBjYXNlIENG
RGF0YTogeworICAgIGNhc2UgQ0ZUeXBlOjpDRkRhdGE6IHsKICAgICAgICAgUmV0YWluUHRyPENG
RGF0YVJlZj4gZGF0YTsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgZGF0YSkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3VsdCA9IGFkb3B0Q0YoZGF0YS5sZWFr
UmVmKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBDRkRhdGU6IHsK
KyAgICBjYXNlIENGVHlwZTo6Q0ZEYXRlOiB7CiAgICAgICAgIFJldGFpblB0cjxDRkRhdGVSZWY+
IGRhdGU7CiAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGRhdGUpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBhZG9wdENGKGRhdGUubGVha1JlZigpKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNhc2UgQ0ZEaWN0aW9uYXJ5OiB7Cisg
ICAgY2FzZSBDRlR5cGU6OkNGRGljdGlvbmFyeTogewogICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0
aW9uYXJ5UmVmPiBkaWN0aW9uYXJ5OwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBkaWN0
aW9uYXJ5KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzdWx0ID0gYWRv
cHRDRihkaWN0aW9uYXJ5LmxlYWtSZWYoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
LSAgICBjYXNlIENGTnVsbDoKKyAgICBjYXNlIENGVHlwZTo6Q0ZOdWxsOgogICAgICAgICByZXN1
bHQgPSBhZG9wdENGKGtDRk51bGwpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIENG
TnVtYmVyOiB7CisgICAgY2FzZSBDRlR5cGU6OkNGTnVtYmVyOiB7CiAgICAgICAgIFJldGFpblB0
cjxDRk51bWJlclJlZj4gbnVtYmVyOwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBudW1i
ZXIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBhZG9wdENG
KG51bWJlci5sZWFrUmVmKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2Fz
ZSBDRlN0cmluZzogeworICAgIGNhc2UgQ0ZUeXBlOjpDRlN0cmluZzogewogICAgICAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IHN0cmluZzsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2Rlciwg
c3RyaW5nKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzdWx0ID0gYWRv
cHRDRihzdHJpbmcubGVha1JlZigpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAg
IGNhc2UgQ0ZVUkw6IHsKKyAgICBjYXNlIENGVHlwZTo6Q0ZVUkw6IHsKICAgICAgICAgUmV0YWlu
UHRyPENGVVJMUmVmPiB1cmw7CiAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHVybCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3VsdCA9IGFkb3B0Q0YodXJsLmxl
YWtSZWYoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBjYXNlIFNlY0NlcnRp
ZmljYXRlOiB7CisgICAgY2FzZSBDRlR5cGU6OlNlY0NlcnRpZmljYXRlOiB7CiAgICAgICAgIFJl
dGFpblB0cjxTZWNDZXJ0aWZpY2F0ZVJlZj4gY2VydGlmaWNhdGU7CiAgICAgICAgIGlmICghZGVj
b2RlKGRlY29kZXIsIGNlcnRpZmljYXRlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgcmVzdWx0ID0gYWRvcHRDRihjZXJ0aWZpY2F0ZS5sZWFrUmVmKCkpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBTZWNJZGVudGl0eTogeworICAgIGNhc2UgQ0ZU
eXBlOjpTZWNJZGVudGl0eTogewogICAgICAgICBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IGlk
ZW50aXR5OwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBpZGVudGl0eSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNjUsNyArMjY2LDcgQEAgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgUmV0YWluUHRyPENGVHlwZVJlZj4mIHJlc3VsdCkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogI2lmIEhBVkUoU0VDX0tFWUNIQUlOKQotICAgIGNhc2UgU2VjS2V5Y2hh
aW5JdGVtOiB7CisgICAgY2FzZSBDRlR5cGU6OlNlY0tleWNoYWluSXRlbTogewogICAgICAgICBS
ZXRhaW5QdHI8U2VjS2V5Y2hhaW5JdGVtUmVmPiBrZXljaGFpbkl0ZW07CiAgICAgICAgIGlmICgh
ZGVjb2RlKGRlY29kZXIsIGtleWNoYWluSXRlbSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0yNzQsNyArMjc1LDcgQEAgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWlu
UHRyPENGVHlwZVJlZj4mIHJlc3VsdCkKICAgICB9CiAjZW5kaWYKICNpZiBIQVZFKFNFQ19BQ0NF
U1NfQ09OVFJPTCkKLSAgICBjYXNlIFNlY0FjY2Vzc0NvbnRyb2w6IHsKKyAgICBjYXNlIENGVHlw
ZTo6U2VjQWNjZXNzQ29udHJvbDogewogICAgICAgICBSZXRhaW5QdHI8U2VjQWNjZXNzQ29udHJv
bFJlZj4gYWNjZXNzQ29udHJvbDsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgYWNjZXNz
Q29udHJvbCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yODMsNyArMjg0LDcgQEAg
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGVHlwZVJlZj4mIHJlc3Vs
dCkKICAgICB9CiAjZW5kaWYKICNpZiBIQVZFKFNFQ19UUlVTVF9TRVJJQUxJWkFUSU9OKQotICAg
IGNhc2UgU2VjVHJ1c3Q6IHsKKyAgICBjYXNlIENGVHlwZTo6U2VjVHJ1c3Q6IHsKICAgICAgICAg
UmV0YWluUHRyPFNlY1RydXN0UmVmPiB0cnVzdDsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2Rl
ciwgdHJ1c3QpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjkxLDE0ICsyOTIsMTQg
QEAgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGVHlwZVJlZj4mIHJl
c3VsdCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlmCi0gICAgY2FzZSBOdWxs
OgotICAgICAgICByZXN1bHQgPSB0b2tlbk51bGxUeXBlUmVmKCk7CisgICAgY2FzZSBDRlR5cGU6
Ok51bGxwdHI6CisgICAgICAgIHJlc3VsdCA9IHRva2VuTnVsbHB0clR5cGVSZWYoKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBVbmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ0ZUeXBlOjpVbmtub3du
OgorICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTMxOSw4ICszMjAsOCBAQCB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBDRkFycmF5UmVmIGFycmF5KQogICAgIEhhc2hTZXQ8Q0ZJbmRleD4gaW52
YWxpZEluZGljaWVzOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IHNpemU7ICsraSkgewog
ICAgICAgICAvLyBJZ25vcmUgdmFsdWVzIHdlIGRvbid0IHN1cHBvcnQuCi0gICAgICAgIEFTU0VS
VCh0eXBlRnJvbUNGVHlwZVJlZih2YWx1ZXNbaV0pICE9IFVua25vd24pOwotICAgICAgICBpZiAo
dHlwZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSA9PSBVbmtub3duKQorICAgICAgICBBU1NFUlQo
dHlwZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSAhPSBDRlR5cGU6OlVua25vd24pOworICAgICAg
ICBpZiAodHlwZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSA9PSBDRlR5cGU6OlVua25vd24pCiAg
ICAgICAgICAgICBpbnZhbGlkSW5kaWNpZXMuYWRkKGkpOwogICAgIH0KIApAQCAtNDM0LDkgKzQz
NSw5IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGRGljdGlvbmFyeVJlZiBkaWN0
aW9uYXJ5KQogICAgICAgICBBU1NFUlQodmFsdWVzW2ldKTsKIAogICAgICAgICAvLyBJZ25vcmUg
a2V5cy92YWx1ZXMgd2UgZG9uJ3Qgc3VwcG9ydC4KLSAgICAgICAgQVNTRVJUKHR5cGVGcm9tQ0ZU
eXBlUmVmKGtleXNbaV0pICE9IFVua25vd24pOwotICAgICAgICBBU1NFUlQodHlwZUZyb21DRlR5
cGVSZWYodmFsdWVzW2ldKSAhPSBVbmtub3duKTsKLSAgICAgICAgaWYgKHR5cGVGcm9tQ0ZUeXBl
UmVmKGtleXNbaV0pID09IFVua25vd24gfHwgdHlwZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSA9
PSBVbmtub3duKQorICAgICAgICBBU1NFUlQodHlwZUZyb21DRlR5cGVSZWYoa2V5c1tpXSkgIT0g
Q0ZUeXBlOjpVbmtub3duKTsKKyAgICAgICAgQVNTRVJUKHR5cGVGcm9tQ0ZUeXBlUmVmKHZhbHVl
c1tpXSkgIT0gQ0ZUeXBlOjpVbmtub3duKTsKKyAgICAgICAgaWYgKHR5cGVGcm9tQ0ZUeXBlUmVm
KGtleXNbaV0pID09IENGVHlwZTo6VW5rbm93biB8fCB0eXBlRnJvbUNGVHlwZVJlZih2YWx1ZXNb
aV0pID09IENGVHlwZTo6VW5rbm93bikKICAgICAgICAgICAgIGludmFsaWRLZXlzLmFkZChrZXlz
W2ldKTsKICAgICB9CiAKQEAgLTgzNywzICs4MzgsMzUgQEAgYm9vbCBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgUmV0YWluUHRyPFNlY1RydXN0UmVmPiYgcmVzdWx0KQogI2VuZGlmCiAKIH0gLy8g
bmFtZXNwYWNlIElQQworCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxJUEM6OkNGVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Cisg
ICAgSVBDOjpDRlR5cGUsCisgICAgSVBDOjpDRlR5cGU6OkNGQXJyYXksCisgICAgSVBDOjpDRlR5
cGU6OkNGQm9vbGVhbiwKKyAgICBJUEM6OkNGVHlwZTo6Q0ZEYXRhLAorICAgIElQQzo6Q0ZUeXBl
OjpDRkRhdGUsCisgICAgSVBDOjpDRlR5cGU6OkNGRGljdGlvbmFyeSwKKyAgICBJUEM6OkNGVHlw
ZTo6Q0ZOdWxsLAorICAgIElQQzo6Q0ZUeXBlOjpDRk51bWJlciwKKyAgICBJUEM6OkNGVHlwZTo6
Q0ZTdHJpbmcsCisgICAgSVBDOjpDRlR5cGU6OkNGVVJMLAorICAgIElQQzo6Q0ZUeXBlOjpTZWND
ZXJ0aWZpY2F0ZSwKKyAgICBJUEM6OkNGVHlwZTo6U2VjSWRlbnRpdHksCisjaWYgSEFWRShTRUNf
S0VZQ0hBSU4pCisgICAgSVBDOjpDRlR5cGU6OlNlY0tleWNoYWluSXRlbSwKKyNlbmRpZgorI2lm
IEhBVkUoU0VDX0FDQ0VTU19DT05UUk9MKQorICAgIElQQzo6Q0ZUeXBlOjpTZWNBY2Nlc3NDb250
cm9sLAorI2VuZGlmCisjaWYgSEFWRShTRUNfVFJVU1RfU0VSSUFMSVpBVElPTikKKyAgICBJUEM6
OkNGVHlwZTo6U2VjVHJ1c3QsCisjZW5kaWYKKyAgICBJUEM6OkNGVHlwZTo6TnVsbHB0ciwKKyAg
ICBJUEM6OkNGVHlwZTo6VW5rbm93bgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaAppbmRleCA0YTUwZjc4
YTcxOTE0MjVjMmJjOTY0N2JlY2NlZjA1ZjhiNTE0ZDBmLi5jNTIwYWM5NDc3OTZjYmUwMWMyYjA2
YWQ3YTkyNmVmYTZkM2I2NDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9B
cmd1bWVudENvZGVyc0NGLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRD
b2RlcnNDRi5oCkBAIC0xMDUsNyArMTA1LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImLCBSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+Jik7CiB2b2lkIHNldEFsbG93c0Rl
Y29kaW5nU2VjS2V5UmVmKGJvb2wpOwogI2VuZGlmCiAKLUNGVHlwZVJlZiB0b2tlbk51bGxUeXBl
UmVmKCk7CitDRlR5cGVSZWYgdG9rZW5OdWxscHRyVHlwZVJlZigpOwogCiB9IC8vIG5hbWVzcGFj
ZSBJUEMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1
bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1l
bnRDb2RlcnNNYWMubW0KaW5kZXggZmVkMzc1NGVjZGNjMDM0NGM5M2E4M2ZmYWRmNmM5NGExYmFk
MjRmMy4uOGFkMjU3OWU2MzVlN2M3MTVkYzdlYzNiYTJkYWEzZDYxMTU2MTMxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1t
CkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGUKICAgICAgICAgWyhO
U011dGFibGVVUkxSZXF1ZXN0ICopcmVxdWVzdFRvU2VyaWFsaXplIHNldEhUVFBCb2R5U3RyZWFt
Om5pbF07CiAgICAgfQogCi0gICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gZGljdGlvbmFy
eSA9IGNyZWF0ZVNlcmlhbGl6YWJsZVJlcHJlc2VudGF0aW9uKHJlcXVlc3RUb1NlcmlhbGl6ZS5n
ZXQoKSwgSVBDOjp0b2tlbk51bGxUeXBlUmVmKCkpOworICAgIFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+IGRpY3Rpb25hcnkgPSBjcmVhdGVTZXJpYWxpemFibGVSZXByZXNlbnRhdGlvbihyZXF1
ZXN0VG9TZXJpYWxpemUuZ2V0KCksIElQQzo6dG9rZW5OdWxscHRyVHlwZVJlZigpKTsKICAgICBJ
UEM6OmVuY29kZShlbmNvZGVyLCBkaWN0aW9uYXJ5LmdldCgpKTsKIAogICAgIC8vIFRoZSBmYWxs
YmFjayBhcnJheSBpcyBwYXJ0IG9mIE5TVVJMUmVxdWVzdCwgYnV0IGl0IGlzIG5vdCBlbmNvZGVk
IGJ5IFdLTlNVUkxSZXF1ZXN0Q3JlYXRlU2VyaWFsaXphYmxlUmVwcmVzZW50YXRpb24uCkBAIC0y
MzEsNyArMjMxLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dD46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGUKICAgICBpZiAoIUlQQzo6ZGVj
b2RlKGRlY29kZXIsIGRpY3Rpb25hcnkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBS
ZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiBuc1VSTFJlcXVlc3QgPSBjcmVhdGVOU1VSTFJlcXVlc3RG
cm9tU2VyaWFsaXphYmxlUmVwcmVzZW50YXRpb24oZGljdGlvbmFyeS5nZXQoKSwgSVBDOjp0b2tl
bk51bGxUeXBlUmVmKCkpOworICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IG5zVVJMUmVxdWVz
dCA9IGNyZWF0ZU5TVVJMUmVxdWVzdEZyb21TZXJpYWxpemFibGVSZXByZXNlbnRhdGlvbihkaWN0
aW9uYXJ5LmdldCgpLCBJUEM6OnRva2VuTnVsbHB0clR5cGVSZWYoKSk7CiAgICAgaWYgKCFuc1VS
TFJlcXVlc3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0Mi5vcmRlciBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdDIub3JkZXIK
aW5kZXggN2MzMDVmNGU3YTQ0NTVhMWYyZTNmZDY3OWUwYTUwMzkyMWE0MzI3YS4uZjE3ZTRhMzg2
OWQwMDJlMmJjMDkwNTQ0NTA3NGIwMDg5YWYzZmE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQyLm9yZGVy
CkBAIC05MTYsNyArOTE2LDcgQEAgX19aTjZXZWJLaXQxN0NoaWxkUHJvY2Vzc1Byb3h5NHNlbmRJ
TjhNZXNzYWdlczdXZWJQYWdlMTRMb2FkVVJMUmVxdWVzdEVFRWJSS1RfeWoKIF9fWk43Q29yZUlQ
QzEzQXJndW1lbnRDb2RlcklON1dlYkNvcmUxNVJlc291cmNlUmVxdWVzdEVFNmVuY29kZUVSTlNf
MTVBcmd1bWVudEVuY29kZXJFUktTMl8KIF9fWk43Q29yZUlQQzEzQXJndW1lbnRDb2RlcklON1dl
YkNvcmUxNVJlc291cmNlUmVxdWVzdEVFMThlbmNvZGVQbGF0Zm9ybURhdGFFUk5TXzE1QXJndW1l
bnRFbmNvZGVyRVJLUzJfCiBfX1pOM1dURjlSZXRhaW5QdHJJMTJOU1VSTFJlcXVlc3RFQzJFUFMx
XwotX19aTjdDb3JlSVBDMTZ0b2tlbk51bGxUeXBlUmVmRXYKK19fWk43Q29yZUlQQzE5dG9rZW5O
dWxscHRyVHlwZVJlZkV2CiBfV0tOU1VSTFJlcXVlc3RDcmVhdGVTZXJpYWxpemFibGVSZXByZXNl
bnRhdGlvbgogX2NyZWF0ZVNlcmlhbGl6YWJsZVJlcHJlc2VudGF0aW9uCiBfX1pON0NvcmVJUEM2
ZW5jb2RlRVJOU18xNUFyZ3VtZW50RW5jb2RlckVQSzE0X19DRkRpY3Rpb25hcnkK
</data>
<flag name="review"
          id="416786"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401398</attachid>
            <date>2020-06-08 16:30:12 -0700</date>
            <delta_ts>2020-06-08 18:26:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212921-20200608163056.patch</filename>
            <type>text/plain</type>
            <size>15850</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU0ZTJkN2M2OWJiOThjYWNk
NjAzOWM1YjcyMmQzNmU4ZGVmNDQ5NmEuLmUzMWNkZDk2YjY2NmM2NGZmNmZlNWY0NzM1MDIyNzM3
ZjI0ODMyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDYtMDggIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBbSVBDXSBBZG9wdCBlbnVtIGNs
YXNzIGZvciBJUEM6OkNGVHlwZQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjEyOTIx
PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQxMzQ1MDY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgU3VtbWFyeToKKyAgICAgICAgLSBDb252ZXJ0IElQ
Qzo6Q0ZUeXBlIHRvIGVudW0gY2xhc3MuCisgICAgICAgIC0gUnVsZSBmb3IgbmV3IGVudW0gbmFt
ZXMgaXMgdG8gcmVtb3ZlICJSZWYiIHN1ZmZpeCBmcm9tIHRoZQorICAgICAgICAgIGFjdHVhbCB0
eXBlIG5hbWUuCisgICAgICAgIC0gU3BlY2lhbCBlbnVtIENGVHlwZTo6TnVsbCByZW5hbWVkIHRv
IENGVHlwZTo6TnVsbHB0ciB0bworICAgICAgICAgIGRpZmZlcmVudGlhdGUgZnJvbSBDRlR5cGU6
OkNGTnVsbCBvYmplY3RzLgorCisgICAgICAgICogU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0Yu
Y3BwOgorICAgICAgICAoSVBDOjp0b2tlbk51bGxUeXBlUmVmKTogRGVsZXRlLgorICAgICAgICAo
SVBDOjp0b2tlbk51bGxwdHJUeXBlUmVmKTogQWRkLgorICAgICAgICAtIFJlbmFtZSB0b2tlbk51
bGxUeXBlUmVmKCkgdG8gdG9rZW5OdWxscHRyVHlwZVJlZigpLgorICAgICAgICAoSVBDOjpDRlR5
cGUpOgorICAgICAgICAtIENvbnZlcnQgdG8gZW51bSBjbGFzcy4KKyAgICAgICAgKElQQzo6dHlw
ZUZyb21DRlR5cGVSZWYpOgorICAgICAgICAoSVBDOjplbmNvZGUpOgorICAgICAgICAtIFN3aXRj
aCBmcm9tIGVuY29kZUVudW0oKSB0byBvcGVyYXRvcjw8KCkuCisgICAgICAgIChJUEM6OmRlY29k
ZSk6CisgICAgICAgIC0gU3dpdGNoIGZyb20gZGVjb2RlRW51bSgpIHRvIGRlY29kZSgpLgorICAg
ICAgICAoV1RGOjpFbnVtVHJhaXRzPElQQzo6Q0ZUeXBlPik6IEFkZC4KKyAgICAgICAgKiBTaGFy
ZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5oOgorICAgICAgICAoSVBDOjp0b2tlbk51bGxUeXBlUmVm
KTogRGVsZXRlLgorICAgICAgICAoSVBDOjp0b2tlbk51bGxwdHJUeXBlUmVmKTogQWRkLgorICAg
ICAgICAtIFJlbmFtZSB0b2tlbk51bGxUeXBlUmVmKCkgdG8gdG9rZW5OdWxscHRyVHlwZVJlZigp
LgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD46OmVuY29k
ZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgLSBTd2l0Y2ggdG8g
dXNlIHRva2VuTnVsbHB0clR5cGVSZWYoKS4KKyAgICAgICAgKiBtYWMvV2ViS2l0Mi5vcmRlcjoK
KyAgICAgICAgLSBVcGRhdGUgc3ltYm9sIG5hbWUgYWZ0ZXIgcmVuYW1pbmcgdG9rZW5OdWxsVHlw
ZVJlZigpLgorCiAyMDIwLTA2LTA4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgW0lQQ10gQWRvcHQgZW51bSBjbGFzcyBmb3IgRHJhZ09wZXJhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAppbmRleCBhNzcyZDJj
NzJkZjg1N2I2YmY4NzVmOWQ0ZTBhNGMwMGMxZjNiODA3Li40N2MzNmVmNzlmNWM3ZTAyM2ZjYjUy
MzVlNGZkYjg0ZmUyNjJjZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9B
cmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVu
dENvZGVyc0NGLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ0LDEz
ICs0NSwxMyBAQAogbmFtZXNwYWNlIElQQyB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
Q0ZUeXBlUmVmIHRva2VuTnVsbFR5cGVSZWYoKQorQ0ZUeXBlUmVmIHRva2VuTnVsbHB0clR5cGVS
ZWYoKQogewotICAgIHN0YXRpYyBDRlN0cmluZ1JlZiB0b2tlbk51bGxUeXBlID0gQ0ZTVFIoIldL
TnVsbCIpOwotICAgIHJldHVybiB0b2tlbk51bGxUeXBlOworICAgIHN0YXRpYyBDRlN0cmluZ1Jl
ZiB0b2tlbk51bGxwdHJUeXBlID0gQ0ZTVFIoIldLTnVsbCIpOworICAgIHJldHVybiB0b2tlbk51
bGxwdHJUeXBlOwogfQogCi1lbnVtIENGVHlwZSB7CitlbnVtIGNsYXNzIENGVHlwZSA6IHVpbnQ4
X3QgewogICAgIENGQXJyYXksCiAgICAgQ0ZCb29sZWFuLAogICAgIENGRGF0YSwKQEAgLTcxLDcg
KzcyLDcgQEAgZW51bSBDRlR5cGUgewogI2lmIEhBVkUoU0VDX1RSVVNUX1NFUklBTElaQVRJT04p
CiAgICAgU2VjVHJ1c3QsCiAjZW5kaWYKLSAgICBOdWxsLAorICAgIE51bGxwdHIsCiAgICAgVW5r
bm93biwKIH07CiAKQEAgLTc5LDEwNSArODAsMTA1IEBAIHN0YXRpYyBDRlR5cGUgdHlwZUZyb21D
RlR5cGVSZWYoQ0ZUeXBlUmVmIHR5cGUpCiB7CiAgICAgQVNTRVJUKHR5cGUpOwogCi0gICAgaWYg
KHR5cGUgPT0gdG9rZW5OdWxsVHlwZVJlZigpKQotICAgICAgICByZXR1cm4gTnVsbDsKKyAgICBp
ZiAodHlwZSA9PSB0b2tlbk51bGxwdHJUeXBlUmVmKCkpCisgICAgICAgIHJldHVybiBDRlR5cGU6
Ok51bGxwdHI7CiAKICAgICBDRlR5cGVJRCB0eXBlSUQgPSBDRkdldFR5cGVJRCh0eXBlKTsKICAg
ICBpZiAodHlwZUlEID09IENGQXJyYXlHZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIENGQXJy
YXk7CisgICAgICAgIHJldHVybiBDRlR5cGU6OkNGQXJyYXk7CiAgICAgaWYgKHR5cGVJRCA9PSBD
RkJvb2xlYW5HZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIENGQm9vbGVhbjsKKyAgICAgICAg
cmV0dXJuIENGVHlwZTo6Q0ZCb29sZWFuOwogICAgIGlmICh0eXBlSUQgPT0gQ0ZEYXRhR2V0VHlw
ZUlEKCkpCi0gICAgICAgIHJldHVybiBDRkRhdGE7CisgICAgICAgIHJldHVybiBDRlR5cGU6OkNG
RGF0YTsKICAgICBpZiAodHlwZUlEID09IENGRGF0ZUdldFR5cGVJRCgpKQotICAgICAgICByZXR1
cm4gQ0ZEYXRlOworICAgICAgICByZXR1cm4gQ0ZUeXBlOjpDRkRhdGU7CiAgICAgaWYgKHR5cGVJ
RCA9PSBDRkRpY3Rpb25hcnlHZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIENGRGljdGlvbmFy
eTsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6Q0ZEaWN0aW9uYXJ5OwogICAgIGlmICh0eXBlSUQg
PT0gQ0ZOdWxsR2V0VHlwZUlEKCkpCi0gICAgICAgIHJldHVybiBDRk51bGw7CisgICAgICAgIHJl
dHVybiBDRlR5cGU6OkNGTnVsbDsKICAgICBpZiAodHlwZUlEID09IENGTnVtYmVyR2V0VHlwZUlE
KCkpCi0gICAgICAgIHJldHVybiBDRk51bWJlcjsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6Q0ZO
dW1iZXI7CiAgICAgaWYgKHR5cGVJRCA9PSBDRlN0cmluZ0dldFR5cGVJRCgpKQotICAgICAgICBy
ZXR1cm4gQ0ZTdHJpbmc7CisgICAgICAgIHJldHVybiBDRlR5cGU6OkNGU3RyaW5nOwogICAgIGlm
ICh0eXBlSUQgPT0gQ0ZVUkxHZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIENGVVJMOworICAg
ICAgICByZXR1cm4gQ0ZUeXBlOjpDRlVSTDsKICAgICBpZiAodHlwZUlEID09IFNlY0NlcnRpZmlj
YXRlR2V0VHlwZUlEKCkpCi0gICAgICAgIHJldHVybiBTZWNDZXJ0aWZpY2F0ZTsKKyAgICAgICAg
cmV0dXJuIENGVHlwZTo6U2VjQ2VydGlmaWNhdGU7CiAgICAgaWYgKHR5cGVJRCA9PSBTZWNJZGVu
dGl0eUdldFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gU2VjSWRlbnRpdHk7CisgICAgICAgIHJl
dHVybiBDRlR5cGU6OlNlY0lkZW50aXR5OwogI2lmIEhBVkUoU0VDX0tFWUNIQUlOKQogICAgIGlm
ICh0eXBlSUQgPT0gU2VjS2V5Y2hhaW5JdGVtR2V0VHlwZUlEKCkpCi0gICAgICAgIHJldHVybiBT
ZWNLZXljaGFpbkl0ZW07CisgICAgICAgIHJldHVybiBDRlR5cGU6OlNlY0tleWNoYWluSXRlbTsK
ICNlbmRpZgogI2lmIEhBVkUoU0VDX0FDQ0VTU19DT05UUk9MKQogICAgIGlmICh0eXBlSUQgPT0g
U2VjQWNjZXNzQ29udHJvbEdldFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gU2VjQWNjZXNzQ29u
dHJvbDsKKyAgICAgICAgcmV0dXJuIENGVHlwZTo6U2VjQWNjZXNzQ29udHJvbDsKICNlbmRpZgog
I2lmIEhBVkUoU0VDX1RSVVNUX1NFUklBTElaQVRJT04pCiAgICAgaWYgKHR5cGVJRCA9PSBTZWNU
cnVzdEdldFR5cGVJRCgpKQotICAgICAgICByZXR1cm4gU2VjVHJ1c3Q7CisgICAgICAgIHJldHVy
biBDRlR5cGU6OlNlY1RydXN0OwogI2VuZGlmCiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gVW5rbm93bjsKKyAgICByZXR1cm4gQ0ZUeXBlOjpVbmtub3duOwogfQogCiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRlR5cGVSZWYgdHlwZVJlZikKIHsKICAgICBD
RlR5cGUgdHlwZSA9IHR5cGVGcm9tQ0ZUeXBlUmVmKHR5cGVSZWYpOwotICAgIGVuY29kZXIuZW5j
b2RlRW51bSh0eXBlKTsKKyAgICBlbmNvZGVyIDw8IHR5cGU7CiAKICAgICBzd2l0Y2ggKHR5cGUp
IHsKLSAgICBjYXNlIENGQXJyYXk6CisgICAgY2FzZSBDRlR5cGU6OkNGQXJyYXk6CiAgICAgICAg
IGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRkFycmF5UmVmPih0eXBlUmVmKSk7CiAgICAg
ICAgIHJldHVybjsKLSAgICBjYXNlIENGQm9vbGVhbjoKKyAgICBjYXNlIENGVHlwZTo6Q0ZCb29s
ZWFuOgogICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3RhdGljX2Nhc3Q8Q0ZCb29sZWFuUmVmPih0
eXBlUmVmKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENGRGF0YToKKyAgICBjYXNlIENG
VHlwZTo6Q0ZEYXRhOgogICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3RhdGljX2Nhc3Q8Q0ZEYXRh
UmVmPih0eXBlUmVmKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENGRGF0ZToKKyAgICBj
YXNlIENGVHlwZTo6Q0ZEYXRlOgogICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3RhdGljX2Nhc3Q8
Q0ZEYXRlUmVmPih0eXBlUmVmKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENGRGljdGlv
bmFyeToKKyAgICBjYXNlIENGVHlwZTo6Q0ZEaWN0aW9uYXJ5OgogICAgICAgICBlbmNvZGUoZW5j
b2Rlciwgc3RhdGljX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPih0eXBlUmVmKSk7CiAgICAgICAgIHJl
dHVybjsKLSAgICBjYXNlIENGTnVsbDoKKyAgICBjYXNlIENGVHlwZTo6Q0ZOdWxsOgogICAgICAg
ICByZXR1cm47Ci0gICAgY2FzZSBDRk51bWJlcjoKKyAgICBjYXNlIENGVHlwZTo6Q0ZOdW1iZXI6
CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRk51bWJlclJlZj4odHlwZVJl
ZikpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBDRlN0cmluZzoKKyAgICBjYXNlIENGVHlw
ZTo6Q0ZTdHJpbmc6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxDRlN0cmlu
Z1JlZj4odHlwZVJlZikpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBDRlVSTDoKKyAgICBj
YXNlIENGVHlwZTo6Q0ZVUkw6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxD
RlVSTFJlZj4odHlwZVJlZikpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBTZWNDZXJ0aWZp
Y2F0ZToKKyAgICBjYXNlIENGVHlwZTo6U2VjQ2VydGlmaWNhdGU6CiAgICAgICAgIGVuY29kZShl
bmNvZGVyLCBzdGF0aWNfY2FzdDxTZWNDZXJ0aWZpY2F0ZVJlZj4oY29uc3RfY2FzdDx2b2lkKj4o
dHlwZVJlZikpKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgU2VjSWRlbnRpdHk6CisgICAg
Y2FzZSBDRlR5cGU6OlNlY0lkZW50aXR5OgogICAgICAgICBlbmNvZGUoZW5jb2Rlciwgc3RhdGlj
X2Nhc3Q8U2VjSWRlbnRpdHlSZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+KHR5cGVSZWYpKSk7CiAgICAg
ICAgIHJldHVybjsKICNpZiBIQVZFKFNFQ19LRVlDSEFJTikKLSAgICBjYXNlIFNlY0tleWNoYWlu
SXRlbToKKyAgICBjYXNlIENGVHlwZTo6U2VjS2V5Y2hhaW5JdGVtOgogICAgICAgICBlbmNvZGUo
ZW5jb2Rlciwgc3RhdGljX2Nhc3Q8U2VjS2V5Y2hhaW5JdGVtUmVmPihjb25zdF9jYXN0PHZvaWQq
Pih0eXBlUmVmKSkpOwogICAgICAgICByZXR1cm47CiAjZW5kaWYKICNpZiBIQVZFKFNFQ19BQ0NF
U1NfQ09OVFJPTCkKLSAgICBjYXNlIFNlY0FjY2Vzc0NvbnRyb2w6CisgICAgY2FzZSBDRlR5cGU6
OlNlY0FjY2Vzc0NvbnRyb2w6CiAgICAgICAgIGVuY29kZShlbmNvZGVyLCBzdGF0aWNfY2FzdDxT
ZWNBY2Nlc3NDb250cm9sUmVmPihjb25zdF9jYXN0PHZvaWQqPih0eXBlUmVmKSkpOwogICAgICAg
ICByZXR1cm47CiAjZW5kaWYKICNpZiBIQVZFKFNFQ19UUlVTVF9TRVJJQUxJWkFUSU9OKQotICAg
IGNhc2UgU2VjVHJ1c3Q6CisgICAgY2FzZSBDRlR5cGU6OlNlY1RydXN0OgogICAgICAgICBlbmNv
ZGUoZW5jb2Rlciwgc3RhdGljX2Nhc3Q8U2VjVHJ1c3RSZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+KHR5
cGVSZWYpKSk7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgotICAgIGNhc2UgTnVsbDoKKyAgICBj
YXNlIENGVHlwZTo6TnVsbHB0cjoKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVW5rbm93bjoK
KyAgICBjYXNlIENGVHlwZTo6VW5rbm93bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0x
ODcsNzcgKzE4OCw3NyBAQCB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRlR5cGVSZWYg
dHlwZVJlZikKIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxDRlR5cGVS
ZWY+JiByZXN1bHQpCiB7CiAgICAgQ0ZUeXBlIHR5cGU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZUVudW0odHlwZSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0eXBlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBDRkFycmF5OiB7Cisg
ICAgY2FzZSBDRlR5cGU6OkNGQXJyYXk6IHsKICAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+
IGFycmF5OwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBhcnJheSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3VsdCA9IGFkb3B0Q0YoYXJyYXkubGVha1JlZigp
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNhc2UgQ0ZCb29sZWFuOiB7Cisg
ICAgY2FzZSBDRlR5cGU6OkNGQm9vbGVhbjogewogICAgICAgICBSZXRhaW5QdHI8Q0ZCb29sZWFu
UmVmPiBib29sZWFuOwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBib29sZWFuKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzdWx0ID0gYWRvcHRDRihib29sZWFu
LmxlYWtSZWYoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBjYXNlIENGRGF0
YTogeworICAgIGNhc2UgQ0ZUeXBlOjpDRkRhdGE6IHsKICAgICAgICAgUmV0YWluUHRyPENGRGF0
YVJlZj4gZGF0YTsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgZGF0YSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3VsdCA9IGFkb3B0Q0YoZGF0YS5sZWFrUmVm
KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBDRkRhdGU6IHsKKyAg
ICBjYXNlIENGVHlwZTo6Q0ZEYXRlOiB7CiAgICAgICAgIFJldGFpblB0cjxDRkRhdGVSZWY+IGRh
dGU7CiAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGRhdGUpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBhZG9wdENGKGRhdGUubGVha1JlZigpKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNhc2UgQ0ZEaWN0aW9uYXJ5OiB7CisgICAg
Y2FzZSBDRlR5cGU6OkNGRGljdGlvbmFyeTogewogICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9u
YXJ5UmVmPiBkaWN0aW9uYXJ5OwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBkaWN0aW9u
YXJ5KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzdWx0ID0gYWRvcHRD
RihkaWN0aW9uYXJ5LmxlYWtSZWYoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAg
ICBjYXNlIENGTnVsbDoKKyAgICBjYXNlIENGVHlwZTo6Q0ZOdWxsOgogICAgICAgICByZXN1bHQg
PSBhZG9wdENGKGtDRk51bGwpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIENGTnVt
YmVyOiB7CisgICAgY2FzZSBDRlR5cGU6OkNGTnVtYmVyOiB7CiAgICAgICAgIFJldGFpblB0cjxD
Rk51bWJlclJlZj4gbnVtYmVyOwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBudW1iZXIp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBhZG9wdENGKG51
bWJlci5sZWFrUmVmKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBD
RlN0cmluZzogeworICAgIGNhc2UgQ0ZUeXBlOjpDRlN0cmluZzogewogICAgICAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IHN0cmluZzsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2Rlciwgc3Ry
aW5nKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzdWx0ID0gYWRvcHRD
RihzdHJpbmcubGVha1JlZigpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGNh
c2UgQ0ZVUkw6IHsKKyAgICBjYXNlIENGVHlwZTo6Q0ZVUkw6IHsKICAgICAgICAgUmV0YWluUHRy
PENGVVJMUmVmPiB1cmw7CiAgICAgICAgIGlmICghZGVjb2RlKGRlY29kZXIsIHVybCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3VsdCA9IGFkb3B0Q0YodXJsLmxlYWtS
ZWYoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBjYXNlIFNlY0NlcnRpZmlj
YXRlOiB7CisgICAgY2FzZSBDRlR5cGU6OlNlY0NlcnRpZmljYXRlOiB7CiAgICAgICAgIFJldGFp
blB0cjxTZWNDZXJ0aWZpY2F0ZVJlZj4gY2VydGlmaWNhdGU7CiAgICAgICAgIGlmICghZGVjb2Rl
KGRlY29kZXIsIGNlcnRpZmljYXRlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgcmVzdWx0ID0gYWRvcHRDRihjZXJ0aWZpY2F0ZS5sZWFrUmVmKCkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBTZWNJZGVudGl0eTogeworICAgIGNhc2UgQ0ZUeXBl
OjpTZWNJZGVudGl0eTogewogICAgICAgICBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IGlkZW50
aXR5OwogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBpZGVudGl0eSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0yNjUsNyArMjY2LDcgQEAgYm9vbCBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgUmV0YWluUHRyPENGVHlwZVJlZj4mIHJlc3VsdCkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogI2lmIEhBVkUoU0VDX0tFWUNIQUlOKQotICAgIGNhc2UgU2VjS2V5Y2hhaW5J
dGVtOiB7CisgICAgY2FzZSBDRlR5cGU6OlNlY0tleWNoYWluSXRlbTogewogICAgICAgICBSZXRh
aW5QdHI8U2VjS2V5Y2hhaW5JdGVtUmVmPiBrZXljaGFpbkl0ZW07CiAgICAgICAgIGlmICghZGVj
b2RlKGRlY29kZXIsIGtleWNoYWluSXRlbSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0yNzQsNyArMjc1LDcgQEAgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRy
PENGVHlwZVJlZj4mIHJlc3VsdCkKICAgICB9CiAjZW5kaWYKICNpZiBIQVZFKFNFQ19BQ0NFU1Nf
Q09OVFJPTCkKLSAgICBjYXNlIFNlY0FjY2Vzc0NvbnRyb2w6IHsKKyAgICBjYXNlIENGVHlwZTo6
U2VjQWNjZXNzQ29udHJvbDogewogICAgICAgICBSZXRhaW5QdHI8U2VjQWNjZXNzQ29udHJvbFJl
Zj4gYWNjZXNzQ29udHJvbDsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgYWNjZXNzQ29u
dHJvbCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yODMsNyArMjg0LDcgQEAgYm9v
bCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGVHlwZVJlZj4mIHJlc3VsdCkK
ICAgICB9CiAjZW5kaWYKICNpZiBIQVZFKFNFQ19UUlVTVF9TRVJJQUxJWkFUSU9OKQotICAgIGNh
c2UgU2VjVHJ1c3Q6IHsKKyAgICBjYXNlIENGVHlwZTo6U2VjVHJ1c3Q6IHsKICAgICAgICAgUmV0
YWluUHRyPFNlY1RydXN0UmVmPiB0cnVzdDsKICAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2Rlciwg
dHJ1c3QpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjkxLDE0ICsyOTIsMTQgQEAg
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPENGVHlwZVJlZj4mIHJlc3Vs
dCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2VuZGlmCi0gICAgY2FzZSBOdWxsOgot
ICAgICAgICByZXN1bHQgPSB0b2tlbk51bGxUeXBlUmVmKCk7CisgICAgY2FzZSBDRlR5cGU6Ok51
bGxwdHI6CisgICAgICAgIHJlc3VsdCA9IHRva2VuTnVsbHB0clR5cGVSZWYoKTsKICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgY2FzZSBVbmtub3duOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ0ZUeXBlOjpVbmtub3duOgor
ICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTMxOSw4ICszMjAsOCBAQCB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBDRkFycmF5UmVmIGFycmF5KQogICAgIEhhc2hTZXQ8Q0ZJbmRleD4gaW52YWxp
ZEluZGljaWVzOwogICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAg
ICAgICAvLyBJZ25vcmUgdmFsdWVzIHdlIGRvbid0IHN1cHBvcnQuCi0gICAgICAgIEFTU0VSVCh0
eXBlRnJvbUNGVHlwZVJlZih2YWx1ZXNbaV0pICE9IFVua25vd24pOwotICAgICAgICBpZiAodHlw
ZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSA9PSBVbmtub3duKQorICAgICAgICBBU1NFUlQodHlw
ZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSAhPSBDRlR5cGU6OlVua25vd24pOworICAgICAgICBp
ZiAodHlwZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSA9PSBDRlR5cGU6OlVua25vd24pCiAgICAg
ICAgICAgICBpbnZhbGlkSW5kaWNpZXMuYWRkKGkpOwogICAgIH0KIApAQCAtNDM0LDkgKzQzNSw5
IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGRGljdGlvbmFyeVJlZiBkaWN0aW9u
YXJ5KQogICAgICAgICBBU1NFUlQodmFsdWVzW2ldKTsKIAogICAgICAgICAvLyBJZ25vcmUga2V5
cy92YWx1ZXMgd2UgZG9uJ3Qgc3VwcG9ydC4KLSAgICAgICAgQVNTRVJUKHR5cGVGcm9tQ0ZUeXBl
UmVmKGtleXNbaV0pICE9IFVua25vd24pOwotICAgICAgICBBU1NFUlQodHlwZUZyb21DRlR5cGVS
ZWYodmFsdWVzW2ldKSAhPSBVbmtub3duKTsKLSAgICAgICAgaWYgKHR5cGVGcm9tQ0ZUeXBlUmVm
KGtleXNbaV0pID09IFVua25vd24gfHwgdHlwZUZyb21DRlR5cGVSZWYodmFsdWVzW2ldKSA9PSBV
bmtub3duKQorICAgICAgICBBU1NFUlQodHlwZUZyb21DRlR5cGVSZWYoa2V5c1tpXSkgIT0gQ0ZU
eXBlOjpVbmtub3duKTsKKyAgICAgICAgQVNTRVJUKHR5cGVGcm9tQ0ZUeXBlUmVmKHZhbHVlc1tp
XSkgIT0gQ0ZUeXBlOjpVbmtub3duKTsKKyAgICAgICAgaWYgKHR5cGVGcm9tQ0ZUeXBlUmVmKGtl
eXNbaV0pID09IENGVHlwZTo6VW5rbm93biB8fCB0eXBlRnJvbUNGVHlwZVJlZih2YWx1ZXNbaV0p
ID09IENGVHlwZTo6VW5rbm93bikKICAgICAgICAgICAgIGludmFsaWRLZXlzLmFkZChrZXlzW2ld
KTsKICAgICB9CiAKQEAgLTgzNywzICs4MzgsMzUgQEAgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgUmV0YWluUHRyPFNlY1RydXN0UmVmPiYgcmVzdWx0KQogI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIElQQworCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxJUEM6OkNGVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
SVBDOjpDRlR5cGUsCisgICAgSVBDOjpDRlR5cGU6OkNGQXJyYXksCisgICAgSVBDOjpDRlR5cGU6
OkNGQm9vbGVhbiwKKyAgICBJUEM6OkNGVHlwZTo6Q0ZEYXRhLAorICAgIElQQzo6Q0ZUeXBlOjpD
RkRhdGUsCisgICAgSVBDOjpDRlR5cGU6OkNGRGljdGlvbmFyeSwKKyAgICBJUEM6OkNGVHlwZTo6
Q0ZOdWxsLAorICAgIElQQzo6Q0ZUeXBlOjpDRk51bWJlciwKKyAgICBJUEM6OkNGVHlwZTo6Q0ZT
dHJpbmcsCisgICAgSVBDOjpDRlR5cGU6OkNGVVJMLAorICAgIElQQzo6Q0ZUeXBlOjpTZWNDZXJ0
aWZpY2F0ZSwKKyAgICBJUEM6OkNGVHlwZTo6U2VjSWRlbnRpdHksCisjaWYgSEFWRShTRUNfS0VZ
Q0hBSU4pCisgICAgSVBDOjpDRlR5cGU6OlNlY0tleWNoYWluSXRlbSwKKyNlbmRpZgorI2lmIEhB
VkUoU0VDX0FDQ0VTU19DT05UUk9MKQorICAgIElQQzo6Q0ZUeXBlOjpTZWNBY2Nlc3NDb250cm9s
LAorI2VuZGlmCisjaWYgSEFWRShTRUNfVFJVU1RfU0VSSUFMSVpBVElPTikKKyAgICBJUEM6OkNG
VHlwZTo6U2VjVHJ1c3QsCisjZW5kaWYKKyAgICBJUEM6OkNGVHlwZTo6TnVsbHB0ciwKKyAgICBJ
UEM6OkNGVHlwZTo6VW5rbm93bgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaAppbmRleCA0YTUwZjc4YTcx
OTE0MjVjMmJjOTY0N2JlY2NlZjA1ZjhiNTE0ZDBmLi5jNTIwYWM5NDc3OTZjYmUwMWMyYjA2YWQ3
YTkyNmVmYTZkM2I2NDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1
bWVudENvZGVyc0NGLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2Rl
cnNDRi5oCkBAIC0xMDUsNyArMTA1LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+Jik7CiB2b2lkIHNldEFsbG93c0RlY29k
aW5nU2VjS2V5UmVmKGJvb2wpOwogI2VuZGlmCiAKLUNGVHlwZVJlZiB0b2tlbk51bGxUeXBlUmVm
KCk7CitDRlR5cGVSZWYgdG9rZW5OdWxscHRyVHlwZVJlZigpOwogCiB9IC8vIG5hbWVzcGFjZSBJ
UEMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVu
dENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNNYWMubW0KaW5kZXggZmVkMzc1NGVjZGNjMDM0NGM5M2E4M2ZmYWRmNmM5NGExYmFkMjRm
My4uNmM0M2FiNTFlYWVmNzIwMTMwZjE4MGM1OGRmYzlkYWFhNjc1YzY1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCkBA
IC0yMDcsNyArMjA3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGUKICAgICAgICAgWyhOU011
dGFibGVVUkxSZXF1ZXN0ICopcmVxdWVzdFRvU2VyaWFsaXplIHNldEhUVFBCb2R5U3RyZWFtOm5p
bF07CiAgICAgfQogCi0gICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gZGljdGlvbmFyeSA9
IGNyZWF0ZVNlcmlhbGl6YWJsZVJlcHJlc2VudGF0aW9uKHJlcXVlc3RUb1NlcmlhbGl6ZS5nZXQo
KSwgSVBDOjp0b2tlbk51bGxUeXBlUmVmKCkpOworICAgIGF1dG8gZGljdGlvbmFyeSA9IGNyZWF0
ZVNlcmlhbGl6YWJsZVJlcHJlc2VudGF0aW9uKHJlcXVlc3RUb1NlcmlhbGl6ZS5nZXQoKSwgSVBD
Ojp0b2tlbk51bGxwdHJUeXBlUmVmKCkpOwogICAgIElQQzo6ZW5jb2RlKGVuY29kZXIsIGRpY3Rp
b25hcnkuZ2V0KCkpOwogCiAgICAgLy8gVGhlIGZhbGxiYWNrIGFycmF5IGlzIHBhcnQgb2YgTlNV
UkxSZXF1ZXN0LCBidXQgaXQgaXMgbm90IGVuY29kZWQgYnkgV0tOU1VSTFJlcXVlc3RDcmVhdGVT
ZXJpYWxpemFibGVSZXByZXNlbnRhdGlvbi4KQEAgLTIzMSw3ICsyMzEsNyBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERl
Y29kZXImIGRlY29kZQogICAgIGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgZGljdGlvbmFyeSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IG5z
VVJMUmVxdWVzdCA9IGNyZWF0ZU5TVVJMUmVxdWVzdEZyb21TZXJpYWxpemFibGVSZXByZXNlbnRh
dGlvbihkaWN0aW9uYXJ5LmdldCgpLCBJUEM6OnRva2VuTnVsbFR5cGVSZWYoKSk7CisgICAgYXV0
byBuc1VSTFJlcXVlc3QgPSBjcmVhdGVOU1VSTFJlcXVlc3RGcm9tU2VyaWFsaXphYmxlUmVwcmVz
ZW50YXRpb24oZGljdGlvbmFyeS5nZXQoKSwgSVBDOjp0b2tlbk51bGxwdHJUeXBlUmVmKCkpOwog
ICAgIGlmICghbnNVUkxSZXF1ZXN0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJLaXQyLm9yZGVyCmluZGV4IDdjMzA1ZjRlN2E0NDU1YTFmMmUzZmQ2NzllMGE1MDM5MjFhNDMy
N2EuLmYxN2U0YTM4NjlkMDAyZTJiYzA5MDU0NDUwNzRiMDA4OWFmM2ZhOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdDIub3JkZXIKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViS2l0Mi5vcmRlcgpAQCAtOTE2LDcgKzkxNiw3IEBAIF9fWk42V2ViS2l0MTdDaGlsZFByb2Nl
c3NQcm94eTRzZW5kSU44TWVzc2FnZXM3V2ViUGFnZTE0TG9hZFVSTFJlcXVlc3RFRUViUktUX3lq
CiBfX1pON0NvcmVJUEMxM0FyZ3VtZW50Q29kZXJJTjdXZWJDb3JlMTVSZXNvdXJjZVJlcXVlc3RF
RTZlbmNvZGVFUk5TXzE1QXJndW1lbnRFbmNvZGVyRVJLUzJfCiBfX1pON0NvcmVJUEMxM0FyZ3Vt
ZW50Q29kZXJJTjdXZWJDb3JlMTVSZXNvdXJjZVJlcXVlc3RFRTE4ZW5jb2RlUGxhdGZvcm1EYXRh
RVJOU18xNUFyZ3VtZW50RW5jb2RlckVSS1MyXwogX19aTjNXVEY5UmV0YWluUHRySTEyTlNVUkxS
ZXF1ZXN0RUMyRVBTMV8KLV9fWk43Q29yZUlQQzE2dG9rZW5OdWxsVHlwZVJlZkV2CitfX1pON0Nv
cmVJUEMxOXRva2VuTnVsbHB0clR5cGVSZWZFdgogX1dLTlNVUkxSZXF1ZXN0Q3JlYXRlU2VyaWFs
aXphYmxlUmVwcmVzZW50YXRpb24KIF9jcmVhdGVTZXJpYWxpemFibGVSZXByZXNlbnRhdGlvbgog
X19aTjdDb3JlSVBDNmVuY29kZUVSTlNfMTVBcmd1bWVudEVuY29kZXJFUEsxNF9fQ0ZEaWN0aW9u
YXJ5Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>