<?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>211256</bug_id>
          
          <creation_ts>2020-04-30 14:42:14 -0700</creation_ts>
          <short_desc>[JSC] intlBooleanOption should return TriState instead of taking an out param</short_desc>
          <delta_ts>2020-04-30 18:14:14 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1647561</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-30 14:42:14 -0700</bug_when>
    <thetext>[JSC] intlBooleanOption should return Optional&lt;bool&gt; instead of taking an out param</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647569</commentid>
    <comment_count>1</comment_count>
      <attachid>398095</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-30 14:50:09 -0700</bug_when>
    <thetext>Created attachment 398095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647571</commentid>
    <comment_count>2</comment_count>
      <attachid>398095</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-30 14:53:33 -0700</bug_when>
    <thetext>Comment on attachment 398095
Patch

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

&gt; Source/JavaScriptCore/runtime/IntlCollator.cpp:182
&gt; -    JSValue options = optionsValue;
&gt; -    if (!optionsValue.isUndefined()) {
&gt; +    JSObject* options;
&gt; +    if (optionsValue.isUndefined())
&gt; +        options = constructEmptyObject(vm, globalObject-&gt;nullPrototypeObjectStructure());
&gt; +    else {

The spec does say to construct an empty object here, but since every option will be undefined anyway, we technically could just keep a null JSObject*. Not sure if there&apos;s a preferred style for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647573</commentid>
    <comment_count>3</comment_count>
      <attachid>398095</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-30 15:02:25 -0700</bug_when>
    <thetext>Comment on attachment 398095
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        [JSC] intlBooleanOption should return Optional&lt;bool&gt; instead of taking an out param

Sam Weinig has advised us to not use Optional&lt;bool&gt; because it’s too easy to get wrong, with a subtle distinction between !x and !*x / !x.value() for example. I am OK with it personally, though.

&gt;&gt; Source/JavaScriptCore/runtime/IntlCollator.cpp:182
&gt;&gt; +    else {
&gt; 
&gt; The spec does say to construct an empty object here, but since every option will be undefined anyway, we technically could just keep a null JSObject*. Not sure if there&apos;s a preferred style for this.

I think a nullptr for JSObject is better: less pressure on the garbage collector, smaller code size. Would we have to add a lot of null checks? Another option would be to use a pointer to a known empty object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647594</commentid>
    <comment_count>4</comment_count>
      <attachid>398095</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-30 15:30:26 -0700</bug_when>
    <thetext>Comment on attachment 398095
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/IntlCollator.cpp:182
&gt;&gt;&gt; +    else {
&gt;&gt; 
&gt;&gt; The spec does say to construct an empty object here, but since every option will be undefined anyway, we technically could just keep a null JSObject*. Not sure if there&apos;s a preferred style for this.
&gt; 
&gt; I think a nullptr for JSObject is better: less pressure on the garbage collector, smaller code size. Would we have to add a lot of null checks? Another option would be to use a pointer to a known empty object.

Isn&apos;t it observable if user sets `Object.prototype.someOptionName` getter? If it is observable, we need to create an object here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647604</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-30 15:43:47 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #4)
&gt; Isn&apos;t it observable if user sets `Object.prototype.someOptionName` getter?
&gt; If it is observable, we need to create an object here.

This particular case won&apos;t be observable since we&apos;re meant to create an object with null prototype.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647629</commentid>
    <comment_count>6</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-30 16:18:20 -0700</bug_when>
    <thetext>I guess the question here then is whether this is an improvement:

&gt; -    if (options.isUndefined())
&gt; +    if (!options)
&gt;          return fallback;
&gt; -    JSObject* opts = options.toObject(globalObject);
&gt; -    RETURN_IF_EXCEPTION(scope, String());
&gt; -
&gt; -    JSValue value = opts-&gt;get(globalObject, property);
&gt; +    JSValue value = options-&gt;get(globalObject, property);

Given that current JSC code style tends to assume that JSObject* params are non-null when not otherwise specified.

Perhaps I should just leave everything other than intlBooleanOption alone after all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647636</commentid>
    <comment_count>7</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-30 16:20:36 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #6)
&gt; Perhaps I should just leave everything other than intlBooleanOption alone
&gt; after all.

* everything other than the Optional&lt;bool&gt; change, I mean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647665</commentid>
    <comment_count>8</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-30 17:09:49 -0700</bug_when>
    <thetext>Based on Slack discussion with Mark and Yusuke, I&apos;m going to change this to use WTF::TriState and then rename MixedTriState to IndeterminateTriState (following Boost) in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647667</commentid>
    <comment_count>9</comment_count>
      <attachid>398125</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-30 17:14:42 -0700</bug_when>
    <thetext>Created attachment 398125
Patch

Asking for re-review just to be certain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647669</commentid>
    <comment_count>10</comment_count>
      <attachid>398125</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-30 17:23:04 -0700</bug_when>
    <thetext>Comment on attachment 398125
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647682</commentid>
    <comment_count>11</comment_count>
      <attachid>398129</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-30 17:52:32 -0700</bug_when>
    <thetext>Created attachment 398129
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647686</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-30 18:13:07 -0700</bug_when>
    <thetext>Committed r260976: &lt;https://trac.webkit.org/changeset/260976&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398129.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647687</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-30 18:14:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/62689888&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398095</attachid>
            <date>2020-04-30 14:50:09 -0700</date>
            <delta_ts>2020-04-30 17:14:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211256-20200430145008.patch</filename>
            <type>text/plain</type>
            <size>15669</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YjZjOWUwYjIwZTkwODdjYjk2YjdlMTI1ZWJkNmRkYjI2YzRiODRmLi41OWM5MWUzZGQ0MTkxMGQ4
YjZlZmM2ZDQ2OThlMjRjNjc2OGVjY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMC0wNC0zMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gaW50bEJvb2xlYW5PcHRpb24gc2hvdWxkIHJldHVybiBP
cHRpb25hbDxib29sPiBpbnN0ZWFkIG9mIHRha2luZyBhbiBvdXQgcGFyYW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJvb2xlYW4gb3B0aW9ucyBmb3Ig
SW50bCBjb25zdHJ1Y3RvcnMgY2FuIGhhdmUgZGVmYXVsdCB2YWx1ZXMgb2YgdHJ1ZSwgZmFsc2Us
IG9yIHVuZGVmaW5lZC4KKyAgICAgICAgVG8gaGFuZGxlIHRoZSB1bmRlZmluZWQgY2FzZSwgaW50
bEJvb2xlYW5PcHRpb24gY3VycmVudGx5IGhhcyBhIGBib29sJiB1c2VzRmFsbGJhY2tgIHBhcmFt
OworICAgICAgICB3ZSBzaG91bGQgaGF2ZSB0aGUgcmV0dXJuIHR5cGUgc2ltcGx5IGJlIE9wdGlv
bmFsIGluc3RlYWQuCisKKyAgICAgICAgV2hpbGUgd2UncmUgYXQgaXQsIGl0J3MgYSBiaXQgc2ls
bHkgdGhhdCB0aGUgaW50bCpPcHRpb24gZnVuY3Rpb25zIGFsbCBkbyB0b09iamVjdCBldmVyeSB0
aW1lCisgICAgICAgIHdoZW4gd2UgYWxyZWFkeSBrbm93IHRoYXQgdGhlIG9wdGlvbnMgb2JqZWN0
IGlzIGEgSlNPYmplY3QsIHNvIGZpeCB0aGUgcGFyYW0gdHlwZXMgYWNjb3JkaW5nbHkuCisKKyAg
ICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvci5jcHA6CisgICAgICAgIChKU0M6OkludGxDb2xs
YXRvcjo6aW5pdGlhbGl6ZUNvbGxhdG9yKToKKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6
ZURhdGVUaW1lRm9ybWF0KToKKyAgICAgICAgKiBydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3Bw
OgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9ybWF0Ojppbml0aWFsaXplTnVtYmVyRm9ybWF0
KToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjppbnRs
Qm9vbGVhbk9wdGlvbik6CisgICAgICAgIChKU0M6OmludGxTdHJpbmdPcHRpb24pOgorICAgICAg
ICAoSlNDOjppbnRsTnVtYmVyT3B0aW9uKToKKyAgICAgICAgKEpTQzo6c3VwcG9ydGVkTG9jYWxl
cyk6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisKIDIwMjAtMDQtMjkgIFJvc3Mg
S2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIEVuc3VyZSBJbnRs
IGNsYXNzZXMgZG9uJ3QgaGF2ZSBuYW1pbmcgY29uZmxpY3RzIHdpdGggdW5pZmllZCBidWlsZHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCmluZGV4
IDZkMzdiZjBlMzA2MzhmNDMxZDM5ZjZiMTY4NmZlYTYyOTFmOWZjOTAuLjZkZjQ0MTNlMGU0ZDhl
YWFjZjYxOGNlM2Y4ODllNzkyOTJmODZiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bENvbGxhdG9yLmNwcApAQCAtMTc2LDggKzE3NiwxMCBAQCB2b2lkIEludGxD
b2xsYXRvcjo6aW5pdGlhbGl6ZUNvbGxhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgbG9jYQogICAgIGF1dG8gcmVxdWVzdGVkTG9jYWxlcyA9IGNhbm9uaWNhbGl6ZUxv
Y2FsZUxpc3QoZ2xvYmFsT2JqZWN0LCBsb2NhbGVzKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB2b2lkKCkpOwogCi0gICAgSlNWYWx1ZSBvcHRpb25zID0gb3B0aW9uc1ZhbHVlOwot
ICAgIGlmICghb3B0aW9uc1ZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKKyAgICBKU09iamVjdCogb3B0
aW9uczsKKyAgICBpZiAob3B0aW9uc1ZhbHVlLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIG9wdGlv
bnMgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCh2bSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBl
T2JqZWN0U3RydWN0dXJlKCkpOworICAgIGVsc2UgewogICAgICAgICBvcHRpb25zID0gb3B0aW9u
c1ZhbHVlLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHZvaWQoKSk7CiAgICAgfQpAQCAtMTk5LDIyICsyMDEsMTUgQEAgdm9pZCBJbnRs
Q29sbGF0b3I6OmluaXRpYWxpemVDb2xsYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIGxvY2EKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwog
ICAgIG9wdC5hZGQoImxvY2FsZU1hdGNoZXIiX3MsIG1hdGNoZXIpOwogCi0gICAgewotICAgICAg
ICBTdHJpbmcgbnVtZXJpY1N0cmluZzsKLSAgICAgICAgYm9vbCB1c2VzRmFsbGJhY2s7Ci0gICAg
ICAgIGJvb2wgbnVtZXJpYyA9IGludGxCb29sZWFuT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9u
cywgdm0ucHJvcGVydHlOYW1lcy0+bnVtZXJpYywgdXNlc0ZhbGxiYWNrKTsKLSAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICAgICAgaWYgKCF1c2VzRmFsbGJh
Y2spCi0gICAgICAgICAgICBudW1lcmljU3RyaW5nID0gbnVtZXJpYyA/ICJ0cnVlIl9zIDogImZh
bHNlIl9zOwotICAgICAgICBpZiAoIW51bWVyaWNTdHJpbmcuaXNOdWxsKCkpCi0gICAgICAgICAg
ICBvcHQuYWRkKCJrbiJfcywgbnVtZXJpY1N0cmluZyk7Ci0gICAgfQotICAgIHsKLSAgICAgICAg
U3RyaW5nIGNhc2VGaXJzdCA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25z
LCB2bS5wcm9wZXJ0eU5hbWVzLT5jYXNlRmlyc3QsIHsgInVwcGVyIiwgImxvd2VyIiwgImZhbHNl
IiB9LCAiY2FzZUZpcnN0IG11c3QgYmUgZWl0aGVyIFwidXBwZXJcIiwgXCJsb3dlclwiLCBvciBc
ImZhbHNlXCIiLCBudWxscHRyKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKLSAgICAgICAgaWYgKCFjYXNlRmlyc3QuaXNOdWxsKCkpCi0gICAgICAgICAgICBv
cHQuYWRkKCJrZiJfcywgY2FzZUZpcnN0KTsKLSAgICB9CisgICAgT3B0aW9uYWw8Ym9vbD4gbnVt
ZXJpYyA9IGludGxCb29sZWFuT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVy
dHlOYW1lcy0+bnVtZXJpYyk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgp
KTsKKyAgICBpZiAobnVtZXJpYykKKyAgICAgICAgb3B0LmFkZCgia24iX3MsIG51bWVyaWMudmFs
dWUoKSA/ICJ0cnVlIl9zIDogImZhbHNlIl9zKTsKKworICAgIFN0cmluZyBjYXNlRmlyc3RPcHRp
b24gPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlO
YW1lcy0+Y2FzZUZpcnN0LCB7ICJ1cHBlciIsICJsb3dlciIsICJmYWxzZSIgfSwgImNhc2VGaXJz
dCBtdXN0IGJlIGVpdGhlciBcInVwcGVyXCIsIFwibG93ZXJcIiwgb3IgXCJmYWxzZVwiIiwgbnVs
bHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAgICBpZiAo
IWNhc2VGaXJzdE9wdGlvbi5pc051bGwoKSkKKyAgICAgICAgb3B0LmFkZCgia2YiX3MsIGNhc2VG
aXJzdE9wdGlvbik7CiAKICAgICBhdXRvJiBhdmFpbGFibGVMb2NhbGVzID0gaW50bENvbGxhdG9y
QXZhaWxhYmxlTG9jYWxlcygpOwogICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZUxvY2FsZShnbG9i
YWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMsIG9wdCwgSW50bENv
bGxhdG9ySW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cywgV1RGX0FSUkFZX0xFTkdUSChJ
bnRsQ29sbGF0b3JJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0YSk7
CkBAIC0yNDgsMTIgKzI0Myw5IEBAIHZvaWQgSW50bENvbGxhdG9yOjppbml0aWFsaXplQ29sbGF0
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBsb2NhCiAgICAgZWxzZQog
ICAgICAgICBtX3NlbnNpdGl2aXR5ID0gU2Vuc2l0aXZpdHk6OlZhcmlhbnQ7CiAKLSAgICBib29s
IHVzZXNGYWxsYmFjazsKLSAgICBib29sIGlnbm9yZVB1bmN0dWF0aW9uID0gaW50bEJvb2xlYW5P
cHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5pZ25vcmVQdW5j
dHVhdGlvbiwgdXNlc0ZhbGxiYWNrKTsKKyAgICBPcHRpb25hbDxib29sPiBpZ25vcmVQdW5jdHVh
dGlvbiA9IGludGxCb29sZWFuT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVy
dHlOYW1lcy0+aWdub3JlUHVuY3R1YXRpb24pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHZvaWQoKSk7Ci0gICAgaWYgKHVzZXNGYWxsYmFjaykKLSAgICAgICAgaWdub3JlUHVuY3R1
YXRpb24gPSBmYWxzZTsKLSAgICBtX2lnbm9yZVB1bmN0dWF0aW9uID0gaWdub3JlUHVuY3R1YXRp
b247CisgICAgbV9pZ25vcmVQdW5jdHVhdGlvbiA9IGlnbm9yZVB1bmN0dWF0aW9uLnZhbHVlT3Io
ZmFsc2UpOwogCiAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAgbV9j
b2xsYXRvciA9IHN0ZDo6dW5pcXVlX3B0cjxVQ29sbGF0b3IsIFVDb2xsYXRvckRlbGV0ZXI+KHVj
b2xfb3BlbihtX2xvY2FsZS51dGY4KCkuZGF0YSgpLCAmc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAppbmRleCBi
Mzk5MDNmZjcyMzE4ZjBkYzY2YjY0YWNiMmFiNzkwYWQzNmVkMzEyLi42NzdkYTczMzNhMzZlMGM4
YTFjNWJhMjc4OGNlZGY5YmVkNGMwMmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTQ2NiwxMyArNDY2LDEyIEBA
IHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAgICAgb3B0LmFkZCgibnUiX3MsIG51bWJlcmlu
Z1N5c3RlbSk7CiAgICAgfQogCi0gICAgYm9vbCBpc0hvdXIxMlVuZGVmaW5lZDsKLSAgICBib29s
IGhvdXIxMiA9IGludGxCb29sZWFuT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJv
cGVydHlOYW1lcy0+aG91cjEyLCBpc0hvdXIxMlVuZGVmaW5lZCk7CisgICAgT3B0aW9uYWw8Ym9v
bD4gaG91cjEyID0gaW50bEJvb2xlYW5PcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5w
cm9wZXJ0eU5hbWVzLT5ob3VyMTIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZv
aWQoKSk7CiAKICAgICBTdHJpbmcgaG91ckN5Y2xlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxP
YmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmhvdXJDeWNsZSwgeyAiaDExIiwgImgx
MiIsICJoMjMiLCAiaDI0IiB9LCAiaG91ckN5Y2xlIG11c3QgYmUgXCJoMTFcIiwgXCJoMTJcIiwg
XCJoMjNcIiwgb3IgXCJoMjRcIiIsIG51bGxwdHIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHZvaWQoKSk7Ci0gICAgaWYgKGlzSG91cjEyVW5kZWZpbmVkKSB7CisgICAgaWYgKGhv
dXIxMikgewogICAgICAgICAvLyBTZXQgaG91cjEyIGhlcmUgdG8gc2ltcGxpZnkgaG91ciBsb2dp
YyBsYXRlci4KICAgICAgICAgaG91cjEyID0gKGhvdXJDeWNsZSA9PSAiaDExIiB8fCBob3VyQ3lj
bGUgPT0gImgxMiIpOwogICAgICAgICBpZiAoIWhvdXJDeWNsZS5pc051bGwoKSkKQEAgLTU4MCwx
NiArNTc5LDE2IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVG
b3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBTdHJpbmcgaG91ciA9IGlu
dGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5o
b3VyLCB0d29EaWdpdE51bWVyaWMsICJob3VyIG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1l
cmljXCIiLCBudWxscHRyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkp
OwogICAgIGlmIChob3VyID09ICIyLWRpZ2l0IikgewotICAgICAgICBpZiAoaXNIb3VyMTJVbmRl
ZmluZWQgJiYgbV9ob3VyQ3ljbGUuaXNOdWxsKCkpCisgICAgICAgIGlmIChob3VyMTIgJiYgbV9o
b3VyQ3ljbGUuaXNOdWxsKCkpCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiamoiKTsKLSAgICAgICAgZWxzZSBpZiAoaG91cjEyKQorICAgICAgICBlbHNlIGlmICho
b3VyMTIudmFsdWUoKSkKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJoaCIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiSEgiKTsKICAgICB9IGVsc2UgaWYgKGhvdXIgPT0gIm51bWVyaWMiKSB7Ci0gICAg
ICAgIGlmIChpc0hvdXIxMlVuZGVmaW5lZCAmJiBtX2hvdXJDeWNsZS5pc051bGwoKSkKKyAgICAg
ICAgaWYgKGhvdXIxMiAmJiBtX2hvdXJDeWNsZS5pc051bGwoKSkKICAgICAgICAgICAgIHNrZWxl
dG9uQnVpbGRlci5hcHBlbmQoJ2onKTsKLSAgICAgICAgZWxzZSBpZiAoaG91cjEyKQorICAgICAg
ICBlbHNlIGlmIChob3VyMTIudmFsdWUoKSkKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5h
cHBlbmQoJ2gnKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFw
cGVuZCgnSCcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE51bWJlckZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0LmNwcAppbmRleCA2MGNlMTI4Y2FhOWMyZDg2Y2UxYTIyNmZkMzlhYjdiYzIxODhk
Y2IwLi5lNjI4YzhlYzhhNzQ5NmZkNTBhZTkwZDZlNzgyNGFhMjg4YTI4N2Q4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcApAQCAt
MjgxLDEyICsyODEsOSBAQCB2b2lkIEludGxOdW1iZXJGb3JtYXQ6OmluaXRpYWxpemVOdW1iZXJG
b3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYQogICAgICAgICBtX21heGlt
dW1TaWduaWZpY2FudERpZ2l0cyA9IG1heGltdW1TaWduaWZpY2FudERpZ2l0czsKICAgICB9CiAK
LSAgICBib29sIHVzZXNGYWxsYmFjazsKLSAgICBib29sIHVzZUdyb3VwaW5nID0gaW50bEJvb2xl
YW5PcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAidXNlR3JvdXBpbmciKSwgdXNlc0ZhbGxiYWNrKTsKKyAgICBPcHRpb25hbDxib29sPiB1c2VH
cm91cGluZyA9IGludGxCb29sZWFuT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgInVzZUdyb3VwaW5nIikpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgaWYgKHVzZXNGYWxsYmFjaykKLSAgICAgICAgdXNl
R3JvdXBpbmcgPSB0cnVlOwotICAgIG1fdXNlR3JvdXBpbmcgPSB1c2VHcm91cGluZzsKKyAgICBt
X3VzZUdyb3VwaW5nID0gdXNlR3JvdXBpbmcudmFsdWVPcih0cnVlKTsKIAogICAgIFVOdW1iZXJG
b3JtYXRTdHlsZSBzdHlsZSA9IFVOVU1fREVGQVVMVDsKICAgICBzd2l0Y2ggKG1fc3R5bGUpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggODhm
MTk3MGFkMDRjMjc5ODUyNGUwMjVhNGE1MTljZDFmMTc2YWE2Zi4uZjhhMjRlNjUyYTA0ZjFiOTIy
ZTk3MmUwN2FiZTUyY2M3OGI1NWQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE9iamVjdC5jcHAKQEAgLTIwMiw1MSArMjAyLDI4IEBAIGNvbnN0IEhhc2hTZXQ8U3Ry
aW5nPiYgaW50bENvbGxhdG9yQXZhaWxhYmxlTG9jYWxlcygpCiAgICAgcmV0dXJuIGF2YWlsYWJs
ZUxvY2FsZXM7CiB9CiAKLWJvb2wgaW50bEJvb2xlYW5PcHRpb24oSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBvcHRpb25zLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHksIGJvb2wm
IHVzZXNGYWxsYmFjaykKKy8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtZ2V0b3B0aW9u
CitPcHRpb25hbDxib29sPiBpbnRsQm9vbGVhbk9wdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU09iamVjdCogb3B0aW9ucywgUHJvcGVydHlOYW1lIHByb3BlcnR5KQogewotICAg
IC8vIEdldE9wdGlvbiAob3B0aW9ucywgcHJvcGVydHksIHR5cGU9ImJvb2xlYW4iLCB2YWx1ZXMs
IGZhbGxiYWNrKQotICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTQwMi8jc2VjLWdl
dG9wdGlvbgotCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGlmIChvcHRpb25zLmlzVW5kZWZp
bmVkKCkpIHsKLSAgICAgICAgdXNlc0ZhbGxiYWNrID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLQotICAgIEpTT2JqZWN0KiBvcHRzID0gb3B0aW9ucy50b09iamVjdChnbG9i
YWxPYmplY3QpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICBK
U1ZhbHVlIHZhbHVlID0gb3B0aW9ucy0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHkpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFdURjo6bnVsbG9wdCk7CiAKLSAgICBKU1ZhbHVl
IHZhbHVlID0gb3B0cy0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHkpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICBpZiAodmFsdWUuaXNVbmRlZmluZWQoKSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIGlmICghdmFsdWUuaXNVbmRlZmlu
ZWQoKSkgewotICAgICAgICBib29sIGJvb2xlYW5WYWx1ZSA9IHZhbHVlLnRvQm9vbGVhbihnbG9i
YWxPYmplY3QpOwotICAgICAgICB1c2VzRmFsbGJhY2sgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJu
IGJvb2xlYW5WYWx1ZTsKLSAgICB9Ci0KLSAgICAvLyBCZWNhdXNlIGZhbGxiYWNrIGNhbiBiZSB1
bmRlZmluZWQsIHdlIGxldCB0aGUgY2FsbGVyIGhhbmRsZSBpdCBpbnN0ZWFkLgotICAgIHVzZXNG
YWxsYmFjayA9IHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB2YWx1ZS50b0Jv
b2xlYW4oZ2xvYmFsT2JqZWN0KTsKIH0KIAotU3RyaW5nIGludGxTdHJpbmdPcHRpb24oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBvcHRpb25zLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHksIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjb25zdCBjaGFyKj4gdmFsdWVzLCBjb25zdCBj
aGFyKiBub3RGb3VuZCwgY29uc3QgY2hhciogZmFsbGJhY2spCisvLyBodHRwczovL3RjMzkuZXMv
ZWNtYTQwMi8jc2VjLWdldG9wdGlvbgorU3RyaW5nIGludGxTdHJpbmdPcHRpb24oSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9wdGlvbnMsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eSwgc3RkOjppbml0aWFsaXplcl9saXN0PGNvbnN0IGNoYXIqPiB2YWx1ZXMsIGNvbnN0IGNo
YXIqIG5vdEZvdW5kLCBjb25zdCBjaGFyKiBmYWxsYmFjaykKIHsKLSAgICAvLyBHZXRPcHRpb24g
KG9wdGlvbnMsIHByb3BlcnR5LCB0eXBlPSJzdHJpbmciLCB2YWx1ZXMsIGZhbGxiYWNrKQotICAg
IC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTQwMi8jc2VjLWdldG9wdGlvbgotCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAotICAgIGlmIChvcHRpb25zLmlzVW5kZWZpbmVkKCkpCi0gICAgICAg
IHJldHVybiBmYWxsYmFjazsKLQotICAgIEpTT2JqZWN0KiBvcHRzID0gb3B0aW9ucy50b09iamVj
dChnbG9iYWxPYmplY3QpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZygp
KTsKLQotICAgIEpTVmFsdWUgdmFsdWUgPSBvcHRzLT5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IG9wdGlvbnMtPmdldChnbG9iYWxPYmplY3QsIHByb3Bl
cnR5KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CiAKICAgICBp
ZiAoIXZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKQEAgLTI2MywyMSArMjQwLDEzIEBAIFN0cmluZyBp
bnRsU3RyaW5nT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgb3B0
aW9ucywgUHJvcGVydHlOCiAgICAgcmV0dXJuIGZhbGxiYWNrOwogfQogCi11bnNpZ25lZCBpbnRs
TnVtYmVyT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgb3B0aW9u
cywgUHJvcGVydHlOYW1lIHByb3BlcnR5LCB1bnNpZ25lZCBtaW5pbXVtLCB1bnNpZ25lZCBtYXhp
bXVtLCB1bnNpZ25lZCBmYWxsYmFjaykKKy8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMt
Z2V0bnVtYmVyb3B0aW9uCit1bnNpZ25lZCBpbnRsTnVtYmVyT3B0aW9uKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvcHRpb25zLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHks
IHVuc2lnbmVkIG1pbmltdW0sIHVuc2lnbmVkIG1heGltdW0sIHVuc2lnbmVkIGZhbGxiYWNrKQog
ewotICAgIC8vIEdldE51bWJlck9wdGlvbiAob3B0aW9ucywgcHJvcGVydHksIG1pbmltdW0sIG1h
eGltdW0sIGZhbGxiYWNrKQotICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTQwMi8j
c2VjLWdldG51bWJlcm9wdGlvbgotCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGlmIChvcHRp
b25zLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIHJldHVybiBmYWxsYmFjazsKLQotICAgIEpTT2Jq
ZWN0KiBvcHRzID0gb3B0aW9ucy50b09iamVjdChnbG9iYWxPYmplY3QpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIDApOwotCi0gICAgSlNWYWx1ZSB2YWx1ZSA9IG9wdHMtPmdldChn
bG9iYWxPYmplY3QsIHByb3BlcnR5KTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gb3B0aW9ucy0+Z2V0
KGdsb2JhbE9iamVjdCwgcHJvcGVydHkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IDApOwogCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBpbnRsRGVmYXVsdE51bWJlck9w
dGlvbihnbG9iYWxPYmplY3QsIHZhbHVlLCBwcm9wZXJ0eSwgbWluaW11bSwgbWF4aW11bSwgZmFs
bGJhY2spKTsKQEAgLTcxOCwxNiArNjg3LDE3IEBAIHN0YXRpYyBKU0FycmF5KiBiZXN0Rml0U3Vw
cG9ydGVkTG9jYWxlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBIYXNoCiAg
ICAgcmV0dXJuIGxvb2t1cFN1cHBvcnRlZExvY2FsZXMoZ2xvYmFsT2JqZWN0LCBhdmFpbGFibGVM
b2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzKTsKIH0KIAotSlNWYWx1ZSBzdXBwb3J0ZWRMb2NhbGVz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZh
aWxhYmxlTG9jYWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHJlcXVlc3RlZExvY2FsZXMsIEpT
VmFsdWUgb3B0aW9ucykKKy8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtc3VwcG9ydGVk
bG9jYWxlcworSlNWYWx1ZSBzdXBwb3J0ZWRMb2NhbGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxhYmxlTG9jYWxlcywgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHJlcXVlc3RlZExvY2FsZXMsIEpTVmFsdWUgb3B0aW9uc1ZhbHVlKQogewot
ICAgIC8vIFN1cHBvcnRlZExvY2FsZXMgKGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2Fs
ZXMsIG9wdGlvbnMpCi0gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hNDAyLyNzZWMt
c3VwcG9ydGVkbG9jYWxlcwotCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBTdHJpbmcgbWF0Y2hl
cjsKIAotICAgIGlmICghb3B0aW9ucy5pc1VuZGVmaW5lZCgpKSB7CisgICAgaWYgKCFvcHRpb25z
VmFsdWUuaXNVbmRlZmluZWQoKSkgeworICAgICAgICBKU09iamVjdCogb3B0aW9ucyA9IG9wdGlv
bnNWYWx1ZS50b09iamVjdChnbG9iYWxPYmplY3QpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBKU1ZhbHVlKCkpOworCiAgICAgICAgIG1hdGNoZXIgPSBpbnRsU3RyaW5nT3B0
aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlTWF0Y2hl
ciwgeyAibG9va3VwIiwgImJlc3QgZml0IiB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhl
ciBcImxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiIsICJiZXN0IGZpdCIpOwogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCmluZGV4IGYxMTIyZjQxMzljMWE4M2Y0
NWYxOWQyMGQ5YjJmODE3MDEwMjhmMGYuLjJmZTMwMzRhMjczMTY2OWY0NmMxYmIyNDFhZmYyMjg5
MzY2MzM5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgK
QEAgLTY0LDEzICs2NCwxMyBAQCBpbmxpbmUgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBpbnRsTnVt
YmVyRm9ybWF0QXZhaWxhYmxlTG9jYWxlcygpIHsgcmV0dXJuIGludGxBdgogaW5saW5lIGNvbnN0
IEhhc2hTZXQ8U3RyaW5nPiYgaW50bFBsdXJhbFJ1bGVzQXZhaWxhYmxlTG9jYWxlcygpIHsgcmV0
dXJuIGludGxBdmFpbGFibGVMb2NhbGVzKCk7IH0KIGlubGluZSBjb25zdCBIYXNoU2V0PFN0cmlu
Zz4mIGludGxSZWxhdGl2ZVRpbWVGb3JtYXRBdmFpbGFibGVMb2NhbGVzKCkgeyByZXR1cm4gaW50
bEF2YWlsYWJsZUxvY2FsZXMoKTsgfQogCi1ib29sIGludGxCb29sZWFuT3B0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNWYWx1ZSBvcHRpb25zLCBQcm9wZXJ0eU5hbWUsIGJvb2wmIHVzZXNGYWxsYmFj
ayk7Ci1TdHJpbmcgaW50bFN0cmluZ09wdGlvbihKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgb3B0
aW9ucywgUHJvcGVydHlOYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y29uc3QgY2hhcio+IHZh
bHVlcywgY29uc3QgY2hhciogbm90Rm91bmQsIGNvbnN0IGNoYXIqIGZhbGxiYWNrKTsKLXVuc2ln
bmVkIGludGxOdW1iZXJPcHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIG9wdGlvbnMsIFBy
b3BlcnR5TmFtZSwgdW5zaWduZWQgbWluaW11bSwgdW5zaWduZWQgbWF4aW11bSwgdW5zaWduZWQg
ZmFsbGJhY2spOworT3B0aW9uYWw8Ym9vbD4gaW50bEJvb2xlYW5PcHRpb24oSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCogb3B0aW9ucywgUHJvcGVydHlOYW1lKTsKK1N0cmluZyBpbnRsU3RyaW5n
T3B0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIFByb3BlcnR5TmFtZSwg
c3RkOjppbml0aWFsaXplcl9saXN0PGNvbnN0IGNoYXIqPiB2YWx1ZXMsIGNvbnN0IGNoYXIqIG5v
dEZvdW5kLCBjb25zdCBjaGFyKiBmYWxsYmFjayk7Cit1bnNpZ25lZCBpbnRsTnVtYmVyT3B0aW9u
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIG9wdGlvbnMsIFByb3BlcnR5TmFtZSwgdW5zaWdu
ZWQgbWluaW11bSwgdW5zaWduZWQgbWF4aW11bSwgdW5zaWduZWQgZmFsbGJhY2spOwogdW5zaWdu
ZWQgaW50bERlZmF1bHROdW1iZXJPcHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIHVuc2lnbmVkIG1pbmltdW0sIHVuc2lnbmVkIG1heGltdW0sIHVuc2lnbmVkIGZh
bGxiYWNrKTsKIFZlY3RvcjxTdHJpbmc+IGNhbm9uaWNhbGl6ZUxvY2FsZUxpc3QoSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlIGxvY2FsZXMpOwogSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2
ZUxvY2FsZShKU0dsb2JhbE9iamVjdCosIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxhYmxl
TG9jYWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHJlcXVlc3RlZExvY2FsZXMsIGNvbnN0IEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBvcHRpb25zLCBjb25zdCBjaGFyKiBjb25zdCByZWxldmFu
dEV4dGVuc2lvbktleXNbXSwgc2l6ZV90IHJlbGV2YW50RXh0ZW5zaW9uS2V5Q291bnQsIFZlY3Rv
cjxTdHJpbmc+ICgqbG9jYWxlRGF0YSkoY29uc3QgU3RyaW5nJiwgc2l6ZV90KSk7Ci1KU1ZhbHVl
IHN1cHBvcnRlZExvY2FsZXMoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBIYXNoU2V0PFN0cmluZz4m
IGF2YWlsYWJsZUxvY2FsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXF1ZXN0ZWRMb2NhbGVz
LCBKU1ZhbHVlIG9wdGlvbnMpOworSlNWYWx1ZSBzdXBwb3J0ZWRMb2NhbGVzKEpTR2xvYmFsT2Jq
ZWN0KiwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcywgSlNWYWx1ZSBvcHRpb25zVmFsdWUpOwogU3Ry
aW5nIHJlbW92ZVVuaWNvZGVMb2NhbGVFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBsb2NhbGUpOwog
U3RyaW5nIGJlc3RBdmFpbGFibGVMb2NhbGUoY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFi
bGVMb2NhbGVzLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RlZExvY2FsZSk7CiBWZWN0b3I8U3RyaW5n
PiBudW1iZXJpbmdTeXN0ZW1zRm9yTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398125</attachid>
            <date>2020-04-30 17:14:42 -0700</date>
            <delta_ts>2020-04-30 17:52:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211256-20200430171441.patch</filename>
            <type>text/plain</type>
            <size>10688</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YjZjOWUwYjIwZTkwODdjYjk2YjdlMTI1ZWJkNmRkYjI2YzRiODRmLi40MzQ4NDU5NzAyMTZmOGI5
MjkwNmE1MGY1ZWZiN2UwN2Y0OWVmNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMC0wNC0zMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gaW50bEJvb2xlYW5PcHRpb24gc2hvdWxkIHJldHVybiBU
cmlTdGF0ZSBpbnN0ZWFkIG9mIHRha2luZyBhbiBvdXQgcGFyYW0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI1NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJvb2xlYW4gb3B0aW9ucyBmb3IgSW50bCBj
b25zdHJ1Y3RvcnMgY2FuIGhhdmUgZGVmYXVsdCB2YWx1ZXMgb2YgdHJ1ZSwgZmFsc2UsIG9yIHVu
ZGVmaW5lZC4KKyAgICAgICAgVG8gaGFuZGxlIHRoZSB1bmRlZmluZWQgY2FzZSwgaW50bEJvb2xl
YW5PcHRpb24gY3VycmVudGx5IGhhcyBhIGBib29sJiB1c2VzRmFsbGJhY2tgIHBhcmFtOworICAg
ICAgICB3ZSBzaG91bGQgaGF2ZSB0aGUgcmV0dXJuIHR5cGUgc2ltcGx5IGJlIGEgVHJpU3RhdGUg
aW5zdGVhZC4KKworICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SW50bENvbGxhdG9yOjppbml0aWFsaXplQ29sbGF0b3IpOgorICAgICAgICAqIHJ1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9y
bWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51
bWJlckZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXQ6OmluaXRpYWxp
emVOdW1iZXJGb3JtYXQpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OmludGxCb29sZWFuT3B0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmpl
Y3QuaDoKKwogMjAyMC0wNC0yOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5j
b20+CiAKICAgICAgICAgRW5zdXJlIEludGwgY2xhc3NlcyBkb24ndCBoYXZlIG5hbWluZyBjb25m
bGljdHMgd2l0aCB1bmlmaWVkIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bENvbGxhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxDb2xsYXRvci5jcHAKaW5kZXggNmQzN2JmMGUzMDYzOGY0MzFkMzlmNmIxNjg2ZmVh
NjI5MWY5ZmM5MC4uYTExMDdkZTA3MDVhZjEzYTY1Yzg2NDQ2MGI2YWRiMjRkNDMzYWY3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCkBAIC0x
OTksMjIgKzE5OSwxNSBAQCB2b2lkIEludGxDb2xsYXRvcjo6aW5pdGlhbGl6ZUNvbGxhdG9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbG9jYQogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgb3B0LmFkZCgibG9jYWxlTWF0Y2hlciJfcywg
bWF0Y2hlcik7CiAKLSAgICB7Ci0gICAgICAgIFN0cmluZyBudW1lcmljU3RyaW5nOwotICAgICAg
ICBib29sIHVzZXNGYWxsYmFjazsKLSAgICAgICAgYm9vbCBudW1lcmljID0gaW50bEJvb2xlYW5P
cHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5udW1lcmljLCB1
c2VzRmFsbGJhY2spOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkp
OwotICAgICAgICBpZiAoIXVzZXNGYWxsYmFjaykKLSAgICAgICAgICAgIG51bWVyaWNTdHJpbmcg
PSBudW1lcmljID8gInRydWUiX3MgOiAiZmFsc2UiX3M7Ci0gICAgICAgIGlmICghbnVtZXJpY1N0
cmluZy5pc051bGwoKSkKLSAgICAgICAgICAgIG9wdC5hZGQoImtuIl9zLCBudW1lcmljU3RyaW5n
KTsKLSAgICB9Ci0gICAgewotICAgICAgICBTdHJpbmcgY2FzZUZpcnN0ID0gaW50bFN0cmluZ09w
dGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmNhc2VGaXJzdCwg
eyAidXBwZXIiLCAibG93ZXIiLCAiZmFsc2UiIH0sICJjYXNlRmlyc3QgbXVzdCBiZSBlaXRoZXIg
XCJ1cHBlclwiLCBcImxvd2VyXCIsIG9yIFwiZmFsc2VcIiIsIG51bGxwdHIpOwotICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgICAgICBpZiAoIWNhc2VGaXJz
dC5pc051bGwoKSkKLSAgICAgICAgICAgIG9wdC5hZGQoImtmIl9zLCBjYXNlRmlyc3QpOwotICAg
IH0KKyAgICBUcmlTdGF0ZSBudW1lcmljID0gaW50bEJvb2xlYW5PcHRpb24oZ2xvYmFsT2JqZWN0
LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5udW1lcmljKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB2b2lkKCkpOworICAgIGlmIChudW1lcmljICE9IE1peGVkVHJpU3RhdGUp
CisgICAgICAgIG9wdC5hZGQoImtuIl9zLCBudW1lcmljID09IFRydWVUcmlTdGF0ZSA/ICJ0cnVl
Il9zIDogImZhbHNlIl9zKTsKKworICAgIFN0cmluZyBjYXNlRmlyc3RPcHRpb24gPSBpbnRsU3Ry
aW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+Y2FzZUZp
cnN0LCB7ICJ1cHBlciIsICJsb3dlciIsICJmYWxzZSIgfSwgImNhc2VGaXJzdCBtdXN0IGJlIGVp
dGhlciBcInVwcGVyXCIsIFwibG93ZXJcIiwgb3IgXCJmYWxzZVwiIiwgbnVsbHB0cik7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAgICBpZiAoIWNhc2VGaXJzdE9w
dGlvbi5pc051bGwoKSkKKyAgICAgICAgb3B0LmFkZCgia2YiX3MsIGNhc2VGaXJzdE9wdGlvbik7
CiAKICAgICBhdXRvJiBhdmFpbGFibGVMb2NhbGVzID0gaW50bENvbGxhdG9yQXZhaWxhYmxlTG9j
YWxlcygpOwogICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2
YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMsIG9wdCwgSW50bENvbGxhdG9ySW50ZXJu
YWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsQ29sbGF0b3JJ
bnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0YSk7CkBAIC0yNDgsMTIg
KzI0MSw5IEBAIHZvaWQgSW50bENvbGxhdG9yOjppbml0aWFsaXplQ29sbGF0b3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBsb2NhCiAgICAgZWxzZQogICAgICAgICBtX3Nl
bnNpdGl2aXR5ID0gU2Vuc2l0aXZpdHk6OlZhcmlhbnQ7CiAKLSAgICBib29sIHVzZXNGYWxsYmFj
azsKLSAgICBib29sIGlnbm9yZVB1bmN0dWF0aW9uID0gaW50bEJvb2xlYW5PcHRpb24oZ2xvYmFs
T2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5pZ25vcmVQdW5jdHVhdGlvbiwgdXNl
c0ZhbGxiYWNrKTsKKyAgICBUcmlTdGF0ZSBpZ25vcmVQdW5jdHVhdGlvbiA9IGludGxCb29sZWFu
T3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+aWdub3JlUHVu
Y3R1YXRpb24pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAg
aWYgKHVzZXNGYWxsYmFjaykKLSAgICAgICAgaWdub3JlUHVuY3R1YXRpb24gPSBmYWxzZTsKLSAg
ICBtX2lnbm9yZVB1bmN0dWF0aW9uID0gaWdub3JlUHVuY3R1YXRpb247CisgICAgbV9pZ25vcmVQ
dW5jdHVhdGlvbiA9IChpZ25vcmVQdW5jdHVhdGlvbiA9PSBUcnVlVHJpU3RhdGUpOwogCiAgICAg
VUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAgbV9jb2xsYXRvciA9IHN0ZDo6
dW5pcXVlX3B0cjxVQ29sbGF0b3IsIFVDb2xsYXRvckRlbGV0ZXI+KHVjb2xfb3BlbihtX2xvY2Fs
ZS51dGY4KCkuZGF0YSgpLCAmc3RhdHVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAppbmRleCBiMzk5MDNmZjcyMzE4ZjBk
YzY2YjY0YWNiMmFiNzkwYWQzNmVkMzEyLi5kYjcyYzBkNjc5ZGM2MTBhODA2MDUzZTVjMDA5MTlh
YTFkNWRlZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
RGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTQ2NiwxNSArNDY2LDE0IEBAIHZvaWQgSW50bERhdGVU
aW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICAgICAgb3B0LmFkZCgibnUiX3MsIG51bWJlcmluZ1N5c3RlbSk7CiAgICAg
fQogCi0gICAgYm9vbCBpc0hvdXIxMlVuZGVmaW5lZDsKLSAgICBib29sIGhvdXIxMiA9IGludGxC
b29sZWFuT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+aG91
cjEyLCBpc0hvdXIxMlVuZGVmaW5lZCk7CisgICAgVHJpU3RhdGUgaG91cjEyID0gaW50bEJvb2xl
YW5PcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5ob3VyMTIp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKICAgICBTdHJpbmcg
aG91ckN5Y2xlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnBy
b3BlcnR5TmFtZXMtPmhvdXJDeWNsZSwgeyAiaDExIiwgImgxMiIsICJoMjMiLCAiaDI0IiB9LCAi
aG91ckN5Y2xlIG11c3QgYmUgXCJoMTFcIiwgXCJoMTJcIiwgXCJoMjNcIiwgb3IgXCJoMjRcIiIs
IG51bGxwdHIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAg
aWYgKGlzSG91cjEyVW5kZWZpbmVkKSB7CisgICAgaWYgKGhvdXIxMiA9PSBNaXhlZFRyaVN0YXRl
KSB7CiAgICAgICAgIC8vIFNldCBob3VyMTIgaGVyZSB0byBzaW1wbGlmeSBob3VyIGxvZ2ljIGxh
dGVyLgotICAgICAgICBob3VyMTIgPSAoaG91ckN5Y2xlID09ICJoMTEiIHx8IGhvdXJDeWNsZSA9
PSAiaDEyIik7CisgICAgICAgIGhvdXIxMiA9IHRyaVN0YXRlKGhvdXJDeWNsZSA9PSAiaDExIiB8
fCBob3VyQ3ljbGUgPT0gImgxMiIpOwogICAgICAgICBpZiAoIWhvdXJDeWNsZS5pc051bGwoKSkK
ICAgICAgICAgICAgIG9wdC5hZGQoImhjIl9zLCBob3VyQ3ljbGUpOwogICAgIH0gZWxzZQpAQCAt
NTgwLDE2ICs1NzksMTYgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRl
VGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIFN0cmluZyBob3Vy
ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFt
ZXMtPmhvdXIsIHR3b0RpZ2l0TnVtZXJpYywgImhvdXIgbXVzdCBiZSBcIjItZGlnaXRcIiBvciBc
Im51bWVyaWNcIiIsIG51bGxwdHIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZv
aWQoKSk7CiAgICAgaWYgKGhvdXIgPT0gIjItZGlnaXQiKSB7Ci0gICAgICAgIGlmIChpc0hvdXIx
MlVuZGVmaW5lZCAmJiBtX2hvdXJDeWNsZS5pc051bGwoKSkKKyAgICAgICAgaWYgKGhvdXIxMiA9
PSBNaXhlZFRyaVN0YXRlICYmIG1faG91ckN5Y2xlLmlzTnVsbCgpKQogICAgICAgICAgICAgc2tl
bGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoImpqIik7Ci0gICAgICAgIGVsc2UgaWYgKGhvdXIx
MikKKyAgICAgICAgZWxzZSBpZiAoaG91cjEyID09IFRydWVUcmlTdGF0ZSkKICAgICAgICAgICAg
IHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJoaCIpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiSEgiKTsKICAgICB9IGVsc2Ug
aWYgKGhvdXIgPT0gIm51bWVyaWMiKSB7Ci0gICAgICAgIGlmIChpc0hvdXIxMlVuZGVmaW5lZCAm
JiBtX2hvdXJDeWNsZS5pc051bGwoKSkKKyAgICAgICAgaWYgKGhvdXIxMiA9PSBNaXhlZFRyaVN0
YXRlICYmIG1faG91ckN5Y2xlLmlzTnVsbCgpKQogICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVy
LmFwcGVuZCgnaicpOwotICAgICAgICBlbHNlIGlmIChob3VyMTIpCisgICAgICAgIGVsc2UgaWYg
KGhvdXIxMiA9PSBUcnVlVHJpU3RhdGUpCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBw
ZW5kKCdoJyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBl
bmQoJ0gnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxO
dW1iZXJGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJl
ckZvcm1hdC5jcHAKaW5kZXggNjBjZTEyOGNhYTljMmQ4NmNlMWEyMjZmZDM5YWI3YmMyMTg4ZGNi
MC4uYTZlYTFmNTE1OGUyYTdhZDdkZWQwMjBkMWJmOGE4NWQ4ZGFlYmE3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKQEAgLTI4
MSwxMiArMjgxLDkgQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0Ojppbml0aWFsaXplTnVtYmVyRm9y
bWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmEKICAgICAgICAgbV9tYXhpbXVt
U2lnbmlmaWNhbnREaWdpdHMgPSBtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM7CiAgICAgfQogCi0g
ICAgYm9vbCB1c2VzRmFsbGJhY2s7Ci0gICAgYm9vbCB1c2VHcm91cGluZyA9IGludGxCb29sZWFu
T3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
InVzZUdyb3VwaW5nIiksIHVzZXNGYWxsYmFjayk7CisgICAgVHJpU3RhdGUgdXNlR3JvdXBpbmcg
PSBpbnRsQm9vbGVhbk9wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJ1c2VHcm91cGluZyIpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB2b2lkKCkpOwotICAgIGlmICh1c2VzRmFsbGJhY2spCi0gICAgICAgIHVzZUdyb3VwaW5n
ID0gdHJ1ZTsKLSAgICBtX3VzZUdyb3VwaW5nID0gdXNlR3JvdXBpbmc7CisgICAgbV91c2VHcm91
cGluZyA9IHVzZUdyb3VwaW5nICE9IEZhbHNlVHJpU3RhdGU7CiAKICAgICBVTnVtYmVyRm9ybWF0
U3R5bGUgc3R5bGUgPSBVTlVNX0RFRkFVTFQ7CiAgICAgc3dpdGNoIChtX3N0eWxlKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IDg4ZjE5NzBh
ZDA0YzI3OTg1MjRlMDI1YTRhNTE5Y2QxZjE3NmFhNmYuLmYyM2Q5ZWQ5NTRkOGY5OTAxYzZjNjVk
OTA4ZTg3Y2MwYzU2N2JlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxPYmplY3QuY3BwCkBAIC0yMDIsMzQgKzIwMiwyNSBAQCBjb25zdCBIYXNoU2V0PFN0cmluZz4m
IGludGxDb2xsYXRvckF2YWlsYWJsZUxvY2FsZXMoKQogICAgIHJldHVybiBhdmFpbGFibGVMb2Nh
bGVzOwogfQogCi1ib29sIGludGxCb29sZWFuT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgb3B0aW9ucywgUHJvcGVydHlOYW1lIHByb3BlcnR5LCBib29sJiB1c2Vz
RmFsbGJhY2spCisvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWdldG9wdGlvbgorVHJp
U3RhdGUgaW50bEJvb2xlYW5PcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBvcHRpb25zLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHkpCiB7Ci0gICAgLy8gR2V0T3B0aW9u
IChvcHRpb25zLCBwcm9wZXJ0eSwgdHlwZT0iYm9vbGVhbiIsIHZhbHVlcywgZmFsbGJhY2spCi0g
ICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hNDAyLyNzZWMtZ2V0b3B0aW9uCi0KICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCi0gICAgaWYgKG9wdGlvbnMuaXNVbmRlZmluZWQoKSkgewotICAg
ICAgICB1c2VzRmFsbGJhY2sgPSB0cnVlOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQor
ICAgIGlmIChvcHRpb25zLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJldHVybiBNaXhlZFRyaVN0
YXRlOwogCiAgICAgSlNPYmplY3QqIG9wdHMgPSBvcHRpb25zLnRvT2JqZWN0KGdsb2JhbE9iamVj
dCk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIE1peGVkVHJpU3RhdGUpOwogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IG9wdHMtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBmYWxzZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgTWl4ZWRU
cmlTdGF0ZSk7CiAKLSAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgYm9v
bCBib29sZWFuVmFsdWUgPSB2YWx1ZS50b0Jvb2xlYW4oZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAg
dXNlc0ZhbGxiYWNrID0gZmFsc2U7Ci0gICAgICAgIHJldHVybiBib29sZWFuVmFsdWU7Ci0gICAg
fQorICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1cm4gTWl4ZWRUcmlT
dGF0ZTsKIAotICAgIC8vIEJlY2F1c2UgZmFsbGJhY2sgY2FuIGJlIHVuZGVmaW5lZCwgd2UgbGV0
IHRoZSBjYWxsZXIgaGFuZGxlIGl0IGluc3RlYWQuCi0gICAgdXNlc0ZhbGxiYWNrID0gdHJ1ZTsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRyaVN0YXRlKHZhbHVlLnRvQm9vbGVhbihn
bG9iYWxPYmplY3QpKTsKIH0KIAogU3RyaW5nIGludGxTdHJpbmdPcHRpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBvcHRpb25zLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHks
IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjb25zdCBjaGFyKj4gdmFsdWVzLCBjb25zdCBjaGFyKiBu
b3RGb3VuZCwgY29uc3QgY2hhciogZmFsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0LmgKaW5kZXggZjExMjJmNDEzOWMxYTgzZjQ1ZjE5ZDIwZDliMmY4MTcw
MTAyOGYwZi4uNWI3OGViYzk4NTI4ZjE3YTUwYmNiNjQ4YzI0YWQxN2E2NmEzNWZjZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaApAQCAtNjQsNyArNjQsNyBA
QCBpbmxpbmUgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBpbnRsTnVtYmVyRm9ybWF0QXZhaWxhYmxl
TG9jYWxlcygpIHsgcmV0dXJuIGludGxBdgogaW5saW5lIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYg
aW50bFBsdXJhbFJ1bGVzQXZhaWxhYmxlTG9jYWxlcygpIHsgcmV0dXJuIGludGxBdmFpbGFibGVM
b2NhbGVzKCk7IH0KIGlubGluZSBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGludGxSZWxhdGl2ZVRp
bWVGb3JtYXRBdmFpbGFibGVMb2NhbGVzKCkgeyByZXR1cm4gaW50bEF2YWlsYWJsZUxvY2FsZXMo
KTsgfQogCi1ib29sIGludGxCb29sZWFuT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBv
cHRpb25zLCBQcm9wZXJ0eU5hbWUsIGJvb2wmIHVzZXNGYWxsYmFjayk7CitUcmlTdGF0ZSBpbnRs
Qm9vbGVhbk9wdGlvbihKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgb3B0aW9ucywgUHJvcGVydHlO
YW1lKTsKIFN0cmluZyBpbnRsU3RyaW5nT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBv
cHRpb25zLCBQcm9wZXJ0eU5hbWUsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjb25zdCBjaGFyKj4g
dmFsdWVzLCBjb25zdCBjaGFyKiBub3RGb3VuZCwgY29uc3QgY2hhciogZmFsbGJhY2spOwogdW5z
aWduZWQgaW50bE51bWJlck9wdGlvbihKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgb3B0aW9ucywg
UHJvcGVydHlOYW1lLCB1bnNpZ25lZCBtaW5pbXVtLCB1bnNpZ25lZCBtYXhpbXVtLCB1bnNpZ25l
ZCBmYWxsYmFjayk7CiB1bnNpZ25lZCBpbnRsRGVmYXVsdE51bWJlck9wdGlvbihKU0dsb2JhbE9i
amVjdCosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgbWluaW11bSwgdW5zaWduZWQg
bWF4aW11bSwgdW5zaWduZWQgZmFsbGJhY2spOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398129</attachid>
            <date>2020-04-30 17:52:32 -0700</date>
            <delta_ts>2020-04-30 18:13:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211256-20200430175231.patch</filename>
            <type>text/plain</type>
            <size>10401</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YjZjOWUwYjIwZTkwODdjYjk2YjdlMTI1ZWJkNmRkYjI2YzRiODRmLi42ODE0YTVhY2QxYzg4YjM3
MWEwZjkxMDIyMGQ3ZjVmOTEzNjI0MTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMC0wNC0zMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0pTQ10gaW50bEJvb2xlYW5PcHRpb24gc2hvdWxkIHJldHVybiBU
cmlTdGF0ZSBpbnN0ZWFkIG9mIHRha2luZyBhbiBvdXQgcGFyYW0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI1NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyIGFuZCBNYXJrIExhbS4KKworICAgICAgICBCb29sZWFuIG9wdGlvbnMg
Zm9yIEludGwgY29uc3RydWN0b3JzIGNhbiBoYXZlIGRlZmF1bHQgdmFsdWVzIG9mIHRydWUsIGZh
bHNlLCBvciB1bmRlZmluZWQuCisgICAgICAgIFRvIGhhbmRsZSB0aGUgdW5kZWZpbmVkIGNhc2Us
IGludGxCb29sZWFuT3B0aW9uIGN1cnJlbnRseSBoYXMgYSBgYm9vbCYgdXNlc0ZhbGxiYWNrYCBw
YXJhbTsKKyAgICAgICAgd2Ugc2hvdWxkIGhhdmUgdGhlIHJldHVybiB0eXBlIHNpbXBseSBiZSBh
IFRyaVN0YXRlIGluc3RlYWQuCisKKyAgICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkludGxDb2xsYXRvcjo6aW5pdGlhbGl6ZUNvbGxhdG9yKToKKyAgICAg
ICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxE
YXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KToKKyAgICAgICAgKiBydW50
aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9ybWF0
Ojppbml0aWFsaXplTnVtYmVyRm9ybWF0KToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjppbnRsQm9vbGVhbk9wdGlvbik6CisgICAgICAgICogcnVudGlt
ZS9JbnRsT2JqZWN0Lmg6CisKIDIwMjAtMDQtMjkgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNs
aW5nQHNvbnkuY29tPgogCiAgICAgICAgIEVuc3VyZSBJbnRsIGNsYXNzZXMgZG9uJ3QgaGF2ZSBu
YW1pbmcgY29uZmxpY3RzIHdpdGggdW5pZmllZCBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCmluZGV4IDZkMzdiZjBlMzA2MzhmNDMxZDM5
ZjZiMTY4NmZlYTYyOTFmOWZjOTAuLmExMTA3ZGUwNzA1YWYxM2E2NWM4NjQ0NjBiNmFkYjI0ZDQz
M2FmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xs
YXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9y
LmNwcApAQCAtMTk5LDIyICsxOTksMTUgQEAgdm9pZCBJbnRsQ29sbGF0b3I6OmluaXRpYWxpemVD
b2xsYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGxvY2EKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogICAgIG9wdC5hZGQoImxvY2FsZU1h
dGNoZXIiX3MsIG1hdGNoZXIpOwogCi0gICAgewotICAgICAgICBTdHJpbmcgbnVtZXJpY1N0cmlu
ZzsKLSAgICAgICAgYm9vbCB1c2VzRmFsbGJhY2s7Ci0gICAgICAgIGJvb2wgbnVtZXJpYyA9IGlu
dGxCb29sZWFuT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+
bnVtZXJpYywgdXNlc0ZhbGxiYWNrKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKLSAgICAgICAgaWYgKCF1c2VzRmFsbGJhY2spCi0gICAgICAgICAgICBudW1l
cmljU3RyaW5nID0gbnVtZXJpYyA/ICJ0cnVlIl9zIDogImZhbHNlIl9zOwotICAgICAgICBpZiAo
IW51bWVyaWNTdHJpbmcuaXNOdWxsKCkpCi0gICAgICAgICAgICBvcHQuYWRkKCJrbiJfcywgbnVt
ZXJpY1N0cmluZyk7Ci0gICAgfQotICAgIHsKLSAgICAgICAgU3RyaW5nIGNhc2VGaXJzdCA9IGlu
dGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5j
YXNlRmlyc3QsIHsgInVwcGVyIiwgImxvd2VyIiwgImZhbHNlIiB9LCAiY2FzZUZpcnN0IG11c3Qg
YmUgZWl0aGVyIFwidXBwZXJcIiwgXCJsb3dlclwiLCBvciBcImZhbHNlXCIiLCBudWxscHRyKTsK
LSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICAgICAgaWYg
KCFjYXNlRmlyc3QuaXNOdWxsKCkpCi0gICAgICAgICAgICBvcHQuYWRkKCJrZiJfcywgY2FzZUZp
cnN0KTsKLSAgICB9CisgICAgVHJpU3RhdGUgbnVtZXJpYyA9IGludGxCb29sZWFuT3B0aW9uKGds
b2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bnVtZXJpYyk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAgICBpZiAobnVtZXJpYyAhPSBNaXhl
ZFRyaVN0YXRlKQorICAgICAgICBvcHQuYWRkKCJrbiJfcywgbnVtZXJpYyA9PSBUcnVlVHJpU3Rh
dGUgPyAidHJ1ZSJfcyA6ICJmYWxzZSJfcyk7CisKKyAgICBTdHJpbmcgY2FzZUZpcnN0T3B0aW9u
ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFt
ZXMtPmNhc2VGaXJzdCwgeyAidXBwZXIiLCAibG93ZXIiLCAiZmFsc2UiIH0sICJjYXNlRmlyc3Qg
bXVzdCBiZSBlaXRoZXIgXCJ1cHBlclwiLCBcImxvd2VyXCIsIG9yIFwiZmFsc2VcIiIsIG51bGxw
dHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisgICAgaWYgKCFj
YXNlRmlyc3RPcHRpb24uaXNOdWxsKCkpCisgICAgICAgIG9wdC5hZGQoImtmIl9zLCBjYXNlRmly
c3RPcHRpb24pOwogCiAgICAgYXV0byYgYXZhaWxhYmxlTG9jYWxlcyA9IGludGxDb2xsYXRvckF2
YWlsYWJsZUxvY2FsZXMoKTsKICAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFs
T2JqZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQsIEludGxDb2xs
YXRvckludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50
bENvbGxhdG9ySW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOwpA
QCAtMjQ4LDEyICsyNDEsOSBAQCB2b2lkIEludGxDb2xsYXRvcjo6aW5pdGlhbGl6ZUNvbGxhdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbG9jYQogICAgIGVsc2UKICAg
ICAgICAgbV9zZW5zaXRpdml0eSA9IFNlbnNpdGl2aXR5OjpWYXJpYW50OwogCi0gICAgYm9vbCB1
c2VzRmFsbGJhY2s7Ci0gICAgYm9vbCBpZ25vcmVQdW5jdHVhdGlvbiA9IGludGxCb29sZWFuT3B0
aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+aWdub3JlUHVuY3R1
YXRpb24sIHVzZXNGYWxsYmFjayk7CisgICAgVHJpU3RhdGUgaWdub3JlUHVuY3R1YXRpb24gPSBp
bnRsQm9vbGVhbk9wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMt
Pmlnbm9yZVB1bmN0dWF0aW9uKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lk
KCkpOwotICAgIGlmICh1c2VzRmFsbGJhY2spCi0gICAgICAgIGlnbm9yZVB1bmN0dWF0aW9uID0g
ZmFsc2U7Ci0gICAgbV9pZ25vcmVQdW5jdHVhdGlvbiA9IGlnbm9yZVB1bmN0dWF0aW9uOworICAg
IG1faWdub3JlUHVuY3R1YXRpb24gPSAoaWdub3JlUHVuY3R1YXRpb24gPT0gVHJ1ZVRyaVN0YXRl
KTsKIAogICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwogICAgIG1fY29sbGF0
b3IgPSBzdGQ6OnVuaXF1ZV9wdHI8VUNvbGxhdG9yLCBVQ29sbGF0b3JEZWxldGVyPih1Y29sX29w
ZW4obV9sb2NhbGUudXRmOCgpLmRhdGEoKSwgJnN0YXR1cykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggYjM5OTAz
ZmY3MjMxOGYwZGM2NmI2NGFjYjJhYjc5MGFkMzZlZDMxMi4uMDIzNThjODg3OWZlYTk0OTUzNmJm
MGRlZDlkMWZkY2RlYmM0Njg3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC00NjYsMTUgKzQ2NiwxNSBAQCB2b2lk
IEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgIG9wdC5hZGQoIm51Il9zLCBudW1iZXJpbmdTeXN0
ZW0pOwogICAgIH0KIAotICAgIGJvb2wgaXNIb3VyMTJVbmRlZmluZWQ7Ci0gICAgYm9vbCBob3Vy
MTIgPSBpbnRsQm9vbGVhbk9wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5
TmFtZXMtPmhvdXIxMiwgaXNIb3VyMTJVbmRlZmluZWQpOworICAgIFRyaVN0YXRlIGhvdXIxMiA9
IGludGxCb29sZWFuT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1l
cy0+aG91cjEyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworICAg
IGJvb2wgaXNIb3VyMTJVbmRlZmluZWQgPSAoaG91cjEyID09IE1peGVkVHJpU3RhdGUpOwogCiAg
ICAgU3RyaW5nIGhvdXJDeWNsZSA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRp
b25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5ob3VyQ3ljbGUsIHsgImgxMSIsICJoMTIiLCAiaDIzIiwg
ImgyNCIgfSwgImhvdXJDeWNsZSBtdXN0IGJlIFwiaDExXCIsIFwiaDEyXCIsIFwiaDIzXCIsIG9y
IFwiaDI0XCIiLCBudWxscHRyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lk
KCkpOwogICAgIGlmIChpc0hvdXIxMlVuZGVmaW5lZCkgewogICAgICAgICAvLyBTZXQgaG91cjEy
IGhlcmUgdG8gc2ltcGxpZnkgaG91ciBsb2dpYyBsYXRlci4KLSAgICAgICAgaG91cjEyID0gKGhv
dXJDeWNsZSA9PSAiaDExIiB8fCBob3VyQ3ljbGUgPT0gImgxMiIpOworICAgICAgICBob3VyMTIg
PSB0cmlTdGF0ZShob3VyQ3ljbGUgPT0gImgxMSIgfHwgaG91ckN5Y2xlID09ICJoMTIiKTsKICAg
ICAgICAgaWYgKCFob3VyQ3ljbGUuaXNOdWxsKCkpCiAgICAgICAgICAgICBvcHQuYWRkKCJoYyJf
cywgaG91ckN5Y2xlKTsKICAgICB9IGVsc2UKQEAgLTU4MiwxNCArNTgyLDE0IEBAIHZvaWQgSW50
bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICBpZiAoaG91ciA9PSAiMi1kaWdpdCIpIHsKICAgICAgICAgaWYg
KGlzSG91cjEyVW5kZWZpbmVkICYmIG1faG91ckN5Y2xlLmlzTnVsbCgpKQogICAgICAgICAgICAg
c2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoImpqIik7Ci0gICAgICAgIGVsc2UgaWYgKGhv
dXIxMikKKyAgICAgICAgZWxzZSBpZiAoaG91cjEyID09IFRydWVUcmlTdGF0ZSkKICAgICAgICAg
ICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJoaCIpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiSEgiKTsKICAgICB9IGVs
c2UgaWYgKGhvdXIgPT0gIm51bWVyaWMiKSB7CiAgICAgICAgIGlmIChpc0hvdXIxMlVuZGVmaW5l
ZCAmJiBtX2hvdXJDeWNsZS5pc051bGwoKSkKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5h
cHBlbmQoJ2onKTsKLSAgICAgICAgZWxzZSBpZiAoaG91cjEyKQorICAgICAgICBlbHNlIGlmICho
b3VyMTIgPT0gVHJ1ZVRyaVN0YXRlKQogICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVu
ZCgnaCcpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5k
KCdIJyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXQuY3BwCmluZGV4IDYwY2UxMjhjYWE5YzJkODZjZTFhMjI2ZmQzOWFiN2JjMjE4OGRjYjAu
LmE2ZWExZjUxNThlMmE3YWQ3ZGVkMDIwZDFiZjhhODVkOGRhZWJhN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCkBAIC0yODEs
MTIgKzI4MSw5IEBAIHZvaWQgSW50bE51bWJlckZvcm1hdDo6aW5pdGlhbGl6ZU51bWJlckZvcm1h
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhCiAgICAgICAgIG1fbWF4aW11bVNp
Z25pZmljYW50RGlnaXRzID0gbWF4aW11bVNpZ25pZmljYW50RGlnaXRzOwogICAgIH0KIAotICAg
IGJvb2wgdXNlc0ZhbGxiYWNrOwotICAgIGJvb2wgdXNlR3JvdXBpbmcgPSBpbnRsQm9vbGVhbk9w
dGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ1
c2VHcm91cGluZyIpLCB1c2VzRmFsbGJhY2spOworICAgIFRyaVN0YXRlIHVzZUdyb3VwaW5nID0g
aW50bEJvb2xlYW5PcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAidXNlR3JvdXBpbmciKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKLSAgICBpZiAodXNlc0ZhbGxiYWNrKQotICAgICAgICB1c2VHcm91cGluZyA9
IHRydWU7Ci0gICAgbV91c2VHcm91cGluZyA9IHVzZUdyb3VwaW5nOworICAgIG1fdXNlR3JvdXBp
bmcgPSB1c2VHcm91cGluZyAhPSBGYWxzZVRyaVN0YXRlOwogCiAgICAgVU51bWJlckZvcm1hdFN0
eWxlIHN0eWxlID0gVU5VTV9ERUZBVUxUOwogICAgIHN3aXRjaCAobV9zdHlsZSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCA4OGYxOTcwYWQw
NGMyNzk4NTI0ZTAyNWE0YTUxOWNkMWYxNzZhYTZmLi5mMjNkOWVkOTU0ZDhmOTkwMWM2YzY1ZDkw
OGU4N2NjMGM1NjdiZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
T2JqZWN0LmNwcApAQCAtMjAyLDM0ICsyMDIsMjUgQEAgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBp
bnRsQ29sbGF0b3JBdmFpbGFibGVMb2NhbGVzKCkKICAgICByZXR1cm4gYXZhaWxhYmxlTG9jYWxl
czsKIH0KIAotYm9vbCBpbnRsQm9vbGVhbk9wdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIG9wdGlvbnMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eSwgYm9vbCYgdXNlc0Zh
bGxiYWNrKQorLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1nZXRvcHRpb24KK1RyaVN0
YXRlIGludGxCb29sZWFuT3B0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgb3B0aW9ucywgUHJvcGVydHlOYW1lIHByb3BlcnR5KQogewotICAgIC8vIEdldE9wdGlvbiAo
b3B0aW9ucywgcHJvcGVydHksIHR5cGU9ImJvb2xlYW4iLCB2YWx1ZXMsIGZhbGxiYWNrKQotICAg
IC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTQwMi8jc2VjLWdldG9wdGlvbgotCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAotICAgIGlmIChvcHRpb25zLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAg
ICAgdXNlc0ZhbGxiYWNrID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAg
ICBpZiAob3B0aW9ucy5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0
ZTsKIAogICAgIEpTT2JqZWN0KiBvcHRzID0gb3B0aW9ucy50b09iamVjdChnbG9iYWxPYmplY3Qp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBNaXhlZFRyaVN0YXRlKTsKIAogICAgIEpTVmFsdWUgdmFsdWUgPSBv
cHRzLT5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZmFsc2UpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIE1peGVkVHJp
U3RhdGUpOwogCi0gICAgaWYgKCF2YWx1ZS5pc1VuZGVmaW5lZCgpKSB7Ci0gICAgICAgIGJvb2wg
Ym9vbGVhblZhbHVlID0gdmFsdWUudG9Cb29sZWFuKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHVz
ZXNGYWxsYmFjayA9IGZhbHNlOwotICAgICAgICByZXR1cm4gYm9vbGVhblZhbHVlOwotICAgIH0K
KyAgICBpZiAodmFsdWUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgcmV0dXJuIE1peGVkVHJpU3Rh
dGU7CiAKLSAgICAvLyBCZWNhdXNlIGZhbGxiYWNrIGNhbiBiZSB1bmRlZmluZWQsIHdlIGxldCB0
aGUgY2FsbGVyIGhhbmRsZSBpdCBpbnN0ZWFkLgotICAgIHVzZXNGYWxsYmFjayA9IHRydWU7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cmlTdGF0ZSh2YWx1ZS50b0Jvb2xlYW4oZ2xv
YmFsT2JqZWN0KSk7CiB9CiAKIFN0cmluZyBpbnRsU3RyaW5nT3B0aW9uKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgb3B0aW9ucywgUHJvcGVydHlOYW1lIHByb3BlcnR5LCBz
dGQ6OmluaXRpYWxpemVyX2xpc3Q8Y29uc3QgY2hhcio+IHZhbHVlcywgY29uc3QgY2hhciogbm90
Rm91bmQsIGNvbnN0IGNoYXIqIGZhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE9iamVjdC5oCmluZGV4IGYxMTIyZjQxMzljMWE4M2Y0NWYxOWQyMGQ5YjJmODE3MDEw
MjhmMGYuLjViNzhlYmM5ODUyOGYxN2E1MGJjYjY0OGMyNGFkMTdhNjZhMzVmY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKQEAgLTY0LDcgKzY0LDcgQEAg
aW5saW5lIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgaW50bE51bWJlckZvcm1hdEF2YWlsYWJsZUxv
Y2FsZXMoKSB7IHJldHVybiBpbnRsQXYKIGlubGluZSBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGlu
dGxQbHVyYWxSdWxlc0F2YWlsYWJsZUxvY2FsZXMoKSB7IHJldHVybiBpbnRsQXZhaWxhYmxlTG9j
YWxlcygpOyB9CiBpbmxpbmUgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBpbnRsUmVsYXRpdmVUaW1l
Rm9ybWF0QXZhaWxhYmxlTG9jYWxlcygpIHsgcmV0dXJuIGludGxBdmFpbGFibGVMb2NhbGVzKCk7
IH0KIAotYm9vbCBpbnRsQm9vbGVhbk9wdGlvbihKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgb3B0
aW9ucywgUHJvcGVydHlOYW1lLCBib29sJiB1c2VzRmFsbGJhY2spOworVHJpU3RhdGUgaW50bEJv
b2xlYW5PcHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIG9wdGlvbnMsIFByb3BlcnR5TmFt
ZSk7CiBTdHJpbmcgaW50bFN0cmluZ09wdGlvbihKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgb3B0
aW9ucywgUHJvcGVydHlOYW1lLCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y29uc3QgY2hhcio+IHZh
bHVlcywgY29uc3QgY2hhciogbm90Rm91bmQsIGNvbnN0IGNoYXIqIGZhbGxiYWNrKTsKIHVuc2ln
bmVkIGludGxOdW1iZXJPcHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIG9wdGlvbnMsIFBy
b3BlcnR5TmFtZSwgdW5zaWduZWQgbWluaW11bSwgdW5zaWduZWQgbWF4aW11bSwgdW5zaWduZWQg
ZmFsbGJhY2spOwogdW5zaWduZWQgaW50bERlZmF1bHROdW1iZXJPcHRpb24oSlNHbG9iYWxPYmpl
Y3QqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIG1pbmltdW0sIHVuc2lnbmVkIG1h
eGltdW0sIHVuc2lnbmVkIGZhbGxiYWNrKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>