<?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>129032</bug_id>
          
          <creation_ts>2014-02-19 00:30:31 -0800</creation_ts>
          <short_desc>[CSS Regions] Overset computation is incorrect in some cases</short_desc>
          <delta_ts>2014-03-03 09:10:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>AdobeTracked</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>57312</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrei Bucur">abucur</reporter>
          <assigned_to name="Andrei Bucur">abucur</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>982270</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-02-19 00:30:31 -0800</bug_when>
    <thetext>Overset is incorrectly computed for regions with auto-height (by taking into account visual overflow). See the attached test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982271</commentid>
    <comment_count>1</comment_count>
      <attachid>224602</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-02-19 00:32:42 -0800</bug_when>
    <thetext>Created attachment 224602
Repro</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984726</commentid>
    <comment_count>2</comment_count>
      <attachid>225250</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-02-26 06:54:14 -0800</bug_when>
    <thetext>Created attachment 225250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986308</commentid>
    <comment_count>3</comment_count>
      <attachid>225250</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2014-03-03 02:19:42 -0800</bug_when>
    <thetext>Comment on attachment 225250
Patch

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

r-
I like the patch and i think is moving in the right direction.However, i would like you to take another look at it.
As a comment, i would have probably created another patch before with the movement of regionOversetChange methods from RenderRegion to RenderNamedFlowFragment, without functionality change, making the review easier.

&gt; Source/WebCore/ChangeLog:10
&gt; +        1. Regions overflow no longer trigger an overset changed event. This is beacuse

beacuse -&gt; because

&gt; Source/WebCore/ChangeLog:25
&gt; +

5. The regionOverset property is moved from RenderRegion to RenderNamedFlowFragment.

&gt; Source/WebCore/dom/WebKitNamedFlow.cpp:77
&gt; +    if (namedFlowFragment-&gt;generatingElement()-&gt;regionOversetState() == RegionOverset)

No need for exposing the generatingElement() here. If you write something like:
return (namedFlowFragment-&gt;regionOversetState() == RegionOverset)
you achieve the same result since the method you moved to RenderNamedFlowFragment, regionOversetState() has the assertion in place. I also prefer using a ternary operator here.

&gt; Source/WebCore/dom/WebKitNamedFlow.cpp:119
&gt; +        if (namedFlowFragment-&gt;generatingElement()-&gt;regionOversetState() == RegionEmpty)

No need for assert here if you write:
if (namedFlowFragment-&gt;regionOversetState() == RegionEmpty)

&gt; Source/WebCore/rendering/FlowThreadController.cpp:249
&gt; +        flowRenderer-&gt;dispatchRegionEvents();

Worth a comment in the changelog explaining why you chose this layout phase for dispatching the event(s).

&gt; Source/WebCore/rendering/RenderNamedFlowThread.cpp:307
&gt; +void RenderNamedFlowThread::dispatchRegionEvents()

This deserves a comment in the changelog since you are talking about events, while right now you are using this function to dispatch only the regions overset change event. I assume you want this function to be used also when we support the regionFragmentChange.
Btw, i would rename this function to dispatchRegionChainEvents or dispatchNamedFlowEvents since you are not dispatching an event for a region but rather you are dispatching the events for the named flow.

I also think it is worth explaining in the ChangeLog why regionLayoutUpdate is not triggered here, in the same place as regionOversetChange.

&gt; Source/WebCore/rendering/RenderNamedFlowThread.h:153
&gt; +    // Used to store the content bottom until the moment we need to update the overset state.

I would move this comment into the changelog.

&gt; LayoutTests/fast/regions/cssom/webkit-named-flow-overset.html:62
&gt; +    // Overset should be false since the shadow of the content overflows the last region.

Maybe we can make this comment clearer. Something like:
&quot;Overset should be false even if the content shadow overflows the last region since the visual overflow does not influence the overset property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986340</commentid>
    <comment_count>4</comment_count>
      <attachid>225651</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-03-03 07:53:31 -0800</bug_when>
    <thetext>Created attachment 225651
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986344</commentid>
    <comment_count>5</comment_count>
      <attachid>225651</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2014-03-03 08:10:33 -0800</bug_when>
    <thetext>Comment on attachment 225651
Patch v2

r=me but please make sure that you have an accurate ChangeLog before landing. For instance, Changelog mentions firstEmptyRegionIndex which was modified in the previous patch but not in this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986347</commentid>
    <comment_count>6</comment_count>
      <attachid>225654</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-03-03 08:26:33 -0800</bug_when>
    <thetext>Created attachment 225654
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986366</commentid>
    <comment_count>7</comment_count>
      <attachid>225654</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-03 09:10:28 -0800</bug_when>
    <thetext>Comment on attachment 225654
Patch for landing

Clearing flags on attachment: 225654

Committed r164988: &lt;http://trac.webkit.org/changeset/164988&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986367</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-03 09:10:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>224602</attachid>
            <date>2014-02-19 00:32:42 -0800</date>
            <delta_ts>2014-02-19 00:32:42 -0800</delta_ts>
            <desc>Repro</desc>
            <filename>box-shadow-overset.html</filename>
            <type>text/html</type>
            <size>903</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxodG1sPgo8aGVhZD4KCTx0aXRsZT5SZXBybyBjYXNlPC90aXRsZT4K
CTxzdHlsZT4KCQkuaW1nZmxvdyB7CgkJCS13ZWJraXQtZmxvdy1mcm9tOiBpbWdmbG93OwoJCQlo
ZWlnaHQ6IGF1dG87CgkJfQoKCQkjYm94IHsKCQkJLXdlYmtpdC1mbG93LWludG86IGltZ2Zsb3c7
CgkJCWRpc3BsYXk6IGJsb2NrOwoJCQlib3gtc2hhZG93OiAxMHB4IDEwcHggNXB4ICM4ODg7CgkJ
CWJhY2tncm91bmQtY29sb3I6IGdyZWVuOwoJCQloZWlnaHQ6IDEwMHB4OwoJCQl3aWR0aDogMTAw
cHg7CgkJfQoJPC9zdHlsZT4KCTxzY3JpcHQ+CgkJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
RE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKGV2ZW50KSB7CgkJCXZhciBmbG93ID0gZG9jdW1l
bnQud2Via2l0R2V0TmFtZWRGbG93cygpWyJpbWdmbG93Il07CgkJICAJaWYgKGZsb3cub3ZlcnNl
dCkKCQkgIAkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm92ZXJzZXRfdHJ1ZSIpLnN0eWxlLmRp
c3BsYXkgPSAiYmxvY2siOwoJCX0pOwoJPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+Cgk8cD4KCQlZ
b3Ugc2hvdWxkIHNlZSBhIHNoYWRvdyBhdCB0aGUgYm90dG9tIG9mIHRoZSBncmVlbiBzcXVhcmUu
IAoJCUFsc28sIHRoZSBvdmVyc2V0IG9uIHRoZSBuYW1lZCBmbG93IHNob3VsZCBiZSBmYWxzZSAo
Y2hlY2sgdGhlIGNvbnNvbGUgZm9yIHRoZSByZWFkIHZhbHVlKTsKCTwvcD4KCTxkaXYgY2xhc3M9
ImltZ2Zsb3ciPjwvZGl2PgoJPGRpdiBjbGFzcz0iaW1nZmxvdyI+PC9kaXY+CgoJPGRpdiBpZD0i
Ym94Ij48L2Rpdj4KCTxwIGlkPSJvdmVyc2V0X3RydWUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyBj
b2xvcjogcmVkOyI+b3ZlcnNldCBpcyB0cnVlPC9wPgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225250</attachid>
            <date>2014-02-26 06:54:14 -0800</date>
            <delta_ts>2014-03-03 07:53:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129032-20140226165843.patch</filename>
            <type>text/plain</type>
            <size>33199</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2JjNmNmNmIwZDExMTcz
