<?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>105473</bug_id>
          
          <creation_ts>2012-12-19 15:38:36 -0800</creation_ts>
          <short_desc>Implement :future pseudo class for the WebVTT ::cue pseudo element</short_desc>
          <delta_ts>2013-01-04 17:36:48 -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>Media</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>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>43668</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dima Gorbik">dgorbik</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>silviapf</cc>
    
    <cc>vcarbune</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>795008</commentid>
    <comment_count>0</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2012-12-19 15:38:36 -0800</bug_when>
    <thetext>:future pseudoClass should match all WebVTT nodes that are in the future. http://dev.w3.org/html5/webvtt/#the-&apos;:past&apos;-and-&apos;:future&apos;-pseudo-classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795009</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-12-19 15:44:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/12913956&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795029</commentid>
    <comment_count>2</comment_count>
      <attachid>180244</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2012-12-19 16:35:21 -0800</bug_when>
    <thetext>Created attachment 180244
Proposed fix 0.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795057</commentid>
    <comment_count>3</comment_count>
      <attachid>180244</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-19 17:12:04 -0800</bug_when>
    <thetext>Comment on attachment 180244
Proposed fix 0.1

Attachment 180244 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15402887</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795115</commentid>
    <comment_count>4</comment_count>
      <attachid>180244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-19 19:59:14 -0800</bug_when>
    <thetext>Comment on attachment 180244
Proposed fix 0.1

Attachment 180244 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15400826

New failing tests:
media/track/track-cue-rendering-inner-timestamps.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795131</commentid>
    <comment_count>5</comment_count>
      <attachid>180244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-19 20:46:21 -0800</bug_when>
    <thetext>Comment on attachment 180244
Proposed fix 0.1

Attachment 180244 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15418794

New failing tests:
media/track/track-cue-rendering-inner-timestamps.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796080</commentid>
    <comment_count>6</comment_count>
      <attachid>180465</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2012-12-20 20:08:59 -0800</bug_when>
    <thetext>Created attachment 180465
Proposed fix 0.2

Looks like the compile assertion was failing for the windows build because values inside the bitfield were not aligned.
Test case needs more investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796104</commentid>
    <comment_count>7</comment_count>
      <attachid>180470</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2012-12-20 20:36:09 -0800</bug_when>
    <thetext>Created attachment 180470
Proposed fix 0.3

track-cue-rendering-inner-timestamps was deleted because the test was based on the older cue rendering behavior. The rendering tree of the cue is not changing now, only different styles are being applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796470</commentid>
    <comment_count>8</comment_count>
      <attachid>180558</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2012-12-21 14:45:37 -0800</bug_when>
    <thetext>Created attachment 180558
Proposed fix 0.4

Rebased the patch, should be able to apply the patch on windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796814</commentid>
    <comment_count>9</comment_count>
      <attachid>180558</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-12-23 15:58:49 -0800</bug_when>
    <thetext>Comment on attachment 180558
Proposed fix 0.4

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

&gt; LayoutTests/ChangeLog:12
&gt; +        * media/track/captions-webvtt/styling.vtt:
&gt; +        * media/track/track-css-matching-expected.txt:
&gt; +        * media/track/track-css-matching.html:

This does not list all of the changed and modified files.

Why was track-cue-rendering-inner-timestamps.html deleted?

&gt; LayoutTests/media/track/track-css-matching.html:43
&gt; +                consoleWrite(&quot;&quot;);
&gt; +                consoleWrite(&quot;&quot;);
&gt; +                consoleWrite(&quot;\n\n2. Test that cues are being matched properly by the &apos;:future&apos; pseudo class.&quot;);

Nit: consoleWrite(&quot;\n\n&quot;) doesn&apos;t introduce white-space. Use consoleWrite(&quot;&lt;br&gt;&lt;br&gt;&quot;) instead.

&gt; Source/WebCore/ChangeLog:18
&gt; +        (WebCore::CSSSelector::pseudoId):
&gt; +        (WebCore::nameToPseudoTypeMap):
&gt; +        (WebCore::CSSSelector::extractPseudoType):

Please add per-method comments describing what you added/changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798918</commentid>
    <comment_count>10</comment_count>
      <attachid>180558</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-02 14:40:43 -0800</bug_when>
    <thetext>Comment on attachment 180558
Proposed fix 0.4

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

Looks good, r=me. Please fix the style issues.

&gt; Source/WebCore/css/StyleResolver.cpp:1243
&gt; +    if (element-&gt;isWebVTTNode() !=  m_element-&gt;isWebVTTNode())

extra space after !=

&gt; Source/WebCore/dom/NodeRareData.h:276
&gt;          , m_childrenAffectedByBackwardPositionalRules(false)
&gt; +#if ENABLE(VIDEO_TRACK)
&gt; +    , m_WebVTTNodeType(TextTrack::WebVTTNodeTypeNone)
&gt; +#endif

intendation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798933</commentid>
    <comment_count>11</comment_count>
      <attachid>180558</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-02 14:52:43 -0800</bug_when>
    <thetext>Comment on attachment 180558
Proposed fix 0.4

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

&gt; Source/WebCore/html/track/TextTrackCue.cpp:667
&gt; +void TextTrackCue::setNodeObjectFlags(Node *root, double previousTimestamp, double movieTime)
&gt; +{

This function could use a more descriptive name. markFutureAndPastNodes or something.

This could be tightened to take ContainerNode instead of Node.

* belongs next to Node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798942</commentid>
    <comment_count>12</comment_count>
      <attachid>180558</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-02 15:00:30 -0800</bug_when>
    <thetext>Comment on attachment 180558
Proposed fix 0.4

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

&gt; Source/WebCore/html/track/TextTrackCue.h:138
&gt; +    void setNodeObjectFlags(Node *, double, double);

Actually it can be tightened to take Element. Also * placement here.

&gt; Source/WebCore/html/track/TextTrackCue.h:211
&gt; -    RefPtr&lt;HTMLDivElement&gt; m_pastDocumentNodes;
&gt; -    RefPtr&lt;HTMLDivElement&gt; m_futureDocumentNodes;
&gt; +    RefPtr&lt;HTMLDivElement&gt; m_allDocumentNodes;

Name m_allDocumentNodes makes little sense except as a reference that there used to be two separate tree. At least drop &quot;all&quot; and preferably find a better name &quot;m_displayTree&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799147</commentid>
    <comment_count>13</comment_count>
      <attachid>181125</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-02 17:53:18 -0800</bug_when>
    <thetext>Created attachment 181125
Proposed fix 0.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799148</commentid>
    <comment_count>14</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-02 17:54:35 -0800</bug_when>
    <thetext>Renaming m_allDocumentNodes will cause renaming already existing m_displayTree so it&apos;s probably better to refactor that with a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799222</commentid>
    <comment_count>15</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2013-01-02 20:54:37 -0800</bug_when>
    <thetext>Why are you removing LayoutTests/media/track/captions-webvtt/captions-inner-timestamps.vtt and LayoutTests/media/track/track-cue-rendering-inner-timestamps.html ? That test is not checking CSS, but checking whether inner timestamps are handled correctly, including when there is seeking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799693</commentid>
    <comment_count>16</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-03 14:39:48 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Why are you removing LayoutTests/media/track/captions-webvtt/captions-inner-timestamps.vtt and LayoutTests/media/track/track-cue-rendering-inner-timestamps.html ? That test is not checking CSS, but checking whether inner timestamps are handled correctly, including when there is seeking.

They check wether the nodes are put property in the past and future containers. I&apos;ve removed container, so the test is worthless since all nodes are put in one single container now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799830</commentid>
    <comment_count>17</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2013-01-03 16:30:29 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; Why are you removing LayoutTests/media/track/captions-webvtt/captions-inner-timestamps.vtt and LayoutTests/media/track/track-cue-rendering-inner-timestamps.html ? That test is not checking CSS, but checking whether inner timestamps are handled correctly, including when there is seeking.
&gt; 
&gt; They check wether the nodes are put property in the past and future containers. I&apos;ve removed container, so the test is worthless since all nodes are put in one single container now.

Thanks for the clarification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799842</commentid>
    <comment_count>18</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2013-01-03 16:44:22 -0800</bug_when>
    <thetext>Would be nice to have some more complexity in the added test,
especially since you have also fixed the node traversal with this patch (nice!).

I&apos;m thinking particularly of some not very intuitive cases with nested nodes,
but probably filing a bug for now and adding more complicated cases later
would also be an option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799878</commentid>
    <comment_count>19</comment_count>
      <attachid>181256</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-03 17:45:39 -0800</bug_when>
    <thetext>Created attachment 181256
Proposed fix 0.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799879</commentid>
    <comment_count>20</comment_count>
      <attachid>181257</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-03 17:59:37 -0800</bug_when>
    <thetext>Created attachment 181257
Proposed fix 0.7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799985</commentid>
    <comment_count>21</comment_count>
      <attachid>180558</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-04 00:42:34 -0800</bug_when>
    <thetext>Comment on attachment 180558
Proposed fix 0.4

Cleared Antti Koivisto&apos;s review+ from obsolete attachment 180558 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800069</commentid>
    <comment_count>22</comment_count>
      <attachid>181257</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 01:17:15 -0800</bug_when>
    <thetext>Comment on attachment 181257
Proposed fix 0.7

Clearing flags on attachment: 181257

Committed r138784: &lt;http://trac.webkit.org/changeset/138784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800070</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 01:17:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800599</commentid>
    <comment_count>24</comment_count>
      <attachid>181371</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-01-04 13:54:43 -0800</bug_when>
    <thetext>Created attachment 181371
Proposed fix 0.8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800776</commentid>
    <comment_count>25</comment_count>
      <attachid>181371</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-04 17:36:48 -0800</bug_when>
    <thetext>Comment on attachment 181371
Proposed fix 0.8

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

&gt; Source/WebCore/dom/NodeRareData.h:407
&gt; -
&gt; +#if ENABLE(VIDEO_TRACK)
&gt; +    TextTrack::WebVTTNodeType m_WebVTTNodeType : 2;
&gt; +#endif

We can’t do this. cl.exe (MSVC) will add variables of different types.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180244</attachid>
            <date>2012-12-19 16:35:21 -0800</date>
            <delta_ts>2012-12-20 20:08:59 -0800</delta_ts>
            <desc>Proposed fix 0.1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>27092</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MTJlMDZkLi5jM2Y0ZDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTIt
MTkgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDpmdXR1cmUgcHNldWRvIGNsYXNzIGZvciB0aGUgV2ViVlRUIDo6Y3VlIHBzZXVkbyBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmll
ZCB0aGUgdHJhY2sgY3NzIG1hdGNoaW5nIHRlc3QgdG8gY292ZXIgOmZ1dHVyZSBwc2V1ZG8tY2xh
c3MgY2FzZS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5n
LnZ0dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sOgorCiAy
MDEyLTEyLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCByZXBvc2l0aW9uaW5nIG9mIGZpeGVkIGVsZW1lbnRzIG9uIHpvb21pbmcKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLnZ0
dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLnZ0dApp
bmRleCBhNzFiY2FmLi4zMjc0OGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmcudnR0CkBAIC03LDMgKzcsNyBAQCBMb3J1bSBpcHN1
bQogMgogMDA6MDEuMDAwIC0tPiAwMDowMi4wMDAKIDxjLnJlZD5kb2xvciBzaXQgPC9jPjxjLmdy
ZWVuPmFtZXQsIGNvbnNlY3RldHVyIDwvYz48Yy5yZWQyPmFkaXBpc2NpbmcgZWxpdDwvYz4KKwor
MworMDA6MDIuMDAwIC0tPiAwMDowNS4wMDAKKzwwMDowMi4wMDA+PGM+U3VzcGVuZGlzc2UgYWNj
dW1zYW4sIDwvYz48MDA6MDMuMDAwPjxjPm1hdXJpcyBzZWQgPC9jPjwwMDowNC4wMDA+PGM+ZXVp
c21vZCBwaGFyZXRyYTwvYz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4
dAppbmRleCAwZjIzOTUzLi40MDg3YmRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwyOSBA
QAotVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlIGNsYXNz
IG5hbWUKKzEuIFRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRo
ZSBjbGFzcyBuYW1lCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIEVWRU5UKHNlZWtlZCkKIEVYUEVD
VEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAwLCAwKScp
IE9LCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDAs
IDEyOCwgMCknKSBPSwogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3Ig
PT0gJ3JnYigyNTUsIDAsIDApJykgT0sKKworUlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gMi41KQor
RVZFTlQoc2Vla2VkKQorCisKKzIuIFRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHBy
b3Blcmx5IGJ5IHRoZSAnOmZ1dHVyZScgcHNldWRvIGNsYXNzLgorRVhQRUNURUQgKGdldENvbXB1
dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9LCitFWFBF
Q1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDEyOCwgMTI4LCAx
MjgpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdy
Z2IoMTI4LCAxMjgsIDEyOCknKSBPSworCitSVU4odmlkZW8uY3VycmVudFRpbWUgPSAzLjUpCitF
VkVOVChzZWVrZWQpCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9
PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1
ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSworRVhQRUNURUQgKGdldENv
bXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigxMjgsIDEyOCwgMTI4KScpIE9LCisK
K1JVTih2aWRlby5jdXJyZW50VGltZSA9IDQuNSkKK0VWRU5UKHNlZWtlZCkKK0VYUEVDVEVEIChn
ZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBP
SworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUs
IDI1NSwgMjU1KScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xv
ciA9PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLmh0bWwKaW5kZXggZDA0MjI1YS4u
ODAyZjM1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1h
dGNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNo
aW5nLmh0bWwKQEAgLTE3LDIxICsxNyw1MSBAQAogICAgICAgICA8c2NyaXB0PgogCiAgICAgICAg
IHZhciBjdWVOb2RlOwotCisgICAgICAgIHZhciBzZWVrZWRDb3VudCA9IDA7CisgICAgICAgIHZh
ciBpbmZvID0gW1sicmdiKDI1NSwgMCwgMCkiLCAicmdiKDAsIDEyOCwgMCkiLCAicmdiKDI1NSwg
MCwgMCkiXSwKKyAgICAgICAgICAgICAgICAgICAgWyJyZ2IoMjU1LCAyNTUsIDI1NSkiLCAicmdi
KDEyOCwgMTI4LCAxMjgpIiwgInJnYigxMjgsIDEyOCwgMTI4KSJdLAorICAgICAgICAgICAgICAg
ICAgICBbInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2IoMjU1LCAyNTUsIDI1NSkiLCAicmdiKDEy
OCwgMTI4LCAxMjgpIl0sCisgICAgICAgICAgICAgICAgICAgIFsicmdiKDI1NSwgMjU1LCAyNTUp
IiwgInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2IoMjU1LCAyNTUsIDI1NSkiXV07CisgICAgICAg
IAorICAgICAgICBmdW5jdGlvbiBza2lwTm9uRWxlbWVudHMocm9vdCkKKyAgICAgICAgeworICAg
ICAgICAgICAgbmV4dEVsZW1lbnRTaWJsaW5nID0gcm9vdDsKKyAgICAgICAgICAgIHdoaWxlIChu
ZXh0RWxlbWVudFNpYmxpbmcubm9kZVR5cGUgIT0gMSkgeworICAgICAgICAgICAgICAgIG5leHRF
bGVtZW50U2libGluZyA9IG5leHRFbGVtZW50U2libGluZy5uZXh0U2libGluZzsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXh0RWxlbWVudFNpYmxpbmc7CisgICAgICAgIH0K
KyAgICAgICAgCiAgICAgICAgIGZ1bmN0aW9uIHNlZWtlZCgpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ3Bhc3Qtbm9kZXMn
KS5maXJzdENoaWxkOwotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxl
KGN1ZU5vZGUpLmNvbG9yIiwgInJnYigyNTUsIDAsIDApIik7Ci0gICAgICAgICAgICBjdWVOb2Rl
ID0gY3VlTm9kZS5uZXh0U2libGluZzsKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29t
cHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMCwgMTI4LCAwKSIpOwotICAgICAgICAg
ICAgY3VlTm9kZSA9IGN1ZU5vZGUubmV4dFNpYmxpbmc7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCAicmdiKDI1NSwgMCwgMCkiKTsK
LSAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgIGlmICh0ZXN0RW5kZWQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoc2Vla2VkQ291bnQgPT0gMSkg
eworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlxuXG4yLiBUZXN0
IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgJzpmdXR1cmUnIHBz
ZXVkbyBjbGFzcy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY3VlTm9kZSA9IHNr
aXBOb25FbGVtZW50cyh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2Rlcycp
LmZpcnN0Q2hpbGQpOworICAgICAgICAgICAgc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUpOworICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwg
aW5mb1tzZWVrZWRDb3VudF1bMF0pOworICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVt
ZW50cyhjdWVOb2RlLm5leHRTaWJsaW5nKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0
Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRdWzFdKTsKKyAg
ICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHMoY3VlTm9kZS5uZXh0U2libGluZyk7
CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29s
b3IiLCBpbmZvW3NlZWtlZENvdW50XVsyXSk7CisKKyAgICAgICAgICAgIGlmICgrK3NlZWtlZENv
dW50ID09IGluZm8ubGVuZ3RoKQorICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAg
ICAgICAgcnVuKCJ2aWRlby5jdXJyZW50VGltZSA9ICIgKyAodmlkZW8uY3VycmVudFRpbWUgKyAx
KSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBsb2FkZWQo
KQogICAgICAgICB7Ci0gICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRlc3QgdGhhdCBjdWVzIGFy
ZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRoZSBjbGFzcyBuYW1lIik7CisgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIjEuIFRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Bl
cmx5IGJ5IHRoZSBjbGFzcyBuYW1lIik7CiAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7
CiAgICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICcuLi9jb250
ZW50L3Rlc3QnKTsKICAgICAgICAgICAgIHZpZGVvLmlkID0gInRlc3R2aWRlbyI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZTIzMjZhNS4uYTQzM2FhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEy
LTEyLTE5ICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCA6ZnV0dXJlIHBzZXVkbyBjbGFzcyBmb3IgdGhlIFdlYlZUVCA6OmN1ZSBwc2V1ZG8gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1
NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBhcHByb2FjaCBvZiBzaG93aW5nIHBhc3QvZnV0dXJlIG5vZGUg
b2JqZWN0cy4gCisgICAgICAgIEJlZm9yZSB1cHBlci1sZXZlbCBjb250YWluZXJzIHdlcmUgdXNl
ZCB0byBwdXQgcGFzdCBhbmQgZnV0dXJlIG5vZGVzIGluc2lkZS4gU3R5bGVzIHdlcmUgYXBwbGll
ZAorICAgICAgICB0byBjb250YWluZXJzLiBOb3cgc3R5bGVzIGNvdWxkIGJlIGFwcGxpZWQgZGly
ZWN0bHkgdG8gbm9kZXMgYnkgdXNpbmcgOjpjdWUoOmZ1dHVyZSkuCisgICAgICAgIFRoYXQgYWxs
b3dzIHRvIHN0eWxlIGZ1dHVyZS9wYXN0IFdlYlZUVCBub2RlcyBldmVuIGlmIHRoZXkgYXJlIG5l
c3RlZC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0IHdhcyBtb2RpZmllZCB0byBjb3ZlciBuZXcg
Y2FzZXMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOiBhZGRlZCA6ZnV0dXJlIHBz
ZXVkbyBjbGFzcyBzdXBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVk
b0lkKToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAgKiBjc3Mv
Q1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDogZGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOgor
ICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6IGRlZmluZSBzdHlsZSBzaGFyaW5n
IHJ1bGVzIGZvciBXZWJWVFQgb2JqZWN0cy4KKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5j
c3M6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2Rlcyk6
CisgICAgICAgICh2aWRlbzo6Y3VlKDpmdXR1cmUpKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRJc1dlYlZUVE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojppc1dlYlZUVEZ1dHVyZU5v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SXNXZWJWVFRGdXR1cmVOb2RlKToK
KyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICog
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoRWxlbWVudFJhcmVEYXRhKToKKyAgICAg
ICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6
Ok5vZGVSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OmlzV2ViVlRU
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnNldElzV2ViVlRUTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OmlzV2ViVlRURnV0dXJlTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnNldElzV2ViVlRURnV0dXJlTm9kZSk6Cisg
ICAgICAgIChOb2RlUmFyZURhdGEpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvdHJhY2sv
VGV4dFRyYWNrLmg6IGFkZCBhIFdlYlZUVCBub2RlIG9iamVjdCB0eXBlIGVudW0uCisgICAgICAg
IChUZXh0VHJhY2spOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6YWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmdldEN1ZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6c2V0Tm9kZU9iamVjdEZsYWdzKTogZGV0
ZXJtaW5lIGlmIHRoZSBub2RlIGlzIGZ1dHVyZSBvciBwYXN0IGFuZCBtYXJrIGFzIFdlYlZUVCBu
b2RlLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZSk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlUcmVlKToKKyAgICAg
ICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAoVGV4dFRyYWNrQ3VlKToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJWVFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4pOgorICAgICAgICAqIHBhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25V
c2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKToKKwogMjAxMi0x
Mi0xNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlkSGl0UmVs
ZXZhbnRSZXBhaW50ZWRPYmplY3RzQXJlYVRocmVzaG9sZCBzaG91bGQgbm90IHVzZSB0aGUgdmll
d1JlY3Qgc2luY2UgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCA5NTZlNDdmLi5k
Nzg3OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTIyMiw2ICsyMjIsNyBA
QCBQc2V1ZG9JZCBDU1NTZWxlY3Rvcjo6cHNldWRvSWQoUHNldWRvVHlwZSB0eXBlKQogICAgIGNh
c2UgUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudDoKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAg
ICAgY2FzZSBQc2V1ZG9DdWU6CisgICAgY2FzZSBQc2V1ZG9GdXR1cmVDdWU6CiAjZW5kaWYKICAg
ICAgICAgcmV0dXJuIE5PUFNFVURPOwogICAgIGNhc2UgUHNldWRvTm90UGFyc2VkOgpAQCAtMzA3
LDYgKzMwOCw3IEBAIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rv
cjo6UHNldWRvVHlwZT4qIG5hbWVUb1BzZXVkb1R5cGVNYXAoCiAjZW5kaWYKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGN1ZSwg
KCJjdWUoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmdXR1cmVDdWUsICgiZnV0dXJlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2VuZGlmCiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGluUmFuZ2UsICgiaW4tcmFuZ2UiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG91dE9mUmFuZ2UsICgib3V0LW9mLXJhbmdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwpAQCAtMzg1LDYgKzM4Nyw3IEBAIHN0YXRpYyBIYXNoTWFwPEF0b21p
Y1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZT4qIG5hbWVUb1BzZXVkb1R5cGVN
YXAoCiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgIG5hbWVUb1BzZXVk
b1R5cGUtPnNldChjdWUuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvQ3VlKTsKKyAgICAgICAg
bmFtZVRvUHNldWRvVHlwZS0+c2V0KGZ1dHVyZUN1ZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1
ZG9GdXR1cmVDdWUpOwogI2VuZGlmCiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChpblJh
bmdlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0luUmFuZ2UpOwogICAgICAgICBuYW1lVG9Q
c2V1ZG9UeXBlLT5zZXQob3V0T2ZSYW5nZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9PdXRP
ZlJhbmdlKTsKQEAgLTUwNyw2ICs1MTAsOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNl
dWRvVHlwZSgpIGNvbnN0CiAjZW5kaWYKICAgICBjYXNlIFBzZXVkb0luUmFuZ2U6CiAgICAgY2Fz
ZSBQc2V1ZG9PdXRPZlJhbmdlOgorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBjYXNlIFBz
ZXVkb0Z1dHVyZUN1ZToKKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIFBzZXVkb0Zp
cnN0UGFnZToKICAgICBjYXNlIFBzZXVkb0xlZnRQYWdlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
aAppbmRleCBkZWZkMzZjLi45N2MyZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAt
MTU4LDYgKzE1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb1dl
YktpdEN1c3RvbUVsZW1lbnQsCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICAgICAgICAg
UHNldWRvQ3VlLAorICAgICAgICAgICAgUHNldWRvRnV0dXJlQ3VlLAogI2VuZGlmCiAgICAgICAg
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggNTdhMWQ5Zi4u
NjhkOGRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTExMjQs
NiArMTEyNCwxMiBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25z
dCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgYwogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnNldENvbnRhaW5z
VmFsaWRpdHlTdHlsZVJ1bGVzKCk7CiAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC0+aXNPdXRP
ZlJhbmdlKCk7CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9GdXR1cmVDdWU6CisgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXNXZWJWVFRG
dXR1cmVOb2RlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5r
bm93bjoKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90UGFyc2VkOgogICAgICAg
ICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGY2ZmYzZDQu
LmJiMGY4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTEyMzYsNiAr
MTIzNiwxNCBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChT
dHlsZWRFbGVtZW50KiBlbGVtZW50KSBjb25zdAogICAgIGlmIChlbGVtZW50LT5pc0xpbmsoKSAm
JiBtX2VsZW1lbnRMaW5rU3RhdGUgIT0gc3R5bGUtPmluc2lkZUxpbmsoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGlmIChlbGVtZW50LT5p
c1dlYlZUVE5vZGUoKSAmJiBtX2VsZW1lbnQtPmlzV2ViVlRUTm9kZSgpICYmIGVsZW1lbnQtPmlz
V2ViVlRURnV0dXJlTm9kZSgpICE9IG1fZWxlbWVudC0+aXNXZWJWVFRGdXR1cmVOb2RlKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBEZW55IHNoYXJpbmcgc3R5bGVzIGJldHdlZW4g
V2ViVlRUIG5vZGVzIGFuZCBub24tV2ViVlRUIG5vZGVzLgorICAgIGlmIChlbGVtZW50LT5pc1dl
YlZUVE5vZGUoKSAhPSAgbV9lbGVtZW50LT5pc1dlYlZUVE5vZGUoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21l
ZGlhQ29udHJvbHMuY3NzCmluZGV4IDAwZWZjYmIuLjNhNDA3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9scy5jc3MKQEAgLTIzNywyNSArMjM3LDE5IEBAIHZpZGVvOjotd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stY29udGFpbmVyIHsKICAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogfQog
Ci12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBhc3Qtbm9kZXMgewordmlkZW86Oi13
ZWJraXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMgewogICAgIGRpc3BsYXk6IGlubGluZTsK
IAogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAgICBwYWRkaW5n
OiAycHggMnB4OwogfQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWZ1dHVyZS1u
b2RlcyB7Ci0gICAgdmlzaWJpbGl0eTogaGlkZGVuOwotICAgIGRpc3BsYXk6IGlubGluZTsKLQot
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKLQotICAgIG1hcmdpbi1s
ZWZ0OiAtMnB4OwotICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDBweDsKLX0KLQogdmlkZW86Oi13
ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CiAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiB9CisK
K3ZpZGVvOjpjdWUoOmZ1dHVyZSkgeworICAgIGNvbG9yOiBncmF5OworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDJkM2FlOGYuLjA4Yzk4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTIyODUsOSArMjI4NSwxOSBAQCBib29sIEVsZW1lbnQ6OmlzV2ViVlRUTm9kZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlzV2ViVlRUTm9k
ZSgpOwogfQogCi12b2lkIEVsZW1lbnQ6OnNldElzV2ViVlRUTm9kZShib29sIGZsYWcpCit2b2lk
IEVsZW1lbnQ6OnNldElzV2ViVlRUTm9kZSgpCiB7Ci0gICAgZW5zdXJlRWxlbWVudFJhcmVEYXRh
KCktPnNldElzV2ViVlRUTm9kZShmbGFnKTsKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+
c2V0SXNXZWJWVFROb2RlKCk7Cit9CisKK2Jvb2wgRWxlbWVudDo6aXNXZWJWVFRGdXR1cmVOb2Rl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVtZW50UmFyZURhdGEo
KS0+aXNXZWJWVFRGdXR1cmVOb2RlKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0SXNXZWJWVFRG
dXR1cmVOb2RlKCkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+c2V0SXNXZWJWVFRG
dXR1cmVOb2RlKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggN2JkN2Q0ZS4u
ZWYwYWNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00MzQsNyArNDM0LDkgQEAgcHVibGljOgog
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGJvb2wgaXNXZWJWVFROb2RlKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoYm9vbCBmbGFnKTsKKyAgICB2b2lkIHNldElzV2Vi
VlRUTm9kZSgpOworICAgIGJvb2wgaXNXZWJWVFRGdXR1cmVOb2RlKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKTsKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCA1MjYzMTVh
Li4wMDU1MDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC01Nyw2ICs1
Nyw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgdXNpbmcgTm9kZVJh
cmVEYXRhOjppc1dlYlZUVE5vZGU7CiAgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjpzZXRJc1dlYlZU
VE5vZGU7CisgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjppc1dlYlZUVEZ1dHVyZU5vZGU7CisgICAg
dXNpbmcgTm9kZVJhcmVEYXRhOjpzZXRJc1dlYlZUVEZ1dHVyZU5vZGU7CiAjZW5kaWYKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgYm9vbCBjb250YWluc0Z1bGxTY3JlZW5FbGVtZW50
KCkgeyByZXR1cm4gbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50OyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJhcmVEYXRhLmgKaW5kZXggYTU1ZmM5Ny4uMmFmOGQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFy
ZURhdGEuaApAQCAtMjksNiArMjksOSBAQAogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24uaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiVGFnTm9k
ZUxpc3QuaCIKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisjaW5jbHVkZSAiVGV4dFRyYWNrLmgi
CisjZW5kaWYKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtMjU2LDYgKzI1OSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgLCBtX2lzSW5DYW52YXNTdWJ0cmVlKGZhbHNlKQogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICAgICAgLCBtX2lzV2ViVlRUTm9kZShmYWxzZSkKKyAgICAgICAgLCBtX2lz
V2ViVlRUUGFzdE5vZGUodHJ1ZSkKKyAgICAgICAgLCBtX1dlYlZUVE5vZGVUeXBlKFRleHRUcmFj
azo6V2ViVlRUTm9kZVR5cGVOb25lKQogI2VuZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgICAgICAsIG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChmYWxzZSkKQEAgLTM3MSw4
ICszNzYsMTAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQotICAgIGJvb2wgaXNXZWJWVFROb2RlKCkgeyByZXR1cm4gbV9pc1dlYlZUVE5vZGU7IH0KLSAg
ICB2b2lkIHNldElzV2ViVlRUTm9kZShib29sIHZhbHVlKSB7IG1faXNXZWJWVFROb2RlID0gdmFs
dWU7IH0KKyAgICBib29sIGlzV2ViVlRUTm9kZSgpIHsgcmV0dXJuIG1fV2ViVlRUTm9kZVR5cGUg
IT0gVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZU5vbmU7IH0KKyAgICB2b2lkIHNldElzV2ViVlRU
Tm9kZSgpIHsgbV9XZWJWVFROb2RlVHlwZSA9IFRleHRUcmFjazo6V2ViVlRUTm9kZVR5cGVQYXN0
OyB9CisgICAgYm9vbCBpc1dlYlZUVEZ1dHVyZU5vZGUoKSB7IHJldHVybiBtX1dlYlZUVE5vZGVU
eXBlID09IFRleHRUcmFjazo6V2ViVlRUTm9kZVR5cGVGdXR1cmU7IH0KKyAgICB2b2lkIHNldElz
V2ViVlRURnV0dXJlTm9kZSgpIHsgbV9XZWJWVFROb2RlVHlwZSA9IFRleHRUcmFjazo6V2ViVlRU
Tm9kZVR5cGVGdXR1cmU7IH0KICNlbmRpZgogICAgIHNob3J0IG1fdGFiSW5kZXg7CiAgICAgdW5z
aWduZWQgc2hvcnQgbV9jaGlsZEluZGV4OwpAQCAtMzgyLDYgKzM4OSw4IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1faXNJbkNhbnZhc1N1YnRyZWUgOiAxOwogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICBib29sIG1faXNXZWJWVFROb2RlIDogMTsKKyAgICBib29sIG1faXNXZWJWVFRQYXN0
Tm9kZSA6IDE7CisgICAgVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZSBtX1dlYlZUVE5vZGVUeXBl
IDogMjsKICNlbmRpZgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIG1fY29u
dGFpbnNGdWxsU2NyZWVuRWxlbWVudCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggY2Q5NGFiNC4uNTRlNWE3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcApAQCAtMTE5NSw3ICsxMTk1LDcgQEAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2MKICAg
ICAsIG1fZm9udFNpemUoMCkKIHsKIH0KLSAgICAKKwogdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVTdWJ0cmVlcyhEb2N1bWVudCogZG9jdW1lbnQpCiB7
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1ZSwgKCJjdWUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaAppbmRleCA2MzUwM2RhLi4zZGZhZTgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAgLTExMCw2ICsxMTAsOCBAQCBwdWJsaWM6CiAKICAgICBl
bnVtIFRleHRUcmFja1R5cGUgeyBUcmFja0VsZW1lbnQsIEFkZFRyYWNrLCBJbkJhbmQgfTsKICAg
ICBUZXh0VHJhY2tUeXBlIHRyYWNrVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tUeXBlOyB9
CisgICAgCisgICAgZW51bSBXZWJWVFROb2RlVHlwZSB7V2ViVlRUTm9kZVR5cGVOb25lLCBXZWJW
VFROb2RlVHlwZUZ1dHVyZSwgV2ViVlRUTm9kZVR5cGVQYXN0fTsKIAogICAgIGludCB0cmFja0lu
ZGV4KCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlVHJhY2tJbmRleCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IDY5YjhhZDcuLjQ1ZjMzNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTE4MywxNSArMTgz
LDkgQEAgUmVuZGVyT2JqZWN0KiBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLWNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3VlOjpwYXN0Tm9kZXNTaGFk
b3dQc2V1ZG9JZCgpCitjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6YWxsTm9kZXNT
aGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHN1YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcGFzdC1ub2RlcyIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICByZXR1cm4gc3VidGl0
bGVzOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6ZnV0dXJlTm9kZXNT
aGFkb3dQc2V1ZG9JZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHN1YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVz
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgiLXdlYmtpdC1tZWRpYS10
ZXh0LXRyYWNrLWFsbC1ub2RlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gc3VidGl0bGVzOwogfQogCkBAIC0yMTMsOCArMjA3LDcgQEAgVGV4dFRy
YWNrQ3VlOjpUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91
YmxlIHN0YXJ0LCBkb3VibGUKICAgICAsIG1fcGF1c2VPbkV4aXQoZmFsc2UpCiAgICAgLCBtX3Nu
YXBUb0xpbmVzKHRydWUpCiAgICAgLCBtX2hhc0lubmVyVGltZXN0YW1wcyhmYWxzZSkKLSAgICAs
IG1fcGFzdERvY3VtZW50Tm9kZXMoSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxE
b2N1bWVudCo+KGNvbnRleHQpKSkKLSAgICAsIG1fZnV0dXJlRG9jdW1lbnROb2RlcyhIVE1MRGl2
RWxlbWVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQorICAgICwg
bV9hbGxEb2N1bWVudE5vZGVzKEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9j
dW1lbnQqPihjb250ZXh0KSkpCiAgICAgLCBtX2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlKHRydWUp
CiAgICAgLCBtX2Rpc3BsYXlUcmVlKFRleHRUcmFja0N1ZUJveDo6Y3JlYXRlKHN0YXRpY19jYXN0
PERvY3VtZW50Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgdGhpcykpCiB7CkBAIC00ODgs
MTIgKzQ4MSw2IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgoKQogICAg
IG1fY3VlSW5kZXggPSBpbnZhbGlkQ3VlSW5kZXg7CiB9CiAKLXZvaWQgVGV4dFRyYWNrQ3VlOjpt
YXJrTm9kZXNBc1dlYlZUVE5vZGVzKE5vZGUqIHJvb3QpCi17Ci0gICAgZm9yIChFbGVtZW50KiBj
aGlsZCA9IEVsZW1lbnRUcmF2ZXJzYWw6OmZpcnN0V2l0aGluKHJvb3QpOyBjaGlsZDsgY2hpbGQg
PSBFbGVtZW50VHJhdmVyc2FsOjpuZXh0KGNoaWxkLCByb290KSkKLSAgICAgICAgY2hpbGQtPnNl
dElzV2ViVlRUTm9kZSh0cnVlKTsKLX0KLQogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBU
ZXh0VHJhY2tDdWU6OmdldEN1ZUFzSFRNTCgpCiB7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGNsb25lZEZyYWdtZW50OwpAQCAtNTE2LDcgKzUwMyw2IEBAIFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gVGV4dFRyYWNrQ3VlOjpnZXRDdWVBc0hUTUwoKQogCiAgICAgY2xvbmVkRnJh
Z21lbnQgPSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fZG9jdW1l
bnRGcmFnbWVudC0+Y2xvbmVDaGlsZE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKLSAgICBt
YXJrTm9kZXNBc1dlYlZUVE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKIAogICAgIHJldHVy
biBjbG9uZWRGcmFnbWVudC5yZWxlYXNlKCk7CiB9CkBAIC02NzYsNTAgKzY2Miw1NCBAQCB2b2lk
IFRleHRUcmFja0N1ZTo6Y2FsY3VsYXRlRGlzcGxheVBhcmFtZXRlcnMoKQogICAgIC8vIGlzIGRl
ZmluZWQgaW4gdGVybXMgb2YgdGhlIG90aGVyIGFzcGVjdHMgb2YgdGhlIGN1ZS4KICAgICBtX2Nv
bXB1dGVkTGluZVBvc2l0aW9uID0gY2FsY3VsYXRlQ29tcHV0ZWRMaW5lUG9zaXRpb24oKTsKIH0K
KyAgICAKK3ZvaWQgVGV4dFRyYWNrQ3VlOjpzZXROb2RlT2JqZWN0RmxhZ3MoTm9kZSAqcm9vdCwg
ZG91YmxlIHByZXZpb3VzVGltZXN0YW1wLCBkb3VibGUgbW92aWVUaW1lKQoreworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxpdGVyYWwo
InRpbWVzdGFtcCIpKSk7CisgICAgCisgICAgYm9vbCBpc1Bhc3ROb2RlID0gdHJ1ZTsKKyAgICBk
b3VibGUgY3VycmVudFRpbWVzdGFtcCA9IHByZXZpb3VzVGltZXN0YW1wOworICAgIGlmIChjdXJy
ZW50VGltZXN0YW1wID4gbW92aWVUaW1lKQorICAgICAgICBpc1Bhc3ROb2RlID0gZmFsc2U7Cisg
ICAgCisgICAgZm9yIChOb2RlKiBjaGlsZCA9IHJvb3QtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gTm9kZVRyYXZlcnNhbDo6bmV4dChjaGlsZCwgcm9vdCkpIHsKKyAgICAgICAgaWYgKGNo
aWxkLT5ub2RlTmFtZSgpID09IHRpbWVzdGFtcFRhZykgeworICAgICAgICAgICAgdW5zaWduZWQg
cG9zaXRpb24gPSAwOworICAgICAgICAgICAgU3RyaW5nIHRpbWVzdGFtcCA9IGNoaWxkLT5ub2Rl
VmFsdWUoKTsKKyAgICAgICAgICAgIGRvdWJsZSBjdXJyZW50VGltZXN0YW1wID0gV2ViVlRUUGFy
c2VyOjpjcmVhdGUoMCwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS0+Y29sbGVjdFRpbWVTdGFt
cCh0aW1lc3RhbXAsICZwb3NpdGlvbik7CisgICAgICAgICAgICBBU1NFUlQoY3VycmVudFRpbWVz
dGFtcCAhPSAtMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjdXJyZW50VGltZXN0
YW1wID4gbW92aWVUaW1lKQorICAgICAgICAgICAgICAgIGlzUGFzdE5vZGUgPSBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGNoaWxkLT5pc0VsZW1lbnROb2RlKCkpIHsK
KyAgICAgICAgICAgIGlmICghaXNQYXN0Tm9kZSkKKyAgICAgICAgICAgICAgICB0b0VsZW1lbnQo
Y2hpbGQpLT5zZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB0b0VsZW1lbnQoY2hpbGQpLT5zZXRJc1dlYlZUVE5vZGUoKTsKKyAgICAgICAg
fQorICAgIH0KK30KIAogdm9pZCBUZXh0VHJhY2tDdWU6OnVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0
IG1vdmllVGltZSkKIHsKICAgICAvLyBUaGUgZGlzcGxheSB0cmVlIG1heSBjb250YWluIFdlYlZU
VCB0aW1lc3RhbXAgb2JqZWN0cyByZXByZXNlbnRpbmcKICAgICAvLyB0aW1lc3RhbXBzIChwcm9j
ZXNzaW5nIGluc3RydWN0aW9ucyksIGFsb25nIHdpdGggZGlzcGxheWFibGUgbm9kZXMuCi0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHRpbWVzdGFtcFRhZywgKEFTQ0lJTGl0
ZXJhbCgidGltZXN0YW1wIikpKTsKIAogICAgIGlmICghdHJhY2soKS0+aXNSZW5kZXJlZCgpKQog
ICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBpc1Bhc3ROb2RlID0gdHJ1ZTsKIAotICAgIC8vIENs
ZWFyIHRoZSBjb250ZW50cyBvZiB0aGUgdHdvIHNldHMuCi0gICAgbV9mdXR1cmVEb2N1bWVudE5v
ZGVzLT5yZW1vdmVDaGlsZHJlbigpOwotICAgIG1fZnV0dXJlRG9jdW1lbnROb2Rlcy0+c2V0UHNl
dWRvKGZ1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQoKSk7Ci0KLSAgICBtX3Bhc3REb2N1bWVudE5v
ZGVzLT5yZW1vdmVDaGlsZHJlbigpOwotICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPnNldFBzZXVk
byhwYXN0Tm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICAvLyBDbGVhciB0aGUgY29udGVudHMg
b2YgdGhlIHNldC4KKyAgICBtX2FsbERvY3VtZW50Tm9kZXMtPnJlbW92ZUNoaWxkcmVuKCk7Cisg
ICAgbV9hbGxEb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8oYWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgp
KTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgdHdvIHNldHMgY29udGFpbmluZyBwYXN0IGFuZCBmdXR1
cmUgV2ViVlRUIG9iamVjdHMuCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHJlZmVyZW5j
ZVRyZWUgPSBnZXRDdWVBc0hUTUwoKTsKIAotICAgIGlmICghbV9oYXNJbm5lclRpbWVzdGFtcHMp
IHsKLSAgICAgICAgbV9wYXN0RG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJl
ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBmb3IgKE5vZGUgKmNoaWxkID0gcmVm
ZXJlbmNlVHJlZS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkgewotICAgICAgICBpZiAoY2hpbGQtPm5vZGVOYW1lKCkgPT0gdGltZXN0YW1wVGFnKSB7
Ci0gICAgICAgICAgICB1bnNpZ25lZCBpbnQgcG9zaXRpb24gPSAwOwotICAgICAgICAgICAgU3Ry
aW5nIHRpbWVzdGFtcCA9IGNoaWxkLT5ub2RlVmFsdWUoKTsKLQotICAgICAgICAgICAgZG91Ymxl
IHRpbWVzdGFtcFRpbWUgPSBXZWJWVFRQYXJzZXI6OmNyZWF0ZSgwLCBtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpLT5jb2xsZWN0VGltZVN0YW1wKHRpbWVzdGFtcCwgJnBvc2l0aW9uKTsKLSAgICAg
ICAgICAgIEFTU0VSVCh0aW1lc3RhbXBUaW1lICE9IC0xKTsKLQotICAgICAgICAgICAgaWYgKHRp
bWVzdGFtcFRpbWUgPiBtb3ZpZVRpbWUpCi0gICAgICAgICAgICAgICAgaXNQYXN0Tm9kZSA9IGZh
bHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlzUGFzdE5vZGUpCi0gICAgICAgICAgICBt
X3Bhc3REb2N1bWVudE5vZGVzLT5hcHBlbmRDaGlsZChjaGlsZC0+Y2xvbmVOb2RlKHRydWUpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OLCBmYWxzZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1f
ZnV0dXJlRG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lTm9kZSh0cnVlKSwg
QVNTRVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOwotICAgIH0KKyAgICBtX2FsbERvY3VtZW50Tm9k
ZXMtPmFwcGVuZENoaWxkKHJlZmVyZW5jZVRyZWUpOworICAgIHNldE5vZGVPYmplY3RGbGFncyht
X2FsbERvY3VtZW50Tm9kZXMuZ2V0KCksIHN0YXJ0VGltZSgpLCBtb3ZpZVRpbWUpOwogfQogCiBQ
YXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gVGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgp
CkBAIC03NDEsOSArNzMxLDggQEAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IFRleHRUcmFj
a0N1ZTo6Z2V0RGlzcGxheVRyZWUoKQogICAgIC8vICdkaXNwbGF5JyBwcm9wZXJ0eSBoYXMgdGhl
IHZhbHVlICdpbmxpbmUnLiBUaGlzIGlzIHRoZSBXZWJWVFQgY3VlCiAgICAgLy8gYmFja2dyb3Vu
ZCBib3guCiAKLSAgICAvLyBOb3RlOiBUaGlzIGlzIGNvbnRhaW5lZCBieSBkZWZhdWx0IGluIG1f
cGFzdERvY3VtZW50Tm9kZXMuCi0gICAgbV9kaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9wYXN0
RG9jdW1lbnROb2RlcywgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7Ci0gICAgbV9kaXNwbGF5
VHJlZS0+YXBwZW5kQ2hpbGQobV9mdXR1cmVEb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBU
SU9OLCB0cnVlKTsKKyAgICAvLyBOb3RlOiBUaGlzIGlzIGNvbnRhaW5lZCBieSBkZWZhdWx0IGlu
IG1fYWxsRG9jdW1lbnROb2Rlcy4KKyAgICBtX2Rpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2Fs
bERvY3VtZW50Tm9kZXMsIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwogCiAgICAgLy8gRklY
TUUoQlVHIDc5OTE2KTogUnVucyBvZiBjaGlsZHJlbiBvZiBXZWJWVFQgUnVieSBPYmplY3RzIHRo
YXQgYXJlIG5vdAogICAgIC8vIFdlYlZUVCBSdWJ5IFRleHQgT2JqZWN0cyBtdXN0IGJlIHdyYXBw
ZWQgaW4gYW5vbnltb3VzIGJveGVzIHdob3NlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaAppbmRleCA4ZWVkZmM2Li5lZjJjMDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmgKQEAgLTgwLDggKzgwLDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB+VGV4dFRyYWNrQ3VlKCk7CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBw
YXN0Tm9kZXNTaGFkb3dQc2V1ZG9JZCgpOwotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IGZ1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQoKTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBhbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCk7CiAKICAgICBUZXh0VHJhY2sqIHRyYWNrKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRUcmFjayhUZXh0VHJhY2sqKTsKQEAgLTEyNSw3ICsxMjQsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBpbnZhbGlkYXRlQ3VlSW5kZXgoKTsKIAogICAgIFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZ2V0Q3VlQXNIVE1MKCk7Ci0gICAgdm9pZCBtYXJrTm9kZXNB
c1dlYlZUVE5vZGVzKE5vZGUqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KFBh
c3NSZWZQdHI8RXZlbnQ+KTsKICAgICBib29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4sIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTEzNiw2ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgUGFz
c1JlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IGdldERpc3BsYXlUcmVlKCk7CiAgICAgdm9pZCB1cGRh
dGVEaXNwbGF5VHJlZShmbG9hdCk7CiAgICAgdm9pZCByZW1vdmVEaXNwbGF5VHJlZSgpOworICAg
IHZvaWQgc2V0Tm9kZU9iamVjdEZsYWdzKE5vZGUgKiwgZG91YmxlLCBkb3VibGUpOwogCiAgICAg
aW50IGNhbGN1bGF0ZUNvbXB1dGVkTGluZVBvc2l0aW9uKCk7CiAKQEAgLTIwNyw4ICsyMDYsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9zbmFwVG9MaW5lczsKIAogICAgIGJvb2wgbV9oYXNJbm5l
clRpbWVzdGFtcHM7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX3Bhc3REb2N1bWVudE5v
ZGVzOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gbV9mdXR1cmVEb2N1bWVudE5vZGVzOwor
ICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gbV9hbGxEb2N1bWVudE5vZGVzOwogCiAgICAgYm9v
bCBtX2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVCb3g+
IG1fZGlzcGxheVRyZWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5j
cHAKaW5kZXggZmVkMDM2OS4uMjk3ZTU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRUUGFyc2VyLmNwcApAQCAtMzY0LDcgKzM2NCw2IEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpj
b25zdHJ1Y3RUcmVlRnJvbVRva2VuKERvY3VtZW50KiBkb2N1bWVudCkKICAgICAgICAgICAgIGNo
aWxkID0gSFRNTEVsZW1lbnQ6OmNyZWF0ZShxVGFnLCBkb2N1bWVudCk7CiAKICAgICAgICAgaWYg
KGNoaWxkKSB7Ci0gICAgICAgICAgICBjaGlsZC0+c2V0SXNXZWJWVFROb2RlKHRydWUpOwogICAg
ICAgICAgICAgaWYgKG1fdG9rZW4uY2xhc3NlcygpLnNpemUoKSA+IDApCiAgICAgICAgICAgICAg
ICAgY2hpbGQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIEF0b21pY1N0cmluZyhtX3Rva2VuLmNs
YXNzZXMoKS5kYXRhKCksIG1fdG9rZW4uY2xhc3NlcygpLnNpemUoKSkpOwogICAgICAgICAgICAg
aWYgKGNoaWxkLT5oYXNUYWdOYW1lKHFUYWcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tCmluZGV4IDc3OWE0YmMuLjc1ZjdmY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KQEAg
LTI1MywxMyArMjUzLDcgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRp
b25zU3R5bGVTaGVldE92ZXJyaWRlKCkgY29uc3QKICAgICBDb2xvciBjb2xvciA9IGNhcHRpb25z
QmFja2dyb3VuZENvbG9yKCk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkgewogICAgICAgICBj
YXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoIiB2aWRlbzo6Iik7Ci0gICAgICAgIGNh
cHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6OnBhc3ROb2Rlc1No
YWRvd1BzZXVkb0lkKCkpOwotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBl
bmQoJ3snKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKGNzc0Nv
bG9yUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIGNvbG9yKSk7Ci0gICAgICAg
IGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgnfScpOwotICAgICAgICAKLSAgICAg
ICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCIgdmlkZW86OiIpOwotICAgICAg
ICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoVGV4dFRyYWNrQ3VlOjpmdXR1cmVO
b2Rlc1NoYWRvd1BzZXVkb0lkKCkpOworICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVl
dC5hcHBlbmQoVGV4dFRyYWNrQ3VlOjphbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwogICAgICAg
ICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoJ3snKTsKICAgICAgICAgY2FwdGlv
bnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKGNzc0NvbG9yUHJvcGVydHkoQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kQ29sb3IsIGNvbG9yKSk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNo
ZWV0LmFwcGVuZCgnfScpOwo=
</data>
<flag name="commit-queue"
          id="197450"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180465</attachid>
            <date>2012-12-20 20:08:59 -0800</date>
            <delta_ts>2012-12-20 20:36:09 -0800</delta_ts>
            <desc>Proposed fix 0.2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>27786</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MTJlMDZkLi5jM2Y0ZDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTIt
MTkgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDpmdXR1cmUgcHNldWRvIGNsYXNzIGZvciB0aGUgV2ViVlRUIDo6Y3VlIHBzZXVkbyBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmll
ZCB0aGUgdHJhY2sgY3NzIG1hdGNoaW5nIHRlc3QgdG8gY292ZXIgOmZ1dHVyZSBwc2V1ZG8tY2xh
c3MgY2FzZS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5n
LnZ0dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sOgorCiAy
MDEyLTEyLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCByZXBvc2l0aW9uaW5nIG9mIGZpeGVkIGVsZW1lbnRzIG9uIHpvb21pbmcKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLnZ0
dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLnZ0dApp
bmRleCBhNzFiY2FmLi4zMjc0OGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmcudnR0CkBAIC03LDMgKzcsNyBAQCBMb3J1bSBpcHN1
bQogMgogMDA6MDEuMDAwIC0tPiAwMDowMi4wMDAKIDxjLnJlZD5kb2xvciBzaXQgPC9jPjxjLmdy
ZWVuPmFtZXQsIGNvbnNlY3RldHVyIDwvYz48Yy5yZWQyPmFkaXBpc2NpbmcgZWxpdDwvYz4KKwor
MworMDA6MDIuMDAwIC0tPiAwMDowNS4wMDAKKzwwMDowMi4wMDA+PGM+U3VzcGVuZGlzc2UgYWNj
dW1zYW4sIDwvYz48MDA6MDMuMDAwPjxjPm1hdXJpcyBzZWQgPC9jPjwwMDowNC4wMDA+PGM+ZXVp
c21vZCBwaGFyZXRyYTwvYz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4
dAppbmRleCAwZjIzOTUzLi40MDg3YmRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwyOSBA
QAotVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlIGNsYXNz
IG5hbWUKKzEuIFRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRo
ZSBjbGFzcyBuYW1lCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIEVWRU5UKHNlZWtlZCkKIEVYUEVD
VEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAwLCAwKScp
IE9LCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDAs
IDEyOCwgMCknKSBPSwogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3Ig
PT0gJ3JnYigyNTUsIDAsIDApJykgT0sKKworUlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gMi41KQor
RVZFTlQoc2Vla2VkKQorCisKKzIuIFRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHBy
b3Blcmx5IGJ5IHRoZSAnOmZ1dHVyZScgcHNldWRvIGNsYXNzLgorRVhQRUNURUQgKGdldENvbXB1
dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9LCitFWFBF
Q1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDEyOCwgMTI4LCAx
MjgpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdy
Z2IoMTI4LCAxMjgsIDEyOCknKSBPSworCitSVU4odmlkZW8uY3VycmVudFRpbWUgPSAzLjUpCitF
VkVOVChzZWVrZWQpCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9
PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1
ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSworRVhQRUNURUQgKGdldENv
bXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigxMjgsIDEyOCwgMTI4KScpIE9LCisK
K1JVTih2aWRlby5jdXJyZW50VGltZSA9IDQuNSkKK0VWRU5UKHNlZWtlZCkKK0VYUEVDVEVEIChn
ZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBP
SworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUs
IDI1NSwgMjU1KScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xv
ciA9PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLmh0bWwKaW5kZXggZDA0MjI1YS4u
ODAyZjM1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1h
dGNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNo
aW5nLmh0bWwKQEAgLTE3LDIxICsxNyw1MSBAQAogICAgICAgICA8c2NyaXB0PgogCiAgICAgICAg
IHZhciBjdWVOb2RlOwotCisgICAgICAgIHZhciBzZWVrZWRDb3VudCA9IDA7CisgICAgICAgIHZh
ciBpbmZvID0gW1sicmdiKDI1NSwgMCwgMCkiLCAicmdiKDAsIDEyOCwgMCkiLCAicmdiKDI1NSwg
MCwgMCkiXSwKKyAgICAgICAgICAgICAgICAgICAgWyJyZ2IoMjU1LCAyNTUsIDI1NSkiLCAicmdi
KDEyOCwgMTI4LCAxMjgpIiwgInJnYigxMjgsIDEyOCwgMTI4KSJdLAorICAgICAgICAgICAgICAg
ICAgICBbInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2IoMjU1LCAyNTUsIDI1NSkiLCAicmdiKDEy
OCwgMTI4LCAxMjgpIl0sCisgICAgICAgICAgICAgICAgICAgIFsicmdiKDI1NSwgMjU1LCAyNTUp
IiwgInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2IoMjU1LCAyNTUsIDI1NSkiXV07CisgICAgICAg
IAorICAgICAgICBmdW5jdGlvbiBza2lwTm9uRWxlbWVudHMocm9vdCkKKyAgICAgICAgeworICAg
ICAgICAgICAgbmV4dEVsZW1lbnRTaWJsaW5nID0gcm9vdDsKKyAgICAgICAgICAgIHdoaWxlIChu
ZXh0RWxlbWVudFNpYmxpbmcubm9kZVR5cGUgIT0gMSkgeworICAgICAgICAgICAgICAgIG5leHRF
bGVtZW50U2libGluZyA9IG5leHRFbGVtZW50U2libGluZy5uZXh0U2libGluZzsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXh0RWxlbWVudFNpYmxpbmc7CisgICAgICAgIH0K
KyAgICAgICAgCiAgICAgICAgIGZ1bmN0aW9uIHNlZWtlZCgpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ3Bhc3Qtbm9kZXMn
KS5maXJzdENoaWxkOwotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxl
KGN1ZU5vZGUpLmNvbG9yIiwgInJnYigyNTUsIDAsIDApIik7Ci0gICAgICAgICAgICBjdWVOb2Rl
ID0gY3VlTm9kZS5uZXh0U2libGluZzsKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29t
cHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMCwgMTI4LCAwKSIpOwotICAgICAgICAg
ICAgY3VlTm9kZSA9IGN1ZU5vZGUubmV4dFNpYmxpbmc7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCAicmdiKDI1NSwgMCwgMCkiKTsK
LSAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgIGlmICh0ZXN0RW5kZWQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoc2Vla2VkQ291bnQgPT0gMSkg
eworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlxuXG4yLiBUZXN0
IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgJzpmdXR1cmUnIHBz
ZXVkbyBjbGFzcy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY3VlTm9kZSA9IHNr
aXBOb25FbGVtZW50cyh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2Rlcycp
LmZpcnN0Q2hpbGQpOworICAgICAgICAgICAgc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUpOworICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwg
aW5mb1tzZWVrZWRDb3VudF1bMF0pOworICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVt
ZW50cyhjdWVOb2RlLm5leHRTaWJsaW5nKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0
Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRdWzFdKTsKKyAg
ICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHMoY3VlTm9kZS5uZXh0U2libGluZyk7
CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29s
b3IiLCBpbmZvW3NlZWtlZENvdW50XVsyXSk7CisKKyAgICAgICAgICAgIGlmICgrK3NlZWtlZENv
dW50ID09IGluZm8ubGVuZ3RoKQorICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAg
ICAgICAgcnVuKCJ2aWRlby5jdXJyZW50VGltZSA9ICIgKyAodmlkZW8uY3VycmVudFRpbWUgKyAx
KSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBsb2FkZWQo
KQogICAgICAgICB7Ci0gICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRlc3QgdGhhdCBjdWVzIGFy
ZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRoZSBjbGFzcyBuYW1lIik7CisgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIjEuIFRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Bl
cmx5IGJ5IHRoZSBjbGFzcyBuYW1lIik7CiAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7
CiAgICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICcuLi9jb250
ZW50L3Rlc3QnKTsKICAgICAgICAgICAgIHZpZGVvLmlkID0gInRlc3R2aWRlbyI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZTIzMjZhNS4uYTQzM2FhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEy
LTEyLTE5ICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCA6ZnV0dXJlIHBzZXVkbyBjbGFzcyBmb3IgdGhlIFdlYlZUVCA6OmN1ZSBwc2V1ZG8gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1
NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBhcHByb2FjaCBvZiBzaG93aW5nIHBhc3QvZnV0dXJlIG5vZGUg
b2JqZWN0cy4gCisgICAgICAgIEJlZm9yZSB1cHBlci1sZXZlbCBjb250YWluZXJzIHdlcmUgdXNl
ZCB0byBwdXQgcGFzdCBhbmQgZnV0dXJlIG5vZGVzIGluc2lkZS4gU3R5bGVzIHdlcmUgYXBwbGll
ZAorICAgICAgICB0byBjb250YWluZXJzLiBOb3cgc3R5bGVzIGNvdWxkIGJlIGFwcGxpZWQgZGly
ZWN0bHkgdG8gbm9kZXMgYnkgdXNpbmcgOjpjdWUoOmZ1dHVyZSkuCisgICAgICAgIFRoYXQgYWxs
b3dzIHRvIHN0eWxlIGZ1dHVyZS9wYXN0IFdlYlZUVCBub2RlcyBldmVuIGlmIHRoZXkgYXJlIG5l
c3RlZC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0IHdhcyBtb2RpZmllZCB0byBjb3ZlciBuZXcg
Y2FzZXMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOiBhZGRlZCA6ZnV0dXJlIHBz
ZXVkbyBjbGFzcyBzdXBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVk
b0lkKToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAgKiBjc3Mv
Q1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDogZGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOgor
ICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6IGRlZmluZSBzdHlsZSBzaGFyaW5n
IHJ1bGVzIGZvciBXZWJWVFQgb2JqZWN0cy4KKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5j
c3M6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2Rlcyk6
CisgICAgICAgICh2aWRlbzo6Y3VlKDpmdXR1cmUpKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRJc1dlYlZUVE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojppc1dlYlZUVEZ1dHVyZU5v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SXNXZWJWVFRGdXR1cmVOb2RlKToK
KyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICog
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoRWxlbWVudFJhcmVEYXRhKToKKyAgICAg
ICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6
Ok5vZGVSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OmlzV2ViVlRU
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnNldElzV2ViVlRUTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OmlzV2ViVlRURnV0dXJlTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnNldElzV2ViVlRURnV0dXJlTm9kZSk6Cisg
ICAgICAgIChOb2RlUmFyZURhdGEpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvdHJhY2sv
VGV4dFRyYWNrLmg6IGFkZCBhIFdlYlZUVCBub2RlIG9iamVjdCB0eXBlIGVudW0uCisgICAgICAg
IChUZXh0VHJhY2spOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6YWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmdldEN1ZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6c2V0Tm9kZU9iamVjdEZsYWdzKTogZGV0
ZXJtaW5lIGlmIHRoZSBub2RlIGlzIGZ1dHVyZSBvciBwYXN0IGFuZCBtYXJrIGFzIFdlYlZUVCBu
b2RlLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZSk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlUcmVlKToKKyAgICAg
ICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAoVGV4dFRyYWNrQ3VlKToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJWVFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4pOgorICAgICAgICAqIHBhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25V
c2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKToKKwogMjAxMi0x
Mi0xNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlkSGl0UmVs
ZXZhbnRSZXBhaW50ZWRPYmplY3RzQXJlYVRocmVzaG9sZCBzaG91bGQgbm90IHVzZSB0aGUgdmll
d1JlY3Qgc2luY2UgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCA5NTZlNDdmLi5k
Nzg3OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTIyMiw2ICsyMjIsNyBA
QCBQc2V1ZG9JZCBDU1NTZWxlY3Rvcjo6cHNldWRvSWQoUHNldWRvVHlwZSB0eXBlKQogICAgIGNh
c2UgUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudDoKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAg
ICAgY2FzZSBQc2V1ZG9DdWU6CisgICAgY2FzZSBQc2V1ZG9GdXR1cmVDdWU6CiAjZW5kaWYKICAg
ICAgICAgcmV0dXJuIE5PUFNFVURPOwogICAgIGNhc2UgUHNldWRvTm90UGFyc2VkOgpAQCAtMzA3
LDYgKzMwOCw3IEBAIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rv
cjo6UHNldWRvVHlwZT4qIG5hbWVUb1BzZXVkb1R5cGVNYXAoCiAjZW5kaWYKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGN1ZSwg
KCJjdWUoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmdXR1cmVDdWUsICgiZnV0dXJlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2VuZGlmCiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGluUmFuZ2UsICgiaW4tcmFuZ2UiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG91dE9mUmFuZ2UsICgib3V0LW9mLXJhbmdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwpAQCAtMzg1LDYgKzM4Nyw3IEBAIHN0YXRpYyBIYXNoTWFwPEF0b21p
Y1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZT4qIG5hbWVUb1BzZXVkb1R5cGVN
YXAoCiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgIG5hbWVUb1BzZXVk
b1R5cGUtPnNldChjdWUuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvQ3VlKTsKKyAgICAgICAg
bmFtZVRvUHNldWRvVHlwZS0+c2V0KGZ1dHVyZUN1ZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1
ZG9GdXR1cmVDdWUpOwogI2VuZGlmCiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChpblJh
bmdlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0luUmFuZ2UpOwogICAgICAgICBuYW1lVG9Q
c2V1ZG9UeXBlLT5zZXQob3V0T2ZSYW5nZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9PdXRP
ZlJhbmdlKTsKQEAgLTUwNyw2ICs1MTAsOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNl
dWRvVHlwZSgpIGNvbnN0CiAjZW5kaWYKICAgICBjYXNlIFBzZXVkb0luUmFuZ2U6CiAgICAgY2Fz
ZSBQc2V1ZG9PdXRPZlJhbmdlOgorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBjYXNlIFBz
ZXVkb0Z1dHVyZUN1ZToKKyNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIFBzZXVkb0Zp
cnN0UGFnZToKICAgICBjYXNlIFBzZXVkb0xlZnRQYWdlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
aAppbmRleCBkZWZkMzZjLi45N2MyZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAt
MTU4LDYgKzE1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb1dl
YktpdEN1c3RvbUVsZW1lbnQsCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICAgICAgICAg
UHNldWRvQ3VlLAorICAgICAgICAgICAgUHNldWRvRnV0dXJlQ3VlLAogI2VuZGlmCiAgICAgICAg
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggNTdhMWQ5Zi4u
NjhkOGRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTExMjQs
NiArMTEyNCwxMiBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25z
dCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgYwogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnNldENvbnRhaW5z
VmFsaWRpdHlTdHlsZVJ1bGVzKCk7CiAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC0+aXNPdXRP
ZlJhbmdlKCk7CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9GdXR1cmVDdWU6CisgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXNXZWJWVFRG
dXR1cmVOb2RlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5r
bm93bjoKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90UGFyc2VkOgogICAgICAg
ICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGY2ZmYzZDQu
LmJiMGY4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTEyMzYsNiAr
MTIzNiwxNCBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChT
dHlsZWRFbGVtZW50KiBlbGVtZW50KSBjb25zdAogICAgIGlmIChlbGVtZW50LT5pc0xpbmsoKSAm
JiBtX2VsZW1lbnRMaW5rU3RhdGUgIT0gc3R5bGUtPmluc2lkZUxpbmsoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGlmIChlbGVtZW50LT5p
c1dlYlZUVE5vZGUoKSAmJiBtX2VsZW1lbnQtPmlzV2ViVlRUTm9kZSgpICYmIGVsZW1lbnQtPmlz
V2ViVlRURnV0dXJlTm9kZSgpICE9IG1fZWxlbWVudC0+aXNXZWJWVFRGdXR1cmVOb2RlKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBEZW55IHNoYXJpbmcgc3R5bGVzIGJldHdlZW4g
V2ViVlRUIG5vZGVzIGFuZCBub24tV2ViVlRUIG5vZGVzLgorICAgIGlmIChlbGVtZW50LT5pc1dl
YlZUVE5vZGUoKSAhPSAgbV9lbGVtZW50LT5pc1dlYlZUVE5vZGUoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21l
ZGlhQ29udHJvbHMuY3NzCmluZGV4IDAwZWZjYmIuLjNhNDA3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9scy5jc3MKQEAgLTIzNywyNSArMjM3LDE5IEBAIHZpZGVvOjotd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stY29udGFpbmVyIHsKICAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogfQog
Ci12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBhc3Qtbm9kZXMgewordmlkZW86Oi13
ZWJraXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMgewogICAgIGRpc3BsYXk6IGlubGluZTsK
IAogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAgICBwYWRkaW5n
OiAycHggMnB4OwogfQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWZ1dHVyZS1u
b2RlcyB7Ci0gICAgdmlzaWJpbGl0eTogaGlkZGVuOwotICAgIGRpc3BsYXk6IGlubGluZTsKLQot
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKLQotICAgIG1hcmdpbi1s
ZWZ0OiAtMnB4OwotICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDBweDsKLX0KLQogdmlkZW86Oi13
ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CiAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiB9CisK
K3ZpZGVvOjpjdWUoOmZ1dHVyZSkgeworICAgIGNvbG9yOiBncmF5OworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDJkM2FlOGYuLjA4Yzk4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTIyODUsOSArMjI4NSwxOSBAQCBib29sIEVsZW1lbnQ6OmlzV2ViVlRUTm9kZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlzV2ViVlRUTm9k
ZSgpOwogfQogCi12b2lkIEVsZW1lbnQ6OnNldElzV2ViVlRUTm9kZShib29sIGZsYWcpCit2b2lk
IEVsZW1lbnQ6OnNldElzV2ViVlRUTm9kZSgpCiB7Ci0gICAgZW5zdXJlRWxlbWVudFJhcmVEYXRh
KCktPnNldElzV2ViVlRUTm9kZShmbGFnKTsKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+
c2V0SXNXZWJWVFROb2RlKCk7Cit9CisKK2Jvb2wgRWxlbWVudDo6aXNXZWJWVFRGdXR1cmVOb2Rl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVtZW50UmFyZURhdGEo
KS0+aXNXZWJWVFRGdXR1cmVOb2RlKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0SXNXZWJWVFRG
dXR1cmVOb2RlKCkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+c2V0SXNXZWJWVFRG
dXR1cmVOb2RlKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggN2JkN2Q0ZS4u
ZWYwYWNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00MzQsNyArNDM0LDkgQEAgcHVibGljOgog
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGJvb2wgaXNXZWJWVFROb2RlKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoYm9vbCBmbGFnKTsKKyAgICB2b2lkIHNldElzV2Vi
VlRUTm9kZSgpOworICAgIGJvb2wgaXNXZWJWVFRGdXR1cmVOb2RlKCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKTsKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCA1MjYzMTVh
Li4wMDU1MDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC01Nyw2ICs1
Nyw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgdXNpbmcgTm9kZVJh
cmVEYXRhOjppc1dlYlZUVE5vZGU7CiAgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjpzZXRJc1dlYlZU
VE5vZGU7CisgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjppc1dlYlZUVEZ1dHVyZU5vZGU7CisgICAg
dXNpbmcgTm9kZVJhcmVEYXRhOjpzZXRJc1dlYlZUVEZ1dHVyZU5vZGU7CiAjZW5kaWYKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgYm9vbCBjb250YWluc0Z1bGxTY3JlZW5FbGVtZW50
KCkgeyByZXR1cm4gbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50OyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJhcmVEYXRhLmgKaW5kZXggYTU1ZmM5Ny4uMTgxZGIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFy
ZURhdGEuaApAQCAtMjksNiArMjksOSBAQAogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyYXRpb24uaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiVGFnTm9k
ZUxpc3QuaCIKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisjaW5jbHVkZSAiVGV4dFRyYWNrLmgi
CisjZW5kaWYKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtMjU0LDkgKzI1Nyw2IEBAIHB1Ymxp
YzoKICAgICAgICAgLCBtX25lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNo
KGZhbHNlKQogICAgICAgICAsIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHkoZmFsc2UpCiAgICAgICAg
ICwgbV9pc0luQ2FudmFzU3VidHJlZShmYWxzZSkKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0g
ICAgICAgICwgbV9pc1dlYlZUVE5vZGUoZmFsc2UpCi0jZW5kaWYKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgICAgICwgbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50KGZhbHNlKQog
I2VuZGlmCkBAIC0yNzEsNiArMjcxLDkgQEAgcHVibGljOgogICAgICAgICAsIG1fY2hpbGRyZW5B
ZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyhmYWxzZSkKICAgICAgICAgLCBtX2NoaWxkcmVu
QWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMoZmFsc2UpCiAgICAgICAgICwgbV9jaGls
ZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyhmYWxzZSkKKyNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCisgICAgLCBtX1dlYlZUVE5vZGVUeXBlKFRleHRUcmFjazo6V2ViVlRUTm9k
ZVR5cGVOb25lKQorI2VuZGlmCiAgICAgewogICAgIH0KIApAQCAtMzcxLDggKzM3NCwxMCBAQCBw
dWJsaWM6CiAKIHByb3RlY3RlZDoKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgYm9vbCBp
c1dlYlZUVE5vZGUoKSB7IHJldHVybiBtX2lzV2ViVlRUTm9kZTsgfQotICAgIHZvaWQgc2V0SXNX
ZWJWVFROb2RlKGJvb2wgdmFsdWUpIHsgbV9pc1dlYlZUVE5vZGUgPSB2YWx1ZTsgfQorICAgIGJv
b2wgaXNXZWJWVFROb2RlKCkgeyByZXR1cm4gbV9XZWJWVFROb2RlVHlwZSAhPSBUZXh0VHJhY2s6
OldlYlZUVE5vZGVUeXBlTm9uZTsgfQorICAgIHZvaWQgc2V0SXNXZWJWVFROb2RlKCkgeyBtX1dl
YlZUVE5vZGVUeXBlID0gVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZVBhc3Q7IH0KKyAgICBib29s
IGlzV2ViVlRURnV0dXJlTm9kZSgpIHsgcmV0dXJuIG1fV2ViVlRUTm9kZVR5cGUgPT0gVGV4dFRy
YWNrOjpXZWJWVFROb2RlVHlwZUZ1dHVyZTsgfQorICAgIHZvaWQgc2V0SXNXZWJWVFRGdXR1cmVO
b2RlKCkgeyBtX1dlYlZUVE5vZGVUeXBlID0gVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZUZ1dHVy
ZTsgfQogI2VuZGlmCiAgICAgc2hvcnQgbV90YWJJbmRleDsKICAgICB1bnNpZ25lZCBzaG9ydCBt
X2NoaWxkSW5kZXg7CkBAIC0zODAsOSArMzg1LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9u
ZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaCA6IDE7CiAgICAgYm9vbCBt
X3N0eWxlQWZmZWN0ZWRCeUVtcHR5IDogMTsKICAgICBib29sIG1faXNJbkNhbnZhc1N1YnRyZWUg
OiAxOwotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBib29sIG1faXNXZWJWVFROb2RlIDog
MTsKLSNlbmRpZgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIG1fY29udGFp
bnNGdWxsU2NyZWVuRWxlbWVudCA6IDE7CiAjZW5kaWYKQEAgLTQwMCw3ICs0MDIsOSBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMg
OiAxOwogICAgIGJvb2wgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVz
IDogMTsKICAgICBib29sIG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVs
ZXMgOiAxOwotCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIFRleHRUcmFjazo6V2ViVlRU
Tm9kZVR5cGUgbV9XZWJWVFROb2RlVHlwZSA6IDI7CisjZW5kaWYKIHByaXZhdGU6CiAgICAgT3du
UHRyPE5vZGVMaXN0c05vZGVEYXRhPiBtX25vZGVMaXN0czsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IGNkOTRhYjQu
LjU0ZTVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAKQEAgLTExOTUsNyArMTE5NSw3IEBAIE1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1l
bnQoRG9jCiAgICAgLCBtX2ZvbnRTaXplKDApCiB7CiB9Ci0gICAgCisKIHZvaWQgTWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlU3VidHJlZXMoRG9jdW1lbnQqIGRv
Y3VtZW50KQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBj
dWUsICgiY3VlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKaW5kZXggNjM1MDNkYS4uM2RmYWU4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCkBAIC0xMTAsNiArMTEwLDggQEAgcHVibGlj
OgogCiAgICAgZW51bSBUZXh0VHJhY2tUeXBlIHsgVHJhY2tFbGVtZW50LCBBZGRUcmFjaywgSW5C
YW5kIH07CiAgICAgVGV4dFRyYWNrVHlwZSB0cmFja1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Ry
YWNrVHlwZTsgfQorICAgIAorICAgIGVudW0gV2ViVlRUTm9kZVR5cGUge1dlYlZUVE5vZGVUeXBl
Tm9uZSwgV2ViVlRUTm9kZVR5cGVGdXR1cmUsIFdlYlZUVE5vZGVUeXBlUGFzdH07CiAKICAgICBp
bnQgdHJhY2tJbmRleCgpOwogICAgIHZvaWQgaW52YWxpZGF0ZVRyYWNrSW5kZXgoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCA2OWI4YWQ3Li40NWYz
MzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0x
ODMsMTUgKzE4Myw5IEBAIFJlbmRlck9iamVjdCogVGV4dFRyYWNrQ3VlQm94OjpjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi1jb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6cGFz
dE5vZGVzU2hhZG93UHNldWRvSWQoKQorY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWU6
OmFsbE5vZGVzU2hhZG93UHNldWRvSWQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBh
c3Qtbm9kZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgcmV0
dXJuIHN1YnRpdGxlczsKLX0KLQotY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmZ1
dHVyZU5vZGVzU2hhZG93UHNldWRvSWQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWZ1
dHVyZS1ub2RlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VidGl0bGVzLCAoIi13ZWJr
aXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHN1YnRpdGxlczsKIH0KIApAQCAtMjEzLDggKzIwNyw3
IEBAIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGRvdWJsZSBzdGFydCwgZG91YmxlCiAgICAgLCBtX3BhdXNlT25FeGl0KGZhbHNlKQog
ICAgICwgbV9zbmFwVG9MaW5lcyh0cnVlKQogICAgICwgbV9oYXNJbm5lclRpbWVzdGFtcHMoZmFs
c2UpCi0gICAgLCBtX3Bhc3REb2N1bWVudE5vZGVzKEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3Rh
dGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSkpCi0gICAgLCBtX2Z1dHVyZURvY3VtZW50Tm9k
ZXMoSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQp
KSkKKyAgICAsIG1fYWxsRG9jdW1lbnROb2RlcyhIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKHN0YXRp
Y19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQogICAgICwgbV9kaXNwbGF5VHJlZVNob3VsZENo
YW5nZSh0cnVlKQogICAgICwgbV9kaXNwbGF5VHJlZShUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZShz
dGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCksIHRoaXMpKQog
ewpAQCAtNDg4LDEyICs0ODEsNiBAQCB2b2lkIFRleHRUcmFja0N1ZTo6aW52YWxpZGF0ZUN1ZUlu
ZGV4KCkKICAgICBtX2N1ZUluZGV4ID0gaW52YWxpZEN1ZUluZGV4OwogfQogCi12b2lkIFRleHRU
cmFja0N1ZTo6bWFya05vZGVzQXNXZWJWVFROb2RlcyhOb2RlKiByb290KQotewotICAgIGZvciAo
RWxlbWVudCogY2hpbGQgPSBFbGVtZW50VHJhdmVyc2FsOjpmaXJzdFdpdGhpbihyb290KTsgY2hp
bGQ7IGNoaWxkID0gRWxlbWVudFRyYXZlcnNhbDo6bmV4dChjaGlsZCwgcm9vdCkpCi0gICAgICAg
IGNoaWxkLT5zZXRJc1dlYlZUVE5vZGUodHJ1ZSk7Ci19Ci0KIFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gVGV4dFRyYWNrQ3VlOjpnZXRDdWVBc0hUTUwoKQogewogICAgIFJlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBjbG9uZWRGcmFnbWVudDsKQEAgLTUxNiw3ICs1MDMsNiBAQCBQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IFRleHRUcmFja0N1ZTo6Z2V0Q3VlQXNIVE1MKCkKIAogICAg
IGNsb25lZEZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAg
ICBtX2RvY3VtZW50RnJhZ21lbnQtPmNsb25lQ2hpbGROb2RlcyhjbG9uZWRGcmFnbWVudC5nZXQo
KSk7Ci0gICAgbWFya05vZGVzQXNXZWJWVFROb2RlcyhjbG9uZWRGcmFnbWVudC5nZXQoKSk7CiAK
ICAgICByZXR1cm4gY2xvbmVkRnJhZ21lbnQucmVsZWFzZSgpOwogfQpAQCAtNjc2LDUwICs2NjIs
NTQgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OmNhbGN1bGF0ZURpc3BsYXlQYXJhbWV0ZXJzKCkKICAg
ICAvLyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHRoZSBvdGhlciBhc3BlY3RzIG9mIHRoZSBjdWUu
CiAgICAgbV9jb21wdXRlZExpbmVQb3NpdGlvbiA9IGNhbGN1bGF0ZUNvbXB1dGVkTGluZVBvc2l0
aW9uKCk7CiB9CisgICAgCit2b2lkIFRleHRUcmFja0N1ZTo6c2V0Tm9kZU9iamVjdEZsYWdzKE5v
ZGUgKnJvb3QsIGRvdWJsZSBwcmV2aW91c1RpbWVzdGFtcCwgZG91YmxlIG1vdmllVGltZSkKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZXN0YW1wVGFnLCAoQVND
SUlMaXRlcmFsKCJ0aW1lc3RhbXAiKSkpOworICAgIAorICAgIGJvb2wgaXNQYXN0Tm9kZSA9IHRy
dWU7CisgICAgZG91YmxlIGN1cnJlbnRUaW1lc3RhbXAgPSBwcmV2aW91c1RpbWVzdGFtcDsKKyAg
ICBpZiAoY3VycmVudFRpbWVzdGFtcCA+IG1vdmllVGltZSkKKyAgICAgICAgaXNQYXN0Tm9kZSA9
IGZhbHNlOworICAgIAorICAgIGZvciAoTm9kZSogY2hpbGQgPSByb290LT5maXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoY2hpbGQsIHJvb3QpKSB7CisgICAg
ICAgIGlmIChjaGlsZC0+bm9kZU5hbWUoKSA9PSB0aW1lc3RhbXBUYWcpIHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIHBvc2l0aW9uID0gMDsKKyAgICAgICAgICAgIFN0cmluZyB0aW1lc3RhbXAgPSBj
aGlsZC0+bm9kZVZhbHVlKCk7CisgICAgICAgICAgICBkb3VibGUgY3VycmVudFRpbWVzdGFtcCA9
IFdlYlZUVFBhcnNlcjo6Y3JlYXRlKDAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCktPmNvbGxl
Y3RUaW1lU3RhbXAodGltZXN0YW1wLCAmcG9zaXRpb24pOworICAgICAgICAgICAgQVNTRVJUKGN1
cnJlbnRUaW1lc3RhbXAgIT0gLTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY3Vy
cmVudFRpbWVzdGFtcCA+IG1vdmllVGltZSkKKyAgICAgICAgICAgICAgICBpc1Bhc3ROb2RlID0g
ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChjaGlsZC0+aXNFbGVtZW50
Tm9kZSgpKSB7CisgICAgICAgICAgICBpZiAoIWlzUGFzdE5vZGUpCisgICAgICAgICAgICAgICAg
dG9FbGVtZW50KGNoaWxkKS0+c2V0SXNXZWJWVFRGdXR1cmVOb2RlKCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgdG9FbGVtZW50KGNoaWxkKS0+c2V0SXNXZWJWVFROb2RlKCk7
CisgICAgICAgIH0KKyAgICB9Cit9CiAKIHZvaWQgVGV4dFRyYWNrQ3VlOjp1cGRhdGVEaXNwbGF5
VHJlZShmbG9hdCBtb3ZpZVRpbWUpCiB7CiAgICAgLy8gVGhlIGRpc3BsYXkgdHJlZSBtYXkgY29u
dGFpbiBXZWJWVFQgdGltZXN0YW1wIG9iamVjdHMgcmVwcmVzZW50aW5nCiAgICAgLy8gdGltZXN0
YW1wcyAocHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMpLCBhbG9uZyB3aXRoIGRpc3BsYXlhYmxlIG5v
ZGVzLgotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lc3RhbXBUYWcs
IChBU0NJSUxpdGVyYWwoInRpbWVzdGFtcCIpKSk7CiAKICAgICBpZiAoIXRyYWNrKCktPmlzUmVu
ZGVyZWQoKSkKICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgaXNQYXN0Tm9kZSA9IHRydWU7CiAK
LSAgICAvLyBDbGVhciB0aGUgY29udGVudHMgb2YgdGhlIHR3byBzZXRzLgotICAgIG1fZnV0dXJl
RG9jdW1lbnROb2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX2Z1dHVyZURvY3VtZW50Tm9k
ZXMtPnNldFBzZXVkbyhmdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwotCi0gICAgbV9wYXN0
RG9jdW1lbnROb2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX3Bhc3REb2N1bWVudE5vZGVz
LT5zZXRQc2V1ZG8ocGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKSk7CisgICAgLy8gQ2xlYXIgdGhl
IGNvbnRlbnRzIG9mIHRoZSBzZXQuCisgICAgbV9hbGxEb2N1bWVudE5vZGVzLT5yZW1vdmVDaGls
ZHJlbigpOworICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKGFsbE5vZGVzU2hhZG93
UHNldWRvSWQoKSk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHR3byBzZXRzIGNvbnRhaW5pbmcgcGFz
dCBhbmQgZnV0dXJlIFdlYlZUVCBvYmplY3RzLgogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiByZWZlcmVuY2VUcmVlID0gZ2V0Q3VlQXNIVE1MKCk7CiAKLSAgICBpZiAoIW1faGFzSW5uZXJU
aW1lc3RhbXBzKSB7Ci0gICAgICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKHJl
ZmVyZW5jZVRyZWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZm9yIChOb2RlICpj
aGlsZCA9IHJlZmVyZW5jZVRyZWUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5ub2RlTmFtZSgpID09IHRpbWVz
dGFtcFRhZykgewotICAgICAgICAgICAgdW5zaWduZWQgaW50IHBvc2l0aW9uID0gMDsKLSAgICAg
ICAgICAgIFN0cmluZyB0aW1lc3RhbXAgPSBjaGlsZC0+bm9kZVZhbHVlKCk7Ci0KLSAgICAgICAg
ICAgIGRvdWJsZSB0aW1lc3RhbXBUaW1lID0gV2ViVlRUUGFyc2VyOjpjcmVhdGUoMCwgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KS0+Y29sbGVjdFRpbWVTdGFtcCh0aW1lc3RhbXAsICZwb3NpdGlv
bik7Ci0gICAgICAgICAgICBBU1NFUlQodGltZXN0YW1wVGltZSAhPSAtMSk7Ci0KLSAgICAgICAg
ICAgIGlmICh0aW1lc3RhbXBUaW1lID4gbW92aWVUaW1lKQotICAgICAgICAgICAgICAgIGlzUGFz
dE5vZGUgPSBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc1Bhc3ROb2RlKQotICAg
ICAgICAgICAgbV9wYXN0RG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lTm9k
ZSh0cnVlKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX2Z1dHVyZURvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKGNoaWxkLT5jbG9uZU5v
ZGUodHJ1ZSksIEFTU0VSVF9OT19FWENFUFRJT04sIGZhbHNlKTsKLSAgICB9CisgICAgbV9hbGxE
b2N1bWVudE5vZGVzLT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKKyAgICBzZXROb2RlT2Jq
ZWN0RmxhZ3MobV9hbGxEb2N1bWVudE5vZGVzLmdldCgpLCBzdGFydFRpbWUoKSwgbW92aWVUaW1l
KTsKIH0KIAogUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IFRleHRUcmFja0N1ZTo6Z2V0RGlz
cGxheVRyZWUoKQpAQCAtNzQxLDkgKzczMSw4IEBAIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlQm94
PiBUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlUcmVlKCkKICAgICAvLyAnZGlzcGxheScgcHJvcGVy
dHkgaGFzIHRoZSB2YWx1ZSAnaW5saW5lJy4gVGhpcyBpcyB0aGUgV2ViVlRUIGN1ZQogICAgIC8v
IGJhY2tncm91bmQgYm94LgogCi0gICAgLy8gTm90ZTogVGhpcyBpcyBjb250YWluZWQgYnkgZGVm
YXVsdCBpbiBtX3Bhc3REb2N1bWVudE5vZGVzLgotICAgIG1fZGlzcGxheVRyZWUtPmFwcGVuZENo
aWxkKG1fcGFzdERvY3VtZW50Tm9kZXMsIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwotICAg
IG1fZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fZnV0dXJlRG9jdW1lbnROb2RlcywgQVNTRVJU
X05PX0VYQ0VQVElPTiwgdHJ1ZSk7CisgICAgLy8gTm90ZTogVGhpcyBpcyBjb250YWluZWQgYnkg
ZGVmYXVsdCBpbiBtX2FsbERvY3VtZW50Tm9kZXMuCisgICAgbV9kaXNwbGF5VHJlZS0+YXBwZW5k
Q2hpbGQobV9hbGxEb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKIAog
ICAgIC8vIEZJWE1FKEJVRyA3OTkxNik6IFJ1bnMgb2YgY2hpbGRyZW4gb2YgV2ViVlRUIFJ1Ynkg
T2JqZWN0cyB0aGF0IGFyZSBub3QKICAgICAvLyBXZWJWVFQgUnVieSBUZXh0IE9iamVjdHMgbXVz
dCBiZSB3cmFwcGVkIGluIGFub255bW91cyBib3hlcyB3aG9zZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmgKaW5kZXggOGVlZGZjNi4uZWYyYzAyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCkBAIC04MCw4ICs4MCw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgflRleHRUcmFja0N1ZSgpOwogCi0gICAgc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgcGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKTsKLSAgICBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBmdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKCk7CisgICAgc3RhdGljIGNvbnN0
IEF0b21pY1N0cmluZyYgYWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgpOwogCiAgICAgVGV4dFRyYWNr
KiB0cmFjaygpIGNvbnN0OwogICAgIHZvaWQgc2V0VHJhY2soVGV4dFRyYWNrKik7CkBAIC0xMjUs
NyArMTI0LDYgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZUN1ZUluZGV4KCk7CiAKICAg
ICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGdldEN1ZUFzSFRNTCgpOwotICAgIHZvaWQg
bWFya05vZGVzQXNXZWJWVFROb2RlcyhOb2RlKik7CiAKICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0
Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NS
ZWZQdHI8RXZlbnQ+LCBFeGNlcHRpb25Db2RlJik7CkBAIC0xMzYsNiArMTM0LDcgQEAgcHVibGlj
OgogICAgIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlQm94PiBnZXREaXNwbGF5VHJlZSgpOwogICAg
IHZvaWQgdXBkYXRlRGlzcGxheVRyZWUoZmxvYXQpOwogICAgIHZvaWQgcmVtb3ZlRGlzcGxheVRy
ZWUoKTsKKyAgICB2b2lkIHNldE5vZGVPYmplY3RGbGFncyhOb2RlICosIGRvdWJsZSwgZG91Ymxl
KTsKIAogICAgIGludCBjYWxjdWxhdGVDb21wdXRlZExpbmVQb3NpdGlvbigpOwogCkBAIC0yMDcs
OCArMjA2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc25hcFRvTGluZXM7CiAKICAgICBib29s
IG1faGFzSW5uZXJUaW1lc3RhbXBzOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gbV9wYXN0
RG9jdW1lbnROb2RlczsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IG1fZnV0dXJlRG9jdW1l
bnROb2RlczsKKyAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IG1fYWxsRG9jdW1lbnROb2RlczsK
IAogICAgIGJvb2wgbV9kaXNwbGF5VHJlZVNob3VsZENoYW5nZTsKICAgICBSZWZQdHI8VGV4dFRy
YWNrQ3VlQm94PiBtX2Rpc3BsYXlUcmVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJW
VFRQYXJzZXIuY3BwCmluZGV4IGZlZDAzNjkuLjI5N2U1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKQEAgLTM2NCw3ICszNjQsNiBAQCB2b2lkIFdlYlZU
VFBhcnNlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbihEb2N1bWVudCogZG9jdW1lbnQpCiAgICAg
ICAgICAgICBjaGlsZCA9IEhUTUxFbGVtZW50OjpjcmVhdGUocVRhZywgZG9jdW1lbnQpOwogCiAg
ICAgICAgIGlmIChjaGlsZCkgewotICAgICAgICAgICAgY2hpbGQtPnNldElzV2ViVlRUTm9kZSh0
cnVlKTsKICAgICAgICAgICAgIGlmIChtX3Rva2VuLmNsYXNzZXMoKS5zaXplKCkgPiAwKQogICAg
ICAgICAgICAgICAgIGNoaWxkLT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBBdG9taWNTdHJpbmco
bV90b2tlbi5jbGFzc2VzKCkuZGF0YSgpLCBtX3Rva2VuLmNsYXNzZXMoKS5zaXplKCkpKTsKICAg
ICAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZShxVGFnKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQppbmRleCA3NzlhNGJjLi43NWY3
ZmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWFjLm1tCkBAIC0yNTMsMTMgKzI1Myw3IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWFjOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSgpIGNvbnN0CiAgICAgQ29sb3IgY29sb3Ig
PSBjYXB0aW9uc0JhY2tncm91bmRDb2xvcigpOwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpIHsK
ICAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCIgdmlkZW86OiIpOwot
ICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoVGV4dFRyYWNrQ3VlOjpw
YXN0Tm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxl
U2hlZXQuYXBwZW5kKCd7Jyk7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFw
cGVuZChjc3NDb2xvclByb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCBjb2xvcikp
OwotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoJ30nKTsKLSAgICAg
ICAgCi0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgiIHZpZGVvOjoi
KTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRUcmFja0N1
ZTo6ZnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICAgICAgY2FwdGlvbnNPdmVycmlk
ZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRUcmFja0N1ZTo6YWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgp
KTsKICAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCd7Jyk7CiAgICAg
ICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZChjc3NDb2xvclByb3BlcnR5KENT
U1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCBjb2xvcikpOwogICAgICAgICBjYXB0aW9uc092ZXJy
aWRlU3R5bGVTaGVldC5hcHBlbmQoJ30nKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180470</attachid>
            <date>2012-12-20 20:36:09 -0800</date>
            <delta_ts>2012-12-21 14:45:37 -0800</delta_ts>
            <desc>Proposed fix 0.3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>36985</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MTJlMDZkLi5jM2Y0ZDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTIt
MTkgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDpmdXR1cmUgcHNldWRvIGNsYXNzIGZvciB0aGUgV2ViVlRUIDo6Y3VlIHBzZXVkbyBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmll
ZCB0aGUgdHJhY2sgY3NzIG1hdGNoaW5nIHRlc3QgdG8gY292ZXIgOmZ1dHVyZSBwc2V1ZG8tY2xh
c3MgY2FzZS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5n
LnZ0dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sOgorCiAy
MDEyLTEyLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCByZXBvc2l0aW9uaW5nIG9mIGZpeGVkIGVsZW1lbnRzIG9uIHpvb21pbmcKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1p
bm5lci10aW1lc3RhbXBzLnZ0dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdl
YnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBzLnZ0dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzMzNDE5OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9j
YXB0aW9ucy13ZWJ2dHQvY2FwdGlvbnMtaW5uZXItdGltZXN0YW1wcy52dHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxMyArMCwwIEBACi3vu79XRUJWVFQNCi0NCi0xDQotMDA6MDA6MDAuMDAwIC0tPiAw
MDowMDowMC45NTANCi08MDA6MDA6MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJhaW4g
PDAwOjAwOjAwLjcwMD5LYXJhb2tlDQotDQotMg0KLTAwOjAwOjAxLjAwMCAtLT4gMDA6MDA6MDMu
NjAwDQotPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAw
PmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUw
PmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWluDQotDQotMw0KLTAwOjAw
OjAzLjcwMCAtLT4gMDA6MDA6MDQuMjUwDQotPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUgPDAwOjAw
OjA0LjAwMD5SYWluDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlv
bnMtd2VidnR0L3N0eWxpbmcudnR0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMt
d2VidnR0L3N0eWxpbmcudnR0CmluZGV4IGE3MWJjYWYuLjMyNzQ4YzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLnZ0dAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQKQEAgLTcs
MyArNyw3IEBAIExvcnVtIGlwc3VtCiAyCiAwMDowMS4wMDAgLS0+IDAwOjAyLjAwMAogPGMucmVk
PmRvbG9yIHNpdCA8L2M+PGMuZ3JlZW4+YW1ldCwgY29uc2VjdGV0dXIgPC9jPjxjLnJlZDI+YWRp
cGlzY2luZyBlbGl0PC9jPgorCiszCiswMDowMi4wMDAgLS0+IDAwOjA1LjAwMAorPDAwOjAyLjAw
MD48Yz5TdXNwZW5kaXNzZSBhY2N1bXNhbiwgPC9jPjwwMDowMy4wMDA+PGM+bWF1cmlzIHNlZCA8
L2M+PDAwOjA0LjAwMD48Yz5ldWlzbW9kIHBoYXJldHJhPC9jPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1t
YXRjaGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3Mt
bWF0Y2hpbmctZXhwZWN0ZWQudHh0CmluZGV4IDBmMjM5NTMuLjQwODdiZGYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWV4cGVjdGVk
LnR4dApAQCAtMSw4ICsxLDI5IEBACi1UZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBw
cm9wZXJseSBieSB0aGUgY2xhc3MgbmFtZQorMS4gVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1h
dGNoZWQgcHJvcGVybHkgYnkgdGhlIGNsYXNzIG5hbWUKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQog
RVZFTlQoc2Vla2VkKQogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3Ig
PT0gJ3JnYigyNTUsIDAsIDApJykgT0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5v
ZGUpLmNvbG9yID09ICdyZ2IoMCwgMTI4LCAwKScpIE9LCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRT
dHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMCwgMCknKSBPSworCitSVU4odmlkZW8u
Y3VycmVudFRpbWUgPSAyLjUpCitFVkVOVChzZWVrZWQpCisKKworMi4gVGVzdCB0aGF0IGN1ZXMg
YXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlICc6ZnV0dXJlJyBwc2V1ZG8gY2xhc3Mu
CitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwg
MjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9y
ID09ICdyZ2IoMTI4LCAxMjgsIDEyOCknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUo
Y3VlTm9kZSkuY29sb3IgPT0gJ3JnYigxMjgsIDEyOCwgMTI4KScpIE9LCisKK1JVTih2aWRlby5j
dXJyZW50VGltZSA9IDMuNSkKK0VWRU5UKHNlZWtlZCkKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0
eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSworRVhQRUNURUQg
KGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScp
IE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDEy
OCwgMTI4LCAxMjgpJykgT0sKKworUlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gNC41KQorRVZFTlQo
c2Vla2VkKQorRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3Jn
YigyNTUsIDI1NSwgMjU1KScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2Rl
KS5jb2xvciA9PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRl
ZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSwogRU5EIE9G
IFRFU1QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1h
dGNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmcu
aHRtbAppbmRleCBkMDQyMjVhLi44MDJmMzVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay90cmFjay1jc3MtbWF0Y2hpbmcuaHRtbApAQCAtMTcsMjEgKzE3LDUxIEBACiAgICAgICAg
IDxzY3JpcHQ+CiAKICAgICAgICAgdmFyIGN1ZU5vZGU7Ci0KKyAgICAgICAgdmFyIHNlZWtlZENv
dW50ID0gMDsKKyAgICAgICAgdmFyIGluZm8gPSBbWyJyZ2IoMjU1LCAwLCAwKSIsICJyZ2IoMCwg
MTI4LCAwKSIsICJyZ2IoMjU1LCAwLCAwKSJdLAorICAgICAgICAgICAgICAgICAgICBbInJnYigy
NTUsIDI1NSwgMjU1KSIsICJyZ2IoMTI4LCAxMjgsIDEyOCkiLCAicmdiKDEyOCwgMTI4LCAxMjgp
Il0sCisgICAgICAgICAgICAgICAgICAgIFsicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigyNTUs
IDI1NSwgMjU1KSIsICJyZ2IoMTI4LCAxMjgsIDEyOCkiXSwKKyAgICAgICAgICAgICAgICAgICAg
WyJyZ2IoMjU1LCAyNTUsIDI1NSkiLCAicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigyNTUsIDI1
NSwgMjU1KSJdXTsKKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIHNraXBOb25FbGVtZW50cyhy
b290KQorICAgICAgICB7CisgICAgICAgICAgICBuZXh0RWxlbWVudFNpYmxpbmcgPSByb290Owor
ICAgICAgICAgICAgd2hpbGUgKG5leHRFbGVtZW50U2libGluZy5ub2RlVHlwZSAhPSAxKSB7Cisg
ICAgICAgICAgICAgICAgbmV4dEVsZW1lbnRTaWJsaW5nID0gbmV4dEVsZW1lbnRTaWJsaW5nLm5l
eHRTaWJsaW5nOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5leHRFbGVtZW50
U2libGluZzsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkK
ICAgICAgICAgewotICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50
KHZpZGVvLCAncGFzdC1ub2RlcycpLmZpcnN0Q2hpbGQ7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCAicmdiKDI1NSwgMCwgMCkiKTsK
LSAgICAgICAgICAgIGN1ZU5vZGUgPSBjdWVOb2RlLm5leHRTaWJsaW5nOwotICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgInJnYigwLCAx
MjgsIDApIik7Ci0gICAgICAgICAgICBjdWVOb2RlID0gY3VlTm9kZS5uZXh0U2libGluZzsKLSAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIs
ICJyZ2IoMjU1LCAwLCAwKSIpOwotICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAg
aWYgKHRlc3RFbmRlZCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlm
IChzZWVrZWRDb3VudCA9PSAxKSB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsK
KyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiXG5cbjIuIFRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5
IGJ5IHRoZSAnOmZ1dHVyZScgcHNldWRvIGNsYXNzLiIpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50
KHZpZGVvLCAnYWxsLW5vZGVzJykuZmlyc3RDaGlsZCk7CisgICAgICAgICAgICBza2lwTm9uRWxl
bWVudHMoY3VlTm9kZSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5
bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtlZENvdW50XVswXSk7CisgICAgICAgICAgICBj
dWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUubmV4dFNpYmxpbmcpOworICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgaW5mb1tz
ZWVrZWRDb3VudF1bMV0pOworICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyhj
dWVOb2RlLm5leHRTaWJsaW5nKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0
ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRdWzJdKTsKKworICAgICAg
ICAgICAgaWYgKCsrc2Vla2VkQ291bnQgPT0gaW5mby5sZW5ndGgpCisgICAgICAgICAgICAgICAg
ZW5kVGVzdCgpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCIiKTsKKyAgICAgICAgICAgICAgICBydW4oInZpZGVvLmN1cnJlbnRUaW1lID0gIiArICh2
aWRlby5jdXJyZW50VGltZSArIDEpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAg
ICAgIGZ1bmN0aW9uIGxvYWRlZCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlIGNsYXNz
IG5hbWUiKTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiMS4gVGVzdCB0aGF0IGN1ZXMgYXJl
IGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlIGNsYXNzIG5hbWUiKTsKICAgICAgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKICAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZp
bGUoJ3ZpZGVvJywgJy4uL2NvbnRlbnQvdGVzdCcpOwogICAgICAgICAgICAgdmlkZW8uaWQgPSAi
dGVzdHZpZGVvIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1
ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDg5M2I5Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0
YW1wcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBAQAotVGVzdCB0
aGF0IFRleHRUcmFjaydzIGN1ZXMgYXJlIHJlbmRlcmVkIGNvcnJlY3RseSB3aGVuIHRoZXkgY29u
dGFpbiBpbm5lciB0aW1lc3RhbXBzLgotRVZFTlQoY2FucGxheXRocm91Z2gpCi0KLSoqIEZpcnN0
IGN1ZSAoZW1wdHkpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1l
OiAwCi1QYXN0OiAKLUZ1dHVyZTogQ2hvY29sYXRlIFJhaW4gS2FyYW9rZQotQ29tcGxldGU6IDww
MDowMDowMC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkth
cmFva2UKLQotKiogRmlyc3QgY3VlIChvbmUgd29yZCkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBD
dWUgMCAqCi1DdXJyZW50IHRpbWU6IDAuMjUKLVBhc3Q6IENob2NvbGF0ZSAKLUZ1dHVyZTogUmFp
biBLYXJhb2tlCi1Db21wbGV0ZTogPDAwOjAwOjAwLjIwMD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1
MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9rZQotCi0qKiBGaXJzdCBjdWUgKHR3byB3b3Jkcykg
KioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDAuNQotUGFzdDog
Q2hvY29sYXRlIFJhaW4gCi1GdXR1cmU6IEthcmFva2UKLUNvbXBsZXRlOiA8MDA6MDA6MDAuMjAw
PkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJhb2tlCi0KLSoq
IEZpcnN0IGN1ZSAodGhyZWUgd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgot
Q3VycmVudCB0aW1lOiAwLjc1Ci1QYXN0OiBDaG9jb2xhdGUgUmFpbiBLYXJhb2tlCi1GdXR1cmU6
IAotQ29tcGxldGU6IDwwMDowMDowMC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8
MDA6MDA6MDAuNzAwPkthcmFva2UKLQotKiogU2Vjb25kIGN1ZSAoZW1wdHkpICoqCi1FVkVOVChz
ZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAxCi1QYXN0OiAKLUZ1dHVyZTogU29t
ZSBzdGF5IGRyeSBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEu
MjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4y
MDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMu
MjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAob25lIHdvcmQpICoq
Ci1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAxLjI1Ci1QYXN0OiBT
b21lIAotRnV0dXJlOiBzdGF5IGRyeSBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KLUNvbXBsZXRl
OiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5
IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVl
bCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAo
dHdvIHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTog
MS41Ci1QYXN0OiBTb21lIHN0YXkgCi1GdXR1cmU6IGRyeSBhbmQgb3RoZXJzIGZlZWwgdGhlIHBh
aW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDow
MDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDow
MDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQotKiog
U2Vjb25kIGN1ZSAodGhyZWUgd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgot
Q3VycmVudCB0aW1lOiAxLjc1Ci1QYXN0OiBTb21lIHN0YXkgZHJ5IAotRnV0dXJlOiBhbmQgb3Ro
ZXJzIGZlZWwgdGhlIHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAx
LjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40
NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMu
NDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAoc2FtZSBhcyBiZWZvcmUpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAyCi1QYXN0OiBTb21lIHN0YXkgZHJ5IAot
RnV0dXJlOiBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAw
PlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+
YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAw
PnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAoZm91ciB3b3JkcykgKioK
LUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDIuMjUKLVBhc3Q6IFNv
bWUgc3RheSBkcnkgYW5kIAotRnV0dXJlOiBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6
IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkg
PDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVs
IDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlIChm
aXZlIHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTog
Mi41Ci1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgCi1GdXR1cmU6IGZlZWwgdGhlIHBh
aW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDow
MDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDow
MDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQotKiog
U2Vjb25kIGN1ZSAoc2FtZSBhcyBiZWZvcmUpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAg
KgotQ3VycmVudCB0aW1lOiAyLjc1Ci1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgCi1G
dXR1cmU6IGZlZWwgdGhlIHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAw
OjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDow
Mi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6
MDMuNDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAoc2l4IHdvcmRzKSAqKgotRVZFTlQoc2Vla2Vk
KQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMwotUGFzdDogU29tZSBzdGF5IGRyeSBhbmQg
b3RoZXJzIGZlZWwgCi1GdXR1cmU6IHRoZSBwYWluCi1Db21wbGV0ZTogPDAwOjAwOjAxLjIwMD5T
b21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFu
ZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50
aGUgPDAwOjAwOjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKHNldmVuIHdvcmRzKSAqKgot
RVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMy4yNQotUGFzdDogU29t
ZSBzdGF5IGRyeSBhbmQgb3RoZXJzIGZlZWwgdGhlIAotRnV0dXJlOiBwYWluCi1Db21wbGV0ZTog
PDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8
MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwg
PDAwOjAwOjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKGVp
Z2h0IHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTog
My41Ci1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotRnV0dXJl
OiAKLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDow
MDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDow
MDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQotKiog
VGhpcmQgY3VlIChvbmUgd29yZCkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJy
ZW50IHRpbWU6IDMuNzUKLVBhc3Q6IENob2NvbGF0ZSAKLUZ1dHVyZTogUmFpbgotQ29tcGxldGU6
IDwwMDowMDowMy43NTA+Q2hvY29sYXRlIDwwMDowMDowNC4wMDA+UmFpbgotCi0qKiBUaGlyZCBj
dWUgKHR3byB3b3JkcykgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRp
bWU6IDQKLVBhc3Q6IENob2NvbGF0ZSBSYWluCi1GdXR1cmU6IAotQ29tcGxldGU6IDwwMDowMDow
My43NTA+Q2hvY29sYXRlIDwwMDowMDowNC4wMDA+UmFpbgotRU5EIE9GIFRFU1QKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10
aW1lc3RhbXBzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVy
aW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjIzMjliMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUt
cmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11
dGYtOCIgLz4KLQotICAgICAgICA8c2NyaXB0IHNyYz0uLi9tZWRpYS1maWxlLmpzPjwvc2NyaXB0
PgotICAgICAgICA8c2NyaXB0IHNyYz0uLi92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgotICAgICAg
ICA8c2NyaXB0IHNyYz0uLi9tZWRpYS1jb250cm9scy5qcz48L3NjcmlwdD4KLQotICAgICAgICA8
c2NyaXB0PgotCi0gICAgICAgIHZhciB0ZXN0VHJhY2s7Ci0gICAgICAgIHZhciBjdWVEaXNwbGF5
RWxlbWVudDsKLSAgICAgICAgdmFyIGN1ZURpc3BsYXlDb250YWluZXI7Ci0gICAgICAgIHZhciBz
ZWVrZWRDb3VudCA9IDA7Ci0KLSAgICAgICAgdmFyIHRlc3RDYXNlRGVzY3JpcHRpb24gPSBbCi0g
ICAgICAgICAgICAgICAgIkZpcnN0IGN1ZSAoZW1wdHkpIiwKLSAgICAgICAgICAgICAgICAiRmly
c3QgY3VlIChvbmUgd29yZCkiLAotICAgICAgICAgICAgICAgICJGaXJzdCBjdWUgKHR3byB3b3Jk
cykiLAotICAgICAgICAgICAgICAgICJGaXJzdCBjdWUgKHRocmVlIHdvcmRzKSIsCi0gICAgICAg
ICAgICAgICAgIlNlY29uZCBjdWUgKGVtcHR5KSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBj
dWUgKG9uZSB3b3JkKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKHR3byB3b3Jkcyki
LAotICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlICh0aHJlZSB3b3JkcykiLAotICAgICAgICAg
ICAgICAgICJTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9yZSkiLAotICAgICAgICAgICAgICAgICJT
ZWNvbmQgY3VlIChmb3VyIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKGZp
dmUgd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoc2FtZSBhcyBiZWZvcmUp
IiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoc2l4IHdvcmRzKSIsCi0gICAgICAgICAg
ICAgICAgIlNlY29uZCBjdWUgKHNldmVuIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlNlY29u
ZCBjdWUgKGVpZ2h0IHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlRoaXJkIGN1ZSAob25lIHdv
cmQpIiwKLSAgICAgICAgICAgICAgICAiVGhpcmQgY3VlICh0d28gd29yZHMpIgotICAgICAgICBd
OwotCi0gICAgICAgIC8vIEVhY2ggdGVzdCBjYXNlIGlzIGZvdW5kIGJ5IGluY3JlbWVudGluZyB3
aXRoIDAuMjUwIHRoZSBjdXJyZW50IHRpbWUuCi0gICAgICAgIHZhciB0ZXN0Q2FzZVNlZWtUaW1l
ID0gWwotICAgICAgICBdOwotCi0gICAgICAgIHZhciBjdXJyZW50VGVzdENhc2UgPSAwOwotCi0g
ICAgICAgIGZ1bmN0aW9uIHNlZWtlZCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGVzdFRyYWNrLnRyYWNrLmFjdGl2ZUN1ZXMubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgICAgICBjdWVEaXNwbGF5RWxlbWVudCA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50
KHZpZGVvLCAnZGlzcGxheScsIGkpOwotCi0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIi
KTsKLSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiogQ3VlICIgKyBpICsgIiAqIik7Ci0K
LSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkN1cnJlbnQgdGltZTogIiArIE1hdGgucm91
bmQodmlkZW8uY3VycmVudFRpbWUgKiAxMDApIC8gMTAwKTsKLSAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIlBhc3Q6ICIgKyBjdWVEaXNwbGF5RWxlbWVudC5jaGlsZE5vZGVzWzBdLmlubmVy
SFRNTCk7Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJGdXR1cmU6ICIgKyBjdWVEaXNw
bGF5RWxlbWVudC5jaGlsZE5vZGVzWzFdLmlubmVySFRNTCk7Ci0KLSAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIkNvbXBsZXRlOiAiICsgdGVzdFRyYWNrLnRyYWNrLmFjdGl2ZUN1ZXNbaV0u
dGV4dCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJ1bk5leHRUZXN0Q2FzZSgpOwot
ICAgICAgICB9OwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1bk5leHRUZXN0Q2FzZSgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGlmIChjdXJyZW50VGVzdENhc2UgPT0gdGVzdENhc2VEZXNjcmlwdGlv
bi5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBlbmRUZXN0KCk7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwot
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCIqKiAiICsgIHRlc3RDYXNlRGVzY3JpcHRpb25bY3Vy
cmVudFRlc3RDYXNlXSArICIgKioiKTsKLQotICAgICAgICAgICAgdmlkZW8uY3VycmVudFRpbWUg
PSB0ZXN0Q2FzZVNlZWtUaW1lW2N1cnJlbnRUZXN0Q2FzZV07Ci0gICAgICAgICAgICB3YWl0Rm9y
RXZlbnQoJ3NlZWtlZCcsIHNlZWtlZCwgZmFsc2UsIHRydWUpOwotCi0gICAgICAgICAgICBjdXJy
ZW50VGVzdENhc2UrKzsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGxvYWRlZCgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0aGF0IFRleHRUcmFjaydz
IGN1ZXMgYXJlIHJlbmRlcmVkIGNvcnJlY3RseSB3aGVuIHRoZXkgY29udGFpbiBpbm5lciB0aW1l
c3RhbXBzLiIpOwotCi0gICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7Ci0gICAgICAgICAg
ICB0ZXN0VHJhY2sgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0cmFjaycpOwotICAgICAgICAg
ICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnLi4vY29udGVudC90ZXN0Jyk7
Ci0KLSAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICBjdWVEaXNwbGF5Q29udGFpbmVyID0gdGV4dFRyYWNrRGlzcGxh
eUVsZW1lbnQodmlkZW8pOwotCi0gICAgICAgICAgICAgICAgZm9yIChpID0gMC4wOyBpIDwgNC41
MDA7IGkgKz0gMC4yNTApCi0gICAgICAgICAgICAgICAgICAgIHRlc3RDYXNlU2Vla1RpbWUucHVz
aChpKTsKLQotICAgICAgICAgICAgICAgIHJ1bk5leHRUZXN0Q2FzZSgpOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0KLQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJv
ZHkgb25sb2FkPSJsb2FkZWQoKSI+Ci0gICAgICAgIDx2aWRlbyBjb250cm9scz4KLSAgICAgICAg
ICAgIDx0cmFjayBzcmM9ImNhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBz
LnZ0dCIga2luZD0iY2FwdGlvbnMiIGRlZmF1bHQ+Ci0gICAgICAgIDwvdmlkZW8+Ci0gICAgPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUyMzI2YTUuLmE0MzNhYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NCBAQAorMjAxMi0xMi0xOSAgRGltYSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgOmZ1dHVyZSBwc2V1ZG8gY2xhc3MgZm9yIHRoZSBX
ZWJWVFQgOjpjdWUgcHNldWRvIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNTQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgYXBwcm9hY2ggb2Ygc2hv
d2luZyBwYXN0L2Z1dHVyZSBub2RlIG9iamVjdHMuIAorICAgICAgICBCZWZvcmUgdXBwZXItbGV2
ZWwgY29udGFpbmVycyB3ZXJlIHVzZWQgdG8gcHV0IHBhc3QgYW5kIGZ1dHVyZSBub2RlcyBpbnNp
ZGUuIFN0eWxlcyB3ZXJlIGFwcGxpZWQKKyAgICAgICAgdG8gY29udGFpbmVycy4gTm93IHN0eWxl
cyBjb3VsZCBiZSBhcHBsaWVkIGRpcmVjdGx5IHRvIG5vZGVzIGJ5IHVzaW5nIDo6Y3VlKDpmdXR1
cmUpLgorICAgICAgICBUaGF0IGFsbG93cyB0byBzdHlsZSBmdXR1cmUvcGFzdCBXZWJWVFQgbm9k
ZXMgZXZlbiBpZiB0aGV5IGFyZSBuZXN0ZWQuCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdCB3YXMg
bW9kaWZpZWQgdG8gY292ZXIgbmV3IGNhc2VzLgorCisgICAgICAgICogY3NzL0NTU1NlbGVjdG9y
LmNwcDogYWRkZWQgOmZ1dHVyZSBwc2V1ZG8gY2xhc3Mgc3VwcG9ydC4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU1NlbGVjdG9yOjpwc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpuYW1lVG9Qc2V1
ZG9UeXBlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRv
VHlwZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAgICogY3NzL1NlbGVj
dG9yQ2hlY2tlci5jcHA6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2Vy
OjpjaGVja09uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQp
OiBkZWZpbmUgc3R5bGUgc2hhcmluZyBydWxlcyBmb3IgV2ViVlRUIG9iamVjdHMuCisgICAgICAg
ICogY3NzL21lZGlhQ29udHJvbHMuY3NzOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEt
dGV4dC10cmFjay1hbGwtbm9kZXMpOgorICAgICAgICAodmlkZW86OmN1ZSg6ZnV0dXJlKSk6Cisg
ICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0
SXNXZWJWVFROb2RlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6aXNXZWJWVFRGdXR1cmVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNl
dElzV2ViVlRURnV0dXJlTm9kZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAg
KEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKEVs
ZW1lbnRSYXJlRGF0YSk6CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5oOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpOb2RlUmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJhcmVEYXRhOjppc1dlYlZUVE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVE
YXRhOjpzZXRJc1dlYlZUVE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpp
c1dlYlZUVEZ1dHVyZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpzZXRJ
c1dlYlZUVEZ1dHVyZU5vZGUpOgorICAgICAgICAoTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5oOiBhZGQgYSBXZWJWVFQgbm9kZSBvYmpl
Y3QgdHlwZSBlbnVtLgorICAgICAgICAoVGV4dFRyYWNrKToKKyAgICAgICAgKiBodG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmFsbE5v
ZGVzU2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpUZXh0
VHJhY2tDdWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpnZXRDdWVBc0hUTUwp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnNl
dE5vZGVPYmplY3RGbGFncyk6IGRldGVybWluZSBpZiB0aGUgbm9kZSBpcyBmdXR1cmUgb3IgcGFz
dCBhbmQgbWFyayBhcyBXZWJWVFQgbm9kZS4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1
ZTo6dXBkYXRlRGlzcGxheVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpn
ZXREaXNwbGF5VHJlZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaDoKKyAg
ICAgICAgKFRleHRUcmFja0N1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9XZWJWVFRQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb25zdHJ1Y3RUcmVlRnJvbVRv
a2VuKToKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1N0eWxlU2hl
ZXRPdmVycmlkZSk6CisKIDIwMTItMTItMTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgogCiAgICAgICAgIERpZEhpdFJlbGV2YW50UmVwYWludGVkT2JqZWN0c0FyZWFUaHJlc2hvbGQg
c2hvdWxkIG5vdCB1c2UgdGhlIHZpZXdSZWN0IHNpbmNlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5jcHAKaW5kZXggOTU2ZTQ3Zi4uZDc4NzhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwCkBAIC0yMjIsNiArMjIyLDcgQEAgUHNldWRvSWQgQ1NTU2VsZWN0b3I6OnBzZXVkb0lkKFBz
ZXVkb1R5cGUgdHlwZSkKICAgICBjYXNlIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ6CiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgUHNldWRvQ3VlOgorICAgIGNhc2UgUHNldWRv
RnV0dXJlQ3VlOgogI2VuZGlmCiAgICAgICAgIHJldHVybiBOT1BTRVVETzsKICAgICBjYXNlIFBz
ZXVkb05vdFBhcnNlZDoKQEAgLTMwNyw2ICszMDgsNyBAQCBzdGF0aWMgSGFzaE1hcDxBdG9taWNT
dHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlTWFw
KAogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBjdWUsICgiY3VlKCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZnV0dXJl
Q3VlLCAoImZ1dHVyZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICNl
bmRpZgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpblJhbmdlLCAoImlu
LXJhbmdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvdXRPZlJhbmdlLCAoIm91dC1vZi1yYW5nZSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKQEAgLTM4NSw2ICszODcsNyBA
QCBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5
cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlTWFwKAogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoY3VlLmltcGwoKSwgQ1NTU2VsZWN0b3I6
OlBzZXVkb0N1ZSk7CisgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChmdXR1cmVDdWUuaW1w
bCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvRnV0dXJlQ3VlKTsKICNlbmRpZgogICAgICAgICBuYW1l
VG9Qc2V1ZG9UeXBlLT5zZXQoaW5SYW5nZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9JblJh
bmdlKTsKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KG91dE9mUmFuZ2UuaW1wbCgpLCBD
U1NTZWxlY3Rvcjo6UHNldWRvT3V0T2ZSYW5nZSk7CkBAIC01MDcsNiArNTEwLDkgQEAgdm9pZCBD
U1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogI2VuZGlmCiAgICAgY2FzZSBQ
c2V1ZG9JblJhbmdlOgogICAgIGNhc2UgUHNldWRvT3V0T2ZSYW5nZToKKyNpZiBFTkFCTEUoVklE
RU9fVFJBQ0spCisgICAgY2FzZSBQc2V1ZG9GdXR1cmVDdWU6CisjZW5kaWYKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQc2V1ZG9GaXJzdFBhZ2U6CiAgICAgY2FzZSBQc2V1ZG9MZWZ0UGFnZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5kZXggZGVmZDM2Yy4uOTdjMmViNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmgKQEAgLTE1OCw2ICsxNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50LAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICAgICAgICAgIFBzZXVkb0N1ZSwKKyAgICAgICAgICAgIFBzZXVkb0Z1dHVy
ZUN1ZSwKICNlbmRpZgogICAgICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCmluZGV4IDU3YTFkOWYuLjY4ZDhkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXIuY3BwCkBAIC0xMTI0LDYgKzExMjQsMTIgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6
OmNoZWNrT25lU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQs
IGMKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBlbGVtZW50LT5k
b2N1bWVudCgpLT5zZXRDb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpOwogICAgICAgICAgICAg
cmV0dXJuIGVsZW1lbnQtPmlzT3V0T2ZSYW5nZSgpOworI2lmIEVOQUJMRShWSURFT19UUkFDSykK
KyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnV0dXJlQ3VlOgorICAgICAgICAgICAg
aWYgKGVsZW1lbnQtPmlzV2ViVlRURnV0dXJlTm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd246CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb05vdFBhcnNlZDoKICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAppbmRleCBmNmZmM2Q0Li5iYjBmODA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCkBAIC0xMjM2LDYgKzEyMzYsMTQgQEAgYm9vbCBTdHlsZVJlc29sdmVyOjpjYW5T
aGFyZVN0eWxlV2l0aEVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCkgY29uc3QKICAgICBp
ZiAoZWxlbWVudC0+aXNMaW5rKCkgJiYgbV9lbGVtZW50TGlua1N0YXRlICE9IHN0eWxlLT5pbnNp
ZGVMaW5rKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIEVOQUJMRShWSURFT19UUkFD
SykKKyAgICBpZiAoZWxlbWVudC0+aXNXZWJWVFROb2RlKCkgJiYgbV9lbGVtZW50LT5pc1dlYlZU
VE5vZGUoKSAmJiBlbGVtZW50LT5pc1dlYlZUVEZ1dHVyZU5vZGUoKSAhPSBtX2VsZW1lbnQtPmlz
V2ViVlRURnV0dXJlTm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gRGVueSBz
aGFyaW5nIHN0eWxlcyBiZXR3ZWVuIFdlYlZUVCBub2RlcyBhbmQgbm9uLVdlYlZUVCBub2Rlcy4K
KyAgICBpZiAoZWxlbWVudC0+aXNXZWJWVFROb2RlKCkgIT0gIG1fZWxlbWVudC0+aXNXZWJWVFRO
b2RlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwppbmRleCAwMGVmY2JiLi4zYTQw
NzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCkBAIC0yMzcsMjUgKzIzNywx
OSBAQCB2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciB7CiAgICAgLXdl
YmtpdC1ib3gtZmxleDogMTsKIH0KIAotdmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1w
YXN0LW5vZGVzIHsKK3ZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stYWxsLW5vZGVzIHsK
ICAgICBkaXNwbGF5OiBpbmxpbmU7CiAKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAs
IDAsIDAuOCk7CiAgICAgcGFkZGluZzogMnB4IDJweDsKIH0KIAotdmlkZW86Oi13ZWJraXQtbWVk
aWEtdGV4dC10cmFjay1mdXR1cmUtbm9kZXMgewotICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKLSAg
ICBkaXNwbGF5OiBpbmxpbmU7Ci0KLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAs
IDAuOCk7Ci0KLSAgICBtYXJnaW4tbGVmdDogLTJweDsKLSAgICBwYWRkaW5nOiAycHggMnB4IDJw
eCAwcHg7Ci19Ci0KIHZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSB7CiAg
ICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgd2hpdGUt
c3BhY2U6IHByZS13cmFwOwogfQorCit2aWRlbzo6Y3VlKDpmdXR1cmUpIHsKKyAgICBjb2xvcjog
Z3JheTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAyZDNhZThmLi4wOGM5ODc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yMjg1LDkgKzIyODUsMTkgQEAgYm9vbCBFbGVtZW50Ojpp
c1dlYlZUVE5vZGUoKSBjb25zdAogICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIGVsZW1lbnRS
YXJlRGF0YSgpLT5pc1dlYlZUVE5vZGUoKTsKIH0KIAotdm9pZCBFbGVtZW50OjpzZXRJc1dlYlZU
VE5vZGUoYm9vbCBmbGFnKQordm9pZCBFbGVtZW50OjpzZXRJc1dlYlZUVE5vZGUoKQogewotICAg
IGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLT5zZXRJc1dlYlZUVE5vZGUoZmxhZyk7CisgICAgZW5z
dXJlRWxlbWVudFJhcmVEYXRhKCktPnNldElzV2ViVlRUTm9kZSgpOworfQorCitib29sIEVsZW1l
bnQ6OmlzV2ViVlRURnV0dXJlTm9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRh
KCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlzV2ViVlRURnV0dXJlTm9kZSgpOworfQorCit2b2lk
IEVsZW1lbnQ6OnNldElzV2ViVlRURnV0dXJlTm9kZSgpCit7CisgICAgZW5zdXJlRWxlbWVudFJh
cmVEYXRhKCktPnNldElzV2ViVlRURnV0dXJlTm9kZSgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCmluZGV4IDdiZDdkNGUuLmVmMGFjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNDM0
LDcgKzQzNCw5IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBib29s
IGlzV2ViVlRUTm9kZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0SXNXZWJWVFROb2RlKGJvb2wgZmxh
Zyk7CisgICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoKTsKKyAgICBib29sIGlzV2ViVlRURnV0dXJl
Tm9kZSgpIGNvbnN0OworICAgIHZvaWQgc2V0SXNXZWJWVFRGdXR1cmVOb2RlKCk7CiAjZW5kaWYK
ICAgICAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJh
cmVEYXRhLmgKaW5kZXggNTI2MzE1YS4uMDA1NTA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
UmFyZURhdGEuaApAQCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQogICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6aXNXZWJWVFROb2RlOwogICAgIHVzaW5nIE5v
ZGVSYXJlRGF0YTo6c2V0SXNXZWJWVFROb2RlOworICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6aXNX
ZWJWVFRGdXR1cmVOb2RlOworICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6c2V0SXNXZWJWVFRGdXR1
cmVOb2RlOwogI2VuZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgY29u
dGFpbnNGdWxsU2NyZWVuRWxlbWVudCgpIHsgcmV0dXJuIG1fY29udGFpbnNGdWxsU2NyZWVuRWxl
bWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IGE1NWZjOTcuLjE4MWRiMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTI5LDYgKzI5LDkgQEAKICNpbmNsdWRl
ICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFt
ZS5oIgogI2luY2x1ZGUgIlRhZ05vZGVMaXN0LmgiCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQor
I2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2VuZGlmCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAg
LTI1NCw5ICsyNTcsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9uZWVkc0ZvY3VzQXBwZWFyYW5j
ZVVwZGF0ZVNvb25BZnRlckF0dGFjaChmYWxzZSkKICAgICAgICAgLCBtX3N0eWxlQWZmZWN0ZWRC
eUVtcHR5KGZhbHNlKQogICAgICAgICAsIG1faXNJbkNhbnZhc1N1YnRyZWUoZmFsc2UpCi0jaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICAsIG1faXNXZWJWVFROb2RlKGZhbHNlKQotI2Vu
ZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICAgICAsIG1fY29udGFpbnNGdWxs
U2NyZWVuRWxlbWVudChmYWxzZSkKICNlbmRpZgpAQCAtMjcxLDYgKzI3MSw5IEBAIHB1YmxpYzoK
ICAgICAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoZmFsc2Up
CiAgICAgICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKGZh
bHNlKQogICAgICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVs
ZXMoZmFsc2UpCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgICwgbV9XZWJWVFROb2RlVHlw
ZShUZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlTm9uZSkKKyNlbmRpZgogICAgIHsKICAgICB9CiAK
QEAgLTM3MSw4ICszNzQsMTAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQotICAgIGJvb2wgaXNXZWJWVFROb2RlKCkgeyByZXR1cm4gbV9pc1dlYlZUVE5v
ZGU7IH0KLSAgICB2b2lkIHNldElzV2ViVlRUTm9kZShib29sIHZhbHVlKSB7IG1faXNXZWJWVFRO
b2RlID0gdmFsdWU7IH0KKyAgICBib29sIGlzV2ViVlRUTm9kZSgpIHsgcmV0dXJuIG1fV2ViVlRU
Tm9kZVR5cGUgIT0gVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZU5vbmU7IH0KKyAgICB2b2lkIHNl
dElzV2ViVlRUTm9kZSgpIHsgbV9XZWJWVFROb2RlVHlwZSA9IFRleHRUcmFjazo6V2ViVlRUTm9k
ZVR5cGVQYXN0OyB9CisgICAgYm9vbCBpc1dlYlZUVEZ1dHVyZU5vZGUoKSB7IHJldHVybiBtX1dl
YlZUVE5vZGVUeXBlID09IFRleHRUcmFjazo6V2ViVlRUTm9kZVR5cGVGdXR1cmU7IH0KKyAgICB2
b2lkIHNldElzV2ViVlRURnV0dXJlTm9kZSgpIHsgbV9XZWJWVFROb2RlVHlwZSA9IFRleHRUcmFj
azo6V2ViVlRUTm9kZVR5cGVGdXR1cmU7IH0KICNlbmRpZgogICAgIHNob3J0IG1fdGFiSW5kZXg7
CiAgICAgdW5zaWduZWQgc2hvcnQgbV9jaGlsZEluZGV4OwpAQCAtMzgwLDkgKzM4NSw2IEBAIHBy
b3RlY3RlZDoKICAgICBib29sIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJB
dHRhY2ggOiAxOwogICAgIGJvb2wgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eSA6IDE7CiAgICAgYm9v
bCBtX2lzSW5DYW52YXNTdWJ0cmVlIDogMTsKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAg
Ym9vbCBtX2lzV2ViVlRUTm9kZSA6IDE7Ci0jZW5kaWYKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCiAgICAgYm9vbCBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQgOiAxOwogI2VuZGlmCkBA
IC00MDAsNyArNDAyLDkgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9jaGlsZHJlbkFmZmVjdGVk
QnlEaXJlY3RBZGphY2VudFJ1bGVzIDogMTsKICAgICBib29sIG1fY2hpbGRyZW5BZmZlY3RlZEJ5
Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7CiAgICAgYm9vbCBtX2NoaWxkcmVuQWZmZWN0ZWRC
eUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzIDogMTsKLQorI2lmIEVOQUJMRShWSURFT19UUkFDSykK
KyAgICBUZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlIG1fV2ViVlRUTm9kZVR5cGUgOiAyOworI2Vu
ZGlmCiBwcml2YXRlOgogICAgIE93blB0cjxOb2RlTGlzdHNOb2RlRGF0YT4gbV9ub2RlTGlzdHM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcAppbmRleCBjZDk0YWI0Li41NGU1YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC0xMTk1LDcgKzExOTUs
NyBAQCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50KERvYwogICAgICwgbV9mb250U2l6ZSgwKQogewogfQot
ICAgIAorCiB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZVN1YnRyZWVzKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgY3VlLCAoImN1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IDYz
NTAzZGEuLjNkZmFlODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAt
MTEwLDYgKzExMCw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gVGV4dFRyYWNrVHlwZSB7IFRyYWNr
RWxlbWVudCwgQWRkVHJhY2ssIEluQmFuZCB9OwogICAgIFRleHRUcmFja1R5cGUgdHJhY2tUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV90cmFja1R5cGU7IH0KKyAgICAKKyAgICBlbnVtIFdlYlZUVE5v
ZGVUeXBlIHtXZWJWVFROb2RlVHlwZU5vbmUsIFdlYlZUVE5vZGVUeXBlRnV0dXJlLCBXZWJWVFRO
b2RlVHlwZVBhc3R9OwogCiAgICAgaW50IHRyYWNrSW5kZXgoKTsKICAgICB2b2lkIGludmFsaWRh
dGVUcmFja0luZGV4KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHAKaW5kZXggNjliOGFkNy4uNDVmMzM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrQ3VlLmNwcApAQCAtMTgzLDE1ICsxODMsOSBAQCBSZW5kZXJPYmplY3QqIFRleHRU
cmFja0N1ZUJveDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHls
ZSopCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotY29uc3QgQXRvbWljU3Ry
aW5nJiBUZXh0VHJhY2tDdWU6OnBhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkKCkKK2NvbnN0IEF0b21p
Y1N0cmluZyYgVGV4dFRyYWNrQ3VlOjphbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VidGl0bGVzLCAoIi13ZWJr
aXQtbWVkaWEtdGV4dC10cmFjay1wYXN0LW5vZGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwotICAgIHJldHVybiBzdWJ0aXRsZXM7Ci19Ci0KLWNvbnN0IEF0b21pY1N0
cmluZyYgVGV4dFRyYWNrQ3VlOjpmdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKCkKLXsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VidGl0bGVzLCAoIi13ZWJr
aXQtbWVkaWEtdGV4dC10cmFjay1mdXR1cmUtbm9kZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHN1YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stYWxsLW5vZGVzIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzdWJ0aXRsZXM7
CiB9CiAKQEAgLTIxMyw4ICsyMDcsNyBAQCBUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBkb3VibGUgc3RhcnQsIGRvdWJsZQogICAgICwg
bV9wYXVzZU9uRXhpdChmYWxzZSkKICAgICAsIG1fc25hcFRvTGluZXModHJ1ZSkKICAgICAsIG1f
aGFzSW5uZXJUaW1lc3RhbXBzKGZhbHNlKQotICAgICwgbV9wYXN0RG9jdW1lbnROb2RlcyhIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQotICAg
ICwgbV9mdXR1cmVEb2N1bWVudE5vZGVzKEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nh
c3Q8RG9jdW1lbnQqPihjb250ZXh0KSkpCisgICAgLCBtX2FsbERvY3VtZW50Tm9kZXMoSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpKSkKICAgICAs
IG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2UodHJ1ZSkKICAgICAsIG1fZGlzcGxheVRyZWUoVGV4
dFRyYWNrQ3VlQm94OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpLCB0aGlzKSkKIHsKQEAgLTQ4OCwxMiArNDgxLDYgQEAgdm9pZCBUZXh0VHJh
Y2tDdWU6OmludmFsaWRhdGVDdWVJbmRleCgpCiAgICAgbV9jdWVJbmRleCA9IGludmFsaWRDdWVJ
bmRleDsKIH0KIAotdm9pZCBUZXh0VHJhY2tDdWU6Om1hcmtOb2Rlc0FzV2ViVlRUTm9kZXMoTm9k
ZSogcm9vdCkKLXsKLSAgICBmb3IgKEVsZW1lbnQqIGNoaWxkID0gRWxlbWVudFRyYXZlcnNhbDo6
Zmlyc3RXaXRoaW4ocm9vdCk7IGNoaWxkOyBjaGlsZCA9IEVsZW1lbnRUcmF2ZXJzYWw6Om5leHQo
Y2hpbGQsIHJvb3QpKQotICAgICAgICBjaGlsZC0+c2V0SXNXZWJWVFROb2RlKHRydWUpOwotfQot
CiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFRleHRUcmFja0N1ZTo6Z2V0Q3VlQXNIVE1M
KCkKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY2xvbmVkRnJhZ21lbnQ7CkBAIC01
MTYsNyArNTAzLDYgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBUZXh0VHJhY2tDdWU6
OmdldEN1ZUFzSFRNTCgpCiAKICAgICBjbG9uZWRGcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9kb2N1bWVudEZyYWdtZW50LT5jbG9uZUNoaWxkTm9k
ZXMoY2xvbmVkRnJhZ21lbnQuZ2V0KCkpOwotICAgIG1hcmtOb2Rlc0FzV2ViVlRUTm9kZXMoY2xv
bmVkRnJhZ21lbnQuZ2V0KCkpOwogCiAgICAgcmV0dXJuIGNsb25lZEZyYWdtZW50LnJlbGVhc2Uo
KTsKIH0KQEAgLTY3Niw1MCArNjYyLDU0IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpjYWxjdWxhdGVE
aXNwbGF5UGFyYW1ldGVycygpCiAgICAgLy8gaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiB0aGUgb3Ro
ZXIgYXNwZWN0cyBvZiB0aGUgY3VlLgogICAgIG1fY29tcHV0ZWRMaW5lUG9zaXRpb24gPSBjYWxj
dWxhdGVDb21wdXRlZExpbmVQb3NpdGlvbigpOwogfQorICAgIAordm9pZCBUZXh0VHJhY2tDdWU6
OnNldE5vZGVPYmplY3RGbGFncyhOb2RlICpyb290LCBkb3VibGUgcHJldmlvdXNUaW1lc3RhbXAs
IGRvdWJsZSBtb3ZpZVRpbWUpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIHRpbWVzdGFtcFRhZywgKEFTQ0lJTGl0ZXJhbCgidGltZXN0YW1wIikpKTsKKyAgICAKKyAg
ICBib29sIGlzUGFzdE5vZGUgPSB0cnVlOworICAgIGRvdWJsZSBjdXJyZW50VGltZXN0YW1wID0g
cHJldmlvdXNUaW1lc3RhbXA7CisgICAgaWYgKGN1cnJlbnRUaW1lc3RhbXAgPiBtb3ZpZVRpbWUp
CisgICAgICAgIGlzUGFzdE5vZGUgPSBmYWxzZTsKKyAgICAKKyAgICBmb3IgKE5vZGUqIGNoaWxk
ID0gcm9vdC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBOb2RlVHJhdmVyc2FsOjpuZXh0
KGNoaWxkLCByb290KSkgeworICAgICAgICBpZiAoY2hpbGQtPm5vZGVOYW1lKCkgPT0gdGltZXN0
YW1wVGFnKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBwb3NpdGlvbiA9IDA7CisgICAgICAgICAg
ICBTdHJpbmcgdGltZXN0YW1wID0gY2hpbGQtPm5vZGVWYWx1ZSgpOworICAgICAgICAgICAgZG91
YmxlIGN1cnJlbnRUaW1lc3RhbXAgPSBXZWJWVFRQYXJzZXI6OmNyZWF0ZSgwLCBtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpLT5jb2xsZWN0VGltZVN0YW1wKHRpbWVzdGFtcCwgJnBvc2l0aW9uKTsK
KyAgICAgICAgICAgIEFTU0VSVChjdXJyZW50VGltZXN0YW1wICE9IC0xKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgaWYgKGN1cnJlbnRUaW1lc3RhbXAgPiBtb3ZpZVRpbWUpCisgICAgICAg
ICAgICAgICAgaXNQYXN0Tm9kZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBpZiAoY2hpbGQtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICAgICAgaWYgKCFpc1Bhc3RO
b2RlKQorICAgICAgICAgICAgICAgIHRvRWxlbWVudChjaGlsZCktPnNldElzV2ViVlRURnV0dXJl
Tm9kZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRvRWxlbWVudChjaGls
ZCktPnNldElzV2ViVlRUTm9kZSgpOworICAgICAgICB9CisgICAgfQorfQogCiB2b2lkIFRleHRU
cmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUoZmxvYXQgbW92aWVUaW1lKQogewogICAgIC8vIFRo
ZSBkaXNwbGF5IHRyZWUgbWF5IGNvbnRhaW4gV2ViVlRUIHRpbWVzdGFtcCBvYmplY3RzIHJlcHJl
c2VudGluZwogICAgIC8vIHRpbWVzdGFtcHMgKHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zKSwgYWxv
bmcgd2l0aCBkaXNwbGF5YWJsZSBub2Rlcy4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgdGltZXN0YW1wVGFnLCAoQVNDSUlMaXRlcmFsKCJ0aW1lc3RhbXAiKSkpOwogCiAg
ICAgaWYgKCF0cmFjaygpLT5pc1JlbmRlcmVkKCkpCiAgICAgICByZXR1cm47CiAKLSAgICBib29s
IGlzUGFzdE5vZGUgPSB0cnVlOwogCi0gICAgLy8gQ2xlYXIgdGhlIGNvbnRlbnRzIG9mIHRoZSB0
d28gc2V0cy4KLSAgICBtX2Z1dHVyZURvY3VtZW50Tm9kZXMtPnJlbW92ZUNoaWxkcmVuKCk7Ci0g
ICAgbV9mdXR1cmVEb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8oZnV0dXJlTm9kZXNTaGFkb3dQc2V1
ZG9JZCgpKTsKLQotICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPnJlbW92ZUNoaWxkcmVuKCk7Ci0g
ICAgbV9wYXN0RG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKHBhc3ROb2Rlc1NoYWRvd1BzZXVkb0lk
KCkpOworICAgIC8vIENsZWFyIHRoZSBjb250ZW50cyBvZiB0aGUgc2V0LgorICAgIG1fYWxsRG9j
dW1lbnROb2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICBtX2FsbERvY3VtZW50Tm9kZXMtPnNl
dFBzZXVkbyhhbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB0
d28gc2V0cyBjb250YWluaW5nIHBhc3QgYW5kIGZ1dHVyZSBXZWJWVFQgb2JqZWN0cy4KICAgICBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gcmVmZXJlbmNlVHJlZSA9IGdldEN1ZUFzSFRNTCgpOwog
Ci0gICAgaWYgKCFtX2hhc0lubmVyVGltZXN0YW1wcykgewotICAgICAgICBtX3Bhc3REb2N1bWVu
dE5vZGVzLT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGZvciAoTm9kZSAqY2hpbGQgPSByZWZlcmVuY2VUcmVlLT5maXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChjaGls
ZC0+bm9kZU5hbWUoKSA9PSB0aW1lc3RhbXBUYWcpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBwb3NpdGlvbiA9IDA7Ci0gICAgICAgICAgICBTdHJpbmcgdGltZXN0YW1wID0gY2hpbGQtPm5v
ZGVWYWx1ZSgpOwotCi0gICAgICAgICAgICBkb3VibGUgdGltZXN0YW1wVGltZSA9IFdlYlZUVFBh
cnNlcjo6Y3JlYXRlKDAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCktPmNvbGxlY3RUaW1lU3Rh
bXAodGltZXN0YW1wLCAmcG9zaXRpb24pOwotICAgICAgICAgICAgQVNTRVJUKHRpbWVzdGFtcFRp
bWUgIT0gLTEpOwotCi0gICAgICAgICAgICBpZiAodGltZXN0YW1wVGltZSA+IG1vdmllVGltZSkK
LSAgICAgICAgICAgICAgICBpc1Bhc3ROb2RlID0gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoaXNQYXN0Tm9kZSkKLSAgICAgICAgICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPmFwcGVu
ZENoaWxkKGNoaWxkLT5jbG9uZU5vZGUodHJ1ZSksIEFTU0VSVF9OT19FWENFUFRJT04sIGZhbHNl
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9mdXR1cmVEb2N1bWVudE5vZGVzLT5hcHBl
bmRDaGlsZChjaGlsZC0+Y2xvbmVOb2RlKHRydWUpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBmYWxz
ZSk7Ci0gICAgfQorICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQocmVmZXJlbmNl
VHJlZSk7CisgICAgc2V0Tm9kZU9iamVjdEZsYWdzKG1fYWxsRG9jdW1lbnROb2Rlcy5nZXQoKSwg
c3RhcnRUaW1lKCksIG1vdmllVGltZSk7CiB9CiAKIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlQm94
PiBUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlUcmVlKCkKQEAgLTc0MSw5ICs3MzEsOCBAQCBQYXNz
UmVmUHRyPFRleHRUcmFja0N1ZUJveD4gVGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCiAg
ICAgLy8gJ2Rpc3BsYXknIHByb3BlcnR5IGhhcyB0aGUgdmFsdWUgJ2lubGluZScuIFRoaXMgaXMg
dGhlIFdlYlZUVCBjdWUKICAgICAvLyBiYWNrZ3JvdW5kIGJveC4KIAotICAgIC8vIE5vdGU6IFRo
aXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1bHQgaW4gbV9wYXN0RG9jdW1lbnROb2Rlcy4KLSAgICBt
X2Rpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX3Bhc3REb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9f
RVhDRVBUSU9OLCB0cnVlKTsKLSAgICBtX2Rpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2Z1dHVy
ZURvY3VtZW50Tm9kZXMsIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOworICAgIC8vIE5vdGU6
IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1bHQgaW4gbV9hbGxEb2N1bWVudE5vZGVzLgorICAg
IG1fZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fYWxsRG9jdW1lbnROb2RlcywgQVNTRVJUX05P
X0VYQ0VQVElPTiwgdHJ1ZSk7CiAKICAgICAvLyBGSVhNRShCVUcgNzk5MTYpOiBSdW5zIG9mIGNo
aWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhhdCBhcmUgbm90CiAgICAgLy8gV2ViVlRU
IFJ1YnkgVGV4dCBPYmplY3RzIG11c3QgYmUgd3JhcHBlZCBpbiBhbm9ueW1vdXMgYm94ZXMgd2hv
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCmluZGV4IDhlZWRmYzYu
LmVmMmMwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAt
ODAsOCArODAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5UZXh0VHJhY2tDdWUoKTsKIAot
ICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHBhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkKCk7
Ci0gICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9J
ZCgpOworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGFsbE5vZGVzU2hhZG93UHNldWRv
SWQoKTsKIAogICAgIFRleHRUcmFjayogdHJhY2soKSBjb25zdDsKICAgICB2b2lkIHNldFRyYWNr
KFRleHRUcmFjayopOwpAQCAtMTI1LDcgKzEyNCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFs
aWRhdGVDdWVJbmRleCgpOwogCiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBnZXRD
dWVBc0hUTUwoKTsKLSAgICB2b2lkIG1hcmtOb2Rlc0FzV2ViVlRUTm9kZXMoTm9kZSopOwogCiAg
ICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwogICAgIGJv
b2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAt
MTM2LDYgKzEzNCw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4g
Z2V0RGlzcGxheVRyZWUoKTsKICAgICB2b2lkIHVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0KTsKICAg
ICB2b2lkIHJlbW92ZURpc3BsYXlUcmVlKCk7CisgICAgdm9pZCBzZXROb2RlT2JqZWN0RmxhZ3Mo
Tm9kZSAqLCBkb3VibGUsIGRvdWJsZSk7CiAKICAgICBpbnQgY2FsY3VsYXRlQ29tcHV0ZWRMaW5l
UG9zaXRpb24oKTsKIApAQCAtMjA3LDggKzIwNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nu
YXBUb0xpbmVzOwogCiAgICAgYm9vbCBtX2hhc0lubmVyVGltZXN0YW1wczsKLSAgICBSZWZQdHI8
SFRNTERpdkVsZW1lbnQ+IG1fcGFzdERvY3VtZW50Tm9kZXM7Ci0gICAgUmVmUHRyPEhUTUxEaXZF
bGVtZW50PiBtX2Z1dHVyZURvY3VtZW50Tm9kZXM7CisgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50
PiBtX2FsbERvY3VtZW50Tm9kZXM7CiAKICAgICBib29sIG1fZGlzcGxheVRyZWVTaG91bGRDaGFu
Z2U7CiAgICAgUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gbV9kaXNwbGF5VHJlZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcAppbmRleCBmZWQwMzY5Li4yOTdlNTk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCkBAIC0zNjQs
NyArMzY0LDYgQEAgdm9pZCBXZWJWVFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oRG9j
dW1lbnQqIGRvY3VtZW50KQogICAgICAgICAgICAgY2hpbGQgPSBIVE1MRWxlbWVudDo6Y3JlYXRl
KHFUYWcsIGRvY3VtZW50KTsKIAogICAgICAgICBpZiAoY2hpbGQpIHsKLSAgICAgICAgICAgIGNo
aWxkLT5zZXRJc1dlYlZUVE5vZGUodHJ1ZSk7CiAgICAgICAgICAgICBpZiAobV90b2tlbi5jbGFz
c2VzKCkuc2l6ZSgpID4gMCkKICAgICAgICAgICAgICAgICBjaGlsZC0+c2V0QXR0cmlidXRlKGNs
YXNzQXR0ciwgQXRvbWljU3RyaW5nKG1fdG9rZW4uY2xhc3NlcygpLmRhdGEoKSwgbV90b2tlbi5j
bGFzc2VzKCkuc2l6ZSgpKSk7CiAgICAgICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUocVRh
ZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMu
bW0KaW5kZXggNzc5YTRiYy4uNzVmN2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQpAQCAtMjUzLDEzICsyNTMsNyBAQCBTdHJpbmcg
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBj
b25zdAogICAgIENvbG9yIGNvbG9yID0gY2FwdGlvbnNCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICBp
ZiAoY29sb3IuaXNWYWxpZCgpKSB7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0
LmFwcGVuZCgiIHZpZGVvOjoiKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQu
YXBwZW5kKFRleHRUcmFja0N1ZTo6cGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgICAg
IGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgneycpOwotICAgICAgICBjYXB0aW9u
c092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoY3NzQ29sb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUJh
Y2tncm91bmRDb2xvciwgY29sb3IpKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hl
ZXQuYXBwZW5kKCd9Jyk7Ci0gICAgICAgIAotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVT
aGVldC5hcHBlbmQoIiB2aWRlbzo6Iik7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNo
ZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6OmZ1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQoKSk7Cisg
ICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6OmFs
bE5vZGVzU2hhZG93UHNldWRvSWQoKSk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNo
ZWV0LmFwcGVuZCgneycpOwogICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBl
bmQoY3NzQ29sb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgY29sb3IpKTsK
ICAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCd9Jyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180558</attachid>
            <date>2012-12-21 14:45:37 -0800</date>
            <delta_ts>2013-01-04 00:42:33 -0800</delta_ts>
            <desc>Proposed fix 0.4</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>36989</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDIyNGVlLi5kOWVlMDYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTIt
MjEgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDpmdXR1cmUgcHNldWRvIGNsYXNzIGZvciB0aGUgV2ViVlRUIDo6Y3VlIHBzZXVkbyBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmll
ZCB0aGUgdHJhY2sgY3NzIG1hdGNoaW5nIHRlc3QgdG8gY292ZXIgOmZ1dHVyZSBwc2V1ZG8tY2xh
c3MgY2FzZS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5n
LnZ0dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sOgorCiAy
MDEyLTEyLTIxICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBF
eHBvc2UgQXJyYXlCdWZmZXJWaWV3IGNvbnN0cnVjdG9yIG9uIERPTVdpbmRvdwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWlubmVy
LXRpbWVzdGFtcHMudnR0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0
L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMudnR0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjMzM0MTk4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRp
b25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBzLnZ0dAorKysgL2Rldi9udWxsCkBA
IC0xLDEzICswLDAgQEAKLe+7v1dFQlZUVA0KLQ0KLTENCi0wMDowMDowMC4wMDAgLS0+IDAwOjAw
OjAwLjk1MA0KLTwwMDowMDowMC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8MDA6
MDA6MDAuNzAwPkthcmFva2UNCi0NCi0yDQotMDA6MDA6MDEuMDAwIC0tPiAwMDowMDowMy42MDAN
Ci08MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5
IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVl
bCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4NCi0NCi0zDQotMDA6MDA6MDMu
NzAwIC0tPiAwMDowMDowNC4yNTANCi08MDA6MDA6MDMuNzUwPkNob2NvbGF0ZSA8MDA6MDA6MDQu
MDAwPlJhaW4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13
ZWJ2dHQvc3R5bGluZy52dHQgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2
dHQvc3R5bGluZy52dHQKaW5kZXggYTcxYmNhZi4uMzI3NDhjOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmcudnR0CisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLnZ0dApAQCAtNywzICs3
LDcgQEAgTG9ydW0gaXBzdW0KIDIKIDAwOjAxLjAwMCAtLT4gMDA6MDIuMDAwCiA8Yy5yZWQ+ZG9s
b3Igc2l0IDwvYz48Yy5ncmVlbj5hbWV0LCBjb25zZWN0ZXR1ciA8L2M+PGMucmVkMj5hZGlwaXNj
aW5nIGVsaXQ8L2M+CisKKzMKKzAwOjAyLjAwMCAtLT4gMDA6MDUuMDAwCis8MDA6MDIuMDAwPjxj
PlN1c3BlbmRpc3NlIGFjY3Vtc2FuLCA8L2M+PDAwOjAzLjAwMD48Yz5tYXVyaXMgc2VkIDwvYz48
MDA6MDQuMDAwPjxjPmV1aXNtb2QgcGhhcmV0cmE8L2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNo
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRj
aGluZy1leHBlY3RlZC50eHQKaW5kZXggMGYyMzk1My4uNDA4N2JkZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQudHh0
CkBAIC0xLDggKzEsMjkgQEAKLVRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Bl
cmx5IGJ5IHRoZSBjbGFzcyBuYW1lCisxLiBUZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hl
ZCBwcm9wZXJseSBieSB0aGUgY2xhc3MgbmFtZQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBFVkVO
VChzZWVrZWQpCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAn
cmdiKDI1NSwgMCwgMCknKSBPSwogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSku
Y29sb3IgPT0gJ3JnYigwLCAxMjgsIDApJykgT0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxl
KGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAwLCAwKScpIE9LCisKK1JVTih2aWRlby5jdXJy
ZW50VGltZSA9IDIuNSkKK0VWRU5UKHNlZWtlZCkKKworCisyLiBUZXN0IHRoYXQgY3VlcyBhcmUg
YmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgJzpmdXR1cmUnIHBzZXVkbyBjbGFzcy4KK0VY
UEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAyNTUs
IDI1NSknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0g
J3JnYigxMjgsIDEyOCwgMTI4KScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVO
b2RlKS5jb2xvciA9PSAncmdiKDEyOCwgMTI4LCAxMjgpJykgT0sKKworUlVOKHZpZGVvLmN1cnJl
bnRUaW1lID0gMy41KQorRVZFTlQoc2Vla2VkKQorRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUo
Y3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9LCitFWFBFQ1RFRCAoZ2V0
Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sK
K0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMTI4LCAx
MjgsIDEyOCknKSBPSworCitSVU4odmlkZW8uY3VycmVudFRpbWUgPSA0LjUpCitFVkVOVChzZWVr
ZWQpCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1
NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNv
bG9yID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5
bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9LCiBFTkQgT0YgVEVT
VAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hp
bmcuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1s
CmluZGV4IGQwNDIyNWEuLjgwMmYzNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L3RyYWNrLWNzcy1tYXRjaGluZy5odG1sCkBAIC0xNywyMSArMTcsNTEgQEAKICAgICAgICAgPHNj
cmlwdD4KIAogICAgICAgICB2YXIgY3VlTm9kZTsKLQorICAgICAgICB2YXIgc2Vla2VkQ291bnQg
PSAwOworICAgICAgICB2YXIgaW5mbyA9IFtbInJnYigyNTUsIDAsIDApIiwgInJnYigwLCAxMjgs
IDApIiwgInJnYigyNTUsIDAsIDApIl0sCisgICAgICAgICAgICAgICAgICAgIFsicmdiKDI1NSwg
MjU1LCAyNTUpIiwgInJnYigxMjgsIDEyOCwgMTI4KSIsICJyZ2IoMTI4LCAxMjgsIDEyOCkiXSwK
KyAgICAgICAgICAgICAgICAgICAgWyJyZ2IoMjU1LCAyNTUsIDI1NSkiLCAicmdiKDI1NSwgMjU1
LCAyNTUpIiwgInJnYigxMjgsIDEyOCwgMTI4KSJdLAorICAgICAgICAgICAgICAgICAgICBbInJn
YigyNTUsIDI1NSwgMjU1KSIsICJyZ2IoMjU1LCAyNTUsIDI1NSkiLCAicmdiKDI1NSwgMjU1LCAy
NTUpIl1dOworICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gc2tpcE5vbkVsZW1lbnRzKHJvb3Qp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG5leHRFbGVtZW50U2libGluZyA9IHJvb3Q7CisgICAg
ICAgICAgICB3aGlsZSAobmV4dEVsZW1lbnRTaWJsaW5nLm5vZGVUeXBlICE9IDEpIHsKKyAgICAg
ICAgICAgICAgICBuZXh0RWxlbWVudFNpYmxpbmcgPSBuZXh0RWxlbWVudFNpYmxpbmcubmV4dFNp
Ymxpbmc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV4dEVsZW1lbnRTaWJs
aW5nOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBmdW5jdGlvbiBzZWVrZWQoKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlk
ZW8sICdwYXN0LW5vZGVzJykuZmlyc3RDaGlsZDsKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
Z2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMjU1LCAwLCAwKSIpOwotICAg
ICAgICAgICAgY3VlTm9kZSA9IGN1ZU5vZGUubmV4dFNpYmxpbmc7Ci0gICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCAicmdiKDAsIDEyOCwg
MCkiKTsKLSAgICAgICAgICAgIGN1ZU5vZGUgPSBjdWVOb2RlLm5leHRTaWJsaW5nOwotICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgInJn
YigyNTUsIDAsIDApIik7Ci0gICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICBpZiAo
dGVzdEVuZGVkKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKHNl
ZWtlZENvdW50ID09IDEpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCJcblxuMi4gVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkg
dGhlICc6ZnV0dXJlJyBwc2V1ZG8gY2xhc3MuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHModGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlk
ZW8sICdhbGwtbm9kZXMnKS5maXJzdENoaWxkKTsKKyAgICAgICAgICAgIHNraXBOb25FbGVtZW50
cyhjdWVOb2RlKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShj
dWVOb2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRdWzBdKTsKKyAgICAgICAgICAgIGN1ZU5v
ZGUgPSBza2lwTm9uRWxlbWVudHMoY3VlTm9kZS5uZXh0U2libGluZyk7CisgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtl
ZENvdW50XVsxXSk7CisgICAgICAgICAgICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKGN1ZU5v
ZGUubmV4dFNpYmxpbmcpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0
eWxlKGN1ZU5vZGUpLmNvbG9yIiwgaW5mb1tzZWVrZWRDb3VudF1bMl0pOworCisgICAgICAgICAg
ICBpZiAoKytzZWVrZWRDb3VudCA9PSBpbmZvLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBlbmRU
ZXN0KCk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IiIpOworICAgICAgICAgICAgICAgIHJ1bigidmlkZW8uY3VycmVudFRpbWUgPSAiICsgKHZpZGVv
LmN1cnJlbnRUaW1lICsgMSkpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAg
ZnVuY3Rpb24gbG9hZGVkKCkKICAgICAgICAgewotICAgICAgICAgICAgY29uc29sZVdyaXRlKCJU
ZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgY2xhc3MgbmFt
ZSIpOworICAgICAgICAgICAgY29uc29sZVdyaXRlKCIxLiBUZXN0IHRoYXQgY3VlcyBhcmUgYmVp
bmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgY2xhc3MgbmFtZSIpOwogICAgICAgICAgICAgZmlu
ZE1lZGlhRWxlbWVudCgpOwogICAgICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgn
dmlkZW8nLCAnLi4vY29udGVudC90ZXN0Jyk7CiAgICAgICAgICAgICB2aWRlby5pZCA9ICJ0ZXN0
dmlkZW8iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJl
bmRlcmluZy1pbm5lci10aW1lc3RhbXBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkODkzYjkuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi1UZXN0IHRoYXQg
VGV4dFRyYWNrJ3MgY3VlcyBhcmUgcmVuZGVyZWQgY29ycmVjdGx5IHdoZW4gdGhleSBjb250YWlu
IGlubmVyIHRpbWVzdGFtcHMuCi1FVkVOVChjYW5wbGF5dGhyb3VnaCkKLQotKiogRmlyc3QgY3Vl
IChlbXB0eSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDAK
LVBhc3Q6IAotRnV0dXJlOiBDaG9jb2xhdGUgUmFpbiBLYXJhb2tlCi1Db21wbGV0ZTogPDAwOjAw
OjAwLjIwMD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9r
ZQotCi0qKiBGaXJzdCBjdWUgKG9uZSB3b3JkKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAw
ICoKLUN1cnJlbnQgdGltZTogMC4yNQotUGFzdDogQ2hvY29sYXRlIAotRnV0dXJlOiBSYWluIEth
cmFva2UKLUNvbXBsZXRlOiA8MDA6MDA6MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJh
aW4gPDAwOjAwOjAwLjcwMD5LYXJhb2tlCi0KLSoqIEZpcnN0IGN1ZSAodHdvIHdvcmRzKSAqKgot
RVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMC41Ci1QYXN0OiBDaG9j
b2xhdGUgUmFpbiAKLUZ1dHVyZTogS2FyYW9rZQotQ29tcGxldGU6IDwwMDowMDowMC4yMDA+Q2hv
Y29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UKLQotKiogRmly
c3QgY3VlICh0aHJlZSB3b3JkcykgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJy
ZW50IHRpbWU6IDAuNzUKLVBhc3Q6IENob2NvbGF0ZSBSYWluIEthcmFva2UKLUZ1dHVyZTogCi1D
b21wbGV0ZTogPDAwOjAwOjAwLjIwMD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1MD5SYWluIDwwMDow
MDowMC43MDA+S2FyYW9rZQotCi0qKiBTZWNvbmQgY3VlIChlbXB0eSkgKioKLUVWRU5UKHNlZWtl
ZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDEKLVBhc3Q6IAotRnV0dXJlOiBTb21lIHN0
YXkgZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+
U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5h
bmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+
dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlIChvbmUgd29yZCkgKioKLUVW
RU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDEuMjUKLVBhc3Q6IFNvbWUg
Ci1GdXR1cmU6IHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDww
MDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAw
OjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDww
MDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlICh0d28g
d29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAxLjUK
LVBhc3Q6IFNvbWUgc3RheSAKLUZ1dHVyZTogZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgot
Q29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAx
LjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAy
Ljk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNv
bmQgY3VlICh0aHJlZSB3b3JkcykgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJy
ZW50IHRpbWU6IDEuNzUKLVBhc3Q6IFNvbWUgc3RheSBkcnkgCi1GdXR1cmU6IGFuZCBvdGhlcnMg
ZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUw
PnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5v
dGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+
cGFpbgotCi0qKiBTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9yZSkgKioKLUVWRU5UKHNlZWtlZCkK
LQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDIKLVBhc3Q6IFNvbWUgc3RheSBkcnkgCi1GdXR1
cmU6IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29t
ZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQg
PDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhl
IDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlIChmb3VyIHdvcmRzKSAqKgotRVZF
TlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMi4yNQotUGFzdDogU29tZSBz
dGF5IGRyeSBhbmQgCi1GdXR1cmU6IG90aGVycyBmZWVsIHRoZSBwYWluCi1Db21wbGV0ZTogPDAw
OjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6
MDA6MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAw
OjAwOjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKGZpdmUg
d29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAyLjUK
LVBhc3Q6IFNvbWUgc3RheSBkcnkgYW5kIG90aGVycyAKLUZ1dHVyZTogZmVlbCB0aGUgcGFpbgot
Q29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAx
LjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAy
Ljk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNv
bmQgY3VlIChzYW1lIGFzIGJlZm9yZSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1D
dXJyZW50IHRpbWU6IDIuNzUKLVBhc3Q6IFNvbWUgc3RheSBkcnkgYW5kIG90aGVycyAKLUZ1dHVy
ZTogZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEu
NDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1
MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40
NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlIChzaXggd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0K
LSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAzCi1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhl
cnMgZmVlbCAKLUZ1dHVyZTogdGhlIHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUg
PDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDww
MDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8
MDA6MDA6MDMuNDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAoc2V2ZW4gd29yZHMpICoqCi1FVkVO
VChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAzLjI1Ci1QYXN0OiBTb21lIHN0
YXkgZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgCi1GdXR1cmU6IHBhaW4KLUNvbXBsZXRlOiA8MDA6
MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDow
MDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6
MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAoZWlnaHQg
d29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAzLjUK
LVBhc3Q6IFNvbWUgc3RheSBkcnkgYW5kIG90aGVycyBmZWVsIHRoZSBwYWluCi1GdXR1cmU6IAot
Q29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAx
LjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAy
Ljk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBUaGly
ZCBjdWUgKG9uZSB3b3JkKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQg
dGltZTogMy43NQotUGFzdDogQ2hvY29sYXRlIAotRnV0dXJlOiBSYWluCi1Db21wbGV0ZTogPDAw
OjAwOjAzLjc1MD5DaG9jb2xhdGUgPDAwOjAwOjA0LjAwMD5SYWluCi0KLSoqIFRoaXJkIGN1ZSAo
dHdvIHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTog
NAotUGFzdDogQ2hvY29sYXRlIFJhaW4KLUZ1dHVyZTogCi1Db21wbGV0ZTogPDAwOjAwOjAzLjc1
MD5DaG9jb2xhdGUgPDAwOjAwOjA0LjAwMD5SYWluCi1FTkQgT0YgVEVTVAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVz
dGFtcHMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmct
aW5uZXItdGltZXN0YW1wcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjMy
OWIxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5k
ZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
IiAvPgotCi0gICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+Ci0g
ICAgICAgIDxzY3JpcHQgc3JjPS4uL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+Ci0gICAgICAgIDxz
Y3JpcHQgc3JjPS4uL21lZGlhLWNvbnRyb2xzLmpzPjwvc2NyaXB0PgotCi0gICAgICAgIDxzY3Jp
cHQ+Ci0KLSAgICAgICAgdmFyIHRlc3RUcmFjazsKLSAgICAgICAgdmFyIGN1ZURpc3BsYXlFbGVt
ZW50OwotICAgICAgICB2YXIgY3VlRGlzcGxheUNvbnRhaW5lcjsKLSAgICAgICAgdmFyIHNlZWtl
ZENvdW50ID0gMDsKLQotICAgICAgICB2YXIgdGVzdENhc2VEZXNjcmlwdGlvbiA9IFsKLSAgICAg
ICAgICAgICAgICAiRmlyc3QgY3VlIChlbXB0eSkiLAotICAgICAgICAgICAgICAgICJGaXJzdCBj
dWUgKG9uZSB3b3JkKSIsCi0gICAgICAgICAgICAgICAgIkZpcnN0IGN1ZSAodHdvIHdvcmRzKSIs
Ci0gICAgICAgICAgICAgICAgIkZpcnN0IGN1ZSAodGhyZWUgd29yZHMpIiwKLSAgICAgICAgICAg
ICAgICAiU2Vjb25kIGN1ZSAoZW1wdHkpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAo
b25lIHdvcmQpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAodHdvIHdvcmRzKSIsCi0g
ICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKHRocmVlIHdvcmRzKSIsCi0gICAgICAgICAgICAg
ICAgIlNlY29uZCBjdWUgKHNhbWUgYXMgYmVmb3JlKSIsCi0gICAgICAgICAgICAgICAgIlNlY29u
ZCBjdWUgKGZvdXIgd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZml2ZSB3
b3JkcykiLAotICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9yZSkiLAot
ICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlIChzaXggd29yZHMpIiwKLSAgICAgICAgICAgICAg
ICAiU2Vjb25kIGN1ZSAoc2V2ZW4gd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1
ZSAoZWlnaHQgd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiVGhpcmQgY3VlIChvbmUgd29yZCki
LAotICAgICAgICAgICAgICAgICJUaGlyZCBjdWUgKHR3byB3b3JkcykiCi0gICAgICAgIF07Ci0K
LSAgICAgICAgLy8gRWFjaCB0ZXN0IGNhc2UgaXMgZm91bmQgYnkgaW5jcmVtZW50aW5nIHdpdGgg
MC4yNTAgdGhlIGN1cnJlbnQgdGltZS4KLSAgICAgICAgdmFyIHRlc3RDYXNlU2Vla1RpbWUgPSBb
Ci0gICAgICAgIF07Ci0KLSAgICAgICAgdmFyIGN1cnJlbnRUZXN0Q2FzZSA9IDA7Ci0KLSAgICAg
ICAgZnVuY3Rpb24gc2Vla2VkKCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB0ZXN0VHJhY2sudHJhY2suYWN0aXZlQ3Vlcy5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgICAgIGN1ZURpc3BsYXlFbGVtZW50ID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlk
ZW8sICdkaXNwbGF5JywgaSk7Ci0KLSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwot
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKiBDdWUgIiArIGkgKyAiICoiKTsKLQotICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiQ3VycmVudCB0aW1lOiAiICsgTWF0aC5yb3VuZCh2
aWRlby5jdXJyZW50VGltZSAqIDEwMCkgLyAxMDApOwotICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiUGFzdDogIiArIGN1ZURpc3BsYXlFbGVtZW50LmNoaWxkTm9kZXNbMF0uaW5uZXJIVE1M
KTsKLSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkZ1dHVyZTogIiArIGN1ZURpc3BsYXlF
bGVtZW50LmNoaWxkTm9kZXNbMV0uaW5uZXJIVE1MKTsKLQotICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiQ29tcGxldGU6ICIgKyB0ZXN0VHJhY2sudHJhY2suYWN0aXZlQ3Vlc1tpXS50ZXh0
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcnVuTmV4dFRlc3RDYXNlKCk7Ci0gICAg
ICAgIH07Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuTmV4dFRlc3RDYXNlKCkKLSAgICAgICAgewot
ICAgICAgICAgICAgaWYgKGN1cnJlbnRUZXN0Q2FzZSA9PSB0ZXN0Q2FzZURlc2NyaXB0aW9uLmxl
bmd0aCkgewotICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAg
ICAgICAgICBjb25zb2xlV3JpdGUoIioqICIgKyAgdGVzdENhc2VEZXNjcmlwdGlvbltjdXJyZW50
VGVzdENhc2VdICsgIiAqKiIpOwotCi0gICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHRl
c3RDYXNlU2Vla1RpbWVbY3VycmVudFRlc3RDYXNlXTsKLSAgICAgICAgICAgIHdhaXRGb3JFdmVu
dCgnc2Vla2VkJywgc2Vla2VkLCBmYWxzZSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGN1cnJlbnRU
ZXN0Q2FzZSsrOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0IHRoYXQgVGV4dFRyYWNrJ3MgY3Vl
cyBhcmUgcmVuZGVyZWQgY29ycmVjdGx5IHdoZW4gdGhleSBjb250YWluIGlubmVyIHRpbWVzdGFt
cHMuIik7Ci0KLSAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKLSAgICAgICAgICAgIHRl
c3RUcmFjayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RyYWNrJyk7Ci0gICAgICAgICAgICB2
aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICcuLi9jb250ZW50L3Rlc3QnKTsKLQot
ICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICAgIGN1ZURpc3BsYXlDb250YWluZXIgPSB0ZXh0VHJhY2tEaXNwbGF5RWxl
bWVudCh2aWRlbyk7Ci0KLSAgICAgICAgICAgICAgICBmb3IgKGkgPSAwLjA7IGkgPCA0LjUwMDsg
aSArPSAwLjI1MCkKLSAgICAgICAgICAgICAgICAgICAgdGVzdENhc2VTZWVrVGltZS5wdXNoKGkp
OwotCi0gICAgICAgICAgICAgICAgcnVuTmV4dFRlc3RDYXNlKCk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfQotCi0gICAgICAgIDwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBv
bmxvYWQ9ImxvYWRlZCgpIj4KLSAgICAgICAgPHZpZGVvIGNvbnRyb2xzPgotICAgICAgICAgICAg
PHRyYWNrIHNyYz0iY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMudnR0
IiBraW5kPSJjYXB0aW9ucyIgZGVmYXVsdD4KLSAgICAgICAgPC92aWRlbz4KLSAgICA8L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWEwNDA0Zi4uNDA1ZTY5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDY0IEBACisyMDEyLTEyLTIxICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCA6ZnV0dXJlIHBzZXVkbyBjbGFzcyBmb3IgdGhlIFdlYlZU
VCA6OmN1ZSBwc2V1ZG8gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA1NDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBhcHByb2FjaCBvZiBzaG93aW5n
IHBhc3QvZnV0dXJlIG5vZGUgb2JqZWN0cy4gCisgICAgICAgIEJlZm9yZSB1cHBlci1sZXZlbCBj
b250YWluZXJzIHdlcmUgdXNlZCB0byBwdXQgcGFzdCBhbmQgZnV0dXJlIG5vZGVzIGluc2lkZS4g
U3R5bGVzIHdlcmUgYXBwbGllZAorICAgICAgICB0byBjb250YWluZXJzLiBOb3cgc3R5bGVzIGNv
dWxkIGJlIGFwcGxpZWQgZGlyZWN0bHkgdG8gbm9kZXMgYnkgdXNpbmcgOjpjdWUoOmZ1dHVyZSku
CisgICAgICAgIFRoYXQgYWxsb3dzIHRvIHN0eWxlIGZ1dHVyZS9wYXN0IFdlYlZUVCBub2RlcyBl
dmVuIGlmIHRoZXkgYXJlIG5lc3RlZC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0IHdhcyBtb2Rp
ZmllZCB0byBjb3ZlciBuZXcgY2FzZXMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3Bw
OiBhZGRlZCA6ZnV0dXJlIHBzZXVkbyBjbGFzcyBzdXBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU2VsZWN0b3I6OnBzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5
cGVNYXApOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBl
KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JD
aGVja2VyLmNwcDogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNo
ZWNrT25lU2VsZWN0b3IpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6IGRl
ZmluZSBzdHlsZSBzaGFyaW5nIHJ1bGVzIGZvciBXZWJWVFQgb2JqZWN0cy4KKyAgICAgICAgKiBj
c3MvbWVkaWFDb250cm9scy5jc3M6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0
LXRyYWNrLWFsbC1ub2Rlcyk6CisgICAgICAgICh2aWRlbzo6Y3VlKDpmdXR1cmUpKToKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRJc1dl
YlZUVE5vZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
Ojppc1dlYlZUVEZ1dHVyZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SXNX
ZWJWVFRGdXR1cmVOb2RlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxl
bWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoRWxlbWVu
dFJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlUmFyZURhdGE6Ok5vZGVSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
UmFyZURhdGE6OmlzV2ViVlRUTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6
OnNldElzV2ViVlRUTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OmlzV2Vi
VlRURnV0dXJlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnNldElzV2Vi
VlRURnV0dXJlTm9kZSk6CisgICAgICAgIChOb2RlUmFyZURhdGEpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmg6IGFkZCBhIFdlYlZUVCBub2RlIG9iamVjdCB0
eXBlIGVudW0uCisgICAgICAgIChUZXh0VHJhY2spOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6YWxsTm9kZXNT
aGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OlRleHRUcmFj
a0N1ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmdldEN1ZUFzSFRNTCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6c2V0Tm9k
ZU9iamVjdEZsYWdzKTogZGV0ZXJtaW5lIGlmIHRoZSBub2RlIGlzIGZ1dHVyZSBvciBwYXN0IGFu
ZCBtYXJrIGFzIFdlYlZUVCBub2RlLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjp1
cGRhdGVEaXNwbGF5VHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmdldERp
c3BsYXlUcmVlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAg
ICAoVGV4dFRyYWNrQ3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4p
OgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpb25zU3R5bGVTaGVldE92
ZXJyaWRlKToKKwogMjAxMi0xMi0yMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgVXBkYXRlIGxvY2FsaXphYmxlIHN0cmluZ3MgYXMgYSBmb2xsb3d1cCB0byBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzgzODcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3IuY3BwCmluZGV4IDk1NmU0N2YuLmQ3ODc4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmNwcApAQCAtMjIyLDYgKzIyMiw3IEBAIFBzZXVkb0lkIENTU1NlbGVjdG9yOjpwc2V1ZG9J
ZChQc2V1ZG9UeXBlIHR5cGUpCiAgICAgY2FzZSBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50Ogog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIFBzZXVkb0N1ZToKKyAgICBjYXNlIFBz
ZXVkb0Z1dHVyZUN1ZToKICNlbmRpZgogICAgICAgICByZXR1cm4gTk9QU0VVRE87CiAgICAgY2Fz
ZSBQc2V1ZG9Ob3RQYXJzZWQ6CkBAIC0zMDcsNiArMzA4LDcgQEAgc3RhdGljIEhhc2hNYXA8QXRv
bWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlw
ZU1hcCgKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgY3VlLCAoImN1ZSgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZ1
dHVyZUN1ZSwgKCJmdXR1cmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAjZW5kaWYKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaW5SYW5nZSwg
KCJpbi1yYW5nZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3V0T2ZSYW5nZSwgKCJvdXQtb2YtcmFu
Z2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CkBAIC0zODUsNiArMzg3
LDcgQEAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQc2V1
ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZU1hcCgKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19U
UkFDSykKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGN1ZS5pbXBsKCksIENTU1NlbGVj
dG9yOjpQc2V1ZG9DdWUpOworICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoZnV0dXJlQ3Vl
LmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1dHVyZUN1ZSk7CiAjZW5kaWYKICAgICAgICAg
bmFtZVRvUHNldWRvVHlwZS0+c2V0KGluUmFuZ2UuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRv
SW5SYW5nZSk7CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChvdXRPZlJhbmdlLmltcGwo
KSwgQ1NTU2VsZWN0b3I6OlBzZXVkb091dE9mUmFuZ2UpOwpAQCAtNTA3LDYgKzUxMCw5IEBAIHZv
aWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICNlbmRpZgogICAgIGNh
c2UgUHNldWRvSW5SYW5nZToKICAgICBjYXNlIFBzZXVkb091dE9mUmFuZ2U6CisjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQorICAgIGNhc2UgUHNldWRvRnV0dXJlQ3VlOgorI2VuZGlmCiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgUHNldWRvRmlyc3RQYWdlOgogICAgIGNhc2UgUHNldWRvTGVmdFBh
Z2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IGRlZmQzNmMuLjk3YzJlYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0xNTgsNiArMTU4LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAgICAgUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudCwKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgICAgICAgICBQc2V1ZG9DdWUsCisgICAgICAgICAgICBQc2V1ZG9G
dXR1cmVDdWUsCiAjZW5kaWYKICAgICAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmNwcAppbmRleCA1N2ExZDlmLi42OGQ4ZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcApAQCAtMTEyNCw2ICsxMTI0LDEyIEBAIGJvb2wgU2VsZWN0b3JDaGVj
a2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250
ZXh0LCBjCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+c2V0Q29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKTsKICAgICAgICAg
ICAgIHJldHVybiBlbGVtZW50LT5pc091dE9mUmFuZ2UoKTsKKyNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1dHVyZUN1ZToKKyAgICAgICAg
ICAgIGlmIChlbGVtZW50LT5pc1dlYlZUVEZ1dHVyZU5vZGUoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duOgogICAgICAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9Ob3RQYXJzZWQ6CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKaW5kZXggZTgzNmYzMy4uYzY2OTViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcApAQCAtMTIzNiw2ICsxMjM2LDE0IEBAIGJvb2wgU3R5bGVSZXNvbHZlcjo6
Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0CiAg
ICAgaWYgKGVsZW1lbnQtPmlzTGluaygpICYmIG1fZWxlbWVudExpbmtTdGF0ZSAhPSBzdHlsZS0+
aW5zaWRlTGluaygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCisgICAgaWYgKGVsZW1lbnQtPmlzV2ViVlRUTm9kZSgpICYmIG1fZWxlbWVudC0+aXNX
ZWJWVFROb2RlKCkgJiYgZWxlbWVudC0+aXNXZWJWVFRGdXR1cmVOb2RlKCkgIT0gbV9lbGVtZW50
LT5pc1dlYlZUVEZ1dHVyZU5vZGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIERl
bnkgc2hhcmluZyBzdHlsZXMgYmV0d2VlbiBXZWJWVFQgbm9kZXMgYW5kIG5vbi1XZWJWVFQgbm9k
ZXMuCisgICAgaWYgKGVsZW1lbnQtPmlzV2ViVlRUTm9kZSgpICE9ICBtX2VsZW1lbnQtPmlzV2Vi
VlRUTm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKwogICAgIHJldHVybiB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5j
c3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKaW5kZXggMTM4ZmYxZC4u
ZDhmYWY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3Nz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwpAQCAtMjM4LDI1ICsy
MzgsMTkgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIgewogICAg
IC13ZWJraXQtYm94LWZsZXg6IDE7CiB9CiAKLXZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJh
Y2stcGFzdC1ub2RlcyB7Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2Rl
cyB7CiAgICAgZGlzcGxheTogaW5saW5lOwogCiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgw
LCAwLCAwLCAwLjgpOwogICAgIHBhZGRpbmc6IDJweCAycHg7CiB9CiAKLXZpZGVvOjotd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzIHsKLSAgICB2aXNpYmlsaXR5OiBoaWRkZW47
Ci0gICAgZGlzcGxheTogaW5saW5lOwotCi0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAw
LCAwLCAwLjgpOwotCi0gICAgbWFyZ2luLWxlZnQ6IC0ycHg7Ci0gICAgcGFkZGluZzogMnB4IDJw
eCAycHggMHB4OwotfQotCiB2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkg
ewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgIHdo
aXRlLXNwYWNlOiBwcmUtd3JhcDsKIH0KKwordmlkZW86OmN1ZSg6ZnV0dXJlKSB7CisgICAgY29s
b3I6IGdyYXk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZDU3ZDA0ZS4uODdjODgxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjI4OCw5ICsyMjg4LDE5IEBAIGJvb2wgRWxlbWVu
dDo6aXNXZWJWVFROb2RlKCkgY29uc3QKICAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVt
ZW50UmFyZURhdGEoKS0+aXNXZWJWVFROb2RlKCk7CiB9CiAKLXZvaWQgRWxlbWVudDo6c2V0SXNX
ZWJWVFROb2RlKGJvb2wgZmxhZykKK3ZvaWQgRWxlbWVudDo6c2V0SXNXZWJWVFROb2RlKCkKIHsK
LSAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+c2V0SXNXZWJWVFROb2RlKGZsYWcpOworICAg
IGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLT5zZXRJc1dlYlZUVE5vZGUoKTsKK30KKworYm9vbCBF
bGVtZW50Ojppc1dlYlZUVEZ1dHVyZU5vZGUoKSBjb25zdAoreworICAgIHJldHVybiBoYXNSYXJl
RGF0YSgpICYmIGVsZW1lbnRSYXJlRGF0YSgpLT5pc1dlYlZUVEZ1dHVyZU5vZGUoKTsKK30KKwor
dm9pZCBFbGVtZW50OjpzZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKQoreworICAgIGVuc3VyZUVsZW1l
bnRSYXJlRGF0YSgpLT5zZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaAppbmRleCAzZTA3NzY0Li44ZTdmYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAg
LTQzNCw3ICs0MzQsOSBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAg
Ym9vbCBpc1dlYlZUVE5vZGUoKSBjb25zdDsKLSAgICB2b2lkIHNldElzV2ViVlRUTm9kZShib29s
IGZsYWcpOworICAgIHZvaWQgc2V0SXNXZWJWVFROb2RlKCk7CisgICAgYm9vbCBpc1dlYlZUVEZ1
dHVyZU5vZGUoKSBjb25zdDsKKyAgICB2b2lkIHNldElzV2ViVlRURnV0dXJlTm9kZSgpOwogI2Vu
ZGlmCiAgICAgCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRSYXJlRGF0YS5oCmluZGV4IDUyNjMxNWEuLjAwNTUwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgKQEAgLTU3LDYgKzU3LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICB1c2luZyBOb2RlUmFyZURhdGE6OmlzV2ViVlRUTm9kZTsKICAgICB1c2lu
ZyBOb2RlUmFyZURhdGE6OnNldElzV2ViVlRUTm9kZTsKKyAgICB1c2luZyBOb2RlUmFyZURhdGE6
OmlzV2ViVlRURnV0dXJlTm9kZTsKKyAgICB1c2luZyBOb2RlUmFyZURhdGE6OnNldElzV2ViVlRU
RnV0dXJlTm9kZTsKICNlbmRpZgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29s
IGNvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoKSB7IHJldHVybiBtX2NvbnRhaW5zRnVsbFNjcmVl
bkVsZW1lbnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCBhNTVmYzk3Li4xODFk
YjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yOSw2ICsyOSw5IEBACiAjaW5j
bHVkZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgogI2luY2x1ZGUgIlF1YWxpZmll
ZE5hbWUuaCIKICNpbmNsdWRlICJUYWdOb2RlTGlzdC5oIgorI2lmIEVOQUJMRShWSURFT19UUkFD
SykKKyNpbmNsdWRlICJUZXh0VHJhY2suaCIKKyNlbmRpZgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CkBAIC0yNTQsOSArMjU3LDYgQEAgcHVibGljOgogICAgICAgICAsIG1fbmVlZHNGb2N1c0FwcGVh
cmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2goZmFsc2UpCiAgICAgICAgICwgbV9zdHlsZUFmZmVj
dGVkQnlFbXB0eShmYWxzZSkKICAgICAgICAgLCBtX2lzSW5DYW52YXNTdWJ0cmVlKGZhbHNlKQot
I2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgLCBtX2lzV2ViVlRUTm9kZShmYWxzZSkK
LSNlbmRpZgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAgICAgLCBtX2NvbnRhaW5z
RnVsbFNjcmVlbkVsZW1lbnQoZmFsc2UpCiAjZW5kaWYKQEAgLTI3MSw2ICsyNzEsOSBAQCBwdWJs
aWM6CiAgICAgICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKGZh
bHNlKQogICAgICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxl
cyhmYWxzZSkKICAgICAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25h
bFJ1bGVzKGZhbHNlKQorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICAsIG1fV2ViVlRUTm9k
ZVR5cGUoVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZU5vbmUpCisjZW5kaWYKICAgICB7CiAgICAg
fQogCkBAIC0zNzEsOCArMzc0LDEwIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKLSAgICBib29sIGlzV2ViVlRUTm9kZSgpIHsgcmV0dXJuIG1faXNXZWJW
VFROb2RlOyB9Ci0gICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoYm9vbCB2YWx1ZSkgeyBtX2lzV2Vi
VlRUTm9kZSA9IHZhbHVlOyB9CisgICAgYm9vbCBpc1dlYlZUVE5vZGUoKSB7IHJldHVybiBtX1dl
YlZUVE5vZGVUeXBlICE9IFRleHRUcmFjazo6V2ViVlRUTm9kZVR5cGVOb25lOyB9CisgICAgdm9p
ZCBzZXRJc1dlYlZUVE5vZGUoKSB7IG1fV2ViVlRUTm9kZVR5cGUgPSBUZXh0VHJhY2s6OldlYlZU
VE5vZGVUeXBlUGFzdDsgfQorICAgIGJvb2wgaXNXZWJWVFRGdXR1cmVOb2RlKCkgeyByZXR1cm4g
bV9XZWJWVFROb2RlVHlwZSA9PSBUZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlRnV0dXJlOyB9Cisg
ICAgdm9pZCBzZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKSB7IG1fV2ViVlRUTm9kZVR5cGUgPSBUZXh0
VHJhY2s6OldlYlZUVE5vZGVUeXBlRnV0dXJlOyB9CiAjZW5kaWYKICAgICBzaG9ydCBtX3RhYklu
ZGV4OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleDsKQEAgLTM4MCw5ICszODUsNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX25lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFm
dGVyQXR0YWNoIDogMTsKICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHkgOiAxOwogICAg
IGJvb2wgbV9pc0luQ2FudmFzU3VidHJlZSA6IDE7Ci0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQot
ICAgIGJvb2wgbV9pc1dlYlZUVE5vZGUgOiAxOwotI2VuZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogICAgIGJvb2wgbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50IDogMTsKICNlbmRp
ZgpAQCAtNDAwLDcgKzQwMiw5IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fY2hpbGRyZW5BZmZl
Y3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyA6IDE7CiAgICAgYm9vbCBtX2NoaWxkcmVuQWZmZWN0
ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwogICAgIGJvb2wgbV9jaGlsZHJlbkFmZmVj
dGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7Ci0KKyNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCisgICAgVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZSBtX1dlYlZUVE5vZGVUeXBlIDogMjsK
KyNlbmRpZgogcHJpdmF0ZToKICAgICBPd25QdHI8Tm9kZUxpc3RzTm9kZURhdGE+IG1fbm9kZUxp
c3RzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xF
bGVtZW50cy5jcHAKaW5kZXggMmRlMTA1My4uMmVmYzA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTIxOCw3ICsx
MjE4LDcgQEAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2MKICAgICAsIG1fZm9udFNpemUoMCkKIHsK
IH0KLSAgICAKKwogdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojpj
cmVhdGVTdWJ0cmVlcyhEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1ZSwgKCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAppbmRl
eCA2MzUwM2RhLi4zZGZhZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgK
QEAgLTExMCw2ICsxMTAsOCBAQCBwdWJsaWM6CiAKICAgICBlbnVtIFRleHRUcmFja1R5cGUgeyBU
cmFja0VsZW1lbnQsIEFkZFRyYWNrLCBJbkJhbmQgfTsKICAgICBUZXh0VHJhY2tUeXBlIHRyYWNr
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tUeXBlOyB9CisgICAgCisgICAgZW51bSBXZWJW
VFROb2RlVHlwZSB7V2ViVlRUTm9kZVR5cGVOb25lLCBXZWJWVFROb2RlVHlwZUZ1dHVyZSwgV2Vi
VlRUTm9kZVR5cGVQYXN0fTsKIAogICAgIGludCB0cmFja0luZGV4KCk7CiAgICAgdm9pZCBpbnZh
bGlkYXRlVHJhY2tJbmRleCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tD
dWUuY3BwCmluZGV4IDYyYTBjOTYuLjg5MTQ2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTE4MywxNSArMTgzLDkgQEAgUmVuZGVyT2JqZWN0KiBU
ZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVy
U3R5bGUqKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWNvbnN0IEF0b21p
Y1N0cmluZyYgVGV4dFRyYWNrQ3VlOjpwYXN0Tm9kZXNTaGFkb3dQc2V1ZG9JZCgpCitjb25zdCBB
dG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6YWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1YnRpdGxlcywgKCIt
d2Via2l0LW1lZGlhLXRleHQtdHJhY2stcGFzdC1ub2RlcyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKLSAgICByZXR1cm4gc3VidGl0bGVzOwotfQotCi1jb25zdCBBdG9t
aWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6ZnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCgpCi17Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1YnRpdGxlcywgKCIt
d2Via2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBzdWJ0aXRsZXMsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2RlcyIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc3VidGl0
bGVzOwogfQogCkBAIC0yMTMsOCArMjA3LDcgQEAgVGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91YmxlIHN0YXJ0LCBkb3VibGUKICAg
ICAsIG1fcGF1c2VPbkV4aXQoZmFsc2UpCiAgICAgLCBtX3NuYXBUb0xpbmVzKHRydWUpCiAgICAg
LCBtX2hhc0lubmVyVGltZXN0YW1wcyhmYWxzZSkKLSAgICAsIG1fcGFzdERvY3VtZW50Tm9kZXMo
SFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpKSkK
LSAgICAsIG1fZnV0dXJlRG9jdW1lbnROb2RlcyhIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKHN0YXRp
Y19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQorICAgICwgbV9hbGxEb2N1bWVudE5vZGVzKEhU
TUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSkpCiAg
ICAgLCBtX2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlKHRydWUpCiAgICAgLCBtX2Rpc3BsYXlUcmVl
KFRleHRUcmFja0N1ZUJveDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4obV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KSwgdGhpcykpCiB7CkBAIC00ODgsMTIgKzQ4MSw2IEBAIHZvaWQgVGV4
dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgoKQogICAgIG1fY3VlSW5kZXggPSBpbnZhbGlk
Q3VlSW5kZXg7CiB9CiAKLXZvaWQgVGV4dFRyYWNrQ3VlOjptYXJrTm9kZXNBc1dlYlZUVE5vZGVz
KE5vZGUqIHJvb3QpCi17Ci0gICAgZm9yIChFbGVtZW50KiBjaGlsZCA9IEVsZW1lbnRUcmF2ZXJz
YWw6OmZpcnN0V2l0aGluKHJvb3QpOyBjaGlsZDsgY2hpbGQgPSBFbGVtZW50VHJhdmVyc2FsOjpu
ZXh0KGNoaWxkLCByb290KSkKLSAgICAgICAgY2hpbGQtPnNldElzV2ViVlRUTm9kZSh0cnVlKTsK
LX0KLQogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBUZXh0VHJhY2tDdWU6OmdldEN1ZUFz
SFRNTCgpCiB7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNsb25lZEZyYWdtZW50OwpA
QCAtNTE2LDcgKzUwMyw2IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gVGV4dFRyYWNr
Q3VlOjpnZXRDdWVBc0hUTUwoKQogCiAgICAgY2xvbmVkRnJhZ21lbnQgPSBEb2N1bWVudEZyYWdt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fZG9jdW1lbnRGcmFnbWVudC0+Y2xvbmVDaGls
ZE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKLSAgICBtYXJrTm9kZXNBc1dlYlZUVE5vZGVz
KGNsb25lZEZyYWdtZW50LmdldCgpKTsKIAogICAgIHJldHVybiBjbG9uZWRGcmFnbWVudC5yZWxl
YXNlKCk7CiB9CkBAIC02NzYsNTAgKzY2Miw1NCBAQCB2b2lkIFRleHRUcmFja0N1ZTo6Y2FsY3Vs
YXRlRGlzcGxheVBhcmFtZXRlcnMoKQogICAgIC8vIGlzIGRlZmluZWQgaW4gdGVybXMgb2YgdGhl
IG90aGVyIGFzcGVjdHMgb2YgdGhlIGN1ZS4KICAgICBtX2NvbXB1dGVkTGluZVBvc2l0aW9uID0g
Y2FsY3VsYXRlQ29tcHV0ZWRMaW5lUG9zaXRpb24oKTsKIH0KKyAgICAKK3ZvaWQgVGV4dFRyYWNr
Q3VlOjpzZXROb2RlT2JqZWN0RmxhZ3MoTm9kZSAqcm9vdCwgZG91YmxlIHByZXZpb3VzVGltZXN0
YW1wLCBkb3VibGUgbW92aWVUaW1lKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxpdGVyYWwoInRpbWVzdGFtcCIpKSk7CisgICAg
CisgICAgYm9vbCBpc1Bhc3ROb2RlID0gdHJ1ZTsKKyAgICBkb3VibGUgY3VycmVudFRpbWVzdGFt
cCA9IHByZXZpb3VzVGltZXN0YW1wOworICAgIGlmIChjdXJyZW50VGltZXN0YW1wID4gbW92aWVU
aW1lKQorICAgICAgICBpc1Bhc3ROb2RlID0gZmFsc2U7CisgICAgCisgICAgZm9yIChOb2RlKiBj
aGlsZCA9IHJvb3QtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gTm9kZVRyYXZlcnNhbDo6
bmV4dChjaGlsZCwgcm9vdCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5ub2RlTmFtZSgpID09IHRp
bWVzdGFtcFRhZykgeworICAgICAgICAgICAgdW5zaWduZWQgcG9zaXRpb24gPSAwOworICAgICAg
ICAgICAgU3RyaW5nIHRpbWVzdGFtcCA9IGNoaWxkLT5ub2RlVmFsdWUoKTsKKyAgICAgICAgICAg
IGRvdWJsZSBjdXJyZW50VGltZXN0YW1wID0gV2ViVlRUUGFyc2VyOjpjcmVhdGUoMCwgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KS0+Y29sbGVjdFRpbWVTdGFtcCh0aW1lc3RhbXAsICZwb3NpdGlv
bik7CisgICAgICAgICAgICBBU1NFUlQoY3VycmVudFRpbWVzdGFtcCAhPSAtMSk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmIChjdXJyZW50VGltZXN0YW1wID4gbW92aWVUaW1lKQorICAg
ICAgICAgICAgICAgIGlzUGFzdE5vZGUgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgaWYgKGNoaWxkLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgICAgIGlmICghaXNQ
YXN0Tm9kZSkKKyAgICAgICAgICAgICAgICB0b0VsZW1lbnQoY2hpbGQpLT5zZXRJc1dlYlZUVEZ1
dHVyZU5vZGUoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0b0VsZW1lbnQo
Y2hpbGQpLT5zZXRJc1dlYlZUVE5vZGUoKTsKKyAgICAgICAgfQorICAgIH0KK30KIAogdm9pZCBU
ZXh0VHJhY2tDdWU6OnVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0IG1vdmllVGltZSkKIHsKICAgICAv
LyBUaGUgZGlzcGxheSB0cmVlIG1heSBjb250YWluIFdlYlZUVCB0aW1lc3RhbXAgb2JqZWN0cyBy
ZXByZXNlbnRpbmcKICAgICAvLyB0aW1lc3RhbXBzIChwcm9jZXNzaW5nIGluc3RydWN0aW9ucyks
IGFsb25nIHdpdGggZGlzcGxheWFibGUgbm9kZXMuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHRpbWVzdGFtcFRhZywgKEFTQ0lJTGl0ZXJhbCgidGltZXN0YW1wIikpKTsK
IAogICAgIGlmICghdHJhY2soKS0+aXNSZW5kZXJlZCgpKQogICAgICAgcmV0dXJuOwogCi0gICAg
Ym9vbCBpc1Bhc3ROb2RlID0gdHJ1ZTsKIAotICAgIC8vIENsZWFyIHRoZSBjb250ZW50cyBvZiB0
aGUgdHdvIHNldHMuCi0gICAgbV9mdXR1cmVEb2N1bWVudE5vZGVzLT5yZW1vdmVDaGlsZHJlbigp
OwotICAgIG1fZnV0dXJlRG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKGZ1dHVyZU5vZGVzU2hhZG93
UHNldWRvSWQoKSk7Ci0KLSAgICBtX3Bhc3REb2N1bWVudE5vZGVzLT5yZW1vdmVDaGlsZHJlbigp
OwotICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPnNldFBzZXVkbyhwYXN0Tm9kZXNTaGFkb3dQc2V1
ZG9JZCgpKTsKKyAgICAvLyBDbGVhciB0aGUgY29udGVudHMgb2YgdGhlIHNldC4KKyAgICBtX2Fs
bERvY3VtZW50Tm9kZXMtPnJlbW92ZUNoaWxkcmVuKCk7CisgICAgbV9hbGxEb2N1bWVudE5vZGVz
LT5zZXRQc2V1ZG8oYWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKIAogICAgIC8vIFVwZGF0ZSB0
aGUgdHdvIHNldHMgY29udGFpbmluZyBwYXN0IGFuZCBmdXR1cmUgV2ViVlRUIG9iamVjdHMuCiAg
ICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHJlZmVyZW5jZVRyZWUgPSBnZXRDdWVBc0hUTUwo
KTsKIAotICAgIGlmICghbV9oYXNJbm5lclRpbWVzdGFtcHMpIHsKLSAgICAgICAgbV9wYXN0RG9j
dW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJlZSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBmb3IgKE5vZGUgKmNoaWxkID0gcmVmZXJlbmNlVHJlZS0+Zmlyc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAo
Y2hpbGQtPm5vZGVOYW1lKCkgPT0gdGltZXN0YW1wVGFnKSB7Ci0gICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgcG9zaXRpb24gPSAwOwotICAgICAgICAgICAgU3RyaW5nIHRpbWVzdGFtcCA9IGNoaWxk
LT5ub2RlVmFsdWUoKTsKLQotICAgICAgICAgICAgZG91YmxlIHRpbWVzdGFtcFRpbWUgPSBXZWJW
VFRQYXJzZXI6OmNyZWF0ZSgwLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLT5jb2xsZWN0VGlt
ZVN0YW1wKHRpbWVzdGFtcCwgJnBvc2l0aW9uKTsKLSAgICAgICAgICAgIEFTU0VSVCh0aW1lc3Rh
bXBUaW1lICE9IC0xKTsKLQotICAgICAgICAgICAgaWYgKHRpbWVzdGFtcFRpbWUgPiBtb3ZpZVRp
bWUpCi0gICAgICAgICAgICAgICAgaXNQYXN0Tm9kZSA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAg
ICAgICAgaWYgKGlzUGFzdE5vZGUpCi0gICAgICAgICAgICBtX3Bhc3REb2N1bWVudE5vZGVzLT5h
cHBlbmRDaGlsZChjaGlsZC0+Y2xvbmVOb2RlKHRydWUpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBm
YWxzZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fZnV0dXJlRG9jdW1lbnROb2Rlcy0+
YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lTm9kZSh0cnVlKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwg
ZmFsc2UpOwotICAgIH0KKyAgICBtX2FsbERvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKHJlZmVy
ZW5jZVRyZWUpOworICAgIHNldE5vZGVPYmplY3RGbGFncyhtX2FsbERvY3VtZW50Tm9kZXMuZ2V0
KCksIHN0YXJ0VGltZSgpLCBtb3ZpZVRpbWUpOwogfQogCiBQYXNzUmVmUHRyPFRleHRUcmFja0N1
ZUJveD4gVGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCkBAIC03NDEsOSArNzMxLDggQEAg
UGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IFRleHRUcmFja0N1ZTo6Z2V0RGlzcGxheVRyZWUo
KQogICAgIC8vICdkaXNwbGF5JyBwcm9wZXJ0eSBoYXMgdGhlIHZhbHVlICdpbmxpbmUnLiBUaGlz
IGlzIHRoZSBXZWJWVFQgY3VlCiAgICAgLy8gYmFja2dyb3VuZCBib3guCiAKLSAgICAvLyBOb3Rl
OiBUaGlzIGlzIGNvbnRhaW5lZCBieSBkZWZhdWx0IGluIG1fcGFzdERvY3VtZW50Tm9kZXMuCi0g
ICAgbV9kaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9wYXN0RG9jdW1lbnROb2RlcywgQVNTRVJU
X05PX0VYQ0VQVElPTiwgdHJ1ZSk7Ci0gICAgbV9kaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9m
dXR1cmVEb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKKyAgICAvLyBO
b3RlOiBUaGlzIGlzIGNvbnRhaW5lZCBieSBkZWZhdWx0IGluIG1fYWxsRG9jdW1lbnROb2Rlcy4K
KyAgICBtX2Rpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2FsbERvY3VtZW50Tm9kZXMsIEFTU0VS
VF9OT19FWENFUFRJT04sIHRydWUpOwogCiAgICAgLy8gRklYTUUoQlVHIDc5OTE2KTogUnVucyBv
ZiBjaGlsZHJlbiBvZiBXZWJWVFQgUnVieSBPYmplY3RzIHRoYXQgYXJlIG5vdAogICAgIC8vIFdl
YlZUVCBSdWJ5IFRleHQgT2JqZWN0cyBtdXN0IGJlIHdyYXBwZWQgaW4gYW5vbnltb3VzIGJveGVz
IHdob3NlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAppbmRleCBjZjE3
ZDk5Li42YzYyMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgK
QEAgLTgwLDggKzgwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+VGV4dFRyYWNrQ3VlKCk7
CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBwYXN0Tm9kZXNTaGFkb3dQc2V1ZG9J
ZCgpOwotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGZ1dHVyZU5vZGVzU2hhZG93UHNl
dWRvSWQoKTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhbGxOb2Rlc1NoYWRvd1Bz
ZXVkb0lkKCk7CiAKICAgICBUZXh0VHJhY2sqIHRyYWNrKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRU
cmFjayhUZXh0VHJhY2sqKTsKQEAgLTEyNiw3ICsxMjUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBp
bnZhbGlkYXRlQ3VlSW5kZXgoKTsKIAogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
Z2V0Q3VlQXNIVE1MKCk7Ci0gICAgdm9pZCBtYXJrTm9kZXNBc1dlYlZUVE5vZGVzKE5vZGUqKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKICAg
ICBib29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4sIEV4Y2VwdGlvbkNvZGUmKTsK
QEAgLTEzNyw2ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVC
b3g+IGdldERpc3BsYXlUcmVlKCk7CiAgICAgdm9pZCB1cGRhdGVEaXNwbGF5VHJlZShmbG9hdCk7
CiAgICAgdm9pZCByZW1vdmVEaXNwbGF5VHJlZSgpOworICAgIHZvaWQgc2V0Tm9kZU9iamVjdEZs
YWdzKE5vZGUgKiwgZG91YmxlLCBkb3VibGUpOwogCiAgICAgaW50IGNhbGN1bGF0ZUNvbXB1dGVk
TGluZVBvc2l0aW9uKCk7CiAKQEAgLTIwOSw4ICsyMDgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9zbmFwVG9MaW5lczsKIAogICAgIGJvb2wgbV9oYXNJbm5lclRpbWVzdGFtcHM7Ci0gICAgUmVm
UHRyPEhUTUxEaXZFbGVtZW50PiBtX3Bhc3REb2N1bWVudE5vZGVzOwotICAgIFJlZlB0cjxIVE1M
RGl2RWxlbWVudD4gbV9mdXR1cmVEb2N1bWVudE5vZGVzOworICAgIFJlZlB0cjxIVE1MRGl2RWxl
bWVudD4gbV9hbGxEb2N1bWVudE5vZGVzOwogCiAgICAgYm9vbCBtX2Rpc3BsYXlUcmVlU2hvdWxk
Q2hhbmdlOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IG1fZGlzcGxheVRyZWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKaW5kZXggZmVkMDM2OS4uMjk3
ZTU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcApAQCAt
MzY0LDcgKzM2NCw2IEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2Vu
KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAgICAgICAgIGNoaWxkID0gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZShxVGFnLCBkb2N1bWVudCk7CiAKICAgICAgICAgaWYgKGNoaWxkKSB7Ci0gICAgICAgICAg
ICBjaGlsZC0+c2V0SXNXZWJWVFROb2RlKHRydWUpOwogICAgICAgICAgICAgaWYgKG1fdG9rZW4u
Y2xhc3NlcygpLnNpemUoKSA+IDApCiAgICAgICAgICAgICAgICAgY2hpbGQtPnNldEF0dHJpYnV0
ZShjbGFzc0F0dHIsIEF0b21pY1N0cmluZyhtX3Rva2VuLmNsYXNzZXMoKS5kYXRhKCksIG1fdG9r
ZW4uY2xhc3NlcygpLnNpemUoKSkpOwogICAgICAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1l
KHFUYWcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZl
cmVuY2VzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWFjLm1tCmluZGV4IDc3OWE0YmMuLjc1ZjdmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KQEAgLTI1MywxMyArMjUzLDcgQEAgU3Ry
aW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRl
KCkgY29uc3QKICAgICBDb2xvciBjb2xvciA9IGNhcHRpb25zQmFja2dyb3VuZENvbG9yKCk7CiAg
ICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkgewogICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVT
aGVldC5hcHBlbmQoIiB2aWRlbzo6Iik7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNo
ZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6OnBhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwotICAg
ICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoJ3snKTsKLSAgICAgICAgY2Fw
dGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKGNzc0NvbG9yUHJvcGVydHkoQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IsIGNvbG9yKSk7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHls
ZVNoZWV0LmFwcGVuZCgnfScpOwotICAgICAgICAKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0
eWxlU2hlZXQuYXBwZW5kKCIgdmlkZW86OiIpOwotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5
bGVTaGVldC5hcHBlbmQoVGV4dFRyYWNrQ3VlOjpmdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKCkp
OworICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoVGV4dFRyYWNrQ3Vl
OjphbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwogICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5
bGVTaGVldC5hcHBlbmQoJ3snKTsKICAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQu
YXBwZW5kKGNzc0NvbG9yUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIGNvbG9y
KSk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgnfScpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181125</attachid>
            <date>2013-01-02 17:53:18 -0800</date>
            <delta_ts>2013-01-03 17:45:39 -0800</delta_ts>
            <desc>Proposed fix 0.5</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>37816</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDIyNGVlLi4zMmRmMjA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTIt
MjEgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDpmdXR1cmUgcHNldWRvIGNsYXNzIGZvciB0aGUgV2ViVlRUIDo6Y3VlIHBzZXVkbyBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmll
ZCB0aGUgdHJhY2sgY3NzIG1hdGNoaW5nIHRlc3QgdG8gY292ZXIgOmZ1dHVyZSBwc2V1ZG8tY2xh
c3MgY2FzZS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9u
cy1pbm5lci10aW1lc3RhbXBzLnZ0dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay9j
YXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQ6CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2st
Y3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1j
c3MtbWF0Y2hpbmcuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVy
aW5nLWlubmVyLXRpbWVzdGFtcHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1l
ZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1sOiBUaGUg
dGVzdCB3YXMgcmVtb3ZlZCBiZWNhdXNlIGl0IHdhcyBiYXNlZCBvbiB0aGUgb2xkCisgICAgICAg
IGZ1dHVyZS9wYXN0IG5vZGVzIHJlbmRlcmluZyBsb2dpYy4KKwogMjAxMi0xMi0yMSAgS2VubmV0
aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIEFycmF5QnVmZmVy
VmlldyBjb25zdHJ1Y3RvciBvbiBET01XaW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBzLnZ0dCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10
aW1lc3RhbXBzLnZ0dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMzNDE5OC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvY2FwdGlv
bnMtaW5uZXItdGltZXN0YW1wcy52dHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi3v
u79XRUJWVFQNCi0NCi0xDQotMDA6MDA6MDAuMDAwIC0tPiAwMDowMDowMC45NTANCi08MDA6MDA6
MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJhb2tl
DQotDQotMg0KLTAwOjAwOjAxLjAwMCAtLT4gMDA6MDA6MDMuNjAwDQotPDAwOjAwOjAxLjIwMD5T
b21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFu
ZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50
aGUgPDAwOjAwOjAzLjQ1MD5wYWluDQotDQotMw0KLTAwOjAwOjAzLjcwMCAtLT4gMDA6MDA6MDQu
MjUwDQotPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUgPDAwOjAwOjA0LjAwMD5SYWluDQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmcudnR0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmcudnR0Cmlu
ZGV4IGE3MWJjYWYuLjMyNzQ4YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLnZ0dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQKQEAgLTcsMyArNyw3IEBAIExvcnVtIGlwc3Vt
CiAyCiAwMDowMS4wMDAgLS0+IDAwOjAyLjAwMAogPGMucmVkPmRvbG9yIHNpdCA8L2M+PGMuZ3Jl
ZW4+YW1ldCwgY29uc2VjdGV0dXIgPC9jPjxjLnJlZDI+YWRpcGlzY2luZyBlbGl0PC9jPgorCisz
CiswMDowMi4wMDAgLS0+IDAwOjA1LjAwMAorPDAwOjAyLjAwMD48Yz5TdXNwZW5kaXNzZSBhY2N1
bXNhbiwgPC9jPjwwMDowMy4wMDA+PGM+bWF1cmlzIHNlZCA8L2M+PDAwOjA0LjAwMD48Yz5ldWlz
bW9kIHBoYXJldHJhPC9jPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQudHh0
CmluZGV4IDBmMjM5NTMuLjQwODdiZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDI5IEBA
Ci1UZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgY2xhc3Mg
bmFtZQorMS4gVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhl
IGNsYXNzIG5hbWUKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVZFTlQoc2Vla2VkKQogRVhQRUNU
RUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDAsIDApJykg
T0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMCwg
MTI4LCAwKScpIE9LCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9
PSAncmdiKDI1NSwgMCwgMCknKSBPSworCitSVU4odmlkZW8uY3VycmVudFRpbWUgPSAyLjUpCitF
VkVOVChzZWVrZWQpCisKKworMi4gVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJv
cGVybHkgYnkgdGhlICc6ZnV0dXJlJyBwc2V1ZG8gY2xhc3MuCitFWFBFQ1RFRCAoZ2V0Q29tcHV0
ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVD
VEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMTI4LCAxMjgsIDEy
OCknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3Jn
YigxMjgsIDEyOCwgMTI4KScpIE9LCisKK1JVTih2aWRlby5jdXJyZW50VGltZSA9IDMuNSkKK0VW
RU5UKHNlZWtlZCkKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09
ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3Vl
Tm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29t
cHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDEyOCwgMTI4LCAxMjgpJykgT0sKKwor
UlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gNC41KQorRVZFTlQoc2Vla2VkKQorRVhQRUNURUQgKGdl
dENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9L
CitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwg
MjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9y
ID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSwogRU5EIE9GIFRFU1QKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmcuaHRtbAppbmRleCBkMDQyMjVhLi44
MTQ1YjJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0
Y2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hp
bmcuaHRtbApAQCAtMTcsMjEgKzE3LDUxIEBACiAgICAgICAgIDxzY3JpcHQ+CiAKICAgICAgICAg
dmFyIGN1ZU5vZGU7Ci0KKyAgICAgICAgdmFyIHNlZWtlZENvdW50ID0gMDsKKyAgICAgICAgdmFy
IGluZm8gPSBbWyJyZ2IoMjU1LCAwLCAwKSIsICJyZ2IoMCwgMTI4LCAwKSIsICJyZ2IoMjU1LCAw
LCAwKSJdLAorICAgICAgICAgICAgICAgICAgICBbInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2Io
MTI4LCAxMjgsIDEyOCkiLCAicmdiKDEyOCwgMTI4LCAxMjgpIl0sCisgICAgICAgICAgICAgICAg
ICAgIFsicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2IoMTI4
LCAxMjgsIDEyOCkiXSwKKyAgICAgICAgICAgICAgICAgICAgWyJyZ2IoMjU1LCAyNTUsIDI1NSki
LCAicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigyNTUsIDI1NSwgMjU1KSJdXTsKKyAgICAgICAg
CisgICAgICAgIGZ1bmN0aW9uIHNraXBOb25FbGVtZW50cyhyb290KQorICAgICAgICB7CisgICAg
ICAgICAgICBuZXh0RWxlbWVudFNpYmxpbmcgPSByb290OworICAgICAgICAgICAgd2hpbGUgKG5l
eHRFbGVtZW50U2libGluZy5ub2RlVHlwZSAhPSAxKSB7CisgICAgICAgICAgICAgICAgbmV4dEVs
ZW1lbnRTaWJsaW5nID0gbmV4dEVsZW1lbnRTaWJsaW5nLm5leHRTaWJsaW5nOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgcmV0dXJuIG5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgfQor
ICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkKICAgICAgICAgewotICAgICAgICAg
ICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAncGFzdC1ub2Rlcycp
LmZpcnN0Q2hpbGQ7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUo
Y3VlTm9kZSkuY29sb3IiLCAicmdiKDI1NSwgMCwgMCkiKTsKLSAgICAgICAgICAgIGN1ZU5vZGUg
PSBjdWVOb2RlLm5leHRTaWJsaW5nOwotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21w
dXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgInJnYigwLCAxMjgsIDApIik7Ci0gICAgICAgICAg
ICBjdWVOb2RlID0gY3VlTm9kZS5uZXh0U2libGluZzsKLSAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMjU1LCAwLCAwKSIpOwot
ICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgaWYgKHRlc3RFbmRlZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmIChzZWVrZWRDb3VudCA9PSAxKSB7
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiMi4gVGVzdCB0aGF0
IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlICc6ZnV0dXJlJyBwc2V1ZG8g
Y2xhc3MuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9u
RWxlbWVudHModGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdhbGwtbm9kZXMnKS5maXJz
dENoaWxkKTsKKyAgICAgICAgICAgIHNraXBOb25FbGVtZW50cyhjdWVOb2RlKTsKKyAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9b
c2Vla2VkQ291bnRdWzBdKTsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHMo
Y3VlTm9kZS5uZXh0U2libGluZyk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1
dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtlZENvdW50XVsxXSk7CisgICAgICAg
ICAgICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUubmV4dFNpYmxpbmcpOworICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwg
aW5mb1tzZWVrZWRDb3VudF1bMl0pOworCisgICAgICAgICAgICBpZiAoKytzZWVrZWRDb3VudCA9
PSBpbmZvLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAg
IHJ1bigidmlkZW8uY3VycmVudFRpbWUgPSAiICsgKHZpZGVvLmN1cnJlbnRUaW1lICsgMSkpOwor
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKICAg
ICAgICAgewotICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0IHRoYXQgY3VlcyBhcmUgYmVp
bmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgY2xhc3MgbmFtZSIpOworICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIxLiBUZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBi
eSB0aGUgY2xhc3MgbmFtZSIpOwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogICAg
ICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnLi4vY29udGVudC90
ZXN0Jyk7CiAgICAgICAgICAgICB2aWRlby5pZCA9ICJ0ZXN0dmlkZW8iOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3Rh
bXBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5k
ZXJpbmctaW5uZXItdGltZXN0YW1wcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJkODkzYjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2sv
dHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE1NyArMCwwIEBACi1UZXN0IHRoYXQgVGV4dFRyYWNrJ3MgY3VlcyBhcmUg
cmVuZGVyZWQgY29ycmVjdGx5IHdoZW4gdGhleSBjb250YWluIGlubmVyIHRpbWVzdGFtcHMuCi1F
VkVOVChjYW5wbGF5dGhyb3VnaCkKLQotKiogRmlyc3QgY3VlIChlbXB0eSkgKioKLUVWRU5UKHNl
ZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDAKLVBhc3Q6IAotRnV0dXJlOiBDaG9j
b2xhdGUgUmFpbiBLYXJhb2tlCi1Db21wbGV0ZTogPDAwOjAwOjAwLjIwMD5DaG9jb2xhdGUgPDAw
OjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9rZQotCi0qKiBGaXJzdCBjdWUgKG9u
ZSB3b3JkKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMC4y
NQotUGFzdDogQ2hvY29sYXRlIAotRnV0dXJlOiBSYWluIEthcmFva2UKLUNvbXBsZXRlOiA8MDA6
MDA6MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJh
b2tlCi0KLSoqIEZpcnN0IGN1ZSAodHdvIHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1
ZSAwICoKLUN1cnJlbnQgdGltZTogMC41Ci1QYXN0OiBDaG9jb2xhdGUgUmFpbiAKLUZ1dHVyZTog
S2FyYW9rZQotQ29tcGxldGU6IDwwMDowMDowMC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+
UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UKLQotKiogRmlyc3QgY3VlICh0aHJlZSB3b3Jkcykg
KioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDAuNzUKLVBhc3Q6
IENob2NvbGF0ZSBSYWluIEthcmFva2UKLUZ1dHVyZTogCi1Db21wbGV0ZTogPDAwOjAwOjAwLjIw
MD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9rZQotCi0q
KiBTZWNvbmQgY3VlIChlbXB0eSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJy
ZW50IHRpbWU6IDEKLVBhc3Q6IAotRnV0dXJlOiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVl
bCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0
YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhl
cnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFp
bgotCi0qKiBTZWNvbmQgY3VlIChvbmUgd29yZCkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUg
MCAqCi1DdXJyZW50IHRpbWU6IDEuMjUKLVBhc3Q6IFNvbWUgCi1GdXR1cmU6IHN0YXkgZHJ5IGFu
ZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6
MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAw
OjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDow
MDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlICh0d28gd29yZHMpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAxLjUKLVBhc3Q6IFNvbWUgc3RheSAKLUZ1
dHVyZTogZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4y
MDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIw
MD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4y
MDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlICh0aHJlZSB3b3Jkcykg
KioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDEuNzUKLVBhc3Q6
IFNvbWUgc3RheSBkcnkgCi1GdXR1cmU6IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxl
dGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5k
cnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5m
ZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3Vl
IChzYW1lIGFzIGJlZm9yZSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50
IHRpbWU6IDIKLVBhc3Q6IFNvbWUgc3RheSBkcnkgCi1GdXR1cmU6IGFuZCBvdGhlcnMgZmVlbCB0
aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkg
PDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMg
PDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgot
Ci0qKiBTZWNvbmQgY3VlIChmb3VyIHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAw
ICoKLUN1cnJlbnQgdGltZTogMi4yNQotUGFzdDogU29tZSBzdGF5IGRyeSBhbmQgCi1GdXR1cmU6
IG90aGVycyBmZWVsIHRoZSBwYWluCi1Db21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDow
MDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6
MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAw
OjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKGZpdmUgd29yZHMpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAyLjUKLVBhc3Q6IFNvbWUgc3RheSBkcnkg
YW5kIG90aGVycyAKLUZ1dHVyZTogZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4y
MDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIw
MD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4y
MDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9y
ZSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDIuNzUKLVBh
c3Q6IFNvbWUgc3RheSBkcnkgYW5kIG90aGVycyAKLUZ1dHVyZTogZmVlbCB0aGUgcGFpbgotQ29t
cGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcw
MD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1
MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQg
Y3VlIChzaXggd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0
aW1lOiAzCi1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVlbCAKLUZ1dHVyZTogdGhl
IHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDww
MDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDww
MDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQot
KiogU2Vjb25kIGN1ZSAoc2V2ZW4gd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAg
KgotQ3VycmVudCB0aW1lOiAzLjI1Ci1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVl
bCB0aGUgCi1GdXR1cmU6IHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAw
OjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDow
Mi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6
MDMuNDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAoZWlnaHQgd29yZHMpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAzLjUKLVBhc3Q6IFNvbWUgc3RheSBkcnkg
YW5kIG90aGVycyBmZWVsIHRoZSBwYWluCi1GdXR1cmU6IAotQ29tcGxldGU6IDwwMDowMDowMS4y
MDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIw
MD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4y
MDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBUaGlyZCBjdWUgKG9uZSB3b3JkKSAqKgot
RVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMy43NQotUGFzdDogQ2hv
Y29sYXRlIAotRnV0dXJlOiBSYWluCi1Db21wbGV0ZTogPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUg
PDAwOjAwOjA0LjAwMD5SYWluCi0KLSoqIFRoaXJkIGN1ZSAodHdvIHdvcmRzKSAqKgotRVZFTlQo
c2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogNAotUGFzdDogQ2hvY29sYXRlIFJh
aW4KLUZ1dHVyZTogCi1Db21wbGV0ZTogPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUgPDAwOjAwOjA0
LjAwMD5SYWluCi1FTkQgT0YgVEVTVAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjMyOWIxLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1w
cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgotCi0gICAgICAgIDxzY3Jp
cHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPS4u
L3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWNv
bnRyb2xzLmpzPjwvc2NyaXB0PgotCi0gICAgICAgIDxzY3JpcHQ+Ci0KLSAgICAgICAgdmFyIHRl
c3RUcmFjazsKLSAgICAgICAgdmFyIGN1ZURpc3BsYXlFbGVtZW50OwotICAgICAgICB2YXIgY3Vl
RGlzcGxheUNvbnRhaW5lcjsKLSAgICAgICAgdmFyIHNlZWtlZENvdW50ID0gMDsKLQotICAgICAg
ICB2YXIgdGVzdENhc2VEZXNjcmlwdGlvbiA9IFsKLSAgICAgICAgICAgICAgICAiRmlyc3QgY3Vl
IChlbXB0eSkiLAotICAgICAgICAgICAgICAgICJGaXJzdCBjdWUgKG9uZSB3b3JkKSIsCi0gICAg
ICAgICAgICAgICAgIkZpcnN0IGN1ZSAodHdvIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIkZp
cnN0IGN1ZSAodGhyZWUgd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZW1w
dHkpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAob25lIHdvcmQpIiwKLSAgICAgICAg
ICAgICAgICAiU2Vjb25kIGN1ZSAodHdvIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlNlY29u
ZCBjdWUgKHRocmVlIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKHNhbWUg
YXMgYmVmb3JlKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKGZvdXIgd29yZHMpIiwK
LSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZml2ZSB3b3JkcykiLAotICAgICAgICAgICAg
ICAgICJTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9yZSkiLAotICAgICAgICAgICAgICAgICJTZWNv
bmQgY3VlIChzaXggd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoc2V2ZW4g
d29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZWlnaHQgd29yZHMpIiwKLSAg
ICAgICAgICAgICAgICAiVGhpcmQgY3VlIChvbmUgd29yZCkiLAotICAgICAgICAgICAgICAgICJU
aGlyZCBjdWUgKHR3byB3b3JkcykiCi0gICAgICAgIF07Ci0KLSAgICAgICAgLy8gRWFjaCB0ZXN0
IGNhc2UgaXMgZm91bmQgYnkgaW5jcmVtZW50aW5nIHdpdGggMC4yNTAgdGhlIGN1cnJlbnQgdGlt
ZS4KLSAgICAgICAgdmFyIHRlc3RDYXNlU2Vla1RpbWUgPSBbCi0gICAgICAgIF07Ci0KLSAgICAg
ICAgdmFyIGN1cnJlbnRUZXN0Q2FzZSA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkK
LSAgICAgICAgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0VHJhY2sudHJh
Y2suYWN0aXZlQ3Vlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGN1ZURpc3BsYXlF
bGVtZW50ID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdkaXNwbGF5JywgaSk7Ci0K
LSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiKiBDdWUgIiArIGkgKyAiICoiKTsKLQotICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiQ3VycmVudCB0aW1lOiAiICsgTWF0aC5yb3VuZCh2aWRlby5jdXJyZW50VGltZSAqIDEw
MCkgLyAxMDApOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiUGFzdDogIiArIGN1ZURp
c3BsYXlFbGVtZW50LmNoaWxkTm9kZXNbMF0uaW5uZXJIVE1MKTsKLSAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIkZ1dHVyZTogIiArIGN1ZURpc3BsYXlFbGVtZW50LmNoaWxkTm9kZXNbMV0u
aW5uZXJIVE1MKTsKLQotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiQ29tcGxldGU6ICIg
KyB0ZXN0VHJhY2sudHJhY2suYWN0aXZlQ3Vlc1tpXS50ZXh0KTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgcnVuTmV4dFRlc3RDYXNlKCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZnVu
Y3Rpb24gcnVuTmV4dFRlc3RDYXNlKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGN1cnJl
bnRUZXN0Q2FzZSA9PSB0ZXN0Q2FzZURlc2NyaXB0aW9uLmxlbmd0aCkgewotICAgICAgICAgICAg
ICAgIGVuZFRlc3QoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICBjb25zb2xlV3JpdGUo
IioqICIgKyAgdGVzdENhc2VEZXNjcmlwdGlvbltjdXJyZW50VGVzdENhc2VdICsgIiAqKiIpOwot
Ci0gICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHRlc3RDYXNlU2Vla1RpbWVbY3VycmVu
dFRlc3RDYXNlXTsKLSAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnc2Vla2VkJywgc2Vla2VkLCBm
YWxzZSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGN1cnJlbnRUZXN0Q2FzZSsrOwotICAgICAgICB9
Ci0KLSAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKLSAgICAgICAgewotICAgICAgICAgICAgY29u
c29sZVdyaXRlKCJUZXN0IHRoYXQgVGV4dFRyYWNrJ3MgY3VlcyBhcmUgcmVuZGVyZWQgY29ycmVj
dGx5IHdoZW4gdGhleSBjb250YWluIGlubmVyIHRpbWVzdGFtcHMuIik7Ci0KLSAgICAgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKLSAgICAgICAgICAgIHRlc3RUcmFjayA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ3RyYWNrJyk7Ci0gICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFG
aWxlKCd2aWRlbycsICcuLi9jb250ZW50L3Rlc3QnKTsKLQotICAgICAgICAgICAgd2FpdEZvckV2
ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGN1ZURp
c3BsYXlDb250YWluZXIgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbyk7Ci0KLSAgICAg
ICAgICAgICAgICBmb3IgKGkgPSAwLjA7IGkgPCA0LjUwMDsgaSArPSAwLjI1MCkKLSAgICAgICAg
ICAgICAgICAgICAgdGVzdENhc2VTZWVrVGltZS5wdXNoKGkpOwotCi0gICAgICAgICAgICAgICAg
cnVuTmV4dFRlc3RDYXNlKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotCi0gICAgICAg
IDwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KLSAg
ICAgICAgPHZpZGVvIGNvbnRyb2xzPgotICAgICAgICAgICAgPHRyYWNrIHNyYz0iY2FwdGlvbnMt
d2VidnR0L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMudnR0IiBraW5kPSJjYXB0aW9ucyIgZGVm
YXVsdD4KLSAgICAgICAgPC92aWRlbz4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMWEwNDA0Zi4uOGZkZWRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTEy
LTIxICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCA6ZnV0dXJlIHBzZXVkbyBjbGFzcyBmb3IgdGhlIFdlYlZUVCA6OmN1ZSBwc2V1ZG8gZWxlbWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NDcz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBjaGFuZ2VzIHRoZSBhcHByb2FjaCBvZiBzaG93aW5nIHBhc3QvZnV0dXJlIG5vZGUgb2Jq
ZWN0cy4gCisgICAgICAgIEJlZm9yZSB1cHBlci1sZXZlbCBjb250YWluZXJzIHdlcmUgdXNlZCB0
byBwdXQgcGFzdCBhbmQgZnV0dXJlIG5vZGVzIGluc2lkZS4gU3R5bGVzIHdlcmUgYXBwbGllZAor
ICAgICAgICB0byBjb250YWluZXJzLiBOb3cgc3R5bGVzIGNvdWxkIGJlIGFwcGxpZWQgZGlyZWN0
bHkgdG8gbm9kZXMgYnkgdXNpbmcgOjpjdWUoOmZ1dHVyZSkuCisgICAgICAgIFRoYXQgYWxsb3dz
IHRvIHN0eWxlIGZ1dHVyZS9wYXN0IFdlYlZUVCBub2RlcyBldmVuIGlmIHRoZXkgYXJlIG5lc3Rl
ZC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0IHdhcyBtb2RpZmllZCB0byBjb3ZlciBuZXcgY2Fz
ZXMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOiBhZGRlZCA6ZnV0dXJlIHBzZXVk
byBjbGFzcyBzdXBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVkb0lk
KToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDogZGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOgorICAg
ICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVz
b2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6IGRlZmluZSBzdHlsZSBzaGFyaW5nIHJ1
bGVzIGZvciBXZWJWVFQgb2JqZWN0cy4KKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6
CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2Rlcyk6Cisg
ICAgICAgICh2aWRlbzo6Y3VlKDpmdXR1cmUpKTogYWRkZWQgc3RhbmRhcmQgdXNlci1hZ2VudCBz
dHlsZXMgZm9yIHRoZSBmdXR1cmUgbm9kZXMuCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOiBz
ZXR0ZXIgZnVuY3Rpb25zIGRvbid0IGhhdmUgYW4gYXJndW1lbnQgbm93IGJlY2F1c2UgV2ViVlRU
IHR5cGUgZW51bSB3YXMgaW50cm9kdWNlZCBhbmQgdGhlIHJpZ2h0IHR5cGUgaXMgc2V0CisgICAg
ICAgIHdoZW4gdGhlIHNldHRlciBpcyBiZWluZyBjYWxsZWQuCisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpzZXRJc1dlYlZUVE5vZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50Ojppc1dlYlZUVEZ1dHVyZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6c2V0SXNXZWJWVFRGdXR1cmVOb2RlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5o
OgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgor
ICAgICAgICAoRWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6Ok5vZGVSYXJlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OmlzV2ViVlRUTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlUmFyZURhdGE6OnNldElzV2ViVlRUTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
UmFyZURhdGE6OmlzV2ViVlRURnV0dXJlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFy
ZURhdGE6OnNldElzV2ViVlRURnV0dXJlTm9kZSk6CisgICAgICAgIChOb2RlUmFyZURhdGEpOgor
ICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmg6IGFkZCBhIFdlYlZU
VCBub2RlIG9iamVjdCB0eXBlIGVudW0uCisgICAgICAgIChUZXh0VHJhY2spOgorICAgICAgICAq
IGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
a0N1ZTo6YWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OlRleHRUcmFja0N1ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6Omdl
dEN1ZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0N1ZTo6c2V0Tm9kZU9iamVjdEZsYWdzKTogZGV0ZXJtaW5lIGlmIHRoZSBub2RlIGlzIGZ1
dHVyZSBvciBwYXN0IGFuZCBtYXJrIGFzIFdlYlZUVCBub2RlLgorICAgICAgICBUaGlzIGNvbWJp
bmVzIHRoZSBmdW5jdGlvbmFsaXR5IHJlbGF0ZWQgdG8gbWFya2luZyBub2RlcyBpbXBsZW1lbnRl
ZCBiZWZvcmUgaW4gdXBkYXRlRGlzcGxheVRyZWUgYW5kCisgICAgICAgIG1hcmtOb2Rlc0FzV2Vi
VlRUTm9kZXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnVwZGF0ZURpc3BsYXlU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Z2V0RGlzcGxheVRyZWUpOgor
ICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6CisgICAgICAgIChUZXh0VHJhY2tD
dWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYlZUVFBhcnNlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbik6IG5vIG5lZWQgdG8g
bWFyayBub2RlcyBhcyBXZWJWVFQgbm9kZXMgd2hlbiBwYXJzaW5nLiBUaGlzIGlzIGRvbmUgYXQg
dGhlCisgICAgICAgIHJlbmRlcmluZyBzdGFnZSBsYXRlci4KKyAgICAgICAgKiBwYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSk6IHRoZSBjb250YWluZXIg
bmFtZSBoYXMgY2hhbmdlZC4KKwogMjAxMi0xMi0yMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGxvY2FsaXphYmxlIHN0cmluZ3MgYXMgYSBmb2xs
b3d1cCB0byBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzgzODcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDk1NmU0N2YuLmQ3ODc4YWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmNwcApAQCAtMjIyLDYgKzIyMiw3IEBAIFBzZXVkb0lkIENTU1NlbGVjdG9y
Ojpwc2V1ZG9JZChQc2V1ZG9UeXBlIHR5cGUpCiAgICAgY2FzZSBQc2V1ZG9XZWJLaXRDdXN0b21F
bGVtZW50OgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIFBzZXVkb0N1ZToKKyAg
ICBjYXNlIFBzZXVkb0Z1dHVyZUN1ZToKICNlbmRpZgogICAgICAgICByZXR1cm4gTk9QU0VVRE87
CiAgICAgY2FzZSBQc2V1ZG9Ob3RQYXJzZWQ6CkBAIC0zMDcsNiArMzA4LDcgQEAgc3RhdGljIEhh
c2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRv
UHNldWRvVHlwZU1hcCgKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY3VlLCAoImN1ZSgiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGZ1dHVyZUN1ZSwgKCJmdXR1cmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAjZW5kaWYKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aW5SYW5nZSwgKCJpbi1yYW5nZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3V0T2ZSYW5nZSwgKCJv
dXQtb2YtcmFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CkBAIC0z
ODUsNiArMzg3LDcgQEAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVj
dG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZU1hcCgKICNlbmRpZgogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGN1ZS5pbXBsKCks
IENTU1NlbGVjdG9yOjpQc2V1ZG9DdWUpOworICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQo
ZnV0dXJlQ3VlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1dHVyZUN1ZSk7CiAjZW5kaWYK
ICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGluUmFuZ2UuaW1wbCgpLCBDU1NTZWxlY3Rv
cjo6UHNldWRvSW5SYW5nZSk7CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChvdXRPZlJh
bmdlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb091dE9mUmFuZ2UpOwpAQCAtNTA3LDYgKzUx
MCw5IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICNlbmRp
ZgogICAgIGNhc2UgUHNldWRvSW5SYW5nZToKICAgICBjYXNlIFBzZXVkb091dE9mUmFuZ2U6Cisj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGNhc2UgUHNldWRvRnV0dXJlQ3VlOgorI2VuZGlm
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHNldWRvRmlyc3RQYWdlOgogICAgIGNhc2UgUHNl
dWRvTGVmdFBhZ2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IGRlZmQzNmMuLjk3YzJl
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0xNTgsNiArMTU4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudCwKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgICAgICBQc2V1ZG9DdWUsCisgICAgICAgICAg
ICBQc2V1ZG9GdXR1cmVDdWUsCiAjZW5kaWYKICAgICAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCA1N2ExZDlmLi42OGQ4ZGM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtMTEyNCw2ICsxMTI0LDEyIEBAIGJvb2wgU2Vs
ZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250
ZXh0JiBjb250ZXh0LCBjCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2V0Q29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKTsK
ICAgICAgICAgICAgIHJldHVybiBlbGVtZW50LT5pc091dE9mUmFuZ2UoKTsKKyNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1dHVyZUN1ZToK
KyAgICAgICAgICAgIGlmIChlbGVtZW50LT5pc1dlYlZUVEZ1dHVyZU5vZGUoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgog
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duOgogICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9Ob3RQYXJzZWQ6CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggZTgzNmYzMy4uNGI1NDU2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTIzNiw2ICsxMjM2LDE0IEBAIGJvb2wgU3R5bGVS
ZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQp
IGNvbnN0CiAgICAgaWYgKGVsZW1lbnQtPmlzTGluaygpICYmIG1fZWxlbWVudExpbmtTdGF0ZSAh
PSBzdHlsZS0+aW5zaWRlTGluaygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCisgICAgaWYgKGVsZW1lbnQtPmlzV2ViVlRUTm9kZSgpICYmIG1fZWxl
bWVudC0+aXNXZWJWVFROb2RlKCkgJiYgZWxlbWVudC0+aXNXZWJWVFRGdXR1cmVOb2RlKCkgIT0g
bV9lbGVtZW50LT5pc1dlYlZUVEZ1dHVyZU5vZGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIC8vIERlbnkgc2hhcmluZyBzdHlsZXMgYmV0d2VlbiBXZWJWVFQgbm9kZXMgYW5kIG5vbi1X
ZWJWVFQgbm9kZXMuCisgICAgaWYgKGVsZW1lbnQtPmlzV2ViVlRUTm9kZSgpICE9IG1fZWxlbWVu
dC0+aXNXZWJWVFROb2RlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNv
bnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwppbmRleCAx
MzhmZjFkLi5kOGZhZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250
cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCkBAIC0y
MzgsMjUgKzIzOCwxOSBAQCB2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5l
ciB7CiAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKIH0KIAotdmlkZW86Oi13ZWJraXQtbWVkaWEt
dGV4dC10cmFjay1wYXN0LW5vZGVzIHsKK3ZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJhY2st
YWxsLW5vZGVzIHsKICAgICBkaXNwbGF5OiBpbmxpbmU7CiAKICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2JhKDAsIDAsIDAsIDAuOCk7CiAgICAgcGFkZGluZzogMnB4IDJweDsKIH0KIAotdmlkZW86
Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1mdXR1cmUtbm9kZXMgewotICAgIHZpc2liaWxpdHk6
IGhpZGRlbjsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci0KLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2JhKDAsIDAsIDAsIDAuOCk7Ci0KLSAgICBtYXJnaW4tbGVmdDogLTJweDsKLSAgICBwYWRkaW5n
OiAycHggMnB4IDJweCAwcHg7Ci19Ci0KIHZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJhY2st
ZGlzcGxheSB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIG92ZXJmbG93OiBoaWRkZW47
CiAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogfQorCit2aWRlbzo6Y3VlKDpmdXR1cmUpIHsK
KyAgICBjb2xvcjogZ3JheTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBkNTdkMDRlLi44
N2M4ODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yMjg4LDkgKzIyODgsMTkgQEAgYm9v
bCBFbGVtZW50Ojppc1dlYlZUVE5vZGUoKSBjb25zdAogICAgIHJldHVybiBoYXNSYXJlRGF0YSgp
ICYmIGVsZW1lbnRSYXJlRGF0YSgpLT5pc1dlYlZUVE5vZGUoKTsKIH0KIAotdm9pZCBFbGVtZW50
OjpzZXRJc1dlYlZUVE5vZGUoYm9vbCBmbGFnKQordm9pZCBFbGVtZW50OjpzZXRJc1dlYlZUVE5v
ZGUoKQogewotICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLT5zZXRJc1dlYlZUVE5vZGUoZmxh
Zyk7CisgICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCktPnNldElzV2ViVlRUTm9kZSgpOworfQor
Citib29sIEVsZW1lbnQ6OmlzV2ViVlRURnV0dXJlTm9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlzV2ViVlRURnV0dXJlTm9kZSgp
OworfQorCit2b2lkIEVsZW1lbnQ6OnNldElzV2ViVlRURnV0dXJlTm9kZSgpCit7CisgICAgZW5z
dXJlRWxlbWVudFJhcmVEYXRhKCktPnNldElzV2ViVlRURnV0dXJlTm9kZSgpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDNlMDc3NjQuLjhlN2ZiMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaApAQCAtNDM0LDcgKzQzNCw5IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICBib29sIGlzV2ViVlRUTm9kZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0SXNXZWJWVFRO
b2RlKGJvb2wgZmxhZyk7CisgICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoKTsKKyAgICBib29sIGlz
V2ViVlRURnV0dXJlTm9kZSgpIGNvbnN0OworICAgIHZvaWQgc2V0SXNXZWJWVFRGdXR1cmVOb2Rl
KCk7CiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggNTI2MzE1YS4uMDA1NTA5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6aXNXZWJWVFROb2RlOwog
ICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6c2V0SXNXZWJWVFROb2RlOworICAgIHVzaW5nIE5vZGVS
YXJlRGF0YTo6aXNXZWJWVFRGdXR1cmVOb2RlOworICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6c2V0
SXNXZWJWVFRGdXR1cmVOb2RlOwogI2VuZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
ICAgIGJvb2wgY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudCgpIHsgcmV0dXJuIG1fY29udGFpbnNG
dWxsU2NyZWVuRWxlbWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
YXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IGE1NWZj
OTcuLjJlMDA4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTI5LDYgKzI5LDkg
QEAKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAi
UXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgIlRhZ05vZGVMaXN0LmgiCisjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQorI2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2VuZGlmCiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KQEAgLTI1NCw5ICsyNTcsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9uZWVkc0Zv
Y3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaChmYWxzZSkKICAgICAgICAgLCBtX3N0
eWxlQWZmZWN0ZWRCeUVtcHR5KGZhbHNlKQogICAgICAgICAsIG1faXNJbkNhbnZhc1N1YnRyZWUo
ZmFsc2UpCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICAsIG1faXNXZWJWVFROb2Rl
KGZhbHNlKQotI2VuZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICAgICAsIG1f
Y29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChmYWxzZSkKICNlbmRpZgpAQCAtMjcxLDYgKzI3MSw5
IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50
UnVsZXMoZmFsc2UpCiAgICAgICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRp
b25hbFJ1bGVzKGZhbHNlKQogICAgICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dhcmRQ
b3NpdGlvbmFsUnVsZXMoZmFsc2UpCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgICAgICAs
IG1fV2ViVlRUTm9kZVR5cGUoVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZU5vbmUpCisjZW5kaWYK
ICAgICB7CiAgICAgfQogCkBAIC0zNzEsOCArMzc0LDEwIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVk
OgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBib29sIGlzV2ViVlRUTm9kZSgpIHsgcmV0
dXJuIG1faXNXZWJWVFROb2RlOyB9Ci0gICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoYm9vbCB2YWx1
ZSkgeyBtX2lzV2ViVlRUTm9kZSA9IHZhbHVlOyB9CisgICAgYm9vbCBpc1dlYlZUVE5vZGUoKSB7
IHJldHVybiBtX1dlYlZUVE5vZGVUeXBlICE9IFRleHRUcmFjazo6V2ViVlRUTm9kZVR5cGVOb25l
OyB9CisgICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoKSB7IG1fV2ViVlRUTm9kZVR5cGUgPSBUZXh0
VHJhY2s6OldlYlZUVE5vZGVUeXBlUGFzdDsgfQorICAgIGJvb2wgaXNXZWJWVFRGdXR1cmVOb2Rl
KCkgeyByZXR1cm4gbV9XZWJWVFROb2RlVHlwZSA9PSBUZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBl
RnV0dXJlOyB9CisgICAgdm9pZCBzZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKSB7IG1fV2ViVlRUTm9k
ZVR5cGUgPSBUZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlRnV0dXJlOyB9CiAjZW5kaWYKICAgICBz
aG9ydCBtX3RhYkluZGV4OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleDsKQEAgLTM4
MCw5ICszODUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX25lZWRzRm9jdXNBcHBlYXJhbmNl
VXBkYXRlU29vbkFmdGVyQXR0YWNoIDogMTsKICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5RW1w
dHkgOiAxOwogICAgIGJvb2wgbV9pc0luQ2FudmFzU3VidHJlZSA6IDE7Ci0jaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQotICAgIGJvb2wgbV9pc1dlYlZUVE5vZGUgOiAxOwotI2VuZGlmCiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50
IDogMTsKICNlbmRpZgpAQCAtNDAwLDcgKzQwMiw5IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1f
Y2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyA6IDE7CiAgICAgYm9vbCBtX2No
aWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwogICAgIGJvb2wgbV9j
aGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7Ci0KKyNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCisgICAgVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZSBtX1dlYlZUVE5v
ZGVUeXBlIDogMjsKKyNlbmRpZgogcHJpdmF0ZToKICAgICBPd25QdHI8Tm9kZUxpc3RzTm9kZURh
dGE+IG1fbm9kZUxpc3RzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggMmRlMTA1My4uMmVmYzA3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApA
QCAtMTIxOCw3ICsxMjE4LDcgQEAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dDo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2MKICAgICAsIG1fZm9u
dFNpemUoMCkKIHsKIH0KLSAgICAKKwogdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50OjpjcmVhdGVTdWJ0cmVlcyhEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1ZSwgKCJjdWUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suaAppbmRleCA2MzUwM2RhLi4zZGZhZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrLmgKQEAgLTExMCw2ICsxMTAsOCBAQCBwdWJsaWM6CiAKICAgICBlbnVtIFRleHRU
cmFja1R5cGUgeyBUcmFja0VsZW1lbnQsIEFkZFRyYWNrLCBJbkJhbmQgfTsKICAgICBUZXh0VHJh
Y2tUeXBlIHRyYWNrVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tUeXBlOyB9CisgICAgCisg
ICAgZW51bSBXZWJWVFROb2RlVHlwZSB7V2ViVlRUTm9kZVR5cGVOb25lLCBXZWJWVFROb2RlVHlw
ZUZ1dHVyZSwgV2ViVlRUTm9kZVR5cGVQYXN0fTsKIAogICAgIGludCB0cmFja0luZGV4KCk7CiAg
ICAgdm9pZCBpbnZhbGlkYXRlVHJhY2tJbmRleCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IDYyYTBjOTYuLjAwNjI5ODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTE4MywxNSArMTgzLDkgQEAgUmVu
ZGVyT2JqZWN0KiBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBh
cmVuYSwgUmVuZGVyU3R5bGUqKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LWNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3VlOjpwYXN0Tm9kZXNTaGFkb3dQc2V1ZG9J
ZCgpCitjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6YWxsTm9kZXNTaGFkb3dQc2V1
ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1
YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcGFzdC1ub2RlcyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICByZXR1cm4gc3VidGl0bGVzOwotfQot
Ci1jb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6ZnV0dXJlTm9kZXNTaGFkb3dQc2V1
ZG9JZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1
YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNr
LWFsbC1ub2RlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gc3VidGl0bGVzOwogfQogCkBAIC0yMTMsOCArMjA3LDcgQEAgVGV4dFRyYWNrQ3VlOjpU
ZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91YmxlIHN0YXJ0
LCBkb3VibGUKICAgICAsIG1fcGF1c2VPbkV4aXQoZmFsc2UpCiAgICAgLCBtX3NuYXBUb0xpbmVz
KHRydWUpCiAgICAgLCBtX2hhc0lubmVyVGltZXN0YW1wcyhmYWxzZSkKLSAgICAsIG1fcGFzdERv
Y3VtZW50Tm9kZXMoSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxEb2N1bWVudCo+
KGNvbnRleHQpKSkKLSAgICAsIG1fZnV0dXJlRG9jdW1lbnROb2RlcyhIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQorICAgICwgbV9hbGxEb2N1
bWVudE5vZGVzKEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihj
b250ZXh0KSkpCiAgICAgLCBtX2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlKHRydWUpCiAgICAgLCBt
X2Rpc3BsYXlUcmVlKFRleHRUcmFja0N1ZUJveDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50
Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgdGhpcykpCiB7CkBAIC00ODgsMTIgKzQ4MSw2
IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgoKQogICAgIG1fY3VlSW5k
ZXggPSBpbnZhbGlkQ3VlSW5kZXg7CiB9CiAKLXZvaWQgVGV4dFRyYWNrQ3VlOjptYXJrTm9kZXNB
c1dlYlZUVE5vZGVzKE5vZGUqIHJvb3QpCi17Ci0gICAgZm9yIChFbGVtZW50KiBjaGlsZCA9IEVs
ZW1lbnRUcmF2ZXJzYWw6OmZpcnN0V2l0aGluKHJvb3QpOyBjaGlsZDsgY2hpbGQgPSBFbGVtZW50
VHJhdmVyc2FsOjpuZXh0KGNoaWxkLCByb290KSkKLSAgICAgICAgY2hpbGQtPnNldElzV2ViVlRU
Tm9kZSh0cnVlKTsKLX0KLQogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBUZXh0VHJhY2tD
dWU6OmdldEN1ZUFzSFRNTCgpCiB7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNsb25l
ZEZyYWdtZW50OwpAQCAtNTE2LDcgKzUwMyw2IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gVGV4dFRyYWNrQ3VlOjpnZXRDdWVBc0hUTUwoKQogCiAgICAgY2xvbmVkRnJhZ21lbnQgPSBE
b2N1bWVudEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fZG9jdW1lbnRGcmFnbWVu
dC0+Y2xvbmVDaGlsZE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKLSAgICBtYXJrTm9kZXNB
c1dlYlZUVE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKIAogICAgIHJldHVybiBjbG9uZWRG
cmFnbWVudC5yZWxlYXNlKCk7CiB9CkBAIC02NzYsNTAgKzY2Miw1NCBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6Y2FsY3VsYXRlRGlzcGxheVBhcmFtZXRlcnMoKQogICAgIC8vIGlzIGRlZmluZWQgaW4g
dGVybXMgb2YgdGhlIG90aGVyIGFzcGVjdHMgb2YgdGhlIGN1ZS4KICAgICBtX2NvbXB1dGVkTGlu
ZVBvc2l0aW9uID0gY2FsY3VsYXRlQ29tcHV0ZWRMaW5lUG9zaXRpb24oKTsKIH0KKyAgICAKK3Zv
aWQgVGV4dFRyYWNrQ3VlOjptYXJrRnV0dXJlQW5kUGFzdE5vZGVzKEVsZW1lbnQqIHJvb3QsIGRv
dWJsZSBwcmV2aW91c1RpbWVzdGFtcCwgZG91YmxlIG1vdmllVGltZSkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZXN0YW1wVGFnLCAoQVNDSUlMaXRlcmFsKCJ0
aW1lc3RhbXAiKSkpOworICAgIAorICAgIGJvb2wgaXNQYXN0Tm9kZSA9IHRydWU7CisgICAgZG91
YmxlIGN1cnJlbnRUaW1lc3RhbXAgPSBwcmV2aW91c1RpbWVzdGFtcDsKKyAgICBpZiAoY3VycmVu
dFRpbWVzdGFtcCA+IG1vdmllVGltZSkKKyAgICAgICAgaXNQYXN0Tm9kZSA9IGZhbHNlOworICAg
IAorICAgIGZvciAoTm9kZSogY2hpbGQgPSByb290LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoY2hpbGQsIHJvb3QpKSB7CisgICAgICAgIGlmIChjaGls
ZC0+bm9kZU5hbWUoKSA9PSB0aW1lc3RhbXBUYWcpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIHBv
c2l0aW9uID0gMDsKKyAgICAgICAgICAgIFN0cmluZyB0aW1lc3RhbXAgPSBjaGlsZC0+bm9kZVZh
bHVlKCk7CisgICAgICAgICAgICBkb3VibGUgY3VycmVudFRpbWVzdGFtcCA9IFdlYlZUVFBhcnNl
cjo6Y3JlYXRlKDAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCktPmNvbGxlY3RUaW1lU3RhbXAo
dGltZXN0YW1wLCAmcG9zaXRpb24pOworICAgICAgICAgICAgQVNTRVJUKGN1cnJlbnRUaW1lc3Rh
bXAgIT0gLTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY3VycmVudFRpbWVzdGFt
cCA+IG1vdmllVGltZSkKKyAgICAgICAgICAgICAgICBpc1Bhc3ROb2RlID0gZmFsc2U7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChjaGlsZC0+aXNFbGVtZW50Tm9kZSgpKSB7Cisg
ICAgICAgICAgICBpZiAoIWlzUGFzdE5vZGUpCisgICAgICAgICAgICAgICAgdG9FbGVtZW50KGNo
aWxkKS0+c2V0SXNXZWJWVFRGdXR1cmVOb2RlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdG9FbGVtZW50KGNoaWxkKS0+c2V0SXNXZWJWVFROb2RlKCk7CisgICAgICAgIH0K
KyAgICB9Cit9CiAKIHZvaWQgVGV4dFRyYWNrQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZShmbG9hdCBt
b3ZpZVRpbWUpCiB7CiAgICAgLy8gVGhlIGRpc3BsYXkgdHJlZSBtYXkgY29udGFpbiBXZWJWVFQg
dGltZXN0YW1wIG9iamVjdHMgcmVwcmVzZW50aW5nCiAgICAgLy8gdGltZXN0YW1wcyAocHJvY2Vz
c2luZyBpbnN0cnVjdGlvbnMpLCBhbG9uZyB3aXRoIGRpc3BsYXlhYmxlIG5vZGVzLgotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxpdGVy
YWwoInRpbWVzdGFtcCIpKSk7CiAKICAgICBpZiAoIXRyYWNrKCktPmlzUmVuZGVyZWQoKSkKICAg
ICAgIHJldHVybjsKIAotICAgIGJvb2wgaXNQYXN0Tm9kZSA9IHRydWU7CiAKLSAgICAvLyBDbGVh
ciB0aGUgY29udGVudHMgb2YgdGhlIHR3byBzZXRzLgotICAgIG1fZnV0dXJlRG9jdW1lbnROb2Rl
cy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX2Z1dHVyZURvY3VtZW50Tm9kZXMtPnNldFBzZXVk
byhmdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwotCi0gICAgbV9wYXN0RG9jdW1lbnROb2Rl
cy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX3Bhc3REb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8o
cGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKSk7CisgICAgLy8gQ2xlYXIgdGhlIGNvbnRlbnRzIG9m
IHRoZSBzZXQuCisgICAgbV9hbGxEb2N1bWVudE5vZGVzLT5yZW1vdmVDaGlsZHJlbigpOworICAg
IG1fYWxsRG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKGFsbE5vZGVzU2hhZG93UHNldWRvSWQoKSk7
CiAKICAgICAvLyBVcGRhdGUgdGhlIHR3byBzZXRzIGNvbnRhaW5pbmcgcGFzdCBhbmQgZnV0dXJl
IFdlYlZUVCBvYmplY3RzLgogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZWZlcmVuY2VU
cmVlID0gZ2V0Q3VlQXNIVE1MKCk7CiAKLSAgICBpZiAoIW1faGFzSW5uZXJUaW1lc3RhbXBzKSB7
Ci0gICAgICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKHJlZmVyZW5jZVRyZWUp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZm9yIChOb2RlICpjaGlsZCA9IHJlZmVy
ZW5jZVRyZWUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5ub2RlTmFtZSgpID09IHRpbWVzdGFtcFRhZykgewot
ICAgICAgICAgICAgdW5zaWduZWQgaW50IHBvc2l0aW9uID0gMDsKLSAgICAgICAgICAgIFN0cmlu
ZyB0aW1lc3RhbXAgPSBjaGlsZC0+bm9kZVZhbHVlKCk7Ci0KLSAgICAgICAgICAgIGRvdWJsZSB0
aW1lc3RhbXBUaW1lID0gV2ViVlRUUGFyc2VyOjpjcmVhdGUoMCwgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KS0+Y29sbGVjdFRpbWVTdGFtcCh0aW1lc3RhbXAsICZwb3NpdGlvbik7Ci0gICAgICAg
ICAgICBBU1NFUlQodGltZXN0YW1wVGltZSAhPSAtMSk7Ci0KLSAgICAgICAgICAgIGlmICh0aW1l
c3RhbXBUaW1lID4gbW92aWVUaW1lKQotICAgICAgICAgICAgICAgIGlzUGFzdE5vZGUgPSBmYWxz
ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc1Bhc3ROb2RlKQotICAgICAgICAgICAgbV9w
YXN0RG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lTm9kZSh0cnVlKSwgQVNT
RVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2Z1
dHVyZURvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKGNoaWxkLT5jbG9uZU5vZGUodHJ1ZSksIEFT
U0VSVF9OT19FWENFUFRJT04sIGZhbHNlKTsKLSAgICB9CisgICAgbV9hbGxEb2N1bWVudE5vZGVz
LT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKKyAgICBtYXJrRnV0dXJlQW5kUGFzdE5vZGVz
KG1fYWxsRG9jdW1lbnROb2Rlcy5nZXQoKSwgc3RhcnRUaW1lKCksIG1vdmllVGltZSk7CiB9CiAK
IFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlQm94PiBUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlUcmVl
KCkKQEAgLTc0MSw5ICs3MzEsOCBAQCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gVGV4dFRy
YWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCiAgICAgLy8gJ2Rpc3BsYXknIHByb3BlcnR5IGhhcyB0
aGUgdmFsdWUgJ2lubGluZScuIFRoaXMgaXMgdGhlIFdlYlZUVCBjdWUKICAgICAvLyBiYWNrZ3Jv
dW5kIGJveC4KIAotICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1bHQgaW4g
bV9wYXN0RG9jdW1lbnROb2Rlcy4KLSAgICBtX2Rpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX3Bh
c3REb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKLSAgICBtX2Rpc3Bs
YXlUcmVlLT5hcHBlbmRDaGlsZChtX2Z1dHVyZURvY3VtZW50Tm9kZXMsIEFTU0VSVF9OT19FWENF
UFRJT04sIHRydWUpOworICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1bHQg
aW4gbV9hbGxEb2N1bWVudE5vZGVzLgorICAgIG1fZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1f
YWxsRG9jdW1lbnROb2RlcywgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiAKICAgICAvLyBG
SVhNRShCVUcgNzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVjdHMg
dGhhdCBhcmUgbm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4dCBPYmplY3RzIG11c3QgYmUgd3Jh
cHBlZCBpbiBhbm9ueW1vdXMgYm94ZXMgd2hvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oCmluZGV4IGNmMTdkOTkuLjBlNzIzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtODAsOCArODAsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIH5UZXh0VHJhY2tDdWUoKTsKIAotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IHBhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkKCk7Ci0gICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCgpOworICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIGFsbE5vZGVzU2hhZG93UHNldWRvSWQoKTsKIAogICAgIFRleHRUcmFjayogdHJhY2so
KSBjb25zdDsKICAgICB2b2lkIHNldFRyYWNrKFRleHRUcmFjayopOwpAQCAtMTI2LDcgKzEyNSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVDdWVJbmRleCgpOwogCiAgICAgUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBnZXRDdWVBc0hUTUwoKTsKLSAgICB2b2lkIG1hcmtOb2Rl
c0FzV2ViVlRUTm9kZXMoTm9kZSopOwogCiAgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4pOwogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2
ZW50PiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTM3LDYgKzEzNSw3IEBAIHB1YmxpYzoKICAgICBQ
YXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gZ2V0RGlzcGxheVRyZWUoKTsKICAgICB2b2lkIHVw
ZGF0ZURpc3BsYXlUcmVlKGZsb2F0KTsKICAgICB2b2lkIHJlbW92ZURpc3BsYXlUcmVlKCk7Cisg
ICAgdm9pZCBtYXJrRnV0dXJlQW5kUGFzdE5vZGVzKEVsZW1lbnQqLCBkb3VibGUsIGRvdWJsZSk7
CiAKICAgICBpbnQgY2FsY3VsYXRlQ29tcHV0ZWRMaW5lUG9zaXRpb24oKTsKIApAQCAtMjA5LDgg
KzIwOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3NuYXBUb0xpbmVzOwogCiAgICAgYm9vbCBt
X2hhc0lubmVyVGltZXN0YW1wczsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IG1fcGFzdERv
Y3VtZW50Tm9kZXM7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2Z1dHVyZURvY3VtZW50
Tm9kZXM7CisgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2FsbERvY3VtZW50Tm9kZXM7CiAK
ICAgICBib29sIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2U7CiAgICAgUmVmUHRyPFRleHRUcmFj
a0N1ZUJveD4gbV9kaXNwbGF5VHJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svV2ViVlRUUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
UGFyc2VyLmNwcAppbmRleCBmZWQwMzY5Li4yOTdlNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCkBAIC0zNjQsNyArMzY0LDYgQEAgdm9pZCBXZWJWVFRQ
YXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICAg
ICAgICAgY2hpbGQgPSBIVE1MRWxlbWVudDo6Y3JlYXRlKHFUYWcsIGRvY3VtZW50KTsKIAogICAg
ICAgICBpZiAoY2hpbGQpIHsKLSAgICAgICAgICAgIGNoaWxkLT5zZXRJc1dlYlZUVE5vZGUodHJ1
ZSk7CiAgICAgICAgICAgICBpZiAobV90b2tlbi5jbGFzc2VzKCkuc2l6ZSgpID4gMCkKICAgICAg
ICAgICAgICAgICBjaGlsZC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXRvbWljU3RyaW5nKG1f
dG9rZW4uY2xhc3NlcygpLmRhdGEoKSwgbV90b2tlbi5jbGFzc2VzKCkuc2l6ZSgpKSk7CiAgICAg
ICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUocVRhZykpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KaW5kZXggNzc5YTRiYy4uNzVmN2Zj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01h
Yy5tbQpAQCAtMjUzLDEzICsyNTMsNyBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01h
Yzo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdAogICAgIENvbG9yIGNvbG9yID0g
Y2FwdGlvbnNCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICBpZiAoY29sb3IuaXNWYWxpZCgpKSB7CiAg
ICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgiIHZpZGVvOjoiKTsKLSAg
ICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRUcmFja0N1ZTo6cGFz
dE5vZGVzU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNo
ZWV0LmFwcGVuZCgneycpOwotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBl
bmQoY3NzQ29sb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgY29sb3IpKTsK
LSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCd9Jyk7Ci0gICAgICAg
IAotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoIiB2aWRlbzo6Iik7
Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6
OmZ1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQoKSk7CisgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVT
dHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6OmFsbE5vZGVzU2hhZG93UHNldWRvSWQoKSk7
CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgneycpOwogICAgICAg
ICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoY3NzQ29sb3JQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUJhY2tncm91bmRDb2xvciwgY29sb3IpKTsKICAgICAgICAgY2FwdGlvbnNPdmVycmlk
ZVN0eWxlU2hlZXQuYXBwZW5kKCd9Jyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181256</attachid>
            <date>2013-01-03 17:45:39 -0800</date>
            <delta_ts>2013-01-03 17:59:37 -0800</delta_ts>
            <desc>Proposed fix 0.6</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>38617</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDIyNGVlLi4zMmRmMjA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTIt
MjEgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDpmdXR1cmUgcHNldWRvIGNsYXNzIGZvciB0aGUgV2ViVlRUIDo6Y3VlIHBzZXVkbyBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmll
ZCB0aGUgdHJhY2sgY3NzIG1hdGNoaW5nIHRlc3QgdG8gY292ZXIgOmZ1dHVyZSBwc2V1ZG8tY2xh
c3MgY2FzZS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9u
cy1pbm5lci10aW1lc3RhbXBzLnZ0dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay9j
YXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQ6CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2st
Y3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1j
c3MtbWF0Y2hpbmcuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVy
aW5nLWlubmVyLXRpbWVzdGFtcHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1l
ZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1sOiBUaGUg
dGVzdCB3YXMgcmVtb3ZlZCBiZWNhdXNlIGl0IHdhcyBiYXNlZCBvbiB0aGUgb2xkCisgICAgICAg
IGZ1dHVyZS9wYXN0IG5vZGVzIHJlbmRlcmluZyBsb2dpYy4KKwogMjAxMi0xMi0yMSAgS2VubmV0
aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIEFycmF5QnVmZmVy
VmlldyBjb25zdHJ1Y3RvciBvbiBET01XaW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBzLnZ0dCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10
aW1lc3RhbXBzLnZ0dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMzNDE5OC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvY2FwdGlv
bnMtaW5uZXItdGltZXN0YW1wcy52dHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi3v
u79XRUJWVFQNCi0NCi0xDQotMDA6MDA6MDAuMDAwIC0tPiAwMDowMDowMC45NTANCi08MDA6MDA6
MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJhb2tl
DQotDQotMg0KLTAwOjAwOjAxLjAwMCAtLT4gMDA6MDA6MDMuNjAwDQotPDAwOjAwOjAxLjIwMD5T
b21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFu
ZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50
aGUgPDAwOjAwOjAzLjQ1MD5wYWluDQotDQotMw0KLTAwOjAwOjAzLjcwMCAtLT4gMDA6MDA6MDQu
MjUwDQotPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUgPDAwOjAwOjA0LjAwMD5SYWluDQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmcudnR0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmcudnR0Cmlu
ZGV4IGE3MWJjYWYuLjMyNzQ4YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLnZ0dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQKQEAgLTcsMyArNyw3IEBAIExvcnVtIGlwc3Vt
CiAyCiAwMDowMS4wMDAgLS0+IDAwOjAyLjAwMAogPGMucmVkPmRvbG9yIHNpdCA8L2M+PGMuZ3Jl
ZW4+YW1ldCwgY29uc2VjdGV0dXIgPC9jPjxjLnJlZDI+YWRpcGlzY2luZyBlbGl0PC9jPgorCisz
CiswMDowMi4wMDAgLS0+IDAwOjA1LjAwMAorPDAwOjAyLjAwMD48Yz5TdXNwZW5kaXNzZSBhY2N1
bXNhbiwgPC9jPjwwMDowMy4wMDA+PGM+bWF1cmlzIHNlZCA8L2M+PDAwOjA0LjAwMD48Yz5ldWlz
bW9kIHBoYXJldHJhPC9jPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQudHh0
CmluZGV4IDBmMjM5NTMuLjQwODdiZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDI5IEBA
Ci1UZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgY2xhc3Mg
bmFtZQorMS4gVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhl
IGNsYXNzIG5hbWUKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVZFTlQoc2Vla2VkKQogRVhQRUNU
RUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDAsIDApJykg
T0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMCwg
MTI4LCAwKScpIE9LCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9
PSAncmdiKDI1NSwgMCwgMCknKSBPSworCitSVU4odmlkZW8uY3VycmVudFRpbWUgPSAyLjUpCitF
VkVOVChzZWVrZWQpCisKKworMi4gVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJv
cGVybHkgYnkgdGhlICc6ZnV0dXJlJyBwc2V1ZG8gY2xhc3MuCitFWFBFQ1RFRCAoZ2V0Q29tcHV0
ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVD
VEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMTI4LCAxMjgsIDEy
OCknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3Jn
YigxMjgsIDEyOCwgMTI4KScpIE9LCisKK1JVTih2aWRlby5jdXJyZW50VGltZSA9IDMuNSkKK0VW
RU5UKHNlZWtlZCkKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09
ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3Vl
Tm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29t
cHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDEyOCwgMTI4LCAxMjgpJykgT0sKKwor
UlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gNC41KQorRVZFTlQoc2Vla2VkKQorRVhQRUNURUQgKGdl
dENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9L
CitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwg
MjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9y
ID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSwogRU5EIE9GIFRFU1QKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmcuaHRtbAppbmRleCBkMDQyMjVhLi44
MTQ1YjJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0
Y2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hp
bmcuaHRtbApAQCAtMTcsMjEgKzE3LDUxIEBACiAgICAgICAgIDxzY3JpcHQ+CiAKICAgICAgICAg
dmFyIGN1ZU5vZGU7Ci0KKyAgICAgICAgdmFyIHNlZWtlZENvdW50ID0gMDsKKyAgICAgICAgdmFy
IGluZm8gPSBbWyJyZ2IoMjU1LCAwLCAwKSIsICJyZ2IoMCwgMTI4LCAwKSIsICJyZ2IoMjU1LCAw
LCAwKSJdLAorICAgICAgICAgICAgICAgICAgICBbInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2Io
MTI4LCAxMjgsIDEyOCkiLCAicmdiKDEyOCwgMTI4LCAxMjgpIl0sCisgICAgICAgICAgICAgICAg
ICAgIFsicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2IoMTI4
LCAxMjgsIDEyOCkiXSwKKyAgICAgICAgICAgICAgICAgICAgWyJyZ2IoMjU1LCAyNTUsIDI1NSki
LCAicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigyNTUsIDI1NSwgMjU1KSJdXTsKKyAgICAgICAg
CisgICAgICAgIGZ1bmN0aW9uIHNraXBOb25FbGVtZW50cyhyb290KQorICAgICAgICB7CisgICAg
ICAgICAgICBuZXh0RWxlbWVudFNpYmxpbmcgPSByb290OworICAgICAgICAgICAgd2hpbGUgKG5l
eHRFbGVtZW50U2libGluZy5ub2RlVHlwZSAhPSAxKSB7CisgICAgICAgICAgICAgICAgbmV4dEVs
ZW1lbnRTaWJsaW5nID0gbmV4dEVsZW1lbnRTaWJsaW5nLm5leHRTaWJsaW5nOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgcmV0dXJuIG5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgfQor
ICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkKICAgICAgICAgewotICAgICAgICAg
ICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAncGFzdC1ub2Rlcycp
LmZpcnN0Q2hpbGQ7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUo
Y3VlTm9kZSkuY29sb3IiLCAicmdiKDI1NSwgMCwgMCkiKTsKLSAgICAgICAgICAgIGN1ZU5vZGUg
PSBjdWVOb2RlLm5leHRTaWJsaW5nOwotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21w
dXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgInJnYigwLCAxMjgsIDApIik7Ci0gICAgICAgICAg
ICBjdWVOb2RlID0gY3VlTm9kZS5uZXh0U2libGluZzsKLSAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMjU1LCAwLCAwKSIpOwot
ICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgaWYgKHRlc3RFbmRlZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmIChzZWVrZWRDb3VudCA9PSAxKSB7
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiMi4gVGVzdCB0aGF0
IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlICc6ZnV0dXJlJyBwc2V1ZG8g
Y2xhc3MuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9u
RWxlbWVudHModGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdhbGwtbm9kZXMnKS5maXJz
dENoaWxkKTsKKyAgICAgICAgICAgIHNraXBOb25FbGVtZW50cyhjdWVOb2RlKTsKKyAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9b
c2Vla2VkQ291bnRdWzBdKTsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHMo
Y3VlTm9kZS5uZXh0U2libGluZyk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1
dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtlZENvdW50XVsxXSk7CisgICAgICAg
ICAgICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUubmV4dFNpYmxpbmcpOworICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwg
aW5mb1tzZWVrZWRDb3VudF1bMl0pOworCisgICAgICAgICAgICBpZiAoKytzZWVrZWRDb3VudCA9
PSBpbmZvLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAg
IHJ1bigidmlkZW8uY3VycmVudFRpbWUgPSAiICsgKHZpZGVvLmN1cnJlbnRUaW1lICsgMSkpOwor
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKICAg
ICAgICAgewotICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0IHRoYXQgY3VlcyBhcmUgYmVp
bmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgY2xhc3MgbmFtZSIpOworICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIxLiBUZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBi
eSB0aGUgY2xhc3MgbmFtZSIpOwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogICAg
ICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnLi4vY29udGVudC90
ZXN0Jyk7CiAgICAgICAgICAgICB2aWRlby5pZCA9ICJ0ZXN0dmlkZW8iOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3Rh
bXBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5k
ZXJpbmctaW5uZXItdGltZXN0YW1wcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJkODkzYjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2sv
dHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE1NyArMCwwIEBACi1UZXN0IHRoYXQgVGV4dFRyYWNrJ3MgY3VlcyBhcmUg
cmVuZGVyZWQgY29ycmVjdGx5IHdoZW4gdGhleSBjb250YWluIGlubmVyIHRpbWVzdGFtcHMuCi1F
VkVOVChjYW5wbGF5dGhyb3VnaCkKLQotKiogRmlyc3QgY3VlIChlbXB0eSkgKioKLUVWRU5UKHNl
ZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDAKLVBhc3Q6IAotRnV0dXJlOiBDaG9j
b2xhdGUgUmFpbiBLYXJhb2tlCi1Db21wbGV0ZTogPDAwOjAwOjAwLjIwMD5DaG9jb2xhdGUgPDAw
OjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9rZQotCi0qKiBGaXJzdCBjdWUgKG9u
ZSB3b3JkKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMC4y
NQotUGFzdDogQ2hvY29sYXRlIAotRnV0dXJlOiBSYWluIEthcmFva2UKLUNvbXBsZXRlOiA8MDA6
MDA6MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJh
b2tlCi0KLSoqIEZpcnN0IGN1ZSAodHdvIHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1
ZSAwICoKLUN1cnJlbnQgdGltZTogMC41Ci1QYXN0OiBDaG9jb2xhdGUgUmFpbiAKLUZ1dHVyZTog
S2FyYW9rZQotQ29tcGxldGU6IDwwMDowMDowMC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+
UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UKLQotKiogRmlyc3QgY3VlICh0aHJlZSB3b3Jkcykg
KioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDAuNzUKLVBhc3Q6
IENob2NvbGF0ZSBSYWluIEthcmFva2UKLUZ1dHVyZTogCi1Db21wbGV0ZTogPDAwOjAwOjAwLjIw
MD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9rZQotCi0q
KiBTZWNvbmQgY3VlIChlbXB0eSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJy
ZW50IHRpbWU6IDEKLVBhc3Q6IAotRnV0dXJlOiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVl
bCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0
YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhl
cnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFp
bgotCi0qKiBTZWNvbmQgY3VlIChvbmUgd29yZCkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUg
MCAqCi1DdXJyZW50IHRpbWU6IDEuMjUKLVBhc3Q6IFNvbWUgCi1GdXR1cmU6IHN0YXkgZHJ5IGFu
ZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6
MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAw
OjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDow
MDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlICh0d28gd29yZHMpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAxLjUKLVBhc3Q6IFNvbWUgc3RheSAKLUZ1
dHVyZTogZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4y
MDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIw
MD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4y
MDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlICh0aHJlZSB3b3Jkcykg
KioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDEuNzUKLVBhc3Q6
IFNvbWUgc3RheSBkcnkgCi1GdXR1cmU6IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxl
dGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5k
cnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5m
ZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3Vl
IChzYW1lIGFzIGJlZm9yZSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50
IHRpbWU6IDIKLVBhc3Q6IFNvbWUgc3RheSBkcnkgCi1GdXR1cmU6IGFuZCBvdGhlcnMgZmVlbCB0
aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkg
PDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMg
PDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgot
Ci0qKiBTZWNvbmQgY3VlIChmb3VyIHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAw
ICoKLUN1cnJlbnQgdGltZTogMi4yNQotUGFzdDogU29tZSBzdGF5IGRyeSBhbmQgCi1GdXR1cmU6
IG90aGVycyBmZWVsIHRoZSBwYWluCi1Db21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDow
MDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6
MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAw
OjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKGZpdmUgd29yZHMpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAyLjUKLVBhc3Q6IFNvbWUgc3RheSBkcnkg
YW5kIG90aGVycyAKLUZ1dHVyZTogZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4y
MDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIw
MD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4y
MDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9y
ZSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDIuNzUKLVBh
c3Q6IFNvbWUgc3RheSBkcnkgYW5kIG90aGVycyAKLUZ1dHVyZTogZmVlbCB0aGUgcGFpbgotQ29t
cGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcw
MD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1
MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQg
Y3VlIChzaXggd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0
aW1lOiAzCi1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVlbCAKLUZ1dHVyZTogdGhl
IHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDww
MDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDww
MDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQot
KiogU2Vjb25kIGN1ZSAoc2V2ZW4gd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAg
KgotQ3VycmVudCB0aW1lOiAzLjI1Ci1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVl
bCB0aGUgCi1GdXR1cmU6IHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAw
OjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDow
Mi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6
MDMuNDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAoZWlnaHQgd29yZHMpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAzLjUKLVBhc3Q6IFNvbWUgc3RheSBkcnkg
YW5kIG90aGVycyBmZWVsIHRoZSBwYWluCi1GdXR1cmU6IAotQ29tcGxldGU6IDwwMDowMDowMS4y
MDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIw
MD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4y
MDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBUaGlyZCBjdWUgKG9uZSB3b3JkKSAqKgot
RVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMy43NQotUGFzdDogQ2hv
Y29sYXRlIAotRnV0dXJlOiBSYWluCi1Db21wbGV0ZTogPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUg
PDAwOjAwOjA0LjAwMD5SYWluCi0KLSoqIFRoaXJkIGN1ZSAodHdvIHdvcmRzKSAqKgotRVZFTlQo
c2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogNAotUGFzdDogQ2hvY29sYXRlIFJh
aW4KLUZ1dHVyZTogCi1Db21wbGV0ZTogPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUgPDAwOjAwOjA0
LjAwMD5SYWluCi1FTkQgT0YgVEVTVAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjMyOWIxLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1w
cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgotCi0gICAgICAgIDxzY3Jp
cHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPS4u
L3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWNv
bnRyb2xzLmpzPjwvc2NyaXB0PgotCi0gICAgICAgIDxzY3JpcHQ+Ci0KLSAgICAgICAgdmFyIHRl
c3RUcmFjazsKLSAgICAgICAgdmFyIGN1ZURpc3BsYXlFbGVtZW50OwotICAgICAgICB2YXIgY3Vl
RGlzcGxheUNvbnRhaW5lcjsKLSAgICAgICAgdmFyIHNlZWtlZENvdW50ID0gMDsKLQotICAgICAg
ICB2YXIgdGVzdENhc2VEZXNjcmlwdGlvbiA9IFsKLSAgICAgICAgICAgICAgICAiRmlyc3QgY3Vl
IChlbXB0eSkiLAotICAgICAgICAgICAgICAgICJGaXJzdCBjdWUgKG9uZSB3b3JkKSIsCi0gICAg
ICAgICAgICAgICAgIkZpcnN0IGN1ZSAodHdvIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIkZp
cnN0IGN1ZSAodGhyZWUgd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZW1w
dHkpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAob25lIHdvcmQpIiwKLSAgICAgICAg
ICAgICAgICAiU2Vjb25kIGN1ZSAodHdvIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlNlY29u
ZCBjdWUgKHRocmVlIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKHNhbWUg
YXMgYmVmb3JlKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKGZvdXIgd29yZHMpIiwK
LSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZml2ZSB3b3JkcykiLAotICAgICAgICAgICAg
ICAgICJTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9yZSkiLAotICAgICAgICAgICAgICAgICJTZWNv
bmQgY3VlIChzaXggd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoc2V2ZW4g
d29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZWlnaHQgd29yZHMpIiwKLSAg
ICAgICAgICAgICAgICAiVGhpcmQgY3VlIChvbmUgd29yZCkiLAotICAgICAgICAgICAgICAgICJU
aGlyZCBjdWUgKHR3byB3b3JkcykiCi0gICAgICAgIF07Ci0KLSAgICAgICAgLy8gRWFjaCB0ZXN0
IGNhc2UgaXMgZm91bmQgYnkgaW5jcmVtZW50aW5nIHdpdGggMC4yNTAgdGhlIGN1cnJlbnQgdGlt
ZS4KLSAgICAgICAgdmFyIHRlc3RDYXNlU2Vla1RpbWUgPSBbCi0gICAgICAgIF07Ci0KLSAgICAg
ICAgdmFyIGN1cnJlbnRUZXN0Q2FzZSA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkK
LSAgICAgICAgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0VHJhY2sudHJh
Y2suYWN0aXZlQ3Vlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGN1ZURpc3BsYXlF
bGVtZW50ID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdkaXNwbGF5JywgaSk7Ci0K
LSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiKiBDdWUgIiArIGkgKyAiICoiKTsKLQotICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiQ3VycmVudCB0aW1lOiAiICsgTWF0aC5yb3VuZCh2aWRlby5jdXJyZW50VGltZSAqIDEw
MCkgLyAxMDApOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiUGFzdDogIiArIGN1ZURp
c3BsYXlFbGVtZW50LmNoaWxkTm9kZXNbMF0uaW5uZXJIVE1MKTsKLSAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIkZ1dHVyZTogIiArIGN1ZURpc3BsYXlFbGVtZW50LmNoaWxkTm9kZXNbMV0u
aW5uZXJIVE1MKTsKLQotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiQ29tcGxldGU6ICIg
KyB0ZXN0VHJhY2sudHJhY2suYWN0aXZlQ3Vlc1tpXS50ZXh0KTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgcnVuTmV4dFRlc3RDYXNlKCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZnVu
Y3Rpb24gcnVuTmV4dFRlc3RDYXNlKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGN1cnJl
bnRUZXN0Q2FzZSA9PSB0ZXN0Q2FzZURlc2NyaXB0aW9uLmxlbmd0aCkgewotICAgICAgICAgICAg
ICAgIGVuZFRlc3QoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICBjb25zb2xlV3JpdGUo
IioqICIgKyAgdGVzdENhc2VEZXNjcmlwdGlvbltjdXJyZW50VGVzdENhc2VdICsgIiAqKiIpOwot
Ci0gICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHRlc3RDYXNlU2Vla1RpbWVbY3VycmVu
dFRlc3RDYXNlXTsKLSAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnc2Vla2VkJywgc2Vla2VkLCBm
YWxzZSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGN1cnJlbnRUZXN0Q2FzZSsrOwotICAgICAgICB9
Ci0KLSAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKLSAgICAgICAgewotICAgICAgICAgICAgY29u
c29sZVdyaXRlKCJUZXN0IHRoYXQgVGV4dFRyYWNrJ3MgY3VlcyBhcmUgcmVuZGVyZWQgY29ycmVj
dGx5IHdoZW4gdGhleSBjb250YWluIGlubmVyIHRpbWVzdGFtcHMuIik7Ci0KLSAgICAgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKLSAgICAgICAgICAgIHRlc3RUcmFjayA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ3RyYWNrJyk7Ci0gICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFG
aWxlKCd2aWRlbycsICcuLi9jb250ZW50L3Rlc3QnKTsKLQotICAgICAgICAgICAgd2FpdEZvckV2
ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGN1ZURp
c3BsYXlDb250YWluZXIgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbyk7Ci0KLSAgICAg
ICAgICAgICAgICBmb3IgKGkgPSAwLjA7IGkgPCA0LjUwMDsgaSArPSAwLjI1MCkKLSAgICAgICAg
ICAgICAgICAgICAgdGVzdENhc2VTZWVrVGltZS5wdXNoKGkpOwotCi0gICAgICAgICAgICAgICAg
cnVuTmV4dFRlc3RDYXNlKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotCi0gICAgICAg
IDwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KLSAg
ICAgICAgPHZpZGVvIGNvbnRyb2xzPgotICAgICAgICAgICAgPHRyYWNrIHNyYz0iY2FwdGlvbnMt
d2VidnR0L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMudnR0IiBraW5kPSJjYXB0aW9ucyIgZGVm
YXVsdD4KLSAgICAgICAgPC92aWRlbz4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMWEwNDA0Zi4uMGIxNjk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTEy
LTIxICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCA6ZnV0dXJlIHBzZXVkbyBjbGFzcyBmb3IgdGhlIFdlYlZUVCA6OmN1ZSBwc2V1ZG8gZWxlbWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NDcz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBjaGFuZ2VzIHRoZSBhcHByb2FjaCBvZiBzaG93aW5nIHBhc3QvZnV0dXJlIG5vZGUgb2Jq
ZWN0cy4gCisgICAgICAgIEJlZm9yZSB1cHBlci1sZXZlbCBjb250YWluZXJzIHdlcmUgdXNlZCB0
byBwdXQgcGFzdCBhbmQgZnV0dXJlIG5vZGVzIGluc2lkZS4gU3R5bGVzIHdlcmUgYXBwbGllZAor
ICAgICAgICB0byBjb250YWluZXJzLiBOb3cgc3R5bGVzIGNvdWxkIGJlIGFwcGxpZWQgZGlyZWN0
bHkgdG8gbm9kZXMgYnkgdXNpbmcgOjpjdWUoOmZ1dHVyZSkuCisgICAgICAgIFRoYXQgYWxsb3dz
IHRvIHN0eWxlIGZ1dHVyZS9wYXN0IFdlYlZUVCBub2RlcyBldmVuIGlmIHRoZXkgYXJlIG5lc3Rl
ZC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0IHdhcyBtb2RpZmllZCB0byBjb3ZlciBuZXcgY2Fz
ZXMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOiBhZGRlZCA6ZnV0dXJlIHBzZXVk
byBjbGFzcyBzdXBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVkb0lk
KToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDogZGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOgorICAg
ICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVz
b2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6IGRlZmluZSBzdHlsZSBzaGFyaW5nIHJ1
bGVzIGZvciBXZWJWVFQgb2JqZWN0cy4KKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6
CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2Rlcyk6Cisg
ICAgICAgICh2aWRlbzo6Y3VlKDpmdXR1cmUpKTogYWRkZWQgc3RhbmRhcmQgdXNlci1hZ2VudCBz
dHlsZXMgZm9yIHRoZSBmdXR1cmUgbm9kZXMuCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOiBz
ZXR0ZXIgZnVuY3Rpb25zIGRvbid0IGhhdmUgYW4gYXJndW1lbnQgbm93IGJlY2F1c2UgV2ViVlRU
IHR5cGUgZW51bSB3YXMgaW50cm9kdWNlZCBhbmQgdGhlIHJpZ2h0IHR5cGUgaXMgc2V0CisgICAg
ICAgIHdoZW4gdGhlIHNldHRlciBpcyBiZWluZyBjYWxsZWQuCisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpzZXRJc1dlYlZUVE5vZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50Ojppc1dlYlZUVEZ1dHVyZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6c2V0SXNXZWJWVFRGdXR1cmVOb2RlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5o
OgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgor
ICAgICAgICAoRWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmNw
cDoKKyAgICAgICAgKFNhbWVTaXplQXNOb2RlUmFyZURhdGEpOiBhZGRlZCBhIGR1bW15IGVudW0g
dmFsdWUuIEVudW0gaXMgaW50ZWdlciB0eXBlIGFuZCBpcyBhbGlnbmVkIGluIFdpbmRvd3Mgd2hl
biBwbGFjZWQgaW4gdGhlIGJpdGZpZWxkLAorICAgICAgICBzbyBpdCB0YWtlcyBtb3JlIHNwYWNl
LgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVS
YXJlRGF0YTo6Tm9kZVJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6
aXNXZWJWVFROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6c2V0SXNXZWJW
VFROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6aXNXZWJWVFRGdXR1cmVO
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6c2V0SXNXZWJWVFRGdXR1cmVO
b2RlKToKKyAgICAgICAgKE5vZGVSYXJlRGF0YSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRt
bC90cmFjay9UZXh0VHJhY2suaDogYWRkIGEgV2ViVlRUIG5vZGUgb2JqZWN0IHR5cGUgZW51bS4K
KyAgICAgICAgKFRleHRUcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjphbGxOb2Rlc1NoYWRvd1BzZXVk
b0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Z2V0Q3VlQXNIVE1MKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpzZXROb2RlT2JqZWN0Rmxh
Z3MpOiBkZXRlcm1pbmUgaWYgdGhlIG5vZGUgaXMgZnV0dXJlIG9yIHBhc3QgYW5kIG1hcmsgYXMg
V2ViVlRUIG5vZGUuCisgICAgICAgIFRoaXMgY29tYmluZXMgdGhlIGZ1bmN0aW9uYWxpdHkgcmVs
YXRlZCB0byBtYXJraW5nIG5vZGVzIGltcGxlbWVudGVkIGJlZm9yZSBpbiB1cGRhdGVEaXNwbGF5
VHJlZSBhbmQKKyAgICAgICAgbWFya05vZGVzQXNXZWJWVFROb2Rlcy4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaDoKKyAgICAgICAgKFRleHRUcmFja0N1ZSk6CisgICAgICAgICogaHRtbC90cmFj
ay9XZWJWVFRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb25z
dHJ1Y3RUcmVlRnJvbVRva2VuKTogbm8gbmVlZCB0byBtYXJrIG5vZGVzIGFzIFdlYlZUVCBub2Rl
cyB3aGVuIHBhcnNpbmcuIFRoaXMgaXMgZG9uZSBhdCB0aGUKKyAgICAgICAgcmVuZGVyaW5nIHN0
YWdlIGxhdGVyLgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpb25zU3R5
bGVTaGVldE92ZXJyaWRlKTogdGhlIGNvbnRhaW5lciBuYW1lIGhhcyBjaGFuZ2VkLgorCiAyMDEy
LTEyLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRh
dGUgbG9jYWxpemFibGUgc3RyaW5ncyBhcyBhIGZvbGxvd3VwIHRvIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzEzODM4NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXgg
OTU2ZTQ3Zi4uZDc4NzhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0yMjIs
NiArMjIyLDcgQEAgUHNldWRvSWQgQ1NTU2VsZWN0b3I6OnBzZXVkb0lkKFBzZXVkb1R5cGUgdHlw
ZSkKICAgICBjYXNlIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ6CiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogICAgIGNhc2UgUHNldWRvQ3VlOgorICAgIGNhc2UgUHNldWRvRnV0dXJlQ3VlOgog
I2VuZGlmCiAgICAgICAgIHJldHVybiBOT1BTRVVETzsKICAgICBjYXNlIFBzZXVkb05vdFBhcnNl
ZDoKQEAgLTMwNyw2ICszMDgsNyBAQCBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwg
Q1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlTWFwKAogI2VuZGlmCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBjdWUsICgiY3VlKCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZnV0dXJlQ3VlLCAoImZ1dHVy
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICNlbmRpZgogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpblJhbmdlLCAoImluLXJhbmdlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBvdXRPZlJhbmdlLCAoIm91dC1vZi1yYW5nZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKQEAgLTM4NSw2ICszODcsNyBAQCBzdGF0aWMgSGFz
aE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Q
c2V1ZG9UeXBlTWFwKAogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICAgICBu
YW1lVG9Qc2V1ZG9UeXBlLT5zZXQoY3VlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0N1ZSk7
CisgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChmdXR1cmVDdWUuaW1wbCgpLCBDU1NTZWxl
Y3Rvcjo6UHNldWRvRnV0dXJlQ3VlKTsKICNlbmRpZgogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBl
LT5zZXQoaW5SYW5nZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9JblJhbmdlKTsKICAgICAg
ICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KG91dE9mUmFuZ2UuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6
UHNldWRvT3V0T2ZSYW5nZSk7CkBAIC01MDcsNiArNTEwLDkgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6
ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogI2VuZGlmCiAgICAgY2FzZSBQc2V1ZG9JblJhbmdl
OgogICAgIGNhc2UgUHNldWRvT3V0T2ZSYW5nZToKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisg
ICAgY2FzZSBQc2V1ZG9GdXR1cmVDdWU6CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBQc2V1ZG9GaXJzdFBhZ2U6CiAgICAgY2FzZSBQc2V1ZG9MZWZ0UGFnZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmgKaW5kZXggZGVmZDM2Yy4uOTdjMmViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmgKQEAgLTE1OCw2ICsxNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50LAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAg
ICAgICAgICAgIFBzZXVkb0N1ZSwKKyAgICAgICAgICAgIFBzZXVkb0Z1dHVyZUN1ZSwKICNlbmRp
ZgogICAgICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4
IDU3YTFkOWYuLjY4ZDhkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3Bw
CkBAIC0xMTI0LDYgKzExMjQsMTIgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2Vs
ZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQsIGMKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT5z
ZXRDb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpOwogICAgICAgICAgICAgcmV0dXJuIGVsZW1l
bnQtPmlzT3V0T2ZSYW5nZSgpOworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnV0dXJlQ3VlOgorICAgICAgICAgICAgaWYgKGVsZW1lbnQt
PmlzV2ViVlRURnV0dXJlTm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1Vua25vd246CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vdFBhcnNl
ZDoKICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRl
eCBlODM2ZjMzLi40YjU0NTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBA
IC0xMjM2LDYgKzEyMzYsMTQgQEAgYm9vbCBTdHlsZVJlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0
aEVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCkgY29uc3QKICAgICBpZiAoZWxlbWVudC0+
aXNMaW5rKCkgJiYgbV9lbGVtZW50TGlua1N0YXRlICE9IHN0eWxlLT5pbnNpZGVMaW5rKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBpZiAo
ZWxlbWVudC0+aXNXZWJWVFROb2RlKCkgJiYgbV9lbGVtZW50LT5pc1dlYlZUVE5vZGUoKSAmJiBl
bGVtZW50LT5pc1dlYlZUVEZ1dHVyZU5vZGUoKSAhPSBtX2VsZW1lbnQtPmlzV2ViVlRURnV0dXJl
Tm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gRGVueSBzaGFyaW5nIHN0eWxl
cyBiZXR3ZWVuIFdlYlZUVCBub2RlcyBhbmQgbm9uLVdlYlZUVCBub2Rlcy4KKyAgICBpZiAoZWxl
bWVudC0+aXNXZWJWVFROb2RlKCkgIT0gbV9lbGVtZW50LT5pc1dlYlZUVE5vZGUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCmluZGV4IDEzOGZmMWQuLmQ4ZmFmNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKQEAgLTIzOCwyNSArMjM4LDE5IEBAIHZpZGVvOjot
d2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIHsKICAgICAtd2Via2l0LWJveC1mbGV4
OiAxOwogfQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBhc3Qtbm9kZXMgewor
dmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMgewogICAgIGRpc3BsYXk6
IGlubGluZTsKIAogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAg
ICBwYWRkaW5nOiAycHggMnB4OwogfQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNr
LWZ1dHVyZS1ub2RlcyB7Ci0gICAgdmlzaWJpbGl0eTogaGlkZGVuOwotICAgIGRpc3BsYXk6IGlu
bGluZTsKLQotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKLQotICAg
IG1hcmdpbi1sZWZ0OiAtMnB4OwotICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDBweDsKLX0KLQog
dmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IHsKICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CiAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICB3aGl0ZS1zcGFjZTogcHJlLXdy
YXA7CiB9CisKK3ZpZGVvOjpjdWUoOmZ1dHVyZSkgeworICAgIGNvbG9yOiBncmF5OworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IGQ1N2QwNGUuLjg3Yzg4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTIyODgsOSArMjI4OCwxOSBAQCBib29sIEVsZW1lbnQ6OmlzV2ViVlRUTm9kZSgp
IGNvbnN0CiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlz
V2ViVlRUTm9kZSgpOwogfQogCi12b2lkIEVsZW1lbnQ6OnNldElzV2ViVlRUTm9kZShib29sIGZs
YWcpCit2b2lkIEVsZW1lbnQ6OnNldElzV2ViVlRUTm9kZSgpCiB7Ci0gICAgZW5zdXJlRWxlbWVu
dFJhcmVEYXRhKCktPnNldElzV2ViVlRUTm9kZShmbGFnKTsKKyAgICBlbnN1cmVFbGVtZW50UmFy
ZURhdGEoKS0+c2V0SXNXZWJWVFROb2RlKCk7Cit9CisKK2Jvb2wgRWxlbWVudDo6aXNXZWJWVFRG
dXR1cmVOb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVtZW50
UmFyZURhdGEoKS0+aXNXZWJWVFRGdXR1cmVOb2RlKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0
SXNXZWJWVFRGdXR1cmVOb2RlKCkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+c2V0
SXNXZWJWVFRGdXR1cmVOb2RlKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXgg
M2UwNzc2NC4uOGU3ZmIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00MzQsNyArNDM0LDkgQEAg
cHVibGljOgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGJvb2wgaXNXZWJWVFROb2Rl
KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoYm9vbCBmbGFnKTsKKyAgICB2b2lk
IHNldElzV2ViVlRUTm9kZSgpOworICAgIGJvb2wgaXNXZWJWVFRGdXR1cmVOb2RlKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKTsKICNlbmRpZgogICAgIAogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRl
eCA1MjYzMTVhLi4wMDU1MDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBA
IC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgdXNp
bmcgTm9kZVJhcmVEYXRhOjppc1dlYlZUVE5vZGU7CiAgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjpz
ZXRJc1dlYlZUVE5vZGU7CisgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjppc1dlYlZUVEZ1dHVyZU5v
ZGU7CisgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjpzZXRJc1dlYlZUVEZ1dHVyZU5vZGU7CiAjZW5k
aWYKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgYm9vbCBjb250YWluc0Z1bGxTY3Jl
ZW5FbGVtZW50KCkgeyByZXR1cm4gbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50OyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuY3BwCmluZGV4IDk1NjA3YmIuLjVkM2Q4ZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuY3BwCkBAIC00OSw2ICs0OSwxMSBAQCBzdHJ1Y3QgU2FtZVNp
emVBc05vZGVSYXJlRGF0YSB7CiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICAgICB2b2lkKiBtX21p
Y3JvRGF0YTsKICNlbmRpZgorCisvLyBlbnVtIGlzIGludGVnZXIgdHlwZSBhbmQgaXMgYWxpZ25l
ZCBpbiBXaW5kb3dzIHdoZW4gcGxhY2VkIGluIHRoZSBiaXRmaWVsZCwgc28gaXQgdGFrZXMgbW9y
ZSBzcGFjZS4gCisjaWYgUExBVEZPUk0oV0lOKQorICAgIFRleHRUcmFjazo6V2ViVlRUTm9kZVR5
cGUgbV9XZWJWVFROb2RlVHlwZTsKKyNlbmRpZgogfTsKIENPTVBJTEVfQVNTRVJUKHNpemVvZihO
b2RlUmFyZURhdGEpID09IHNpemVvZihTYW1lU2l6ZUFzTm9kZVJhcmVEYXRhKSwgTm9kZVJhcmVE
YXRhU2hvdWxkU3RheVNtYWxsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IGE1
NWZjOTcuLjJlMDA4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTI5LDYgKzI5
LDkgQEAKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVk
ZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgIlRhZ05vZGVMaXN0LmgiCisjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQorI2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2VuZGlmCiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KQEAgLTI1NCw5ICsyNTcsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9uZWVk
c0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaChmYWxzZSkKICAgICAgICAgLCBt
X3N0eWxlQWZmZWN0ZWRCeUVtcHR5KGZhbHNlKQogICAgICAgICAsIG1faXNJbkNhbnZhc1N1YnRy
ZWUoZmFsc2UpCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICAsIG1faXNXZWJWVFRO
b2RlKGZhbHNlKQotI2VuZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICAgICAs
IG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChmYWxzZSkKICNlbmRpZgpAQCAtMjcxLDYgKzI3
MSw5IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFj
ZW50UnVsZXMoZmFsc2UpCiAgICAgICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9z
aXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dh
cmRQb3NpdGlvbmFsUnVsZXMoZmFsc2UpCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgICAg
ICAsIG1fV2ViVlRUTm9kZVR5cGUoVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZU5vbmUpCisjZW5k
aWYKICAgICB7CiAgICAgfQogCkBAIC0zNzEsOCArMzc0LDEwIEBAIHB1YmxpYzoKIAogcHJvdGVj
dGVkOgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBib29sIGlzV2ViVlRUTm9kZSgpIHsg
cmV0dXJuIG1faXNXZWJWVFROb2RlOyB9Ci0gICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoYm9vbCB2
YWx1ZSkgeyBtX2lzV2ViVlRUTm9kZSA9IHZhbHVlOyB9CisgICAgYm9vbCBpc1dlYlZUVE5vZGUo
KSB7IHJldHVybiBtX1dlYlZUVE5vZGVUeXBlICE9IFRleHRUcmFjazo6V2ViVlRUTm9kZVR5cGVO
b25lOyB9CisgICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoKSB7IG1fV2ViVlRUTm9kZVR5cGUgPSBU
ZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlUGFzdDsgfQorICAgIGJvb2wgaXNXZWJWVFRGdXR1cmVO
b2RlKCkgeyByZXR1cm4gbV9XZWJWVFROb2RlVHlwZSA9PSBUZXh0VHJhY2s6OldlYlZUVE5vZGVU
eXBlRnV0dXJlOyB9CisgICAgdm9pZCBzZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKSB7IG1fV2ViVlRU
Tm9kZVR5cGUgPSBUZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlRnV0dXJlOyB9CiAjZW5kaWYKICAg
ICBzaG9ydCBtX3RhYkluZGV4OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleDsKQEAg
LTM4MCw5ICszODUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX25lZWRzRm9jdXNBcHBlYXJh
bmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoIDogMTsKICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5
RW1wdHkgOiAxOwogICAgIGJvb2wgbV9pc0luQ2FudmFzU3VidHJlZSA6IDE7Ci0jaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQotICAgIGJvb2wgbV9pc1dlYlZUVE5vZGUgOiAxOwotI2VuZGlmCiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgbV9jb250YWluc0Z1bGxTY3JlZW5FbGVt
ZW50IDogMTsKICNlbmRpZgpAQCAtNDAwLDcgKzQwMiw5IEBAIHByb3RlY3RlZDoKICAgICBib29s
IG1fY2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyA6IDE7CiAgICAgYm9vbCBt
X2NoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwogICAgIGJvb2wg
bV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7Ci0KKyNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCisgICAgVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZSBtX1dlYlZU
VE5vZGVUeXBlIDogMjsKKyNlbmRpZgogcHJpdmF0ZToKICAgICBPd25QdHI8Tm9kZUxpc3RzTm9k
ZURhdGE+IG1fbm9kZUxpc3RzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggMmRlMTA1My4uMmVmYzA3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cApAQCAtMTIxOCw3ICsxMjE4LDcgQEAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudDo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2MKICAgICAsIG1f
Zm9udFNpemUoMCkKIHsKIH0KLSAgICAKKwogdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50OjpjcmVhdGVTdWJ0cmVlcyhEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1ZSwgKCJjdWUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suaAppbmRleCA2MzUwM2RhLi4zZGZhZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTExMCw2ICsxMTAsOCBAQCBwdWJsaWM6CiAKICAgICBlbnVtIFRl
eHRUcmFja1R5cGUgeyBUcmFja0VsZW1lbnQsIEFkZFRyYWNrLCBJbkJhbmQgfTsKICAgICBUZXh0
VHJhY2tUeXBlIHRyYWNrVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tUeXBlOyB9CisgICAg
CisgICAgZW51bSBXZWJWVFROb2RlVHlwZSB7V2ViVlRUTm9kZVR5cGVOb25lLCBXZWJWVFROb2Rl
VHlwZUZ1dHVyZSwgV2ViVlRUTm9kZVR5cGVQYXN0fTsKIAogICAgIGludCB0cmFja0luZGV4KCk7
CiAgICAgdm9pZCBpbnZhbGlkYXRlVHJhY2tJbmRleCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IDYyYTBjOTYuLjAwNjI5ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTE4MywxNSArMTgzLDkgQEAg
UmVuZGVyT2JqZWN0KiBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3VlOjpwYXN0Tm9kZXNTaGFkb3dQc2V1
ZG9JZCgpCitjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6YWxsTm9kZXNTaGFkb3dQ
c2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHN1YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcGFzdC1ub2RlcyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICByZXR1cm4gc3VidGl0bGVzOwot
fQotCi1jb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6ZnV0dXJlTm9kZXNTaGFkb3dQ
c2V1ZG9JZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHN1YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLWFsbC1ub2RlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gc3VidGl0bGVzOwogfQogCkBAIC0yMTMsOCArMjA3LDcgQEAgVGV4dFRyYWNrQ3Vl
OjpUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91YmxlIHN0
YXJ0LCBkb3VibGUKICAgICAsIG1fcGF1c2VPbkV4aXQoZmFsc2UpCiAgICAgLCBtX3NuYXBUb0xp
bmVzKHRydWUpCiAgICAgLCBtX2hhc0lubmVyVGltZXN0YW1wcyhmYWxzZSkKLSAgICAsIG1fcGFz
dERvY3VtZW50Tm9kZXMoSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxEb2N1bWVu
dCo+KGNvbnRleHQpKSkKLSAgICAsIG1fZnV0dXJlRG9jdW1lbnROb2RlcyhIVE1MRGl2RWxlbWVu
dDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQorICAgICwgbV9hbGxE
b2N1bWVudE5vZGVzKEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQq
Pihjb250ZXh0KSkpCiAgICAgLCBtX2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlKHRydWUpCiAgICAg
LCBtX2Rpc3BsYXlUcmVlKFRleHRUcmFja0N1ZUJveDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3Vt
ZW50Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgdGhpcykpCiB7CkBAIC00ODgsMTIgKzQ4
MSw2IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgoKQogICAgIG1fY3Vl
SW5kZXggPSBpbnZhbGlkQ3VlSW5kZXg7CiB9CiAKLXZvaWQgVGV4dFRyYWNrQ3VlOjptYXJrTm9k
ZXNBc1dlYlZUVE5vZGVzKE5vZGUqIHJvb3QpCi17Ci0gICAgZm9yIChFbGVtZW50KiBjaGlsZCA9
IEVsZW1lbnRUcmF2ZXJzYWw6OmZpcnN0V2l0aGluKHJvb3QpOyBjaGlsZDsgY2hpbGQgPSBFbGVt
ZW50VHJhdmVyc2FsOjpuZXh0KGNoaWxkLCByb290KSkKLSAgICAgICAgY2hpbGQtPnNldElzV2Vi
VlRUTm9kZSh0cnVlKTsKLX0KLQogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBUZXh0VHJh
Y2tDdWU6OmdldEN1ZUFzSFRNTCgpCiB7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNs
b25lZEZyYWdtZW50OwpAQCAtNTE2LDcgKzUwMyw2IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gVGV4dFRyYWNrQ3VlOjpnZXRDdWVBc0hUTUwoKQogCiAgICAgY2xvbmVkRnJhZ21lbnQg
PSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fZG9jdW1lbnRGcmFn
bWVudC0+Y2xvbmVDaGlsZE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKLSAgICBtYXJrTm9k
ZXNBc1dlYlZUVE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKIAogICAgIHJldHVybiBjbG9u
ZWRGcmFnbWVudC5yZWxlYXNlKCk7CiB9CkBAIC02NzYsNTAgKzY2Miw1NCBAQCB2b2lkIFRleHRU
cmFja0N1ZTo6Y2FsY3VsYXRlRGlzcGxheVBhcmFtZXRlcnMoKQogICAgIC8vIGlzIGRlZmluZWQg
aW4gdGVybXMgb2YgdGhlIG90aGVyIGFzcGVjdHMgb2YgdGhlIGN1ZS4KICAgICBtX2NvbXB1dGVk
TGluZVBvc2l0aW9uID0gY2FsY3VsYXRlQ29tcHV0ZWRMaW5lUG9zaXRpb24oKTsKIH0KKyAgICAK
K3ZvaWQgVGV4dFRyYWNrQ3VlOjptYXJrRnV0dXJlQW5kUGFzdE5vZGVzKEVsZW1lbnQqIHJvb3Qs
IGRvdWJsZSBwcmV2aW91c1RpbWVzdGFtcCwgZG91YmxlIG1vdmllVGltZSkKK3sKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZXN0YW1wVGFnLCAoQVNDSUlMaXRlcmFs
KCJ0aW1lc3RhbXAiKSkpOworICAgIAorICAgIGJvb2wgaXNQYXN0Tm9kZSA9IHRydWU7CisgICAg
ZG91YmxlIGN1cnJlbnRUaW1lc3RhbXAgPSBwcmV2aW91c1RpbWVzdGFtcDsKKyAgICBpZiAoY3Vy
cmVudFRpbWVzdGFtcCA+IG1vdmllVGltZSkKKyAgICAgICAgaXNQYXN0Tm9kZSA9IGZhbHNlOwor
ICAgIAorICAgIGZvciAoTm9kZSogY2hpbGQgPSByb290LT5maXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoY2hpbGQsIHJvb3QpKSB7CisgICAgICAgIGlmIChj
aGlsZC0+bm9kZU5hbWUoKSA9PSB0aW1lc3RhbXBUYWcpIHsKKyAgICAgICAgICAgIHVuc2lnbmVk
IHBvc2l0aW9uID0gMDsKKyAgICAgICAgICAgIFN0cmluZyB0aW1lc3RhbXAgPSBjaGlsZC0+bm9k
ZVZhbHVlKCk7CisgICAgICAgICAgICBkb3VibGUgY3VycmVudFRpbWVzdGFtcCA9IFdlYlZUVFBh
cnNlcjo6Y3JlYXRlKDAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCktPmNvbGxlY3RUaW1lU3Rh
bXAodGltZXN0YW1wLCAmcG9zaXRpb24pOworICAgICAgICAgICAgQVNTRVJUKGN1cnJlbnRUaW1l
c3RhbXAgIT0gLTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY3VycmVudFRpbWVz
dGFtcCA+IG1vdmllVGltZSkKKyAgICAgICAgICAgICAgICBpc1Bhc3ROb2RlID0gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChjaGlsZC0+aXNFbGVtZW50Tm9kZSgpKSB7
CisgICAgICAgICAgICBpZiAoIWlzUGFzdE5vZGUpCisgICAgICAgICAgICAgICAgdG9FbGVtZW50
KGNoaWxkKS0+c2V0SXNXZWJWVFRGdXR1cmVOb2RlKCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdG9FbGVtZW50KGNoaWxkKS0+c2V0SXNXZWJWVFROb2RlKCk7CisgICAgICAg
IH0KKyAgICB9Cit9CiAKIHZvaWQgVGV4dFRyYWNrQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZShmbG9h
dCBtb3ZpZVRpbWUpCiB7CiAgICAgLy8gVGhlIGRpc3BsYXkgdHJlZSBtYXkgY29udGFpbiBXZWJW
VFQgdGltZXN0YW1wIG9iamVjdHMgcmVwcmVzZW50aW5nCiAgICAgLy8gdGltZXN0YW1wcyAocHJv
Y2Vzc2luZyBpbnN0cnVjdGlvbnMpLCBhbG9uZyB3aXRoIGRpc3BsYXlhYmxlIG5vZGVzLgotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxp
dGVyYWwoInRpbWVzdGFtcCIpKSk7CiAKICAgICBpZiAoIXRyYWNrKCktPmlzUmVuZGVyZWQoKSkK
ICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgaXNQYXN0Tm9kZSA9IHRydWU7CiAKLSAgICAvLyBD
bGVhciB0aGUgY29udGVudHMgb2YgdGhlIHR3byBzZXRzLgotICAgIG1fZnV0dXJlRG9jdW1lbnRO
b2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX2Z1dHVyZURvY3VtZW50Tm9kZXMtPnNldFBz
ZXVkbyhmdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwotCi0gICAgbV9wYXN0RG9jdW1lbnRO
b2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX3Bhc3REb2N1bWVudE5vZGVzLT5zZXRQc2V1
ZG8ocGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKSk7CisgICAgLy8gQ2xlYXIgdGhlIGNvbnRlbnRz
IG9mIHRoZSBzZXQuCisgICAgbV9hbGxEb2N1bWVudE5vZGVzLT5yZW1vdmVDaGlsZHJlbigpOwor
ICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKGFsbE5vZGVzU2hhZG93UHNldWRvSWQo
KSk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHR3byBzZXRzIGNvbnRhaW5pbmcgcGFzdCBhbmQgZnV0
dXJlIFdlYlZUVCBvYmplY3RzLgogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZWZlcmVu
Y2VUcmVlID0gZ2V0Q3VlQXNIVE1MKCk7CiAKLSAgICBpZiAoIW1faGFzSW5uZXJUaW1lc3RhbXBz
KSB7Ci0gICAgICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKHJlZmVyZW5jZVRy
ZWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZm9yIChOb2RlICpjaGlsZCA9IHJl
ZmVyZW5jZVRyZWUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5ub2RlTmFtZSgpID09IHRpbWVzdGFtcFRhZykg
ewotICAgICAgICAgICAgdW5zaWduZWQgaW50IHBvc2l0aW9uID0gMDsKLSAgICAgICAgICAgIFN0
cmluZyB0aW1lc3RhbXAgPSBjaGlsZC0+bm9kZVZhbHVlKCk7Ci0KLSAgICAgICAgICAgIGRvdWJs
ZSB0aW1lc3RhbXBUaW1lID0gV2ViVlRUUGFyc2VyOjpjcmVhdGUoMCwgbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KS0+Y29sbGVjdFRpbWVTdGFtcCh0aW1lc3RhbXAsICZwb3NpdGlvbik7Ci0gICAg
ICAgICAgICBBU1NFUlQodGltZXN0YW1wVGltZSAhPSAtMSk7Ci0KLSAgICAgICAgICAgIGlmICh0
aW1lc3RhbXBUaW1lID4gbW92aWVUaW1lKQotICAgICAgICAgICAgICAgIGlzUGFzdE5vZGUgPSBm
YWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc1Bhc3ROb2RlKQotICAgICAgICAgICAg
bV9wYXN0RG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lTm9kZSh0cnVlKSwg
QVNTRVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBt
X2Z1dHVyZURvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKGNoaWxkLT5jbG9uZU5vZGUodHJ1ZSks
IEFTU0VSVF9OT19FWENFUFRJT04sIGZhbHNlKTsKLSAgICB9CisgICAgbV9hbGxEb2N1bWVudE5v
ZGVzLT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKKyAgICBtYXJrRnV0dXJlQW5kUGFzdE5v
ZGVzKG1fYWxsRG9jdW1lbnROb2Rlcy5nZXQoKSwgc3RhcnRUaW1lKCksIG1vdmllVGltZSk7CiB9
CiAKIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlQm94PiBUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlU
cmVlKCkKQEAgLTc0MSw5ICs3MzEsOCBAQCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gVGV4
dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCiAgICAgLy8gJ2Rpc3BsYXknIHByb3BlcnR5IGhh
cyB0aGUgdmFsdWUgJ2lubGluZScuIFRoaXMgaXMgdGhlIFdlYlZUVCBjdWUKICAgICAvLyBiYWNr
Z3JvdW5kIGJveC4KIAotICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1bHQg
aW4gbV9wYXN0RG9jdW1lbnROb2Rlcy4KLSAgICBtX2Rpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZCht
X3Bhc3REb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKLSAgICBtX2Rp
c3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2Z1dHVyZURvY3VtZW50Tm9kZXMsIEFTU0VSVF9OT19F
WENFUFRJT04sIHRydWUpOworICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1
bHQgaW4gbV9hbGxEb2N1bWVudE5vZGVzLgorICAgIG1fZGlzcGxheVRyZWUtPmFwcGVuZENoaWxk
KG1fYWxsRG9jdW1lbnROb2RlcywgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiAKICAgICAv
LyBGSVhNRShCVUcgNzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVj
dHMgdGhhdCBhcmUgbm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4dCBPYmplY3RzIG11c3QgYmUg
d3JhcHBlZCBpbiBhbm9ueW1vdXMgYm94ZXMgd2hvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5oCmluZGV4IGNmMTdkOTkuLjBlNzIzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtODAsOCArODAsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIH5UZXh0VHJhY2tDdWUoKTsKIAotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHBhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkKCk7Ci0gICAgc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYgZnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCgpOworICAgIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIGFsbE5vZGVzU2hhZG93UHNldWRvSWQoKTsKIAogICAgIFRleHRUcmFjayogdHJh
Y2soKSBjb25zdDsKICAgICB2b2lkIHNldFRyYWNrKFRleHRUcmFjayopOwpAQCAtMTI2LDcgKzEy
NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVDdWVJbmRleCgpOwogCiAgICAgUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBnZXRDdWVBc0hUTUwoKTsKLSAgICB2b2lkIG1hcmtO
b2Rlc0FzV2ViVlRUTm9kZXMoTm9kZSopOwogCiAgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZl
bnQoUGFzc1JlZlB0cjxFdmVudD4pOwogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRy
PEV2ZW50PiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTM3LDYgKzEzNSw3IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gZ2V0RGlzcGxheVRyZWUoKTsKICAgICB2b2lk
IHVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0KTsKICAgICB2b2lkIHJlbW92ZURpc3BsYXlUcmVlKCk7
CisgICAgdm9pZCBtYXJrRnV0dXJlQW5kUGFzdE5vZGVzKEVsZW1lbnQqLCBkb3VibGUsIGRvdWJs
ZSk7CiAKICAgICBpbnQgY2FsY3VsYXRlQ29tcHV0ZWRMaW5lUG9zaXRpb24oKTsKIApAQCAtMjA5
LDggKzIwOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3NuYXBUb0xpbmVzOwogCiAgICAgYm9v
bCBtX2hhc0lubmVyVGltZXN0YW1wczsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IG1fcGFz
dERvY3VtZW50Tm9kZXM7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2Z1dHVyZURvY3Vt
ZW50Tm9kZXM7CisgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2FsbERvY3VtZW50Tm9kZXM7
CiAKICAgICBib29sIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2U7CiAgICAgUmVmUHRyPFRleHRU
cmFja0N1ZUJveD4gbV9kaXNwbGF5VHJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUUGFyc2VyLmNwcAppbmRleCBmZWQwMzY5Li4yOTdlNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCkBAIC0zNjQsNyArMzY0LDYgQEAgdm9pZCBXZWJW
VFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
ICAgICAgICAgY2hpbGQgPSBIVE1MRWxlbWVudDo6Y3JlYXRlKHFUYWcsIGRvY3VtZW50KTsKIAog
ICAgICAgICBpZiAoY2hpbGQpIHsKLSAgICAgICAgICAgIGNoaWxkLT5zZXRJc1dlYlZUVE5vZGUo
dHJ1ZSk7CiAgICAgICAgICAgICBpZiAobV90b2tlbi5jbGFzc2VzKCkuc2l6ZSgpID4gMCkKICAg
ICAgICAgICAgICAgICBjaGlsZC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXRvbWljU3RyaW5n
KG1fdG9rZW4uY2xhc3NlcygpLmRhdGEoKSwgbV90b2tlbi5jbGFzc2VzKCkuc2l6ZSgpKSk7CiAg
ICAgICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUocVRhZykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KaW5kZXggNzc5YTRiYy4uNzVm
N2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYy5tbQpAQCAtMjUzLDEzICsyNTMsNyBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYzo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdAogICAgIENvbG9yIGNvbG9y
ID0gY2FwdGlvbnNCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICBpZiAoY29sb3IuaXNWYWxpZCgpKSB7
CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgiIHZpZGVvOjoiKTsK
LSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRUcmFja0N1ZTo6
cGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHls
ZVNoZWV0LmFwcGVuZCgneycpOwotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5h
cHBlbmQoY3NzQ29sb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgY29sb3Ip
KTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCd9Jyk7Ci0gICAg
ICAgIAotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoIiB2aWRlbzo6
Iik7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tD
dWU6OmZ1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQoKSk7CisgICAgICAgIGNhcHRpb25zT3ZlcnJp
ZGVTdHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6OmFsbE5vZGVzU2hhZG93UHNldWRvSWQo
KSk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgneycpOwogICAg
ICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoY3NzQ29sb3JQcm9wZXJ0eShD
U1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgY29sb3IpKTsKICAgICAgICAgY2FwdGlvbnNPdmVy
cmlkZVN0eWxlU2hlZXQuYXBwZW5kKCd9Jyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181257</attachid>
            <date>2013-01-03 17:59:37 -0800</date>
            <delta_ts>2013-01-04 13:54:43 -0800</delta_ts>
            <desc>Proposed fix 0.7</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>38617</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDIyNGVlLi4zMmRmMjA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTIt
MjEgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDpmdXR1cmUgcHNldWRvIGNsYXNzIGZvciB0aGUgV2ViVlRUIDo6Y3VlIHBzZXVkbyBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmll
ZCB0aGUgdHJhY2sgY3NzIG1hdGNoaW5nIHRlc3QgdG8gY292ZXIgOmZ1dHVyZSBwc2V1ZG8tY2xh
c3MgY2FzZS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9u
cy1pbm5lci10aW1lc3RhbXBzLnZ0dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay9j
YXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQ6CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2st
Y3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1j
c3MtbWF0Y2hpbmcuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVy
aW5nLWlubmVyLXRpbWVzdGFtcHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1l
ZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1sOiBUaGUg
dGVzdCB3YXMgcmVtb3ZlZCBiZWNhdXNlIGl0IHdhcyBiYXNlZCBvbiB0aGUgb2xkCisgICAgICAg
IGZ1dHVyZS9wYXN0IG5vZGVzIHJlbmRlcmluZyBsb2dpYy4KKwogMjAxMi0xMi0yMSAgS2VubmV0
aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIEFycmF5QnVmZmVy
VmlldyBjb25zdHJ1Y3RvciBvbiBET01XaW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBzLnZ0dCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10
aW1lc3RhbXBzLnZ0dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMzNDE5OC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvY2FwdGlv
bnMtaW5uZXItdGltZXN0YW1wcy52dHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi3v
u79XRUJWVFQNCi0NCi0xDQotMDA6MDA6MDAuMDAwIC0tPiAwMDowMDowMC45NTANCi08MDA6MDA6
MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJhb2tl
DQotDQotMg0KLTAwOjAwOjAxLjAwMCAtLT4gMDA6MDA6MDMuNjAwDQotPDAwOjAwOjAxLjIwMD5T
b21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFu
ZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50
aGUgPDAwOjAwOjAzLjQ1MD5wYWluDQotDQotMw0KLTAwOjAwOjAzLjcwMCAtLT4gMDA6MDA6MDQu
MjUwDQotPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUgPDAwOjAwOjA0LjAwMD5SYWluDQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmcudnR0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3N0eWxpbmcudnR0Cmlu
ZGV4IGE3MWJjYWYuLjMyNzQ4YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L2NhcHRpb25zLXdlYnZ0dC9zdHlsaW5nLnZ0dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQKQEAgLTcsMyArNyw3IEBAIExvcnVtIGlwc3Vt
CiAyCiAwMDowMS4wMDAgLS0+IDAwOjAyLjAwMAogPGMucmVkPmRvbG9yIHNpdCA8L2M+PGMuZ3Jl
ZW4+YW1ldCwgY29uc2VjdGV0dXIgPC9jPjxjLnJlZDI+YWRpcGlzY2luZyBlbGl0PC9jPgorCisz
CiswMDowMi4wMDAgLS0+IDAwOjA1LjAwMAorPDAwOjAyLjAwMD48Yz5TdXNwZW5kaXNzZSBhY2N1
bXNhbiwgPC9jPjwwMDowMy4wMDA+PGM+bWF1cmlzIHNlZCA8L2M+PDAwOjA0LjAwMD48Yz5ldWlz
bW9kIHBoYXJldHJhPC9jPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQudHh0
CmluZGV4IDBmMjM5NTMuLjQwODdiZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDI5IEBA
Ci1UZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgY2xhc3Mg
bmFtZQorMS4gVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhl
IGNsYXNzIG5hbWUKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVZFTlQoc2Vla2VkKQogRVhQRUNU
RUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDAsIDApJykg
T0sKIEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMCwg
MTI4LCAwKScpIE9LCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9
PSAncmdiKDI1NSwgMCwgMCknKSBPSworCitSVU4odmlkZW8uY3VycmVudFRpbWUgPSAyLjUpCitF
VkVOVChzZWVrZWQpCisKKworMi4gVGVzdCB0aGF0IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJv
cGVybHkgYnkgdGhlICc6ZnV0dXJlJyBwc2V1ZG8gY2xhc3MuCitFWFBFQ1RFRCAoZ2V0Q29tcHV0
ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVD
VEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMTI4LCAxMjgsIDEy
OCknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3Jn
YigxMjgsIDEyOCwgMTI4KScpIE9LCisKK1JVTih2aWRlby5jdXJyZW50VGltZSA9IDMuNSkKK0VW
RU5UKHNlZWtlZCkKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09
ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3Vl
Tm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29t
cHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDEyOCwgMTI4LCAxMjgpJykgT0sKKwor
UlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gNC41KQorRVZFTlQoc2Vla2VkKQorRVhQRUNURUQgKGdl
dENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScpIE9L
CitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwg
MjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9y
ID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSwogRU5EIE9GIFRFU1QKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmcuaHRtbAppbmRleCBkMDQyMjVhLi44
MTQ1YjJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0
Y2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hp
bmcuaHRtbApAQCAtMTcsMjEgKzE3LDUxIEBACiAgICAgICAgIDxzY3JpcHQ+CiAKICAgICAgICAg
dmFyIGN1ZU5vZGU7Ci0KKyAgICAgICAgdmFyIHNlZWtlZENvdW50ID0gMDsKKyAgICAgICAgdmFy
IGluZm8gPSBbWyJyZ2IoMjU1LCAwLCAwKSIsICJyZ2IoMCwgMTI4LCAwKSIsICJyZ2IoMjU1LCAw
LCAwKSJdLAorICAgICAgICAgICAgICAgICAgICBbInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2Io
MTI4LCAxMjgsIDEyOCkiLCAicmdiKDEyOCwgMTI4LCAxMjgpIl0sCisgICAgICAgICAgICAgICAg
ICAgIFsicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2IoMTI4
LCAxMjgsIDEyOCkiXSwKKyAgICAgICAgICAgICAgICAgICAgWyJyZ2IoMjU1LCAyNTUsIDI1NSki
LCAicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigyNTUsIDI1NSwgMjU1KSJdXTsKKyAgICAgICAg
CisgICAgICAgIGZ1bmN0aW9uIHNraXBOb25FbGVtZW50cyhyb290KQorICAgICAgICB7CisgICAg
ICAgICAgICBuZXh0RWxlbWVudFNpYmxpbmcgPSByb290OworICAgICAgICAgICAgd2hpbGUgKG5l
eHRFbGVtZW50U2libGluZy5ub2RlVHlwZSAhPSAxKSB7CisgICAgICAgICAgICAgICAgbmV4dEVs
ZW1lbnRTaWJsaW5nID0gbmV4dEVsZW1lbnRTaWJsaW5nLm5leHRTaWJsaW5nOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgcmV0dXJuIG5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgfQor
ICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkKICAgICAgICAgewotICAgICAgICAg
ICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAncGFzdC1ub2Rlcycp
LmZpcnN0Q2hpbGQ7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUo
Y3VlTm9kZSkuY29sb3IiLCAicmdiKDI1NSwgMCwgMCkiKTsKLSAgICAgICAgICAgIGN1ZU5vZGUg
PSBjdWVOb2RlLm5leHRTaWJsaW5nOwotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21w
dXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgInJnYigwLCAxMjgsIDApIik7Ci0gICAgICAgICAg
ICBjdWVOb2RlID0gY3VlTm9kZS5uZXh0U2libGluZzsKLSAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMjU1LCAwLCAwKSIpOwot
ICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgaWYgKHRlc3RFbmRlZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmIChzZWVrZWRDb3VudCA9PSAxKSB7
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiMi4gVGVzdCB0aGF0
IGN1ZXMgYXJlIGJlaW5nIG1hdGNoZWQgcHJvcGVybHkgYnkgdGhlICc6ZnV0dXJlJyBwc2V1ZG8g
Y2xhc3MuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9u
RWxlbWVudHModGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdhbGwtbm9kZXMnKS5maXJz
dENoaWxkKTsKKyAgICAgICAgICAgIHNraXBOb25FbGVtZW50cyhjdWVOb2RlKTsKKyAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9b
c2Vla2VkQ291bnRdWzBdKTsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHMo
Y3VlTm9kZS5uZXh0U2libGluZyk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1
dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtlZENvdW50XVsxXSk7CisgICAgICAg
ICAgICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUubmV4dFNpYmxpbmcpOworICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwg
aW5mb1tzZWVrZWRDb3VudF1bMl0pOworCisgICAgICAgICAgICBpZiAoKytzZWVrZWRDb3VudCA9
PSBpbmZvLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAg
IHJ1bigidmlkZW8uY3VycmVudFRpbWUgPSAiICsgKHZpZGVvLmN1cnJlbnRUaW1lICsgMSkpOwor
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKICAg
ICAgICAgewotICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0IHRoYXQgY3VlcyBhcmUgYmVp
bmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgY2xhc3MgbmFtZSIpOworICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIxLiBUZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBi
eSB0aGUgY2xhc3MgbmFtZSIpOwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogICAg
ICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnLi4vY29udGVudC90
ZXN0Jyk7CiAgICAgICAgICAgICB2aWRlby5pZCA9ICJ0ZXN0dmlkZW8iOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3Rh
bXBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5k
ZXJpbmctaW5uZXItdGltZXN0YW1wcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJkODkzYjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2sv
dHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE1NyArMCwwIEBACi1UZXN0IHRoYXQgVGV4dFRyYWNrJ3MgY3VlcyBhcmUg
cmVuZGVyZWQgY29ycmVjdGx5IHdoZW4gdGhleSBjb250YWluIGlubmVyIHRpbWVzdGFtcHMuCi1F
VkVOVChjYW5wbGF5dGhyb3VnaCkKLQotKiogRmlyc3QgY3VlIChlbXB0eSkgKioKLUVWRU5UKHNl
ZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDAKLVBhc3Q6IAotRnV0dXJlOiBDaG9j
b2xhdGUgUmFpbiBLYXJhb2tlCi1Db21wbGV0ZTogPDAwOjAwOjAwLjIwMD5DaG9jb2xhdGUgPDAw
OjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9rZQotCi0qKiBGaXJzdCBjdWUgKG9u
ZSB3b3JkKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMC4y
NQotUGFzdDogQ2hvY29sYXRlIAotRnV0dXJlOiBSYWluIEthcmFva2UKLUNvbXBsZXRlOiA8MDA6
MDA6MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJh
b2tlCi0KLSoqIEZpcnN0IGN1ZSAodHdvIHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1
ZSAwICoKLUN1cnJlbnQgdGltZTogMC41Ci1QYXN0OiBDaG9jb2xhdGUgUmFpbiAKLUZ1dHVyZTog
S2FyYW9rZQotQ29tcGxldGU6IDwwMDowMDowMC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+
UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UKLQotKiogRmlyc3QgY3VlICh0aHJlZSB3b3Jkcykg
KioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDAuNzUKLVBhc3Q6
IENob2NvbGF0ZSBSYWluIEthcmFva2UKLUZ1dHVyZTogCi1Db21wbGV0ZTogPDAwOjAwOjAwLjIw
MD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9rZQotCi0q
KiBTZWNvbmQgY3VlIChlbXB0eSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJy
ZW50IHRpbWU6IDEKLVBhc3Q6IAotRnV0dXJlOiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVl
bCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0
YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhl
cnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFp
bgotCi0qKiBTZWNvbmQgY3VlIChvbmUgd29yZCkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUg
MCAqCi1DdXJyZW50IHRpbWU6IDEuMjUKLVBhc3Q6IFNvbWUgCi1GdXR1cmU6IHN0YXkgZHJ5IGFu
ZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6
MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAw
OjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDow
MDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlICh0d28gd29yZHMpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAxLjUKLVBhc3Q6IFNvbWUgc3RheSAKLUZ1
dHVyZTogZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4y
MDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIw
MD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4y
MDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlICh0aHJlZSB3b3Jkcykg
KioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDEuNzUKLVBhc3Q6
IFNvbWUgc3RheSBkcnkgCi1GdXR1cmU6IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgotQ29tcGxl
dGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5k
cnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5m
ZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3Vl
IChzYW1lIGFzIGJlZm9yZSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50
IHRpbWU6IDIKLVBhc3Q6IFNvbWUgc3RheSBkcnkgCi1GdXR1cmU6IGFuZCBvdGhlcnMgZmVlbCB0
aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkg
PDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMg
PDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgot
Ci0qKiBTZWNvbmQgY3VlIChmb3VyIHdvcmRzKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAw
ICoKLUN1cnJlbnQgdGltZTogMi4yNQotUGFzdDogU29tZSBzdGF5IGRyeSBhbmQgCi1GdXR1cmU6
IG90aGVycyBmZWVsIHRoZSBwYWluCi1Db21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDow
MDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6
MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAw
OjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKGZpdmUgd29yZHMpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAyLjUKLVBhc3Q6IFNvbWUgc3RheSBkcnkg
YW5kIG90aGVycyAKLUZ1dHVyZTogZmVlbCB0aGUgcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4y
MDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIw
MD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4y
MDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9y
ZSkgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDIuNzUKLVBh
c3Q6IFNvbWUgc3RheSBkcnkgYW5kIG90aGVycyAKLUZ1dHVyZTogZmVlbCB0aGUgcGFpbgotQ29t
cGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcw
MD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1
MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQg
Y3VlIChzaXggd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0
aW1lOiAzCi1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVlbCAKLUZ1dHVyZTogdGhl
IHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDww
MDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDww
MDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KLQot
KiogU2Vjb25kIGN1ZSAoc2V2ZW4gd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAg
KgotQ3VycmVudCB0aW1lOiAzLjI1Ci1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVl
bCB0aGUgCi1GdXR1cmU6IHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAw
OjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDow
Mi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6
MDMuNDUwPnBhaW4KLQotKiogU2Vjb25kIGN1ZSAoZWlnaHQgd29yZHMpICoqCi1FVkVOVChzZWVr
ZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAzLjUKLVBhc3Q6IFNvbWUgc3RheSBkcnkg
YW5kIG90aGVycyBmZWVsIHRoZSBwYWluCi1GdXR1cmU6IAotQ29tcGxldGU6IDwwMDowMDowMS4y
MDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIw
MD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4y
MDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBUaGlyZCBjdWUgKG9uZSB3b3JkKSAqKgot
RVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMy43NQotUGFzdDogQ2hv
Y29sYXRlIAotRnV0dXJlOiBSYWluCi1Db21wbGV0ZTogPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUg
PDAwOjAwOjA0LjAwMD5SYWluCi0KLSoqIFRoaXJkIGN1ZSAodHdvIHdvcmRzKSAqKgotRVZFTlQo
c2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogNAotUGFzdDogQ2hvY29sYXRlIFJh
aW4KLUZ1dHVyZTogCi1Db21wbGV0ZTogPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUgPDAwOjAwOjA0
LjAwMD5SYWluCi1FTkQgT0YgVEVTVAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjMyOWIxLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1w
cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgotCi0gICAgICAgIDxzY3Jp
cHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPS4u
L3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWNv
bnRyb2xzLmpzPjwvc2NyaXB0PgotCi0gICAgICAgIDxzY3JpcHQ+Ci0KLSAgICAgICAgdmFyIHRl
c3RUcmFjazsKLSAgICAgICAgdmFyIGN1ZURpc3BsYXlFbGVtZW50OwotICAgICAgICB2YXIgY3Vl
RGlzcGxheUNvbnRhaW5lcjsKLSAgICAgICAgdmFyIHNlZWtlZENvdW50ID0gMDsKLQotICAgICAg
ICB2YXIgdGVzdENhc2VEZXNjcmlwdGlvbiA9IFsKLSAgICAgICAgICAgICAgICAiRmlyc3QgY3Vl
IChlbXB0eSkiLAotICAgICAgICAgICAgICAgICJGaXJzdCBjdWUgKG9uZSB3b3JkKSIsCi0gICAg
ICAgICAgICAgICAgIkZpcnN0IGN1ZSAodHdvIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIkZp
cnN0IGN1ZSAodGhyZWUgd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZW1w
dHkpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAob25lIHdvcmQpIiwKLSAgICAgICAg
ICAgICAgICAiU2Vjb25kIGN1ZSAodHdvIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlNlY29u
ZCBjdWUgKHRocmVlIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKHNhbWUg
YXMgYmVmb3JlKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKGZvdXIgd29yZHMpIiwK
LSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZml2ZSB3b3JkcykiLAotICAgICAgICAgICAg
ICAgICJTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9yZSkiLAotICAgICAgICAgICAgICAgICJTZWNv
bmQgY3VlIChzaXggd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoc2V2ZW4g
d29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZWlnaHQgd29yZHMpIiwKLSAg
ICAgICAgICAgICAgICAiVGhpcmQgY3VlIChvbmUgd29yZCkiLAotICAgICAgICAgICAgICAgICJU
aGlyZCBjdWUgKHR3byB3b3JkcykiCi0gICAgICAgIF07Ci0KLSAgICAgICAgLy8gRWFjaCB0ZXN0
IGNhc2UgaXMgZm91bmQgYnkgaW5jcmVtZW50aW5nIHdpdGggMC4yNTAgdGhlIGN1cnJlbnQgdGlt
ZS4KLSAgICAgICAgdmFyIHRlc3RDYXNlU2Vla1RpbWUgPSBbCi0gICAgICAgIF07Ci0KLSAgICAg
ICAgdmFyIGN1cnJlbnRUZXN0Q2FzZSA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkK
LSAgICAgICAgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0VHJhY2sudHJh
Y2suYWN0aXZlQ3Vlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGN1ZURpc3BsYXlF
bGVtZW50ID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdkaXNwbGF5JywgaSk7Ci0K
LSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiKiBDdWUgIiArIGkgKyAiICoiKTsKLQotICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiQ3VycmVudCB0aW1lOiAiICsgTWF0aC5yb3VuZCh2aWRlby5jdXJyZW50VGltZSAqIDEw
MCkgLyAxMDApOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiUGFzdDogIiArIGN1ZURp
c3BsYXlFbGVtZW50LmNoaWxkTm9kZXNbMF0uaW5uZXJIVE1MKTsKLSAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIkZ1dHVyZTogIiArIGN1ZURpc3BsYXlFbGVtZW50LmNoaWxkTm9kZXNbMV0u
aW5uZXJIVE1MKTsKLQotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiQ29tcGxldGU6ICIg
KyB0ZXN0VHJhY2sudHJhY2suYWN0aXZlQ3Vlc1tpXS50ZXh0KTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgcnVuTmV4dFRlc3RDYXNlKCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZnVu
Y3Rpb24gcnVuTmV4dFRlc3RDYXNlKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGN1cnJl
bnRUZXN0Q2FzZSA9PSB0ZXN0Q2FzZURlc2NyaXB0aW9uLmxlbmd0aCkgewotICAgICAgICAgICAg
ICAgIGVuZFRlc3QoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICBjb25zb2xlV3JpdGUo
IioqICIgKyAgdGVzdENhc2VEZXNjcmlwdGlvbltjdXJyZW50VGVzdENhc2VdICsgIiAqKiIpOwot
Ci0gICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHRlc3RDYXNlU2Vla1RpbWVbY3VycmVu
dFRlc3RDYXNlXTsKLSAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnc2Vla2VkJywgc2Vla2VkLCBm
YWxzZSwgdHJ1ZSk7Ci0KLSAgICAgICAgICAgIGN1cnJlbnRUZXN0Q2FzZSsrOwotICAgICAgICB9
Ci0KLSAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKLSAgICAgICAgewotICAgICAgICAgICAgY29u
c29sZVdyaXRlKCJUZXN0IHRoYXQgVGV4dFRyYWNrJ3MgY3VlcyBhcmUgcmVuZGVyZWQgY29ycmVj
dGx5IHdoZW4gdGhleSBjb250YWluIGlubmVyIHRpbWVzdGFtcHMuIik7Ci0KLSAgICAgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKLSAgICAgICAgICAgIHRlc3RUcmFjayA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ3RyYWNrJyk7Ci0gICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFG
aWxlKCd2aWRlbycsICcuLi9jb250ZW50L3Rlc3QnKTsKLQotICAgICAgICAgICAgd2FpdEZvckV2
ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGN1ZURp
c3BsYXlDb250YWluZXIgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbyk7Ci0KLSAgICAg
ICAgICAgICAgICBmb3IgKGkgPSAwLjA7IGkgPCA0LjUwMDsgaSArPSAwLjI1MCkKLSAgICAgICAg
ICAgICAgICAgICAgdGVzdENhc2VTZWVrVGltZS5wdXNoKGkpOwotCi0gICAgICAgICAgICAgICAg
cnVuTmV4dFRlc3RDYXNlKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotCi0gICAgICAg
IDwvc2NyaXB0PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KLSAg
ICAgICAgPHZpZGVvIGNvbnRyb2xzPgotICAgICAgICAgICAgPHRyYWNrIHNyYz0iY2FwdGlvbnMt
d2VidnR0L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMudnR0IiBraW5kPSJjYXB0aW9ucyIgZGVm
YXVsdD4KLSAgICAgICAgPC92aWRlbz4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMWEwNDA0Zi4uMGIxNjk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTEy
LTIxICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCA6ZnV0dXJlIHBzZXVkbyBjbGFzcyBmb3IgdGhlIFdlYlZUVCA6OmN1ZSBwc2V1ZG8gZWxlbWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NDcz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBjaGFuZ2VzIHRoZSBhcHByb2FjaCBvZiBzaG93aW5nIHBhc3QvZnV0dXJlIG5vZGUgb2Jq
ZWN0cy4gCisgICAgICAgIEJlZm9yZSB1cHBlci1sZXZlbCBjb250YWluZXJzIHdlcmUgdXNlZCB0
byBwdXQgcGFzdCBhbmQgZnV0dXJlIG5vZGVzIGluc2lkZS4gU3R5bGVzIHdlcmUgYXBwbGllZAor
ICAgICAgICB0byBjb250YWluZXJzLiBOb3cgc3R5bGVzIGNvdWxkIGJlIGFwcGxpZWQgZGlyZWN0
bHkgdG8gbm9kZXMgYnkgdXNpbmcgOjpjdWUoOmZ1dHVyZSkuCisgICAgICAgIFRoYXQgYWxsb3dz
IHRvIHN0eWxlIGZ1dHVyZS9wYXN0IFdlYlZUVCBub2RlcyBldmVuIGlmIHRoZXkgYXJlIG5lc3Rl
ZC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0IHdhcyBtb2RpZmllZCB0byBjb3ZlciBuZXcgY2Fz
ZXMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOiBhZGRlZCA6ZnV0dXJlIHBzZXVk
byBjbGFzcyBzdXBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVkb0lk
KToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDogZGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOgorICAg
ICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVz
b2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6IGRlZmluZSBzdHlsZSBzaGFyaW5nIHJ1
bGVzIGZvciBXZWJWVFQgb2JqZWN0cy4KKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6
CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2Rlcyk6Cisg
ICAgICAgICh2aWRlbzo6Y3VlKDpmdXR1cmUpKTogYWRkZWQgc3RhbmRhcmQgdXNlci1hZ2VudCBz
dHlsZXMgZm9yIHRoZSBmdXR1cmUgbm9kZXMuCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOiBz
ZXR0ZXIgZnVuY3Rpb25zIGRvbid0IGhhdmUgYW4gYXJndW1lbnQgbm93IGJlY2F1c2UgV2ViVlRU
IHR5cGUgZW51bSB3YXMgaW50cm9kdWNlZCBhbmQgdGhlIHJpZ2h0IHR5cGUgaXMgc2V0CisgICAg
ICAgIHdoZW4gdGhlIHNldHRlciBpcyBiZWluZyBjYWxsZWQuCisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpzZXRJc1dlYlZUVE5vZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50Ojppc1dlYlZUVEZ1dHVyZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6c2V0SXNXZWJWVFRGdXR1cmVOb2RlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5o
OgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgor
ICAgICAgICAoRWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmNw
cDoKKyAgICAgICAgKFNhbWVTaXplQXNOb2RlUmFyZURhdGEpOiBhZGRlZCBhIGR1bW15IGVudW0g
dmFsdWUuIEVudW0gaXMgaW50ZWdlciB0eXBlIGFuZCBpcyBhbGlnbmVkIGluIFdpbmRvd3Mgd2hl
biBwbGFjZWQgaW4gdGhlIGJpdGZpZWxkLAorICAgICAgICBzbyBpdCB0YWtlcyBtb3JlIHNwYWNl
LgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVS
YXJlRGF0YTo6Tm9kZVJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6
aXNXZWJWVFROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6c2V0SXNXZWJW
VFROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6aXNXZWJWVFRGdXR1cmVO
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6c2V0SXNXZWJWVFRGdXR1cmVO
b2RlKToKKyAgICAgICAgKE5vZGVSYXJlRGF0YSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRt
bC90cmFjay9UZXh0VHJhY2suaDogYWRkIGEgV2ViVlRUIG5vZGUgb2JqZWN0IHR5cGUgZW51bS4K
KyAgICAgICAgKFRleHRUcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjphbGxOb2Rlc1NoYWRvd1BzZXVk
b0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Z2V0Q3VlQXNIVE1MKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpzZXROb2RlT2JqZWN0Rmxh
Z3MpOiBkZXRlcm1pbmUgaWYgdGhlIG5vZGUgaXMgZnV0dXJlIG9yIHBhc3QgYW5kIG1hcmsgYXMg
V2ViVlRUIG5vZGUuCisgICAgICAgIFRoaXMgY29tYmluZXMgdGhlIGZ1bmN0aW9uYWxpdHkgcmVs
YXRlZCB0byBtYXJraW5nIG5vZGVzIGltcGxlbWVudGVkIGJlZm9yZSBpbiB1cGRhdGVEaXNwbGF5
VHJlZSBhbmQKKyAgICAgICAgbWFya05vZGVzQXNXZWJWVFROb2Rlcy4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaDoKKyAgICAgICAgKFRleHRUcmFja0N1ZSk6CisgICAgICAgICogaHRtbC90cmFj
ay9XZWJWVFRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb25z
dHJ1Y3RUcmVlRnJvbVRva2VuKTogbm8gbmVlZCB0byBtYXJrIG5vZGVzIGFzIFdlYlZUVCBub2Rl
cyB3aGVuIHBhcnNpbmcuIFRoaXMgaXMgZG9uZSBhdCB0aGUKKyAgICAgICAgcmVuZGVyaW5nIHN0
YWdlIGxhdGVyLgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpb25zU3R5
bGVTaGVldE92ZXJyaWRlKTogdGhlIGNvbnRhaW5lciBuYW1lIGhhcyBjaGFuZ2VkLgorCiAyMDEy
LTEyLTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRh
dGUgbG9jYWxpemFibGUgc3RyaW5ncyBhcyBhIGZvbGxvd3VwIHRvIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzEzODM4NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXgg
OTU2ZTQ3Zi4uZDc4NzhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0yMjIs
NiArMjIyLDcgQEAgUHNldWRvSWQgQ1NTU2VsZWN0b3I6OnBzZXVkb0lkKFBzZXVkb1R5cGUgdHlw
ZSkKICAgICBjYXNlIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ6CiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogICAgIGNhc2UgUHNldWRvQ3VlOgorICAgIGNhc2UgUHNldWRvRnV0dXJlQ3VlOgog
I2VuZGlmCiAgICAgICAgIHJldHVybiBOT1BTRVVETzsKICAgICBjYXNlIFBzZXVkb05vdFBhcnNl
ZDoKQEAgLTMwNyw2ICszMDgsNyBAQCBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwg
Q1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlTWFwKAogI2VuZGlmCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBjdWUsICgiY3VlKCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZnV0dXJlQ3VlLCAoImZ1dHVy
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICNlbmRpZgogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpblJhbmdlLCAoImluLXJhbmdlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBvdXRPZlJhbmdlLCAoIm91dC1vZi1yYW5nZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKQEAgLTM4NSw2ICszODcsNyBAQCBzdGF0aWMgSGFz
aE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Q
c2V1ZG9UeXBlTWFwKAogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICAgICBu
YW1lVG9Qc2V1ZG9UeXBlLT5zZXQoY3VlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0N1ZSk7
CisgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChmdXR1cmVDdWUuaW1wbCgpLCBDU1NTZWxl
Y3Rvcjo6UHNldWRvRnV0dXJlQ3VlKTsKICNlbmRpZgogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBl
LT5zZXQoaW5SYW5nZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9JblJhbmdlKTsKICAgICAg
ICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KG91dE9mUmFuZ2UuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6
UHNldWRvT3V0T2ZSYW5nZSk7CkBAIC01MDcsNiArNTEwLDkgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6
ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogI2VuZGlmCiAgICAgY2FzZSBQc2V1ZG9JblJhbmdl
OgogICAgIGNhc2UgUHNldWRvT3V0T2ZSYW5nZToKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisg
ICAgY2FzZSBQc2V1ZG9GdXR1cmVDdWU6CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBQc2V1ZG9GaXJzdFBhZ2U6CiAgICAgY2FzZSBQc2V1ZG9MZWZ0UGFnZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmgKaW5kZXggZGVmZDM2Yy4uOTdjMmViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmgKQEAgLTE1OCw2ICsxNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50LAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAg
ICAgICAgICAgIFBzZXVkb0N1ZSwKKyAgICAgICAgICAgIFBzZXVkb0Z1dHVyZUN1ZSwKICNlbmRp
ZgogICAgICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4
IDU3YTFkOWYuLjY4ZDhkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3Bw
CkBAIC0xMTI0LDYgKzExMjQsMTIgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2Vs
ZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQsIGMKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT5z
ZXRDb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpOwogICAgICAgICAgICAgcmV0dXJuIGVsZW1l
bnQtPmlzT3V0T2ZSYW5nZSgpOworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnV0dXJlQ3VlOgorICAgICAgICAgICAgaWYgKGVsZW1lbnQt
PmlzV2ViVlRURnV0dXJlTm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1Vua25vd246CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vdFBhcnNl
ZDoKICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRl
eCBlODM2ZjMzLi40YjU0NTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBA
IC0xMjM2LDYgKzEyMzYsMTQgQEAgYm9vbCBTdHlsZVJlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0
aEVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCkgY29uc3QKICAgICBpZiAoZWxlbWVudC0+
aXNMaW5rKCkgJiYgbV9lbGVtZW50TGlua1N0YXRlICE9IHN0eWxlLT5pbnNpZGVMaW5rKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBpZiAo
ZWxlbWVudC0+aXNXZWJWVFROb2RlKCkgJiYgbV9lbGVtZW50LT5pc1dlYlZUVE5vZGUoKSAmJiBl
bGVtZW50LT5pc1dlYlZUVEZ1dHVyZU5vZGUoKSAhPSBtX2VsZW1lbnQtPmlzV2ViVlRURnV0dXJl
Tm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gRGVueSBzaGFyaW5nIHN0eWxl
cyBiZXR3ZWVuIFdlYlZUVCBub2RlcyBhbmQgbm9uLVdlYlZUVCBub2Rlcy4KKyAgICBpZiAoZWxl
bWVudC0+aXNXZWJWVFROb2RlKCkgIT0gbV9lbGVtZW50LT5pc1dlYlZUVE5vZGUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCmluZGV4IDEzOGZmMWQuLmQ4ZmFmNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKQEAgLTIzOCwyNSArMjM4LDE5IEBAIHZpZGVvOjot
d2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIHsKICAgICAtd2Via2l0LWJveC1mbGV4
OiAxOwogfQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBhc3Qtbm9kZXMgewor
dmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMgewogICAgIGRpc3BsYXk6
IGlubGluZTsKIAogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAg
ICBwYWRkaW5nOiAycHggMnB4OwogfQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNr
LWZ1dHVyZS1ub2RlcyB7Ci0gICAgdmlzaWJpbGl0eTogaGlkZGVuOwotICAgIGRpc3BsYXk6IGlu
bGluZTsKLQotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKLQotICAg
IG1hcmdpbi1sZWZ0OiAtMnB4OwotICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDBweDsKLX0KLQog
dmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IHsKICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CiAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICB3aGl0ZS1zcGFjZTogcHJlLXdy
YXA7CiB9CisKK3ZpZGVvOjpjdWUoOmZ1dHVyZSkgeworICAgIGNvbG9yOiBncmF5OworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IGQ1N2QwNGUuLjg3Yzg4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTIyODgsOSArMjI4OCwxOSBAQCBib29sIEVsZW1lbnQ6OmlzV2ViVlRUTm9kZSgp
IGNvbnN0CiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlz
V2ViVlRUTm9kZSgpOwogfQogCi12b2lkIEVsZW1lbnQ6OnNldElzV2ViVlRUTm9kZShib29sIGZs
YWcpCit2b2lkIEVsZW1lbnQ6OnNldElzV2ViVlRUTm9kZSgpCiB7Ci0gICAgZW5zdXJlRWxlbWVu
dFJhcmVEYXRhKCktPnNldElzV2ViVlRUTm9kZShmbGFnKTsKKyAgICBlbnN1cmVFbGVtZW50UmFy
ZURhdGEoKS0+c2V0SXNXZWJWVFROb2RlKCk7Cit9CisKK2Jvb2wgRWxlbWVudDo6aXNXZWJWVFRG
dXR1cmVOb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVtZW50
UmFyZURhdGEoKS0+aXNXZWJWVFRGdXR1cmVOb2RlKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0
SXNXZWJWVFRGdXR1cmVOb2RlKCkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS0+c2V0
SXNXZWJWVFRGdXR1cmVOb2RlKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXgg
M2UwNzc2NC4uOGU3ZmIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00MzQsNyArNDM0LDkgQEAg
cHVibGljOgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGJvb2wgaXNXZWJWVFROb2Rl
KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoYm9vbCBmbGFnKTsKKyAgICB2b2lk
IHNldElzV2ViVlRUTm9kZSgpOworICAgIGJvb2wgaXNXZWJWVFRGdXR1cmVOb2RlKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKTsKICNlbmRpZgogICAgIAogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRl
eCA1MjYzMTVhLi4wMDU1MDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBA
IC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgdXNp
bmcgTm9kZVJhcmVEYXRhOjppc1dlYlZUVE5vZGU7CiAgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjpz
ZXRJc1dlYlZUVE5vZGU7CisgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjppc1dlYlZUVEZ1dHVyZU5v
ZGU7CisgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjpzZXRJc1dlYlZUVEZ1dHVyZU5vZGU7CiAjZW5k
aWYKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgYm9vbCBjb250YWluc0Z1bGxTY3Jl
ZW5FbGVtZW50KCkgeyByZXR1cm4gbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50OyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuY3BwCmluZGV4IDk1NjA3YmIuLmFkYTkxZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuY3BwCkBAIC00OSw2ICs0OSwxMSBAQCBzdHJ1Y3QgU2FtZVNp
emVBc05vZGVSYXJlRGF0YSB7CiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICAgICB2b2lkKiBtX21p
Y3JvRGF0YTsKICNlbmRpZgorCisvLyBFbnVtIGlzIGludGVnZXIgdHlwZSBhbmQgaXMgYWxpZ25l
ZCBpbiBXaW5kb3dzIHdoZW4gcGxhY2VkIGluIHRoZSBiaXRmaWVsZCwgc28gaXQgdGFrZXMgbW9y
ZSBzcGFjZS4gCisjaWYgUExBVEZPUk0oV0lOKQorICAgIFRleHRUcmFjazo6V2ViVlRUTm9kZVR5
cGUgbV9XZWJWVFROb2RlVHlwZTsKKyNlbmRpZgogfTsKIENPTVBJTEVfQVNTRVJUKHNpemVvZihO
b2RlUmFyZURhdGEpID09IHNpemVvZihTYW1lU2l6ZUFzTm9kZVJhcmVEYXRhKSwgTm9kZVJhcmVE
YXRhU2hvdWxkU3RheVNtYWxsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IGE1
NWZjOTcuLjJlMDA4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTI5LDYgKzI5
LDkgQEAKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVk
ZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgIlRhZ05vZGVMaXN0LmgiCisjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQorI2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2VuZGlmCiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KQEAgLTI1NCw5ICsyNTcsNiBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9uZWVk
c0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaChmYWxzZSkKICAgICAgICAgLCBt
X3N0eWxlQWZmZWN0ZWRCeUVtcHR5KGZhbHNlKQogICAgICAgICAsIG1faXNJbkNhbnZhc1N1YnRy
ZWUoZmFsc2UpCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICAsIG1faXNXZWJWVFRO
b2RlKGZhbHNlKQotI2VuZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICAgICAs
IG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChmYWxzZSkKICNlbmRpZgpAQCAtMjcxLDYgKzI3
MSw5IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFj
ZW50UnVsZXMoZmFsc2UpCiAgICAgICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9z
aXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dh
cmRQb3NpdGlvbmFsUnVsZXMoZmFsc2UpCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgICAg
ICAsIG1fV2ViVlRUTm9kZVR5cGUoVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZU5vbmUpCisjZW5k
aWYKICAgICB7CiAgICAgfQogCkBAIC0zNzEsOCArMzc0LDEwIEBAIHB1YmxpYzoKIAogcHJvdGVj
dGVkOgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBib29sIGlzV2ViVlRUTm9kZSgpIHsg
cmV0dXJuIG1faXNXZWJWVFROb2RlOyB9Ci0gICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoYm9vbCB2
YWx1ZSkgeyBtX2lzV2ViVlRUTm9kZSA9IHZhbHVlOyB9CisgICAgYm9vbCBpc1dlYlZUVE5vZGUo
KSB7IHJldHVybiBtX1dlYlZUVE5vZGVUeXBlICE9IFRleHRUcmFjazo6V2ViVlRUTm9kZVR5cGVO
b25lOyB9CisgICAgdm9pZCBzZXRJc1dlYlZUVE5vZGUoKSB7IG1fV2ViVlRUTm9kZVR5cGUgPSBU
ZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlUGFzdDsgfQorICAgIGJvb2wgaXNXZWJWVFRGdXR1cmVO
b2RlKCkgeyByZXR1cm4gbV9XZWJWVFROb2RlVHlwZSA9PSBUZXh0VHJhY2s6OldlYlZUVE5vZGVU
eXBlRnV0dXJlOyB9CisgICAgdm9pZCBzZXRJc1dlYlZUVEZ1dHVyZU5vZGUoKSB7IG1fV2ViVlRU
Tm9kZVR5cGUgPSBUZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlRnV0dXJlOyB9CiAjZW5kaWYKICAg
ICBzaG9ydCBtX3RhYkluZGV4OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleDsKQEAg
LTM4MCw5ICszODUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX25lZWRzRm9jdXNBcHBlYXJh
bmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoIDogMTsKICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5
RW1wdHkgOiAxOwogICAgIGJvb2wgbV9pc0luQ2FudmFzU3VidHJlZSA6IDE7Ci0jaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQotICAgIGJvb2wgbV9pc1dlYlZUVE5vZGUgOiAxOwotI2VuZGlmCiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgbV9jb250YWluc0Z1bGxTY3JlZW5FbGVt
ZW50IDogMTsKICNlbmRpZgpAQCAtNDAwLDcgKzQwMiw5IEBAIHByb3RlY3RlZDoKICAgICBib29s
IG1fY2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyA6IDE7CiAgICAgYm9vbCBt
X2NoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwogICAgIGJvb2wg
bV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7Ci0KKyNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCisgICAgVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZSBtX1dlYlZU
VE5vZGVUeXBlIDogMjsKKyNlbmRpZgogcHJpdmF0ZToKICAgICBPd25QdHI8Tm9kZUxpc3RzTm9k
ZURhdGE+IG1fbm9kZUxpc3RzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggMmRlMTA1My4uMmVmYzA3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cApAQCAtMTIxOCw3ICsxMjE4LDcgQEAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudDo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2MKICAgICAsIG1f
Zm9udFNpemUoMCkKIHsKIH0KLSAgICAKKwogdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50OjpjcmVhdGVTdWJ0cmVlcyhEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1ZSwgKCJjdWUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suaAppbmRleCA2MzUwM2RhLi4zZGZhZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTExMCw2ICsxMTAsOCBAQCBwdWJsaWM6CiAKICAgICBlbnVtIFRl
eHRUcmFja1R5cGUgeyBUcmFja0VsZW1lbnQsIEFkZFRyYWNrLCBJbkJhbmQgfTsKICAgICBUZXh0
VHJhY2tUeXBlIHRyYWNrVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tUeXBlOyB9CisgICAg
CisgICAgZW51bSBXZWJWVFROb2RlVHlwZSB7V2ViVlRUTm9kZVR5cGVOb25lLCBXZWJWVFROb2Rl
VHlwZUZ1dHVyZSwgV2ViVlRUTm9kZVR5cGVQYXN0fTsKIAogICAgIGludCB0cmFja0luZGV4KCk7
CiAgICAgdm9pZCBpbnZhbGlkYXRlVHJhY2tJbmRleCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IDYyYTBjOTYuLjAwNjI5ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTE4MywxNSArMTgzLDkgQEAg
UmVuZGVyT2JqZWN0KiBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3VlOjpwYXN0Tm9kZXNTaGFkb3dQc2V1
ZG9JZCgpCitjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6YWxsTm9kZXNTaGFkb3dQ
c2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHN1YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcGFzdC1ub2RlcyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICByZXR1cm4gc3VidGl0bGVzOwot
fQotCi1jb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6ZnV0dXJlTm9kZXNTaGFkb3dQ
c2V1ZG9JZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHN1YnRpdGxlcywgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLWFsbC1ub2RlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gc3VidGl0bGVzOwogfQogCkBAIC0yMTMsOCArMjA3LDcgQEAgVGV4dFRyYWNrQ3Vl
OjpUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91YmxlIHN0
YXJ0LCBkb3VibGUKICAgICAsIG1fcGF1c2VPbkV4aXQoZmFsc2UpCiAgICAgLCBtX3NuYXBUb0xp
bmVzKHRydWUpCiAgICAgLCBtX2hhc0lubmVyVGltZXN0YW1wcyhmYWxzZSkKLSAgICAsIG1fcGFz
dERvY3VtZW50Tm9kZXMoSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxEb2N1bWVu
dCo+KGNvbnRleHQpKSkKLSAgICAsIG1fZnV0dXJlRG9jdW1lbnROb2RlcyhIVE1MRGl2RWxlbWVu
dDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQorICAgICwgbV9hbGxE
b2N1bWVudE5vZGVzKEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQq
Pihjb250ZXh0KSkpCiAgICAgLCBtX2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlKHRydWUpCiAgICAg
LCBtX2Rpc3BsYXlUcmVlKFRleHRUcmFja0N1ZUJveDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3Vt
ZW50Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgdGhpcykpCiB7CkBAIC00ODgsMTIgKzQ4
MSw2IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgoKQogICAgIG1fY3Vl
SW5kZXggPSBpbnZhbGlkQ3VlSW5kZXg7CiB9CiAKLXZvaWQgVGV4dFRyYWNrQ3VlOjptYXJrTm9k
ZXNBc1dlYlZUVE5vZGVzKE5vZGUqIHJvb3QpCi17Ci0gICAgZm9yIChFbGVtZW50KiBjaGlsZCA9
IEVsZW1lbnRUcmF2ZXJzYWw6OmZpcnN0V2l0aGluKHJvb3QpOyBjaGlsZDsgY2hpbGQgPSBFbGVt
ZW50VHJhdmVyc2FsOjpuZXh0KGNoaWxkLCByb290KSkKLSAgICAgICAgY2hpbGQtPnNldElzV2Vi
VlRUTm9kZSh0cnVlKTsKLX0KLQogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBUZXh0VHJh
Y2tDdWU6OmdldEN1ZUFzSFRNTCgpCiB7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNs
b25lZEZyYWdtZW50OwpAQCAtNTE2LDcgKzUwMyw2IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gVGV4dFRyYWNrQ3VlOjpnZXRDdWVBc0hUTUwoKQogCiAgICAgY2xvbmVkRnJhZ21lbnQg
PSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fZG9jdW1lbnRGcmFn
bWVudC0+Y2xvbmVDaGlsZE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKLSAgICBtYXJrTm9k
ZXNBc1dlYlZUVE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKIAogICAgIHJldHVybiBjbG9u
ZWRGcmFnbWVudC5yZWxlYXNlKCk7CiB9CkBAIC02NzYsNTAgKzY2Miw1NCBAQCB2b2lkIFRleHRU
cmFja0N1ZTo6Y2FsY3VsYXRlRGlzcGxheVBhcmFtZXRlcnMoKQogICAgIC8vIGlzIGRlZmluZWQg
aW4gdGVybXMgb2YgdGhlIG90aGVyIGFzcGVjdHMgb2YgdGhlIGN1ZS4KICAgICBtX2NvbXB1dGVk
TGluZVBvc2l0aW9uID0gY2FsY3VsYXRlQ29tcHV0ZWRMaW5lUG9zaXRpb24oKTsKIH0KKyAgICAK
K3ZvaWQgVGV4dFRyYWNrQ3VlOjptYXJrRnV0dXJlQW5kUGFzdE5vZGVzKEVsZW1lbnQqIHJvb3Qs
IGRvdWJsZSBwcmV2aW91c1RpbWVzdGFtcCwgZG91YmxlIG1vdmllVGltZSkKK3sKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZXN0YW1wVGFnLCAoQVNDSUlMaXRlcmFs
KCJ0aW1lc3RhbXAiKSkpOworICAgIAorICAgIGJvb2wgaXNQYXN0Tm9kZSA9IHRydWU7CisgICAg
ZG91YmxlIGN1cnJlbnRUaW1lc3RhbXAgPSBwcmV2aW91c1RpbWVzdGFtcDsKKyAgICBpZiAoY3Vy
cmVudFRpbWVzdGFtcCA+IG1vdmllVGltZSkKKyAgICAgICAgaXNQYXN0Tm9kZSA9IGZhbHNlOwor
ICAgIAorICAgIGZvciAoTm9kZSogY2hpbGQgPSByb290LT5maXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoY2hpbGQsIHJvb3QpKSB7CisgICAgICAgIGlmIChj
aGlsZC0+bm9kZU5hbWUoKSA9PSB0aW1lc3RhbXBUYWcpIHsKKyAgICAgICAgICAgIHVuc2lnbmVk
IHBvc2l0aW9uID0gMDsKKyAgICAgICAgICAgIFN0cmluZyB0aW1lc3RhbXAgPSBjaGlsZC0+bm9k
ZVZhbHVlKCk7CisgICAgICAgICAgICBkb3VibGUgY3VycmVudFRpbWVzdGFtcCA9IFdlYlZUVFBh
cnNlcjo6Y3JlYXRlKDAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCktPmNvbGxlY3RUaW1lU3Rh
bXAodGltZXN0YW1wLCAmcG9zaXRpb24pOworICAgICAgICAgICAgQVNTRVJUKGN1cnJlbnRUaW1l
c3RhbXAgIT0gLTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY3VycmVudFRpbWVz
dGFtcCA+IG1vdmllVGltZSkKKyAgICAgICAgICAgICAgICBpc1Bhc3ROb2RlID0gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChjaGlsZC0+aXNFbGVtZW50Tm9kZSgpKSB7
CisgICAgICAgICAgICBpZiAoIWlzUGFzdE5vZGUpCisgICAgICAgICAgICAgICAgdG9FbGVtZW50
KGNoaWxkKS0+c2V0SXNXZWJWVFRGdXR1cmVOb2RlKCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdG9FbGVtZW50KGNoaWxkKS0+c2V0SXNXZWJWVFROb2RlKCk7CisgICAgICAg
IH0KKyAgICB9Cit9CiAKIHZvaWQgVGV4dFRyYWNrQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZShmbG9h
dCBtb3ZpZVRpbWUpCiB7CiAgICAgLy8gVGhlIGRpc3BsYXkgdHJlZSBtYXkgY29udGFpbiBXZWJW
VFQgdGltZXN0YW1wIG9iamVjdHMgcmVwcmVzZW50aW5nCiAgICAgLy8gdGltZXN0YW1wcyAocHJv
Y2Vzc2luZyBpbnN0cnVjdGlvbnMpLCBhbG9uZyB3aXRoIGRpc3BsYXlhYmxlIG5vZGVzLgotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxp
dGVyYWwoInRpbWVzdGFtcCIpKSk7CiAKICAgICBpZiAoIXRyYWNrKCktPmlzUmVuZGVyZWQoKSkK
ICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgaXNQYXN0Tm9kZSA9IHRydWU7CiAKLSAgICAvLyBD
bGVhciB0aGUgY29udGVudHMgb2YgdGhlIHR3byBzZXRzLgotICAgIG1fZnV0dXJlRG9jdW1lbnRO
b2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX2Z1dHVyZURvY3VtZW50Tm9kZXMtPnNldFBz
ZXVkbyhmdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwotCi0gICAgbV9wYXN0RG9jdW1lbnRO
b2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICBtX3Bhc3REb2N1bWVudE5vZGVzLT5zZXRQc2V1
ZG8ocGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKSk7CisgICAgLy8gQ2xlYXIgdGhlIGNvbnRlbnRz
IG9mIHRoZSBzZXQuCisgICAgbV9hbGxEb2N1bWVudE5vZGVzLT5yZW1vdmVDaGlsZHJlbigpOwor
ICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKGFsbE5vZGVzU2hhZG93UHNldWRvSWQo
KSk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHR3byBzZXRzIGNvbnRhaW5pbmcgcGFzdCBhbmQgZnV0
dXJlIFdlYlZUVCBvYmplY3RzLgogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZWZlcmVu
Y2VUcmVlID0gZ2V0Q3VlQXNIVE1MKCk7CiAKLSAgICBpZiAoIW1faGFzSW5uZXJUaW1lc3RhbXBz
KSB7Ci0gICAgICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKHJlZmVyZW5jZVRy
ZWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZm9yIChOb2RlICpjaGlsZCA9IHJl
ZmVyZW5jZVRyZWUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5ub2RlTmFtZSgpID09IHRpbWVzdGFtcFRhZykg
ewotICAgICAgICAgICAgdW5zaWduZWQgaW50IHBvc2l0aW9uID0gMDsKLSAgICAgICAgICAgIFN0
cmluZyB0aW1lc3RhbXAgPSBjaGlsZC0+bm9kZVZhbHVlKCk7Ci0KLSAgICAgICAgICAgIGRvdWJs
ZSB0aW1lc3RhbXBUaW1lID0gV2ViVlRUUGFyc2VyOjpjcmVhdGUoMCwgbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KS0+Y29sbGVjdFRpbWVTdGFtcCh0aW1lc3RhbXAsICZwb3NpdGlvbik7Ci0gICAg
ICAgICAgICBBU1NFUlQodGltZXN0YW1wVGltZSAhPSAtMSk7Ci0KLSAgICAgICAgICAgIGlmICh0
aW1lc3RhbXBUaW1lID4gbW92aWVUaW1lKQotICAgICAgICAgICAgICAgIGlzUGFzdE5vZGUgPSBm
YWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc1Bhc3ROb2RlKQotICAgICAgICAgICAg
bV9wYXN0RG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lTm9kZSh0cnVlKSwg
QVNTRVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBt
X2Z1dHVyZURvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKGNoaWxkLT5jbG9uZU5vZGUodHJ1ZSks
IEFTU0VSVF9OT19FWENFUFRJT04sIGZhbHNlKTsKLSAgICB9CisgICAgbV9hbGxEb2N1bWVudE5v
ZGVzLT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKKyAgICBtYXJrRnV0dXJlQW5kUGFzdE5v
ZGVzKG1fYWxsRG9jdW1lbnROb2Rlcy5nZXQoKSwgc3RhcnRUaW1lKCksIG1vdmllVGltZSk7CiB9
CiAKIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlQm94PiBUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlU
cmVlKCkKQEAgLTc0MSw5ICs3MzEsOCBAQCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gVGV4
dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCiAgICAgLy8gJ2Rpc3BsYXknIHByb3BlcnR5IGhh
cyB0aGUgdmFsdWUgJ2lubGluZScuIFRoaXMgaXMgdGhlIFdlYlZUVCBjdWUKICAgICAvLyBiYWNr
Z3JvdW5kIGJveC4KIAotICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1bHQg
aW4gbV9wYXN0RG9jdW1lbnROb2Rlcy4KLSAgICBtX2Rpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZCht
X3Bhc3REb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKLSAgICBtX2Rp
c3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2Z1dHVyZURvY3VtZW50Tm9kZXMsIEFTU0VSVF9OT19F
WENFUFRJT04sIHRydWUpOworICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1
bHQgaW4gbV9hbGxEb2N1bWVudE5vZGVzLgorICAgIG1fZGlzcGxheVRyZWUtPmFwcGVuZENoaWxk
KG1fYWxsRG9jdW1lbnROb2RlcywgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiAKICAgICAv
LyBGSVhNRShCVUcgNzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVj
dHMgdGhhdCBhcmUgbm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4dCBPYmplY3RzIG11c3QgYmUg
d3JhcHBlZCBpbiBhbm9ueW1vdXMgYm94ZXMgd2hvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5oCmluZGV4IGNmMTdkOTkuLjBlNzIzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtODAsOCArODAsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIH5UZXh0VHJhY2tDdWUoKTsKIAotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHBhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkKCk7Ci0gICAgc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYgZnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCgpOworICAgIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIGFsbE5vZGVzU2hhZG93UHNldWRvSWQoKTsKIAogICAgIFRleHRUcmFjayogdHJh
Y2soKSBjb25zdDsKICAgICB2b2lkIHNldFRyYWNrKFRleHRUcmFjayopOwpAQCAtMTI2LDcgKzEy
NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVDdWVJbmRleCgpOwogCiAgICAgUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBnZXRDdWVBc0hUTUwoKTsKLSAgICB2b2lkIG1hcmtO
b2Rlc0FzV2ViVlRUTm9kZXMoTm9kZSopOwogCiAgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZl
bnQoUGFzc1JlZlB0cjxFdmVudD4pOwogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRy
PEV2ZW50PiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTM3LDYgKzEzNSw3IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gZ2V0RGlzcGxheVRyZWUoKTsKICAgICB2b2lk
IHVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0KTsKICAgICB2b2lkIHJlbW92ZURpc3BsYXlUcmVlKCk7
CisgICAgdm9pZCBtYXJrRnV0dXJlQW5kUGFzdE5vZGVzKEVsZW1lbnQqLCBkb3VibGUsIGRvdWJs
ZSk7CiAKICAgICBpbnQgY2FsY3VsYXRlQ29tcHV0ZWRMaW5lUG9zaXRpb24oKTsKIApAQCAtMjA5
LDggKzIwOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3NuYXBUb0xpbmVzOwogCiAgICAgYm9v
bCBtX2hhc0lubmVyVGltZXN0YW1wczsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IG1fcGFz
dERvY3VtZW50Tm9kZXM7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2Z1dHVyZURvY3Vt
ZW50Tm9kZXM7CisgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2FsbERvY3VtZW50Tm9kZXM7
CiAKICAgICBib29sIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2U7CiAgICAgUmVmUHRyPFRleHRU
cmFja0N1ZUJveD4gbV9kaXNwbGF5VHJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUUGFyc2VyLmNwcAppbmRleCBmZWQwMzY5Li4yOTdlNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCkBAIC0zNjQsNyArMzY0LDYgQEAgdm9pZCBXZWJW
VFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4oRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
ICAgICAgICAgY2hpbGQgPSBIVE1MRWxlbWVudDo6Y3JlYXRlKHFUYWcsIGRvY3VtZW50KTsKIAog
ICAgICAgICBpZiAoY2hpbGQpIHsKLSAgICAgICAgICAgIGNoaWxkLT5zZXRJc1dlYlZUVE5vZGUo
dHJ1ZSk7CiAgICAgICAgICAgICBpZiAobV90b2tlbi5jbGFzc2VzKCkuc2l6ZSgpID4gMCkKICAg
ICAgICAgICAgICAgICBjaGlsZC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXRvbWljU3RyaW5n
KG1fdG9rZW4uY2xhc3NlcygpLmRhdGEoKSwgbV90b2tlbi5jbGFzc2VzKCkuc2l6ZSgpKSk7CiAg
ICAgICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUocVRhZykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KaW5kZXggNzc5YTRiYy4uNzVm
N2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYy5tbQpAQCAtMjUzLDEzICsyNTMsNyBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYzo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdAogICAgIENvbG9yIGNvbG9y
ID0gY2FwdGlvbnNCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICBpZiAoY29sb3IuaXNWYWxpZCgpKSB7
CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgiIHZpZGVvOjoiKTsK
LSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRUcmFja0N1ZTo6
cGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHls
ZVNoZWV0LmFwcGVuZCgneycpOwotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5h
cHBlbmQoY3NzQ29sb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgY29sb3Ip
KTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCd9Jyk7Ci0gICAg
ICAgIAotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoIiB2aWRlbzo6
Iik7Ci0gICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tD
dWU6OmZ1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQoKSk7CisgICAgICAgIGNhcHRpb25zT3ZlcnJp
ZGVTdHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6OmFsbE5vZGVzU2hhZG93UHNldWRvSWQo
KSk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgneycpOwogICAg
ICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoY3NzQ29sb3JQcm9wZXJ0eShD
U1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgY29sb3IpKTsKICAgICAgICAgY2FwdGlvbnNPdmVy
cmlkZVN0eWxlU2hlZXQuYXBwZW5kKCd9Jyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181371</attachid>
            <date>2013-01-04 13:54:43 -0800</date>
            <delta_ts>2013-01-04 17:36:48 -0800</delta_ts>
            <desc>Proposed fix 0.8</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>38603</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDIyNGVlLi4zMmRmMjA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTIt
MjEgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IDpmdXR1cmUgcHNldWRvIGNsYXNzIGZvciB0aGUgV2ViVlRUIDo6Y3VlIHBzZXVkbyBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmll
ZCB0aGUgdHJhY2sgY3NzIG1hdGNoaW5nIHRlc3QgdG8gY292ZXIgOmZ1dHVyZSBwc2V1ZG8tY2xh
c3MgY2FzZS4KKworICAgICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9u
cy1pbm5lci10aW1lc3RhbXBzLnZ0dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay9j
YXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQ6CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2st
Y3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1j
c3MtbWF0Y2hpbmcuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVy
aW5nLWlubmVyLXRpbWVzdGFtcHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1l
ZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1sOiBUaGUg
dGVzdCB3YXMgcmVtb3ZlZCBiZWNhdXNlIGl0IHdhcyBiYXNlZCBvbiB0aGUgb2xkCisgICAgICAg
IGZ1dHVyZS9wYXN0IG5vZGVzIHJlbmRlcmluZyBsb2dpYy4KKwogMjAxMi0xMi0yMSAgS2VubmV0
aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIEFycmF5QnVmZmVy
VmlldyBjb25zdHJ1Y3RvciBvbiBET01XaW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBzLnZ0dCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10
aW1lc3RhbXBzLnZ0dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMzNDE5OC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvY2FwdGlv
bnMtaW5uZXItdGltZXN0YW1wcy52dHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi3v
u79XRUJWVFQKLQotMQotMDA6MDA6MDAuMDAwIC0tPiAwMDowMDowMC45NTAKLTwwMDowMDowMC4y
MDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UKLQot
MgotMDA6MDA6MDEuMDAwIC0tPiAwMDowMDowMy42MDAKLTwwMDowMDowMS4yMDA+U29tZSA8MDA6
MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAw
OjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDow
MDowMy40NTA+cGFpbgotCi0zCi0wMDowMDowMy43MDAgLS0+IDAwOjAwOjA0LjI1MAotPDAwOjAw
OjAzLjc1MD5DaG9jb2xhdGUgPDAwOjAwOjA0LjAwMD5SYWluCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay9jYXB0aW9ucy13ZWJ2dHQvc3R5bGluZy52dHQKaW5kZXggYTcxYmNhZi4u
MzI3NDhjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2Vi
dnR0L3N0eWxpbmcudnR0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdl
YnZ0dC9zdHlsaW5nLnZ0dApAQCAtNywzICs3LDcgQEAgTG9ydW0gaXBzdW0KIDIKIDAwOjAxLjAw
MCAtLT4gMDA6MDIuMDAwCiA8Yy5yZWQ+ZG9sb3Igc2l0IDwvYz48Yy5ncmVlbj5hbWV0LCBjb25z
ZWN0ZXR1ciA8L2M+PGMucmVkMj5hZGlwaXNjaW5nIGVsaXQ8L2M+CisKKzMKKzAwOjAyLjAwMCAt
LT4gMDA6MDUuMDAwCis8MDA6MDIuMDAwPjxjPlN1c3BlbmRpc3NlIGFjY3Vtc2FuLCA8L2M+PDAw
OjAzLjAwMD48Yz5tYXVyaXMgc2VkIDwvYz48MDA6MDQuMDAwPjxjPmV1aXNtb2QgcGhhcmV0cmE8
L2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1leHBlY3RlZC50eHQKaW5kZXggMGYyMzk1
My4uNDA4N2JkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Nz
LW1hdGNoaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFj
ay1jc3MtbWF0Y2hpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsMjkgQEAKLVRlc3QgdGhhdCBj
dWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRoZSBjbGFzcyBuYW1lCisxLiBUZXN0
IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgY2xhc3MgbmFtZQog
RVZFTlQoY2FucGxheXRocm91Z2gpCiBFVkVOVChzZWVrZWQpCiBFWFBFQ1RFRCAoZ2V0Q29tcHV0
ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMCwgMCknKSBPSwogRVhQRUNURUQg
KGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigwLCAxMjgsIDApJykgT0sK
IEVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAw
LCAwKScpIE9LCisKK1JVTih2aWRlby5jdXJyZW50VGltZSA9IDIuNSkKK0VWRU5UKHNlZWtlZCkK
KworCisyLiBUZXN0IHRoYXQgY3VlcyBhcmUgYmVpbmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUg
JzpmdXR1cmUnIHBzZXVkbyBjbGFzcy4KK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1ZU5v
ZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBPSworRVhQRUNURUQgKGdldENvbXB1
dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigxMjgsIDEyOCwgMTI4KScpIE9LCitFWFBF
Q1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDEyOCwgMTI4LCAx
MjgpJykgT0sKKworUlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gMy41KQorRVZFTlQoc2Vla2VkKQor
RVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUsIDI1
NSwgMjU1KScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciA9
PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxlKGN1
ZU5vZGUpLmNvbG9yID09ICdyZ2IoMTI4LCAxMjgsIDEyOCknKSBPSworCitSVU4odmlkZW8uY3Vy
cmVudFRpbWUgPSA0LjUpCitFVkVOVChzZWVrZWQpCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHls
ZShjdWVOb2RlKS5jb2xvciA9PSAncmdiKDI1NSwgMjU1LCAyNTUpJykgT0sKK0VYUEVDVEVEIChn
ZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yID09ICdyZ2IoMjU1LCAyNTUsIDI1NSknKSBP
SworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IgPT0gJ3JnYigyNTUs
IDI1NSwgMjU1KScpIE9LCiBFTkQgT0YgVEVTVAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmcuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sCmluZGV4IGQwNDIyNWEuLjgxNDViMmMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sCkBAIC0x
NywyMSArMTcsNTEgQEAKICAgICAgICAgPHNjcmlwdD4KIAogICAgICAgICB2YXIgY3VlTm9kZTsK
LQorICAgICAgICB2YXIgc2Vla2VkQ291bnQgPSAwOworICAgICAgICB2YXIgaW5mbyA9IFtbInJn
YigyNTUsIDAsIDApIiwgInJnYigwLCAxMjgsIDApIiwgInJnYigyNTUsIDAsIDApIl0sCisgICAg
ICAgICAgICAgICAgICAgIFsicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigxMjgsIDEyOCwgMTI4
KSIsICJyZ2IoMTI4LCAxMjgsIDEyOCkiXSwKKyAgICAgICAgICAgICAgICAgICAgWyJyZ2IoMjU1
LCAyNTUsIDI1NSkiLCAicmdiKDI1NSwgMjU1LCAyNTUpIiwgInJnYigxMjgsIDEyOCwgMTI4KSJd
LAorICAgICAgICAgICAgICAgICAgICBbInJnYigyNTUsIDI1NSwgMjU1KSIsICJyZ2IoMjU1LCAy
NTUsIDI1NSkiLCAicmdiKDI1NSwgMjU1LCAyNTUpIl1dOworICAgICAgICAKKyAgICAgICAgZnVu
Y3Rpb24gc2tpcE5vbkVsZW1lbnRzKHJvb3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5leHRF
bGVtZW50U2libGluZyA9IHJvb3Q7CisgICAgICAgICAgICB3aGlsZSAobmV4dEVsZW1lbnRTaWJs
aW5nLm5vZGVUeXBlICE9IDEpIHsKKyAgICAgICAgICAgICAgICBuZXh0RWxlbWVudFNpYmxpbmcg
PSBuZXh0RWxlbWVudFNpYmxpbmcubmV4dFNpYmxpbmc7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm4gbmV4dEVsZW1lbnRTaWJsaW5nOworICAgICAgICB9CisgICAgICAgIAogICAg
ICAgICBmdW5jdGlvbiBzZWVrZWQoKQogICAgICAgICB7Ci0gICAgICAgICAgICBjdWVOb2RlID0g
dGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdwYXN0LW5vZGVzJykuZmlyc3RDaGlsZDsK
LSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xv
ciIsICJyZ2IoMjU1LCAwLCAwKSIpOwotICAgICAgICAgICAgY3VlTm9kZSA9IGN1ZU5vZGUubmV4
dFNpYmxpbmc7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3Vl
Tm9kZSkuY29sb3IiLCAicmdiKDAsIDEyOCwgMCkiKTsKLSAgICAgICAgICAgIGN1ZU5vZGUgPSBj
dWVOb2RlLm5leHRTaWJsaW5nOwotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRl
ZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgInJnYigyNTUsIDAsIDApIik7Ci0gICAgICAgICAgICBl
bmRUZXN0KCk7CisgICAgICAgICAgICBpZiAodGVzdEVuZGVkKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICAgICAgaWYgKHNlZWtlZENvdW50ID09IDEpIHsKKyAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIyLiBUZXN0IHRoYXQgY3VlcyBhcmUgYmVp
bmcgbWF0Y2hlZCBwcm9wZXJseSBieSB0aGUgJzpmdXR1cmUnIHBzZXVkbyBjbGFzcy4iKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyh0ZXh0
VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2RlcycpLmZpcnN0Q2hpbGQpOworICAg
ICAgICAgICAgc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUpOworICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgaW5mb1tzZWVrZWRDb3VudF1b
MF0pOworICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyhjdWVOb2RlLm5leHRT
aWJsaW5nKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVO
b2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRdWzFdKTsKKyAgICAgICAgICAgIGN1ZU5vZGUg
PSBza2lwTm9uRWxlbWVudHMoY3VlTm9kZS5uZXh0U2libGluZyk7CisgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtlZENv
dW50XVsyXSk7CisKKyAgICAgICAgICAgIGlmICgrK3NlZWtlZENvdW50ID09IGluZm8ubGVuZ3Ro
KQorICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgcnVuKCJ2aWRlby5j
dXJyZW50VGltZSA9ICIgKyAodmlkZW8uY3VycmVudFRpbWUgKyAxKSk7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBsb2FkZWQoKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBjb25zb2xlV3JpdGUoIlRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHBy
b3Blcmx5IGJ5IHRoZSBjbGFzcyBuYW1lIik7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjEu
IFRlc3QgdGhhdCBjdWVzIGFyZSBiZWluZyBtYXRjaGVkIHByb3Blcmx5IGJ5IHRoZSBjbGFzcyBu
YW1lIik7CiAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CiAgICAgICAgICAgICB2aWRl
by5zcmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICcuLi9jb250ZW50L3Rlc3QnKTsKICAgICAg
ICAgICAgIHZpZGVvLmlkID0gInRlc3R2aWRlbyI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10
aW1lc3RhbXBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ4
OTNiOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVu
ZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTU3ICswLDAgQEAKLVRlc3QgdGhhdCBUZXh0VHJhY2sncyBjdWVzIGFyZSByZW5kZXJlZCBjb3Jy
ZWN0bHkgd2hlbiB0aGV5IGNvbnRhaW4gaW5uZXIgdGltZXN0YW1wcy4KLUVWRU5UKGNhbnBsYXl0
aHJvdWdoKQotCi0qKiBGaXJzdCBjdWUgKGVtcHR5KSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1
ZSAwICoKLUN1cnJlbnQgdGltZTogMAotUGFzdDogCi1GdXR1cmU6IENob2NvbGF0ZSBSYWluIEth
cmFva2UKLUNvbXBsZXRlOiA8MDA6MDA6MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJh
aW4gPDAwOjAwOjAwLjcwMD5LYXJhb2tlCi0KLSoqIEZpcnN0IGN1ZSAob25lIHdvcmQpICoqCi1F
VkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAwLjI1Ci1QYXN0OiBDaG9j
b2xhdGUgCi1GdXR1cmU6IFJhaW4gS2FyYW9rZQotQ29tcGxldGU6IDwwMDowMDowMC4yMDA+Q2hv
Y29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UKLQotKiogRmly
c3QgY3VlICh0d28gd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVu
dCB0aW1lOiAwLjUKLVBhc3Q6IENob2NvbGF0ZSBSYWluIAotRnV0dXJlOiBLYXJhb2tlCi1Db21w
bGV0ZTogPDAwOjAwOjAwLjIwMD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1MD5SYWluIDwwMDowMDow
MC43MDA+S2FyYW9rZQotCi0qKiBGaXJzdCBjdWUgKHRocmVlIHdvcmRzKSAqKgotRVZFTlQoc2Vl
a2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMC43NQotUGFzdDogQ2hvY29sYXRlIFJh
aW4gS2FyYW9rZQotRnV0dXJlOiAKLUNvbXBsZXRlOiA8MDA6MDA6MDAuMjAwPkNob2NvbGF0ZSA8
MDA6MDA6MDAuNDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJhb2tlCi0KLSoqIFNlY29uZCBjdWUg
KGVtcHR5KSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMQot
UGFzdDogCi1GdXR1cmU6IFNvbWUgc3RheSBkcnkgYW5kIG90aGVycyBmZWVsIHRoZSBwYWluCi1D
b21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEu
NzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIu
OTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWluCi0KLSoqIFNlY29u
ZCBjdWUgKG9uZSB3b3JkKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQg
dGltZTogMS4yNQotUGFzdDogU29tZSAKLUZ1dHVyZTogc3RheSBkcnkgYW5kIG90aGVycyBmZWVs
IHRoZSBwYWluCi1Db21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3Rh
eSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVy
cyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWlu
Ci0KLSoqIFNlY29uZCBjdWUgKHR3byB3b3JkcykgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUg
MCAqCi1DdXJyZW50IHRpbWU6IDEuNQotUGFzdDogU29tZSBzdGF5IAotRnV0dXJlOiBkcnkgYW5k
IG90aGVycyBmZWVsIHRoZSBwYWluCi1Db21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDow
MDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6
MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAw
OjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKHRocmVlIHdvcmRzKSAqKgotRVZFTlQoc2Vl
a2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMS43NQotUGFzdDogU29tZSBzdGF5IGRy
eSAKLUZ1dHVyZTogYW5kIG90aGVycyBmZWVsIHRoZSBwYWluCi1Db21wbGV0ZTogPDAwOjAwOjAx
LjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIu
MjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAz
LjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKHNhbWUgYXMgYmVm
b3JlKSAqKgotRVZFTlQoc2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMgotUGFz
dDogU29tZSBzdGF5IGRyeSAKLUZ1dHVyZTogYW5kIG90aGVycyBmZWVsIHRoZSBwYWluCi1Db21w
bGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAw
PmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUw
PmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBj
dWUgKGZvdXIgd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSogQ3VlIDAgKgotQ3VycmVudCB0
aW1lOiAyLjI1Ci1QYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCAKLUZ1dHVyZTogb3RoZXJzIGZlZWwg
dGhlIHBhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5
IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJz
IDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4K
LQotKiogU2Vjb25kIGN1ZSAoZml2ZSB3b3JkcykgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUg
MCAqCi1DdXJyZW50IHRpbWU6IDIuNQotUGFzdDogU29tZSBzdGF5IGRyeSBhbmQgb3RoZXJzIAot
RnV0dXJlOiBmZWVsIHRoZSBwYWluCi1Db21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDow
MDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6
MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAw
OjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKHNhbWUgYXMgYmVmb3JlKSAqKgotRVZFTlQo
c2Vla2VkKQotCi0qIEN1ZSAwICoKLUN1cnJlbnQgdGltZTogMi43NQotUGFzdDogU29tZSBzdGF5
IGRyeSBhbmQgb3RoZXJzIAotRnV0dXJlOiBmZWVsIHRoZSBwYWluCi1Db21wbGV0ZTogPDAwOjAw
OjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6
MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAw
OjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWluCi0KLSoqIFNlY29uZCBjdWUgKHNpeCB3b3Jk
cykgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRpbWU6IDMKLVBhc3Q6
IFNvbWUgc3RheSBkcnkgYW5kIG90aGVycyBmZWVsIAotRnV0dXJlOiB0aGUgcGFpbgotQ29tcGxl
dGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5k
cnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5m
ZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgotCi0qKiBTZWNvbmQgY3Vl
IChzZXZlbiB3b3JkcykgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUgMCAqCi1DdXJyZW50IHRp
bWU6IDMuMjUKLVBhc3Q6IFNvbWUgc3RheSBkcnkgYW5kIG90aGVycyBmZWVsIHRoZSAKLUZ1dHVy
ZTogcGFpbgotQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkg
PDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMg
PDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgot
Ci0qKiBTZWNvbmQgY3VlIChlaWdodCB3b3JkcykgKioKLUVWRU5UKHNlZWtlZCkKLQotKiBDdWUg
MCAqCi1DdXJyZW50IHRpbWU6IDMuNQotUGFzdDogU29tZSBzdGF5IGRyeSBhbmQgb3RoZXJzIGZl
ZWwgdGhlIHBhaW4KLUZ1dHVyZTogCi1Db21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDow
MDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6
MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAw
OjAzLjQ1MD5wYWluCi0KLSoqIFRoaXJkIGN1ZSAob25lIHdvcmQpICoqCi1FVkVOVChzZWVrZWQp
Ci0KLSogQ3VlIDAgKgotQ3VycmVudCB0aW1lOiAzLjc1Ci1QYXN0OiBDaG9jb2xhdGUgCi1GdXR1
cmU6IFJhaW4KLUNvbXBsZXRlOiA8MDA6MDA6MDMuNzUwPkNob2NvbGF0ZSA8MDA6MDA6MDQuMDAw
PlJhaW4KLQotKiogVGhpcmQgY3VlICh0d28gd29yZHMpICoqCi1FVkVOVChzZWVrZWQpCi0KLSog
Q3VlIDAgKgotQ3VycmVudCB0aW1lOiA0Ci1QYXN0OiBDaG9jb2xhdGUgUmFpbgotRnV0dXJlOiAK
LUNvbXBsZXRlOiA8MDA6MDA6MDMuNzUwPkNob2NvbGF0ZSA8MDA6MDA6MDQuMDAwPlJhaW4KLUVO
RCBPRiBURVNUCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1
ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDIyMzI5YjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8
aGVhZD4KLSAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Ci0KLSAgICAgICAgPHNjcmlwdCBzcmM9Li4vbWVk
aWEtZmlsZS5qcz48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Li4vdmlkZW8tdGVzdC5q
cz48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtY29udHJvbHMuanM+PC9z
Y3JpcHQ+Ci0KLSAgICAgICAgPHNjcmlwdD4KLQotICAgICAgICB2YXIgdGVzdFRyYWNrOwotICAg
ICAgICB2YXIgY3VlRGlzcGxheUVsZW1lbnQ7Ci0gICAgICAgIHZhciBjdWVEaXNwbGF5Q29udGFp
bmVyOwotICAgICAgICB2YXIgc2Vla2VkQ291bnQgPSAwOwotCi0gICAgICAgIHZhciB0ZXN0Q2Fz
ZURlc2NyaXB0aW9uID0gWwotICAgICAgICAgICAgICAgICJGaXJzdCBjdWUgKGVtcHR5KSIsCi0g
ICAgICAgICAgICAgICAgIkZpcnN0IGN1ZSAob25lIHdvcmQpIiwKLSAgICAgICAgICAgICAgICAi
Rmlyc3QgY3VlICh0d28gd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiRmlyc3QgY3VlICh0aHJl
ZSB3b3JkcykiLAotICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlIChlbXB0eSkiLAotICAgICAg
ICAgICAgICAgICJTZWNvbmQgY3VlIChvbmUgd29yZCkiLAotICAgICAgICAgICAgICAgICJTZWNv
bmQgY3VlICh0d28gd29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAodGhyZWUg
d29yZHMpIiwKLSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoc2FtZSBhcyBiZWZvcmUpIiwK
LSAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZm91ciB3b3JkcykiLAotICAgICAgICAgICAg
ICAgICJTZWNvbmQgY3VlIChmaXZlIHdvcmRzKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBj
dWUgKHNhbWUgYXMgYmVmb3JlKSIsCi0gICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKHNpeCB3
b3JkcykiLAotICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlIChzZXZlbiB3b3JkcykiLAotICAg
ICAgICAgICAgICAgICJTZWNvbmQgY3VlIChlaWdodCB3b3JkcykiLAotICAgICAgICAgICAgICAg
ICJUaGlyZCBjdWUgKG9uZSB3b3JkKSIsCi0gICAgICAgICAgICAgICAgIlRoaXJkIGN1ZSAodHdv
IHdvcmRzKSIKLSAgICAgICAgXTsKLQotICAgICAgICAvLyBFYWNoIHRlc3QgY2FzZSBpcyBmb3Vu
ZCBieSBpbmNyZW1lbnRpbmcgd2l0aCAwLjI1MCB0aGUgY3VycmVudCB0aW1lLgotICAgICAgICB2
YXIgdGVzdENhc2VTZWVrVGltZSA9IFsKLSAgICAgICAgXTsKLQotICAgICAgICB2YXIgY3VycmVu
dFRlc3RDYXNlID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBzZWVrZWQoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RUcmFjay50cmFjay5hY3RpdmVDdWVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgY3VlRGlzcGxheUVsZW1lbnQgPSB0ZXh0
VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2Rpc3BsYXknLCBpKTsKLQotICAgICAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIqIEN1
ZSAiICsgaSArICIgKiIpOwotCi0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJDdXJyZW50
IHRpbWU6ICIgKyBNYXRoLnJvdW5kKHZpZGVvLmN1cnJlbnRUaW1lICogMTAwKSAvIDEwMCk7Ci0g
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJQYXN0OiAiICsgY3VlRGlzcGxheUVsZW1lbnQu
Y2hpbGROb2Rlc1swXS5pbm5lckhUTUwpOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
RnV0dXJlOiAiICsgY3VlRGlzcGxheUVsZW1lbnQuY2hpbGROb2Rlc1sxXS5pbm5lckhUTUwpOwot
Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJDb21wbGV0ZTogIiArIHRlc3RUcmFjay50
cmFjay5hY3RpdmVDdWVzW2ldLnRleHQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBy
dW5OZXh0VGVzdENhc2UoKTsKLSAgICAgICAgfTsKLQotICAgICAgICBmdW5jdGlvbiBydW5OZXh0
VGVzdENhc2UoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoY3VycmVudFRlc3RDYXNlID09
IHRlc3RDYXNlRGVzY3JpcHRpb24ubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgZW5kVGVzdCgp
OwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCIiKTsKLSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKiogIiArICB0ZXN0
Q2FzZURlc2NyaXB0aW9uW2N1cnJlbnRUZXN0Q2FzZV0gKyAiICoqIik7Ci0KLSAgICAgICAgICAg
IHZpZGVvLmN1cnJlbnRUaW1lID0gdGVzdENhc2VTZWVrVGltZVtjdXJyZW50VGVzdENhc2VdOwot
ICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdzZWVrZWQnLCBzZWVrZWQsIGZhbHNlLCB0cnVlKTsK
LQotICAgICAgICAgICAgY3VycmVudFRlc3RDYXNlKys7Ci0gICAgICAgIH0KLQotICAgICAgICBm
dW5jdGlvbiBsb2FkZWQoKQotICAgICAgICB7Ci0gICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRl
c3QgdGhhdCBUZXh0VHJhY2sncyBjdWVzIGFyZSByZW5kZXJlZCBjb3JyZWN0bHkgd2hlbiB0aGV5
IGNvbnRhaW4gaW5uZXIgdGltZXN0YW1wcy4iKTsKLQotICAgICAgICAgICAgZmluZE1lZGlhRWxl
bWVudCgpOwotICAgICAgICAgICAgdGVzdFRyYWNrID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
dHJhY2snKTsKLSAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywg
Jy4uL2NvbnRlbnQvdGVzdCcpOwotCi0gICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0
aHJvdWdoJywgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgY3VlRGlzcGxheUNvbnRhaW5l
ciA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvKTsKLQotICAgICAgICAgICAgICAgIGZv
ciAoaSA9IDAuMDsgaSA8IDQuNTAwOyBpICs9IDAuMjUwKQotICAgICAgICAgICAgICAgICAgICB0
ZXN0Q2FzZVNlZWtUaW1lLnB1c2goaSk7Ci0KLSAgICAgICAgICAgICAgICBydW5OZXh0VGVzdENh
c2UoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgPC9zY3JpcHQ+Ci0g
ICAgPC9oZWFkPgotICAgIDxib2R5IG9ubG9hZD0ibG9hZGVkKCkiPgotICAgICAgICA8dmlkZW8g
Y29udHJvbHM+Ci0gICAgICAgICAgICA8dHJhY2sgc3JjPSJjYXB0aW9ucy13ZWJ2dHQvY2FwdGlv
bnMtaW5uZXItdGltZXN0YW1wcy52dHQiIGtpbmQ9ImNhcHRpb25zIiBkZWZhdWx0PgotICAgICAg
ICA8L3ZpZGVvPgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYTA0MDRmLi4w
YjE2OThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTItMTItMjEgIERpbWEgR29y
YmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IDpmdXR1cmUgcHNl
dWRvIGNsYXNzIGZvciB0aGUgV2ViVlRUIDo6Y3VlIHBzZXVkbyBlbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZXMg
dGhlIGFwcHJvYWNoIG9mIHNob3dpbmcgcGFzdC9mdXR1cmUgbm9kZSBvYmplY3RzLgorICAgICAg
ICBCZWZvcmUgdXBwZXItbGV2ZWwgY29udGFpbmVycyB3ZXJlIHVzZWQgdG8gcHV0IHBhc3QgYW5k
IGZ1dHVyZSBub2RlcyBpbnNpZGUuIFN0eWxlcyB3ZXJlIGFwcGxpZWQKKyAgICAgICAgdG8gY29u
dGFpbmVycy4gTm93IHN0eWxlcyBjb3VsZCBiZSBhcHBsaWVkIGRpcmVjdGx5IHRvIG5vZGVzIGJ5
IHVzaW5nIDo6Y3VlKDpmdXR1cmUpLgorICAgICAgICBUaGF0IGFsbG93cyB0byBzdHlsZSBmdXR1
cmUvcGFzdCBXZWJWVFQgbm9kZXMgZXZlbiBpZiB0aGV5IGFyZSBuZXN0ZWQuCisKKyAgICAgICAg
RXhpc3RpbmcgdGVzdCB3YXMgbW9kaWZpZWQgdG8gY292ZXIgbmV3IGNhc2VzLgorCisgICAgICAg
ICogY3NzL0NTU1NlbGVjdG9yLmNwcDogYWRkZWQgOmZ1dHVyZSBwc2V1ZG8gY2xhc3Mgc3VwcG9y
dC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpwc2V1ZG9JZCk6CisgICAgICAgIChX
ZWJDb3JlOjpuYW1lVG9Qc2V1ZG9UeXBlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVj
dG9yOjpleHRyYWN0UHNldWRvVHlwZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6Cisg
ICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6IGRpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvU3R5
bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjYW5TaGFy
ZVN0eWxlV2l0aEVsZW1lbnQpOiBkZWZpbmUgc3R5bGUgc2hhcmluZyBydWxlcyBmb3IgV2ViVlRU
IG9iamVjdHMuCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHMuY3NzOgorICAgICAgICAodmlk
ZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMpOgorICAgICAgICAodmlkZW86
OmN1ZSg6ZnV0dXJlKSk6IGFkZGVkIHN0YW5kYXJkIHVzZXItYWdlbnQgc3R5bGVzIGZvciB0aGUg
ZnV0dXJlIG5vZGVzLgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDogc2V0dGVyIGZ1bmN0aW9u
cyBkb24ndCBoYXZlIGFuIGFyZ3VtZW50IG5vdyBiZWNhdXNlIFdlYlZUVCB0eXBlIGVudW0gd2Fz
IGludHJvZHVjZWQgYW5kIHRoZSByaWdodCB0eXBlIGlzIHNldAorICAgICAgICB3aGVuIHRoZSBz
ZXR0ZXIgaXMgYmVpbmcgY2FsbGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SXNX
ZWJWVFROb2RlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6aXNXZWJWVFRGdXR1cmVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldElz
V2ViVlRURnV0dXJlTm9kZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKEVs
ZW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKEVsZW1l
bnRSYXJlRGF0YSk6CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5jcHA6CisgICAgICAgIChT
YW1lU2l6ZUFzTm9kZVJhcmVEYXRhKTogYWRkZWQgYSBkdW1teSBlbnVtIHZhbHVlLiBFbnVtIGlz
IGludGVnZXIgdHlwZSBhbmQgaXMgYWxpZ25lZCBpbiBXaW5kb3dzIHdoZW4gcGxhY2VkIGluIHRo
ZSBiaXRmaWVsZCwKKyAgICAgICAgc28gaXQgdGFrZXMgbW9yZSBzcGFjZS4KKyAgICAgICAgKiBk
b20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6Ok5vZGVS
YXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OmlzV2ViVlRUTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnNldElzV2ViVlRUTm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OmlzV2ViVlRURnV0dXJlTm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnNldElzV2ViVlRURnV0dXJlTm9kZSk6CisgICAgICAg
IChOb2RlUmFyZURhdGEpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRy
YWNrLmg6IGFkZCBhIFdlYlZUVCBub2RlIG9iamVjdCB0eXBlIGVudW0uCisgICAgICAgIChUZXh0
VHJhY2spOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6YWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmdldEN1ZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6c2V0Tm9kZU9iamVjdEZsYWdzKTogZGV0ZXJtaW5l
IGlmIHRoZSBub2RlIGlzIGZ1dHVyZSBvciBwYXN0IGFuZCBtYXJrIGFzIFdlYlZUVCBub2RlLgor
ICAgICAgICBUaGlzIGNvbWJpbmVzIHRoZSBmdW5jdGlvbmFsaXR5IHJlbGF0ZWQgdG8gbWFya2lu
ZyBub2RlcyBpbXBsZW1lbnRlZCBiZWZvcmUgaW4gdXBkYXRlRGlzcGxheVRyZWUgYW5kCisgICAg
ICAgIG1hcmtOb2Rlc0FzV2ViVlRUTm9kZXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tD
dWU6OnVwZGF0ZURpc3BsYXlUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6
Z2V0RGlzcGxheVRyZWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6Cisg
ICAgICAgIChUZXh0VHJhY2tDdWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y29uc3RydWN0VHJlZUZyb21U
b2tlbik6IG5vIG5lZWQgdG8gbWFyayBub2RlcyBhcyBXZWJWVFQgbm9kZXMgd2hlbiBwYXJzaW5n
LiBUaGlzIGlzIGRvbmUgYXQgdGhlCisgICAgICAgIHJlbmRlcmluZyBzdGFnZSBsYXRlci4KKyAg
ICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlk
ZSk6IHRoZSBjb250YWluZXIgbmFtZSBoYXMgY2hhbmdlZC4KKwogMjAxMi0xMi0yMSAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGxvY2FsaXphYmxl
IHN0cmluZ3MgYXMgYSBmb2xsb3d1cCB0byBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8xMzgzODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDk1NmU0N2YuLmQ3ODc4
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMjIyLDYgKzIyMiw3IEBAIFBz
ZXVkb0lkIENTU1NlbGVjdG9yOjpwc2V1ZG9JZChQc2V1ZG9UeXBlIHR5cGUpCiAgICAgY2FzZSBQ
c2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50OgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBj
YXNlIFBzZXVkb0N1ZToKKyAgICBjYXNlIFBzZXVkb0Z1dHVyZUN1ZToKICNlbmRpZgogICAgICAg
ICByZXR1cm4gTk9QU0VVRE87CiAgICAgY2FzZSBQc2V1ZG9Ob3RQYXJzZWQ6CkBAIC0zMDcsNiAr
MzA4LDcgQEAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQ
c2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZU1hcCgKICNlbmRpZgogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY3VlLCAoImN1
ZSgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZ1dHVyZUN1ZSwgKCJmdXR1cmUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAjZW5kaWYKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaW5SYW5nZSwgKCJpbi1yYW5nZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgb3V0T2ZSYW5nZSwgKCJvdXQtb2YtcmFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CkBAIC0zODUsNiArMzg3LDcgQEAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3Ry
aW5nSW1wbCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZU1hcCgK
ICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICAgICAgbmFtZVRvUHNldWRvVHlw
ZS0+c2V0KGN1ZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9DdWUpOworICAgICAgICBuYW1l
VG9Qc2V1ZG9UeXBlLT5zZXQoZnV0dXJlQ3VlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1
dHVyZUN1ZSk7CiAjZW5kaWYKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGluUmFuZ2Uu
aW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvSW5SYW5nZSk7CiAgICAgICAgIG5hbWVUb1BzZXVk
b1R5cGUtPnNldChvdXRPZlJhbmdlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb091dE9mUmFu
Z2UpOwpAQCAtNTA3LDYgKzUxMCw5IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9U
eXBlKCkgY29uc3QKICNlbmRpZgogICAgIGNhc2UgUHNldWRvSW5SYW5nZToKICAgICBjYXNlIFBz
ZXVkb091dE9mUmFuZ2U6CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGNhc2UgUHNldWRv
RnV0dXJlQ3VlOgorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHNldWRvRmlyc3RQ
YWdlOgogICAgIGNhc2UgUHNldWRvTGVmdFBhZ2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmlu
ZGV4IGRlZmQzNmMuLjk3YzJlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0xNTgs
NiArMTU4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUHNldWRvV2ViS2l0
Q3VzdG9tRWxlbWVudCwKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgICAgICBQc2V1
ZG9DdWUsCisgICAgICAgICAgICBQc2V1ZG9GdXR1cmVDdWUsCiAjZW5kaWYKICAgICAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCA1N2ExZDlmLi42OGQ4
ZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtMTEyNCw2ICsx
MTI0LDEyIEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNl
bGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0LCBjCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2V0Q29udGFpbnNWYWxp
ZGl0eVN0eWxlUnVsZXMoKTsKICAgICAgICAgICAgIHJldHVybiBlbGVtZW50LT5pc091dE9mUmFu
Z2UoKTsKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0Z1dHVyZUN1ZToKKyAgICAgICAgICAgIGlmIChlbGVtZW50LT5pc1dlYlZUVEZ1dHVy
ZU5vZGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyNlbmRpZgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3du
OgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob3RQYXJzZWQ6CiAgICAgICAgIGRl
ZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggZTgzNmYzMy4uNGI1
NDU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTIzNiw2ICsxMjM2
LDE0IEBAIGJvb2wgU3R5bGVSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KFN0eWxl
ZEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0CiAgICAgaWYgKGVsZW1lbnQtPmlzTGluaygpICYmIG1f
ZWxlbWVudExpbmtTdGF0ZSAhPSBzdHlsZS0+aW5zaWRlTGluaygpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgaWYgKGVsZW1lbnQtPmlzV2Vi
VlRUTm9kZSgpICYmIG1fZWxlbWVudC0+aXNXZWJWVFROb2RlKCkgJiYgZWxlbWVudC0+aXNXZWJW
VFRGdXR1cmVOb2RlKCkgIT0gbV9lbGVtZW50LT5pc1dlYlZUVEZ1dHVyZU5vZGUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIC8vIERlbnkgc2hhcmluZyBzdHlsZXMgYmV0d2VlbiBXZWJW
VFQgbm9kZXMgYW5kIG5vbi1XZWJWVFQgbm9kZXMuCisgICAgaWYgKGVsZW1lbnQtPmlzV2ViVlRU
Tm9kZSgpICE9IG1fZWxlbWVudC0+aXNXZWJWVFROb2RlKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNv
bnRyb2xzLmNzcwppbmRleCAxMzhmZjFkLi5kOGZhZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlh
Q29udHJvbHMuY3NzCkBAIC0yMzgsMjUgKzIzOCwxOSBAQCB2aWRlbzo6LXdlYmtpdC1tZWRpYS10
ZXh0LXRyYWNrLWNvbnRhaW5lciB7CiAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKIH0KIAotdmlk
ZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1wYXN0LW5vZGVzIHsKK3ZpZGVvOjotd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stYWxsLW5vZGVzIHsKICAgICBkaXNwbGF5OiBpbmxpbmU7CiAKICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7CiAgICAgcGFkZGluZzogMnB4
IDJweDsKIH0KIAotdmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1mdXR1cmUtbm9kZXMg
ewotICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci0KLSAgICBi
YWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7Ci0KLSAgICBtYXJnaW4tbGVmdDog
LTJweDsKLSAgICBwYWRkaW5nOiAycHggMnB4IDJweCAwcHg7Ci19Ci0KIHZpZGVvOjotd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAg
IG92ZXJmbG93OiBoaWRkZW47CiAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogfQorCit2aWRl
bzo6Y3VlKDpmdXR1cmUpIHsKKyAgICBjb2xvcjogZ3JheTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCBkNTdkMDRlLi44N2M4ODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yMjg4
LDkgKzIyODgsMTkgQEAgYm9vbCBFbGVtZW50Ojppc1dlYlZUVE5vZGUoKSBjb25zdAogICAgIHJl
dHVybiBoYXNSYXJlRGF0YSgpICYmIGVsZW1lbnRSYXJlRGF0YSgpLT5pc1dlYlZUVE5vZGUoKTsK
IH0KIAotdm9pZCBFbGVtZW50OjpzZXRJc1dlYlZUVE5vZGUoYm9vbCBmbGFnKQordm9pZCBFbGVt
ZW50OjpzZXRJc1dlYlZUVE5vZGUoKQogewotICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLT5z
ZXRJc1dlYlZUVE5vZGUoZmxhZyk7CisgICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCktPnNldElz
V2ViVlRUTm9kZSgpOworfQorCitib29sIEVsZW1lbnQ6OmlzV2ViVlRURnV0dXJlTm9kZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmlz
V2ViVlRURnV0dXJlTm9kZSgpOworfQorCit2b2lkIEVsZW1lbnQ6OnNldElzV2ViVlRURnV0dXJl
Tm9kZSgpCit7CisgICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCktPnNldElzV2ViVlRURnV0dXJl
Tm9kZSgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDNlMDc3NjQuLjhlN2Zi
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNDM0LDcgKzQzNCw5IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKICAgICBib29sIGlzV2ViVlRUTm9kZSgpIGNvbnN0OwotICAg
IHZvaWQgc2V0SXNXZWJWVFROb2RlKGJvb2wgZmxhZyk7CisgICAgdm9pZCBzZXRJc1dlYlZUVE5v
ZGUoKTsKKyAgICBib29sIGlzV2ViVlRURnV0dXJlTm9kZSgpIGNvbnN0OworICAgIHZvaWQgc2V0
SXNXZWJWVFRGdXR1cmVOb2RlKCk7CiAjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggNTI2MzE1YS4uMDA1
NTA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtNTcsNiArNTcsOCBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHVzaW5nIE5vZGVSYXJlRGF0
YTo6aXNXZWJWVFROb2RlOwogICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6c2V0SXNXZWJWVFROb2Rl
OworICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6aXNXZWJWVFRGdXR1cmVOb2RlOworICAgIHVzaW5n
IE5vZGVSYXJlRGF0YTo6c2V0SXNXZWJWVFRGdXR1cmVOb2RlOwogI2VuZGlmCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudCgpIHsg
cmV0dXJuIG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJh
cmVEYXRhLmNwcAppbmRleCA5NTYwN2JiLi5hZGE5MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJh
cmVEYXRhLmNwcApAQCAtNDksNiArNDksMTEgQEAgc3RydWN0IFNhbWVTaXplQXNOb2RlUmFyZURh
dGEgewogI2lmIEVOQUJMRShNSUNST0RBVEEpCiAgICAgdm9pZCogbV9taWNyb0RhdGE7CiAjZW5k
aWYKKworLy8gRW51bSBpcyBpbnRlZ2VyIHR5cGUgYW5kIGlzIGFsaWduZWQgaW4gV2luZG93cyB3
aGVuIHBsYWNlZCBpbiB0aGUgYml0ZmllbGQsIHNvIGl0IHRha2VzIG1vcmUgc3BhY2UuIAorI2lm
IFBMQVRGT1JNKFdJTikKKyAgICBUZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlIG1fV2ViVlRUTm9k
ZVR5cGU7CisjZW5kaWYKIH07CiBDT01QSUxFX0FTU0VSVChzaXplb2YoTm9kZVJhcmVEYXRhKSA9
PSBzaXplb2YoU2FtZVNpemVBc05vZGVSYXJlRGF0YSksIE5vZGVSYXJlRGF0YVNob3VsZFN0YXlT
bWFsbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCBhNTVmYzk3Li4yZTAwOGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0yOSw2ICsyOSw5IEBACiAjaW5jbHVk
ZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5h
bWUuaCIKICNpbmNsdWRlICJUYWdOb2RlTGlzdC5oIgorI2lmIEVOQUJMRShWSURFT19UUkFDSykK
KyNpbmNsdWRlICJUZXh0VHJhY2suaCIKKyNlbmRpZgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBA
IC0yNTQsOSArMjU3LDYgQEAgcHVibGljOgogICAgICAgICAsIG1fbmVlZHNGb2N1c0FwcGVhcmFu
Y2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2goZmFsc2UpCiAgICAgICAgICwgbV9zdHlsZUFmZmVjdGVk
QnlFbXB0eShmYWxzZSkKICAgICAgICAgLCBtX2lzSW5DYW52YXNTdWJ0cmVlKGZhbHNlKQotI2lm
IEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgLCBtX2lzV2ViVlRUTm9kZShmYWxzZSkKLSNl
bmRpZgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAgICAgLCBtX2NvbnRhaW5zRnVs
bFNjcmVlbkVsZW1lbnQoZmFsc2UpCiAjZW5kaWYKQEAgLTI3MSw2ICsyNzEsOSBAQCBwdWJsaWM6
CiAgICAgICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKGZhbHNl
KQogICAgICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcyhm
YWxzZSkKICAgICAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1
bGVzKGZhbHNlKQorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICAgICAgLCBtX1dlYlZUVE5v
ZGVUeXBlKFRleHRUcmFjazo6V2ViVlRUTm9kZVR5cGVOb25lKQorI2VuZGlmCiAgICAgewogICAg
IH0KIApAQCAtMzcxLDggKzM3NCwxMCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCi0gICAgYm9vbCBpc1dlYlZUVE5vZGUoKSB7IHJldHVybiBtX2lzV2Vi
VlRUTm9kZTsgfQotICAgIHZvaWQgc2V0SXNXZWJWVFROb2RlKGJvb2wgdmFsdWUpIHsgbV9pc1dl
YlZUVE5vZGUgPSB2YWx1ZTsgfQorICAgIGJvb2wgaXNXZWJWVFROb2RlKCkgeyByZXR1cm4gbV9X
ZWJWVFROb2RlVHlwZSAhPSBUZXh0VHJhY2s6OldlYlZUVE5vZGVUeXBlTm9uZTsgfQorICAgIHZv
aWQgc2V0SXNXZWJWVFROb2RlKCkgeyBtX1dlYlZUVE5vZGVUeXBlID0gVGV4dFRyYWNrOjpXZWJW
VFROb2RlVHlwZVBhc3Q7IH0KKyAgICBib29sIGlzV2ViVlRURnV0dXJlTm9kZSgpIHsgcmV0dXJu
IG1fV2ViVlRUTm9kZVR5cGUgPT0gVGV4dFRyYWNrOjpXZWJWVFROb2RlVHlwZUZ1dHVyZTsgfQor
ICAgIHZvaWQgc2V0SXNXZWJWVFRGdXR1cmVOb2RlKCkgeyBtX1dlYlZUVE5vZGVUeXBlID0gVGV4
dFRyYWNrOjpXZWJWVFROb2RlVHlwZUZ1dHVyZTsgfQogI2VuZGlmCiAgICAgc2hvcnQgbV90YWJJ
bmRleDsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2NoaWxkSW5kZXg7CkBAIC0zODAsOSArMzg1LDYg
QEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9uZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25B
ZnRlckF0dGFjaCA6IDE7CiAgICAgYm9vbCBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5IDogMTsKICAg
ICBib29sIG1faXNJbkNhbnZhc1N1YnRyZWUgOiAxOwotI2lmIEVOQUJMRShWSURFT19UUkFDSykK
LSAgICBib29sIG1faXNXZWJWVFROb2RlIDogMTsKLSNlbmRpZgogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKICAgICBib29sIG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudCA6IDE7CiAjZW5k
aWYKQEAgLTQwMCw3ICs0MDIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2NoaWxkcmVuQWZm
ZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMgOiAxOwogICAgIGJvb2wgbV9jaGlsZHJlbkFmZmVj
dGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzIDogMTsKICAgICBib29sIG1fY2hpbGRyZW5BZmZl
Y3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwotCisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorICAgIFRleHRUcmFjazo6V2ViVlRUTm9kZVR5cGUgbV9XZWJWVFROb2RlVHlwZSA6IDI7
CisjZW5kaWYKIHByaXZhdGU6CiAgICAgT3duUHRyPE5vZGVMaXN0c05vZGVEYXRhPiBtX25vZGVM
aXN0czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuY3BwCmluZGV4IDJkZTEwNTMuLjJlZmMwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTEyMTgsNyAr
MTIxOCw3IEBAIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jCiAgICAgLCBtX2ZvbnRTaXplKDApCiB7
CiB9Ci0gICAgCisKIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlU3VidHJlZXMoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjdWUsICgiY3VlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKaW5k
ZXggNjM1MDNkYS4uM2RmYWU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5o
CkBAIC0xMTAsNiArMTEwLDggQEAgcHVibGljOgogCiAgICAgZW51bSBUZXh0VHJhY2tUeXBlIHsg
VHJhY2tFbGVtZW50LCBBZGRUcmFjaywgSW5CYW5kIH07CiAgICAgVGV4dFRyYWNrVHlwZSB0cmFj
a1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrVHlwZTsgfQorICAgIAorICAgIGVudW0gV2Vi
VlRUTm9kZVR5cGUge1dlYlZUVE5vZGVUeXBlTm9uZSwgV2ViVlRUTm9kZVR5cGVGdXR1cmUsIFdl
YlZUVE5vZGVUeXBlUGFzdH07CiAKICAgICBpbnQgdHJhY2tJbmRleCgpOwogICAgIHZvaWQgaW52
YWxpZGF0ZVRyYWNrSW5kZXgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmNwcAppbmRleCA2MmEwYzk2Li4wMDYyOTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0xODMsMTUgKzE4Myw5IEBAIFJlbmRlck9iamVjdCog
VGV4dFRyYWNrQ3VlQm94OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRl
clN0eWxlKikKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1jb25zdCBBdG9t
aWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6cGFzdE5vZGVzU2hhZG93UHNldWRvSWQoKQorY29uc3Qg
QXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmFsbE5vZGVzU2hhZG93UHNldWRvSWQoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgi
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBhc3Qtbm9kZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgcmV0dXJuIHN1YnRpdGxlczsKLX0KLQotY29uc3QgQXRv
bWljU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmZ1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQoKQotewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgi
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWZ1dHVyZS1ub2RlcyIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgc3VidGl0bGVzLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHN1YnRp
dGxlczsKIH0KIApAQCAtMjEzLDggKzIwNyw3IEBAIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3Vl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGRvdWJsZSBzdGFydCwgZG91YmxlCiAg
ICAgLCBtX3BhdXNlT25FeGl0KGZhbHNlKQogICAgICwgbV9zbmFwVG9MaW5lcyh0cnVlKQogICAg
ICwgbV9oYXNJbm5lclRpbWVzdGFtcHMoZmFsc2UpCi0gICAgLCBtX3Bhc3REb2N1bWVudE5vZGVz
KEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSkp
Ci0gICAgLCBtX2Z1dHVyZURvY3VtZW50Tm9kZXMoSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpKSkKKyAgICAsIG1fYWxsRG9jdW1lbnROb2RlcyhI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQog
ICAgICwgbV9kaXNwbGF5VHJlZVNob3VsZENoYW5nZSh0cnVlKQogICAgICwgbV9kaXNwbGF5VHJl
ZShUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCksIHRoaXMpKQogewpAQCAtNDg4LDEyICs0ODEsNiBAQCB2b2lkIFRl
eHRUcmFja0N1ZTo6aW52YWxpZGF0ZUN1ZUluZGV4KCkKICAgICBtX2N1ZUluZGV4ID0gaW52YWxp
ZEN1ZUluZGV4OwogfQogCi12b2lkIFRleHRUcmFja0N1ZTo6bWFya05vZGVzQXNXZWJWVFROb2Rl
cyhOb2RlKiByb290KQotewotICAgIGZvciAoRWxlbWVudCogY2hpbGQgPSBFbGVtZW50VHJhdmVy
c2FsOjpmaXJzdFdpdGhpbihyb290KTsgY2hpbGQ7IGNoaWxkID0gRWxlbWVudFRyYXZlcnNhbDo6
bmV4dChjaGlsZCwgcm9vdCkpCi0gICAgICAgIGNoaWxkLT5zZXRJc1dlYlZUVE5vZGUodHJ1ZSk7
Ci19Ci0KIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gVGV4dFRyYWNrQ3VlOjpnZXRDdWVB
c0hUTUwoKQogewogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjbG9uZWRGcmFnbWVudDsK
QEAgLTUxNiw3ICs1MDMsNiBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFRleHRUcmFj
a0N1ZTo6Z2V0Q3VlQXNIVE1MKCkKIAogICAgIGNsb25lZEZyYWdtZW50ID0gRG9jdW1lbnRGcmFn
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX2RvY3VtZW50RnJhZ21lbnQtPmNsb25lQ2hp
bGROb2RlcyhjbG9uZWRGcmFnbWVudC5nZXQoKSk7Ci0gICAgbWFya05vZGVzQXNXZWJWVFROb2Rl
cyhjbG9uZWRGcmFnbWVudC5nZXQoKSk7CiAKICAgICByZXR1cm4gY2xvbmVkRnJhZ21lbnQucmVs
ZWFzZSgpOwogfQpAQCAtNjc2LDUwICs2NjIsNTQgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OmNhbGN1
bGF0ZURpc3BsYXlQYXJhbWV0ZXJzKCkKICAgICAvLyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHRo
ZSBvdGhlciBhc3BlY3RzIG9mIHRoZSBjdWUuCiAgICAgbV9jb21wdXRlZExpbmVQb3NpdGlvbiA9
IGNhbGN1bGF0ZUNvbXB1dGVkTGluZVBvc2l0aW9uKCk7CiB9CisgICAgCit2b2lkIFRleHRUcmFj
a0N1ZTo6bWFya0Z1dHVyZUFuZFBhc3ROb2RlcyhFbGVtZW50KiByb290LCBkb3VibGUgcHJldmlv
dXNUaW1lc3RhbXAsIGRvdWJsZSBtb3ZpZVRpbWUpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIHRpbWVzdGFtcFRhZywgKEFTQ0lJTGl0ZXJhbCgidGltZXN0YW1wIikp
KTsKKyAgICAKKyAgICBib29sIGlzUGFzdE5vZGUgPSB0cnVlOworICAgIGRvdWJsZSBjdXJyZW50
VGltZXN0YW1wID0gcHJldmlvdXNUaW1lc3RhbXA7CisgICAgaWYgKGN1cnJlbnRUaW1lc3RhbXAg
PiBtb3ZpZVRpbWUpCisgICAgICAgIGlzUGFzdE5vZGUgPSBmYWxzZTsKKyAgICAKKyAgICBmb3Ig
KE5vZGUqIGNoaWxkID0gcm9vdC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBOb2RlVHJh
dmVyc2FsOjpuZXh0KGNoaWxkLCByb290KSkgeworICAgICAgICBpZiAoY2hpbGQtPm5vZGVOYW1l
KCkgPT0gdGltZXN0YW1wVGFnKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBwb3NpdGlvbiA9IDA7
CisgICAgICAgICAgICBTdHJpbmcgdGltZXN0YW1wID0gY2hpbGQtPm5vZGVWYWx1ZSgpOworICAg
ICAgICAgICAgZG91YmxlIGN1cnJlbnRUaW1lc3RhbXAgPSBXZWJWVFRQYXJzZXI6OmNyZWF0ZSgw
LCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLT5jb2xsZWN0VGltZVN0YW1wKHRpbWVzdGFtcCwg
JnBvc2l0aW9uKTsKKyAgICAgICAgICAgIEFTU0VSVChjdXJyZW50VGltZXN0YW1wICE9IC0xKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGN1cnJlbnRUaW1lc3RhbXAgPiBtb3ZpZVRp
bWUpCisgICAgICAgICAgICAgICAgaXNQYXN0Tm9kZSA9IGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBpZiAoY2hpbGQtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICAgICAg
aWYgKCFpc1Bhc3ROb2RlKQorICAgICAgICAgICAgICAgIHRvRWxlbWVudChjaGlsZCktPnNldElz
V2ViVlRURnV0dXJlTm9kZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRv
RWxlbWVudChjaGlsZCktPnNldElzV2ViVlRUTm9kZSgpOworICAgICAgICB9CisgICAgfQorfQog
CiB2b2lkIFRleHRUcmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUoZmxvYXQgbW92aWVUaW1lKQog
ewogICAgIC8vIFRoZSBkaXNwbGF5IHRyZWUgbWF5IGNvbnRhaW4gV2ViVlRUIHRpbWVzdGFtcCBv
YmplY3RzIHJlcHJlc2VudGluZwogICAgIC8vIHRpbWVzdGFtcHMgKHByb2Nlc3NpbmcgaW5zdHJ1
Y3Rpb25zKSwgYWxvbmcgd2l0aCBkaXNwbGF5YWJsZSBub2Rlcy4KLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZXN0YW1wVGFnLCAoQVNDSUlMaXRlcmFsKCJ0aW1lc3Rh
bXAiKSkpOwogCiAgICAgaWYgKCF0cmFjaygpLT5pc1JlbmRlcmVkKCkpCiAgICAgICByZXR1cm47
CiAKLSAgICBib29sIGlzUGFzdE5vZGUgPSB0cnVlOwogCi0gICAgLy8gQ2xlYXIgdGhlIGNvbnRl
bnRzIG9mIHRoZSB0d28gc2V0cy4KLSAgICBtX2Z1dHVyZURvY3VtZW50Tm9kZXMtPnJlbW92ZUNo
aWxkcmVuKCk7Ci0gICAgbV9mdXR1cmVEb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8oZnV0dXJlTm9k
ZXNTaGFkb3dQc2V1ZG9JZCgpKTsKLQotICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPnJlbW92ZUNo
aWxkcmVuKCk7Ci0gICAgbV9wYXN0RG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKHBhc3ROb2Rlc1No
YWRvd1BzZXVkb0lkKCkpOworICAgIC8vIENsZWFyIHRoZSBjb250ZW50cyBvZiB0aGUgc2V0Lgor
ICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICBtX2FsbERvY3Vt
ZW50Tm9kZXMtPnNldFBzZXVkbyhhbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwogCiAgICAgLy8g
VXBkYXRlIHRoZSB0d28gc2V0cyBjb250YWluaW5nIHBhc3QgYW5kIGZ1dHVyZSBXZWJWVFQgb2Jq
ZWN0cy4KICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gcmVmZXJlbmNlVHJlZSA9IGdldEN1
ZUFzSFRNTCgpOwogCi0gICAgaWYgKCFtX2hhc0lubmVyVGltZXN0YW1wcykgewotICAgICAgICBt
X3Bhc3REb2N1bWVudE5vZGVzLT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGZvciAoTm9kZSAqY2hpbGQgPSByZWZlcmVuY2VUcmVlLT5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAg
ICAgIGlmIChjaGlsZC0+bm9kZU5hbWUoKSA9PSB0aW1lc3RhbXBUYWcpIHsKLSAgICAgICAgICAg
IHVuc2lnbmVkIGludCBwb3NpdGlvbiA9IDA7Ci0gICAgICAgICAgICBTdHJpbmcgdGltZXN0YW1w
ID0gY2hpbGQtPm5vZGVWYWx1ZSgpOwotCi0gICAgICAgICAgICBkb3VibGUgdGltZXN0YW1wVGlt
ZSA9IFdlYlZUVFBhcnNlcjo6Y3JlYXRlKDAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCktPmNv
bGxlY3RUaW1lU3RhbXAodGltZXN0YW1wLCAmcG9zaXRpb24pOwotICAgICAgICAgICAgQVNTRVJU
KHRpbWVzdGFtcFRpbWUgIT0gLTEpOwotCi0gICAgICAgICAgICBpZiAodGltZXN0YW1wVGltZSA+
IG1vdmllVGltZSkKLSAgICAgICAgICAgICAgICBpc1Bhc3ROb2RlID0gZmFsc2U7Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAoaXNQYXN0Tm9kZSkKLSAgICAgICAgICAgIG1fcGFzdERvY3VtZW50
Tm9kZXMtPmFwcGVuZENoaWxkKGNoaWxkLT5jbG9uZU5vZGUodHJ1ZSksIEFTU0VSVF9OT19FWENF
UFRJT04sIGZhbHNlKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9mdXR1cmVEb2N1bWVu
dE5vZGVzLT5hcHBlbmRDaGlsZChjaGlsZC0+Y2xvbmVOb2RlKHRydWUpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OLCBmYWxzZSk7Ci0gICAgfQorICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hp
bGQocmVmZXJlbmNlVHJlZSk7CisgICAgbWFya0Z1dHVyZUFuZFBhc3ROb2RlcyhtX2FsbERvY3Vt
ZW50Tm9kZXMuZ2V0KCksIHN0YXJ0VGltZSgpLCBtb3ZpZVRpbWUpOwogfQogCiBQYXNzUmVmUHRy
PFRleHRUcmFja0N1ZUJveD4gVGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCkBAIC03NDEs
OSArNzMxLDggQEAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IFRleHRUcmFja0N1ZTo6Z2V0
RGlzcGxheVRyZWUoKQogICAgIC8vICdkaXNwbGF5JyBwcm9wZXJ0eSBoYXMgdGhlIHZhbHVlICdp
bmxpbmUnLiBUaGlzIGlzIHRoZSBXZWJWVFQgY3VlCiAgICAgLy8gYmFja2dyb3VuZCBib3guCiAK
LSAgICAvLyBOb3RlOiBUaGlzIGlzIGNvbnRhaW5lZCBieSBkZWZhdWx0IGluIG1fcGFzdERvY3Vt
ZW50Tm9kZXMuCi0gICAgbV9kaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9wYXN0RG9jdW1lbnRO
b2RlcywgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7Ci0gICAgbV9kaXNwbGF5VHJlZS0+YXBw
ZW5kQ2hpbGQobV9mdXR1cmVEb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVl
KTsKKyAgICAvLyBOb3RlOiBUaGlzIGlzIGNvbnRhaW5lZCBieSBkZWZhdWx0IGluIG1fYWxsRG9j
dW1lbnROb2Rlcy4KKyAgICBtX2Rpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2FsbERvY3VtZW50
Tm9kZXMsIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwogCiAgICAgLy8gRklYTUUoQlVHIDc5
OTE2KTogUnVucyBvZiBjaGlsZHJlbiBvZiBXZWJWVFQgUnVieSBPYmplY3RzIHRoYXQgYXJlIG5v
dAogICAgIC8vIFdlYlZUVCBSdWJ5IFRleHQgT2JqZWN0cyBtdXN0IGJlIHdyYXBwZWQgaW4gYW5v
bnltb3VzIGJveGVzIHdob3NlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
aAppbmRleCBjZjE3ZDk5Li4wZTcyM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmgKQEAgLTgwLDggKzgwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+VGV4
dFRyYWNrQ3VlKCk7CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBwYXN0Tm9kZXNT
aGFkb3dQc2V1ZG9JZCgpOwotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGZ1dHVyZU5v
ZGVzU2hhZG93UHNldWRvSWQoKTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhbGxO
b2Rlc1NoYWRvd1BzZXVkb0lkKCk7CiAKICAgICBUZXh0VHJhY2sqIHRyYWNrKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRUcmFjayhUZXh0VHJhY2sqKTsKQEAgLTEyNiw3ICsxMjUsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBpbnZhbGlkYXRlQ3VlSW5kZXgoKTsKIAogICAgIFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZ2V0Q3VlQXNIVE1MKCk7Ci0gICAgdm9pZCBtYXJrTm9kZXNBc1dlYlZUVE5v
ZGVzKE5vZGUqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8
RXZlbnQ+KTsKICAgICBib29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4sIEV4Y2Vw
dGlvbkNvZGUmKTsKQEAgLTEzNyw2ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxU
ZXh0VHJhY2tDdWVCb3g+IGdldERpc3BsYXlUcmVlKCk7CiAgICAgdm9pZCB1cGRhdGVEaXNwbGF5
VHJlZShmbG9hdCk7CiAgICAgdm9pZCByZW1vdmVEaXNwbGF5VHJlZSgpOworICAgIHZvaWQgbWFy
a0Z1dHVyZUFuZFBhc3ROb2RlcyhFbGVtZW50KiwgZG91YmxlLCBkb3VibGUpOwogCiAgICAgaW50
IGNhbGN1bGF0ZUNvbXB1dGVkTGluZVBvc2l0aW9uKCk7CiAKQEAgLTIwOSw4ICsyMDgsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9zbmFwVG9MaW5lczsKIAogICAgIGJvb2wgbV9oYXNJbm5lclRp
bWVzdGFtcHM7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX3Bhc3REb2N1bWVudE5vZGVz
OwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gbV9mdXR1cmVEb2N1bWVudE5vZGVzOworICAg
IFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gbV9hbGxEb2N1bWVudE5vZGVzOwogCiAgICAgYm9vbCBt
X2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IG1f
ZGlzcGxheVRyZWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZU
VFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAK
aW5kZXggZmVkMDM2OS4uMjk3ZTU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9XZWJWVFRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUUGFyc2VyLmNwcApAQCAtMzY0LDcgKzM2NCw2IEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpjb25z
dHJ1Y3RUcmVlRnJvbVRva2VuKERvY3VtZW50KiBkb2N1bWVudCkKICAgICAgICAgICAgIGNoaWxk
ID0gSFRNTEVsZW1lbnQ6OmNyZWF0ZShxVGFnLCBkb2N1bWVudCk7CiAKICAgICAgICAgaWYgKGNo
aWxkKSB7Ci0gICAgICAgICAgICBjaGlsZC0+c2V0SXNXZWJWVFROb2RlKHRydWUpOwogICAgICAg
ICAgICAgaWYgKG1fdG9rZW4uY2xhc3NlcygpLnNpemUoKSA+IDApCiAgICAgICAgICAgICAgICAg
Y2hpbGQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIEF0b21pY1N0cmluZyhtX3Rva2VuLmNsYXNz
ZXMoKS5kYXRhKCksIG1fdG9rZW4uY2xhc3NlcygpLnNpemUoKSkpOwogICAgICAgICAgICAgaWYg
KGNoaWxkLT5oYXNUYWdOYW1lKHFUYWcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tCmluZGV4IDc3OWE0YmMuLjc1ZjdmY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KQEAgLTI1
MywxMyArMjUzLDcgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpb25z
U3R5bGVTaGVldE92ZXJyaWRlKCkgY29uc3QKICAgICBDb2xvciBjb2xvciA9IGNhcHRpb25zQmFj
a2dyb3VuZENvbG9yKCk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkgewogICAgICAgICBjYXB0
aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoIiB2aWRlbzo6Iik7Ci0gICAgICAgIGNhcHRp
b25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZChUZXh0VHJhY2tDdWU6OnBhc3ROb2Rlc1NoYWRv
d1BzZXVkb0lkKCkpOwotICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQo
J3snKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKGNzc0NvbG9y
UHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIGNvbG9yKSk7Ci0gICAgICAgIGNh
cHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgnfScpOwotICAgICAgICAKLSAgICAgICAg
Y2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCIgdmlkZW86OiIpOwotICAgICAgICBj
YXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoVGV4dFRyYWNrQ3VlOjpmdXR1cmVOb2Rl
c1NoYWRvd1BzZXVkb0lkKCkpOworICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5h
cHBlbmQoVGV4dFRyYWNrQ3VlOjphbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwogICAgICAgICBj
YXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoJ3snKTsKICAgICAgICAgY2FwdGlvbnNP
dmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKGNzc0NvbG9yUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kQ29sb3IsIGNvbG9yKSk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0
LmFwcGVuZCgnfScpOwo=
</data>
<flag name="review"
          id="198976"
          type_id="1"
          status="-"
          setter="dgorbik"
    />
    <flag name="commit-queue"
          id="198977"
          type_id="3"
          status="-"
          setter="dgorbik"
    />
          </attachment>
      

    </bug>

</bugzilla>