<?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>26371</bug_id>
          
          <creation_ts>2009-06-13 08:53:44 -0700</creation_ts>
          <short_desc>SVGLangSpace duplicates xml:lang and xml:space values</short_desc>
          <delta_ts>2022-07-15 23:01:39 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=118170</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=203280</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rwlbuis</reporter>
          <assigned_to name="Rob Buis">rwlbuis</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>eric</cc>
    
    <cc>kling</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>125628</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2009-06-13 08:53:44 -0700</bug_when>
    <thetext>SVGLangSpace basically copies the xml:lang and xml:space attribute values into its own member vars. Instead it can just ask the current values of these attributes when needed, when having a contextElement
construction like already present in other base classes. Note also that xmlbase implementation in SVGStyleElement works that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125632</commentid>
    <comment_count>1</comment_count>
      <attachid>31239</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2009-06-13 09:29:10 -0700</bug_when>
    <thetext>Created attachment 31239
First attempt

Here is an enhancement for SVGLangSpace. Note that FF, Opera and Batik do not seem to know the js
attributes xmllang and xmlspace at all, so it is hard to compare. Also really exceptions should be thrown when the attribute is set, but I think due to a bug that objC interfaces can&apos;t handle the idl setting of raises exception, that that may depend on another bug. I dont think this fixes a big issue but the old implementation wasted memory and processing time IMHO. All tests still pass, also because we do not really test these attributes except for one SVG text test.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126717</commentid>
    <comment_count>2</comment_count>
      <attachid>31239</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-06-18 10:10:03 -0700</bug_when>
    <thetext>Comment on attachment 31239
First attempt

Hi Rob,

nice patch, going in the right direction :-)

&gt; -void SVGElement::setXmlbase(const String&amp; value, ExceptionCode&amp;)
&gt; +void SVGElement::setXmlbase(const String&amp;, ExceptionCode&amp; ec)
&gt;  {
&gt; -    setAttribute(XMLNames::baseAttr, value);
&gt; +    //setAttribute(XMLNames::baseAttr, value);
&gt; +    ec = NO_MODIFICATION_ALLOWED_ERR;
&gt;  }
Is that change related? It contains commented code, hence I&apos;m wondering.
I guess you wanted to fix &quot;attribute [ConvertNullToNullString] DOMString xmlbase setter raises(DOMException);&quot;

I&apos;d rather commit this in a seperated patch with an associated testcase.

&gt; -void SVGLangSpace::setXmllang(const AtomicString&amp; xmlLang)
&gt; +void SVGLangSpace::setXmllang(const AtomicString&amp;/*, ExceptionCode &amp;ec*/)
&gt;  {
&gt; -    m_lang = xmlLang;
&gt; +    //ec = NO_MODIFICATION_ALLOWED_ERR;
&gt;  }
This either needs to throw an exception (then we need to correct the SVGLangSpace.idl file as well, fixing the commented out &quot;setter raises...&quot; lines).
I guess this is what W3C says IIRC. If you go for that, we need a testcase. If you&apos;re on this anyway, I think it would make sense to go for that...

&gt;  const AtomicString&amp; SVGLangSpace::xmlspace() const
&gt;  {
&gt; -    if (!m_space) {
&gt; -        DEFINE_STATIC_LOCAL(const AtomicString, defaultString, (&quot;default&quot;));
&gt; -        return defaultString;
&gt; -    }
&gt; -
&gt; -    return m_space;
&gt; -}
&gt; -
&gt; -void SVGLangSpace::setXmlspace(const AtomicString&amp; xmlSpace)
&gt; -{
&gt; -    m_space = xmlSpace;
&gt; +    return contextElement()-&gt;getAttribute(XMLNames::spaceAttr);
&gt;  }
&gt;  
&gt; -bool SVGLangSpace::parseMappedAttribute(MappedAttribute* attr)
&gt; +void SVGLangSpace::setXmlspace(const AtomicString&amp;/*, ExceptionCode&amp; ec*/)
&gt;  {
&gt; -    if (attr-&gt;name().matches(XMLNames::langAttr)) {
&gt; -        setXmllang(attr-&gt;value());
&gt; -        return true;
&gt; -    } else if (attr-&gt;name().matches(XMLNames::spaceAttr)) {
&gt; -        setXmlspace(attr-&gt;value());
&gt; -        return true;
&gt; -    }
&gt; -
&gt; -    return false;
&gt; + //   ec = NO_MODIFICATION_ALLOWED_ERR;
&gt;  }
Same comment as above.

Everything else looks fine. Because of lacking testcases setting r- to clear it out the review queue for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622608</commentid>
    <comment_count>3</comment_count>
      <attachid>141628</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-13 19:06:02 -0700</bug_when>
    <thetext>Created attachment 141628
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622616</commentid>
    <comment_count>4</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-13 19:21:06 -0700</bug_when>
    <thetext>I checked, but on svg/dom/SVGStyleElement/script-tests/style-langspace.js Mozilla and Opera do not throw exceptions either and allow setting of the attributes, so I ignore the exception stuff for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684680</commentid>
    <comment_count>5</comment_count>
      <attachid>141628</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-01 15:50:28 -0700</bug_when>
    <thetext>Comment on attachment 141628
Patch

LGTM.  Unclear to me why isKnownAttribute is needed for the early returns.  It would also be OK to let execution continue and just fall off the end of parseMappedAttribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684720</commentid>
    <comment_count>6</comment_count>
      <attachid>141628</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 16:09:35 -0700</bug_when>
    <thetext>Comment on attachment 141628
Patch

Rejecting attachment 141628 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
 at 128 (offset -1 lines).
patching file Source/WebCore/svg/SVGTitleElement.h
patching file Source/WebCore/svg/SVGUseElement.cpp
Hunk #1 FAILED at 158.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/svg/SVGUseElement.cpp.rej
patching file Source/WebCore/svg/SVGUseElement.h
Hunk #1 succeeded at 130 (offset 2 lines).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Eric Seidel&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/13421215</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798482</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-01-01 16:14:39 -0800</bug_when>
    <thetext>This looks like a nice improvement, do you plan to fix it up and land it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1884491</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-07-15 17:40:20 -0700</bug_when>
    <thetext>This code was refactored and removed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31239</attachid>
            <date>2009-06-13 09:29:10 -0700</date>
            <delta_ts>2012-05-13 19:05:02 -0700</delta_ts>
            <desc>First attempt</desc>
            <filename>26371.diff</filename>
            <type>text/plain</type>
            <size>20433</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWUyMjgxZS4uYmE3ZmJjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAwOS0wNi0xMyAgUm9iIEJ1aXMgIDxy