NDA5YjIxNWRkMTY0M2VjZTliYTQ5NzM4Ny4uYjE3YTM3NmY5OGNkZWI1N2RmNGFhNjMxNmY5MjU3
NGM3ZjkxZmM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTAyLTI2ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gT3Zl
cnNldCBjb21wdXRhdGlvbiBpcyBpbmNvcnJlY3QgaW4gc29tZSBjYXNlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDMyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXdvcmtzIHRo
ZSB3YXkgb3ZlcnNldCBpcyBjb21wdXRlZCBmb3IgcmVnaW9ucyBhbmQgbmFtZWQgZmxvd3MuCisK
KyAgICAgICAgMS4gUmVnaW9ucyBvdmVyZmxvdyBubyBsb25nZXIgdHJpZ2dlciBhbiBvdmVyc2V0
IGNoYW5nZWQgZXZlbnQuIFRoaXMgaXMgYmVhY3VzZQorICAgICAgICB0aGUgb3ZlcmZsb3cgb2Yg
YSBib3ggaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgcmVnaW9uIHJhbmdlIG9mIHRoZSBib3guIFRo
ZSBjb250ZW50CisgICAgICAgIGVkZ2Ugc2hvdWxkIGJlIGNvbnNpZGVyZWQgdGhlIGxvZ2ljYWwg
Ym90dG9tIHBvc2l0aW9uIG9mIHRoZSBjb250ZW50IGluc2lkZSB0aGUKKyAgICAgICAgZmxvdyB0
aHJlYWQuCisKKyAgICAgICAgMi4gVGhlIHJlZ2lvbnMgZXZlbnRzIGxvZ2ljIHdhcyBtb3ZlZCBm
cm9tIFJlbmRlckZsb3dUaHJlYWQgdG8gUmVuZGVyTmFtZWRGbG93VGhyZWFkCisgICAgICAgIGFu
ZCBmcm9tIFJlbmRlclJlZ2lvbiB0byBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudC4KKworICAgICAg
ICAzLiBUaGUgb3ZlcnNldCB2YWx1ZSBvZiB0aGUgbmFtZWQgZmxvdyBpcyBubyBsb25nZXIgc3Rv
cmVkIGluIHRoZSBuYW1lZCBmbG93LiBJdCBpcworICAgICAgICBleHRyYWN0ZWQgZnJvbSB0aGUg
b3ZlcnNldCBvZiB0aGUgbGFzdCByZWdpb24gaW4gdGhlIGNoYWluLgorCisgICAgICAgIDQuIFRo
ZSByZWdpb25zIG92ZXJzZXQgaXMgbm90IGNvbXB1dGVkIGV2ZXJ5IHRpbWUgdGhlIGZsb3cgdGhy
ZWFkIGlzIGxhaWQgb3V0IHdoaWNoCisgICAgICAgIHNob3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNl
IGZvciBmbG93cyB3aXRoIG1hbnkgcmVnaW9ucy4gV2l0aCB0aGUgcGF0Y2gsIGVhY2ggcmVnaW9u
CisgICAgICAgIGNvbXB1dGVzIHRoZSBvdmVyc2V0IHZhbHVlIGR1cmluZyBpdHMgbGF5b3V0IHdo
ZW4gdGhlIGZsb3cgdGhyZWFkIGlzIGluIHRoZSBvdmVyZmxvdworICAgICAgICBvciB0aGUgZmlu
YWwgbGF5b3V0IHBoYXNlLgorCisgICAgICAgIFRlc3RzOiBUaGUgb2xkIHRlc3RzIHdlcmUgbW9k
aWZpZWQgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlIGNoYW5nZS4KKworICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJz
ZXQpOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0TmFtZWRGbG93OjpvdmVyc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5h
bWVkRmxvdzo6Zmlyc3RFbXB0eVJlZ2lvbkluZGV4KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6
OmJ1aWxkQXJyYXlGb3JSZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OnVw
ZGF0ZUZsb3dUaHJlYWRzSW50b01lYXN1cmVDb250ZW50UGhhc2UpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29t
cHV0ZU92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmxheW91dCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93RnJhZ21lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQ6OmxheW91dEJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50OjpzZXRSZWdpb25PdmVyc2V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTmFtZWRGbG93RnJhZ21lbnQ6OnJlZ2lvbk92ZXJzZXRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6dXBkYXRlT3ZlcnNldFN0YXRlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck5hbWVkRmxvd1RocmVhZDo6UmVuZGVyTmFtZWRGbG93VGhyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y29tcHV0ZU92ZXJmbG93KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25FdmVudHMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0
ZUV2ZW50SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFk
OjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudElmTmVlZGVkKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclJlZ2lvbi5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgorCiAy
MDE0LTAyLTI2ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gUmVncmVzc2lvbiB3aGVuIHNob3dpbmcgdGhlIGNhcHRpb25zIG1l
bnUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3OWQxNTc5ZGI5ZDUwZTM4NjVkMDkyZjMyNGFh
YWExNWYyNDY3MzQxLi41MzcwOWQ1ZGIxMWU5ZDU1YjllMjU2MmZhZjE4OGU0Nzk1Yjg1ZWE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yNTY5LDcgKzI1NjksNyBAQCBjb25zdCBBdG9taWNT
dHJpbmcmIEVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQoKSBjb25zdAogICAgIGlmICghZG9j
dW1lbnQoKS5jc3NSZWdpb25zRW5hYmxlZCgpIHx8ICFyZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgp
KQogICAgICAgICByZXR1cm4gdW5kZWZpbmVkU3RhdGU7CiAKLSAgICBzd2l0Y2ggKHJlbmRlck5h
bWVkRmxvd0ZyYWdtZW50KCktPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpKSB7CisgICAgc3dpdGNoIChy
ZWdpb25PdmVyc2V0U3RhdGUoKSkgewogICAgIGNhc2UgUmVnaW9uRml0OiB7CiAgICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaXRTdGF0ZSwgKCJmaXQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBmaXRTdGF0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKaW5kZXggY2ZmMmRkNjU5NjkxMmEw
MzNhOTNjOWFjNWE4MTFhODhmNGRkMDJhZi4uNjMxMTFhNGU4MTFlOTM3YjkxN2E2NTk1MWQwNzQ0
NjgzOGYwM2RhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKQEAgLTY5
LDcgKzY5LDE1IEBAIGJvb2wgV2ViS2l0TmFtZWRGbG93OjpvdmVyc2V0KCkgY29uc3QKIAogICAg
IC8vIFRoZSByZW5kZXJlciBtYXkgYmUgZGVzdHJveWVkIG9yIGNyZWF0ZWQgYWZ0ZXIgdGhlIHN0
eWxlIHVwZGF0ZS4KICAgICAvLyBCZWNhdXNlIHRoaXMgaXMgY2FsbGVkIGZyb20gSlMsIHdoZXJl
IHRoZSB3cmFwcGVyIGtlZXBzIGEgcmVmZXJlbmNlIHRvIHRoZSBOYW1lZEZsb3csIG5vIGd1YXJk
IGlzIG5lY2Vzc2FyeS4KLSAgICByZXR1cm4gbV9wYXJlbnRGbG93VGhyZWFkID8gbV9wYXJlbnRG
bG93VGhyZWFkLT5vdmVyc2V0KCkgOiB0cnVlOworICAgIGlmICghbV9wYXJlbnRGbG93VGhyZWFk
IHx8ICFtX3BhcmVudEZsb3dUaHJlYWQtPmhhc1JlZ2lvbnMoKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBjb25zdCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogbmFtZWRGbG93RnJhZ21l
bnQgPSB0b1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50KG1fcGFyZW50Rmxvd1RocmVhZC0+bGFzdFJl
Z2lvbigpKTsKKyAgICBBU1NFUlQobmFtZWRGbG93RnJhZ21lbnQtPmdlbmVyYXRpbmdFbGVtZW50
KCkpOworICAgIGlmIChuYW1lZEZsb3dGcmFnbWVudC0+Z2VuZXJhdGluZ0VsZW1lbnQoKS0+cmVn
aW9uT3ZlcnNldFN0YXRlKCkgPT0gUmVnaW9uT3ZlcnNldCkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpbkZsb3dUaHJl
YWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93VGhy
ZWFkKQpAQCAtMTA3LDcgKzExNSw4IEBAIGludCBXZWJLaXROYW1lZEZsb3c6OmZpcnN0RW1wdHlS
ZWdpb25JbmRleCgpIGNvbnN0CiAgICAgICAgIGlmIChuYW1lZEZsb3dGcmFnbWVudC0+aXNQc2V1
ZG9FbGVtZW50UmVnaW9uKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgY291bnRO
b25Qc2V1ZG9SZWdpb25zKys7Ci0gICAgICAgIGlmIChuYW1lZEZsb3dGcmFnbWVudC0+cmVnaW9u
T3ZlcnNldFN0YXRlKCkgPT0gUmVnaW9uRW1wdHkpCisgICAgICAgIEFTU0VSVChuYW1lZEZsb3dG
cmFnbWVudC0+Z2VuZXJhdGluZ0VsZW1lbnQoKSk7CisgICAgICAgIGlmIChuYW1lZEZsb3dGcmFn
bWVudC0+Z2VuZXJhdGluZ0VsZW1lbnQoKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCkgPT0gUmVnaW9u
RW1wdHkpCiAgICAgICAgICAgICByZXR1cm4gY291bnROb25Qc2V1ZG9SZWdpb25zOwogICAgIH0K
ICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcAppbmRleCAxYTBiYjk4ODI4MzMzZjdhMWNjNTdjNzQ2YWMyYzk2NmYwMGQxZThj
Li41ZTE2NGU0NWMxMDYyZGJkODBkZTEwNDgyNGFlYjQ0MDU2MjJlMDM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTExOTYsNyArMTE5
Niw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6Q1NTOjpSZWdpb24+PiBJCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHJlZ2lvbkxpc3QtPmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgSW5zcGVjdG9yOjpUeXBl
QnVpbGRlcjo6Q1NTOjpSZWdpb246OlJlZ2lvbk92ZXJzZXQ6OkVudW0gcmVnaW9uT3ZlcnNldDsK
IAotICAgICAgICBzd2l0Y2ggKHRvRWxlbWVudChyZWdpb25MaXN0LT5pdGVtKGkpKS0+cmVuZGVy
TmFtZWRGbG93RnJhZ21lbnQoKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCkpIHsKKyAgICAgICAgc3dp
dGNoICh0b0VsZW1lbnQocmVnaW9uTGlzdC0+aXRlbShpKSktPnJlZ2lvbk92ZXJzZXRTdGF0ZSgp
KSB7CiAgICAgICAgIGNhc2UgUmVnaW9uRml0OgogICAgICAgICAgICAgcmVnaW9uT3ZlcnNldCA9
IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNTUzo6UmVnaW9uOjpSZWdpb25PdmVyc2V0OjpGaXQ7
CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxv
d1RocmVhZENvbnRyb2xsZXIuY3BwCmluZGV4IDBmYjE5OGE5YWFkZTRmZDFjMWUxZWE2NDZlODU1
ZTYxNGU0MGQ5NzAuLmFmNTFiNTUxNDY0Njc3MTNhODYyYzI3NDA3Yzc5Y2IzNzg2N2E1MTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNw
cApAQCAtMjQ2LDYgKzI0Niw3IEBAIHZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnVwZGF0ZUZs
b3dUaHJlYWRzSW50b01lYXN1cmVDb250ZW50UGhhc2UoKQogICAgICAgICBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOwogICAgICAgICBBU1NFUlQoZmxvd1JlbmRl
cmVyLT5pbkZpbmFsTGF5b3V0UGhhc2UoKSk7CiAKKyAgICAgICAgZmxvd1JlbmRlcmVyLT5kaXNw
YXRjaFJlZ2lvbkV2ZW50cygpOwogICAgICAgICBmbG93UmVuZGVyZXItPnNldExheW91dFBoYXNl
KFJlbmRlckZsb3dUaHJlYWQ6OkxheW91dFBoYXNlTWVhc3VyZUNvbnRlbnQpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGZmYTI2ODg2NzBh
ZWI4Y2FlZGU4ZmE2MWE5MmU4ZTMyOTk3ZjNhNTMuLmVjNTgyOGU0NTczZGUxYjEzYjNkNjhjZWI2
MTc4NDFmMzAxMGM3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cApAQCAtMTU5MCw5ICsxNTkwLDYgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZU92ZXJmbG93
KExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlLCBib29sKQogCiAgICAgLy8gQWRkIHZpc3Vh
bCBvdmVyZmxvdyBmcm9tIHRoZW1lLgogICAgIGFkZFZpc3VhbE92ZXJmbG93RnJvbVRoZW1lKCk7
Ci0KLSAgICBpZiAoaXNSZW5kZXJOYW1lZEZsb3dUaHJlYWQoKSkKLSAgICAgICAgdG9SZW5kZXJO
YW1lZEZsb3dUaHJlYWQodGhpcyktPmNvbXB1dGVPdmVyc2V0U3RhdGVGb3JSZWdpb25zKG9sZENs
aWVudEFmdGVyRWRnZSk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OmNsZWFyTGF5b3V0T3ZlcmZs
b3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmlu
ZGV4IGZkNzU1YTVhMjczODE2MmM0NmYwNDY0OGU3NmYyYjE0NmJjOGZmY2YuLjhiODczZjFmNzMy
MTcwZTQ4MWMzYWNiNmM3MTZjY2I2ZDU4NTEwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTU4LDggKzU4LDYgQEAgUmVuZGVyRmxvd1Ro
cmVhZDo6UmVuZGVyRmxvd1RocmVhZChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVy
U3R5bGU+IHN0eWwKICAgICAsIG1fcmVnaW9uc0ludmFsaWRhdGVkKGZhbHNlKQogICAgICwgbV9y
ZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsV2lkdGgodHJ1ZSkKICAgICAsIG1fcmVnaW9uc0hhdmVV
bmlmb3JtTG9naWNhbEhlaWdodCh0cnVlKQotICAgICwgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVw
ZGF0ZUV2ZW50KGZhbHNlKQotICAgICwgbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVu
dChmYWxzZSkKICAgICAsIG1fcGFnZUxvZ2ljYWxTaXplQ2hhbmdlZChmYWxzZSkKICAgICAsIG1f
bGF5b3V0UGhhc2UoTGF5b3V0UGhhc2VNZWFzdXJlQ29udGVudCkKICAgICAsIG1fbmVlZHNUd29Q
aGFzZXNMYXlvdXQoZmFsc2UpCkBAIC0yMzYsMTIgKzIzNCw2IEBAIHZvaWQgUmVuZGVyRmxvd1Ro
cmVhZDo6bGF5b3V0KCkKICAgICAgICAgaWYgKHVwZGF0ZUFsbExheWVyVG9SZWdpb25NYXBwaW5n
cygpKQogICAgICAgICAgICAgbGF5ZXIoKS0+Y29tcG9zaXRvcigpLnNldENvbXBvc2l0aW5nTGF5
ZXJzTmVlZFJlYnVpbGQoKTsKICAgICB9Ci0KLSAgICBpZiAoc2hvdWxkRGlzcGF0Y2hSZWdpb25M
YXlvdXRVcGRhdGVFdmVudCgpKQotICAgICAgICBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50KCk7Ci0gICAgCi0gICAgaWYgKHNob3VsZERpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2
ZW50KCkpCi0gICAgICAgIGRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCk7CiB9CiAK
IGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6aGFzQ29tcG9zaXRpbmdSZWdpb25EZXNjZW5kYW50KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4
IDNiOTYzMTBhNzM0MWEwMWM4NzBkNTEzZDQxMjQ5ZTlkYzA5MmNjYWIuLjViZGFjMzE2ODU3YjA2
NDNlZTAzMmNlMDkxMjNkN2UzMzU5ZmMxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMjExLDcgKzIxMSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJGbG93VGhyZWFkKCkgY29uc3Qgb3ZlcnJpZGUg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlk
ZSBmaW5hbDsKIAogICAgIC8vIEFsd2F5cyBjcmVhdGUgYSBSZW5kZXJMYXllciBmb3IgdGhlIFJl
bmRlckZsb3dUaHJlYWQgc28gdGhhdCB3ZQogICAgIC8vIGNhbiBlYXNpbHkgYXZvaWQgZHJhd2lu
ZyB0aGUgY2hpbGRyZW4gZGlyZWN0bHkuCkBAIC0yMjEsNiArMjIwLDcgQEAgcHJvdGVjdGVkOgog
ICAgIFJlbmRlckZsb3dUaHJlYWQoRG9jdW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPik7CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwogCiAgICAgLy8gT3ZlcnJpZGRlbiBieSBjb2x1
bW5zL3BhZ2VzIHRvIHNldCB1cCBhbiBpbml0aWFsIGxvZ2ljYWwgd2lkdGggb2YgdGhlIHBhZ2Ug
d2lkdGggZXZlbiB3aGVuCiAgICAgLy8gbm8gcmVnaW9ucyBoYXZlIGJlZW4gZ2VuZXJhdGVkIHll
dC4KQEAgLTIzOCwxNiArMjM4LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgdXBkYXRlTGF5ZXJU
b1JlZ2lvbk1hcHBpbmdzKCk7CiAgICAgdm9pZCB1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXllcihS
ZW5kZXJMYXllciosIExheWVyVG9SZWdpb25NYXAmLCBSZWdpb25Ub0xheWVyTGlzdE1hcCYsIGJv
b2wmIG5lZWRzTGF5ZXJVcGRhdGUpOwogCi0gICAgdm9pZCBzZXREaXNwYXRjaFJlZ2lvbkxheW91
dFVwZGF0ZUV2ZW50KGJvb2wgdmFsdWUpIHsgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50ID0gdmFsdWU7IH0KLSAgICBib29sIHNob3VsZERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRl
RXZlbnQoKSB7IHJldHVybiBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQ7IH0KLSAg
ICAKLSAgICB2b2lkIHNldERpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KGJvb2wgdmFs
dWUpIHsgbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCA9IHZhbHVlOyB9Ci0gICAg
Ym9vbCBzaG91bGREaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQ7IH0KLSAgICAKLSAgICAvLyBP
dmVycmlkZSBpZiB0aGUgZmxvdyB0aHJlYWQgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgZGlzcGF0
Y2hpbmcgZXZlbnRzIHdoZW4gdGhlIGZsb3cgbGF5b3V0IGlzIHVwZGF0ZWQgKGUuZy4gZm9yIG5h
bWVkIGZsb3dzKQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50KCkgeyBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgPSBmYWxzZTsgfQotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpIHsgbV9kaXNw
YXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCA9IGZhbHNlOyB9Ci0KICAgICB2b2lkIGluaXRp
YWxpemVSZWdpb25zQ29tcHV0ZWRBdXRvSGVpZ2h0KFJlbmRlclJlZ2lvbiogPSAwKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBhdXRvR2VuZXJhdGVSZWdpb25zVG9CbG9ja09mZnNldChMYXlvdXRVbml0
KSB7IH07CkBAIC0zNDIsOCArMzMyLDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9yZWdpb25z
SW52YWxpZGF0ZWQgOiAxOwogICAgIGJvb2wgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsV2lk
dGggOiAxOwogICAgIGJvb2wgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0IDogMTsK
LSAgICBib29sIG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA6IDE7Ci0gICAgYm9v
bCBtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50IDogMTsKICAgICBib29sIG1fcGFn
ZUxvZ2ljYWxTaXplQ2hhbmdlZCA6IDE7CiAgICAgdW5zaWduZWQgbV9sYXlvdXRQaGFzZSA6IDI7
CiAgICAgYm9vbCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwCmluZGV4IGRlYTRl
Yjk0ZDQ5NWU3ODRhOTRmZTFmM2U0Njg5ZDJmOTkzMTUzN2QuLjUyZjJmZWM4ZDk0ZTRjOWMxODZl
MjdhYzkxZmU0MjMyZWQ0OWNkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmNwcApAQCAtMjU3LDggKzI1NywxMCBAQCB2b2lk
IFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRy
ZW4sIExheW91dFVuaXQpCiAgICAgICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkK
ICAgICAgICAgICAgIG9sZFJlZ2lvblJlY3QgPSBvbGRSZWdpb25SZWN0LnRyYW5zcG9zZWRSZWN0
KCk7CiAKLSAgICAgICAgaWYgKG1fZmxvd1RocmVhZC0+aW5PdmVyZmxvd0xheW91dFBoYXNlKCkg
fHwgbV9mbG93VGhyZWFkLT5pbkZpbmFsTGF5b3V0UGhhc2UoKSkKKyAgICAgICAgaWYgKG1fZmxv
d1RocmVhZC0+aW5PdmVyZmxvd0xheW91dFBoYXNlKCkgfHwgbV9mbG93VGhyZWFkLT5pbkZpbmFs
TGF5b3V0UGhhc2UoKSkgewogICAgICAgICAgICAgY29tcHV0ZU92ZXJmbG93RnJvbUZsb3dUaHJl
YWQoKTsKKyAgICAgICAgICAgIHVwZGF0ZU92ZXJzZXRTdGF0ZSgpOworICAgICAgICB9CiAKICAg
ICAgICAgaWYgKGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkgJiYgbV9mbG93VGhyZWFkLT5pbk1lYXN1
cmVDb250ZW50TGF5b3V0UGhhc2UoKSkgewogICAgICAgICAgICAgbV9mbG93VGhyZWFkLT5pbnZh
bGlkYXRlUmVnaW9ucygpOwpAQCAtMjcyLDYgKzI3NCw1NSBAQCB2b2lkIFJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQp
CiAgICAgfQogfQogCit2b2lkIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpzZXRSZWdpb25PdmVy
c2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlIHN0YXRlKQoreworICAgIEFTU0VSVChnZW5lcmF0
aW5nRWxlbWVudCgpKTsKKworICAgIGdlbmVyYXRpbmdFbGVtZW50KCktPnNldFJlZ2lvbk92ZXJz
ZXRTdGF0ZShzdGF0ZSk7Cit9CisKK1JlZ2lvbk92ZXJzZXRTdGF0ZSBSZW5kZXJOYW1lZEZsb3dG
cmFnbWVudDo6cmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZ2VuZXJh
dGluZ0VsZW1lbnQoKSk7CisKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIFJl
Z2lvblVuZGVmaW5lZDsKKworICAgIHJldHVybiBnZW5lcmF0aW5nRWxlbWVudCgpLT5yZWdpb25P
dmVyc2V0U3RhdGUoKTsKK30KKwordm9pZCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6dXBkYXRl
T3ZlcnNldFN0YXRlKCkKK3sKKyAgICBBU1NFUlQoaXNWYWxpZCgpKTsKKworICAgIFJlbmRlck5h
bWVkRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IG5hbWVkRmxvd1RocmVhZCgpOworICAgIEFTU0VS
VChmbG93VGhyZWFkICYmIChmbG93VGhyZWFkLT5pbk92ZXJmbG93TGF5b3V0UGhhc2UoKSB8fCBm
bG93VGhyZWFkLT5pbkZpbmFsTGF5b3V0UGhhc2UoKSkpOworCisgICAgTGF5b3V0VW5pdCBmbG93
Q29udGVudEJvdHRvbSA9IGZsb3dUaHJlYWQtPmZsb3dDb250ZW50Qm90dG9tKCk7CisgICAgYm9v
bCBpc0hvcml6b250YWxXcml0aW5nTW9kZSA9IGZsb3dUaHJlYWQtPmlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCk7CisKKyAgICBMYXlvdXRVbml0IGZsb3dNaW4gPSBmbG93Q29udGVudEJvdHRvbSAt
IChpc0hvcml6b250YWxXcml0aW5nTW9kZSA/IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLnkoKSA6
IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLngoKSk7CisgICAgTGF5b3V0VW5pdCBmbG93TWF4ID0g
Zmxvd0NvbnRlbnRCb3R0b20gLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPyBmbG93VGhyZWFk
UG9ydGlvblJlY3QoKS5tYXhZKCkgOiBmbG93VGhyZWFkUG9ydGlvblJlY3QoKS5tYXhYKCkpOwor
CisgICAgUmVnaW9uT3ZlcnNldFN0YXRlIHByZXZpb3VzU3RhdGUgPSByZWdpb25PdmVyc2V0U3Rh
dGUoKTsKKyAgICBSZWdpb25PdmVyc2V0U3RhdGUgc3RhdGUgPSBSZWdpb25GaXQ7CisgICAgaWYg
KGZsb3dNaW4gPD0gMCkKKyAgICAgICAgc3RhdGUgPSBSZWdpb25FbXB0eTsKKyAgICBpZiAoZmxv
d01heCA+IDAgJiYgaXNMYXN0UmVnaW9uKCkpCisgICAgICAgIHN0YXRlID0gUmVnaW9uT3ZlcnNl
dDsKKyAgICAKKyAgICBzZXRSZWdpb25PdmVyc2V0U3RhdGUoc3RhdGUpOworCisgICAgLy8gRGV0
ZXJtaW5lIHdoZXRoZXIgdGhlIE5hbWVkRmxvdyBvYmplY3Qgc2hvdWxkIGRpc3BhdGNoIGEgcmVn
aW9uTGF5b3V0VXBkYXRlIGV2ZW50CisgICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gc3RhdGUKKyAg
ICAgICAgfHwgc3RhdGUgPT0gUmVnaW9uRml0CisgICAgICAgIHx8IHN0YXRlID09IFJlZ2lvbk92
ZXJzZXQpCisgICAgICAgIGZsb3dUaHJlYWQtPnNldERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRl
RXZlbnQodHJ1ZSk7CisgICAgCisgICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gc3RhdGUpCisgICAg
ICAgIGZsb3dUaHJlYWQtPnNldERpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KHRydWUp
OworfQorCiB2b2lkIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpjaGVja1JlZ2lvblN0eWxlKCkK
IHsKICAgICBBU1NFUlQobV9mbG93VGhyZWFkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKaW5kZXggYjU4MmVmODYzN2E1YzUwMjNm
ZWY4YjAzOTRkNmE3NTkzMjcxMWQ5Zi4uNTBhZWYzOTVlMzYxZjkyNGY5YTQ5ZjA1NTY0OTFjZmI5
MzljZWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVk
Rmxvd0ZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVk
Rmxvd0ZyYWdtZW50LmgKQEAgLTEyNyw2ICsxMjcsMTAgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wg
c2hvdWxkSGF2ZUF1dG9Mb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CiAKKyAgICB2b2lkIHVwZGF0ZU92
ZXJzZXRTdGF0ZSgpOworICAgIHZvaWQgc2V0UmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lvbk92ZXJz
ZXRTdGF0ZSk7CisgICAgUmVnaW9uT3ZlcnNldFN0YXRlIHJlZ2lvbk92ZXJzZXRTdGF0ZSgpIGNv
bnN0OworCiAgICAgdmlydHVhbCB2b2lkIGxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJl
biwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDApIG92ZXJyaWRlOwogCiAgICAgc3Ry
dWN0IE9iamVjdFJlZ2lvblN0eWxlSW5mbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCmluZGV4IDNhMDk4YWZjZDUwMTQzZjk3ZGUw
MWZkZjk3MzMxZDMxNGZmZWM4MjEuLjQwMTRjMTcwOTZmNmIxYzRiZGUxZDFkZmE3ZTE2M2QxOTE2
MzU1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZs
b3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZs
b3dUaHJlYWQuY3BwCkBAIC00Niw4ICs0Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVu
ZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgUGFzc1JlZjxXZWJLaXROYW1lZEZsb3c+
IG5hbWVkRmxvdykKICAgICA6IFJlbmRlckZsb3dUaHJlYWQoZG9jdW1lbnQsIHN0ZDo6bW92ZShz
dHlsZSkpCi0gICAgLCBtX292ZXJzZXQodHJ1ZSkKICAgICAsIG1faGFzUmVnaW9uc1dpdGhTdHls
aW5nKGZhbHNlKQorICAgICwgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KGZhbHNl
KQorICAgICwgbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudChmYWxzZSkKICAgICAs
IG1fbmFtZWRGbG93KHN0ZDo6bW92ZShuYW1lZEZsb3cpKQogICAgICwgbV9yZWdpb25MYXlvdXRV
cGRhdGVFdmVudFRpbWVyKHRoaXMsICZSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lvbkxheW91
dFVwZGF0ZUV2ZW50VGltZXJGaXJlZCkKICAgICAsIG1fcmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50
VGltZXIodGhpcywgJlJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVnaW9uT3ZlcnNldENoYW5nZUV2
ZW50VGltZXJGaXJlZCkKQEAgLTI4Myw1MSArMjg0LDMxIEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpyZWdpb25DaGFuZ2VkV3JpdGluZ01vZGUoUmVuZGVyUmVnaW9uKiByZWdpb24pCiAg
ICAgICAgIHVwZGF0ZVdyaXRpbmdNb2RlKCk7CiB9CiAKLXZvaWQgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkOjpjb21wdXRlT3ZlcnNldFN0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENsaWVudEFm
dGVyRWRnZSkKLXsKLSAgICBMYXlvdXRVbml0IGhlaWdodCA9IG9sZENsaWVudEFmdGVyRWRnZTsK
LQotICAgIC8vIEZJWE1FOiB0aGUgdmlzdWFsIG92ZXJmbG93IG9mIG1pZGRsZSByZWdpb24gKGlm
IGl0IGlzIHRoZSBsYXN0IG9uZSB0byBjb250YWluIGFueSBjb250ZW50IGluIGEgcmVuZGVyIGZs
b3cgdGhyZWFkKQotICAgIC8vIG1pZ2h0IG5vdCBiZSB0YWtlbiBpbnRvIGFjY291bnQgYmVjYXVz
ZSB0aGUgcmVuZGVyIGZsb3cgdGhyZWFkIGhlaWdodCBpcyBncmVhdGVyIHRoYXQgdGhhdCByZWdp
b25zIGhlaWdodCArIGl0cyB2aXN1YWwgb3ZlcmZsb3cKLSAgICAvLyBiZWNhdXNlIG9mIGhvdyBj
b21wdXRlTG9naWNhbEhlaWdodCBpcyBpbXBsZW1lbnRlZCBmb3IgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkIChhcyBhIHN1bSBvZiBhbGwgcmVnaW9ucyBoZWlnaHQpLgotICAgIC8vIFRoaXMgbWVhbnMg
dGhhdCB0aGUgbWlkZGxlIHJlZ2lvbiB3aWxsIGJlIG1hcmtlZCBhcyBmaXQgKGV2ZW4gaWYgaXQg
aGFzIHZpc3VhbCBvdmVyZmxvdyBmbG93aW5nIGludG8gdGhlIG5leHQgcmVnaW9uKQotICAgIGlm
IChoYXNSZW5kZXJPdmVyZmxvdygpCi0gICAgICAgICYmICggKGlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkgJiYgdmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4WSgpID4gY2xpZW50Qm94UmVjdCgpLm1h
eFkoKSkKLSAgICAgICAgICAgIHx8ICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiB2aXN1
YWxPdmVyZmxvd1JlY3QoKS5tYXhYKCkgPiBjbGllbnRCb3hSZWN0KCkubWF4WCgpKSkpCi0gICAg
ICAgIGhlaWdodCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyB2aXN1YWxPdmVyZmxvd1Jl
Y3QoKS5tYXhZKCkgOiB2aXN1YWxPdmVyZmxvd1JlY3QoKS5tYXhYKCk7Ci0KLSAgICBSZW5kZXJO
YW1lZEZsb3dGcmFnbWVudCogbGFzdEZyYWdtZW50ID0gdG9SZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dChsYXN0UmVnaW9uKCkpOwotICAgIGZvciAoYXV0byYgbmFtZWRGbG93RnJhZ21lbnQgOiBtX3Jl
Z2lvbkxpc3QpIHsKLSAgICAgICAgTGF5b3V0VW5pdCBmbG93TWluID0gaGVpZ2h0IC0gKGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBuYW1lZEZsb3dGcmFnbWVudC0+Zmxvd1RocmVhZFBvcnRp
b25SZWN0KCkueSgpIDogbmFtZWRGbG93RnJhZ21lbnQtPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgp
LngoKSk7Ci0gICAgICAgIExheW91dFVuaXQgZmxvd01heCA9IGhlaWdodCAtIChpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gbmFtZWRGbG93RnJhZ21lbnQtPmZsb3dUaHJlYWRQb3J0aW9uUmVj
dCgpLm1heFkoKSA6IG5hbWVkRmxvd0ZyYWdtZW50LT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS5t
YXhYKCkpOwotICAgICAgICBSZWdpb25PdmVyc2V0U3RhdGUgcHJldmlvdXNTdGF0ZSA9IG5hbWVk
Rmxvd0ZyYWdtZW50LT5yZWdpb25PdmVyc2V0U3RhdGUoKTsKLSAgICAgICAgUmVnaW9uT3ZlcnNl
dFN0YXRlIHN0YXRlID0gUmVnaW9uRml0OwotICAgICAgICBpZiAoZmxvd01pbiA8PSAwKQotICAg
ICAgICAgICAgc3RhdGUgPSBSZWdpb25FbXB0eTsKLSAgICAgICAgaWYgKGZsb3dNYXggPiAwICYm
IG5hbWVkRmxvd0ZyYWdtZW50ID09IGxhc3RGcmFnbWVudCkKLSAgICAgICAgICAgIHN0YXRlID0g
UmVnaW9uT3ZlcnNldDsKLSAgICAgICAgbmFtZWRGbG93RnJhZ21lbnQtPnNldFJlZ2lvbk92ZXJz
ZXRTdGF0ZShzdGF0ZSk7Ci0gICAgICAgIC8vIGRldGVybWluZSB3aGV0aGVyIHRoZSBOYW1lZEZs
b3cgb2JqZWN0IHNob3VsZCBkaXNwYXRjaCBhIHJlZ2lvbkxheW91dFVwZGF0ZSBldmVudAotICAg
ICAgICAvLyBGSVhNRTogY3VycmVudGx5IGl0IGNhbm5vdCBkZXRlcm1pbmUgd2hldGhlciBhIHJl
Z2lvbiB3aG9zZSByZWdpb25PdmVyc2V0IHN0YXRlIHJlbWFpbmVkIGVpdGhlciAiZml0IiBvciAi
b3ZlcnNldCIgaGFzIGFjdHVhbGx5Ci0gICAgICAgIC8vIGNoYW5nZWQsIHNvIGl0IGp1c3QgYXNz
dW1lcyB0aGF0IHRoZSBOYW1lZEZsb3cgc2hvdWxkIGRpc3BhdGNoIHRoZSBldmVudAotICAgICAg
ICBpZiAocHJldmlvdXNTdGF0ZSAhPSBzdGF0ZQotICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVn
aW9uRml0Ci0gICAgICAgICAgICB8fCBzdGF0ZSA9PSBSZWdpb25PdmVyc2V0KQotICAgICAgICAg
ICAgc2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCh0cnVlKTsKLSAgICAgICAgCi0g
ICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlKQotICAgICAgICAgICAgc2V0RGlzcGF0
Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQodHJ1ZSk7Ci0gICAgfQotICAgIAordm9pZCBSZW5k
ZXJOYW1lZEZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvdyhMYXlvdXRVbml0IG9sZENsaWVudEFm
dGVyRWRnZSwgYm9vbCByZWNvbXB1dGVGbG9hdHMpCit7CisgICAgUmVuZGVyRmxvd1RocmVhZDo6
Y29tcHV0ZU92ZXJmbG93KG9sZENsaWVudEFmdGVyRWRnZSwgcmVjb21wdXRlRmxvYXRzKTsKKwor
ICAgIG1fZmxvd0NvbnRlbnRCb3R0b20gPSBvbGRDbGllbnRBZnRlckVkZ2U7Cit9CisKK3ZvaWQg
UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpsYXlvdXQoKQoreworICAgIFJlbmRlckZsb3dUaHJlYWQ6
OmxheW91dCgpOworCiAgICAgLy8gSWYgdGhlIG51bWJlciBvZiByZWdpb25zIGhhcyBjaGFuZ2Vk
IHNpbmNlIHdlIGxhc3QgY29tcHV0ZWQgdGhlIG92ZXJzZXQgcHJvcGVydHksIHNjaGVkdWxlIHRo
ZSByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50LgogICAgIGlmIChwcmV2aW91c1JlZ2lvbkNvdW50
Q2hhbmdlZCgpKSB7CiAgICAgICAgIHNldERpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50
KHRydWUpOwogICAgICAgICB1cGRhdGVQcmV2aW91c1JlZ2lvbkNvdW50KCk7CiAgICAgfQogCi0g
ICAgLy8gV2l0aCB0aGUgcmVnaW9ucyBvdmVyZmxvdyBzdGF0ZSBjb21wdXRlZCB3ZSBjYW4gYWxz
byBzZXQgdGhlIG92ZXJzZXQgZmxhZyBmb3IgdGhlIG5hbWVkIGZsb3cuCi0gICAgLy8gSWYgdGhl
cmUgYXJlIG5vIHZhbGlkIHJlZ2lvbnMgaW4gdGhlIGNoYWluLCBvdmVyc2V0IGlzIHRydWUuCi0g
ICAgbV9vdmVyc2V0ID0gbGFzdEZyYWdtZW50ID8gbGFzdEZyYWdtZW50LT5yZWdpb25PdmVyc2V0
U3RhdGUoKSA9PSBSZWdpb25PdmVyc2V0IDogdHJ1ZTsKKyAgICBkaXNwYXRjaFJlZ2lvbkxheW91
dFVwZGF0ZUV2ZW50SWZOZWVkZWQoKTsKK30KKwordm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6
OmRpc3BhdGNoUmVnaW9uRXZlbnRzKCkKK3sKKyAgICBBU1NFUlQoaW5GaW5hbExheW91dFBoYXNl
KCkpOworCisgICAgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRJZk5lZWRlZCgpOwog
fQogCiB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y2hlY2tJbnZhbGlkUmVnaW9ucygpCkBA
IC00NTgsMTggKzQzOSwyNCBAQCBib29sIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6aXNDaGlsZEFs
bG93ZWQoY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZCwgY29uc3QgUmVuZAogICAgIHJldHVybiB0
b0VsZW1lbnQob3JpZ2luYWxQYXJlbnQpLT5yZW5kZXJlcigpLT5pc0NoaWxkQWxsb3dlZChjaGls
ZCwgc3R5bGUpOwogfQogCi12b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdp
b25MYXlvdXRVcGRhdGVFdmVudCgpCit2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0
Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudElmTmVlZGVkKCkKIHsKLSAgICBSZW5kZXJGbG93VGhy
ZWFkOjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCk7CisgICAgaWYgKCFtX2Rpc3Bh
dGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGlz
cGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA9IGZhbHNlOwogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkVXBkYXRlUmVnaW9uTGF5b3V0KCZkb2N1bWVudCgpLCAmbmFtZWRGbG93
KCkpOwogCiAgICAgaWYgKCFtX3JlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXIuaXNBY3RpdmUo
KSAmJiBuYW1lZEZsb3coKS5oYXNFdmVudExpc3RlbmVycygpKQogICAgICAgICBtX3JlZ2lvbkxh
eW91dFVwZGF0ZUV2ZW50VGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12b2lkIFJlbmRlck5h
bWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKQordm9pZCBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50SWZO
ZWVkZWQoKQogewotICAgIFJlbmRlckZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENo
YW5nZUV2ZW50KCk7CisgICAgaWYgKCFtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2
ZW50ID0gZmFsc2U7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VSZWdp
b25PdmVyc2V0KCZkb2N1bWVudCgpLCAmbmFtZWRGbG93KCkpOwogICAgIAogICAgIGlmICghbV9y
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lci5pc0FjdGl2ZSgpICYmIG5hbWVkRmxvdygpLmhh
c0V2ZW50TGlzdGVuZXJzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTmFtZWRGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93VGhyZWFkLmgKaW5kZXggMjY5ZGE3NzU2MmRlYTI1ZTkwYTQ4NzFlYjVjMTljOTUx
Mzk2ZWM1NC4uMzcwOTE2MjEzNjNjNzdjZDBkMzZkYmZkNDRjYjMzNDdjODQ0ZmY1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaApAQCAt
NjgsOSArNjgsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaW9uQ2hhbmdlZFdy
aXRpbmdNb2RlKFJlbmRlclJlZ2lvbiopIG92ZXJyaWRlOwogCi0gICAgYm9vbCBvdmVyc2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9vdmVyc2V0OyB9Ci0gICAgdm9pZCBjb21wdXRlT3ZlcnNldFN0YXRl
Rm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRnZSk7Ci0KICAgICB2b2lkIHJl
Z2lzdGVyTmFtZWRGbG93Q29udGVudEVsZW1lbnQoRWxlbWVudCYpOwogICAgIHZvaWQgdW5yZWdp
c3Rlck5hbWVkRmxvd0NvbnRlbnRFbGVtZW50KEVsZW1lbnQmKTsKICAgICBjb25zdCBOYW1lZEZs
b3dDb250ZW50RWxlbWVudHMmIGNvbnRlbnRFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29u
dGVudEVsZW1lbnRzOyB9CkBAIC04OSw2ICs4NiwxMiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlRmxvd0NoaWxkSW5mbyhSZW5kZXJPYmplY3QqKSBvdmVycmlkZSBmaW5hbDsK
IAorICAgIExheW91dFVuaXQgZmxvd0NvbnRlbnRCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX2Zs
b3dDb250ZW50Qm90dG9tOyB9CisgICAgdm9pZCBkaXNwYXRjaFJlZ2lvbkV2ZW50cygpOworCisg
ICAgdm9pZCBzZXREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KGJvb2wgdmFsdWUpIHsg
bV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50ID0gdmFsdWU7IH0KKyAgICB2b2lkIHNl
dERpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KGJvb2wgdmFsdWUpIHsgbV9kaXNwYXRj
aFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCA9IHZhbHVlOyB9CisKIHByb3RlY3RlZDoKICAgICB2
b2lkIHNldE1hcmtGb3JEZXN0cnVjdGlvbigpOwogICAgIHZvaWQgcmVzZXRNYXJrRm9yRGVzdHJ1
Y3Rpb24oKTsKQEAgLTk3LDkgKzEwMCwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Jl
bmRlck5hbWVkRmxvd1RocmVhZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3Qg
UmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZU92
ZXJmbG93KExheW91dFVuaXQsIGJvb2wgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGxheW91dCgpIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
UmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3Bh
dGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRJZk5lZWRlZCgpOworICAgIHZvaWQgZGlzcGF0Y2hS
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRJZk5lZWRlZCgpOwogCiAgICAgYm9vbCBkZXBlbmRzT24o
UmVuZGVyTmFtZWRGbG93VGhyZWFkKiBvdGhlclJlbmRlckZsb3dUaHJlYWQpIGNvbnN0OwogICAg
IHZvaWQgYWRkRGVwZW5kZW5jeU9uRmxvd1RocmVhZChSZW5kZXJOYW1lZEZsb3dUaHJlYWQqKTsK
QEAgLTEzNSwxNCArMTQwLDE4IEBAIHByaXZhdGU6CiAKICAgICBSZW5kZXJSZWdpb25MaXN0IG1f
aW52YWxpZFJlZ2lvbkxpc3Q7CiAKLSAgICBib29sIG1fb3ZlcnNldCA6IDE7CiAgICAgYm9vbCBt
X2hhc1JlZ2lvbnNXaXRoU3R5bGluZyA6IDE7CisgICAgYm9vbCBtX2Rpc3BhdGNoUmVnaW9uTGF5
b3V0VXBkYXRlRXZlbnQgOiAxOworICAgIGJvb2wgbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFu
Z2VFdmVudCA6IDE7CiAKICAgICAvLyBUaGUgRE9NIE9iamVjdCB0aGF0IHJlcHJlc2VudHMgYSBu
YW1lZCBmbG93LgogICAgIFJlZjxXZWJLaXROYW1lZEZsb3c+IG1fbmFtZWRGbG93OwogCiAgICAg
VGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFkPiBtX3JlZ2lvbkxheW91dFVwZGF0ZUV2ZW50VGlt
ZXI7CiAgICAgVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFkPiBtX3JlZ2lvbk92ZXJzZXRDaGFu
Z2VFdmVudFRpbWVyOworCisgICAgLy8gVXNlZCB0byBzdG9yZSB0aGUgY29udGVudCBib3R0b20g
dW50aWwgdGhlIG1vbWVudCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgb3ZlcnNldCBzdGF0ZS4KKyAg
ICBMYXlvdXRVbml0IG1fZmxvd0NvbnRlbnRCb3R0b207CiB9OwogCiBSRU5ERVJfT0JKRUNUX1RZ
UEVfQ0FTVFMoUmVuZGVyTmFtZWRGbG93VGhyZWFkLCBpc1JlbmRlck5hbWVkRmxvd1RocmVhZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRleCBmMjI0Njcy
NGM2ODhjMWYyNTQ1YjJhMmU4NGE2OWY1YmQxNmMxMjcxLi4yYzRlNTY2N2U1MTY5MzI2ZWFjMGJm
ZWQ3MjYzY2QxZGJhODEyYTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmNwcApAQCAtMTgxLDIzICsxODEsNiBAQCBMYXlvdXRSZWN0IFJlbmRlclJlZ2lvbjo6b3Zl
cmZsb3dSZWN0Rm9yRmxvd1RocmVhZFBvcnRpb24oY29uc3QgTGF5b3V0UmVjdCYgZmxvdwogICAg
IHJldHVybiBjbGlwUmVjdDsKIH0KIAotUmVnaW9uT3ZlcnNldFN0YXRlIFJlbmRlclJlZ2lvbjo6
cmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2VuZXJhdGluZ0VsZW1l
bnQoKSk7Ci0KLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIFJlZ2lvblVuZGVm
aW5lZDsKLQotICAgIHJldHVybiBnZW5lcmF0aW5nRWxlbWVudCgpLT5yZWdpb25PdmVyc2V0U3Rh
dGUoKTsKLX0KLQotdm9pZCBSZW5kZXJSZWdpb246OnNldFJlZ2lvbk92ZXJzZXRTdGF0ZShSZWdp
b25PdmVyc2V0U3RhdGUgc3RhdGUpCi17Ci0gICAgQVNTRVJUKGdlbmVyYXRpbmdFbGVtZW50KCkp
OwotCi0gICAgZ2VuZXJhdGluZ0VsZW1lbnQoKS0+c2V0UmVnaW9uT3ZlcnNldFN0YXRlKHN0YXRl
KTsKLX0KLQogTGF5b3V0VW5pdCBSZW5kZXJSZWdpb246OnBhZ2VMb2dpY2FsVG9wRm9yT2Zmc2V0
KExheW91dFVuaXQgLyogb2Zmc2V0ICovKSBjb25zdAogewogICAgIHJldHVybiBmbG93VGhyZWFk
KCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBmbG93VGhyZWFkUG9ydGlvblJlY3QoKS55
KCkgOiBmbG93VGhyZWFkUG9ydGlvblJlY3QoKS54KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmgKaW5kZXggNTVkMTU0N2E5ZDQ0NzU4ZTM3ZGRlZDdiNzlkM2Y1YTY3OTU5
MjAzNi4uYTRlZjZiZTg4ODc2MzQ4ODEzYjgzOGYwYjdhYzkyNmZmMTZjZTc0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtNzksOSArNzksNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0xhc3RSZWdpb24oKSBjb25zdDsKICAgICBib29sIHNob3VsZENsaXBGbG93
VGhyZWFkQ29udGVudCgpIGNvbnN0OwogCi0gICAgUmVnaW9uT3ZlcnNldFN0YXRlIHJlZ2lvbk92
ZXJzZXRTdGF0ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0UmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lv
bk92ZXJzZXRTdGF0ZSk7Ci0KICAgICAvLyBUaGVzZSBtZXRob2RzIHJlcHJlc2VudCB0aGUgd2lk
dGggYW5kIGhlaWdodCBvZiBhICJwYWdlIiBhbmQgZm9yIGEgUmVuZGVyUmVnaW9uIHRoZXkgYXJl
IGp1c3QgdGhlCiAgICAgLy8gY29udGVudCB3aWR0aCBhbmQgY29udGVudCBoZWlnaHQgb2YgYSBy
ZWdpb24uIEZvciBSZW5kZXJSZWdpb25TZXRzLCBob3dldmVyLCB0aGV5IHdpbGwgYmUgdGhlIHdp
ZHRoIGFuZAogICAgIC8vIGhlaWdodCBvZiBhIHNpbmdsZSBjb2x1bW4gb3IgcGFnZSBpbiB0aGUg
c2V0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDcwY2U4ZmNkM2Y4ODk1MTdiYmNlMmY1NDEwNDJlNjQ2NWI2YTgwYTguLjA0
Y2ExZTRkYmY4Mjg1MTBiM2ZhODJjZmRkMmM2NjJjYjQyZThmYjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAxNC0wMi0yNiAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KKworICAg
ICAgICBbQ1NTIFJlZ2lvbnNdIE92ZXJzZXQgY29tcHV0YXRpb24gaXMgaW5jb3JyZWN0IGluIHNv
bWUgY2FzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyOTAzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkanVzdCB0aGUgdGVzdHMgdG8gY29wZSB3aXRoIHRoZSBvdmVyc2V0IGNoYW5nZXMuIAorCisg
ICAgICAgICogZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lv
bi1vdmVyc2V0LXN0YXRlLXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0ZS12ZXJ0aWNhbC1ybC5o
dG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0
LXN0YXRlLmh0bWw6CisgICAgICAgIFRoaXMgdGVzdCBoYXMgYSBuZXcgY2FzZSB0aGF0IHZlcmlm
aWVzIHJlZ2lvbiBjbGFtcGluZyBpcyBjb3JyZWN0bHkgdGFrZW4gaW50byBhY2NvdW50LgorICAg
ICAgICAqIGZhc3QvcmVnaW9ucy9jc3NvbS93ZWJraXQtbmFtZWQtZmxvdy1vdmVyc2V0LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvY3Nzb20vd2Via2l0LW5hbWVkLWZsb3ct
b3ZlcnNldC5odG1sOgorCiAyMDE0LTAyLTI2ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNh
bHZhcmlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVncmVzc2lvbiB3aGVuIHNob3dp
bmcgdGhlIGNhcHRpb25zIG1lbnUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLWV4
cGVjdGVkLnR4dAppbmRleCA3MTZjYjVkZmM2NmRhZDAzYWIxOWUzNTBhNjIzMDdlODlmZTNlMDli
Li45NWY4ZDU0MzRjNzk2M2RmOTkwYTk5MDc0ZWY4MGNmNjBjMTU0ZjM3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1l
bnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUtZXhwZWN0ZWQudHh0CkBAIC0xMCw2ICsxMCwxMCBAQCBG
bG93IGNvbnRlbnQKIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzEnKSBpcyAiZml0IgogUEFT
UyByZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIGlzICJmaXQiCiBQQVNTIHJlZ2lvbk92ZXJzZXQo
J3JlZ2lvbl8zJykgaXMgImVtcHR5IgorR2VuZXJhdGUgbGF5b3V0IG92ZXJmbG93CitQQVNTIHJl
Z2lvbk92ZXJzZXQoJ3JlZ2lvbl8xJykgaXMgImZpdCIKK1BBU1MgcmVnaW9uT3ZlcnNldCgncmVn
aW9uXzInKSBpcyAiZml0IgorUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMycpIGlzICJlbXB0
eSIKIEFkZCBtb3JlIGNvbnRlbnQKIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzEnKSBpcyAi
Zml0IgogUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIGlzICJmaXQiCkBAIC0xNyw3ICsy
MSw3IEBAIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzMnKSBpcyAiZml0IgogQWRkIHZpc3Vh
bCBvdmVyZmxvdwogUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMScpIGlzICJmaXQiCiBQQVNT
IHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJykgaXMgImZpdCIKLVBBU1MgcmVnaW9uT3ZlcnNldCgn
cmVnaW9uXzMnKSBpcyAib3ZlcnNldCIKK1BBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzMnKSBp
cyAiZml0IgogRW1wdHkgY29udGVudAogUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMScpIGlz
ICJlbXB0eSIKIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzInKSBpcyAiZW1wdHkiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3Zl
cnNldC1zdGF0ZS12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0ZS12ZXJ0aWNhbC1ybC1leHBl
Y3RlZC50eHQKaW5kZXggNzE2Y2I1ZGZjNjZkYWQwM2FiMTllMzUwYTYyMzA3ZTg5ZmUzZTA5Yi4u
ZGQ0ODBiNGMyMWFmNDJjNjY5ZTg1MTFmYTIzOTM1M2VmN2I4ZDBjZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUt
dmVydGljYWwtcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9j
c3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4
dApAQCAtMTcsNyArMTcsNyBAQCBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8zJykgaXMgImZp
dCIKIEFkZCB2aXN1YWwgb3ZlcmZsb3cKIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzEnKSBp
cyAiZml0IgogUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIGlzICJmaXQiCi1QQVNTIHJl
Z2lvbk92ZXJzZXQoJ3JlZ2lvbl8zJykgaXMgIm92ZXJzZXQiCitQQVNTIHJlZ2lvbk92ZXJzZXQo
J3JlZ2lvbl8zJykgaXMgImZpdCIKIEVtcHR5IGNvbnRlbnQKIFBBU1MgcmVnaW9uT3ZlcnNldCgn
cmVnaW9uXzEnKSBpcyAiZW1wdHkiCiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJykgaXMg
ImVtcHR5IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1l
bnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUtdmVydGljYWwtcmwuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLXZlcnRpY2FsLXJs
Lmh0bWwKaW5kZXggMTM5OTViMTE2OWU0NWYyYmRmNTg0YjY2MzViMzFhZTRhMzg4Nzc5Yy4uNmM4
OGJmN2Q3ZGNiMWFhZGUyYzQyMDk4ZjAwMGQzYTgzOGNhMjdhZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUtdmVy
dGljYWwtcmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVu
dC1yZWdpb24tb3ZlcnNldC1zdGF0ZS12ZXJ0aWNhbC1ybC5odG1sCkBAIC05Miw3ICs5Miw3IEBA
IGJvZHkgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyB9CiAKICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWdpb25PdmVyc2V0KCdyZWdpb25fMScpIiwgImZpdCIpOwogICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJykiLCAiZml0Iik7
Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcnNldCgncmVnaW9uXzMn
KSIsICJvdmVyc2V0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3Zl
cnNldCgncmVnaW9uXzMnKSIsICJmaXQiKTsKIAogICAgICAgICBkZWJ1ZygiRW1wdHkgY29udGVu
dCIpOwogICAgICAgICBmbG93Q29udGVudCgibm9fYXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVy
c2V0LXN0YXRlLmh0bWwKaW5kZXggOTBiZDY4NjRjNDVlNTgxYThhNmFhN2IwMGJjZjg5NTg0MzE0
ODVmMi4uYjU4ZDA5MjE2ZDI4MzMyODU4MzU0MGNlNGJkZWE2MWYyZmY5MjFkYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQt
c3RhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1y
ZWdpb24tb3ZlcnNldC1zdGF0ZS5odG1sCkBAIC0xMiw2ICsxMiw3IEBACiAgICAgZGlzcGxheTpp
bmxpbmUtYmxvY2s7CiAgICAgdmVydGljYWwtYWxpZ246dG9wOwogICAgIG1hcmdpbjoxMHB4Owor
ICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKIH0KIC5ibG9jayB7CiAgICBkaXNwbGF5OmJsb2Nr
OwpAQCAtNTgsNyArNTksMTggQEAKICAgICB9CiAgICAgZnVuY3Rpb24gYWRkTW9yZUNvbnRlbnQo
KSB7CiAgICAgICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsK
KyAgICAgICAgYy5zdHlsZS5tYXJnaW5Ub3AgPSAwOwogICAgICAgICBjLnN0eWxlLmhlaWdodCA9
IDMyNjsKKyAgICAgICAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIp
OworICAgICAgICBhLnN0eWxlLmhlaWdodCA9ICJhdXRvIjsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBnZW5lcmF0ZUxheW91dE92ZXJmbG93KCkgeworICAgICAgICB2YXIgYyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb250ZW50Iik7CisgICAgICAgIGMuc3R5bGUubWFyZ2luVG9wID0gNDAw
OworICAgICAgICBjLnN0eWxlLmhlaWdodCA9IDQwMDsKKyAgICAgICAgdmFyIGEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpOworICAgICAgICBhLnN0eWxlLmhlaWdodCA9IDE1
MDsKICAgICB9CiAKICAgICBmdW5jdGlvbiB0ZXN0KCkgewpAQCAtNzMsNiArODUsMTIgQEAKICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIiwg
ImZpdCIpOwogICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3Jl
Z2lvbl8zJykiLCAiZW1wdHkiKTsKIAorICAgICAgICBkZWJ1ZygiR2VuZXJhdGUgbGF5b3V0IG92
ZXJmbG93Iik7CisgICAgICAgIGdlbmVyYXRlTGF5b3V0T3ZlcmZsb3coKTsKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyc2V0KCdyZWdpb25fMScpIiwgImZpdCIpOwor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJyki
LCAiZml0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcnNldCgn
cmVnaW9uXzMnKSIsICJlbXB0eSIpOworCiAgICAgICAgIGRlYnVnKCJBZGQgbW9yZSBjb250ZW50
Iik7CiAgICAgICAgIGFkZE1vcmVDb250ZW50KCk7CiAKQEAgLTg1LDcgKzEwMyw3IEBACiAKICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyc2V0KCdyZWdpb25fMScpIiwg
ImZpdCIpOwogICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3Jl
Z2lvbl8yJykiLCAiZml0Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9u
T3ZlcnNldCgncmVnaW9uXzMnKSIsICJvdmVyc2V0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVnaW9uT3ZlcnNldCgncmVnaW9uXzMnKSIsICJmaXQiKTsKIAogICAgICAgICBk
ZWJ1ZygiRW1wdHkgY29udGVudCIpOwogICAgICAgICBmbG93Q29udGVudCgibm9fYXJ0aWNsZSIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL3dlYmtpdC1uYW1l
ZC1mbG93LW92ZXJzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nz
c29tL3dlYmtpdC1uYW1lZC1mbG93LW92ZXJzZXQtZXhwZWN0ZWQudHh0CmluZGV4IDA1ZWE1NzBl
NGVjYmY1YTY2YzMyZTY3OTUxMDYyN2M0NzlmMmZmZjguLmU3ZGZmNjg1ZDQ0NDIyNWU4Y2MyZDMy
Njc1OGVhNTk1Y2ZiNGYwYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9j
c3NvbS93ZWJraXQtbmFtZWQtZmxvdy1vdmVyc2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vd2Via2l0LW5hbWVkLWZsb3ctb3ZlcnNldC1leHBlY3Rl
ZC50eHQKQEAgLTcsOSArNyw5IEBAIFBBU1MgbmFtZWRGbG93Lm92ZXJzZXQgaXMgdHJ1ZQogUEFT
UyBuYW1lZEZsb3cub3ZlcnNldCBpcyBmYWxzZQogUEFTUyBuYW1lZEZsb3cub3ZlcnNldCBpcyB0
cnVlCiBQQVNTIG5hbWVkRmxvdy5vdmVyc2V0IGlzIGZhbHNlCi1QQVNTIG5hbWVkRmxvdy5vdmVy
c2V0IGlzIHRydWUKIFBBU1MgbmFtZWRGbG93Lm92ZXJzZXQgaXMgZmFsc2UKLVBBU1MgbmFtZWRG
bG93Lm92ZXJzZXQgaXMgdHJ1ZQorUEFTUyBuYW1lZEZsb3cub3ZlcnNldCBpcyBmYWxzZQorUEFT
UyBuYW1lZEZsb3cub3ZlcnNldCBpcyBmYWxzZQogUEFTUyBuYW1lZEZsb3cub3ZlcnNldCBpcyBm
YWxzZQogUEFTUyBuYW1lZEZsb3cub3ZlcnNldCBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20v
d2Via2l0LW5hbWVkLWZsb3ctb3ZlcnNldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2Nzc29tL3dlYmtpdC1uYW1lZC1mbG93LW92ZXJzZXQuaHRtbAppbmRleCBiNGY2OTQzYmE4NzE3
OGY2MTIxNmQ0MGQ3MWJiYWFlODAzZTJhNjlhLi5kZjg4NzI5OGMyNTIwNTEzNmUyMTdkYTcxYzc1
M2UwNWRlY2Q1YTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20v
d2Via2l0LW5hbWVkLWZsb3ctb3ZlcnNldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9jc3NvbS93ZWJraXQtbmFtZWQtZmxvdy1vdmVyc2V0Lmh0bWwKQEAgLTU5LDggKzU5LDgg
QEAKICAgICAvLyBBZGQgdmlzdWFsIG92ZXJzZXQsIG92ZXJzZXQgc2hvdWxkIGJlIHRydWUuCiAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5zdHlsZS53ZWJraXRCb3hTaGFk
b3c9IjBweCA1MHB4IGxpbWUiOwogCi0gICAgLy8gT3ZlcnNldCBzaG91bGQgYmUgdHJ1ZSBzaW5j
ZSB0aGUgY29udGVudCBkb2VzIG5vdCBmaXQgaW4gcmVnaW9ucwotICAgIHNob3VsZEJlKCJuYW1l
ZEZsb3cub3ZlcnNldCIsICJ0cnVlIik7CisgICAgLy8gT3ZlcnNldCBzaG91bGQgYmUgZmFsc2Ug
c2luY2UgdGhlIHNoYWRvdyBvZiB0aGUgY29udGVudCBvdmVyZmxvd3MgdGhlIGxhc3QgcmVnaW9u
LgorICAgIHNob3VsZEJlKCJuYW1lZEZsb3cub3ZlcnNldCIsICJmYWxzZSIpOwogCiAgICAgLy8g
QWRkIHRoZSB0aGlyZCByZWdpb24sIG92ZXJzZXQgc2hvdWxkIGJlIGZhbHNlLgogICAgIHZhciBy
ZWdpb24zID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC03NCw4ICs3NCw4IEBA
CiAgICAgLy8gUmVtb3ZlIHRoZSBmaXJzdCByZWdpb24gZnJvbSB0aGUgZmxvdywgb3ZlcnNldCBz
aG91bGQgYmUgdHJ1ZS4KICAgICByZWdpb24uY2xhc3NOYW1lID0gIiI7CiAKLSAgICAvLyBPdmVy
c2V0IHNob3VsZCBiZSB0cnVlIHNpbmNlIHRoZSBjb250ZW50IGRvZXMgbm90IGZpdCB0aGUgcmVn
aW9ucwotICAgIHNob3VsZEJlKCJuYW1lZEZsb3cub3ZlcnNldCIsICJ0cnVlIik7CisgICAgLy8g
T3ZlcnNldCBzaG91bGQgYmUgZmFsc2Ugc2luY2UgdGhlIHNoYWRvdyBvZiB0aGUgY29udGVudCBv
dmVyZmxvd3MgdGhlIGxhc3QgcmVnaW9uLgorICAgIHNob3VsZEJlKCJuYW1lZEZsb3cub3ZlcnNl
dCIsICJmYWxzZSIpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBjb250ZW50IGZyb20gdGhlIGZsb3cs
IG92ZXJzZXQgc2hvdWxkIGJlIGZhbHNlLgogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh
cnRpY2xlIikuY2xhc3NOYW1lID0gIiI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225651</attachid>
            <date>2014-03-03 07:53:31 -0800</date>
            <delta_ts>2014-03-03 08:26:24 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-129032-20140303175807.patch</filename>
            <type>text/plain</type>
            <size>33764</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIwZmFlNzM4NGIzNDdl