d2xidWlzQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNYWtlIFNWR0xhbmdTcGFjZSBpbnRlcmZhY2UgdXNlIGdldEF0dHJpYnV0ZSBp
bnN0ZWFkIG9mIHN0b3JpbmcgYSBkdXBsaWNhdGVkIHZhbHVlIGZvciBlYWNoIFNWRyBlbGVtZW50
LgorCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisg
ICAgICAgICogc3ZnL1NWR0FFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQ2xpcFBhdGhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6Cisg
ICAgICAgICogc3ZnL1NWR0Rlc2NFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdEZXNj
RWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdFbGxpcHNlRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGxpcHNlRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Zp
bHRlckVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9y
ZWlnbk9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKToKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ltYWdlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2
Zy9TVkdMYW5nU3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGFuZ1NwYWNlOjp4bWxs
YW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xhbmdTcGFjZTo6c2V0WG1sbGFuZyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMYW5nU3BhY2U6OnhtbHNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xhbmdTcGFjZTo6c2V0WG1sc3BhY2UpOgorICAgICAgICAqIHN2Zy9TVkdMYW5nU3BhY2Uu
aDoKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGluZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
TWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50Ojpw
YXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdGhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1Bh
dHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdHRlcm5FbGVtZW50Ojpw
YXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1BvbHlFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR1JlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1JlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1NW
R0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1N0eWxlZEVsZW1lbnQ6OmlzS25vd25BdHRyaWJ1dGUpOgorICAgICAg
ICAqIHN2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N5bWJv
bEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUaXRsZUVsZW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RpdGxlRWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgor
ICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Vz
ZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKwogMjAwOS0wNi0wNiAgUm9iIEJ1aXMg
IDxyd2xidWlzQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3Zn
L1NWR0FFbGVtZW50LmNwcAppbmRleCA2ZmQwMjc0Li4zNTc1YzAzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3Bw
CkBAIC03NCw4ICs3NCw2IEBAIHZvaWQgU1ZHQUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYg
KFNWR1Rlc3RzOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikp
Ci0gICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKGF0dHIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAg
Yi9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAppbmRleCAwYzQ4ZjUxLi43ZGExMGI2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAorKysgYi9XZWJD
b3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcApAQCAtNjEsOCArNjEsNiBAQCB2b2lkIFNWR0Np
cmNsZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikK
ICAgICB9IGVsc2UgewogICAgICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpw
YXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
aWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0
dHIpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVt
ZW50LmNwcAppbmRleCA2OTFlNGQ1Li40YjRlNDM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVu
dC5jcHAKQEAgLTU3LDggKzU3LDYgQEAgdm9pZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAoU1ZHVGVzdHM6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShh
dHRyKSkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoYXR0cik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5o
IGIvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAppbmRleCBjOGJjNTAxLi5lMTdlNWRjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvc3Zn
L1NWR0Rlc2NFbGVtZW50LmgKQEAgLTM4LDYgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAg
ICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5jcHAKaW5kZXggM2E3ZDNkNC4uMTExZTUzNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAK
QEAgLTg3LDkgKzg3LDEwIEBAIFN0cmluZyBTVkdFbGVtZW50Ojp4bWxiYXNlKCkgY29uc3QKICAg
ICByZXR1cm4gZ2V0QXR0cmlidXRlKFhNTE5hbWVzOjpiYXNlQXR0cik7CiB9CiAKLXZvaWQgU1ZH
RWxlbWVudDo6c2V0WG1sYmFzZShjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJikK
K3ZvaWQgU1ZHRWxlbWVudDo6c2V0WG1sYmFzZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBzZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmJhc2VBdHRyLCB2YWx1ZSk7Cisg
ICAgLy9zZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmJhc2VBdHRyLCB2YWx1ZSk7CisgICAgZWMgPSBO
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlI7CiB9CiAKIFNWR1NWR0VsZW1lbnQqIFNWR0VsZW1l
bnQ6Om93bmVyU1ZHRWxlbWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdF
bGxpcHNlRWxlbWVudC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKaW5k
ZXggNmQ1NmZmOC4uNThkMmQ5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcApAQCAtNjYs
OCArNjYsNiBAQCB2b2lkIFNWR0VsbGlwc2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShN
YXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKFNWR1Rlc3Rz
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCi0gICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpw
YXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvV2ViQ29y
ZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGFlNjllMGQuLmQ1ODY3Y2EgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2
Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTcxLDggKzcxLDYgQEAgdm9pZCBTVkdGRUltYWdl
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChT
VkdMYW5nU3BhY2U6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQotICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5jcHAKaW5kZXggNzcwM2I2Zi4uOTRiNzE5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5j
cHAKQEAgLTkxLDggKzkxLDYgQEAgdm9pZCBTVkdGaWx0ZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiAgICAgZWxzZSB7CiAgICAgICAgIGlmIChT
VkdVUklSZWZlcmVuY2U6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShh
dHRyKSkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5j
cHAgYi9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggNWNmY2E4
YS4uNWM1MTk3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApAQCAt
NjQsOCArNjQsNiBAQCB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiAgICAgZWxzZSB7CiAgICAgICAgIGlmIChT
VkdUZXN0czo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQot
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcCBiL1dlYkNv
cmUvc3ZnL1NWR0dFbGVtZW50LmNwcAppbmRleCAyYjUwZDc0Li5mNmJkYTBlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHR0VsZW1l
bnQuY3BwCkBAIC00NSw4ICs0NSw2IEBAIHZvaWQgU1ZHR0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFNWR0xhbmdT
cGFjZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCi0gICAgICAgIHJldHVybjsKICAgICBp
ZiAoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0
cikpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VF
bGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggOWFmZjkz
ZC4uNjZlODcwNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAor
KysgYi9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCkBAIC03OSw4ICs3OSw2IEBAIHZv
aWQgU1ZHSW1hZ2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUg
KmF0dHIpCiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKFNWR1Rlc3RzOjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKFNWR0xhbmdT
cGFjZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCi0gICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKFNWR1VSSVJlZmVy
ZW5jZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2
Zy9TVkdMYW5nU3BhY2UuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHTGFuZ1NwYWNlLmNwcAppbmRleCBk
NDllMDlhLi5mMTk5NWMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3Bw
CisrKyBiL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgog
ICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIw
MDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDkgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC00Miw0MCArNDIsMjIgQEAgU1ZHTGFuZ1NwYWNl
Ojp+U1ZHTGFuZ1NwYWNlKCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdMYW5nU3BhY2U6Onht
bGxhbmcoKSBjb25zdAogewotICAgIHJldHVybiBtX2xhbmc7CisgICAgcmV0dXJuIGNvbnRleHRF
bGVtZW50KCktPmdldEF0dHJpYnV0ZShYTUxOYW1lczo6bGFuZ0F0dHIpOwogfQogCi12b2lkIFNW
R0xhbmdTcGFjZTo6c2V0WG1sbGFuZyhjb25zdCBBdG9taWNTdHJpbmcmIHhtbExhbmcpCit2b2lk
IFNWR0xhbmdTcGFjZTo6c2V0WG1sbGFuZyhjb25zdCBBdG9taWNTdHJpbmcmLyosIEV4Y2VwdGlv
bkNvZGUgJmVjKi8pCiB7Ci0gICAgbV9sYW5nID0geG1sTGFuZzsKKyAgICAvL2VjID0gTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0xhbmdT
cGFjZTo6eG1sc3BhY2UoKSBjb25zdAogewotICAgIGlmICghbV9zcGFjZSkgewotICAgICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFN0cmluZywgKCJk
ZWZhdWx0IikpOwotICAgICAgICByZXR1cm4gZGVmYXVsdFN0cmluZzsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gbV9zcGFjZTsKLX0KLQotdm9pZCBTVkdMYW5nU3BhY2U6OnNldFhtbHNwYWNlKGNvbnN0
IEF0b21pY1N0cmluZyYgeG1sU3BhY2UpCi17Ci0gICAgbV9zcGFjZSA9IHhtbFNwYWNlOworICAg
IHJldHVybiBjb250ZXh0RWxlbWVudCgpLT5nZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OnNwYWNlQXR0
cik7CiB9CiAKLWJvb2wgU1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRB
dHRyaWJ1dGUqIGF0dHIpCit2b2lkIFNWR0xhbmdTcGFjZTo6c2V0WG1sc3BhY2UoY29uc3QgQXRv
bWljU3RyaW5nJi8qLCBFeGNlcHRpb25Db2RlJiBlYyovKQogewotICAgIGlmIChhdHRyLT5uYW1l
KCkubWF0Y2hlcyhYTUxOYW1lczo6bGFuZ0F0dHIpKSB7Ci0gICAgICAgIHNldFhtbGxhbmcoYXR0
ci0+dmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAoYXR0ci0+
bmFtZSgpLm1hdGNoZXMoWE1MTmFtZXM6OnNwYWNlQXR0cikpIHsKLSAgICAgICAgc2V0WG1sc3Bh
Y2UoYXR0ci0+dmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJl
dHVybiBmYWxzZTsKKyAvLyAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogfQog
CiBib29sIFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5oIGIvV2Vi
Q29yZS9zdmcvU1ZHTGFuZ1NwYWNlLmgKaW5kZXggZGY4NjA2ZS4uYTNlZjIyNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9zdmcvU1ZHTGFuZ1NwYWNlLmgKKysrIGIvV2ViQ29yZS9zdmcvU1ZHTGFuZ1Nw
YWNlLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwNywgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KLSAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAg
ICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDkgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAogCkBAIC0y
NSwxMCArMjUsMTAgQEAKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5n
LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAg
ICBjbGFzcyBNYXBwZWRBdHRyaWJ1dGU7CiAgICAgY2xhc3MgUXVhbGlmaWVkTmFtZTsKIAogICAg
IGNsYXNzIFNWR0xhbmdTcGFjZSB7CkBAIC0zNywxNyArMzcsMTQgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2aXJ0dWFsIH5TVkdMYW5nU3BhY2UoKTsKIAogICAgICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIHhtbGxhbmcoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRYbWxsYW5nKGNv
bnN0IEF0b21pY1N0cmluZyYgeG1sTGFuZyk7CisgICAgICAgIHZvaWQgc2V0WG1sbGFuZyhjb25z
dCBBdG9taWNTdHJpbmcmIC8qLCBFeGNlcHRpb25Db2RlJiovKTsKIAogICAgICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIHhtbHNwYWNlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0WG1sc3BhY2Uo
Y29uc3QgQXRvbWljU3RyaW5nJiB4bWxTcGFjZSk7CisgICAgICAgIHZvaWQgc2V0WG1sc3BhY2Uo
Y29uc3QgQXRvbWljU3RyaW5nJiAvKiwgRXhjZXB0aW9uQ29kZSYgKi8pOwogCi0gICAgICAgIGJv
b2wgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CiAgICAgICAgIGJvb2wg
aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKLSAgICBwcml2YXRlOgot
ICAgICAgICBBdG9taWNTdHJpbmcgbV9sYW5nOwotICAgICAgICBBdG9taWNTdHJpbmcgbV9zcGFj
ZTsKKyAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNv
bnN0ID0gMDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVu
dC5jcHAKaW5kZXggMTdjMTEwYy4uN2M0NWVmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZH
TGluZUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcApAQCAt
NjMsOCArNjMsNiBAQCB2b2lkIFNWR0xpbmVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShN
YXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiAgICAgewogICAgICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAo
U1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKLSAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBTVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCmluZGV4IDU1ODA5OTMuLmYwZjJmMjIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR01hcmtl
ckVsZW1lbnQuY3BwCkBAIC05MCw4ICs5MCw2IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQogCiAgICAgICAgIHNldE9y
aWVudEFuZ2xlQmFzZVZhbHVlKGFuZ2xlLmdldCgpKTsKICAgICB9IGVsc2UgewotICAgICAgICBp
ZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKLSAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
U1ZHRml0VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVt
ZW50LmNwcAppbmRleCA1OWE1ZTAxLi4wMTIzYWQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCkBA
IC04OSw4ICs4OSw2IEBAIHZvaWQgU1ZHTWFza0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYg
KFNWR1Rlc3RzOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikp
Ci0gICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgU1ZHU3R5bGVkRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9XZWJDb3JlL3N2Zy9T
VkdQYXRoRWxlbWVudC5jcHAKaW5kZXggMTcyY2FjMS4uNmFkNzY2NyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVt
ZW50LmNwcApAQCAtMTg0LDggKzE4NCw2IEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAoU1ZHVGVzdHM6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShh
dHRyKSkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoYXR0cik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVu
dC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKaW5kZXggY2ZhZTQyNS4u
ZjViZmE0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCisr
KyBiL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcApAQCAtMTA2LDggKzEwNiw2IEBA
IHZvaWQgU1ZHUGF0dGVybkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJp
YnV0ZSogYXR0cikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKFNWR1Rlc3RzOjpw
YXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
aWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCi0gICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYg
KFNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxl
bWVudC5jcHAKaW5kZXggZGIzOWM1Mi4uOGRkNWNiMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcApA
QCAtNzcsOCArNzcsNiBAQCB2b2lkIFNWR1BvbHlFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKFNWR1Rl
c3RzOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCi0gICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0
dHIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvV2ViQ29y
ZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCmluZGV4IGJmYjYyMDUuLjIyZjNjMWUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdS
ZWN0RWxlbWVudC5jcHAKQEAgLTc1LDggKzc1LDYgQEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGlmIChTVkdUZXN0czo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKGF0dHIpKQotICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZShhdHRyKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKaW5kZXggZmNlY2Q4Yy4uYWJk
NzlmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvV2Vi
Q29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTI1Nyw4ICsyNTcsNiBAQCB2b2lkIFNWR1NW
R0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKICAg
ICB9IGVsc2UgewogICAgICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0
dHIpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYg
KFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoU1ZHRml0VG9WaWV3Qm94OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1N0eWxl
ZEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKaW5kZXggOThi
NjQ1OS4uMDE0NjdmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4NSw4ICsxODUs
NyBAQCB2b2lkIFNWR1N0eWxlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0
dHJpYnV0ZSogYXR0cikKIGJvb2wgU1ZHU3R5bGVkRWxlbWVudDo6aXNLbm93bkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICAvLyBSZWNvZ25pemUgYWxsIHN0
eWxlIHJlbGF0ZWQgU1ZHIENTUyBwcm9wZXJ0aWVzCi0gICAgaW50IHByb3BJZCA9IFNWR1N0eWxl
ZEVsZW1lbnQ6OmNzc1Byb3BlcnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKGF0dHJOYW1lKTsKLSAg
ICBpZiAocHJvcElkID4gMCkKKyAgICBpZiAoU1ZHU3R5bGVkRWxlbWVudDo6Y3NzUHJvcGVydHlJ
ZEZvclNWR0F0dHJpYnV0ZU5hbWUoYXR0ck5hbWUpID4gMCkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKICAgICByZXR1cm4gKGF0dHJOYW1lID09IEhUTUxOYW1lczo6aWRBdHRyIHx8IGF0dHJOYW1l
ID09IEhUTUxOYW1lczo6c3R5bGVBdHRyKTsgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdT
eW1ib2xFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCmluZGV4
IDA3M2ExM2QuLjMzZjJkZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1l
bnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCkBAIC00Myw4ICs0
Myw2IEBAIFNWR1N5bWJvbEVsZW1lbnQ6On5TVkdTeW1ib2xFbGVtZW50KCkKIAogdm9pZCBTVkdT
eW1ib2xFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIp
CiB7Ci0gICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCi0g
ICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHRml0
VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuY3BwCmluZGV4IDA2N2YzNWYuLjQ4ODcyZTcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcApAQCAtNDk4LDE1ICs0OTgsMTMgQEAgdm9pZCBTVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikK
ICAgICB9IGVsc2UgewogICAgICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpw
YXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkgewotICAgICAgICAgICAgaWYgKGF0dHItPm5hbWUo
KS5tYXRjaGVzKFhNTE5hbWVzOjpzcGFjZUF0dHIpKSB7Ci0gICAgICAgICAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHByZXNlcnZlU3RyaW5nLCAoInByZXNl
cnZlIikpOwotCi0gICAgICAgICAgICAgICAgaWYgKGF0dHItPnZhbHVlKCkgPT0gcHJlc2VydmVT
dHJpbmcpCi0gICAgICAgICAgICAgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU1Byb3Bl
cnR5V2hpdGVTcGFjZSwgQ1NTVmFsdWVQcmUpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0ciwgQ1NTUHJvcGVydHlXaGl0ZVNwYWNl
LCBDU1NWYWx1ZU5vd3JhcCk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGlmIChhdHRyLT5uYW1l
KCkubWF0Y2hlcyhYTUxOYW1lczo6c3BhY2VBdHRyKSkgeworICAgICAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHByZXNlcnZlU3RyaW5nLCAoInByZXNlcnZl
IikpOworCisgICAgICAgICAgICBpZiAoYXR0ci0+dmFsdWUoKSA9PSBwcmVzZXJ2ZVN0cmluZykK
KyAgICAgICAgICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdoaXRlU3Bh
Y2UsIENTU1ZhbHVlUHJlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBhZGRD
U1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1ZhbHVlTm93cmFwKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaCBiL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxl
bWVudC5oCmluZGV4IGNkNDc2OGMuLjVkMWJkZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NW
R1RpdGxlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCkBAIC00
MCw2ICs0MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAgICAgIHZpcnR1YWwgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hh
bmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7
CiAKICAgICAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7
IHJldHVybiBmYWxzZTsgfQorICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiAgICAgfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBiNzNhNjky
Li5iYTgyNjFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysg
Yi9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtOTksOCArOTksNiBAQCB2b2lkIFNW
R1VzZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikK
ICAgICB9IGVsc2UgewogICAgICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpw
YXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
aWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0
dHIpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjpw
YXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141628</attachid>
            <date>2012-05-13 19:06:02 -0700</date>
            <delta_ts>2012-08-01 16:09:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26371-20120513220550.patch</filename>
            <type>text/plain</type>
            <size>41086</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM1YmExNjljMGY0ODdi
ZDUwODBlMDNlNjQwMzg3MmI4NzNkMGMxMi4uMWQ1MmU3ZGZmYWMyMDZlMDQ0YjAyOThmMDlhYTI3
MTBkMGFkNTU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0NCBAQAogMjAxMi0wNS0xMyAgUm9i
IEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCisgICAgICAgIFNWR0xhbmdTcGFjZSBkdXBsaWNhdGVz
IHhtbDpsYW5nIGFuZCB4bWw6c3BhY2UgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgU1ZHTGFuZ1NwYWNlIGludGVyZmFjZSB1c2UgZ2V0
QXR0cmlidXRlL3NldEF0dHJpYnV0ZSBpbnN0ZWFkIG9mIHN0b3JpbmcgYSBkdXBsaWNhdGVkIHZh
bHVlIGZvciBlYWNoIFNWRyBlbGVtZW50LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgc2luY2Ug
bm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogc3ZnL1NWR0FFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAg
ICogc3ZnL1NWR0FFbGVtZW50Lmg6CisgICAgICAgIChTVkdBRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBRWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdD
aXJjbGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NpcmNsZUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5oOgorICAgICAg
ICAoU1ZHQ2lyY2xlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdDaXJjbGVFbGVtZW50
Ojpjb250ZXh0RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdDbGlwUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAgIChTVkdDbGlwUGF0
aEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBhdGhFbGVtZW50Ojpjb250ZXh0
RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0RlZnNFbGVtZW50Lmg6CisgICAgICAgIChTVkdE
ZWZzRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdEZWZzRWxlbWVudDo6Y29udGV4dEVs
ZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdEZXNjRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRGVzY0VsZW1lbnQ6On5TVkdEZXNjRWxlbWVudCk6CisgICAgICAgIChTVkdEZXNjRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdEZXNjRWxlbWVudDo6Y29udGV4dEVsZW1lbnQp
OgorICAgICAgICAqIHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdFbGxpcHNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdF
bGxpcHNlRWxlbWVudC5oOgorICAgICAgICAoU1ZHRWxsaXBzZUVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRWxsaXBzZUVsZW1lbnQ6OmNvbnRleHRFbGVtZW50KToKKyAgICAgICAgKiBz
dmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aDoKKyAgICAgICAgKFNWR0ZFSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
SW1hZ2VFbGVtZW50Ojpjb250ZXh0RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50Lmg6CisgICAgICAgIChTVkdG
aWx0ZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmNvbnRl
eHRFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KToKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKFNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50Ojpjb250ZXh0RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0dFbGVtZW50Lmg6CisgICAgICAgIChTVkdHRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdHRWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9T
VkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5oOgorICAgICAg
ICAoU1ZHSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlRWxlbWVudDo6
Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdMYW5nU3BhY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGFuZ1NwYWNlOjp4bWxsYW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xhbmdTcGFjZTo6c2V0WG1sbGFuZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMYW5nU3BhY2U6
OnhtbHNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xhbmdTcGFjZTo6c2V0WG1sc3BhY2Up
OgorICAgICAgICAqIHN2Zy9TVkdMYW5nU3BhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGFuZ1NwYWNlOjp+U1ZHTGFuZ1NwYWNlKToKKyAgICAgICAgKFNW
R0xhbmdTcGFjZSk6CisgICAgICAgICogc3ZnL1NWR0xpbmVFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpbmVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3Zn
L1NWR0xpbmVFbGVtZW50Lmg6CisgICAgICAgIChTVkdMaW5lRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMaW5lRWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9T
VkdNYXJrZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAg
ICAgICAoU1ZHTWFya2VyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVt
ZW50Ojpjb250ZXh0RWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR01hc2tFbGVtZW50Lmg6CisgICAgICAgIChTVkdNYXNrRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdNYXNrRWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAgICAg
ICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5oOgor
ICAgICAgICAoU1ZHUGF0aEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1l
bnQ6OmNvbnRleHRFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0dGVybkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuaDoKKyAgICAgICAgKFNWR1BhdHRlcm5F
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdHRlcm5FbGVtZW50Ojpjb250ZXh0RWxl
bWVudCk6CisgICAgICAgICogc3ZnL1NWR1BvbHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1Bv
bHlFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6Y29udGV4dEVs
ZW1lbnQpOgorICAgICAgICAoU1ZHUG9seUVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdSZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5oOgorICAgICAgICAoU1ZHUmVj
dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdEVsZW1lbnQ6OmNvbnRleHRFbGVt
ZW50KToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1NWR0Vs
ZW1lbnQuaDoKKyAgICAgICAgKFNWR1NWR0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U1ZHRWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdTdHlsZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZSk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgorICAgICAgICAoU1ZHU3R5bGVF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6Y29udGV4dEVsZW1l
bnQpOgorICAgICAgICAqIHN2Zy9TVkdTd2l0Y2hFbGVtZW50Lmg6CisgICAgICAgIChTVkdTd2l0
Y2hFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N3aXRjaEVsZW1lbnQ6OmNvbnRleHRF
bGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTeW1ib2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3Zn
L1NWR1N5bWJvbEVsZW1lbnQuaDoKKyAgICAgICAgKFNWR1N5bWJvbEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU3ltYm9sRWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAq
IHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4
dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5oOgorICAgICAgICAoU1ZHVGV4dENvbnRlbnRFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Y29udGV4dEVsZW1lbnQpOgorICAg
ICAgICAqIHN2Zy9TVkdUaXRsZUVsZW1lbnQuaDoKKyAgICAgICAgKFNWR1RpdGxlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUaXRsZUVsZW1lbnQ6OmNvbnRleHRFbGVtZW50KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoK
KyAgICAgICAgKFNWR1VzZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVu
dDo6Y29udGV4dEVsZW1lbnQpOgorCisyMDEyLTA1LTEzICBSb2IgQnVpcyAgPHJidWlzQHJpbS5j
b20+CisKICAgICAgICAgVXNlIGVtcHR5U3RyaW5nIGluc3RlYWQgb2YgU3RyaW5nKCIiKQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYzMDUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5kZXggYzhiYTUzM2UwZTk5MGZjMTg5ZjRhMjJhMzNk
MDljZmI2YWFkNjJhZC4uYTc0OWFkZDU5ZmVmYTMxYjhmODY4OTlhZTI4MWZkZTdiYjM4NDg2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBT
VkdBRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgcmV0
dXJuOwotICAgIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKGF0dHIpKQorICAgIGlm
IChTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ci0+bmFtZSgpKSkKICAgICAgICAg
cmV0dXJuOwogICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJp
YnV0ZShhdHRyKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAppbmRl
eCA3MmFmZGVjMTI0YjVhM2EyZTk5ZWM2NTRmY2NlZjNhMDJiNTJmOTMyLi4yMTJhZjYxNTcwMjMy
Y2VkMDMxMjJlYzA5ZWJlYjcxNDhlM2I1YjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaApA
QCAtNzgsNiArNzgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJl
cXVpcmVkRmVhdHVyZXMoKSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMo
dGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnMo
KSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5zaW9ucyh0aGlzKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKCkgeyBTVkdUZXN0czo6c3lu
Y2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsgfQorCisgICAgdmlydHVhbCBjb25zdCBTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
aXJjbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNw
cAppbmRleCA3ZGE4NjZlZjQ1N2E1YTU3NWVlOGRiMjViMWM0MjZhZGU2OTY5Yzg5Li5lYWI4OWM1
MmY1MDA1Y2IwNjk2MGUzNjE0ZmQyYmUzMGViZWY0MzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NpcmNsZUVsZW1lbnQuY3BwCkBAIC05Miw4ICs5Miw4IEBAIHZvaWQgU1ZHQ2lyY2xlRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICBzZXRDeUJhc2VWYWx1
ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlSGVpZ2h0LCBhdHRyLT52YWx1ZSgpLCBw
YXJzZUVycm9yKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpyQXR0
cikKICAgICAgICAgc2V0UkJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhNb2Rl
T3RoZXIsIGF0dHItPnZhbHVlKCksIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocykp
OwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShhdHRyKQotICAgICAgICAg
ICAgIHx8IFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUoYXR0cikKKyAgICBlbHNlIGlmIChT
VkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ci0+bmFtZSgpKSkgeworICAgIH0gZWxz
ZSBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGF0dHIpCiAgICAgICAgICAgICAgfHwgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHsKICAgICB9
IGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Np
cmNsZUVsZW1lbnQuaAppbmRleCBjOTBiOWY3N2QzYWYzM2Y4ZGQ3MDc2YjNmYTY3ZDQ1NjQzNmUy
OTRhLi5mN2YxNzZlNTA2MzQxNjk1NmUxZGViOGE1OTllZTc1MDQ1ODIyNTJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKQEAgLTYzLDYgKzYzLDggQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEZlYXR1cmVzKCkgeyBTVkdUZXN0czo6
c3luY2hyb25pemVSZXF1aXJlZEZlYXR1cmVzKHRoaXMpOyB9CiAgICAgdmlydHVhbCB2b2lkIHN5
bmNocm9uaXplUmVxdWlyZWRFeHRlbnNpb25zKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1
aXJlZEV4dGVuc2lvbnModGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0
ZW1MYW5ndWFnZSgpIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7
IH0KKworICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiB0aGlzOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IGJhOTg3OGNlNzU1N2M3M2Qz
ZTNmMzI4MzE2NjQ3YjEyYjc5M2Y1MmUuLmYwNzA2Y2UyYzBhNjYwOGMyOGUzNmY3NWRjYThjZTFi
ZmFhM2YzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBA
IC04Niw3ICs4Niw3IEBAIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShB
dHRyaWJ1dGUqIGF0dHIpCiAKICAgICBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGF0dHIp
KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUo
YXR0cikpCisgICAgaWYgKFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyLT5uYW1l
KCkpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQ6OnBhcnNlQXR0cmlidXRlKGF0dHIpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKaW5kZXggMTBiNjA5YjM5Y2Y2MzNlNDMyOWNkMDIyZGQ0
MDliNjhmZjdlMWRiMS4uNWFmNzIyYWM4YThhZWQ4MjI1YjYwODk2NjY1NTM5MWIyYTdlMjBhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaApAQCAtNjMsNiArNjMsOCBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMo
KSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXModGhpcyk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnMoKSB7IFNWR1Rlc3RzOjpz
eW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5zaW9ucyh0aGlzKTsgfQogICAgIHZpcnR1YWwgdm9pZCBz
eW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1M
YW5ndWFnZSh0aGlzKTsgfQorCisgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0RlZnNFbGVtZW50LmgKaW5kZXggMjJjYzBlOTRlYTA1MDY4NjBkOGQ1YTI2MGNhNGZhNWYwMDhk
ZWU1Yi4uYmU2MjU2MDY3N2E3N2MyZGZiNDY1NzJhZmUyZDkzZjBhYzIzZDRlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKQEAgLTUyLDYgKzUyLDggQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEZlYXR1cmVzKCkgeyBTVkdUZXN0czo6c3lu
Y2hyb25pemVSZXF1aXJlZEZlYXR1cmVzKHRoaXMpOyB9CiAgICAgdmlydHVhbCB2b2lkIHN5bmNo
cm9uaXplUmVxdWlyZWRFeHRlbnNpb25zKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJl
ZEV4dGVuc2lvbnModGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0ZW1M
YW5ndWFnZSgpIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7IH0K
KworICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiB0aGlzOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdEZXNjRWxlbWVudC5oCmluZGV4IGVhZTc2N2VkNmM5NTNkYTJhNWJlNTM4NGQwNTlhODIz
YmM1NzE4ZmIuLjMxODU3OWY0ZmE2Njg5Yzg4MzljZjg0MDYyMjNiNDMwY2IyMmNlYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5oCkBAIC0zNiw4ICszNiwxMSBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgU1ZHRGVzY0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisgICAgdmlydHVhbCB+U1ZHRGVzY0VsZW1lbnQoKSB7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1
cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAppbmRleCA0MzcxYTdhMGVl
Mzc1NDIxZGJiMmQ3MTcwYmViODhiN2E5MTY3OTM2Li5hMjJjMWUyNTBlNmFlMWE3ZThiMmNlZTM5
Y2I3ODE0NmE5Njg0YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBz
ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5j
cHAKQEAgLTk2LDggKzk2LDggQEAgdm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICBzZXRSeEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNv
bnN0cnVjdChMZW5ndGhNb2RlV2lkdGgsIGF0dHItPnZhbHVlKCksIHBhcnNlRXJyb3IsIEZvcmJp
ZE5lZ2F0aXZlTGVuZ3RocykpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1l
czo6cnlBdHRyKQogICAgICAgICBzZXRSeUJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChM
ZW5ndGhNb2RlSGVpZ2h0LCBhdHRyLT52YWx1ZSgpLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2
ZUxlbmd0aHMpKTsKLSAgICBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUoYXR0cikK
LSAgICAgICAgICAgICB8fCBTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKGF0dHIpCisgICAg
ZWxzZSBpZiAoU1ZHTGFuZ1NwYWNlOjppc0tub3duQXR0cmlidXRlKGF0dHItPm5hbWUoKSkpIHsK
KyAgICB9IGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShhdHRyKQogICAgICAgICAg
ICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKGF0dHIp
KSB7CiAgICAgfSBlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAppbmRleCBjYWVhMWU2N2E1ZDRlYzRmYTQ1YTI0NjQ3
NjdiOGNjZWUwNWZmZDFjLi5jMThkNDgzMjNkYzMwNjAwZGVjODZkMWVkYTk0MmJjM2U0NTVlODYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaApAQCAtNjQsNiArNjQsOCBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMo
KSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXModGhpcyk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnMoKSB7IFNWR1Rlc3RzOjpz
eW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5zaW9ucyh0aGlzKTsgfQogICAgIHZpcnR1YWwgdm9pZCBz
eW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1M
YW5ndWFnZSh0aGlzKTsgfQorCisgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGVmYTIy
YWRkN2JhN2M2NDk2NThlYzIwN2ZjMTk1NDg1NTY2Y2M1YjYuLmJkNDhiNzQwOGJlYjc2NTU4NGYx
MjllZWNmNTZmNmM5MzlkNDRmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKIAogICAgIGlmIChTVkdVUklSZWZlcmVuY2U6OnBh
cnNlQXR0cmlidXRlKGF0dHIpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFNWR0xhbmdTcGFj
ZTo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpCisgICAgaWYgKFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyLT5uYW1lKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKGF0dHIpKQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCmluZGV4IGEyYWEyNDg0ZTg0
OGNkZjhhM2JmZWNmMTI1N2RkN2QzNTU2OWNlZTQuLjc5Mzg3MzY5MDUwZDY3MTY4NGZkZWY5MjY0
YzZiZjFiNWNmNTMyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCkBA
IC03MCw2ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVS
VElFUwogCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG1fY2FjaGVkSW1h
Z2U7CisKKyAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gdGhpczsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCmluZGV4IDJmM2U4MGExNzUzOTE3ODI2NTk0
MWM4N2Y1ZmM4MjRiMWJlNTgzMWMuLjRiMjhhZWEyYWE2M2I5N2ZhZWJhMTY0NTg3MzYwY2Q1NGVi
ZGJlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKQEAgLTE1MCw4
ICsxNTAsOCBAQCB2b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKEF0dHJpYnV0
ZSogYXR0cikKICAgICAgICAgICAgIHNldEZpbHRlclJlc1hCYXNlVmFsdWUoeCk7CiAgICAgICAg
ICAgICBzZXRGaWx0ZXJSZXNZQmFzZVZhbHVlKHkpOwogICAgICAgICB9CisgICAgfSBlbHNlIGlm
IChTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ci0+bmFtZSgpKSkgewogICAgIH0g
ZWxzZSBpZiAoU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShhdHRyKQotICAgICAgICAg
ICAgIHx8IFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUoYXR0cikKICAgICAgICAgICAgICB8
fCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgewog
ICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDYwM2M2OWFhYTM4MjM5MjhiZDc3YjZiYzdlZTk1ZmY4
ZTMxM2Q1OWMuLmM2ZDBkYTA2MzkwZGVkYmY0NjAyZGUwMDZkOGIwZWRjMzlmYWQzOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNzUsNiArNzUsOCBAQCBwcml2YXRl
OgogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1NUUklORyhIcmVmLCBocmVmKQogICAgICAgICBE
RUNMQVJFX0FOSU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCkKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVT
CisKKyAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gdGhpczsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3Jl
aWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggMWQ3NDA3OTMxMjQ4MDdjOTRkYjBlMTM4Zjc4MjI5
ZmI5YTQwN2VkYS4uOWEzYWViNjA0ZmY0M2NmYzMyNzVhYWY0MDllNGMzYjVmYTc0MGFlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCkBAIC0x
MDAsOCArMTAwLDggQEAgdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICBzZXRXaWR0aEJhc2VWYWx1ZShTVkdMZW5ndGg6
OmNvbnN0cnVjdChMZW5ndGhNb2RlV2lkdGgsIHZhbHVlLCBwYXJzZUVycm9yKSk7CiAgICAgZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQogICAgICAgICBzZXRI
ZWlnaHRCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwgdmFs
dWUsIHBhcnNlRXJyb3IpKTsKLSAgICBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUo
YXR0cikKLSAgICAgICAgICAgICAgIHx8IFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUoYXR0
cikKKyAgICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ci0+bmFt
ZSgpKSkgeworICAgIH0gZWxzZSBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGF0dHIpCiAg
ICAgICAgICAgICAgICB8fCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJp
YnV0ZShhdHRyKSkgewogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKaW5kZXggMDU3
YmEwNTA3NTBiMDkzYjExOWViNjI0YzczZDkzOWQ0MzJkNGMyYy4uNjI2MzE2ZTY3MmVhNDhkMDk2
NjE5MGJkMzlhYTM3MTMyMmNjNGJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LmgKQEAgLTY0LDYgKzY0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEZlYXR1cmVzKCkgeyBTVkdUZXN0czo6c3luY2hyb25p
emVSZXF1aXJlZEZlYXR1cmVzKHRoaXMpOyB9CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXpl
UmVxdWlyZWRFeHRlbnNpb25zKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEV4dGVu
c2lvbnModGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0ZW1MYW5ndWFn
ZSgpIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7IH0KKworICAg
IHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biB0aGlzOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dF
bGVtZW50LmNwcAppbmRleCAxM2ZhNTcxODEzNmY4Y2Y3OWYxMDI3NDg2MDZhMjlhZjFmOGU5Mzc1
Li5mN2NjOGUyMzk1YzA2MTE5ODA4OTNiMjY1M2NhNDE1NWQ3NWRjNGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdHRWxlbWVudC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBTVkdHRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogCiAgICAgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0
dHJpYnV0ZShhdHRyKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChTVkdMYW5nU3BhY2U6OnBh
cnNlQXR0cmlidXRlKGF0dHIpKQorICAgIGlmIChTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1
dGUoYXR0ci0+bmFtZSgpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR0VsZW1lbnQuaAppbmRleCA4NTFjNmE3YTFjOTkyMmI2ZWU0YjE4MmM5ODU4
OWY2YTU1NDQ2N2VmLi41ZjJjMzAzMmIzMGQyNjNlNGRjZjVhODI0ZDYyMTRiZjJiODk5ZGQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaApAQCAtNjAsNiArNjAsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMoKSB7IFNWR1Rlc3RzOjpz
eW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXModGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3lu
Y2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnMoKSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVp
cmVkRXh0ZW5zaW9ucyh0aGlzKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3Rl
bUxhbmd1YWdlKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsg
fQorCisgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIHRoaXM7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggYzczZGNkYmE3MDlmMmQ2MGQ2MmVlYjJk
ODQ2N2RhZGQ3YjA0OTExNy4uNDkzZjg2MjUwNTgwNjViMDM2NTJmNjUzMjNmYzA3ZjdhZTljNDk3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTEyNiw4ICsxMjYs
OCBAQCB2b2lkIFNWR0ltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRy
KQogICAgICAgICBzZXRXaWR0aEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhN
b2RlV2lkdGgsIGF0dHItPnZhbHVlKCksIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Ro
cykpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikK
ICAgICAgICAgc2V0SGVpZ2h0QmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1v
ZGVIZWlnaHQsIGF0dHItPnZhbHVlKCksIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Ro
cykpOwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShhdHRyKQotICAgICAg
ICAgICAgIHx8IFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUoYXR0cikKKyAgICBlbHNlIGlm
IChTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ci0+bmFtZSgpKSkgeworICAgIH0g
ZWxzZSBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGF0dHIpCiAgICAgICAgICAgICAgfHwg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikKICAgICAg
ICAgICAgICB8fCBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSB7CiAgICAg
fSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKaW5kZXggMjZmMTE0YzFlMzZi
ZmRkYmM1NTE3YmEzMTE0OGUwYmI1NmI4ZjYyNi4uYjQzZjE5OTAxMTEwNDg2YTE5OTg4NzMxNDRl
ZmU5YTZhZmQ0NDcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaApAQCAtODMs
NiArODMsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxh
bmd1YWdlKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsgfQog
CiAgICAgU1ZHSW1hZ2VMb2FkZXIgbV9pbWFnZUxvYWRlcjsKKworICAgIHZpcnR1YWwgY29uc3Qg
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGFuZ1NwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCmlu
ZGV4IDU4ZjE4NTIwYjdiMGVlYzMzYzA3NjYxMTRhNTFlNmUzYWE3ODJlMDMuLjA1OGNmMGRmYWE1
OTk2NDUzMjI1OWVhNDM2OGRlOWM0MmQ1ZmM0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMYW5nU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3Bh
Y2UuY3BwCkBAIC0zMCwzOCArMzAsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lk
IFNWR0xhbmdTcGFjZTo6c2V0WG1sbGFuZyhjb25zdCBBdG9taWNTdHJpbmcmIHhtbExhbmcpCitj
b25zdCBBdG9taWNTdHJpbmcmIFNWR0xhbmdTcGFjZTo6eG1sbGFuZygpIGNvbnN0CiB7Ci0gICAg
bV9sYW5nID0geG1sTGFuZzsKKyAgICByZXR1cm4gY29udGV4dEVsZW1lbnQoKS0+Z2V0QXR0cmli
dXRlKFhNTE5hbWVzOjpsYW5nQXR0cik7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgU1ZHTGFu
Z1NwYWNlOjp4bWxzcGFjZSgpIGNvbnN0Cit2b2lkIFNWR0xhbmdTcGFjZTo6c2V0WG1sbGFuZyhj
b25zdCBBdG9taWNTdHJpbmcmIGxhbmcpCiB7Ci0gICAgaWYgKCFtX3NwYWNlKSB7Ci0gICAgICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0U3RyaW5nLCAo
ImRlZmF1bHQiKSk7Ci0gICAgICAgIHJldHVybiBkZWZhdWx0U3RyaW5nOwotICAgIH0KLQotICAg
IHJldHVybiBtX3NwYWNlOworICAgIGNvbnN0X2Nhc3Q8U1ZHRWxlbWVudCo+KGNvbnRleHRFbGVt
ZW50KCkpLT5zZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OmxhbmdBdHRyLCBsYW5nKTsKIH0KIAotdm9p
ZCBTVkdMYW5nU3BhY2U6OnNldFhtbHNwYWNlKGNvbnN0IEF0b21pY1N0cmluZyYgeG1sU3BhY2Up
Citjb25zdCBBdG9taWNTdHJpbmcmIFNWR0xhbmdTcGFjZTo6eG1sc3BhY2UoKSBjb25zdAogewot
ICAgIG1fc3BhY2UgPSB4bWxTcGFjZTsKKyAgICByZXR1cm4gY29udGV4dEVsZW1lbnQoKS0+Z2V0
QXR0cmlidXRlKFhNTE5hbWVzOjpzcGFjZUF0dHIpOwogfQogCi1ib29sIFNWR0xhbmdTcGFjZTo6
cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQordm9pZCBTVkdMYW5nU3BhY2U6OnNldFht
bHNwYWNlKGNvbnN0IEF0b21pY1N0cmluZyYgc3BhY2UpCiB7Ci0gICAgaWYgKGF0dHItPm5hbWUo
KS5tYXRjaGVzKFhNTE5hbWVzOjpsYW5nQXR0cikpIHsKLSAgICAgICAgc2V0WG1sbGFuZyhhdHRy
LT52YWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChhdHRyLT5u
YW1lKCkubWF0Y2hlcyhYTUxOYW1lczo6c3BhY2VBdHRyKSkgewotICAgICAgICBzZXRYbWxzcGFj
ZShhdHRyLT52YWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0
dXJuIGZhbHNlOworICAgIGNvbnN0X2Nhc3Q8U1ZHRWxlbWVudCo+KGNvbnRleHRFbGVtZW50KCkp
LT5zZXRBdHRyaWJ1dGUoWE1MTmFtZXM6OnNwYWNlQXR0ciwgc3BhY2UpOwogfQogCiBib29sIFNW
R0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuaAppbmRleCA4YTg0YjJmMzZkMDYyZGYxMmIzYzg2
Njk5MjFmOWQ2MjgwMzJlMWM0Li5jYzIwOTAwMGQxNGY2Y2U3NDVmNzI5OGJkNzAxZThlMTJiZWVl
Yzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGFuZ1NwYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5oCkBAIC0yNywyMyArMjcsMjMgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdHRyaWJ1dGU7CitjbGFzcyBTVkdFbGVtZW50
OwogCiBjbGFzcyBTVkdMYW5nU3BhY2UgewogcHVibGljOgotICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgeG1sbGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQorICAgIHZpcnR1YWwgflNWR0xh
bmdTcGFjZSgpIHsgfQorCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiB4bWxsYW5nKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRYbWxsYW5nKGNvbnN0IEF0b21pY1N0cmluZyYgeG1sTGFuZyk7CiAKICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIHhtbHNwYWNlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRYbWxz
cGFjZShjb25zdCBBdG9taWNTdHJpbmcmIHhtbFNwYWNlKTsKIAotICAgIGJvb2wgcGFyc2VBdHRy
aWJ1dGUoQXR0cmlidXRlKik7CiAgICAgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKICAgICB2b2lkIGFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiYpOwogCiBwcml2YXRlOgotICAgIEF0b21pY1N0cmluZyBtX2xhbmc7Ci0gICAg
QXRvbWljU3RyaW5nIG1fc3BhY2U7CisgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCmluZGV4IGYwNTcwNTNhZWQ4NThlOWUwNjBk
MDk3OGY2YzhhZTZhYzZkOTU2NmIuLjBiY2Y0MjNiOTJiYjY1MmYwZDEwNjUwNzNmZWYzYWE5YTgw
M2Q4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcApAQCAtOTUsOCArOTUs
OCBAQCB2b2lkIFNWR0xpbmVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIp
CiAgICAgICAgIHNldFgyQmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVX
aWR0aCwgYXR0ci0+dmFsdWUoKSwgcGFyc2VFcnJvcikpOwogICAgIGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBTVkdOYW1lczo6eTJBdHRyKQogICAgICAgICBzZXRZMkJhc2VWYWx1ZShTVkdMZW5n
dGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlSGVpZ2h0LCBhdHRyLT52YWx1ZSgpLCBwYXJzZUVycm9y
KSk7Ci0gICAgZWxzZSBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGF0dHIpCi0gICAgICAg
ICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShhdHRyKQorICAgIGVsc2UgaWYg
KFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyLT5uYW1lKCkpKSB7CisgICAgfSBl
bHNlIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUoYXR0cikKICAgICAgICAgICAgICB8fCBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgewogICAg
IH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVFbGVtZW50LmgKaW5kZXggZDcwNmY3NWFlODY5ZGE3YjllNzUxMzQ4NzA1NjAwYmIxZDRlZjVm
Yy4uNTk0ODlhOWY3ZTU0ZmZhYWY0ZGI4MjU1ZmZhNzAwNGI2NGIwMWU3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVFbGVtZW50LmgKQEAgLTY0LDYgKzY0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEZlYXR1cmVzKCkgeyBTVkdUZXN0czo6c3luY2hy
b25pemVSZXF1aXJlZEZlYXR1cmVzKHRoaXMpOyB9CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9u
aXplUmVxdWlyZWRFeHRlbnNpb25zKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEV4
dGVuc2lvbnModGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0ZW1MYW5n
dWFnZSgpIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7IH0KKwor
ICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiB0aGlzOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKaW5kZXggNzE4YThjMDY4MzI1NDdmZGIxNzRiODYxZTVm
YWVkODkyMTVhZDI0ZS4uZDZjMTYyNzcyMmY4ODc2NDRiNWU0MTAzMGEyYjIwYzg5MDEwNzRlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtMTUxLDggKzE1MSw4
IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRy
KQogICAgICAgICAgICAgc2V0T3JpZW50VHlwZUJhc2VWYWx1ZShvcmllbnRUeXBlKTsKICAgICAg
ICAgaWYgKG9yaWVudFR5cGUgPT0gU1ZHTWFya2VyT3JpZW50QW5nbGUpCiAgICAgICAgICAgICBz
ZXRPcmllbnRBbmdsZUJhc2VWYWx1ZShhbmdsZSk7Ci0gICAgfSBlbHNlIGlmIChTVkdMYW5nU3Bh
Y2U6OnBhcnNlQXR0cmlidXRlKGF0dHIpCi0gICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikKKyAgICB9IGVsc2UgaWYgKFNWR0xh
bmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyLT5uYW1lKCkpKSB7CisgICAgfSBlbHNlIGlm
IChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShhdHRyKQogICAg
ICAgICAgICAgIHx8IFNWR0ZpdFRvVmlld0JveDo6cGFyc2VBdHRyaWJ1dGUoZG9jdW1lbnQoKSwg
YXR0cikpIHsKICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAppbmRleCAxMjA0YmUyZTgzNTlmMzJlZTlkODcw
MDAxMGI2MWJlNjg2YWU1NDk0Li4wMmRjOGVkMGJhMGQxMjVmYmFhZjU3NzhkZWZjY2VlYzJkNGIw
ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTE2NSw2ICsxNjUs
OCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgbXV0YWJsZSBTVkdTeW5jaHJvbml6YWJsZUFu
aW1hdGVkUHJvcGVydHk8U1ZHTWFya2VyT3JpZW50VHlwZT4gbV9vcmllbnRUeXBlOworCisgICAg
dmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IHRoaXM7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNr
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCmluZGV4
IDkwYzVjNjVmZjllNjk2NmMxNDljNDAzYTBlZWY5NmNjZTZkYjc2MTEuLjE1YjY5NGY1NTRiMWM2
ZGI5MzViZjhlOTg1YTIzMmE4MTVmNzg4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVt
ZW50LmNwcApAQCAtMTE4LDggKzExOCw4IEBAIHZvaWQgU1ZHTWFza0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgc2V0V2lkdGhCYXNlVmFsdWUoU1ZHTGVu
Z3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCBhdHRyLT52YWx1ZSgpLCBwYXJzZUVycm9y
KSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQog
ICAgICAgICBzZXRIZWlnaHRCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9k
ZUhlaWdodCwgYXR0ci0+dmFsdWUoKSwgcGFyc2VFcnJvcikpOwotICAgIGVsc2UgaWYgKFNWR1Rl
c3RzOjpwYXJzZUF0dHJpYnV0ZShhdHRyKQotICAgICAgICAgICAgIHx8IFNWR0xhbmdTcGFjZTo6
cGFyc2VBdHRyaWJ1dGUoYXR0cikKKyAgICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OmlzS25vd25B
dHRyaWJ1dGUoYXR0ci0+bmFtZSgpKSkgeworICAgIH0gZWxzZSBpZiAoU1ZHVGVzdHM6OnBhcnNl
QXR0cmlidXRlKGF0dHIpCiAgICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpIHsKICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCmluZGV4IGMzNWMy
ODk3YzNlYjM5ZDY0MzgxMmY0MDNhOGExNzk2Mjk1MDZiNzEuLmRmYzY0OGY2MjU0N2M4NDMwYzll
ODhlMDA2MTU0ZWVkOTYzNGUyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCkBA
IC02OCw2ICs2OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUmVx
dWlyZWRGZWF0dXJlcygpIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyh0
aGlzKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5zaW9ucygp
IHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplUmVxdWlyZWRFeHRlbnNpb25zKHRoaXMpOyB9CiAgICAg
dmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSB7IFNWR1Rlc3RzOjpzeW5j
aHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKaW5kZXggY2NhYzMwMWUxOWU1Y2FlMWVk
YTUyOGU5YThiMzdhYjM0NWU0NWU2Yy4uNmFkYmE3MTA1NWUyOGYxNjcyMDFmZWUwMWEzNjc5YzA2
MWVkMjNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCkBAIC0yMzksNyAr
MjM5LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBh
dHRyKQogCiAgICAgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAg
cmV0dXJuOwotICAgIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKGF0dHIpKQorICAg
IGlmIChTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ci0+bmFtZSgpKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0
dHJpYnV0ZShhdHRyKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1l
bnQuaAppbmRleCA2ODU1OGRiNDNiMzUzODQwNDZhZjc2MTViNjY0ZTRiZWU0NDAyOThjLi4yNDM2
ZDJkOGIxMTIxYjdlZGFlNGE2MDMzOTJiNjMxYWY1OTBjMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aEVsZW1lbnQuaApAQCAtMTM0LDYgKzEzNCw4IEBAIHByaXZhdGU6CiAgICAgRmxvYXRSZWN0
IG1fY2FjaGVkQkJveFJlY3Q7CiAgICAgYm9vbCBtX2NhY2hlZEJCb3hSZWN0SXNWYWxpZDsgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgIGJvb2wgbV9pc0FuaW1WYWxPYnNlcnZlZDsKKworICAg
IHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biB0aGlzOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCA3ODBmNTdiMWEyNjdmN2VlYTVjNWVlZGFmMTNj
MzA1YjM5N2I5MmFkLi5mZmQ0YTA0YTFiYjkzYmU1ZjI5Y2Q0YjI2OGRmMTJmNzYyYzk0N2U1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKQEAgLTEzOSw5ICsxMzks
OSBAQCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0
dHIpCiAgICAgICAgIHNldFdpZHRoQmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0
aE1vZGVXaWR0aCwgYXR0ci0+dmFsdWUoKSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5n
dGhzKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpoZWlnaHRBdHRy
KQogICAgICAgICBzZXRIZWlnaHRCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3Ro
TW9kZUhlaWdodCwgYXR0ci0+dmFsdWUoKSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5n
dGhzKSk7Ci0gICAgZWxzZSBpZiAoU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShhdHRy
KQorICAgIGVsc2UgaWYgKFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyLT5uYW1l
KCkpKSB7CisgICAgfSBlbHNlIGlmIChTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKGF0
dHIpCiAgICAgICAgICAgICAgfHwgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGF0dHIpCi0gICAg
ICAgICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShhdHRyKQogICAgICAgICAg
ICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKGF0dHIp
CiAgICAgICAgICAgICAgfHwgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShkb2N1bWVu
dCgpLCBhdHRyKSkgewogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdHRlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1l
bnQuaAppbmRleCBhOWNkNDBlNGZkYTVhY2RlMmU2ZTdjMmM4MzAzZGRhODdjNmVmMjQ3Li5jN2I4
N2NhOTRkNTY2YWQzYmJhMGU2MmJlMjNkYTU1NjU4YjBmMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuaApAQCAtODQsNiArODQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMoKSB7IFNWR1Rlc3RzOjpzeW5jaHJv
bml6ZVJlcXVpcmVkRmVhdHVyZXModGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25p
emVSZXF1aXJlZEV4dGVuc2lvbnMoKSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRXh0
ZW5zaW9ucyh0aGlzKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxhbmd1
YWdlKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsgfQorCisg
ICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIHRoaXM7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuY3BwCmluZGV4IDJiYjdjYjJjMzkxNjVkNWMyM2JmYTdkZGU2MTZkZmI4
NGY3NWU5N2UuLmY4MzQ2YzViODRlZmNjZWE3ZTk4Nzc2ZDA3NzEwOWRlMTlmYTk5MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcApAQCAtOTksNyArOTksNyBAQCB2b2lkIFNW
R1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiAKICAgICBpZiAo
U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGF0dHIpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYg
KFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpCisgICAgaWYgKFNWR0xhbmdTcGFj
ZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyLT5uYW1lKCkpKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKGF0dHIpKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCmluZGV4IDRjYjc5
ZjRiZTEwNjg4OTNmZTViMjNjMWRkNjM0M2ExZjY2ZmRiYjUuLjNmZWI2MDhjNTRlYzZiZjJiN2I2
YTY3OTA0ZDdkYjNhOTI3YjUxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2x5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCkBA
IC02OSw2ICs2OSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUmVx
dWlyZWRFeHRlbnNpb25zKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lv
bnModGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSgp
IHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7IH0KIAorICAgIHZp
cnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0
aGlzOyB9CisKIHByb3RlY3RlZDoKICAgICBtdXRhYmxlIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0
ZWRQcm9wZXJ0eTxTVkdQb2ludExpc3Q+IG1fcG9pbnRzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuY3BwCmluZGV4IDk3OTdiZTczOThmZDcwOWU3N2MzYzE2NTJiZjgyNWQ5YTA2
OWE0YzAuLjNhOGFhMWQ5NDJlYzc0NTc1NmFiZmQzMmZkYzZhZGVjMTExNWYyOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcApAQCAtMTA5LDggKzEwOSw4IEBAIHZvaWQgU1ZH
UmVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgc2V0
V2lkdGhCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCBhdHRy
LT52YWx1ZSgpLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpKTsKICAgICBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpCiAgICAgICAgIHNldEhl
aWdodEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlSGVpZ2h0LCBhdHRy
LT52YWx1ZSgpLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpKTsKLSAgICBlbHNl
IGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUoYXR0cikKLSAgICAgICAgICAgICB8fCBTVkdM
YW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKGF0dHIpCisgICAgZWxzZSBpZiAoU1ZHTGFuZ1NwYWNl
Ojppc0tub3duQXR0cmlidXRlKGF0dHItPm5hbWUoKSkpIHsKKyAgICB9IGVsc2UgaWYgKFNWR1Rl
c3RzOjpwYXJzZUF0dHJpYnV0ZShhdHRyKQogICAgICAgICAgICAgIHx8IFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKGF0dHIpKSB7CiAgICAgfSBlbHNlCiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaApp
bmRleCBmMTNjN2M3YjIyMTA4YzhlYWMyMDM1MDM3YmUxMzNjYjI1YzU1MjcxLi5kODI0NDI2NjY0
ODgxM2JkNzIxNTgyMDdhZGY0YzlkZTJhZDQwNWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuaApAQCAtNjYsNiArNjYsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5j
aHJvbml6ZVJlcXVpcmVkRmVhdHVyZXMoKSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVk
RmVhdHVyZXModGhpcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEV4
dGVuc2lvbnMoKSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5zaW9ucyh0aGlz
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKCkgeyBTVkdU
ZXN0czo6c3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsgfQorCisgICAgdmlydHVhbCBj
b25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmNwcAppbmRleCAyMTVjMzNlNjdiOTU4ZTc5MTY3YTQxMjNmYjRlZjJjYzlmYmFiOGZmLi42NzA4
YTZkMWJhZDBiMDg1ODNiMmFmMGQ4NzQzNDllZGMzNjY2MjAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCkBAIC0yNzQsOCArMjc0LDggQEAgdm9pZCBTVkdTVkdFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiAgICAgICAgIHNldFdpZHRoQmFzZVZhbHVl
KFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVXaWR0aCwgYXR0ci0+dmFsdWUoKSwgcGFy
c2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFt
ZSgpID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQogICAgICAgICBzZXRIZWlnaHRCYXNlVmFsdWUo
U1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwgYXR0ci0+dmFsdWUoKSwgcGFy
c2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKSk7Ci0gICAgZWxzZSBpZiAoU1ZHVGVzdHM6
OnBhcnNlQXR0cmlidXRlKGF0dHIpCi0gICAgICAgICAgICAgICB8fCBTVkdMYW5nU3BhY2U6OnBh
cnNlQXR0cmlidXRlKGF0dHIpCisgICAgZWxzZSBpZiAoU1ZHTGFuZ1NwYWNlOjppc0tub3duQXR0
cmlidXRlKGF0dHItPm5hbWUoKSkpIHsKKyAgICB9IGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0
dHJpYnV0ZShhdHRyKQogICAgICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikKICAgICAgICAgICAgICAgIHx8IFNWR0ZpdFRvVmll
d0JveDo6cGFyc2VBdHRyaWJ1dGUoZG9jdW1lbnQoKSwgYXR0cikKICAgICAgICAgICAgICAgIHx8
IFNWR1pvb21BbmRQYW46OnBhcnNlQXR0cmlidXRlKGF0dHIpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaAppbmRleCA2ZWU4ODg3NTBiMDcxOWY5NTlhZWY2OTc1N2VmNzY1ZjBlOTI5YmI5
Li42MGJjNDM0NTg3ZDRhYmFiMjhkNmEwYzZkNTJiNGQwNmRlYTFiMTkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmgKQEAgLTE4NSw2ICsxODUsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxTTUlMVGltZUNvbnRhaW5lcj4gbV90aW1lQ29udGFpbmVyOwogICAgIEZsb2F0UG9pbnQgbV90
cmFuc2xhdGlvbjsKICAgICBtdXRhYmxlIE93blB0cjxTVkdWaWV3U3BlYz4gbV92aWV3U3BlYzsK
KworICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiB0aGlzOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCmluZGV4IDRlMTRkNTRiNDJjNDU2MWJmODhhYTQ0ZGJm
ZGM3ZWI1OWNkNjNkNjMuLjRjNjU4MjBmNjY2ZGUyNDI4YTBmNTIzNjgyMTA1NDA0NDdjM2ZkNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCkBAIC0xMjIsNyArMTIyLDcg
QEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0
cmlidXRlKGF0dHIpKQorICAgIGlmIChTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0
ci0+bmFtZSgpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKaW5kZXggMWIwMzZmZmFjODdiNzc1Zjc1
YjYxMzBkYWNjZTQxODRjZDZiYzE2YS4uYjMxYTg1ZmYyZjMzYmRjZjFmYzAyYmMwMDEzZjI2ZmEw
ODBlOWZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaApAQCAtNjMsNiArNjMs
OCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRpbmcoKSBjb25zdCB7IHJldHVy
biBTdHlsZUVsZW1lbnQ6OmlzTG9hZGluZygpOyB9CiAgICAgdmlydHVhbCBib29sIHNoZWV0TG9h
ZGVkKCkgeyByZXR1cm4gU3R5bGVFbGVtZW50OjpzaGVldExvYWRlZChkb2N1bWVudCgpKTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoKSB7IFN0eWxlRWxlbWVu
dDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KGRvY3VtZW50KCkpOyB9CisKKyAgICB2aXJ0dWFs
IGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hF
bGVtZW50LmgKaW5kZXggMWJmN2U2Y2Q0OWFlNWRlN2VlNmI2MjVmMzExZTdlZWJlNTY3Zjk1MC4u
ODE2ZjljMzJlMTRjZWU4YzZkYTJmZjE4Yjc2M2E0ZWMzZmMyYmVmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3dpdGNoRWxlbWVudC5oCkBAIC01NSw2ICs1NSw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcygpIHsgU1ZHVGVzdHM6OnN5bmNo
cm9uaXplUmVxdWlyZWRGZWF0dXJlcyh0aGlzKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJv
bml6ZVJlcXVpcmVkRXh0ZW5zaW9ucygpIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplUmVxdWlyZWRF
eHRlbnNpb25zKHRoaXMpOyB9CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lzdGVtTGFu
Z3VhZ2UoKSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CisK
KyAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gdGhpczsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCmluZGV4IDNjZjVmNWVjMWRkZjU4YTBhZGNkMmE3MDgw
MzIwMWViYzRiMmUwOTguLjgxYWZlYTA1MzA3ZWU3OTUyNjAyYjAxMmM2N2RiMzk0YTFmOGI4MDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKQEAgLTcyLDcgKzcyLDcg
QEAgdm9pZCBTVkdTeW1ib2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0
dHJpYnV0ZShhdHRyKSkKKyAgICBpZiAoU1ZHTGFuZ1NwYWNlOjppc0tub3duQXR0cmlidXRlKGF0
dHItPm5hbWUoKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCmluZGV4IDQxNTQ5MTliZWVlZTQwY2ExOTU3MWVk
YTIxMWE3MzZjZDE5YWE3NmUuLmJlZWQwMTgzMDkwMDg3ZWNjNTJlZmI5ZGQ1NWNlYzY0NGZhZmMy
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaApAQCAtNTYsNiArNTYsOCBA
QCBwcml2YXRlOgogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1JFQ1QoVmlld0JveCwgdmlld0Jv
eCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUkVTRVJWRUFTUEVDVFJBVElPKFByZXNlcnZl
QXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pIAogICAgIEVORF9ERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRJRVMKKworICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCmluZGV4
IGNiODRlMjliNzIyZjYzMTQ5ZmRlMWViZmVlZTBiNjc1YTMyZmVmOWQuLjgwNDBhY2YwNmE5Njg4
Mjg4Y2VmMjIyNWMyZDY3NDY4M2RjODAwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBTVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgbV90
ZXh0TGVuZ3RoLnZhbHVlID0gU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCBh
dHRyLT52YWx1ZSgpLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpOwogICAgIH0g
ZWxzZSBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGF0dHIpCiAgICAgICAgICAgICAgICB8
fCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgewot
ICAgIH0gZWxzZSBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShhdHRyKSkgeworICAg
IH0gZWxzZSBpZiAoU1ZHTGFuZ1NwYWNlOjppc0tub3duQXR0cmlidXRlKGF0dHItPm5hbWUoKSkp
IHsKICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaAppbmRleCAwOTc1YWJjMzcyZjBkZWNk
NjlhZTdjNjk3YWQ0MzkwY2Y2OTQwMjQzLi40OWZlZGM1ZmU4Zjg1ODBmMGEyYmFhNTk3NGFlOGYy
Y2VjMjU3N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5o
CkBAIC0xMjksNiArMTI5LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25p
emVSZXF1aXJlZEZlYXR1cmVzKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEZlYXR1
cmVzKHRoaXMpOyB9CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUmVxdWlyZWRFeHRlbnNp
b25zKCkgeyBTVkdUZXN0czo6c3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnModGhpcyk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSgpIHsgU1ZHVGVzdHM6
OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7IH0KKworICAgIHZpcnR1YWwgY29uc3Qg
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGl0bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgK
aW5kZXggYjhlZjI2NTMxYTJlZTZhMjBkMTU5OTRiNmNkOGVlYmE1OTJkMzYzNS4uODExZjM4ZDVl
NzZjODRmZjQ0OTIzYWViNDlhNGIxYTEwZDViYTRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRs
ZUVsZW1lbnQuaApAQCAtNDAsNiArNDAsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBj
aGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3Jl
Q2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0g
MCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVy
aW5nQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4
IDBiODJmYWRmOWRkNTNmYTcxM2YzZmQyMjU4MjdkZDBiZGE4MDFjM2QuLmY3ZGMxY2Y2ZDAzMDUw
MDkzMTU4MmUzOWVlNzBhYjg3OTZhZWIxOTAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5jcHAKQEAgLTE1OCw4ICsxNTgsOCBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKEF0dHJpYnV0ZSogYXR0cikKICAgICAgICAgc2V0V2lkdGhCYXNlVmFsdWUoU1ZHTGVuZ3Ro
Ojpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCBhdHRyLT52YWx1ZSgpLCBwYXJzZUVycm9yLCBG
b3JiaWROZWdhdGl2ZUxlbmd0aHMpKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZH
TmFtZXM6OmhlaWdodEF0dHIpCiAgICAgICAgIHNldEhlaWdodEJhc2VWYWx1ZShTVkdMZW5ndGg6
OmNvbnN0cnVjdChMZW5ndGhNb2RlSGVpZ2h0LCBhdHRyLT52YWx1ZSgpLCBwYXJzZUVycm9yLCBG
b3JiaWROZWdhdGl2ZUxlbmd0aHMpKTsKLSAgICBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VBdHRy
aWJ1dGUoYXR0cikKLSAgICAgICAgICAgICB8fCBTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRl
KGF0dHIpCisgICAgZWxzZSBpZiAoU1ZHTGFuZ1NwYWNlOjppc0tub3duQXR0cmlidXRlKGF0dHIt
Pm5hbWUoKSkpIHsKKyAgICB9IGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShhdHRy
KQogICAgICAgICAgICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0
cmlidXRlKGF0dHIpCiAgICAgICAgICAgICAgfHwgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJp
YnV0ZShhdHRyKSkgewogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5k
ZXggM2ZhZWE5MDAwNWM4ZWI1MzlmYjhkYjJlZDBiZDRlY2IyYjBhM2NmYy4uZWEwZjQ5YWVjNmMz
MzczMTlkOGM4YzE1M2UyMzNjNTVlM2Q2YzZkNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5oCkBAIC0xMjgsNiArMTI4LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fbmVlZHNTaGFkb3dU
cmVlUmVjcmVhdGlvbjsKICAgICBSZWZQdHI8U1ZHRWxlbWVudEluc3RhbmNlPiBtX3RhcmdldEVs
ZW1lbnRJbnN0YW5jZTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVu
dD4gbV9jYWNoZWREb2N1bWVudDsKKworICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="147787"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="165469"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>