Y2I0YmRhMDhlMmQ0OTk4NmIyM2Q2ZjAyOC4uMzJiNjEzMWRiNjU5YTc1YTkyNjAyYjM2MWUyM2Q3
MDM5MmRmNDIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE0LTAyLTI2ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gT3Zl
cnNldCBjb21wdXRhdGlvbiBpcyBpbmNvcnJlY3QgaW4gc29tZSBjYXNlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDMyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXdvcmtzIHRo
ZSB3YXkgb3ZlcnNldCBpcyBjb21wdXRlZCBmb3IgcmVnaW9ucyBhbmQgbmFtZWQgZmxvd3MuCisK
KyAgICAgICAgMS4gUmVnaW9ucyBvdmVyZmxvdyBubyBsb25nZXIgdHJpZ2dlciBhbiBvdmVyc2V0
IGNoYW5nZWQgZXZlbnQuIFRoaXMgaXMgYmVjYXVzZQorICAgICAgICB0aGUgb3ZlcmZsb3cgb2Yg
YSBib3ggaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgcmVnaW9uIHJhbmdlIG9mIHRoZSBib3guIFRo
ZSBjb250ZW50CisgICAgICAgIGVkZ2Ugc2hvdWxkIGJlIGNvbnNpZGVyZWQgdGhlIGxvZ2ljYWwg
Ym90dG9tIHBvc2l0aW9uIG9mIHRoZSBjb250ZW50IGluc2lkZSB0aGUKKyAgICAgICAgZmxvdyB0
aHJlYWQuCisKKyAgICAgICAgMi4gVGhlIHJlZ2lvbnMgZXZlbnRzIGxvZ2ljIHdhcyBtb3ZlZCBm
cm9tIFJlbmRlckZsb3dUaHJlYWQgdG8gUmVuZGVyTmFtZWRGbG93VGhyZWFkCisgICAgICAgIGFu
ZCBmcm9tIFJlbmRlclJlZ2lvbiB0byBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCAoaW5jbHVkaW5n
IHRoZSByZWdpb25PdmVyc2V0IHByb3BlcnR5KS4KKworICAgICAgICAzLiBUaGUgb3ZlcnNldCB2
YWx1ZSBvZiB0aGUgbmFtZWQgZmxvdyBpcyBubyBsb25nZXIgc3RvcmVkIGluIHRoZSBuYW1lZCBm
bG93LiBJdCBpcworICAgICAgICBleHRyYWN0ZWQgZnJvbSB0aGUgb3ZlcnNldCBvZiB0aGUgbGFz
dCByZWdpb24gaW4gdGhlIGNoYWluLgorCisgICAgICAgIDQuIFRoZSByZWdpb25zIG92ZXJzZXQg
aXMgbm90IGNvbXB1dGVkIGV2ZXJ5IHRpbWUgdGhlIGZsb3cgdGhyZWFkIGlzIGxhaWQgb3V0IHdo
aWNoCisgICAgICAgIHNob3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlIGZvciBmbG93cyB3aXRoIG1h
bnkgcmVnaW9ucy4gV2l0aCB0aGUgcGF0Y2gsIGVhY2ggcmVnaW9uCisgICAgICAgIGNvbXB1dGVz
IHRoZSBvdmVyc2V0IHZhbHVlIGR1cmluZyBpdHMgbGF5b3V0IHdoZW4gdGhlIGZsb3cgdGhyZWFk
IGlzIGluIHRoZSBvdmVyZmxvdworICAgICAgICBvciB0aGUgZmluYWwgbGF5b3V0IHBoYXNlLgor
CisgICAgICAgIDUuIFRoZSBvdmVyc2V0IGNoYW5nZWQgZXZlbnQgaXMgZGlzcGF0Y2hlZCBvbmx5
IGF0IHRoZSBlbmQgb2YgdGhlIGxheW91dCBvZiB0aGUgbmFtZWQgZmxvd3MsCisgICAgICAgIGFm
dGVyIGFsbCB0aGUgcmVnaW9uIG92ZXJzZXQgY2hhbmdlcyBoYXZlIGJlZW4gY29uc2lkZXJlZC4g
VGhpcyBtZWFucyB0aGF0IHRoZSBvdmVyc2V0CisgICAgICAgIGV2ZW50IGNhbid0IGJlIGRpc3Bh
dGNoZWQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYXV0by1oZWlnaHQgcHJvY2Vzc2luZyBhbGdvcml0
aG0gdGhhdAorICAgICAgICByZXF1aXJlcyBtdWx0aXBsZSBsYXlvdXQgcGFzc2VzIGZvciB0aGUg
ZmxvdyB0aHJlYWRzLgorCisgICAgICAgIEhvd2V2ZXIsIHRoZSByZWdpb24gbGF5b3V0IHVwZGF0
ZSBldmVudCBkaXNwYXRjaCB0aW1pbmcgd2FzIG5vdCBjaGFuZ2VkLCBpdCBpcyBkaXNwYXRjaGVk
CisgICAgICAgIGV2ZXJ5IHRpbWUgdGhlIGZsb3cgdGhyZWFkIGhhcyBhIGxheW91dC4gVGhpcyBw
cmVzZXJ2ZXMgdGhlIGN1cnJlbnQgYmVoYXZpb3Igb2YgdGhlIGV2ZW50LgorCisgICAgICAgIFRl
c3RzOiBUaGUgb2xkIHRlc3RzIHdlcmUgbW9kaWZpZWQgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhl
IGNoYW5nZS4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQpOgorICAgICAgICAqIGRvbS9XZWJLaXROYW1l
ZEZsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TmFtZWRGbG93OjpvdmVyc2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVkRmxvdzo6Zmlyc3RFbXB0eVJlZ2lvbkluZGV4
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkQXJyYXlGb3JSZWdpb25zKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OnVwZGF0ZUZsb3dUaHJlYWRzSW50b01lYXN1cmVDb250
ZW50UGhhc2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZU92ZXJmbG93KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93
VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OmxheW91dEJsb2NrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpzZXRSZWdpb25PdmVyc2V0U3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OnJlZ2lvbk92
ZXJzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6
dXBkYXRlT3ZlcnNldFN0YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6UmVuZGVyTmFtZWRG
bG93VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y29t
cHV0ZU92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6
bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0
Y2hOYW1lZEZsb3dFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhy
ZWFkOjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50SWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFu
Z2VFdmVudElmTmVlZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhy
ZWFkLmg6CisgICAgICAgIFRoZXJlJ3MgYSBuZXcgZmllbGQgY2FsbGVkIG1fZmxvd0NvbnRlbnRC
b3R0b20gdGhhdCB0cmFja3MgdGhlIGNvbnRlbnQgYm90dG9tIG9mIHRoZSBmbG93IHRocmVhZAor
ICAgICAgICBhZnRlciBsYXlvdXQuIFRoaXMgdmFsdWUgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBv
dmVyc2V0IHZhbHVlIG9mIHRoZSByZWdpb25zIGJlY2F1c2UgaXQncyBub3QKKyAgICAgICAgYWZm
ZWN0ZWQgYnkgcmVsYXRpdmUgcG9zaXRpb25pbmcgb3IgdmlzdWFsIG92ZXJmbG93IHN1Y2ggYXMg
c2hhZG93cy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisKIDIwMTQtMDMtMDMgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVzcGVjdCBTVkcgZnJhZ21lbnQgaWRl
bnRpZmllcnMgaW4gPGltZz4gc3JjIGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IDg5N2U3YTA0ZTdiMGNlNTM4OWI5MjY3MzE4Zjk3M2Y4NGFlY2RiYjIuLmNlZWRlYjQ5NDVmYjhk
NTlkMjRlMzUwMmViZTY0MmQwMjAyYWEzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1
NzAsNyArMjU3MCw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVudDo6d2Via2l0UmVnaW9u
T3ZlcnNldCgpIGNvbnN0CiAgICAgaWYgKCFkb2N1bWVudCgpLmNzc1JlZ2lvbnNFbmFibGVkKCkg
fHwgIXJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KCkpCiAgICAgICAgIHJldHVybiB1bmRlZmluZWRT
dGF0ZTsKIAotICAgIHN3aXRjaCAocmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKS0+cmVnaW9uT3Zl
cnNldFN0YXRlKCkpIHsKKyAgICBzd2l0Y2ggKHJlZ2lvbk92ZXJzZXRTdGF0ZSgpKSB7CiAgICAg
Y2FzZSBSZWdpb25GaXQ6IHsKICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGZpdFN0YXRlLCAoImZpdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICAgICAgcmV0dXJuIGZpdFN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRG
bG93LmNwcAppbmRleCBjZmYyZGQ2NTk2OTEyYTAzM2E5M2M5YWM1YTgxMWE4OGY0ZGQwMmFmLi5l
MDlhOTk4NDg3NGY5YTQxZTIyYWRjZmVjYjM2NDY2M2VjMTg1NGUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViS2l0TmFtZWRGbG93LmNwcApAQCAtNjksNyArNjksMTEgQEAgYm9vbCBXZWJLaXROYW1l
ZEZsb3c6Om92ZXJzZXQoKSBjb25zdAogCiAgICAgLy8gVGhlIHJlbmRlcmVyIG1heSBiZSBkZXN0
cm95ZWQgb3IgY3JlYXRlZCBhZnRlciB0aGUgc3R5bGUgdXBkYXRlLgogICAgIC8vIEJlY2F1c2Ug
dGhpcyBpcyBjYWxsZWQgZnJvbSBKUywgd2hlcmUgdGhlIHdyYXBwZXIga2VlcHMgYSByZWZlcmVu
Y2UgdG8gdGhlIE5hbWVkRmxvdywgbm8gZ3VhcmQgaXMgbmVjZXNzYXJ5LgotICAgIHJldHVybiBt
X3BhcmVudEZsb3dUaHJlYWQgPyBtX3BhcmVudEZsb3dUaHJlYWQtPm92ZXJzZXQoKSA6IHRydWU7
CisgICAgaWYgKCFtX3BhcmVudEZsb3dUaHJlYWQgfHwgIW1fcGFyZW50Rmxvd1RocmVhZC0+aGFz
UmVnaW9ucygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNvbnN0IFJlbmRlck5hbWVk
Rmxvd0ZyYWdtZW50KiBuYW1lZEZsb3dGcmFnbWVudCA9IHRvUmVuZGVyTmFtZWRGbG93RnJhZ21l
bnQobV9wYXJlbnRGbG93VGhyZWFkLT5sYXN0UmVnaW9uKCkpOworICAgIHJldHVybiBuYW1lZEZs
b3dGcmFnbWVudC0+cmVnaW9uT3ZlcnNldFN0YXRlKCkgPT0gUmVnaW9uT3ZlcnNldDsKIH0KIAog
c3RhdGljIGlubGluZSBib29sIGluRmxvd1RocmVhZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCAxYTBiYjk4ODI4MzMzZjdhMWNjNTdj
NzQ2YWMyYzk2NmYwMGQxZThjLi41ZTE2NGU0NWMxMDYyZGJkODBkZTEwNDgyNGFlYjQ0MDU2MjJl
MDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKQEAgLTExOTYsNyArMTE5Niw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRl
cjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6Q1NTOjpSZWdpb24+PiBJCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlZ2lvbkxpc3QtPmxlbmd0aCgpOyArK2kpIHsKICAgICAg
ICAgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6Q1NTOjpSZWdpb246OlJlZ2lvbk92ZXJzZXQ6OkVu
dW0gcmVnaW9uT3ZlcnNldDsKIAotICAgICAgICBzd2l0Y2ggKHRvRWxlbWVudChyZWdpb25MaXN0
LT5pdGVtKGkpKS0+cmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKS0+cmVnaW9uT3ZlcnNldFN0YXRl
KCkpIHsKKyAgICAgICAgc3dpdGNoICh0b0VsZW1lbnQocmVnaW9uTGlzdC0+aXRlbShpKSktPnJl
Z2lvbk92ZXJzZXRTdGF0ZSgpKSB7CiAgICAgICAgIGNhc2UgUmVnaW9uRml0OgogICAgICAgICAg
ICAgcmVnaW9uT3ZlcnNldCA9IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNTUzo6UmVnaW9uOjpS
ZWdpb25PdmVyc2V0OjpGaXQ7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCmluZGV4IDBmYjE5OGE5YWFk
ZTRmZDFjMWUxZWE2NDZlODU1ZTYxNGU0MGQ5NzAuLjMyZjk3YjA1NGRkYWZmZjExOWI3YmUyMDE4
YjQwYWU0YjBhOTlmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93
VGhyZWFkQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dU
aHJlYWRDb250cm9sbGVyLmNwcApAQCAtMjQ2LDYgKzI0Niw3IEBAIHZvaWQgRmxvd1RocmVhZENv
bnRyb2xsZXI6OnVwZGF0ZUZsb3dUaHJlYWRzSW50b01lYXN1cmVDb250ZW50UGhhc2UoKQogICAg
ICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOwogICAgICAg
ICBBU1NFUlQoZmxvd1JlbmRlcmVyLT5pbkZpbmFsTGF5b3V0UGhhc2UoKSk7CiAKKyAgICAgICAg
Zmxvd1JlbmRlcmVyLT5kaXNwYXRjaE5hbWVkRmxvd0V2ZW50cygpOwogICAgICAgICBmbG93UmVu
ZGVyZXItPnNldExheW91dFBoYXNlKFJlbmRlckZsb3dUaHJlYWQ6OkxheW91dFBoYXNlTWVhc3Vy
ZUNvbnRlbnQpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCmluZGV4IGNiODE1NDJiMGNjYTc1OTI4ODY4NTMzZjhlZDkwYzRiYTNkMzU5OTQuLjdhYmM2
MjZkZmQ2YTUwN2RhNGFiNWE1NGIyNzYzNWNjMDA0YTlhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTU5MCw5ICsxNTkwLDYgQEAgdm9pZCBSZW5kZXJC
bG9jazo6Y29tcHV0ZU92ZXJmbG93KExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlLCBib29s
KQogCiAgICAgLy8gQWRkIHZpc3VhbCBvdmVyZmxvdyBmcm9tIHRoZW1lLgogICAgIGFkZFZpc3Vh
bE92ZXJmbG93RnJvbVRoZW1lKCk7Ci0KLSAgICBpZiAoaXNSZW5kZXJOYW1lZEZsb3dUaHJlYWQo
KSkKLSAgICAgICAgdG9SZW5kZXJOYW1lZEZsb3dUaHJlYWQodGhpcyktPmNvbXB1dGVPdmVyc2V0
U3RhdGVGb3JSZWdpb25zKG9sZENsaWVudEFmdGVyRWRnZSk7CiB9CiAKIHZvaWQgUmVuZGVyQmxv
Y2s6OmNsZWFyTGF5b3V0T3ZlcmZsb3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IDNiZTg2YWZhOWU1ZTAzYjhmMjJjZWU1YWQ1ZTE3NmJk
NDRhYzNiMDkuLjRhNWNkMjMxYTRiMzc2M2Y1YTMxMDIyZjg0ZDA1OTBiYzdkOWQ4NzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTU4LDgg
KzU4LDYgQEAgUmVuZGVyRmxvd1RocmVhZDo6UmVuZGVyRmxvd1RocmVhZChEb2N1bWVudCYgZG9j
dW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWwKICAgICAsIG1fcmVnaW9uc0ludmFsaWRh
dGVkKGZhbHNlKQogICAgICwgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsV2lkdGgodHJ1ZSkK
ICAgICAsIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbEhlaWdodCh0cnVlKQotICAgICwgbV9k
aXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KGZhbHNlKQotICAgICwgbV9kaXNwYXRjaFJl
Z2lvbk92ZXJzZXRDaGFuZ2VFdmVudChmYWxzZSkKICAgICAsIG1fcGFnZUxvZ2ljYWxTaXplQ2hh
bmdlZChmYWxzZSkKICAgICAsIG1fbGF5b3V0UGhhc2UoTGF5b3V0UGhhc2VNZWFzdXJlQ29udGVu
dCkKICAgICAsIG1fbmVlZHNUd29QaGFzZXNMYXlvdXQoZmFsc2UpCkBAIC0yMzYsMTIgKzIzNCw2
IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKICAgICAgICAgaWYgKHVwZGF0ZUFs
bExheWVyVG9SZWdpb25NYXBwaW5ncygpKQogICAgICAgICAgICAgbGF5ZXIoKS0+Y29tcG9zaXRv
cigpLnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICAgICB9Ci0KLSAgICBpZiAo
c2hvdWxkRGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpKQotICAgICAgICBkaXNwYXRj
aFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCk7Ci0gICAgCi0gICAgaWYgKHNob3VsZERpc3BhdGNo
UmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCkpCi0gICAgICAgIGRpc3BhdGNoUmVnaW9uT3ZlcnNl
dENoYW5nZUV2ZW50KCk7CiB9CiAKIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6aGFzQ29tcG9zaXRp
bmdSZWdpb25EZXNjZW5kYW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxvd1RocmVhZC5oCmluZGV4IGViYjExN2FkNDY0ZDJmNDgzMTg1YjZjNDM4YjJkYTY2NmEz
NWM0NWMuLjIzZDBmMjUzY2NmNWJiYjg0ZDE5OTYzYmViZDFlMWYwYTUyODA4MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMjA5LDcgKzIwOSw2
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJGbG93VGhy
ZWFkKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwg
dm9pZCBsYXlvdXQoKSBvdmVycmlkZSBmaW5hbDsKIAogICAgIC8vIEFsd2F5cyBjcmVhdGUgYSBS
ZW5kZXJMYXllciBmb3IgdGhlIFJlbmRlckZsb3dUaHJlYWQgc28gdGhhdCB3ZQogICAgIC8vIGNh
biBlYXNpbHkgYXZvaWQgZHJhd2luZyB0aGUgY2hpbGRyZW4gZGlyZWN0bHkuCkBAIC0yMTksNiAr
MjE4LDcgQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlckZsb3dUaHJlYWQoRG9jdW1lbnQmLCBQYXNz
UmVmPFJlbmRlclN0eWxlPik7CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwogCiAgICAg
Ly8gT3ZlcnJpZGRlbiBieSBjb2x1bW5zL3BhZ2VzIHRvIHNldCB1cCBhbiBpbml0aWFsIGxvZ2lj
YWwgd2lkdGggb2YgdGhlIHBhZ2Ugd2lkdGggZXZlbiB3aGVuCiAgICAgLy8gbm8gcmVnaW9ucyBo
YXZlIGJlZW4gZ2VuZXJhdGVkIHlldC4KQEAgLTIzNSwxNiArMjM1LDYgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgdXBkYXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKFJlbmRlckxheWVyJiwgTGF5ZXJU
b1JlZ2lvbk1hcCYsIFJlZ2lvblRvTGF5ZXJMaXN0TWFwJiwgYm9vbCYgbmVlZHNMYXllclVwZGF0
ZSk7CiAgICAgdm9pZCB1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXllcihSZW5kZXJMYXllciosIExh
eWVyVG9SZWdpb25NYXAmLCBSZWdpb25Ub0xheWVyTGlzdE1hcCYsIGJvb2wmIG5lZWRzTGF5ZXJV
cGRhdGUpOwogCi0gICAgdm9pZCBzZXREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KGJv
b2wgdmFsdWUpIHsgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50ID0gdmFsdWU7IH0K
LSAgICBib29sIHNob3VsZERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKSB7IHJldHVy
biBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQ7IH0KLSAgICAKLSAgICB2b2lkIHNl
dERpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KGJvb2wgdmFsdWUpIHsgbV9kaXNwYXRj
aFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCA9IHZhbHVlOyB9Ci0gICAgYm9vbCBzaG91bGREaXNw
YXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGF0Y2hS
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQ7IH0KLSAgICAKLSAgICAvLyBPdmVycmlkZSBpZiB0aGUg
ZmxvdyB0aHJlYWQgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgZGlzcGF0Y2hpbmcgZXZlbnRzIHdo
ZW4gdGhlIGZsb3cgbGF5b3V0IGlzIHVwZGF0ZWQgKGUuZy4gZm9yIG5hbWVkIGZsb3dzKQotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkgeyBtX2Rpc3Bh
dGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgPSBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpIHsgbV9kaXNwYXRjaFJlZ2lvbk92ZXJz
ZXRDaGFuZ2VFdmVudCA9IGZhbHNlOyB9Ci0KICAgICB2b2lkIGluaXRpYWxpemVSZWdpb25zQ29t
cHV0ZWRBdXRvSGVpZ2h0KFJlbmRlclJlZ2lvbiogPSAwKTsKIAogICAgIHZpcnR1YWwgdm9pZCBh
dXRvR2VuZXJhdGVSZWdpb25zVG9CbG9ja09mZnNldChMYXlvdXRVbml0KSB7IH07CkBAIC0zMzks
OCArMzI5LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9yZWdpb25zSW52YWxpZGF0ZWQgOiAx
OwogICAgIGJvb2wgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsV2lkdGggOiAxOwogICAgIGJv
b2wgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0IDogMTsKLSAgICBib29sIG1fZGlz
cGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA6IDE7Ci0gICAgYm9vbCBtX2Rpc3BhdGNoUmVn
aW9uT3ZlcnNldENoYW5nZUV2ZW50IDogMTsKICAgICBib29sIG1fcGFnZUxvZ2ljYWxTaXplQ2hh
bmdlZCA6IDE7CiAgICAgdW5zaWduZWQgbV9sYXlvdXRQaGFzZSA6IDI7CiAgICAgYm9vbCBtX25l
ZWRzVHdvUGhhc2VzTGF5b3V0IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwCmluZGV4IGRlYTRlYjk0ZDQ5NWU3ODRhOTRm
ZTFmM2U0Njg5ZDJmOTkzMTUzN2QuLjUyZjJmZWM4ZDk0ZTRjOWMxODZlMjdhYzkxZmU0MjMyZWQ0
OWNkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZs
b3dGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVk
Rmxvd0ZyYWdtZW50LmNwcApAQCAtMjU3LDggKzI1NywxMCBAQCB2b2lkIFJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQp
CiAgICAgICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgICAgIG9s
ZFJlZ2lvblJlY3QgPSBvbGRSZWdpb25SZWN0LnRyYW5zcG9zZWRSZWN0KCk7CiAKLSAgICAgICAg
aWYgKG1fZmxvd1RocmVhZC0+aW5PdmVyZmxvd0xheW91dFBoYXNlKCkgfHwgbV9mbG93VGhyZWFk
LT5pbkZpbmFsTGF5b3V0UGhhc2UoKSkKKyAgICAgICAgaWYgKG1fZmxvd1RocmVhZC0+aW5PdmVy
Zmxvd0xheW91dFBoYXNlKCkgfHwgbV9mbG93VGhyZWFkLT5pbkZpbmFsTGF5b3V0UGhhc2UoKSkg
ewogICAgICAgICAgICAgY29tcHV0ZU92ZXJmbG93RnJvbUZsb3dUaHJlYWQoKTsKKyAgICAgICAg
ICAgIHVwZGF0ZU92ZXJzZXRTdGF0ZSgpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKGhhc0F1
dG9Mb2dpY2FsSGVpZ2h0KCkgJiYgbV9mbG93VGhyZWFkLT5pbk1lYXN1cmVDb250ZW50TGF5b3V0
UGhhc2UoKSkgewogICAgICAgICAgICAgbV9mbG93VGhyZWFkLT5pbnZhbGlkYXRlUmVnaW9ucygp
OwpAQCAtMjcyLDYgKzI3NCw1NSBAQCB2b2lkIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpsYXlv
dXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgfQogfQogCit2
b2lkIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpzZXRSZWdpb25PdmVyc2V0U3RhdGUoUmVnaW9u
T3ZlcnNldFN0YXRlIHN0YXRlKQoreworICAgIEFTU0VSVChnZW5lcmF0aW5nRWxlbWVudCgpKTsK
KworICAgIGdlbmVyYXRpbmdFbGVtZW50KCktPnNldFJlZ2lvbk92ZXJzZXRTdGF0ZShzdGF0ZSk7
Cit9CisKK1JlZ2lvbk92ZXJzZXRTdGF0ZSBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6cmVnaW9u
T3ZlcnNldFN0YXRlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZ2VuZXJhdGluZ0VsZW1lbnQoKSk7
CisKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIFJlZ2lvblVuZGVmaW5lZDsK
KworICAgIHJldHVybiBnZW5lcmF0aW5nRWxlbWVudCgpLT5yZWdpb25PdmVyc2V0U3RhdGUoKTsK
K30KKwordm9pZCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6dXBkYXRlT3ZlcnNldFN0YXRlKCkK
K3sKKyAgICBBU1NFUlQoaXNWYWxpZCgpKTsKKworICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCog
Zmxvd1RocmVhZCA9IG5hbWVkRmxvd1RocmVhZCgpOworICAgIEFTU0VSVChmbG93VGhyZWFkICYm
IChmbG93VGhyZWFkLT5pbk92ZXJmbG93TGF5b3V0UGhhc2UoKSB8fCBmbG93VGhyZWFkLT5pbkZp
bmFsTGF5b3V0UGhhc2UoKSkpOworCisgICAgTGF5b3V0VW5pdCBmbG93Q29udGVudEJvdHRvbSA9
IGZsb3dUaHJlYWQtPmZsb3dDb250ZW50Qm90dG9tKCk7CisgICAgYm9vbCBpc0hvcml6b250YWxX
cml0aW5nTW9kZSA9IGZsb3dUaHJlYWQtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CisKKyAg
ICBMYXlvdXRVbml0IGZsb3dNaW4gPSBmbG93Q29udGVudEJvdHRvbSAtIChpc0hvcml6b250YWxX
cml0aW5nTW9kZSA/IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLnkoKSA6IGZsb3dUaHJlYWRQb3J0
aW9uUmVjdCgpLngoKSk7CisgICAgTGF5b3V0VW5pdCBmbG93TWF4ID0gZmxvd0NvbnRlbnRCb3R0
b20gLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPyBmbG93VGhyZWFkUG9ydGlvblJlY3QoKS5t
YXhZKCkgOiBmbG93VGhyZWFkUG9ydGlvblJlY3QoKS5tYXhYKCkpOworCisgICAgUmVnaW9uT3Zl
cnNldFN0YXRlIHByZXZpb3VzU3RhdGUgPSByZWdpb25PdmVyc2V0U3RhdGUoKTsKKyAgICBSZWdp
b25PdmVyc2V0U3RhdGUgc3RhdGUgPSBSZWdpb25GaXQ7CisgICAgaWYgKGZsb3dNaW4gPD0gMCkK
KyAgICAgICAgc3RhdGUgPSBSZWdpb25FbXB0eTsKKyAgICBpZiAoZmxvd01heCA+IDAgJiYgaXNM
YXN0UmVnaW9uKCkpCisgICAgICAgIHN0YXRlID0gUmVnaW9uT3ZlcnNldDsKKyAgICAKKyAgICBz
ZXRSZWdpb25PdmVyc2V0U3RhdGUoc3RhdGUpOworCisgICAgLy8gRGV0ZXJtaW5lIHdoZXRoZXIg
dGhlIE5hbWVkRmxvdyBvYmplY3Qgc2hvdWxkIGRpc3BhdGNoIGEgcmVnaW9uTGF5b3V0VXBkYXRl
IGV2ZW50CisgICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gc3RhdGUKKyAgICAgICAgfHwgc3RhdGUg
PT0gUmVnaW9uRml0CisgICAgICAgIHx8IHN0YXRlID09IFJlZ2lvbk92ZXJzZXQpCisgICAgICAg
IGZsb3dUaHJlYWQtPnNldERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQodHJ1ZSk7Cisg
ICAgCisgICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gc3RhdGUpCisgICAgICAgIGZsb3dUaHJlYWQt
PnNldERpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KHRydWUpOworfQorCiB2b2lkIFJl
bmRlck5hbWVkRmxvd0ZyYWdtZW50OjpjaGVja1JlZ2lvblN0eWxlKCkKIHsKICAgICBBU1NFUlQo
bV9mbG93VGhyZWFkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5h
bWVkRmxvd0ZyYWdtZW50LmgKaW5kZXggYjU4MmVmODYzN2E1YzUwMjNmZWY4YjAzOTRkNmE3NTkz
MjcxMWQ5Zi4uZDZjOTkzMjQyOGU0MDY2ZmI4MTA4NTE3ZDUyZDRhMDg0NDg4OWMwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgK
QEAgLTEwNCw2ICsxMDQsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0NvbXB1dGVkQXV0b0hl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ29tcHV0ZWRBdXRvSGVpZ2h0OyB9CiAKKyAgICBS
ZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3Q7CisKICAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoUmVnaW9uKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRldGFj
aFJlZ2lvbigpIG92ZXJyaWRlOwogCkBAIC0xMjcsNiArMTI5LDkgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgc2hvdWxkSGF2ZUF1dG9Mb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CiAKKyAgICB2b2lkIHVw
ZGF0ZU92ZXJzZXRTdGF0ZSgpOworICAgIHZvaWQgc2V0UmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lv
bk92ZXJzZXRTdGF0ZSk7CisKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0QmxvY2soYm9vbCByZWxh
eW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMCkgb3ZlcnJpZGU7
CiAKICAgICBzdHJ1Y3QgT2JqZWN0UmVnaW9uU3R5bGVJbmZvIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKaW5kZXggMGQ3ZTliZDBi
YTAyYTRmNWM4Mjc4ZGYxOTgwNTViN2QxY2Y4MWYzMC4uOTkzNWFiNGFmNjVhMmQ0NzkxMmRlMzBj
NTg1ZDQxYTI4ZjFmMzg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck5hbWVkRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck5hbWVkRmxvd1RocmVhZC5jcHAKQEAgLTQ3LDggKzQ3LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OlJlbmRlck5hbWVkRmxvd1RocmVhZChEb2N1
bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCBQYXNzUmVmPFdlYktp
dE5hbWVkRmxvdz4gbmFtZWRGbG93KQogICAgIDogUmVuZGVyRmxvd1RocmVhZChkb2N1bWVudCwg
c3RkOjptb3ZlKHN0eWxlKSkKLSAgICAsIG1fb3ZlcnNldCh0cnVlKQogICAgICwgbV9oYXNSZWdp
b25zV2l0aFN0eWxpbmcoZmFsc2UpCisgICAgLCBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRl
RXZlbnQoZmFsc2UpCisgICAgLCBtX2Rpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KGZh
bHNlKQogICAgICwgbV9uYW1lZEZsb3coc3RkOjptb3ZlKG5hbWVkRmxvdykpCiAgICAgLCBtX3Jl
Z2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXIodGhpcywgJlJlbmRlck5hbWVkRmxvd1RocmVhZDo6
cmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9yZWdpb25PdmVyc2V0
Q2hhbmdlRXZlbnRUaW1lcih0aGlzLCAmUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpyZWdpb25PdmVy
c2V0Q2hhbmdlRXZlbnRUaW1lckZpcmVkKQpAQCAtMzU0LDUxICszNTUsMzEgQEAgTGF5b3V0UmVj
dCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRlY29yYXRpb25zQ2xpcFJlY3RGb3JCb3hJbk5hbWVk
Rmxvd0ZyYWdtZW50KGMKICAgICByZXR1cm4gdmlzdWFsT3ZlcmZsb3dSZWN0OwogfQogCi12b2lk
IFJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y29tcHV0ZU92ZXJzZXRTdGF0ZUZvclJlZ2lvbnMoTGF5
b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UpCi17Ci0gICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBv
bGRDbGllbnRBZnRlckVkZ2U7Ci0KLSAgICAvLyBGSVhNRTogdGhlIHZpc3VhbCBvdmVyZmxvdyBv
ZiBtaWRkbGUgcmVnaW9uIChpZiBpdCBpcyB0aGUgbGFzdCBvbmUgdG8gY29udGFpbiBhbnkgY29u
dGVudCBpbiBhIHJlbmRlciBmbG93IHRocmVhZCkKLSAgICAvLyBtaWdodCBub3QgYmUgdGFrZW4g
aW50byBhY2NvdW50IGJlY2F1c2UgdGhlIHJlbmRlciBmbG93IHRocmVhZCBoZWlnaHQgaXMgZ3Jl
YXRlciB0aGF0IHRoYXQgcmVnaW9ucyBoZWlnaHQgKyBpdHMgdmlzdWFsIG92ZXJmbG93Ci0gICAg
Ly8gYmVjYXVzZSBvZiBob3cgY29tcHV0ZUxvZ2ljYWxIZWlnaHQgaXMgaW1wbGVtZW50ZWQgZm9y
IFJlbmRlck5hbWVkRmxvd1RocmVhZCAoYXMgYSBzdW0gb2YgYWxsIHJlZ2lvbnMgaGVpZ2h0KS4K
LSAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIG1pZGRsZSByZWdpb24gd2lsbCBiZSBtYXJrZWQg
YXMgZml0IChldmVuIGlmIGl0IGhhcyB2aXN1YWwgb3ZlcmZsb3cgZmxvd2luZyBpbnRvIHRoZSBu
ZXh0IHJlZ2lvbikKLSAgICBpZiAoaGFzUmVuZGVyT3ZlcmZsb3coKQotICAgICAgICAmJiAoIChp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpICYmIHZpc3VhbE92ZXJmbG93UmVjdCgpLm1heFkoKSA+
IGNsaWVudEJveFJlY3QoKS5tYXhZKCkpCi0gICAgICAgICAgICB8fCAoIWlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgJiYgdmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4WCgpID4gY2xpZW50Qm94UmVj
dCgpLm1heFgoKSkpKQotICAgICAgICBoZWlnaHQgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gdmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4WSgpIDogdmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4
WCgpOwotCi0gICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqIGxhc3RGcmFnbWVudCA9IHRvUmVu
ZGVyTmFtZWRGbG93RnJhZ21lbnQobGFzdFJlZ2lvbigpKTsKLSAgICBmb3IgKGF1dG8mIG5hbWVk
Rmxvd0ZyYWdtZW50IDogbV9yZWdpb25MaXN0KSB7Ci0gICAgICAgIExheW91dFVuaXQgZmxvd01p
biA9IGhlaWdodCAtIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbmFtZWRGbG93RnJhZ21l
bnQtPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLnkoKSA6IG5hbWVkRmxvd0ZyYWdtZW50LT5mbG93
VGhyZWFkUG9ydGlvblJlY3QoKS54KCkpOwotICAgICAgICBMYXlvdXRVbml0IGZsb3dNYXggPSBo
ZWlnaHQgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG5hbWVkRmxvd0ZyYWdtZW50LT5m
bG93VGhyZWFkUG9ydGlvblJlY3QoKS5tYXhZKCkgOiBuYW1lZEZsb3dGcmFnbWVudC0+Zmxvd1Ro
cmVhZFBvcnRpb25SZWN0KCkubWF4WCgpKTsKLSAgICAgICAgUmVnaW9uT3ZlcnNldFN0YXRlIHBy
ZXZpb3VzU3RhdGUgPSBuYW1lZEZsb3dGcmFnbWVudC0+cmVnaW9uT3ZlcnNldFN0YXRlKCk7Ci0g
ICAgICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSBzdGF0ZSA9IFJlZ2lvbkZpdDsKLSAgICAgICAgaWYg
KGZsb3dNaW4gPD0gMCkKLSAgICAgICAgICAgIHN0YXRlID0gUmVnaW9uRW1wdHk7Ci0gICAgICAg
IGlmIChmbG93TWF4ID4gMCAmJiBuYW1lZEZsb3dGcmFnbWVudCA9PSBsYXN0RnJhZ21lbnQpCi0g
ICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbk92ZXJzZXQ7Ci0gICAgICAgIG5hbWVkRmxvd0ZyYWdt
ZW50LT5zZXRSZWdpb25PdmVyc2V0U3RhdGUoc3RhdGUpOwotICAgICAgICAvLyBkZXRlcm1pbmUg
d2hldGhlciB0aGUgTmFtZWRGbG93IG9iamVjdCBzaG91bGQgZGlzcGF0Y2ggYSByZWdpb25MYXlv
dXRVcGRhdGUgZXZlbnQKLSAgICAgICAgLy8gRklYTUU6IGN1cnJlbnRseSBpdCBjYW5ub3QgZGV0
ZXJtaW5lIHdoZXRoZXIgYSByZWdpb24gd2hvc2UgcmVnaW9uT3ZlcnNldCBzdGF0ZSByZW1haW5l
ZCBlaXRoZXIgImZpdCIgb3IgIm92ZXJzZXQiIGhhcyBhY3R1YWxseQotICAgICAgICAvLyBjaGFu
Z2VkLCBzbyBpdCBqdXN0IGFzc3VtZXMgdGhhdCB0aGUgTmFtZWRGbG93IHNob3VsZCBkaXNwYXRj
aCB0aGUgZXZlbnQKLSAgICAgICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gc3RhdGUKLSAgICAgICAg
ICAgIHx8IHN0YXRlID09IFJlZ2lvbkZpdAotICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVnaW9u
T3ZlcnNldCkKLSAgICAgICAgICAgIHNldERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQo
dHJ1ZSk7Ci0gICAgICAgIAotICAgICAgICBpZiAocHJldmlvdXNTdGF0ZSAhPSBzdGF0ZSkKLSAg
ICAgICAgICAgIHNldERpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KHRydWUpOwotICAg
IH0KLSAgICAKK3ZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3coTGF5
b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UsIGJvb2wgcmVjb21wdXRlRmxvYXRzKQoreworICAg
IFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvdyhvbGRDbGllbnRBZnRlckVkZ2UsIHJl
Y29tcHV0ZUZsb2F0cyk7CisKKyAgICBtX2Zsb3dDb250ZW50Qm90dG9tID0gb2xkQ2xpZW50QWZ0
ZXJFZGdlOworfQorCit2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6bGF5b3V0KCkKK3sKKyAg
ICBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKTsKKwogICAgIC8vIElmIHRoZSBudW1iZXIgb2Yg
cmVnaW9ucyBoYXMgY2hhbmdlZCBzaW5jZSB3ZSBsYXN0IGNvbXB1dGVkIHRoZSBvdmVyc2V0IHBy
b3BlcnR5LCBzY2hlZHVsZSB0aGUgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudC4KICAgICBpZiAo
cHJldmlvdXNSZWdpb25Db3VudENoYW5nZWQoKSkgewogICAgICAgICBzZXREaXNwYXRjaFJlZ2lv
bk92ZXJzZXRDaGFuZ2VFdmVudCh0cnVlKTsKICAgICAgICAgdXBkYXRlUHJldmlvdXNSZWdpb25D
b3VudCgpOwogICAgIH0KIAotICAgIC8vIFdpdGggdGhlIHJlZ2lvbnMgb3ZlcmZsb3cgc3RhdGUg
Y29tcHV0ZWQgd2UgY2FuIGFsc28gc2V0IHRoZSBvdmVyc2V0IGZsYWcgZm9yIHRoZSBuYW1lZCBm
bG93LgotICAgIC8vIElmIHRoZXJlIGFyZSBubyB2YWxpZCByZWdpb25zIGluIHRoZSBjaGFpbiwg
b3ZlcnNldCBpcyB0cnVlLgotICAgIG1fb3ZlcnNldCA9IGxhc3RGcmFnbWVudCA/IGxhc3RGcmFn
bWVudC0+cmVnaW9uT3ZlcnNldFN0YXRlKCkgPT0gUmVnaW9uT3ZlcnNldCA6IHRydWU7CisgICAg
ZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaE5hbWVkRmxvd0V2ZW50cygpCit7CisgICAgQVNT
RVJUKGluRmluYWxMYXlvdXRQaGFzZSgpKTsKKworICAgIGRpc3BhdGNoUmVnaW9uT3ZlcnNldENo
YW5nZUV2ZW50SWZOZWVkZWQoKTsKIH0KIAogdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNo
ZWNrSW52YWxpZFJlZ2lvbnMoKQpAQCAtNTI5LDE4ICs1MTAsMjQgQEAgYm9vbCBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQ6OmlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYgY2hpbGQsIGNv
bnN0IFJlbmQKICAgICByZXR1cm4gdG9FbGVtZW50KG9yaWdpbmFsUGFyZW50KS0+cmVuZGVyZXIo
KS0+aXNDaGlsZEFsbG93ZWQoY2hpbGQsIHN0eWxlKTsKIH0KIAotdm9pZCBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKQordm9pZCBSZW5kZXJO
YW1lZEZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRJZk5lZWRlZCgp
CiB7Ci0gICAgUmVuZGVyRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVu
dCgpOworICAgIGlmICghbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgPSBmYWxz
ZTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFVwZGF0ZVJlZ2lvbkxheW91dCgm
ZG9jdW1lbnQoKSwgJm5hbWVkRmxvdygpKTsKIAogICAgIGlmICghbV9yZWdpb25MYXlvdXRVcGRh
dGVFdmVudFRpbWVyLmlzQWN0aXZlKCkgJiYgbmFtZWRGbG93KCkuaGFzRXZlbnRMaXN0ZW5lcnMo
KSkKICAgICAgICAgbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKIH0KIAotdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uT3ZlcnNl
dENoYW5nZUV2ZW50KCkKK3ZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lv
bk92ZXJzZXRDaGFuZ2VFdmVudElmTmVlZGVkKCkKIHsKLSAgICBSZW5kZXJGbG93VGhyZWFkOjpk
aXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpOworICAgIGlmICghbV9kaXNwYXRjaFJl
Z2lvbk92ZXJzZXRDaGFuZ2VFdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kaXNwYXRj
aFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCA9IGZhbHNlOwogICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldCgmZG9jdW1lbnQoKSwgJm5hbWVkRmxvdygp
KTsKICAgICAKICAgICBpZiAoIW1fcmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXIuaXNBY3Rp
dmUoKSAmJiBuYW1lZEZsb3coKS5oYXNFdmVudExpc3RlbmVycygpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCmluZGV4IDI4ZjcyODhhYzVm
ZjBmM2ZjNjQxYWRlMjYwNDNhYTM5ODY4ZDJkYWQuLjVhZDBmYWE5OWFlYjRmZmE2MDJiYTlhYzY3
MDFiMDYxYzQ3MTYwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93VGhyZWFkLmgKQEAgLTcwLDkgKzcwLDYgQEAgcHVibGljOgogCiAgICAgTGF5b3V0
UmVjdCBkZWNvcmF0aW9uc0NsaXBSZWN0Rm9yQm94SW5OYW1lZEZsb3dGcmFnbWVudChjb25zdCBS
ZW5kZXJCb3gmLCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCYpIGNvbnN0OwogCi0gICAgYm9vbCBv
dmVyc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyc2V0OyB9Ci0gICAgdm9pZCBjb21wdXRlT3Zl
cnNldFN0YXRlRm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRnZSk7Ci0KICAg
ICB2b2lkIHJlZ2lzdGVyTmFtZWRGbG93Q29udGVudEVsZW1lbnQoRWxlbWVudCYpOwogICAgIHZv
aWQgdW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnRFbGVtZW50KEVsZW1lbnQmKTsKICAgICBjb25z
dCBOYW1lZEZsb3dDb250ZW50RWxlbWVudHMmIGNvbnRlbnRFbGVtZW50cygpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGVudEVsZW1lbnRzOyB9CkBAIC05MSw2ICs4OCwxMiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRmxvd0NoaWxkSW5mbyhSZW5kZXJPYmplY3QqKSBvdmVycmlk
ZSBmaW5hbDsKIAorICAgIExheW91dFVuaXQgZmxvd0NvbnRlbnRCb3R0b20oKSBjb25zdCB7IHJl
dHVybiBtX2Zsb3dDb250ZW50Qm90dG9tOyB9CisgICAgdm9pZCBkaXNwYXRjaE5hbWVkRmxvd0V2
ZW50cygpOworCisgICAgdm9pZCBzZXREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KGJv
b2wgdmFsdWUpIHsgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50ID0gdmFsdWU7IH0K
KyAgICB2b2lkIHNldERpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KGJvb2wgdmFsdWUp
IHsgbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCA9IHZhbHVlOyB9CisKIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHNldE1hcmtGb3JEZXN0cnVjdGlvbigpOwogICAgIHZvaWQgcmVzZXRN
YXJrRm9yRGVzdHJ1Y3Rpb24oKTsKQEAgLTk5LDkgKzEwMiwxMSBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBpc1JlbmRlck5hbWVkRmxvd1RocmVhZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoY29uc3QgUmVuZGVyT2Jq
ZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgY29tcHV0ZU92ZXJmbG93KExheW91dFVuaXQsIGJvb2wgPSBmYWxzZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGxheW91dCgpIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRJZk5lZWRlZCgpOworICAgIHZv
aWQgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRJZk5lZWRlZCgpOwogCiAgICAgYm9v
bCBkZXBlbmRzT24oUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBvdGhlclJlbmRlckZsb3dUaHJlYWQp
IGNvbnN0OwogICAgIHZvaWQgYWRkRGVwZW5kZW5jeU9uRmxvd1RocmVhZChSZW5kZXJOYW1lZEZs
b3dUaHJlYWQqKTsKQEAgLTEzNywxNCArMTQyLDE3IEBAIHByaXZhdGU6CiAKICAgICBSZW5kZXJS
ZWdpb25MaXN0IG1faW52YWxpZFJlZ2lvbkxpc3Q7CiAKLSAgICBib29sIG1fb3ZlcnNldCA6IDE7
CiAgICAgYm9vbCBtX2hhc1JlZ2lvbnNXaXRoU3R5bGluZyA6IDE7CisgICAgYm9vbCBtX2Rpc3Bh
dGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgOiAxOworICAgIGJvb2wgbV9kaXNwYXRjaFJlZ2lv
bk92ZXJzZXRDaGFuZ2VFdmVudCA6IDE7CiAKICAgICAvLyBUaGUgRE9NIE9iamVjdCB0aGF0IHJl
cHJlc2VudHMgYSBuYW1lZCBmbG93LgogICAgIFJlZjxXZWJLaXROYW1lZEZsb3c+IG1fbmFtZWRG
bG93OwogCiAgICAgVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFkPiBtX3JlZ2lvbkxheW91dFVw
ZGF0ZUV2ZW50VGltZXI7CiAgICAgVGltZXI8UmVuZGVyTmFtZWRGbG93VGhyZWFkPiBtX3JlZ2lv
bk92ZXJzZXRDaGFuZ2VFdmVudFRpbWVyOworCisgICAgTGF5b3V0VW5pdCBtX2Zsb3dDb250ZW50
Qm90dG9tOwogfTsKIAogUkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlck5hbWVkRmxvd1Ro
cmVhZCwgaXNSZW5kZXJOYW1lZEZsb3dUaHJlYWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggZjIyNDY3MjRjNjg4YzFmMjU0NWIyYTJlODRhNjlmNWJk
MTZjMTI3MS4uMmM0ZTU2NjdlNTE2OTMyNmVhYzBiZmVkNzI2M2NkMWRiYTgxMmEwMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKQEAgLTE4MSwyMyArMTgxLDYg
QEAgTGF5b3V0UmVjdCBSZW5kZXJSZWdpb246Om92ZXJmbG93UmVjdEZvckZsb3dUaHJlYWRQb3J0
aW9uKGNvbnN0IExheW91dFJlY3QmIGZsb3cKICAgICByZXR1cm4gY2xpcFJlY3Q7CiB9CiAKLVJl
Z2lvbk92ZXJzZXRTdGF0ZSBSZW5kZXJSZWdpb246OnJlZ2lvbk92ZXJzZXRTdGF0ZSgpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKGdlbmVyYXRpbmdFbGVtZW50KCkpOwotCi0gICAgaWYgKCFpc1ZhbGlk
KCkpCi0gICAgICAgIHJldHVybiBSZWdpb25VbmRlZmluZWQ7Ci0KLSAgICByZXR1cm4gZ2VuZXJh
dGluZ0VsZW1lbnQoKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCk7Ci19Ci0KLXZvaWQgUmVuZGVyUmVn
aW9uOjpzZXRSZWdpb25PdmVyc2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlIHN0YXRlKQotewot
ICAgIEFTU0VSVChnZW5lcmF0aW5nRWxlbWVudCgpKTsKLQotICAgIGdlbmVyYXRpbmdFbGVtZW50
KCktPnNldFJlZ2lvbk92ZXJzZXRTdGF0ZShzdGF0ZSk7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVy
UmVnaW9uOjpwYWdlTG9naWNhbFRvcEZvck9mZnNldChMYXlvdXRVbml0IC8qIG9mZnNldCAqLykg
Y29uc3QKIHsKICAgICByZXR1cm4gZmxvd1RocmVhZCgpLT5pc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gZmxvd1RocmVhZFBvcnRpb25SZWN0KCkueSgpIDogZmxvd1RocmVhZFBvcnRpb25SZWN0
KCkueCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IDU1ZDE1
NDdhOWQ0NDc1OGUzN2RkZWQ3Yjc5ZDNmNWE2Nzk1OTIwMzYuLmE0ZWY2YmU4ODg3NjM0ODgxM2I4
MzhmMGI3YWM5MjZmZjE2Y2U3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmgKQEAgLTc5LDkgKzc5LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNMYXN0UmVnaW9uKCkg
Y29uc3Q7CiAgICAgYm9vbCBzaG91bGRDbGlwRmxvd1RocmVhZENvbnRlbnQoKSBjb25zdDsKIAot
ICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSByZWdpb25PdmVyc2V0U3RhdGUoKSBjb25zdDsKLSAgICB2
b2lkIHNldFJlZ2lvbk92ZXJzZXRTdGF0ZShSZWdpb25PdmVyc2V0U3RhdGUpOwotCiAgICAgLy8g
VGhlc2UgbWV0aG9kcyByZXByZXNlbnQgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgYSAicGFnZSIg
YW5kIGZvciBhIFJlbmRlclJlZ2lvbiB0aGV5IGFyZSBqdXN0IHRoZQogICAgIC8vIGNvbnRlbnQg
d2lkdGggYW5kIGNvbnRlbnQgaGVpZ2h0IG9mIGEgcmVnaW9uLiBGb3IgUmVuZGVyUmVnaW9uU2V0
cywgaG93ZXZlciwgdGhleSB3aWxsIGJlIHRoZSB3aWR0aCBhbmQKICAgICAvLyBoZWlnaHQgb2Yg
YSBzaW5nbGUgY29sdW1uIG9yIHBhZ2UgaW4gdGhlIHNldC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzZDQyYWNlYzFlZTFm
NjU4ZmYyMDQyNWIxM2FiNjVmMGYwOGMwNDRlLi5lZjU4YzEzMGQ0YmMxYTc2MTQ2MGNlOTgwMzY1
Njc2NWU1NzQ0YmI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDItMjYgIEFuZHJlaSBC
dWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBSZWdpb25zXSBPdmVyc2V0
IGNvbXB1dGF0aW9uIGlzIGluY29ycmVjdCBpbiBzb21lIGNhc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwMzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGp1c3QgdGhlIHRlc3RzIHRvIGNvcGUg
d2l0aCB0aGUgb3ZlcnNldCBjaGFuZ2VzLiAKKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9jc3Nv
bS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0ZS12ZXJ0aWNhbC1y
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVn
aW9uLW92ZXJzZXQtc3RhdGUtdmVydGljYWwtcmwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0ZS5odG1sOgorICAgICAgICBUaGlz
IHRlc3QgaGFzIGEgbmV3IGNhc2UgdGhhdCB2ZXJpZmllcyByZWdpb24gY2xhbXBpbmcgaXMgY29y
cmVjdGx5IHRha2VuIGludG8gYWNjb3VudC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvY3Nzb20v
d2Via2l0LW5hbWVkLWZsb3ctb3ZlcnNldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9y
ZWdpb25zL2Nzc29tL3dlYmtpdC1uYW1lZC1mbG93LW92ZXJzZXQuaHRtbDoKKwogMjAxNC0wMy0w
MiAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IEFTU0VSVCBpbiB+SURCUmVxdWVzdCBzaW5jZSBpdCBpcyBmaXJpbmcgZHVyaW5nIGxlZ2l0aW1h
dGUgdXNlcyBpbiBXZWIgSW5zcGVjdG9yLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3Rh
dGUtZXhwZWN0ZWQudHh0CmluZGV4IDcxNmNiNWRmYzY2ZGFkMDNhYjE5ZTM1MGE2MjMwN2U4OWZl
M2UwOWIuLjk1ZjhkNTQzNGM3OTYzZGY5OTBhOTkwNzRlZjgwY2Y2MGMxNTRmMzcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0
LXN0YXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20v
ZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0ZS1leHBlY3RlZC50eHQKQEAgLTEwLDYgKzEwLDEw
IEBAIEZsb3cgY29udGVudAogUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMScpIGlzICJmaXQi
CiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJykgaXMgImZpdCIKIFBBU1MgcmVnaW9uT3Zl
cnNldCgncmVnaW9uXzMnKSBpcyAiZW1wdHkiCitHZW5lcmF0ZSBsYXlvdXQgb3ZlcmZsb3cKK1BB
U1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzEnKSBpcyAiZml0IgorUEFTUyByZWdpb25PdmVyc2V0
KCdyZWdpb25fMicpIGlzICJmaXQiCitQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8zJykgaXMg
ImVtcHR5IgogQWRkIG1vcmUgY29udGVudAogUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMScp
IGlzICJmaXQiCiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJykgaXMgImZpdCIKQEAgLTE3
LDcgKzIxLDcgQEAgUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMycpIGlzICJmaXQiCiBBZGQg
dmlzdWFsIG92ZXJmbG93CiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8xJykgaXMgImZpdCIK
IFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzInKSBpcyAiZml0IgotUEFTUyByZWdpb25PdmVy
c2V0KCdyZWdpb25fMycpIGlzICJvdmVyc2V0IgorUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25f
MycpIGlzICJmaXQiCiBFbXB0eSBjb250ZW50CiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8x
JykgaXMgImVtcHR5IgogUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIGlzICJlbXB0eSIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lv
bi1vdmVyc2V0LXN0YXRlLXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLXZlcnRpY2FsLXJs
LWV4cGVjdGVkLnR4dAppbmRleCA3MTZjYjVkZmM2NmRhZDAzYWIxOWUzNTBhNjIzMDdlODlmZTNl
MDliLi5kZDQ4MGI0YzIxYWY0MmM2NjllODUxMWZhMjM5MzUzZWY3YjhkMGNkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1z
dGF0ZS12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUtdmVydGljYWwtcmwtZXhwZWN0
ZWQudHh0CkBAIC0xNyw3ICsxNyw3IEBAIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzMnKSBp
cyAiZml0IgogQWRkIHZpc3VhbCBvdmVyZmxvdwogUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25f
MScpIGlzICJmaXQiCiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJykgaXMgImZpdCIKLVBB
U1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzMnKSBpcyAib3ZlcnNldCIKK1BBU1MgcmVnaW9uT3Zl
cnNldCgncmVnaW9uXzMnKSBpcyAiZml0IgogRW1wdHkgY29udGVudAogUEFTUyByZWdpb25PdmVy
c2V0KCdyZWdpb25fMScpIGlzICJlbXB0eSIKIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzIn
KSBpcyAiZW1wdHkiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20v
ZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0ZS12ZXJ0aWNhbC1ybC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUtdmVydGlj
YWwtcmwuaHRtbAppbmRleCAxMzk5NWIxMTY5ZTQ1ZjJiZGY1ODRiNjYzNWIzMWFlNGEzODg3Nzlj
Li42Yzg4YmY3ZDdkY2IxYWFkZTJjNDIwOThmMDAwZDNhODM4Y2EyN2FkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0
ZS12ZXJ0aWNhbC1ybC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9l
bGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLXZlcnRpY2FsLXJsLmh0bWwKQEAgLTkyLDcgKzky
LDcgQEAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KIAogICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8xJykiLCAiZml0Iik7CiAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcnNldCgncmVnaW9uXzInKSIsICJm
aXQiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyc2V0KCdyZWdp
b25fMycpIiwgIm92ZXJzZXQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdp
b25PdmVyc2V0KCdyZWdpb25fMycpIiwgImZpdCIpOwogCiAgICAgICAgIGRlYnVnKCJFbXB0eSBj
b250ZW50Iik7CiAgICAgICAgIGZsb3dDb250ZW50KCJub19hcnRpY2xlIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1z
dGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9u
LW92ZXJzZXQtc3RhdGUuaHRtbAppbmRleCA5MGJkNjg2NGM0NWU1ODFhOGE2YWE3YjAwYmNmODk1
ODQzMTQ4NWYyLi5hNTBlM2E0NmZhNTJiYjMwNDM0MTE4MjNjZTk5NmE2Yjc3ZWQwMGNiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3Zl
cnNldC1zdGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9lbGVt
ZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLmh0bWwKQEAgLTU4LDcgKzU4LDE4IEBACiAgICAgfQog
ICAgIGZ1bmN0aW9uIGFkZE1vcmVDb250ZW50KCkgewogICAgICAgICB2YXIgYyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7CisgICAgICAgIGMuc3R5bGUubWFyZ2luVG9wID0g
MDsKICAgICAgICAgYy5zdHlsZS5oZWlnaHQgPSAzMjY7CisgICAgICAgIHZhciBhID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKTsKKyAgICAgICAgYS5zdHlsZS5oZWlnaHQgPSAi
YXV0byI7CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2VuZXJhdGVMYXlvdXRPdmVyZmxvdygpIHsK
KyAgICAgICAgdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOworICAg
ICAgICBjLnN0eWxlLm1hcmdpblRvcCA9IDQwMDsKKyAgICAgICAgYy5zdHlsZS5oZWlnaHQgPSA0
MDA7CisgICAgICAgIHZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKTsK
KyAgICAgICAgYS5zdHlsZS5oZWlnaHQgPSAxNTA7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gdGVz
dCgpIHsKQEAgLTczLDYgKzg0LDEyIEBACiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVnaW9uT3ZlcnNldCgncmVnaW9uXzInKSIsICJmaXQiKTsKICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWdpb25PdmVyc2V0KCdyZWdpb25fMycpIiwgImVtcHR5Iik7CiAKKyAgICAg
ICAgZGVidWcoIkdlbmVyYXRlIGxheW91dCBvdmVyZmxvdyIpOworICAgICAgICBnZW5lcmF0ZUxh
eW91dE92ZXJmbG93KCk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3Zl
cnNldCgncmVnaW9uXzEnKSIsICJmaXQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIiwgImZpdCIpOworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8zJykiLCAiZW1wdHkiKTsKKwogICAg
ICAgICBkZWJ1ZygiQWRkIG1vcmUgY29udGVudCIpOwogICAgICAgICBhZGRNb3JlQ29udGVudCgp
OwogCkBAIC04NSw3ICsxMDIsNyBAQAogCiAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVnaW9uT3ZlcnNldCgncmVnaW9uXzEnKSIsICJmaXQiKTsKICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIiwgImZpdCIpOwotICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8zJykiLCAib3ZlcnNl
dCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3JlZ2lv
bl8zJykiLCAiZml0Iik7CiAKICAgICAgICAgZGVidWcoIkVtcHR5IGNvbnRlbnQiKTsKICAgICAg
ICAgZmxvd0NvbnRlbnQoIm5vX2FydGljbGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9jc3NvbS93ZWJraXQtbmFtZWQtZmxvdy1vdmVyc2V0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS93ZWJraXQtbmFtZWQtZmxvdy1vdmVyc2V0
LWV4cGVjdGVkLnR4dAppbmRleCAwNWVhNTcwZTRlY2JmNWE2NmMzMmU2Nzk1MTA2MjdjNDc5ZjJm
ZmY4Li5lN2RmZjY4NWQ0NDQyMjVlOGNjMmQzMjY3NThlYTU5NWNmYjRmMGIyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vd2Via2l0LW5hbWVkLWZsb3ctb3ZlcnNl
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL3dlYmtp
dC1uYW1lZC1mbG93LW92ZXJzZXQtZXhwZWN0ZWQudHh0CkBAIC03LDkgKzcsOSBAQCBQQVNTIG5h
bWVkRmxvdy5vdmVyc2V0IGlzIHRydWUKIFBBU1MgbmFtZWRGbG93Lm92ZXJzZXQgaXMgZmFsc2UK
IFBBU1MgbmFtZWRGbG93Lm92ZXJzZXQgaXMgdHJ1ZQogUEFTUyBuYW1lZEZsb3cub3ZlcnNldCBp
cyBmYWxzZQotUEFTUyBuYW1lZEZsb3cub3ZlcnNldCBpcyB0cnVlCiBQQVNTIG5hbWVkRmxvdy5v
dmVyc2V0IGlzIGZhbHNlCi1QQVNTIG5hbWVkRmxvdy5vdmVyc2V0IGlzIHRydWUKK1BBU1MgbmFt
ZWRGbG93Lm92ZXJzZXQgaXMgZmFsc2UKK1BBU1MgbmFtZWRGbG93Lm92ZXJzZXQgaXMgZmFsc2UK
IFBBU1MgbmFtZWRGbG93Lm92ZXJzZXQgaXMgZmFsc2UKIFBBU1MgbmFtZWRGbG93Lm92ZXJzZXQg
aXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL3dlYmtpdC1uYW1lZC1mbG93LW92ZXJzZXQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS93ZWJraXQtbmFtZWQtZmxvdy1vdmVy
c2V0Lmh0bWwKaW5kZXggYjRmNjk0M2JhODcxNzhmNjEyMTZkNDBkNzFiYmFhZTgwM2UyYTY5YS4u
YzRiY2ZmZDcyYTIyYTliNWNkZTM1NmZlOTUzN2MzMjk1Y2JhMWRkZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL3dlYmtpdC1uYW1lZC1mbG93LW92ZXJzZXQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vd2Via2l0LW5hbWVkLWZsb3ct
b3ZlcnNldC5odG1sCkBAIC01OSw4ICs1OSw5IEBACiAgICAgLy8gQWRkIHZpc3VhbCBvdmVyc2V0
LCBvdmVyc2V0IHNob3VsZCBiZSB0cnVlLgogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh
cnRpY2xlIikuc3R5bGUud2Via2l0Qm94U2hhZG93PSIwcHggNTBweCBsaW1lIjsKIAotICAgIC8v
IE92ZXJzZXQgc2hvdWxkIGJlIHRydWUgc2luY2UgdGhlIGNvbnRlbnQgZG9lcyBub3QgZml0IGlu
IHJlZ2lvbnMKLSAgICBzaG91bGRCZSgibmFtZWRGbG93Lm92ZXJzZXQiLCAidHJ1ZSIpOworICAg
IC8vIE92ZXJzZXQgc2hvdWxkIGJlIGZhbHNlIGV2ZW4gaWYgdGhlIGNvbnRlbnQgc2hhZG93IG92
ZXJmbG93cyB0aGUgbGFzdCByZWdpb24KKyAgICAvLyBzaW5jZSB0aGUgdmlzdWFsIG92ZXJmbG93
IGRvZXMgbm90IGluZmx1ZW5jZSB0aGUgb3ZlcnNldCBwcm9wZXJ0eS4KKyAgICBzaG91bGRCZSgi
bmFtZWRGbG93Lm92ZXJzZXQiLCAiZmFsc2UiKTsKIAogICAgIC8vIEFkZCB0aGUgdGhpcmQgcmVn
aW9uLCBvdmVyc2V0IHNob3VsZCBiZSBmYWxzZS4KICAgICB2YXIgcmVnaW9uMyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpAQCAtNzQsOCArNzUsOSBAQAogICAgIC8vIFJlbW92ZSB0
aGUgZmlyc3QgcmVnaW9uIGZyb20gdGhlIGZsb3csIG92ZXJzZXQgc2hvdWxkIGJlIHRydWUuCiAg
ICAgcmVnaW9uLmNsYXNzTmFtZSA9ICIiOwogCi0gICAgLy8gT3ZlcnNldCBzaG91bGQgYmUgdHJ1
ZSBzaW5jZSB0aGUgY29udGVudCBkb2VzIG5vdCBmaXQgdGhlIHJlZ2lvbnMKLSAgICBzaG91bGRC
ZSgibmFtZWRGbG93Lm92ZXJzZXQiLCAidHJ1ZSIpOworICAgIC8vIE92ZXJzZXQgc2hvdWxkIGJl
IGZhbHNlIGV2ZW4gaWYgdGhlIGNvbnRlbnQgc2hhZG93IG92ZXJmbG93cyB0aGUgbGFzdCByZWdp
b24KKyAgICAvLyBzaW5jZSB0aGUgdmlzdWFsIG92ZXJmbG93IGRvZXMgbm90IGluZmx1ZW5jZSB0
aGUgb3ZlcnNldCBwcm9wZXJ0eS4KKyAgICBzaG91bGRCZSgibmFtZWRGbG93Lm92ZXJzZXQiLCAi
ZmFsc2UiKTsKIAogICAgIC8vIFJlbW92ZSB0aGUgY29udGVudCBmcm9tIHRoZSBmbG93LCBvdmVy
c2V0IHNob3VsZCBiZSBmYWxzZS4KICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNs
ZSIpLmNsYXNzTmFtZSA9ICIiOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225654</attachid>
            <date>2014-03-03 08:26:33 -0800</date>
            <delta_ts>2014-03-03 09:10:28 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-129032-20140303183108.patch</filename>
            <type>text/plain</type>
            <size>33706</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIwZmFlNzM4NGIzNDdl
Y2I0YmRhMDhlMmQ0OTk4NmIyM2Q2ZjAyOC4uOTM4YjJmNjlkMGQwZjM2MjY4MzQ2ZjA2NzViOGEw
OGE5NDJjMzk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE0LTAzLTAzICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gT3Zl
cnNldCBjb21wdXRhdGlvbiBpcyBpbmNvcnJlY3QgaW4gc29tZSBjYXNlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDMyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTWlobmVhIE92aWRlbmllLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmV3b3JrcyB0
aGUgd2F5IG92ZXJzZXQgaXMgY29tcHV0ZWQgZm9yIHJlZ2lvbnMgYW5kIG5hbWVkIGZsb3dzLgor
CisgICAgICAgIDEuIFJlZ2lvbnMgb3ZlcmZsb3cgbm8gbG9uZ2VyIHRyaWdnZXIgYW4gb3ZlcnNl
dCBjaGFuZ2VkIGV2ZW50LiBUaGlzIGlzIGJlY2F1c2UKKyAgICAgICAgdGhlIG92ZXJmbG93IG9m
IGEgYm94IGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHJlZ2lvbiByYW5nZSBvZiB0aGUgYm94LiBU
aGUgY29udGVudAorICAgICAgICBlZGdlIHNob3VsZCBiZSBjb25zaWRlcmVkIHRoZSBsb2dpY2Fs
IGJvdHRvbSBwb3NpdGlvbiBvZiB0aGUgY29udGVudCBpbnNpZGUgdGhlCisgICAgICAgIGZsb3cg
dGhyZWFkLgorCisgICAgICAgIDIuIFRoZSByZWdpb25zIGV2ZW50cyBsb2dpYyB3YXMgbW92ZWQg
ZnJvbSBSZW5kZXJGbG93VGhyZWFkIHRvIFJlbmRlck5hbWVkRmxvd1RocmVhZAorICAgICAgICBh
bmQgZnJvbSBSZW5kZXJSZWdpb24gdG8gUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQgKGluY2x1ZGlu
ZyB0aGUgcmVnaW9uT3ZlcnNldCBwcm9wZXJ0eSkuCisKKyAgICAgICAgMy4gVGhlIG92ZXJzZXQg
dmFsdWUgb2YgdGhlIG5hbWVkIGZsb3cgaXMgbm8gbG9uZ2VyIHN0b3JlZCBpbiB0aGUgbmFtZWQg
Zmxvdy4gSXQgaXMKKyAgICAgICAgZXh0cmFjdGVkIGZyb20gdGhlIG92ZXJzZXQgb2YgdGhlIGxh
c3QgcmVnaW9uIGluIHRoZSBjaGFpbi4KKworICAgICAgICA0LiBUaGUgcmVnaW9ucyBvdmVyc2V0
IGlzIG5vdCBjb21wdXRlZCBldmVyeSB0aW1lIHRoZSBmbG93IHRocmVhZCBpcyBsYWlkIG91dCB3
aGljaAorICAgICAgICBzaG91bGQgaW1wcm92ZSBwZXJmb3JtYW5jZSBmb3IgZmxvd3Mgd2l0aCBt
YW55IHJlZ2lvbnMuIFdpdGggdGhlIHBhdGNoLCBlYWNoIHJlZ2lvbgorICAgICAgICBjb21wdXRl
cyB0aGUgb3ZlcnNldCB2YWx1ZSBkdXJpbmcgaXRzIGxheW91dCB3aGVuIHRoZSBmbG93IHRocmVh
ZCBpcyBpbiB0aGUgb3ZlcmZsb3cKKyAgICAgICAgb3IgdGhlIGZpbmFsIGxheW91dCBwaGFzZS4K
KworICAgICAgICA1LiBUaGUgb3ZlcnNldCBjaGFuZ2VkIGV2ZW50IGlzIGRpc3BhdGNoZWQgb25s
eSBhdCB0aGUgZW5kIG9mIHRoZSBsYXlvdXQgb2YgdGhlIG5hbWVkIGZsb3dzLAorICAgICAgICBh
ZnRlciBhbGwgdGhlIHJlZ2lvbiBvdmVyc2V0IGNoYW5nZXMgaGF2ZSBiZWVuIGNvbnNpZGVyZWQu
IFRoaXMgbWVhbnMgdGhhdCB0aGUgb3ZlcnNldAorICAgICAgICBldmVudCBjYW4ndCBiZSBkaXNw
YXRjaGVkIGluIHRoZSBtaWRkbGUgb2YgdGhlIGF1dG8taGVpZ2h0IHByb2Nlc3NpbmcgYWxnb3Jp
dGhtIHRoYXQKKyAgICAgICAgcmVxdWlyZXMgbXVsdGlwbGUgbGF5b3V0IHBhc3NlcyBmb3IgdGhl
IGZsb3cgdGhyZWFkcy4KKworICAgICAgICBIb3dldmVyLCB0aGUgcmVnaW9uIGxheW91dCB1cGRh
dGUgZXZlbnQgZGlzcGF0Y2ggdGltaW5nIHdhcyBub3QgY2hhbmdlZCwgaXQgaXMgZGlzcGF0Y2hl
ZAorICAgICAgICBldmVyeSB0aW1lIHRoZSBmbG93IHRocmVhZCBoYXMgYSBsYXlvdXQuIFRoaXMg
cHJlc2VydmVzIHRoZSBjdXJyZW50IGJlaGF2aW9yIG9mIHRoZSBldmVudC4KKworICAgICAgICBU
ZXN0czogVGhlIG9sZCB0ZXN0cyB3ZXJlIG1vZGlmaWVkIHRvIHRha2UgaW50byBhY2NvdW50IHRo
ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50Ojp3ZWJraXRSZWdpb25PdmVyc2V0KToKKyAgICAgICAgKiBkb20vV2ViS2l0TmFt
ZWRGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE5hbWVkRmxvdzo6b3ZlcnNldCk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpidWlsZEFycmF5Rm9yUmVnaW9ucyk6CisgICAgICAg
ICogcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVGbG93VGhyZWFkc0ludG9NZWFzdXJlQ29udGVu
dFBoYXNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1Ro
cmVhZDo6UmVuZGVyRmxvd1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhy
ZWFkOjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpsYXlvdXRCbG9jayk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6c2V0UmVnaW9uT3ZlcnNldFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpyZWdpb25PdmVy
c2V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OnVw
ZGF0ZU92ZXJzZXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0Zy
YWdtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OlJlbmRlck5hbWVkRmxv
d1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNvbXB1
dGVPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6Omxh
eW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmRpc3BhdGNo
TmFtZWRGbG93RXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVh
ZDo6ZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudElmTmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdl
RXZlbnRJZk5lZWRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVh
ZC5oOgorICAgICAgICBUaGVyZSdzIGEgbmV3IGZpZWxkIGNhbGxlZCBtX2Zsb3dDb250ZW50Qm90
dG9tIHRoYXQgdHJhY2tzIHRoZSBjb250ZW50IGJvdHRvbSBvZiB0aGUgZmxvdyB0aHJlYWQKKyAg
ICAgICAgYWZ0ZXIgbGF5b3V0LiBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gY29tcHV0ZSB0aGUgb3Zl
cnNldCB2YWx1ZSBvZiB0aGUgcmVnaW9ucyBiZWNhdXNlIGl0J3Mgbm90CisgICAgICAgIGFmZmVj
dGVkIGJ5IHJlbGF0aXZlIHBvc2l0aW9uaW5nIG9yIHZpc3VhbCBvdmVyZmxvdyBzdWNoIGFzIHNo
YWRvd3MuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHA6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgorCiAyMDE0LTAzLTAzICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJlc3BlY3QgU1ZHIGZyYWdtZW50IGlkZW50
aWZpZXJzIGluIDxpbWc+IHNyYyBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4
OTdlN2EwNGU3YjBjZTUzODliOTI2NzMxOGY5NzNmODRhZWNkYmIyLi5jZWVkZWI0OTQ1ZmI4ZDU5
ZDI0ZTM1MDJlYmU2NDJkMDIwMmFhMzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yNTcw
LDcgKzI1NzAsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92
ZXJzZXQoKSBjb25zdAogICAgIGlmICghZG9jdW1lbnQoKS5jc3NSZWdpb25zRW5hYmxlZCgpIHx8
ICFyZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpKQogICAgICAgICByZXR1cm4gdW5kZWZpbmVkU3Rh
dGU7CiAKLSAgICBzd2l0Y2ggKHJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KCktPnJlZ2lvbk92ZXJz
ZXRTdGF0ZSgpKSB7CisgICAgc3dpdGNoIChyZWdpb25PdmVyc2V0U3RhdGUoKSkgewogICAgIGNh
c2UgUmVnaW9uRml0OiB7CiAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBmaXRTdGF0ZSwgKCJmaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgICAgIHJldHVybiBmaXRTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XZWJLaXROYW1lZEZsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxv
dy5jcHAKaW5kZXggY2ZmMmRkNjU5NjkxMmEwMzNhOTNjOWFjNWE4MTFhODhmNGRkMDJhZi4uZTA5
YTk5ODQ4NzRmOWE0MWUyMmFkY2ZlY2IzNjQ2NjNlYzE4NTRlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE5hbWVkRmxvdy5jcHAKQEAgLTY5LDcgKzY5LDExIEBAIGJvb2wgV2ViS2l0TmFtZWRG
bG93OjpvdmVyc2V0KCkgY29uc3QKIAogICAgIC8vIFRoZSByZW5kZXJlciBtYXkgYmUgZGVzdHJv
eWVkIG9yIGNyZWF0ZWQgYWZ0ZXIgdGhlIHN0eWxlIHVwZGF0ZS4KICAgICAvLyBCZWNhdXNlIHRo
aXMgaXMgY2FsbGVkIGZyb20gSlMsIHdoZXJlIHRoZSB3cmFwcGVyIGtlZXBzIGEgcmVmZXJlbmNl
IHRvIHRoZSBOYW1lZEZsb3csIG5vIGd1YXJkIGlzIG5lY2Vzc2FyeS4KLSAgICByZXR1cm4gbV9w
YXJlbnRGbG93VGhyZWFkID8gbV9wYXJlbnRGbG93VGhyZWFkLT5vdmVyc2V0KCkgOiB0cnVlOwor
ICAgIGlmICghbV9wYXJlbnRGbG93VGhyZWFkIHx8ICFtX3BhcmVudEZsb3dUaHJlYWQtPmhhc1Jl
Z2lvbnMoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjb25zdCBSZW5kZXJOYW1lZEZs
b3dGcmFnbWVudCogbmFtZWRGbG93RnJhZ21lbnQgPSB0b1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50
KG1fcGFyZW50Rmxvd1RocmVhZC0+bGFzdFJlZ2lvbigpKTsKKyAgICByZXR1cm4gbmFtZWRGbG93
RnJhZ21lbnQtPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpID09IFJlZ2lvbk92ZXJzZXQ7CiB9CiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBpbkZsb3dUaHJlYWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93VGhyZWFkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggMWEwYmI5ODgyODMzM2Y3YTFjYzU3Yzc0
NmFjMmM5NjZmMDBkMWU4Yy4uNWUxNjRlNDVjMTA2MmRiZDgwZGUxMDQ4MjRhZWI0NDA1NjIyZTAz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
CkBAIC0xMTk2LDcgKzExOTYsNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6
OkFycmF5PEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNTUzo6UmVnaW9uPj4gSQogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCByZWdpb25MaXN0LT5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAg
IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNTUzo6UmVnaW9uOjpSZWdpb25PdmVyc2V0OjpFbnVt
IHJlZ2lvbk92ZXJzZXQ7CiAKLSAgICAgICAgc3dpdGNoICh0b0VsZW1lbnQocmVnaW9uTGlzdC0+
aXRlbShpKSktPnJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KCktPnJlZ2lvbk92ZXJzZXRTdGF0ZSgp
KSB7CisgICAgICAgIHN3aXRjaCAodG9FbGVtZW50KHJlZ2lvbkxpc3QtPml0ZW0oaSkpLT5yZWdp
b25PdmVyc2V0U3RhdGUoKSkgewogICAgICAgICBjYXNlIFJlZ2lvbkZpdDoKICAgICAgICAgICAg
IHJlZ2lvbk92ZXJzZXQgPSBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDU1M6OlJlZ2lvbjo6UmVn
aW9uT3ZlcnNldDo6Rml0OwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAppbmRleCAwZmIxOThhOWFhZGU0
ZmQxYzFlMWVhNjQ2ZTg1NWU2MTRlNDBkOTcwLi4zMmY5N2IwNTRkZGFmZmYxMTliN2JlMjAxOGI0
MGFlNGIwYTk5Zjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1Ro
cmVhZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5jcHAKQEAgLTI0Niw2ICsyNDYsNyBAQCB2b2lkIEZsb3dUaHJlYWRDb250
cm9sbGVyOjp1cGRhdGVGbG93VGhyZWFkc0ludG9NZWFzdXJlQ29udGVudFBoYXNlKCkKICAgICAg
ICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93UmVuZGVyZXIgPSAqaXRlcjsKICAgICAgICAg
QVNTRVJUKGZsb3dSZW5kZXJlci0+aW5GaW5hbExheW91dFBoYXNlKCkpOwogCisgICAgICAgIGZs
b3dSZW5kZXJlci0+ZGlzcGF0Y2hOYW1lZEZsb3dFdmVudHMoKTsKICAgICAgICAgZmxvd1JlbmRl
cmVyLT5zZXRMYXlvdXRQaGFzZShSZW5kZXJGbG93VGhyZWFkOjpMYXlvdXRQaGFzZU1lYXN1cmVD
b250ZW50KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAppbmRleCBjYjgxNTQyYjBjY2E3NTkyODg2ODUzM2Y4ZWQ5MGM0YmEzZDM1OTk0Li43YWJjNjI2
ZGZkNmE1MDdkYTRhYjVhNTRiMjc2MzVjYzAwNGE5YTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE1OTAsOSArMTU5MCw2IEBAIHZvaWQgUmVuZGVyQmxv
Y2s6OmNvbXB1dGVPdmVyZmxvdyhMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRnZSwgYm9vbCkK
IAogICAgIC8vIEFkZCB2aXN1YWwgb3ZlcmZsb3cgZnJvbSB0aGVtZS4KICAgICBhZGRWaXN1YWxP
dmVyZmxvd0Zyb21UaGVtZSgpOwotCi0gICAgaWYgKGlzUmVuZGVyTmFtZWRGbG93VGhyZWFkKCkp
Ci0gICAgICAgIHRvUmVuZGVyTmFtZWRGbG93VGhyZWFkKHRoaXMpLT5jb21wdXRlT3ZlcnNldFN0
YXRlRm9yUmVnaW9ucyhvbGRDbGllbnRBZnRlckVkZ2UpOwogfQogCiB2b2lkIFJlbmRlckJsb2Nr
OjpjbGVhckxheW91dE92ZXJmbG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmNwcAppbmRleCAzYmU4NmFmYTllNWUwM2I4ZjIyY2VlNWFkNWUxNzZiZDQ0
YWMzYjA5Li40YTVjZDIzMWE0YjM3NjNmNWEzMTAyMmY4NGQwNTkwYmM3ZDlkODc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBAIC01OCw4ICs1
OCw2IEBAIFJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsCiAgICAgLCBtX3JlZ2lvbnNJbnZhbGlkYXRl
ZChmYWxzZSkKICAgICAsIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbFdpZHRoKHRydWUpCiAg
ICAgLCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxIZWlnaHQodHJ1ZSkKLSAgICAsIG1fZGlz
cGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChmYWxzZSkKLSAgICAsIG1fZGlzcGF0Y2hSZWdp
b25PdmVyc2V0Q2hhbmdlRXZlbnQoZmFsc2UpCiAgICAgLCBtX3BhZ2VMb2dpY2FsU2l6ZUNoYW5n
ZWQoZmFsc2UpCiAgICAgLCBtX2xheW91dFBoYXNlKExheW91dFBoYXNlTWVhc3VyZUNvbnRlbnQp
CiAgICAgLCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0KGZhbHNlKQpAQCAtMjM2LDEyICsyMzQsNiBA
QCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmxheW91dCgpCiAgICAgICAgIGlmICh1cGRhdGVBbGxM
YXllclRvUmVnaW9uTWFwcGluZ3MoKSkKICAgICAgICAgICAgIGxheWVyKCktPmNvbXBvc2l0b3Io
KS5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CiAgICAgfQotCi0gICAgaWYgKHNo
b3VsZERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKSkKLSAgICAgICAgZGlzcGF0Y2hS
ZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpOwotICAgIAotICAgIGlmIChzaG91bGREaXNwYXRjaFJl
Z2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpKQotICAgICAgICBkaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudCgpOwogfQogCiBib29sIFJlbmRlckZsb3dUaHJlYWQ6Omhhc0NvbXBvc2l0aW5n
UmVnaW9uRGVzY2VuZGFudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuaAppbmRleCBlYmIxMTdhZDQ2NGQyZjQ4MzE4NWI2YzQzOGIyZGE2NjZhMzVj
NDVjLi4yM2QwZjI1M2NjZjViYmI4NGQxOTk2M2JlYmQxZTFmMGE1MjgwODJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTIwOSw3ICsyMDksNiBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyRmxvd1RocmVh
ZCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgbGF5b3V0KCkgb3ZlcnJpZGUgZmluYWw7CiAKICAgICAvLyBBbHdheXMgY3JlYXRlIGEgUmVu
ZGVyTGF5ZXIgZm9yIHRoZSBSZW5kZXJGbG93VGhyZWFkIHNvIHRoYXQgd2UKICAgICAvLyBjYW4g
ZWFzaWx5IGF2b2lkIGRyYXdpbmcgdGhlIGNoaWxkcmVuIGRpcmVjdGx5LgpAQCAtMjE5LDYgKzIx
OCw3IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJGbG93VGhyZWFkKERvY3VtZW50JiwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4pOwogCiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIAogICAgIC8v
IE92ZXJyaWRkZW4gYnkgY29sdW1ucy9wYWdlcyB0byBzZXQgdXAgYW4gaW5pdGlhbCBsb2dpY2Fs
IHdpZHRoIG9mIHRoZSBwYWdlIHdpZHRoIGV2ZW4gd2hlbgogICAgIC8vIG5vIHJlZ2lvbnMgaGF2
ZSBiZWVuIGdlbmVyYXRlZCB5ZXQuCkBAIC0yMzUsMTYgKzIzNSw2IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHVwZGF0ZUxheWVyVG9SZWdpb25NYXBwaW5ncyhSZW5kZXJMYXllciYsIExheWVyVG9S
ZWdpb25NYXAmLCBSZWdpb25Ub0xheWVyTGlzdE1hcCYsIGJvb2wmIG5lZWRzTGF5ZXJVcGRhdGUp
OwogICAgIHZvaWQgdXBkYXRlUmVnaW9uRm9yUmVuZGVyTGF5ZXIoUmVuZGVyTGF5ZXIqLCBMYXll
clRvUmVnaW9uTWFwJiwgUmVnaW9uVG9MYXllckxpc3RNYXAmLCBib29sJiBuZWVkc0xheWVyVXBk
YXRlKTsKIAotICAgIHZvaWQgc2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChib29s
IHZhbHVlKSB7IG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA9IHZhbHVlOyB9Ci0g
ICAgYm9vbCBzaG91bGREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkgeyByZXR1cm4g
bV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50OyB9Ci0gICAgCi0gICAgdm9pZCBzZXRE
aXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudChib29sIHZhbHVlKSB7IG1fZGlzcGF0Y2hS
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQgPSB2YWx1ZTsgfQotICAgIGJvb2wgc2hvdWxkRGlzcGF0
Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BhdGNoUmVn
aW9uT3ZlcnNldENoYW5nZUV2ZW50OyB9Ci0gICAgCi0gICAgLy8gT3ZlcnJpZGUgaWYgdGhlIGZs
b3cgdGhyZWFkIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIGRpc3BhdGNoaW5nIGV2ZW50cyB3aGVu
IHRoZSBmbG93IGxheW91dCBpcyB1cGRhdGVkIChlLmcuIGZvciBuYW1lZCBmbG93cykKLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpIHsgbV9kaXNwYXRj
aFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50ID0gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKSB7IG1fZGlzcGF0Y2hSZWdpb25PdmVyc2V0
Q2hhbmdlRXZlbnQgPSBmYWxzZTsgfQotCiAgICAgdm9pZCBpbml0aWFsaXplUmVnaW9uc0NvbXB1
dGVkQXV0b0hlaWdodChSZW5kZXJSZWdpb24qID0gMCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXV0
b0dlbmVyYXRlUmVnaW9uc1RvQmxvY2tPZmZzZXQoTGF5b3V0VW5pdCkgeyB9OwpAQCAtMzM5LDgg
KzMyOSw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fcmVnaW9uc0ludmFsaWRhdGVkIDogMTsK
ICAgICBib29sIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbFdpZHRoIDogMTsKICAgICBib29s
IG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbEhlaWdodCA6IDE7Ci0gICAgYm9vbCBtX2Rpc3Bh
dGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgOiAxOwotICAgIGJvb2wgbV9kaXNwYXRjaFJlZ2lv
bk92ZXJzZXRDaGFuZ2VFdmVudCA6IDE7CiAgICAgYm9vbCBtX3BhZ2VMb2dpY2FsU2l6ZUNoYW5n
ZWQgOiAxOwogICAgIHVuc2lnbmVkIG1fbGF5b3V0UGhhc2UgOiAyOwogICAgIGJvb2wgbV9uZWVk
c1R3b1BoYXNlc0xheW91dCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmNwcAppbmRleCBkZWE0ZWI5NGQ0OTVlNzg0YTk0ZmUx
ZjNlNDY4OWQyZjk5MzE1MzdkLi41MmYyZmVjOGQ5NGU0YzljMTg2ZTI3YWM5MWZlNDIzMmVkNDlj
ZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZs
b3dGcmFnbWVudC5jcHAKQEAgLTI1Nyw4ICsyNTcsMTAgQEAgdm9pZCBSZW5kZXJOYW1lZEZsb3dG
cmFnbWVudDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQog
ICAgICAgICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICBvbGRS
ZWdpb25SZWN0ID0gb2xkUmVnaW9uUmVjdC50cmFuc3Bvc2VkUmVjdCgpOwogCi0gICAgICAgIGlm
IChtX2Zsb3dUaHJlYWQtPmluT3ZlcmZsb3dMYXlvdXRQaGFzZSgpIHx8IG1fZmxvd1RocmVhZC0+
aW5GaW5hbExheW91dFBoYXNlKCkpCisgICAgICAgIGlmIChtX2Zsb3dUaHJlYWQtPmluT3ZlcmZs
b3dMYXlvdXRQaGFzZSgpIHx8IG1fZmxvd1RocmVhZC0+aW5GaW5hbExheW91dFBoYXNlKCkpIHsK
ICAgICAgICAgICAgIGNvbXB1dGVPdmVyZmxvd0Zyb21GbG93VGhyZWFkKCk7CisgICAgICAgICAg
ICB1cGRhdGVPdmVyc2V0U3RhdGUoKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChoYXNBdXRv
TG9naWNhbEhlaWdodCgpICYmIG1fZmxvd1RocmVhZC0+aW5NZWFzdXJlQ29udGVudExheW91dFBo
YXNlKCkpIHsKICAgICAgICAgICAgIG1fZmxvd1RocmVhZC0+aW52YWxpZGF0ZVJlZ2lvbnMoKTsK
QEAgLTI3Miw2ICsyNzQsNTUgQEAgdm9pZCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6bGF5b3V0
QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIH0KIH0KIAordm9p
ZCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lvbk92
ZXJzZXRTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBU1NFUlQoZ2VuZXJhdGluZ0VsZW1lbnQoKSk7CisK
KyAgICBnZW5lcmF0aW5nRWxlbWVudCgpLT5zZXRSZWdpb25PdmVyc2V0U3RhdGUoc3RhdGUpOwor
fQorCitSZWdpb25PdmVyc2V0U3RhdGUgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OnJlZ2lvbk92
ZXJzZXRTdGF0ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGdlbmVyYXRpbmdFbGVtZW50KCkpOwor
CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBSZWdpb25VbmRlZmluZWQ7CisK
KyAgICByZXR1cm4gZ2VuZXJhdGluZ0VsZW1lbnQoKS0+cmVnaW9uT3ZlcnNldFN0YXRlKCk7Cit9
CisKK3ZvaWQgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OnVwZGF0ZU92ZXJzZXRTdGF0ZSgpCit7
CisgICAgQVNTRVJUKGlzVmFsaWQoKSk7CisKKyAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZs
b3dUaHJlYWQgPSBuYW1lZEZsb3dUaHJlYWQoKTsKKyAgICBBU1NFUlQoZmxvd1RocmVhZCAmJiAo
Zmxvd1RocmVhZC0+aW5PdmVyZmxvd0xheW91dFBoYXNlKCkgfHwgZmxvd1RocmVhZC0+aW5GaW5h
bExheW91dFBoYXNlKCkpKTsKKworICAgIExheW91dFVuaXQgZmxvd0NvbnRlbnRCb3R0b20gPSBm
bG93VGhyZWFkLT5mbG93Q29udGVudEJvdHRvbSgpOworICAgIGJvb2wgaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUgPSBmbG93VGhyZWFkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworCisgICAg
TGF5b3V0VW5pdCBmbG93TWluID0gZmxvd0NvbnRlbnRCb3R0b20gLSAoaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUgPyBmbG93VGhyZWFkUG9ydGlvblJlY3QoKS55KCkgOiBmbG93VGhyZWFkUG9ydGlv
blJlY3QoKS54KCkpOworICAgIExheW91dFVuaXQgZmxvd01heCA9IGZsb3dDb250ZW50Qm90dG9t
IC0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gZmxvd1RocmVhZFBvcnRpb25SZWN0KCkubWF4
WSgpIDogZmxvd1RocmVhZFBvcnRpb25SZWN0KCkubWF4WCgpKTsKKworICAgIFJlZ2lvbk92ZXJz
ZXRTdGF0ZSBwcmV2aW91c1N0YXRlID0gcmVnaW9uT3ZlcnNldFN0YXRlKCk7CisgICAgUmVnaW9u
T3ZlcnNldFN0YXRlIHN0YXRlID0gUmVnaW9uRml0OworICAgIGlmIChmbG93TWluIDw9IDApCisg
ICAgICAgIHN0YXRlID0gUmVnaW9uRW1wdHk7CisgICAgaWYgKGZsb3dNYXggPiAwICYmIGlzTGFz
dFJlZ2lvbigpKQorICAgICAgICBzdGF0ZSA9IFJlZ2lvbk92ZXJzZXQ7CisgICAgCisgICAgc2V0
UmVnaW9uT3ZlcnNldFN0YXRlKHN0YXRlKTsKKworICAgIC8vIERldGVybWluZSB3aGV0aGVyIHRo
ZSBOYW1lZEZsb3cgb2JqZWN0IHNob3VsZCBkaXNwYXRjaCBhIHJlZ2lvbkxheW91dFVwZGF0ZSBl
dmVudAorICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlCisgICAgICAgIHx8IHN0YXRlID09
IFJlZ2lvbkZpdAorICAgICAgICB8fCBzdGF0ZSA9PSBSZWdpb25PdmVyc2V0KQorICAgICAgICBm
bG93VGhyZWFkLT5zZXREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KHRydWUpOworICAg
IAorICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlKQorICAgICAgICBmbG93VGhyZWFkLT5z
ZXREaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCh0cnVlKTsKK30KKwogdm9pZCBSZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudDo6Y2hlY2tSZWdpb25TdHlsZSgpCiB7CiAgICAgQVNTRVJUKG1f
Zmxvd1RocmVhZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1l
ZEZsb3dGcmFnbWVudC5oCmluZGV4IGI1ODJlZjg2MzdhNWM1MDIzZmVmOGIwMzk0ZDZhNzU5MzI3
MTFkOWYuLmQ2Yzk5MzI0MjhlNDA2NmZiODEwODUxN2Q1MmQ0YTA4NDQ4ODljMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oCkBA
IC0xMDQsNiArMTA0LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNDb21wdXRlZEF1dG9IZWln
aHQoKSBjb25zdCB7IHJldHVybiBtX2hhc0NvbXB1dGVkQXV0b0hlaWdodDsgfQogCisgICAgUmVn
aW9uT3ZlcnNldFN0YXRlIHJlZ2lvbk92ZXJzZXRTdGF0ZSgpIGNvbnN0OworCiAgICAgdmlydHVh
bCB2b2lkIGF0dGFjaFJlZ2lvbigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hS
ZWdpb24oKSBvdmVycmlkZTsKIApAQCAtMTI3LDYgKzEyOSw5IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIHNob3VsZEhhdmVBdXRvTG9naWNhbEhlaWdodCgpIGNvbnN0OwogCisgICAgdm9pZCB1cGRh
dGVPdmVyc2V0U3RhdGUoKTsKKyAgICB2b2lkIHNldFJlZ2lvbk92ZXJzZXRTdGF0ZShSZWdpb25P
dmVyc2V0U3RhdGUpOworCiAgICAgdmlydHVhbCB2b2lkIGxheW91dEJsb2NrKGJvb2wgcmVsYXlv
dXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDApIG92ZXJyaWRlOwog
CiAgICAgc3RydWN0IE9iamVjdFJlZ2lvblN0eWxlSW5mbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCmluZGV4IDBkN2U5YmQwYmEw
MmE0ZjVjODI3OGRmMTk4MDU1YjdkMWNmODFmMzAuLjk5MzVhYjRhZjY1YTJkNDc5MTJkZTMwYzU4
NWQ0MWEyOGYxZjM4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQuY3BwCkBAIC00Nyw4ICs0Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQoRG9jdW1l
bnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSwgUGFzc1JlZjxXZWJLaXRO
YW1lZEZsb3c+IG5hbWVkRmxvdykKICAgICA6IFJlbmRlckZsb3dUaHJlYWQoZG9jdW1lbnQsIHN0
ZDo6bW92ZShzdHlsZSkpCi0gICAgLCBtX292ZXJzZXQodHJ1ZSkKICAgICAsIG1faGFzUmVnaW9u
c1dpdGhTdHlsaW5nKGZhbHNlKQorICAgICwgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50KGZhbHNlKQorICAgICwgbV9kaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudChmYWxz
ZSkKICAgICAsIG1fbmFtZWRGbG93KHN0ZDo6bW92ZShuYW1lZEZsb3cpKQogICAgICwgbV9yZWdp
b25MYXlvdXRVcGRhdGVFdmVudFRpbWVyKHRoaXMsICZSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJl
Z2lvbkxheW91dFVwZGF0ZUV2ZW50VGltZXJGaXJlZCkKICAgICAsIG1fcmVnaW9uT3ZlcnNldENo
YW5nZUV2ZW50VGltZXIodGhpcywgJlJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVnaW9uT3ZlcnNl
dENoYW5nZUV2ZW50VGltZXJGaXJlZCkKQEAgLTM1NCw1MSArMzU1LDMxIEBAIExheW91dFJlY3Qg
UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkZWNvcmF0aW9uc0NsaXBSZWN0Rm9yQm94SW5OYW1lZEZs
b3dGcmFnbWVudChjCiAgICAgcmV0dXJuIHZpc3VhbE92ZXJmbG93UmVjdDsKIH0KIAotdm9pZCBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyc2V0U3RhdGVGb3JSZWdpb25zKExheW91
dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlKQotewotICAgIExheW91dFVuaXQgaGVpZ2h0ID0gb2xk
Q2xpZW50QWZ0ZXJFZGdlOwotCi0gICAgLy8gRklYTUU6IHRoZSB2aXN1YWwgb3ZlcmZsb3cgb2Yg
bWlkZGxlIHJlZ2lvbiAoaWYgaXQgaXMgdGhlIGxhc3Qgb25lIHRvIGNvbnRhaW4gYW55IGNvbnRl
bnQgaW4gYSByZW5kZXIgZmxvdyB0aHJlYWQpCi0gICAgLy8gbWlnaHQgbm90IGJlIHRha2VuIGlu
dG8gYWNjb3VudCBiZWNhdXNlIHRoZSByZW5kZXIgZmxvdyB0aHJlYWQgaGVpZ2h0IGlzIGdyZWF0
ZXIgdGhhdCB0aGF0IHJlZ2lvbnMgaGVpZ2h0ICsgaXRzIHZpc3VhbCBvdmVyZmxvdwotICAgIC8v
IGJlY2F1c2Ugb2YgaG93IGNvbXB1dGVMb2dpY2FsSGVpZ2h0IGlzIGltcGxlbWVudGVkIGZvciBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQgKGFzIGEgc3VtIG9mIGFsbCByZWdpb25zIGhlaWdodCkuCi0g
ICAgLy8gVGhpcyBtZWFucyB0aGF0IHRoZSBtaWRkbGUgcmVnaW9uIHdpbGwgYmUgbWFya2VkIGFz
IGZpdCAoZXZlbiBpZiBpdCBoYXMgdmlzdWFsIG92ZXJmbG93IGZsb3dpbmcgaW50byB0aGUgbmV4
dCByZWdpb24pCi0gICAgaWYgKGhhc1JlbmRlck92ZXJmbG93KCkKLSAgICAgICAgJiYgKCAoaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiB2aXN1YWxPdmVyZmxvd1JlY3QoKS5tYXhZKCkgPiBj
bGllbnRCb3hSZWN0KCkubWF4WSgpKQotICAgICAgICAgICAgfHwgKCFpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpICYmIHZpc3VhbE92ZXJmbG93UmVjdCgpLm1heFgoKSA+IGNsaWVudEJveFJlY3Qo
KS5tYXhYKCkpKSkKLSAgICAgICAgaGVpZ2h0ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IHZpc3VhbE92ZXJmbG93UmVjdCgpLm1heFkoKSA6IHZpc3VhbE92ZXJmbG93UmVjdCgpLm1heFgo
KTsKLQotICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiBsYXN0RnJhZ21lbnQgPSB0b1JlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50KGxhc3RSZWdpb24oKSk7Ci0gICAgZm9yIChhdXRvJiBuYW1lZEZs
b3dGcmFnbWVudCA6IG1fcmVnaW9uTGlzdCkgewotICAgICAgICBMYXlvdXRVbml0IGZsb3dNaW4g
PSBoZWlnaHQgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG5hbWVkRmxvd0ZyYWdtZW50
LT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS55KCkgOiBuYW1lZEZsb3dGcmFnbWVudC0+Zmxvd1Ro
cmVhZFBvcnRpb25SZWN0KCkueCgpKTsKLSAgICAgICAgTGF5b3V0VW5pdCBmbG93TWF4ID0gaGVp
Z2h0IC0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBuYW1lZEZsb3dGcmFnbWVudC0+Zmxv
d1RocmVhZFBvcnRpb25SZWN0KCkubWF4WSgpIDogbmFtZWRGbG93RnJhZ21lbnQtPmZsb3dUaHJl
YWRQb3J0aW9uUmVjdCgpLm1heFgoKSk7Ci0gICAgICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSBwcmV2
aW91c1N0YXRlID0gbmFtZWRGbG93RnJhZ21lbnQtPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpOwotICAg
ICAgICBSZWdpb25PdmVyc2V0U3RhdGUgc3RhdGUgPSBSZWdpb25GaXQ7Ci0gICAgICAgIGlmIChm
bG93TWluIDw9IDApCi0gICAgICAgICAgICBzdGF0ZSA9IFJlZ2lvbkVtcHR5OwotICAgICAgICBp
ZiAoZmxvd01heCA+IDAgJiYgbmFtZWRGbG93RnJhZ21lbnQgPT0gbGFzdEZyYWdtZW50KQotICAg
ICAgICAgICAgc3RhdGUgPSBSZWdpb25PdmVyc2V0OwotICAgICAgICBuYW1lZEZsb3dGcmFnbWVu
dC0+c2V0UmVnaW9uT3ZlcnNldFN0YXRlKHN0YXRlKTsKLSAgICAgICAgLy8gZGV0ZXJtaW5lIHdo
ZXRoZXIgdGhlIE5hbWVkRmxvdyBvYmplY3Qgc2hvdWxkIGRpc3BhdGNoIGEgcmVnaW9uTGF5b3V0
VXBkYXRlIGV2ZW50Ci0gICAgICAgIC8vIEZJWE1FOiBjdXJyZW50bHkgaXQgY2Fubm90IGRldGVy
bWluZSB3aGV0aGVyIGEgcmVnaW9uIHdob3NlIHJlZ2lvbk92ZXJzZXQgc3RhdGUgcmVtYWluZWQg
ZWl0aGVyICJmaXQiIG9yICJvdmVyc2V0IiBoYXMgYWN0dWFsbHkKLSAgICAgICAgLy8gY2hhbmdl
ZCwgc28gaXQganVzdCBhc3N1bWVzIHRoYXQgdGhlIE5hbWVkRmxvdyBzaG91bGQgZGlzcGF0Y2gg
dGhlIGV2ZW50Ci0gICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9IHN0YXRlCi0gICAgICAgICAg
ICB8fCBzdGF0ZSA9PSBSZWdpb25GaXQKLSAgICAgICAgICAgIHx8IHN0YXRlID09IFJlZ2lvbk92
ZXJzZXQpCi0gICAgICAgICAgICBzZXREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KHRy
dWUpOwotICAgICAgICAKLSAgICAgICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gc3RhdGUpCi0gICAg
ICAgICAgICBzZXREaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCh0cnVlKTsKLSAgICB9
Ci0gICAgCit2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y29tcHV0ZU92ZXJmbG93KExheW91
dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlLCBib29sIHJlY29tcHV0ZUZsb2F0cykKK3sKKyAgICBS
ZW5kZXJGbG93VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3cob2xkQ2xpZW50QWZ0ZXJFZGdlLCByZWNv
bXB1dGVGbG9hdHMpOworCisgICAgbV9mbG93Q29udGVudEJvdHRvbSA9IG9sZENsaWVudEFmdGVy
RWRnZTsKK30KKwordm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmxheW91dCgpCit7CisgICAg
UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCk7CisKICAgICAvLyBJZiB0aGUgbnVtYmVyIG9mIHJl
Z2lvbnMgaGFzIGNoYW5nZWQgc2luY2Ugd2UgbGFzdCBjb21wdXRlZCB0aGUgb3ZlcnNldCBwcm9w
ZXJ0eSwgc2NoZWR1bGUgdGhlIHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQuCiAgICAgaWYgKHBy
ZXZpb3VzUmVnaW9uQ291bnRDaGFuZ2VkKCkpIHsKICAgICAgICAgc2V0RGlzcGF0Y2hSZWdpb25P
dmVyc2V0Q2hhbmdlRXZlbnQodHJ1ZSk7CiAgICAgICAgIHVwZGF0ZVByZXZpb3VzUmVnaW9uQ291
bnQoKTsKICAgICB9CiAKLSAgICAvLyBXaXRoIHRoZSByZWdpb25zIG92ZXJmbG93IHN0YXRlIGNv
bXB1dGVkIHdlIGNhbiBhbHNvIHNldCB0aGUgb3ZlcnNldCBmbGFnIGZvciB0aGUgbmFtZWQgZmxv
dy4KLSAgICAvLyBJZiB0aGVyZSBhcmUgbm8gdmFsaWQgcmVnaW9ucyBpbiB0aGUgY2hhaW4sIG92
ZXJzZXQgaXMgdHJ1ZS4KLSAgICBtX292ZXJzZXQgPSBsYXN0RnJhZ21lbnQgPyBsYXN0RnJhZ21l
bnQtPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpID09IFJlZ2lvbk92ZXJzZXQgOiB0cnVlOworICAgIGRp
c3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRJZk5lZWRlZCgpOworfQorCit2b2lkIFJlbmRl
ck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hOYW1lZEZsb3dFdmVudHMoKQoreworICAgIEFTU0VS
VChpbkZpbmFsTGF5b3V0UGhhc2UoKSk7CisKKyAgICBkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFu
Z2VFdmVudElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjaGVj
a0ludmFsaWRSZWdpb25zKCkKQEAgLTUyOSwxOCArNTEwLDI0IEBAIGJvb2wgUmVuZGVyTmFtZWRG
bG93VGhyZWFkOjppc0NoaWxkQWxsb3dlZChjb25zdCBSZW5kZXJPYmplY3QmIGNoaWxkLCBjb25z
dCBSZW5kCiAgICAgcmV0dXJuIHRvRWxlbWVudChvcmlnaW5hbFBhcmVudCktPnJlbmRlcmVyKCkt
PmlzQ2hpbGRBbGxvd2VkKGNoaWxkLCBzdHlsZSk7CiB9CiAKLXZvaWQgUmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkKK3ZvaWQgUmVuZGVyTmFt
ZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50SWZOZWVkZWQoKQog
ewotICAgIFJlbmRlckZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQo
KTsKKyAgICBpZiAoIW1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50ID0gZmFsc2U7
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRVcGRhdGVSZWdpb25MYXlvdXQoJmRv
Y3VtZW50KCksICZuYW1lZEZsb3coKSk7CiAKICAgICBpZiAoIW1fcmVnaW9uTGF5b3V0VXBkYXRl
RXZlbnRUaW1lci5pc0FjdGl2ZSgpICYmIG5hbWVkRmxvdygpLmhhc0V2ZW50TGlzdGVuZXJzKCkp
CiAgICAgICAgIG1fcmVnaW9uTGF5b3V0VXBkYXRlRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7
CiB9CiAKLXZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudCgpCit2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25P
dmVyc2V0Q2hhbmdlRXZlbnRJZk5lZWRlZCgpCiB7Ci0gICAgUmVuZGVyRmxvd1RocmVhZDo6ZGlz
cGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKTsKKyAgICBpZiAoIW1fZGlzcGF0Y2hSZWdp
b25PdmVyc2V0Q2hhbmdlRXZlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGlzcGF0Y2hS
ZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQgPSBmYWxzZTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQoJmRvY3VtZW50KCksICZuYW1lZEZsb3coKSk7
CiAgICAgCiAgICAgaWYgKCFtX3JlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRpbWVyLmlzQWN0aXZl
KCkgJiYgbmFtZWRGbG93KCkuaGFzRXZlbnRMaXN0ZW5lcnMoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAppbmRleCAyOGY3Mjg4YWM1ZmYw
ZjNmYzY0MWFkZTI2MDQzYWEzOTg2OGQyZGFkLi41YWQwZmFhOTlhZWI0ZmZhNjAyYmE5YWM2NzAx
YjA2MWM0NzE2MDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TmFtZWRGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5h
bWVkRmxvd1RocmVhZC5oCkBAIC03MCw5ICs3MCw2IEBAIHB1YmxpYzoKIAogICAgIExheW91dFJl
Y3QgZGVjb3JhdGlvbnNDbGlwUmVjdEZvckJveEluTmFtZWRGbG93RnJhZ21lbnQoY29uc3QgUmVu
ZGVyQm94JiwgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQmKSBjb25zdDsKIAotICAgIGJvb2wgb3Zl
cnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnNldDsgfQotICAgIHZvaWQgY29tcHV0ZU92ZXJz
ZXRTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UpOwotCiAgICAg
dm9pZCByZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnRFbGVtZW50KEVsZW1lbnQmKTsKICAgICB2b2lk
IHVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50RWxlbWVudChFbGVtZW50Jik7CiAgICAgY29uc3Qg
TmFtZWRGbG93Q29udGVudEVsZW1lbnRzJiBjb250ZW50RWxlbWVudHMoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRlbnRFbGVtZW50czsgfQpAQCAtOTEsNiArODgsMTIgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUZsb3dDaGlsZEluZm8oUmVuZGVyT2JqZWN0Kikgb3ZlcnJpZGUg
ZmluYWw7CiAKKyAgICBMYXlvdXRVbml0IGZsb3dDb250ZW50Qm90dG9tKCkgY29uc3QgeyByZXR1
cm4gbV9mbG93Q29udGVudEJvdHRvbTsgfQorICAgIHZvaWQgZGlzcGF0Y2hOYW1lZEZsb3dFdmVu
dHMoKTsKKworICAgIHZvaWQgc2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChib29s
IHZhbHVlKSB7IG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA9IHZhbHVlOyB9Cisg
ICAgdm9pZCBzZXREaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudChib29sIHZhbHVlKSB7
IG1fZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQgPSB2YWx1ZTsgfQorCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBzZXRNYXJrRm9yRGVzdHJ1Y3Rpb24oKTsKICAgICB2b2lkIHJlc2V0TWFy
a0ZvckRlc3RydWN0aW9uKCk7CkBAIC05OSw5ICsxMDIsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNSZW5kZXJOYW1lZEZsb3dUaHJlYWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVj
dCYsIGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGNvbXB1dGVPdmVyZmxvdyhMYXlvdXRVbml0LCBib29sID0gZmFsc2UpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50SWZOZWVkZWQoKTsKKyAgICB2b2lk
IGRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50SWZOZWVkZWQoKTsKIAogICAgIGJvb2wg
ZGVwZW5kc09uKFJlbmRlck5hbWVkRmxvd1RocmVhZCogb3RoZXJSZW5kZXJGbG93VGhyZWFkKSBj
b25zdDsKICAgICB2b2lkIGFkZERlcGVuZGVuY3lPbkZsb3dUaHJlYWQoUmVuZGVyTmFtZWRGbG93
VGhyZWFkKik7CkBAIC0xMzcsMTQgKzE0MiwxNyBAQCBwcml2YXRlOgogCiAgICAgUmVuZGVyUmVn
aW9uTGlzdCBtX2ludmFsaWRSZWdpb25MaXN0OwogCi0gICAgYm9vbCBtX292ZXJzZXQgOiAxOwog
ICAgIGJvb2wgbV9oYXNSZWdpb25zV2l0aFN0eWxpbmcgOiAxOworICAgIGJvb2wgbV9kaXNwYXRj
aFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50IDogMTsKKyAgICBib29sIG1fZGlzcGF0Y2hSZWdpb25P
dmVyc2V0Q2hhbmdlRXZlbnQgOiAxOwogCiAgICAgLy8gVGhlIERPTSBPYmplY3QgdGhhdCByZXBy
ZXNlbnRzIGEgbmFtZWQgZmxvdy4KICAgICBSZWY8V2ViS2l0TmFtZWRGbG93PiBtX25hbWVkRmxv
dzsKIAogICAgIFRpbWVyPFJlbmRlck5hbWVkRmxvd1RocmVhZD4gbV9yZWdpb25MYXlvdXRVcGRh
dGVFdmVudFRpbWVyOwogICAgIFRpbWVyPFJlbmRlck5hbWVkRmxvd1RocmVhZD4gbV9yZWdpb25P
dmVyc2V0Q2hhbmdlRXZlbnRUaW1lcjsKKworICAgIExheW91dFVuaXQgbV9mbG93Q29udGVudEJv
dHRvbTsKIH07CiAKIFJFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJOYW1lZEZsb3dUaHJl
YWQsIGlzUmVuZGVyTmFtZWRGbG93VGhyZWFkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb24uY3BwCmluZGV4IGYyMjQ2NzI0YzY4OGMxZjI1NDViMmEyZTg0YTY5ZjViZDE2
YzEyNzEuLjJjNGU1NjY3ZTUxNjkzMjZlYWMwYmZlZDcyNjNjZDFkYmE4MTJhMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCkBAIC0xODEsMjMgKzE4MSw2IEBA
IExheW91dFJlY3QgUmVuZGVyUmVnaW9uOjpvdmVyZmxvd1JlY3RGb3JGbG93VGhyZWFkUG9ydGlv
bihjb25zdCBMYXlvdXRSZWN0JiBmbG93CiAgICAgcmV0dXJuIGNsaXBSZWN0OwogfQogCi1SZWdp
b25PdmVyc2V0U3RhdGUgUmVuZGVyUmVnaW9uOjpyZWdpb25PdmVyc2V0U3RhdGUoKSBjb25zdAot
ewotICAgIEFTU0VSVChnZW5lcmF0aW5nRWxlbWVudCgpKTsKLQotICAgIGlmICghaXNWYWxpZCgp
KQotICAgICAgICByZXR1cm4gUmVnaW9uVW5kZWZpbmVkOwotCi0gICAgcmV0dXJuIGdlbmVyYXRp
bmdFbGVtZW50KCktPnJlZ2lvbk92ZXJzZXRTdGF0ZSgpOwotfQotCi12b2lkIFJlbmRlclJlZ2lv
bjo6c2V0UmVnaW9uT3ZlcnNldFN0YXRlKFJlZ2lvbk92ZXJzZXRTdGF0ZSBzdGF0ZSkKLXsKLSAg
ICBBU1NFUlQoZ2VuZXJhdGluZ0VsZW1lbnQoKSk7Ci0KLSAgICBnZW5lcmF0aW5nRWxlbWVudCgp
LT5zZXRSZWdpb25PdmVyc2V0U3RhdGUoc3RhdGUpOwotfQotCiBMYXlvdXRVbml0IFJlbmRlclJl
Z2lvbjo6cGFnZUxvZ2ljYWxUb3BGb3JPZmZzZXQoTGF5b3V0VW5pdCAvKiBvZmZzZXQgKi8pIGNv
bnN0CiB7CiAgICAgcmV0dXJuIGZsb3dUaHJlYWQoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLnkoKSA6IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgp
LngoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCA1NWQxNTQ3
YTlkNDQ3NThlMzdkZGVkN2I3OWQzZjVhNjc5NTkyMDM2Li5hNGVmNmJlODg4NzYzNDg4MTNiODM4
ZjBiN2FjOTI2ZmYxNmNlNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lv
bi5oCkBAIC03OSw5ICs3OSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzTGFzdFJlZ2lvbigpIGNv
bnN0OwogICAgIGJvb2wgc2hvdWxkQ2xpcEZsb3dUaHJlYWRDb250ZW50KCkgY29uc3Q7CiAKLSAg
ICBSZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRSZWdpb25PdmVyc2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlKTsKLQogICAgIC8vIFRo
ZXNlIG1ldGhvZHMgcmVwcmVzZW50IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIGEgInBhZ2UiIGFu
ZCBmb3IgYSBSZW5kZXJSZWdpb24gdGhleSBhcmUganVzdCB0aGUKICAgICAvLyBjb250ZW50IHdp
ZHRoIGFuZCBjb250ZW50IGhlaWdodCBvZiBhIHJlZ2lvbi4gRm9yIFJlbmRlclJlZ2lvblNldHMs
IGhvd2V2ZXIsIHRoZXkgd2lsbCBiZSB0aGUgd2lkdGggYW5kCiAgICAgLy8gaGVpZ2h0IG9mIGEg
c2luZ2xlIGNvbHVtbiBvciBwYWdlIGluIHRoZSBzZXQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2Q0MmFjZWMxZWUxZjY1
OGZmMjA0MjViMTNhYjY1ZjBmMDhjMDQ0ZS4uMGI4NmU2MmI4MTI0ZmU4ZjNmYTk5N2M0OGMzMjQw
NTU2NDUzODdiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAzLTAzICBBbmRyZWkgQnVj
dXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc10gT3ZlcnNldCBj
b21wdXRhdGlvbiBpcyBpbmNvcnJlY3QgaW4gc29tZSBjYXNlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDMyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTWlobmVhIE92aWRlbmllLgorCisgICAgICAgIEFkanVzdCB0aGUgdGVzdHMgdG8gY29wZSB3
aXRoIHRoZSBvdmVyc2V0IGNoYW5nZXMuIAorCisgICAgICAgICogZmFzdC9yZWdpb25zL2Nzc29t
L2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZh
c3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLXZlcnRpY2FsLXJs
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdp
b24tb3ZlcnNldC1zdGF0ZS12ZXJ0aWNhbC1ybC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9u
cy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLmh0bWw6CisgICAgICAgIFRoaXMg
dGVzdCBoYXMgYSBuZXcgY2FzZSB0aGF0IHZlcmlmaWVzIHJlZ2lvbiBjbGFtcGluZyBpcyBjb3Jy
ZWN0bHkgdGFrZW4gaW50byBhY2NvdW50LgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9jc3NvbS93
ZWJraXQtbmFtZWQtZmxvdy1vdmVyc2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Jl
Z2lvbnMvY3Nzb20vd2Via2l0LW5hbWVkLWZsb3ctb3ZlcnNldC5odG1sOgorCiAyMDE0LTAzLTAy
ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
QVNTRVJUIGluIH5JREJSZXF1ZXN0IHNpbmNlIGl0IGlzIGZpcmluZyBkdXJpbmcgbGVnaXRpbWF0
ZSB1c2VzIGluIFdlYiBJbnNwZWN0b3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0
ZS1leHBlY3RlZC50eHQKaW5kZXggNzE2Y2I1ZGZjNjZkYWQwM2FiMTllMzUwYTYyMzA3ZTg5ZmUz
ZTA5Yi4uOTVmOGQ1NDM0Yzc5NjNkZjk5MGE5OTA3NGVmODBjZjYwYzE1NGYzNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQt
c3RhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9l
bGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMTAsNiArMTAsMTAg
QEAgRmxvdyBjb250ZW50CiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8xJykgaXMgImZpdCIK
IFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzInKSBpcyAiZml0IgogUEFTUyByZWdpb25PdmVy
c2V0KCdyZWdpb25fMycpIGlzICJlbXB0eSIKK0dlbmVyYXRlIGxheW91dCBvdmVyZmxvdworUEFT
UyByZWdpb25PdmVyc2V0KCdyZWdpb25fMScpIGlzICJmaXQiCitQQVNTIHJlZ2lvbk92ZXJzZXQo
J3JlZ2lvbl8yJykgaXMgImZpdCIKK1BBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzMnKSBpcyAi
ZW1wdHkiCiBBZGQgbW9yZSBjb250ZW50CiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8xJykg
aXMgImZpdCIKIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzInKSBpcyAiZml0IgpAQCAtMTcs
NyArMjEsNyBAQCBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8zJykgaXMgImZpdCIKIEFkZCB2
aXN1YWwgb3ZlcmZsb3cKIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzEnKSBpcyAiZml0Igog
UEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIGlzICJmaXQiCi1QQVNTIHJlZ2lvbk92ZXJz
ZXQoJ3JlZ2lvbl8zJykgaXMgIm92ZXJzZXQiCitQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8z
JykgaXMgImZpdCIKIEVtcHR5IGNvbnRlbnQKIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzEn
KSBpcyAiZW1wdHkiCiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJykgaXMgImVtcHR5Igpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9u
LW92ZXJzZXQtc3RhdGUtdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2Nzc29tL2VsZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUtdmVydGljYWwtcmwt
ZXhwZWN0ZWQudHh0CmluZGV4IDcxNmNiNWRmYzY2ZGFkMDNhYjE5ZTM1MGE2MjMwN2U4OWZlM2Uw
OWIuLmRkNDgwYjRjMjFhZjQyYzY2OWU4NTExZmEyMzkzNTNlZjdiOGQwY2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0
YXRlLXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0ZS12ZXJ0aWNhbC1ybC1leHBlY3Rl
ZC50eHQKQEAgLTE3LDcgKzE3LDcgQEAgUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMycpIGlz
ICJmaXQiCiBBZGQgdmlzdWFsIG92ZXJmbG93CiBQQVNTIHJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8x
JykgaXMgImZpdCIKIFBBU1MgcmVnaW9uT3ZlcnNldCgncmVnaW9uXzInKSBpcyAiZml0IgotUEFT
UyByZWdpb25PdmVyc2V0KCdyZWdpb25fMycpIGlzICJvdmVyc2V0IgorUEFTUyByZWdpb25PdmVy
c2V0KCdyZWdpb25fMycpIGlzICJmaXQiCiBFbXB0eSBjb250ZW50CiBQQVNTIHJlZ2lvbk92ZXJz
ZXQoJ3JlZ2lvbl8xJykgaXMgImVtcHR5IgogUEFTUyByZWdpb25PdmVyc2V0KCdyZWdpb25fMicp
IGlzICJlbXB0eSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9l
bGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRlLXZlcnRpY2FsLXJsLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24tb3ZlcnNldC1zdGF0ZS12ZXJ0aWNh
bC1ybC5odG1sCmluZGV4IDEzOTk1YjExNjllNDVmMmJkZjU4NGI2NjM1YjMxYWU0YTM4ODc3OWMu
LjZjODhiZjdkN2RjYjFhYWRlMmM0MjA5OGYwMDBkM2E4MzhjYTI3YWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0YXRl
LXZlcnRpY2FsLXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2Vs
ZW1lbnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUtdmVydGljYWwtcmwuaHRtbApAQCAtOTIsNyArOTIs
NyBAQCBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQogCiAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcnNldCgncmVnaW9uXzEnKSIsICJmaXQiKTsKICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIiwgImZp
dCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3JlZ2lv
bl8zJykiLCAib3ZlcnNldCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZ2lv
bk92ZXJzZXQoJ3JlZ2lvbl8zJykiLCAiZml0Iik7CiAKICAgICAgICAgZGVidWcoIkVtcHR5IGNv
bnRlbnQiKTsKICAgICAgICAgZmxvd0NvbnRlbnQoIm5vX2FydGljbGUiKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVyc2V0LXN0
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vZWxlbWVudC1yZWdpb24t
b3ZlcnNldC1zdGF0ZS5odG1sCmluZGV4IDkwYmQ2ODY0YzQ1ZTU4MWE4YTZhYTdiMDBiY2Y4OTU4
NDMxNDg1ZjIuLmE1MGUzYTQ2ZmE1MmJiMzA0MzQxMTgyM2NlOTk2YTZiNzdlZDAwY2IgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS9lbGVtZW50LXJlZ2lvbi1vdmVy
c2V0LXN0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL2VsZW1l
bnQtcmVnaW9uLW92ZXJzZXQtc3RhdGUuaHRtbApAQCAtNTgsNyArNTgsMTggQEAKICAgICB9CiAg
ICAgZnVuY3Rpb24gYWRkTW9yZUNvbnRlbnQoKSB7CiAgICAgICAgIHZhciBjID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgYy5zdHlsZS5tYXJnaW5Ub3AgPSAw
OwogICAgICAgICBjLnN0eWxlLmhlaWdodCA9IDMyNjsKKyAgICAgICAgdmFyIGEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpOworICAgICAgICBhLnN0eWxlLmhlaWdodCA9ICJh
dXRvIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnZW5lcmF0ZUxheW91dE92ZXJmbG93KCkgewor
ICAgICAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7CisgICAg
ICAgIGMuc3R5bGUubWFyZ2luVG9wID0gNDAwOworICAgICAgICBjLnN0eWxlLmhlaWdodCA9IDQw
MDsKKyAgICAgICAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpOwor
ICAgICAgICBhLnN0eWxlLmhlaWdodCA9IDE1MDsKICAgICB9CiAKICAgICBmdW5jdGlvbiB0ZXN0
KCkgewpAQCAtNzMsNiArODQsMTIgQEAKICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWdpb25PdmVyc2V0KCdyZWdpb25fMicpIiwgImZpdCIpOwogICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8zJykiLCAiZW1wdHkiKTsKIAorICAgICAg
ICBkZWJ1ZygiR2VuZXJhdGUgbGF5b3V0IG92ZXJmbG93Iik7CisgICAgICAgIGdlbmVyYXRlTGF5
b3V0T3ZlcmZsb3coKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWdpb25PdmVy
c2V0KCdyZWdpb25fMScpIiwgImZpdCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJykiLCAiZml0Iik7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVnaW9uT3ZlcnNldCgncmVnaW9uXzMnKSIsICJlbXB0eSIpOworCiAgICAg
ICAgIGRlYnVnKCJBZGQgbW9yZSBjb250ZW50Iik7CiAgICAgICAgIGFkZE1vcmVDb250ZW50KCk7
CiAKQEAgLTg1LDcgKzEwMiw3IEBACiAKICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWdpb25PdmVyc2V0KCdyZWdpb25fMScpIiwgImZpdCIpOwogICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZ2lvbk92ZXJzZXQoJ3JlZ2lvbl8yJykiLCAiZml0Iik7Ci0gICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcnNldCgncmVnaW9uXzMnKSIsICJvdmVyc2V0
Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVnaW9uT3ZlcnNldCgncmVnaW9u
XzMnKSIsICJmaXQiKTsKIAogICAgICAgICBkZWJ1ZygiRW1wdHkgY29udGVudCIpOwogICAgICAg
ICBmbG93Q29udGVudCgibm9fYXJ0aWNsZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2Nzc29tL3dlYmtpdC1uYW1lZC1mbG93LW92ZXJzZXQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL3dlYmtpdC1uYW1lZC1mbG93LW92ZXJzZXQt
ZXhwZWN0ZWQudHh0CmluZGV4IDA1ZWE1NzBlNGVjYmY1YTY2YzMyZTY3OTUxMDYyN2M0NzlmMmZm
ZjguLmU3ZGZmNjg1ZDQ0NDIyNWU4Y2MyZDMyNjc1OGVhNTk1Y2ZiNGYwYjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS93ZWJraXQtbmFtZWQtZmxvdy1vdmVyc2V0
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vd2Via2l0
LW5hbWVkLWZsb3ctb3ZlcnNldC1leHBlY3RlZC50eHQKQEAgLTcsOSArNyw5IEBAIFBBU1MgbmFt
ZWRGbG93Lm92ZXJzZXQgaXMgdHJ1ZQogUEFTUyBuYW1lZEZsb3cub3ZlcnNldCBpcyBmYWxzZQog
UEFTUyBuYW1lZEZsb3cub3ZlcnNldCBpcyB0cnVlCiBQQVNTIG5hbWVkRmxvdy5vdmVyc2V0IGlz
IGZhbHNlCi1QQVNTIG5hbWVkRmxvdy5vdmVyc2V0IGlzIHRydWUKIFBBU1MgbmFtZWRGbG93Lm92
ZXJzZXQgaXMgZmFsc2UKLVBBU1MgbmFtZWRGbG93Lm92ZXJzZXQgaXMgdHJ1ZQorUEFTUyBuYW1l
ZEZsb3cub3ZlcnNldCBpcyBmYWxzZQorUEFTUyBuYW1lZEZsb3cub3ZlcnNldCBpcyBmYWxzZQog
UEFTUyBuYW1lZEZsb3cub3ZlcnNldCBpcyBmYWxzZQogUEFTUyBuYW1lZEZsb3cub3ZlcnNldCBp
cyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vd2Via2l0LW5hbWVkLWZsb3ctb3ZlcnNldC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Nzc29tL3dlYmtpdC1uYW1lZC1mbG93LW92ZXJz
ZXQuaHRtbAppbmRleCBiNGY2OTQzYmE4NzE3OGY2MTIxNmQ0MGQ3MWJiYWFlODAzZTJhNjlhLi5j
NGJjZmZkNzJhMjJhOWI1Y2RlMzU2ZmU5NTM3YzMyOTVjYmExZGRkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3Nzb20vd2Via2l0LW5hbWVkLWZsb3ctb3ZlcnNldC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3NvbS93ZWJraXQtbmFtZWQtZmxvdy1v
dmVyc2V0Lmh0bWwKQEAgLTU5LDggKzU5LDkgQEAKICAgICAvLyBBZGQgdmlzdWFsIG92ZXJzZXQs
IG92ZXJzZXQgc2hvdWxkIGJlIHRydWUuCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFy
dGljbGUiKS5zdHlsZS53ZWJraXRCb3hTaGFkb3c9IjBweCA1MHB4IGxpbWUiOwogCi0gICAgLy8g
T3ZlcnNldCBzaG91bGQgYmUgdHJ1ZSBzaW5jZSB0aGUgY29udGVudCBkb2VzIG5vdCBmaXQgaW4g
cmVnaW9ucwotICAgIHNob3VsZEJlKCJuYW1lZEZsb3cub3ZlcnNldCIsICJ0cnVlIik7CisgICAg
Ly8gT3ZlcnNldCBzaG91bGQgYmUgZmFsc2UgZXZlbiBpZiB0aGUgY29udGVudCBzaGFkb3cgb3Zl
cmZsb3dzIHRoZSBsYXN0IHJlZ2lvbgorICAgIC8vIHNpbmNlIHRoZSB2aXN1YWwgb3ZlcmZsb3cg
ZG9lcyBub3QgaW5mbHVlbmNlIHRoZSBvdmVyc2V0IHByb3BlcnR5LgorICAgIHNob3VsZEJlKCJu
YW1lZEZsb3cub3ZlcnNldCIsICJmYWxzZSIpOwogCiAgICAgLy8gQWRkIHRoZSB0aGlyZCByZWdp
b24sIG92ZXJzZXQgc2hvdWxkIGJlIGZhbHNlLgogICAgIHZhciByZWdpb24zID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC03NCw4ICs3NSw5IEBACiAgICAgLy8gUmVtb3ZlIHRo
ZSBmaXJzdCByZWdpb24gZnJvbSB0aGUgZmxvdywgb3ZlcnNldCBzaG91bGQgYmUgdHJ1ZS4KICAg
ICByZWdpb24uY2xhc3NOYW1lID0gIiI7CiAKLSAgICAvLyBPdmVyc2V0IHNob3VsZCBiZSB0cnVl
IHNpbmNlIHRoZSBjb250ZW50IGRvZXMgbm90IGZpdCB0aGUgcmVnaW9ucwotICAgIHNob3VsZEJl
KCJuYW1lZEZsb3cub3ZlcnNldCIsICJ0cnVlIik7CisgICAgLy8gT3ZlcnNldCBzaG91bGQgYmUg
ZmFsc2UgZXZlbiBpZiB0aGUgY29udGVudCBzaGFkb3cgb3ZlcmZsb3dzIHRoZSBsYXN0IHJlZ2lv
bgorICAgIC8vIHNpbmNlIHRoZSB2aXN1YWwgb3ZlcmZsb3cgZG9lcyBub3QgaW5mbHVlbmNlIHRo
ZSBvdmVyc2V0IHByb3BlcnR5LgorICAgIHNob3VsZEJlKCJuYW1lZEZsb3cub3ZlcnNldCIsICJm
YWxzZSIpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBjb250ZW50IGZyb20gdGhlIGZsb3csIG92ZXJz
ZXQgc2hvdWxkIGJlIGZhbHNlLgogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xl
IikuY2xhc3NOYW1lID0gIiI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>